;
; Game Gear (Majesco) BIOS
; Dumped by Mike Gordon on the 04/22/2001
; Disassembled and commented by Omar Cornut on the 04/22/2001
; Version 1
;

00000000: F3            DI                      ; Disable interrupts

00000001: 21 00 00      LD HL,0000h             ; Set paging registers
00000004: 22 FC FF      LD (FFFCh),HL           ; -> Disable SRAM
00000007: 21 01 02      LD HL,0201h             ; -> 0:0, 1:1, 2:2
0000000A: 22 FE FF      LD (FFFEh),HL           ;

0000000D: 21 00 C0      LD HL,C000h             ; Clear RAM
00000010: 11 01 C0      LD DE,C001h             ; from C000h to DFF0h
00000013: 01 EF 1F      LD BC,1FEFh             ;
00000016: 75            LD (HL),L               ;
00000017: ED B0         LDIR                    ;

00000019: 31 F0 DF      LD SP,DFF0h             ; Init stack pointer @ DFF0h

0000001C: 3E F5         LD A,F5h                ; Gear-to-gear stuffs
0000001E: D3 02         OUTA (02h)              ; ..
00000020: DB 02         INA (02h)               ; ..
00000022: FE F5         CP F5h                  ; <to comment>
00000024: 20 0B         JR NZ,+0Bh              ;
00000026: 3E FA         LD A,FAh                ;
00000028: D3 02         OUTA (02h)              ;
0000002A: DB 02         INA (02h)               ;
0000002C: FE FA         CP FAh                  ;
0000002E: 20 01         JR NZ,+01h              ;
00000030: AF            XOR A                   ; Copy a detected configuration 
00000031: 32 01 C7      LD (C701h),A            ; thing to RAM[701h]
00000034: 3E FF         LD A,FFh                ; Later called 'Gear-to-Gear xx option'
00000036: D3 02         OUTA (02h)              ;

00000038: DB 7E         INA (7Eh)               ; Wait for Vertical Blank
0000003A: FE B0         CP B0h                  ;
0000003C: 20 FA         JR NZ,-06h              ;

0000003E: 11 00 7F      LD DE,7F00h             ; Set VDP address to 3F00h (&Sprite_0_Y)
00000041: CD 22 01      CALL VDP_Set_Addr (0122h) then write D0h to disable
00000044: 3E D0         LD A,D0h                ; sprites. 
00000046: D3 BE         OUTA (BEh)              ; 

00000048: 21 E9 03      LD HL,03E9h             ; Init VDP Registers
0000004B: 01 BF 16      LD BC,16BFh             ; Stored at 03E9h
0000004E: ED B3         OTIR                    ;

00000050: 21 00 C0      LD HL,C000h             ; 
00000053: 11 00 78      LD DE,7800h             ; Set VDP address to 3800h (&Tile_256)
00000056: CD 22 01      CALL VDP_Set_Addr (0122h)
00000059: 0E BE         LD C,BEh                ;
0000005B: ED B3         OTIR                    ; Copy 22*6 == 132 bytes from
0000005D: ED B3         OTIR                    ; the beginning of RAM to
0000005F: ED B3         OTIR                    ; Video ram ??
00000061: ED B3         OTIR                    ;
00000063: 18 03         JR +03h ÄÄÄÄÄÄÄ¿        ; -> (A)
00000065: 00            NOP            ³
                                       ³
-- NMI                                 ³
00000066: ED 45         RETN           ³        ; Return from NMI (unused)
                                       ³
00000068: ED B3         OTIR <ÄÄÄÄÄÄÄÄÄÙ        ; (A)
0000006A: ED B3         OTIR                    ;

0000006C: 21 00 C0      LD HL,C000h             ; Write palette memory,
0000006F: 11 00 C0      LD DE,C000h             ; with source being C000h
00000072: 01 BE 40      LD BC,40BEh             ; (beginning of RAM)
00000075: CD 22 01      CALL VDP_Set_Addr (0122h) ??
00000078: ED B3         OTIR                    ;

