2005-03-02 23:49:38 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef __HW_H__
|
|
|
|
#define __HW_H__
|
|
|
|
|
|
|
|
|
|
|
|
#include "defs.h"
|
|
|
|
|
|
|
|
|
|
|
|
#define PAD_RIGHT 0x01
|
|
|
|
#define PAD_LEFT 0x02
|
|
|
|
#define PAD_UP 0x04
|
|
|
|
#define PAD_DOWN 0x08
|
|
|
|
#define PAD_A 0x10
|
|
|
|
#define PAD_B 0x20
|
|
|
|
#define PAD_SELECT 0x40
|
|
|
|
#define PAD_START 0x80
|
|
|
|
|
|
|
|
#define IF_VBLANK 0x01
|
|
|
|
#define IF_STAT 0x02
|
|
|
|
#define IF_TIMER 0x04
|
|
|
|
#define IF_SERIAL 0x08
|
|
|
|
#define IF_PAD 0x10
|
|
|
|
|
|
|
|
struct hw
|
|
|
|
{
|
2007-02-06 21:41:08 +00:00
|
|
|
byte ilines;
|
|
|
|
byte pad;
|
|
|
|
int hdma;
|
|
|
|
int cgb;
|
2005-03-02 23:49:38 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
extern struct hw hw;
|
|
|
|
|
2006-01-20 13:05:52 +00:00
|
|
|
void hw_interrupt(byte i, byte mask) ICODE_ATTR;
|
|
|
|
void hw_dma(byte b) ICODE_ATTR;
|
|
|
|
void hw_hdma_cmd(byte c) ICODE_ATTR;
|
|
|
|
void hw_hdma(void) ICODE_ATTR;
|
2006-06-19 01:47:45 +00:00
|
|
|
void pad_refresh(void) ICODE_ATTR;
|
|
|
|
void pad_press(byte k) ICODE_ATTR;
|
|
|
|
void pad_release(byte k) ICODE_ATTR;
|
|
|
|
void pad_set(byte k, int st) ICODE_ATTR;
|
2005-03-02 23:49:38 +00:00
|
|
|
void hw_reset(void);
|
|
|
|
|
|
|
|
#endif
|