gbasys
diff src/input.c @ 0:875ef6085efc
gbasys mercurial repository
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Sun, 04 Mar 2012 04:04:25 +0200 |
parents | |
children | 06726f0b8cd3 |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/src/input.c Sun Mar 04 04:04:25 2012 +0200 1.3 @@ -0,0 +1,37 @@ 1.4 +/* 1.5 +Copyright 2004 John Tsiombikas <nuclear@siggraph.org> 1.6 + 1.7 +This file is part of libgba, a library for GameBoy Advance development. 1.8 + 1.9 +This program is free software; you can redistribute it and/or modify 1.10 +it under the terms of the GNU General Public License as published by 1.11 +the Free Software Foundation; either version 2 of the License, or 1.12 +(at your option) any later version. 1.13 + 1.14 +This program is distributed in the hope that it will be useful, 1.15 +but WITHOUT ANY WARRANTY; without even the implied warranty of 1.16 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1.17 +GNU General Public License for more details. 1.18 + 1.19 +You should have received a copy of the GNU General Public License 1.20 +along with this program; if not, write to the Free Software 1.21 +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 1.22 +*/ 1.23 + 1.24 +#include "input.h" 1.25 + 1.26 +volatile unsigned short *reg_key_state = (unsigned short*)0x4000130; 1.27 +volatile unsigned short *reg_key_cntl = (unsigned short*)0x4000132; 1.28 + 1.29 +int get_key_state(int key) { 1.30 + return ~(*reg_key_state) & key; 1.31 +} 1.32 + 1.33 +void enable_key_interrupts(int keys) { 1.34 + *reg_key_cntl |= (1 << 14) | keys; 1.35 +} 1.36 + 1.37 +void disable_key_interrupts(int keys) { 1.38 + if(keys == KEY_ALL) keys |= (1 << 14); 1.39 + *reg_key_cntl ^= keys; 1.40 +}