1 2 MODULE init_tt 3 4 PUBLIC init_vram 5 PUBLIC _init_vram 6 PUBLIC init_tt 7 PUBLIC _init_tt 8 PUBLIC init_wtt 9 PUBLIC _init_wtt 10 PUBLIC init_btt 11 PUBLIC _init_btt 12 13 SECTION code_driver 14 15 INCLUDE "target/gb/def/gb_globals.def" 16 17 18 19 ;; Initialize part (size = DE) of the VRAM at (HL) with B 20init_vram: 21_init_vram: 22 LDH A,(STAT) 23 AND 0x02 24 JR NZ,init_vram 25 26 LD (HL),B 27 INC HL 28 DEC DE 29 LD A,D 30 OR E 31 JR NZ,init_vram 32 RET 33 34 ;; Initialize window tile table with B 35init_wtt: 36_init_wtt: 37 LDH A,(LCDC) 38 BIT 6,A 39 JR NZ,init_wtt1 40 LD HL,0x9800 ; HL = origin 41 JR init_tt 42 43init_wtt1: 44 LD HL,0x9C00 ; HL = origin 45 JR init_tt 46 ;; Initialize background tile table with B 47init_btt: 48_init_btt: 49 LDH A,(LCDC) 50 BIT 3,A 51 JR NZ,init_btt1 52 LD HL,0x9800 ; HL = origin 53 JR init_tt 54init_btt1: 55 LD HL,0x9C00 ; HL = origin 56; JR init_tt 57init_tt: 58_init_tt: 59 LD DE,0x0400 ; One whole GB Screen 60 JP init_vram 61