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