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