0000007A: 21 6A 01      LD HL,016Ah             ;
0000007D: 06 04         LD B,04h                ;
0000007F: 3A 01 C7      LD A,(C701h)            ; Load Gear-to-Gear ?? option
00000082: B7            OR A                    ; Depending on it, copy
00000083: 20 03         JR NZ,+03h              ; source will be from 016Ah
00000085: 21 66 01      LD HL,0166h             ; or 0166h
00000088: CD 22 01      CALL VDP_Set_Addr (0122h)
0000008B: ED B3         OTIR                    ;

0000008D: 21 DC 02      LD HL,02DCh             ;
00000090: 3A 01 C7      LD A,(C701h)            ;
00000093: B7            OR A                    ;
00000094: 20 03         JR NZ,+03h              ;
00000096: 21 6C 01      LD HL,016Ch             ;
00000099: 11 00 40      LD DE,4000h             ;
0000009C: CD 29 01	CALL 0129h

0000009F: CD FA 00      CALL Check_TMR_Sega (00FAh) ; Check for "TMR SEGA" string
000000A2: 3A 00 C7      LD A,(C700h)            ; Read result (stored there)
000000A5: B7            OR A                    ; If it's zero, goes to an infinite loop
                                                ; Else, it should be a 'A'
000000A6: 28 FE         JR Z,-02h               ; *CRACK* Write 00,00 to A6h to bypass the check
000000A8: 21 AA 03      LD HL,03AAh             
000000AB: 3A 01 C7	LD A,(C701h)
000000AE: B7		OR A
000000AF: 20 03		JR NZ,+03h
000000B1: 21 6B 03	LD HL,036Bh
000000B4: 11 4C 7A	LD DE,7A4Ch
000000B7: 06 15		LD B,15h
000000B9: CD 51 01	CALL 0151h
000000BC: 11 CC 7A	LD DE,7ACCh
000000BF: 06 15		LD B,15h
000000C1: CD 51 01	CALL 0151h
000000C4: 11 4C 7B	LD DE,7B4Ch
000000C7: 06 15		LD B,15h
000000C9: CD 51 01	CALL 0151h

000000CC: 11 E0 81      LD DE,81E0h             ; VDP_Reg[1] = E0h
000000CF: CD 22 01      CALL VDP_Set_Reg (0122h); Enable VBL Interrupt

000000D2: 06 07         LD B,07h                ; Big loop, catched by the
000000D4: 21 00 00      LD HL,0000h <ÄÄ¿        ; vertical blanking interrupt
000000D7: 2B            DEC HL <ÄÄÄÄ¿  ³        ; *CRACK* Write 01 at 0xD6 to disable startup delay
000000D8: 7D            LD A,L      ³  ³        ; It is supposed to be a delay?
000000D9: B4            OR H        ³  ³        ; It *might* be really needed
000000DA: 20 FB         JR NZ,-05h ÄÙ  ³        ;
000000DC: 10 F9         DJNZ -07h ÄÄÄÄÄÙ        ;

000000DE: 11 A0 81      LD DE,81A0h             ; VDP_Reg[1] = A0h
000000E1: CD 22 01      CALL VDP_Set_Reg (0122h); Disable VBL Interrupt

000000E4: 21 F2 00      LD HL,00F2h             ; Copy 8 bytes of code
000000E7: 11 00 C8      LD DE,C800h             ; from 0xF2 to RAM[0x800]
000000EA: 01 08 00      LD BC,0008h             ; (this is the mapping code)
000000ED: ED B0         LDIR                    ; ..
000000EF: C3 00 C8      JP C800h                ; then jump there!

--------
; This function is copied and run, starting at RAM[800h]
-- Function: Cartridge_Map
000000F2: 3E A8         LD A,A8h                ; Write A8h to C000h
000000F4: 32 00 C0      LD (C000h),A            ; Read back from C000h
000000F7: D3 3E         OUTA (3Eh)              ; And stick that to port 3Eh
000000F9: C7            RST 00h                 ; Reset.. start game
; Note from Zoop:
; This is where the game start
; Starting condition: VBL interrupts are disabled
; and VDP registers are as defined at 03E9h

