1
2	;;  Screen dimensions
3defc	MAXCURSPOSX	= 0x13	; In tiles
4defc	MAXCURSPOSY	= 0x11
5
6defc	START		= 0x80
7defc	SELECT		= 0x40
8defc	BUT_B		= 0x20
9defc	BUT_A		= 0x10
10defc	DOWN		= 0x08
11defc	UP		= 0x04
12defc	LEFT		= 0x02
13defc	RIGHT		= 0x01
14
15defc	SCREENWIDTH	= 0xA0
16defc	SCREENHEIGHT	= 0x90
17defc	MINWNDPOSX	= 0x07
18defc	MINWNDPOSY	= 0x00
19defc	MAXWNDPOSX	= 0xA6
20defc	MAXWNDPOSY	= 0x8F
21
22defc	VBL_IFLAG	= 0x01
23defc	LCD_IFLAG	= 0x02
24defc	TIM_IFLAG	= 0x04
25defc	SIO_IFLAG	= 0x08
26defc	JOY_IFLAG	= 0x10
27
28defc	P1		= 0x00	; Joystick: 1.1.P15.P14.P13.P12.P11.P10
29defc	SB		= 0x01	; Serial IO data buffer
30defc	SC		= 0x02	; Serial IO control register
31defc	DIV		= 0x04	; Divider register
32defc	TIMA		= 0x05	; Timer counter
33defc	TMA		= 0x06	; Timer modulo
34defc	TAC		= 0x07	; Timer control
35defc	IF		= 0x0F	; Interrupt flags: 0.0.0.JST.SIO.TIM.LCD.VBL
36defc	NR10		= 0x10	; Sound register
37defc	NR11		= 0x11	; Sound register
38defc	NR12		= 0x12	; Sound register
39defc	NR13		= 0x13	; Sound register
40defc	NR14		= 0x14	; Sound register
41defc	NR21		= 0x16	; Sound register
42defc	NR22		= 0x17	; Sound register
43defc	NR23		= 0x18	; Sound register
44defc	NR24		= 0x19	; Sound register
45defc	NR30		= 0x1A	; Sound register
46defc	NR31		= 0x1B	; Sound register
47defc	NR32		= 0x1C	; Sound register
48defc	NR33		= 0x1D	; Sound register
49defc	NR34		= 0x1E	; Sound register
50defc	NR41		= 0x20	; Sound register
51defc	NR42		= 0x21	; Sound register
52defc	NR43		= 0x22	; Sound register
53defc	NR44		= 0x23	; Sound register
54defc	NR50		= 0x24	; Sound register
55defc	NR51		= 0x25	; Sound register
56defc	NR52		= 0x26	; Sound register
57defc	LCDC		= 0x40	; LCD control
58defc	STAT		= 0x41	; LCD status
59defc	SCY		= 0x42	; Scroll Y
60defc	SCX		= 0x43	; Scroll X
61defc	LY		= 0x44	; LCDC Y-coordinate
62defc	LYC		= 0x45	; LY compare
63defc	DMA		= 0x46	; DMA transfer
64defc	BGP		= 0x47	; BG palette data
65defc	OBP0		= 0x48	; OBJ palette 0 data
66defc	OBP1		= 0x49	; OBJ palette 1 data
67defc	WY		= 0x4A	; Window Y coordinate
68defc	WX		= 0x4B	; Window X coordinate
69defc	KEY1		= 0x4D	; CPU speed
70defc	VBK		= 0x4F	; VRAM bank
71defc	HDMA1		= 0x51	; DMA control 1
72defc	HDMA2		= 0x52	; DMA control 2
73defc	HDMA3		= 0x53	; DMA control 3
74defc	HDMA4		= 0x54	; DMA control 4
75defc	HDMA5		= 0x55	; DMA control 5
76defc	RP		= 0x56	; IR port
77defc	BCPS		= 0x68	; BG color palette specification
78defc	BCPD		= 0x69	; BG color palette data
79defc	OCPS		= 0x6A	; OBJ color palette specification
80defc	OCPD		= 0x6B	; OBJ color palette data
81defc	SVBK		= 0x70	; WRAM bank
82defc	IE		= 0xFF	; Interrupt enable
83
84defc	G_MODE		= 0x01	; Graphic mode
85defc	T_MODE		= 0x02	; Text mode (bit 2)
86defc	T_MODE_OUT	= 0x02	; Text mode output only
87defc	T_MODE_INOUT	= 0x03	; Text mode with input
88defc	M_NO_SCROLL	= 0x04	; Disables scrolling of the screen in text mode
89defc	M_NO_INTERP	= 0x08	; Disables special character interpretation
90
91defc	MBC1_ROM_PAGE	= 0x2000 ; Address to write to for MBC1 switching
92
93	;; Status codes for IO
94defc	IO_IDLE	= 0x00
95defc	IO_SENDING	= 0x01
96defc	IO_RECEIVING	= 0x02
97defc	IO_ERROR	= 0x04
98
99	;; Type of IO data
100defc	DT_IDLE	= 0x66
101defc	DT_RECEIVING	= 0x55
102
103
104	;; Symbols defined at link time
105defc	STACK = 0xE000
106defc	OAM = 0xC000
107defc	refresh_OAM = 0xFF80
108
109defc	init = 0x000
110
111defc	BANKOV = 6
112
113;; Graphic style values
114defc M_SOLID =	0x00
115defc M_OR    =	0x01
116defc M_XOR   =	0x02
117defc M_AND   =	0x03
118
119; Font Encoding types - lower 2 bits of font
120defc FONT_256ENCODING   =       0
121defc FONT_128ENCODING   =       1
122defc FONT_NOENCODING            =       2
123