(00FAh)
-- Function: Check_TMR_Sega
000000FA: CD 0E 01      CALL 010Eh              ; Try to read at 1FF0h
000000FD: CD 09 01      CALL 0109h              ; Else at 3FF0h
00000100: CD 04 01      CALL 0104h              ; Else at 7FF0h
00000103: C9            RET                     ; If any is good, RAM[700h] will be set
00000104: 11 F0 1F       LD DE,1FF0h                      ; de = 1FF0
00000107: 18 08          JR +08h ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ; 
00000109: 11 F0 3F       LD DE,3FF0h                    ³ ; de = 3FF0
0000010C: 18 03          JR +03h ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ;
0000010E: 11 F0 7F       LD DE,7FF0h                    ³ ; de = 7FF0
00000111: 21 5E 01       LD HL,CONST_TMR_SEGA (015Eh) <ÄÙ ; hl = "TMR SEGA"
00000114: 06 08          LD B,08h                         ; b = strlen(hl)
00000116: 1A             LD A,(DE) <ÄÄÄÄÄ¿                ;
00000117: BE             CP (HL)         ³                ; Compare strings
00000118: C0             RET NZ          ³                ; and return if
00000119: 23             INC HL          ³                ; they are differents
0000011A: 13             INC DE          ³                ; (-> not "TMR_SEGA")
0000011B: 10 F9          DJNZ -07h ÄÄÄÄÄÄÙ
0000011D: 32 00 C7       LD (C700h),A                     ; If found, write 'A' to RAM[700h] ('A' is the last char of "TMR_SEGA")
00000120: F1            POP AF                            ; and return to the caller of FAh
00000121: C9            RET                               ; by manually poping from the stack
--

(0122h)
-- Function: VDP_Set_Addr
-- Function: VDP_Set_Reg
-- In: DE
-- Destroy: A
00000122: 7B		LD A,E
00000123: D3 BF		OUTA (BFh)
00000125: 7A		LD A,D
00000126: D3 BF		OUTA (BFh)
00000128: C9		RET
--

(0129h)
-- Function: xxx
00000129: 06 04		LD B,04h
0000012B: C5		PUSH BC
0000012C: D5             PUSH DE
0000012D: 7E              LD A,(HL)
0000012E: 23              INC HL
0000012F: B7              OR A
00000130: 28 19           JR Z,+19h
00000132: CB BF           RES 7,A
00000134: 47              LD B,A
00000135: CD 22 01        CALL VDP_Set_AddrReg (0122h)
00000138: 7E              LD A,(HL)
00000139: D3 BE           OUTA (BEh)
0000013B: F2 3F 01        JP P,013Fh ÄÄ¿
0000013E: 23              INC HL       ³
0000013F: 13              INC DE <ÄÄÄÄÄÙ
00000140: 13              INC DE
00000141: 13              INC DE
00000142: 13              INC DE
00000143: 10 F0           DJNZ -10h
00000145: FA 2D 01        JP M,012Dh
00000148: 23              INC HL
00000149: 18 E2           JR -1Eh
0000014B: D1             POP DE
0000014C: 13             INC DE
0000014D: C1		POP BC
0000014E: 10 DB		DJNZ -25h
00000150: C9		RET
--

(0151h)
-- Function:
00000151: CD 22 01      CALL VDP_Set_AddrReg (0122h)
00000154: AF		XOR A
00000155: 0E BE         LD C,BEh <ÄÄÄ¿
00000157: ED A3         OUTI         ³
00000159: ED 79         OUT (C),A    ³
0000015B: 20 F8         JR NZ,-08h ÄÄÙ
0000015D: C9		RET
--

(015Eh)
[DATA: CONST_TMR_SEGA]
"TMR SEGA"
[/DATA]

(xxxxh)
[DATA: ??]
00, 0F, EE, 0E
[/DATA]

(xxxxh)
[DATA: ??]
30, 3F, 09, 00
[/DATA]

0000016E: 81		ADD C
0000016F: 0F		RRCA
00000170: 03		INC BC
00000171: 0C		INC C
00000172: 95		SUB L
00000173: 0F		RRCA
00000174: 0C		INC C
00000175: 0C		INC C
00000176: 00		NOP
00000177: 8F		ADC A
00000178: CC CC CF	CALL Z,CFCCh
0000017B: 8C		ADC H
0000017C: 0C		INC C
0000017D: 0C		INC C
0000017E: 00		NOP
0000017F: 87		ADD A
00000180: CC CC 8C	CALL Z,8CCCh
00000183: CC CC C7	CALL Z,C7CCh
00000186: 00		NOP
00000187: 8F		ADC A
00000188: 05		DEC B
00000189: CC 83 8F	CALL Z,8F83h
0000018C: 00		NOP
0000018D: 8C		ADC H
0000018E: 05		DEC B
0000018F: CC 83 87	CALL Z,8783h
00000192: 00		NOP
00000193: C7		RST 00h
00000194: 05		DEC B
00000195: CC 8B 87	CALL Z,878Bh
00000198: 00		NOP
00000199: 8F		ADC A
0000019A: CC CC 0F	CALL Z,0FCCh
0000019D: CC CC 8F	CALL Z,8FCCh
000001A0: 00		NOP
000001A1: 9F		SBC A
000001A2: 05		DEC B
000001A3: 19		ADD HL,DE
000001A4: 83		ADD E
000001A5: 9F		SBC A
000001A6: 00		NOP
000001A7: 01 05 81	LD BC,8105h
000001AA: 8A		ADC D
000001AB: 01 00 F1	LD BC,F100h
000001AE: 99		SBC C
000001AF: 99		SBC C
000001B0: F0		RET P
000001B1: 98		SBC B
000001B2: 98		SBC B
000001B3: F0		RET P
000001B4: 00		NOP
000001B5: 03		INC BC
000001B6: 98		SBC B
000001B7: 81		ADD C
000001B8: F0		RET P
000001B9: 03		INC BC
000001BA: 60		LD H,B
000001BB: 82		ADD D
000001BC: 00		NOP
000001BD: 0F		RRCA
000001BE: 05		DEC B
000001BF: 19		ADD HL,DE
000001C0: 8E		ADC (HL)
000001C1: 0F		RRCA
000001C2: 00		NOP
000001C3: 1F		RRA
000001C4: 99		SBC C
000001C5: 99		SBC C
000001C6: 9F		SBC A
000001C7: 99		SBC C
000001C8: 99		SBC C
000001C9: 19		ADD HL,DE
000001CA: 00		NOP
000001CB: 00		NOP
000001CC: 80		ADD B
000001CD: 80		ADD B
000001CE: 00		NOP
000001CF: 03		INC BC
000001D0: 80		ADD B
000001D1: 81		ADD C
000001D2: 00		NOP
000001D3: 06 CC		LD B,CCh
000001D5: 8B		ADC E
000001D6: 78		LD A,B
000001D7: 00		NOP
000001D8: 8C		ADC H
000001D9: CC EC FC	CALL Z,FCECh
000001DC: FC DC CC	CALL M,CCDCh
000001DF: 00		NOP
000001E0: F8		RET M
000001E1: 05		DEC B
000001E2: CC 8E F8	CALL Z,F88Eh
000001E5: 00		NOP
000001E6: F9		LD SP,HL
000001E7: C1		POP BC
000001E8: C1		POP BC
000001E9: F1		POP AF
000001EA: C1		POP BC
000001EB: C1		POP BC
000001EC: F9		LD SP,HL
000001ED: 00		NOP
000001EE: F0		RET P
000001EF: 98		SBC B
000001F0: 98		SBC B
000001F1: F0		RET P
000001F2: 03		INC BC
000001F3: 98		SBC B
000001F4: 81		ADD C
000001F5: 00		NOP
000001F6: 06 18		LD B,18h
000001F8: 83		ADD E
000001F9: 1F		RRA
000001FA: 00		NOP
000001FB: 31 05 33	LD SP,3305h
000001FE: AE		XOR (HL)
000001FF: 31 00 E3	LD SP,E300h
00000202: 33		INC SP
00000203: 33		INC SP
00000204: 03		INC BC
00000205: 33		INC SP
00000206: 33		INC SP
00000207: E3		EX HL,(SP)
00000208: 00		NOP
00000209: E4 06 07	CALL PO,0706h
0000020C: C7		RST 00h
0000020D: 06 06		LD B,06h
0000020F: E6 00		AND 00h
00000211: 63		LD H,E
00000212: 66		LD H,(HL)
00000213: 66		LD H,(HL)
00000214: E3		EX HL,(SP)
00000215: E0		RET PO
00000216: 66		LD H,(HL)
00000217: 23		INC HL
00000218: 00		NOP
00000219: C7		RST 00h
0000021A: 66		LD H,(HL)
0000021B: 06 C7		LD B,C7h
0000021D: 66		LD H,(HL)
0000021E: 66		LD H,(HL)
0000021F: C7		RST 00h
00000220: 00		NOP
00000221: C0		RET NZ
00000222: 00		NOP
00000223: 00		NOP
00000224: 80		ADD B
00000225: 00		NOP
00000226: 00		NOP
00000227: C0		RET NZ
00000228: 00		NOP
00000229: F9		LD SP,HL
0000022A: C1		POP BC
0000022B: C1		POP BC
0000022C: F1		POP AF
0000022D: 03		INC BC
0000022E: C1		POP BC
0000022F: 8A		ADC D
00000230: 00		NOP
00000231: F0		RET P
00000232: 99		SBC C
00000233: 99		SBC C
00000234: F1		POP AF
00000235: 99		SBC C
00000236: 99		SBC C
00000237: 98		SBC B
00000238: 00		NOP
00000239: F1		POP AF
0000023A: 05		DEC B
0000023B: 99		SBC C
0000023C: BB		CP E
0000023D: F1		POP AF
0000023E: 00		NOP
0000023F: 04		INC B
00000240: 8C		ADC H
00000241: DC FC AC	CALL C,ACFCh
00000244: 8C		ADC H
00000245: 8C		ADC H
00000246: 00		NOP
00000247: 78		LD A,B
00000248: CC C0 78	CALL Z,78C0h
0000024B: 0C		INC C
0000024C: CC 78 00	CALL Z,0078h
0000024F: F8		RET M
00000250: C1		POP BC
00000251: C1		POP BC
00000252: F1		POP AF
00000253: C1		POP BC
00000254: C1		POP BC
00000255: F8		RET M
00000256: 00		NOP
00000257: F0		RET P
00000258: 98		SBC B
00000259: 98		SBC B
0000025A: 80		ADD B
0000025B: B9		CP C
0000025C: 99		SBC C
0000025D: F9		LD SP,HL
0000025E: 00		NOP
0000025F: 60		LD H,B
00000260: 60		LD H,B
00000261: F0		RET P
00000262: 90		SUB B
00000263: F8		RET M
00000264: 98		SBC B
00000265: 98		SBC B
00000266: 00		NOP
00000267: 1F		RRA
00000268: 18 18		JR +18h
0000026A: 1E 18		LD E,18h
0000026C: 18 1F		JR +1Fh
0000026E: 00		NOP
0000026F: 23		INC HL
00000270: 33		INC SP
00000271: 3B		DEC SP
00000272: 3F		CCF
00000273: 37		SCF
00000274: 33		INC SP
00000275: 31 00 3F	LD SP,3F00h
00000278: 06 0C		LD B,0Ch
0000027A: 8D		ADC L
0000027B: 00		NOP
0000027C: 3E 30		LD A,30h
0000027E: 30 3C		JR NC,+3Ch
00000280: 30 30		JR NC,+30h
00000282: 3E 00		LD A,00h
00000284: 7C		LD A,H
00000285: 66		LD H,(HL)
00000286: 66		LD H,(HL)
00000287: 7C		LD A,H
00000288: 03		INC BC
00000289: 66		LD H,(HL)
0000028A: 82		ADD D
0000028B: 00		NOP
0000028C: 7C		LD A,H
0000028D: 03		INC BC
0000028E: 66		LD H,(HL)
0000028F: 9D		SBC L
00000290: 7C		LD A,H
00000291: 60		LD H,B
00000292: 60		LD H,B
00000293: 00		NOP
00000294: 63		LD H,E
00000295: 66		LD H,(HL)
00000296: 66		LD H,(HL)
00000297: 63		LD H,E
00000298: 60		LD H,B
00000299: 66		LD H,(HL)
0000029A: 63		LD H,E
0000029B: 00		NOP
0000029C: C7		RST 00h
0000029D: 0C		INC C
0000029E: 0C		INC C
0000029F: 87		ADD A
000002A0: 00		NOP
000002A1: 0C		INC C
000002A2: C7		RST 00h
000002A3: 00		NOP
000002A4: 80		ADD B
000002A5: C0		RET NZ
000002A6: 00		NOP
000002A7: 80		ADD B
000002A8: C0		RET NZ
000002A9: C0		RET NZ
000002AA: 80		ADD B
000002AB: 00		NOP
000002AC: C1		POP BC
000002AD: 05		DEC B
000002AE: C0		RET NZ
000002AF: 83		ADD E
000002B0: FC 00 F9	CALL M,F900h
000002B3: 06 61		LD B,61h
000002B5: 82		ADD D
000002B6: 00		NOP
000002B7: F0		RET P
000002B8: 05		DEC B
000002B9: 98		SBC B
000002BA: 81		ADD C
000002BB: F0		RET P
000002BC: 06 00		LD B,00h
000002BE: 02		LD (BC),A
000002BF: C0		RET NZ
000002C0: 00		NOP
000002C1: 7F		LD A,A
000002C2: 00		NOP
000002C3: 7F		LD A,A
000002C4: 00		NOP
000002C5: 7F		LD A,A
000002C6: 00		NOP
000002C7: 03		INC BC
000002C8: 00		NOP
000002C9: 00		NOP
000002CA: 7F		LD A,A
000002CB: 00		NOP
000002CC: 7F		LD A,A
000002CD: 00		NOP
000002CE: 7F		LD A,A
000002CF: 00		NOP
000002D0: 03		INC BC
000002D1: 00		NOP
000002D2: 00		NOP
000002D3: 7F		LD A,A
000002D4: 00		NOP
000002D5: 7F		LD A,A
000002D6: 00		NOP
000002D7: 7F		LD A,A
000002D8: 00		NOP
000002D9: 03		INC BC
000002DA: 00		NOP
000002DB: 00		NOP
000002DC: 08		EX AF,AF'
000002DD: 00		NOP
000002DE: 81		ADD C
000002DF: 7C		LD A,H
000002E0: 03		INC BC
000002E1: 66		LD H,(HL)
000002E2: 81		ADD C
000002E3: 7C		LD A,H
000002E4: 03		INC BC
000002E5: 60		LD H,B
000002E6: 81		ADD C
000002E7: 7C		LD A,H
000002E8: 03		INC BC
000002E9: 66		LD H,(HL)
000002EA: 81		ADD C
000002EB: 7C		LD A,H
000002EC: 03		INC BC
000002ED: 66		LD H,(HL)
000002EE: 81		ADD C
000002EF: 3C		INC A
000002F0: 06 66		LD B,66h
000002F2: 82		ADD D
000002F3: 3C		INC A
000002F4: 7C		LD A,H
000002F5: 06 66		LD B,66h
000002F7: 81		ADD C
000002F8: 7C		LD A,H
000002F9: 07		RLCA
000002FA: 66		LD H,(HL)
000002FB: 02		LD (BC),A
000002FC: 3C		INC A
000002FD: 02		LD (BC),A
000002FE: 66		LD H,(HL)
000002FF: 02		LD (BC),A
00000300: 60		LD H,B
00000301: 02		LD (BC),A
00000302: 66		LD H,(HL)
00000303: 85		ADD L
00000304: 3C		INC A
00000305: 7E		LD A,(HL)
00000306: 60		LD H,B
00000307: 60		LD H,B
00000308: 7C		LD A,H
00000309: 03		INC BC
0000030A: 60		LD H,B
0000030B: 85		ADD L
0000030C: 7E		LD A,(HL)
0000030D: 7C		LD A,H
0000030E: 66		LD H,(HL)
0000030F: 66		LD H,(HL)
00000310: 7C		LD A,H
00000311: 03		INC BC
00000312: 66		LD H,(HL)
00000313: 81		ADD C
00000314: 7C		LD A,H
00000315: 04		INC B
00000316: 66		LD H,(HL)
00000317: 81		ADD C
00000318: 3C		INC A
00000319: 03		INC BC
0000031A: 18 88		JR -78h
0000031C: 46		LD B,(HL)
0000031D: 66		LD H,(HL)
0000031E: 76		HALT
0000031F: 7E		LD A,(HL)
00000320: 7E		LD A,(HL)
00000321: 6E		LD L,(HL)
00000322: 66		LD H,(HL)
00000323: 62		LD H,D
00000324: 07		RLCA
00000325: 60		LD H,B
00000326: 82		ADD D
00000327: 7E		LD A,(HL)
00000328: 3C		INC A
00000329: 06 18		LD B,18h
0000032B: 02		LD (BC),A
0000032C: 3C		INC A
0000032D: 8B		ADC E
0000032E: 66		LD H,(HL)
0000032F: 60		LD H,B
00000330: 7C		LD A,H
00000331: 3E 06		LD A,06h
00000333: 66		LD H,(HL)
00000334: 3C		INC A
00000335: 7E		LD A,(HL)
00000336: 60		LD H,B
00000337: 60		LD H,B
00000338: 7C		LD A,H
00000339: 04		INC B
0000033A: 60		LD H,B
0000033B: 85		ADD L
0000033C: 41		LD B,C
0000033D: 63		LD H,E
0000033E: 77		LD (HL),A
0000033F: 7F		LD A,A
00000340: 6B		LD L,E
00000341: 03		INC BC
00000342: 63		LD H,E
00000343: 8D		ADC L
00000344: 3C		INC A
00000345: 66		LD H,(HL)
00000346: 66		LD H,(HL)
00000347: 60		LD H,B
00000348: 6E		LD L,(HL)
00000349: 66		LD H,(HL)
0000034A: 66		LD H,(HL)
0000034B: 3E 3C		LD A,3Ch
0000034D: 24		INC H
0000034E: 66		LD H,(HL)
0000034F: 66		LD H,(HL)
00000350: 7E		LD A,(HL)
00000351: 03		INC BC
00000352: 66		LD H,(HL)
00000353: 81		ADD C
00000354: 7E		LD A,(HL)
00000355: 07		RLCA
00000356: 18 06		JR +06h
00000358: 00		NOP
00000359: 02		LD (BC),A
0000035A: 18 00		JR +00h
0000035C: 7F		LD A,A
0000035D: 00		NOP
0000035E: 21 00 00	LD HL,0000h
00000361: 7F		LD A,A
00000362: 00		NOP
00000363: 21 00 00	LD HL,0000h
00000366: 7F		LD A,A
00000367: 00		NOP
00000368: 21 00 00	LD HL,0000h
0000036B: 00		NOP
0000036C: 00		NOP
0000036D: 00		NOP
0000036E: 01 02 03	LD BC,0302h
00000371: 04		INC B
00000372: 05		DEC B
00000373: 06 07		LD B,07h
00000375: 08		EX AF,AF'
00000376: 09		ADD HL,BC
00000377: 0A		LD A,(BC)
00000378: 0B		DEC BC
00000379: 0C		INC C
0000037A: 0D		DEC C
0000037B: 0E 00		LD C,00h
0000037D: 00		NOP
0000037E: 00		NOP
0000037F: 00		NOP
00000380: 00		NOP
00000381: 00		NOP
00000382: 0F		RRCA
00000383: 10 11		DJNZ +11h
00000385: 12		LD (DE),A
00000386: 13		INC DE
00000387: 14		INC D
00000388: 15		DEC D
00000389: 16 17		LD D,17h
0000038B: 18 19		JR +19h
0000038D: 1A		LD A,(DE)
0000038E: 1B		DEC DE
0000038F: 1C		INC E
00000390: 1D		DEC E
00000391: 1E 00		LD E,00h
00000393: 00		NOP
00000394: 00		NOP
00000395: 00		NOP
00000396: 1F		RRA
00000397: 20 21		JR NZ,+21h
00000399: 22 23 24	LD (2423h),HL
0000039C: 25		DEC H
0000039D: 26 27		LD H,27h
0000039F: 28 27		JR Z,+27h
000003A1: 29		ADD HL,HL
000003A2: 19		ADD HL,DE
000003A3: 2A 2B 2C	LD HL,(2C2Bh)
000003A6: 2D		DEC L
000003A7: 2E 2F		LD L,2Fh
000003A9: 00		NOP
000003AA: 00		NOP
000003AB: 00		NOP
000003AC: 00		NOP
000003AD: 01 02 03	LD BC,0302h
000003B0: 04		INC B
000003B1: 05		DEC B
000003B2: 06 07		LD B,07h
000003B4: 04		INC B
000003B5: 00		NOP
000003B6: 08		EX AF,AF'
000003B7: 09		ADD HL,BC
000003B8: 00		NOP
000003B9: 03		INC BC
000003BA: 02		LD (BC),A
000003BB: 00		NOP
000003BC: 00		NOP
000003BD: 00		NOP
000003BE: 00		NOP
000003BF: 00		NOP
000003C0: 05		DEC B
000003C1: 0A		LD A,(BC)
000003C2: 04		INC B
000003C3: 07		RLCA
000003C4: 02		LD (BC),A
000003C5: 00		NOP
000003C6: 0B		DEC BC
000003C7: 0C		INC C
000003C8: 06 07		LD B,07h
000003CA: 0A		LD A,(BC)
000003CB: 0D		DEC C
000003CC: 07		RLCA
000003CD: 00		NOP
000003CE: 0E 02		LD C,02h
000003D0: 03		INC BC
000003D1: 0F		RRCA
000003D2: 00		NOP
000003D3: 00		NOP
000003D4: 0D		DEC C
000003D5: 07		RLCA
000003D6: 10 11		DJNZ +11h
000003D8: 00		NOP
000003D9: 07		RLCA
000003DA: 0A		LD A,(BC)
000003DB: 12		LD (DE),A
000003DC: 07		RLCA
000003DD: 02		LD (BC),A
000003DE: 01 02 0C	LD BC,0C02h
000003E1: 0D		DEC C
000003E2: 07		RLCA
000003E3: 0D		DEC C
000003E4: 00		NOP
000003E5: 0B		DEC BC
000003E6: 12		LD (DE),A
000003E7: 04		INC B
000003E8: 13		INC DE

(03E9h)
[DATA: VDP Registers]
 16h, 80h       ;       VDP_Reg[0] = 16h        Configuration 1
 A0h, 81h       ;       VDP_Reg[1] = A0h        Configuration 2
 FFh, 82h       ;       VDP_Reg[2] = FFh        ;
 FFh, 83h       ;       VDP_Reg[3] = FFh        ;
 FFh, 84h       ;       VDP_Reg[4] = FFh        ;
 FFh, 85h       ;       VDP_Reg[5] = FFh        ;
 FFh, 86h       ;       VDP_Reg[6] = FFh        ;
 00h, 87h       ;       VDP_Reg[7] = 00h        Border
 00h, 88h       ;       VDP_Reg[8] = 00h        Horizontal Scrolling
 00h, 89h       ;       VDP_Reg[9] = 00h        Vertical Scrolling
 FFh, 8Ah       ;      VDP_Reg[10] = FFh        Line counter
[/DATA]

000003FF: FF            RST 38h

