|
|
LD B,001h ; Loop = 1
L4677: CALL L2353 ; Wait for Comm Ready
DJNZ L4677 ; Loop for 1 Comm
PUSH HL ; Save HL Register
LD HL,0002Eh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4683: .TEXT "SERVICE MODE 02: GAME ADJUST"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,00079h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L46A8: .TEXT "LIVES PER 1 CREDIT ="
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,000A2h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L46C5: .TEXT "DIP SWITCH 28,29"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
LD B,001h ; Loop = 1
L46D9: CALL L2353 ; Wait for Comm Ready
DJNZ L46D9 ; Loop for 1 Comm
PUSH HL ; Save HL Register
LD HL,000CAh ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L46E5: .TEXT "BITS 1, 2 = "
.DB 000h
;----------------------------------------------------
L46F4: POP HL ; Restore HL Register
LD A,(0E187h) ; Get DIP Switches 28-35
L46F8: AND 003h ; A = DIP 28 and 29 (# lives)
ADD A,003h ; Add 3 to get total lives (3,4,5,6)
OR 030h ; Make number into character
LD DE,01603h ; Location X = 22, Y = 3
CALL L2233 ; Print Lives to Text Display
LD A,(0E187h) ; Get DIP Switches 28-35
RRC A ; Shift A Right Circular
AND 001h ; Turn on bit 1
LD DE,00E05h ; Location X = 14, Y = 5
OR 030h ; Make number into character
CALL L2233 ; Print one Character to Text Display
LD A,(0E187h) ; Get DIP Switches 28-35
AND 001h ; Turn on bit 1
OR 030h ; Make number into character
CALL L2256 ; Print A to Text Display
L471D: LD B,001h ; Loop = 1
L471F: CALL L2353 ; Wait for Comm Ready
DJNZ L471F ; Loop for 1 Comm
PUSH HL ; Save HL Register
LD HL,00169h ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L472B: .TEXT "DIP SW. 4,5,6,7"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,00191h ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4743: .TEXT "BITS 1234 ="
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
LD B,001h ; Loop = 1
L4752: CALL L2353 ; Wait for Comm Ready
DJNZ L4752 ; Loop for 1 Comm
PUSH HL ; Save HL Register
LD HL,00140h ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L475E: .TEXT "DIFFICULTY = "
.DB 000h
;----------------------------------------------------
L476E: POP HL ; Restore HL Register
LD A,(0E190h) ; Get DIP Switches 4-11
AND 00Fh ; Get Window Move Time
CALL L22AA ; Convert Window Move Time into decimal
LD (HL),A ; Save Window Move Byte
LD DE,00D08h ; Cursor Position (X=13,Y=8)
CALL L225D ; Print 2-Digit Number
LD B,001h ; Loop = 1
L4780: CALL L2353 ; Wait for Comm Ready
L4783: DJNZ L4780 ; Loop for 1 Comm
LD A,(0E190h) ; Get DIP Switches 4-11
RRC A ; Get Switch 7
RRC A ; Get Switch 7
L478C: RRC A ; Get Switch 7
AND 001h ; Isolate Switch 7
OR 030h ; Make number into character
LD DE,00D0Ah ; Cursor Position (X=13,Y=10)
CALL L2233 ; Print one Character to Text Display
LD A,(0E190h) ; Get DIP Switches 4-11
RRC A ; Get Switch 6
RRC A ; Get Switch 6
AND 001h ; Isolate Switch 6
OR 030h ; Make number into character A
CALL L2256 ; Print A to Text Display
LD A,(0E190h) ; Get DIP Switches 4-11
RRC A ; Get Switch 5
AND 001h ; Isolate Switch 5
OR 030h ; Make number into character A
CALL L2256 ; Print A to Text Display
LD A,(0E190h) ; Get DIP Switches 4-11
AND 001h ; Get Switch 4
OR 030h ; Make number into character A
CALL L2256 ; Print A to Text Display
LD B,001h ; Loop = 1
L47BE: CALL L2353 ; Wait for Comm Ready
DJNZ L47BE ; Loop for 1 Comm
PUSH HL ; Save HL Register
LD HL,0017Ch ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L47CA: .TEXT "DIP SW. 8,9,10,11"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,001A4h ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L47E4: .TEXT "BITS 1234 ="
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
LD B,001h ; Loop = 1
L47F3: CALL L2353 ; Wait for Comm Ready
DJNZ L47F3 ; Loop for 1 Comm
PUSH HL ; Save HL Register
LD HL,00153h ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L47FF: .TEXT "HINTS = "
.DB 000h
;----------------------------------------------------
L480C: POP HL ; Restore HL Register
LD A,(0E190h) ; Get DIP Switches 4-11
RRC A ; Get Switches 8-11
RRC A ; Get Switches 8-11
RRC A ; Get Switches 8-11
RRC A ; Get Switches 8-11
AND 00Fh ; Isolate Switches 8-11
CALL L22AA ; Convert hex byte into decimal byte
LD (HL),A ; Number = switches
LD DE,01B08h ; Cursor Position (X=27,Y=8)
CALL L225D ; Print 2-Digit Number
LD B,001h ; Loop = 1
L4826: CALL L2353 ; Wait for Comm Ready
DJNZ L4826 ; Loop for 1 Comm
LD A,(0E190h) ; Get DIP Switches 4-11
RRC A ;
RRC A ;
RRC A ;
RRC A ;
RRC A ;
RRC A ;
RRC A ;
AND 001h ;
OR 030 ;
LD DE,0200Ah ;
L4843: CALL L2233 ; Print one Character to Text Display
LD A,(0E190h) ; Get DIP Switches 4-11
RRC A ;
RRC A ;
RRC A ;
RRC A ;
RRC A ;
RRC A ;
AND 001h ;
OR 030h ;
CALL L2256 ; Print A to Text Display
LD A,(0E190h) ; Get DIP Switches 4-11
RRC A ;
RRC A ;
RRC A ;
RRC A ;
RRC A ;
AND 001h ;
OR 030h ;
CALL L2256 ;
LD A,(0E190h) ; Get DIP Switches 4-11
RRC A
RRC A
RRC A
RRC A
AND 001h
OR 030h
CALL L2256
LD B,001h ; Loop = 1
L4884: CALL L2353 ; Wait for Comm Ready
DJNZ L4884 ; Loop for 1 Comm
PUSH HL ; Save HL Register
LD HL,00209h ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
LD D,E
LD B,L
LD D,D
LD D,(HL)
LD C,C
LD B,E
LD B,L
JR NZ,L48EC
LD D,A
LD C,C
LD D,H
LD B,E
LD C,B
LD B,L
LD D,E
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,00232h ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
LD (HL),E
LD H,L
LD (HL),D
HALT
LD L,C
LD H,E
LD H,L
JR NZ,L491B
LD L,(HL)
LD H,H
LD H,L
LD A,B
JR NZ,L48F5
JR NZ,L48BA
.DB 000h
;----------------------------------------------------
L48BA: POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,0025A ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
LD (HL),E
LD (HL),A
LD L,C
LD (HL),H
LD H,E
LD L,B
JR NZ,L493E
LD H,L
LD (HL),E
LD (HL),H
JR NZ,L48EF
JR NZ,L490E
JR NZ,L48D3
.DB 000h
;----------------------------------------------------
L48D3: POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,00282 ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
LD H,(HL)
LD (HL),D
LD H,L
LD H,L
JR NZ,L4951
LD L,H
LD H,C
LD A,C
JR NZ,L4906
JR NZ,L4908
JR NZ,L4927
JR NZ,L48EC
.DB 000h
;----------------------------------------------------
L48EC: POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,002AAh ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
LD L,C
L48F5: LD L,L
LD L,L
LD L,A
LD (HL),D
LD (HL),H
LD H,C
LD L,H
LD L,C
LD (HL),H
LD A,C
JR NZ,L4921
JR NZ,L4940
JR NZ,L4905
.DB 000h
;----------------------------------------------------
L4905: POP HL ; Restore HL Register
L4906: PUSH HL ; Save HL Register
LD HL,002D2h ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
LD H,H
L490E: LD L,C
LD (HL),E
LD H,E
JR NZ,L4987
LD H,L
LD (HL),E
LD (HL),H
JR NZ,L4938
JR NZ,L493A
JR NZ,L4959
JR NZ,L491E
.DB 000h
;----------------------------------------------------
L491E: POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,002FAh ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
LD H,C
L4927: LD (HL),H
LD (HL),H
LD (HL),D
LD H,C
LD H,E
LD (HL),H
JR NZ,L49A2
LD L,A
LD (HL),L
LD L,(HL)
LD H,H
JR NZ,L4972
JR NZ,L4937
.DB 000h
;----------------------------------------------------
L4937: POP HL ; Restore HL Register
L4938: PUSH HL ; Save HL Register
LD HL,00322h ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
LD (HL),B
L4940: LD L,H
LD H,C
LD A,C
JR NZ,L49B7
LD H,C
LD L,(HL)
LD H,H
LD L,A
LD L,L
JR NZ,L496C
JR NZ,L498B
JR NZ,L4950
.DB 000h
;----------------------------------------------------
L4950: POP HL ; Restore HL Register
L4951: LD B,001h ; Loop = 1
L4953: CALL L2353 ; Wait for Comm Ready
DJNZ L4953 ; Loop for 1 Comm
LD DE,0120Eh
LD A,(0E18Dh) ; Get DIP Switches 12-19
AND 001h
CALL L49A9
INC E
LD A,(0E18Dh) ; Get DIP Switches 12-19
AND 002h
CALL L49A9
L496C: INC E
LD A,(0E18Dh) ; Get DIP Switches 12-19
AND 004h
L4972: CALL L49A9
INC E
LD A,(0E18Dh) ; Get DIP Switches 12-19
AND 008h
CALL L49A9
INC E
LD A,(0E18Dh) ; Get DIP Switches 12-19
AND 010h
CALL L49A9
L4987: INC E
LD A,(0E18Dh) ; Get DIP Switches 12-19
L498B: AND 020h
CALL L49A9
INC E
LD A,(0E18Dh) ; Get DIP Switches 12-19
AND 040h
CALL L49A9
LD B,001h ; Loop =1
L499B: CALL L2353 ; Wait for Comm Ready
DJNZ L499B ; Loop for 1 Comm
CALL L49C9 ; Print "Player2 = Exit"
CALL L42B9 ; Process Service Mode User Input
JP L466B ;
;----------------------------------------------------
; Printing Subroutine
;----------------------------------------------------
L49A9: JR Z,L49BB ;
LD A,020h ; A = Character space
CALL L2233 ; Print one Character to Text Display
LD A,04Fh ;
CALL L2256 ; Print A to Text Display
LD A,04Eh ;
L49B7: CALL L2256 ;
RET ; Return
;----------------------------------------------------
;
;----------------------------------------------------
L49BB: LD A,04Fh
CALL L2233 ; Print one Character to Text Display
LD A,046h
CALL L2256 ; Print A to Text Display
CALL L2256 ; Print A to Text Display
RET
;----------------------------------------------------
; Print "Player2 = Exit"
;----------------------------------------------------
L49C9: PUSH HL ; Save HL Register
LD HL,003A4h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L49D0: .TEXT "player 2 = exit"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
RET ; Return
;----------------------------------------------------
; Report Bookkeeping Data
;----------------------------------------------------
L49E2: LD A,004h ; A = 4
LD (0E1E5h),A ;
L49E7: LD B,001h ; Loop = 1
L49E9: CALL L2353 ; Wait for Comm Ready
DJNZ L49E9 ; Loop for 1 Comm
CALL L245B ; Get ALL Input Data
LD B,001h ; Loop = 1
L49F3: CALL L2353 ; Wait for Comm Ready
DJNZ L49F3 ; Loop for 1 Comm
PUSH HL ; Save HL Register
LD HL,0002Eh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L49FF: .TEXT "SERVICE MODE 01: BOOKKEEPING"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,000C9h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4A24: .TEXT "TOTAL PLAYS"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
LD DE,01905h ; Location X = 25, Y = 5
LD HL,0E0A0h ; Number = Total Plays
CALL L2265 ; Print 6-digit number
PUSH HL ; Save HL Register
LD HL,00119h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4A41: .TEXT "LEFT CHUTE"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
LD DE,01B07h ; Location X = 27, Y = 7
LD HL,0E0A3h ; Number = Left Slot Coin Total
CALL L2261 ; Print 4-digit number
PUSH HL ; Save HL Register
LD HL,00169h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4A5D: .TEXT "RIGHT CHUTE"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
LD DE,01B09h ; Location X = 27,Y = 9
LD HL,0E0A5h ; Number = Right Slot Coin Total
CALL L2261 ; Print 4-digit number
LD B,001h ; Loop = 1
L4A75: CALL L2353 ; Wait for Comm Ready
DJNZ L4A75 ; Loop for 1 Comm
PUSH HL ; Save HL Register
L4A7B: LD HL,001B9h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4A81: .TEXT "TOTAL SECONDS PLAYED"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
LD DE,0190Bh ; Location X = 25,Y = 11
LD HL,0E0A8h ; Number = Total Seconds Played
CALL L2265 ; Print 6-digit number
PUSH HL ; Save HL Register
LD HL,00209h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4AA7: .TEXT "LONG GAME SECONDS"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
LD DE,0190Dh ; Location X = 25, Y = 13
LD HL,0E0ABh ; Number = Long Game Seconds
CALL L2265 ; Print 6-digit number
PUSH HL ; Save HL Register
LD HL,00259h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4ACA: .TEXT "SHORT GAME SECONDS"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
LD DE,01D0Fh ; Location X = 29, Y = 15
LD HL,0E0AEh ; Number = Short Game Seconds
CALL L225D ; Print 2-digit number
LD B,001h ; Loop = 1
L4AE9: CALL L2353 ; Wait for Comm Ready
DJNZ L4AE9 ; Loop for 1 Comm
PUSH HL ; Save HL Register
LD HL,002A9h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4AF5: .TEXT "HIGHEST GAME SCORE"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
LD DE,01711h ; Location X = 23, Y = 17
LD HL,0E003h ; Number = Highest Score
CALL L2269 ; Print 8-digit number
PUSH HL ; Save HL Register
LD HL,002F9h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4B19: .TEXT "HIGHEST SCENE"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
LD DE,01D13h ; Location X = 29, Y = 19
LD HL,0E0AFh ; Number = Highest Scene
CALL L225D ; Print 2-digit number
CALL L4B8A ; Print Bookkeeping Instructions
CALL L42B9 ; Process Service Mode User Input
LD HL,0E184h ; Get ZPU Switches 1 & 2
BIT 7,(HL) ; Check switch 2
JR Z,L4B4C ; Not pressed so skip ahead
;----------------------------------------------------
; ZPU Switch 2 pressed so reset data
;----------------------------------------------------
LD HL,0E0A7h ;
INC (HL) ;
LD HL,0E0B0h ;
INC (HL) ;
CALL L1627 ; Reset Bookkeeping Data
CALL L21FF ; Clear Text Display
L4B4C: LD HL,0E184h ; Get ZPU Switches 1 & 2
BIT 6,(HL) ; Check switch 1
JR Z,L4B80 ; Not pressed so skip ahead
;----------------------------------------------------
; ZPU Switch 1 pressed so erase highest score
;----------------------------------------------------
LD BC,00048h ; 9 High scores to copy (72 bytes)
L4B56: LD DE,0E000h ; Destination = Highest score
LD HL,0E008h ; Source = 2nd High score
LDIR ; Move all scores up one spot
EX DE,HL ; HL = Lowest Score
LD (HL),055h
INC HL
LD (HL),052h
INC HL
LD (HL),04Ch
INC HL
LD (HL),000h
INC HL
LD (HL),000h
INC HL
LD (HL),000h
INC HL
LD (HL),000h
LD HL,0E048h ; Sum bytes
LD B,007h ; 7 bytes to sum
CALL L110C ; Call sum all bytes
CPL ; Reverse all bits
LD (HL),A ; Store sum
CALL L21FF ; Clear Text Display
L4B80: LD B,001h ; Loop = 1
L4B82: CALL L2353 ; Wait for Comm Ready
DJNZ L4B82 ; Loop for 1 Comm
JP L49E7 ; Loop back to Bookkeeping Data
;----------------------------------------------------
; Print Bookkeeping Instructions
;----------------------------------------------------
L4B8A: PUSH HL ; Save HL Register
LD HL,00350h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4B91: .TEXT "Player 2 = Exit. "
.DB 000h
;----------------------------------------------------
L4BAA: POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,00377h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4BB2: .TEXT "Switch #1 Clears Hiscores"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,0039Fh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4BD4: .TEXT "Switch #2 Clears All Else"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
RET ; Return
;----------------------------------------------------
; Sound Test
;----------------------------------------------------
L4BF0: LD B,001h ; Loop = 1
L4BF2: CALL L2353 ; Wait for Comm Ready
DJNZ L4BF2 ; Loop for 1 Comm
LD A,005h ; Starting Row = 5
LD (0E1E6h),A ; Save Rectangle starting row
CALL L4389 ; Draw Rectangle
L4BFF: LD A,040h
LD (0E1E5h),A
L4C04: PUSH HL ; Save HL Register
LD HL,00056h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4C0B: .TEXT "SERVICE MODE 05: SOUND TESTS"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,000CCh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4C30: .TEXT "GOOD ACTION SOUND (beep)"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,0011Ch ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4C58: .TEXT "ANY or BAD ACTION SOUND (boop)"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
LD B,001h ; Loop = 1
L4C7B: CALL L2353 ; Wait for Comm Ready
DJNZ L4C7B ; Loop for 1 Comm
PUSH HL ; Save HL Register
LD HL,0039Bh ; Cursor Location
L4C84: CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4C87: .TEXT "Press Player 1 start to make sound"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
CALL L42B9 ; Process Service Mode User Input
CALL L4CBB ; Check Button and Sound Correct Beep
LD B,00Ah ; Loop = 10
L4CB3: CALL L2353 ; Wait for Comm Ready
DJNZ L4CB3 ; Loop for 10 Comm's
JP L4C04 ; Continue Sound Test
;----------------------------------------------------
; Check Button and Sound Correct Beep
;----------------------------------------------------
L4CBB: LD A,(0E193h) ; Get Button Data
BIT 2,A ; Is PLAYER1/FEET pressed?
RET Z ; Not pressed so leave
LD A,(0E1E6h) ; Get Rectangle location
CP 005h ; Is good beep selected?
L4CC6: CALL Z,GoodBeep ; Yes, so sound Good Beep
LD A,(0E1E6h) ; Get Rectangle location
L4CCC: CP 007h ; Is bad beep selected?
CALL Z,BadBeep ; Yes, so sound Bad Beep
RET ; Return
;----------------------------------------------------
; Service Mode 3: CREDIT ADJUST
;----------------------------------------------------
L4CD2: XOR A ; A = 0
LD (0E1E6h),A ;
LD A,010h ;
LD (0E1E5h),A ;
L4CDB: CALL L245B ; Get ALL Input Data
L4CDE: PUSH HL ; Save HL Register
LD HL,0002Dh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4CE5: .TEXT "SERVICE MODE 03: CREDIT ADJUST"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,00169h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4D0C: .TEXT "LEFT CHUTE"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
L4D18: PUSH HL ; Save HL Register
LD HL,001BAh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4D1F: .TEXT "SWITCH 20, 21"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,0020Ah ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4D35: .TEXT "COINS:"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,0025Ah ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4D44: .TEXT "CREDITS:"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
CALL L4DD2 ;
LD DE,00C0Dh ;
OR 030h ;
CALL L2233 ; Print one Character to Text Display
L4D59: INC E ; Move down one row
INC E ; Move down one row
LD A,B ;
OR 030h ;
CALL L2233 ; Print one Character to Text Display
PUSH HL ; Save HL Register
LD HL,0017Dh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4D68: .TEXT "RIGHT CHUTE"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,001CEh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4D7C: .TEXT "SWITCH 24, 25"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,0021Eh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4D92: .TEXT "COINS:"
.DB 000h
;----------------------------------------------------
PUSH HL ; Save HL Register
LD HL,0026Eh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4DA1: .TEXT "CREDITS:"
.DB 000h
;----------------------------------------------------
POP HL ;
LD A,(0E18Ah) ; Get DIP Switches 20-27
RRCA ;
RRCA ;
RRCA ;
RRCA ;
L4DB2: CALL L4DD5 ;
LD DE,0200Dh ;
OR 030h ;
L4DBA: CALL L2233 ; Print one Character to Text Display
INC E ; Location Y = Y + 1
INC E ; Location Y = Y + 1
LD A,B ;
OR 030h ;
CALL L2233 ; Print one Character to Text Display
CALL L42B9 ; Process Service Mode User Input
LD B,001h ; Loop = 1
L4DCA: CALL L2353 ; Wait for Comm Ready
DJNZ L4DCA ; Loop for 1 Comm
JP L4CDB ; Loop back to Credit Adjust
;----------------------------------------------------
; Credits?
; Return A =
; Return B =
;----------------------------------------------------
L4DD2: LD A,(0E18Ah) ; Get DIP Switches 20-27
L4DD5: AND 003h ; Get Slot 1 Credits per Coins
ADD A,A ;
LD D,000h ;
LD E,A ;
LD HL,04DE3h ; HL = Credit Table (below)
ADD HL,DE ;
LD A,(HL) ;
INC HL ;
LD B,(HL) ;
RET ; Return
;----------------------------------------------------
; Credit Table
;----------------------------------------------------
L4DE3: .DB 002h, 001h
.DB 002h, 001h
.DB 003h, 001h
.DB 004h, 001h
;----------------------------------------------------
; STATISTICS: Range of Scores
;----------------------------------------------------
L4DEB:
GameStatEntry:
XOR A ; A = 0
LD (0E1E6h),A
LD A,020h
LD (0E1E5h),A
LD B,001h ; Loop = 1
L4DF6: CALL L2353 ; Wait for Comm Ready
DJNZ L4DF6 ; Loop for 1 Comm
CALL L21FF ; Clear Text Display
LD A,0E1h ; Text = GRAY, Bkgnd = BLACK
CALL L20CA ; Setup Graphics Chip for Text
L4E03: CALL L21FF ; Clear Text Display
LD A,0E1h ; Text = GRAY, Bkgnd = BLACK
CALL L20CA ; Setup Graphics Chip for Text
PUSH HL ; Save HL Register
LD HL,00056h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4E12: .TEXT "SERVICE MODE 06: STATISTICS"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
L4E2F: PUSH HL ; Save HL Register
LD HL,000ACh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4E36: .TEXT "RANGE OF SCORES"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,000F7h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4E4E: .TEXT " 0 - 100K"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,0011Fh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4E64: .TEXT " 100K - 200K"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
L4E74: LD HL,00147h ; Cursor Position
L4E77: CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4E7A: .TEXT " 200K - 300K"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,0016Fh ; Cursor Position
L4E8D: CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4E90: .TEXT " 300K - 400K"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,00197h ; Cursor Position
L4EA3: CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4EA6: .TEXT " 400K - 500K"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
LD B,001h ; Loop = 1
L4EB7: CALL L2353 ; Wait for Comm Ready
DJNZ L4EB7 ; Loop for 1 Comm
PUSH HL ; Save HL Register
LD HL,001BFh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4EC3: .TEXT " 500K - 600K"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,001E7h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4ED9: .TEXT " 600K - 700K"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,0020Fh ; Cursor Position
L4EEC: CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4EEF: .TEXT " 700K - 800K"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,00237h ; Cursor Position
L4F02: CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4F05: .TEXT " 800K - 900K"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
L4F15: LD HL,0025Fh ; Cursor Position
L4F18: CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4F1B: .TEXT " 900K - 1000K"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
L4F2A: LD B,001h ; Loop = 1
L4F2C: CALL L2353 ; Wait for Comm Ready
DJNZ L4F2C ; Loop for 1 Comm
PUSH HL ; Save HL Register
LD HL,00287h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4F38: .TEXT "1000K - 1100K"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
L4F47: PUSH HL ; Save HL Register
LD HL,002AFh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4F4E: .TEXT "1100K - 1200K"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,002D7h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4F64: .TEXT "1200K - 1300K"
.DB 000h
;----------------------------------------------------
L4F72: POP HL ; Restore HL Register
L4F73: PUSH HL ; Save HL Register
LD HL,002FFh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4F7A: .TEXT "1300K - 1400K"
.DB 000h
;----------------------------------------------------
L4F88: POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,00327h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4F90: .TEXT "1400K + "
.DB 000h
;----------------------------------------------------
L4F99: POP HL ; Restore HL Register
LD B,001h ; Loop = 1
L4F9C: CALL L2353 ; Wait for Comm Ready
DJNZ L4F9C ; Loop for 1 Comm
CALL L533E ; Print Service Mode Instructions
LD DE,01606h ; Location X = 22, Y = 6
LD HL,0E0B1h ; Start of Number = Score Ranges
LD B,00Fh ; Loop = 15 Score Ranges to print
L4FAC: CALL L2261 ; Print 4-digit number
INC E ; Move down one row
DJNZ L4FAC ; Print all 15 Score Ranges
CALL L52DF ; Is PLAYER1 button pressed?
JR NZ,L4FCA ; Pressed, so show Range of Times
CALL L5305 ; Check ZPU Switch 2
LD HL,0E0CFh ; HL = Bookkeeping Counter
CALL NZ,L5312 ; Pressed, so Print Blank Statistics screen
LD B,001h ; Loop = 1
L4FC2: CALL L2353 ; Wait for Comm Ready
DJNZ L4FC2 ; Loop for 1 Comm
JP L4E2F ; Loop back and show Range of Scores
;----------------------------------------------------
; STATISTICS: Range of Times
;----------------------------------------------------
L4FCA: CALL L21FF ; Clear Text Display
PUSH HL ; Save HL Register
LD HL,00056h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4FD4: .TEXT "SERVICE MODE 06: STATISTICS"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
L4FF1: PUSH HL ; Save HL Register
LD HL,000ACh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L4FF8: .TEXT "RANGE OF TIMES "
.DB 000h
;----------------------------------------------------
L5008: POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,000F7h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5010: .TEXT " 0 - 1 MIN"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,0011Fh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5028: .TEXT " 1 MIN - 2 MIN"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
L5039: PUSH HL ; Save HL Register
L503A: LD HL,00147 ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5040: .TEXT " 2 MIN - 3 MIN"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
L5052: LD HL,0016Fh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5058: .TEXT " 3 MIN - 4 MIN"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
L506A: LD HL,00197h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5070: .TEXT " 4 MIN - 5 MIN"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
LD B,001h ; Loop = 1
L5083: CALL L2353 ; Wait for Comm Ready
DJNZ L5083 ; Loop for 1 Comm
PUSH HL ; Save HL Register
LD HL,001BFh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L508F: .TEXT " 5 MIN - 6 MIN"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,001E7h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L50A7: .TEXT " 6 MIN - 7 MIN"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
L50B9: LD HL,0020Fh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L50BF: .TEXT " 7 MIN - 8 MIN"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
L50D1: LD HL,00237h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L50D7: .TEXT " 8 MIN - 9 MIN"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
L50E9: LD HL,0025Fh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L50EF: .TEXT " 9 MIN - 10 MIN"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
LD B,001h ; Loop = 1
L5102: CALL L2353 ; Wait for Comm Ready
DJNZ L5102 ; Loop for 1 Comm
PUSH HL ; Save HL Register
LD HL,00287h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L510E: .TEXT "10 MIN - 11 MIN"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,002AFh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5126: .TEXT "11 MIN - 12 MIN"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,002D7h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L513E: .TEXT "12 MIN - 13 MIN"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,002FFh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5156: .TEXT "13 MIN - 14 MIN"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,00327h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L516E: .TEXT "14 MIN ++"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
L5179: LD B,001h ; Loop = 1
L517B: CALL L2353 ; Wait for Comm Ready
DJNZ L517B ; Loop for 1 Comm
CALL L533E ; Print Service Mode Instructions
LD HL,0E0D0h ; Start Number = Range of Times
LD B,00Fh ; Loop = 15 Time Ranges
LD DE,01606h ; Location X = 22, Y = 6
L518B: CALL L2261 ; Print 4-digit number
INC E ; Move down one row
DJNZ L518B ; Loop until all Time Ranges printed
L5191: CALL L52DF ; Is PLAYER1 Button Pressed?
JR NZ,L51A9 ; Yes, so goto Range of Scenes
CALL L5305 ; Check ZPU Switch 2
LD HL,0E0EEh ; HL = Bookkeeping Counter (Range of Times)
CALL NZ,L5312 ; Pressed, so Print Blank statistics screen
LD B,001h ; Loop = 1
L51A1: CALL L2353 ; Wait for Comm Ready
DJNZ L51A1 ; Loop for 1 Comm
JP L4FF1 ; Continue Loop on Range of Times
;----------------------------------------------------
; STATISTICS: Range of Scenes
;----------------------------------------------------
L51A9: CALL L21FF ; Clear Text Display
LD B,001h ; Loop = 1
L51AE: CALL L2353 ; Wait for Comm Ready
DJNZ L51AE ; Loop for 1 Comm
PUSH HL ; Save HL Register
LD HL,00056h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L51BA: .TEXT "SERVICE MODE 06: STATISTICS"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
L51D7: PUSH HL ; Save HL Register
LD HL,000ACh ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L51DE: .text "RANGE OF SCENES"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,000F7h ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L51F6: .TEXT " 1ST SCENE"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,0011Fh ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L520D: .TEXT " 2ND SCENE"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
L521E: LD HL,00147h ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5224: .TEXT " 3RD SCENE"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
L5234: PUSH HL ; Save HL Register
L5235: LD HL,0016Fh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L523B: .TEXT " 4TH SCENE"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
LD B,001h ; Loop = 1
L524D: CALL L2353 ; Wait for Comm Ready
DJNZ L524D ; Loop for 1 Comm
PUSH HL ; Save HL Register
L5253: LD HL,00197h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5259: .TEXT " 5TH SCENE"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
L526A: LD HL,001BFh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5270: .TEXT " 6TH SCENE"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
L5281: LD HL,001E7h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5287: .TEXT " 7TH SCENE"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
L5298: LD HL,0020Fh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L529E: .TEXT " 8TH SCENE"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
LD B,001h ; Loop = 1
L52B0: CALL L2353 ; Wait for Comm Ready
DJNZ L52B0 ; Loop for 1 Comm
CALL L533E ; Print Service Mode Instructions
LD HL,0E0EFh ; HL = Start of Scene Totals
LD B,008h ; 8 Scene Totals
LD DE,01606h ; Location X = 32, Y = 6
L52C0: CALL L2261 ; Print 4-digit number
INC E ; Move down one row
DJNZ L52C0 ; Loop until all 8 Scene Totals are printed
L52C6: CALL L52DF ; Is PLAYER1 Button pressed?
JP NZ,L4E03 ; Yes, so show Range of Scores
CALL L5305 ; Check ZPU Switch 2
LD HL,0E10Dh ; HL = Bookkeeping Counter
CALL NZ,L5312 ; Pressed, so Print Blank statistics screen
LD B,001h ; Loop = 1
L52D7: CALL L2353 ; Wait for Comm Ready
L52DA: DJNZ L52D7 ; Loop for 1 Comm
JP L51D7 ; Loop back to print Range of Scenes
;----------------------------------------------------
; Check PLAYER1 button
; Return Z = PLAYER1 not pressed
; NZ = PLAYER1 pressed
;----------------------------------------------------
L52DF: CALL L245B ; Get ALL Input Data
LD A,(0E18Ch) ; Get DIP Switches 12-19
BIT 0,A ; Check Service Mode
JP Z,L0604 ; Disabled, so begin game
LD B,002h ; Loop = 2
L52EC: CALL L2353 ; Wait for Comm Ready
DJNZ L52EC ; Loop for 2 Comm's
LD A,(0E193h) ; Get Button Data
BIT 3,A ; Is PLAYER2/FEET pressed?
JP NZ,L40FE ; Yes, so go to Service Mode
LD A,(0E192h) ; Get Button Data
BIT 2,A ; Is PLAYER1/FEET pressed?
RET Z ; No, so return
RES 2,A ; Clear PLAYER1/FEET button
LD (0E192h),A ; Save Button Data
RET ; Return
;----------------------------------------------------
; Check ZPU Switch 2
; Return Z = Not pressed, NZ = Pressed
;----------------------------------------------------
L5305: LD B,001h ; Loop = 1
L5307: CALL L2353 ; Wait for Comm Ready
DJNZ L5307 ; Loop for 1 Comm
LD A,(0E184h) ; Get ZPU Switches 1 & 2
BIT 7,A ; Check ZPU Switch 2
RET ; Return
;----------------------------------------------------
; Print Statistics Blank Screen
; HL = Bookkeeping Counter
;----------------------------------------------------
L5312: INC (HL) ; Increment Bookkeeping Counter
CALL L1627 ; Reset Bookkeeping Data
CALL L21FF ; Clear Text Display
PUSH HL ; Save HL Register
LD HL,00056h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5320: .TEXT "SERVICE MODE 06: STATISTICS"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
RET ; Return
;----------------------------------------------------
; Print Service Mode Instructions
;----------------------------------------------------
L533E: LD B,001h ; Loop = 1
L5340: CALL L2353 ; Wait for Comm Ready
DJNZ L5340 ; Loop for 1 Comm
PUSH HL ; Save HL Register
LD HL,00350h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L534C: .TEXT "Player 1 = More Info. "
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
PUSH HL ; Save HL Register
LD HL,00378h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L536D: .TEXT "Player 2 = Exit. "
.DB 000h
;----------------------------------------------------
L5386: POP HL ; Save HL Register
PUSH HL ; Restore HL Register
LD HL,003A0h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L538E: .TEXT "Switch #2 on ZPU = CLEAR"
.DB 000h
;----------------------------------------------------
L53A7: POP HL ; Restore HL Register
RET ; Return
;----------------------------------------------------
; unknown
;----------------------------------------------------
L53A9: PUSH IY ; Save IY Register
PUSH DE ; Save DE Register
PUSH BC ; Save BC Register
CALL L236C ;
CALL L22F5 ; Program Graphics Chip
CALL L21FF ; Clear Text Display
POP BC ; Restore BC Register
POP DE ; Restore DE Register
POP IY ; Restore IY Register
RET ; Return
;----------------------------------------------------
; Show Score or Programmer's Names
;----------------------------------------------------
L53BB: PUSH IY ; Save IY Register
PUSH DE ; Save DE Register
L53BE: PUSH BC ; Save BC Register
CALL L2392 ;
CALL L22F5 ; Program Graphics Chip
LD A,0F4h ; Text = WHITE, Bkgnd = DK_BLUE
CALL L20CA ; Setup Graphics Chip for Text
CALL L21FF ; Clear Text Display
LD A,(0E126h) ; Get Control Register
BIT 0,A ;
PUSH AF ; Save AF Register
CALL Z,L55FA ; Game on so, Print Player Score and Lives
POP AF ; Restore AF Register
CALL NZ,L56C0 ; Game over, so show Programmer Names
LD A,(0E126h) ; Get Control Register
L53DD: BIT 2,A ;
JP NZ,L53F5 ; So skip rectangles
;----------------------------------------------------
; Draw 5 Programmed Rectangles
;----------------------------------------------------
LD C,000h ; Start loop at 0
L53E4: LD A,C ; A = Rectangle # C
L53E5: CALL L575D ; Draw programmed rectangle
LD B,005h ; Loop = 5
L53EA: CALL L2353 ; Wait for Comm Ready
DJNZ L53EA ; Loop for 5 Comm's
INC C ; Next Rectangle #
LD A,C ; A = Rectangle #
CP 005h ; Is this the fifth rectangle?
JR C,L53E4 ; No, so loop back and draw rectangle
L53F5: POP BC ; Restore BC Register
L53F6: POP DE ; Restore DE Register
POP IY ; Restore IY Register
RET ; Return
;----------------------------------------------------
; Tilt Check
;----------------------------------------------------
L53FA: LD A,(0E15Ah) ; Get Tilted Latch
OR A ; Check if machine has been tilted
JR Z,L5430 ; Machine not tilted, do next check
PUSH HL ; Save HL Register
LD HL,0020Ch ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5407 .TEXT "Y O U ' V E T I L T E D M E!"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
XOR A ; A = 0
LD (0E15Ah),A ; Reset Tilted Latch
JP L5591 ; Continue Hint Routine
;----------------------------------------------------
; Check for Correct Move Hint
;----------------------------------------------------
L5430: LD A,(0E186h) ; Get DIP Switches 28-35
RLCA ; Get Switches 34-35
L5434: RLCA ; Get Switches 34-35
L5435: AND 003h ; Isolate Switches 34-35
JR Z,L5440 ;
LD B,A ;
LD A,(0E1B7h) ;
CP B ;
JR NC,L546C ;
L5440: PUSH HL ; Save HL Register
LD HL,0020Ch ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5447 .TEXT "Y O U ' V E B L O W N I T !"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
JP L5591 ; Continue Hint Routine
;----------------------------------------------------
; Reveal Hint of correct move
;----------------------------------------------------
L546C: LD IY,(0E1B1h) ;
L5470: LD A,(IY+001h) ; A = Hint for Move
BIT 0,A ; Test for LEFT move
L5475: JP NZ,L553C ; Print "Should have gone LEFT!"
BIT 1,A ; Test for DOWN move
JP NZ,L5510 ; Print "Should have gone DOWN!"
BIT 2,A ; Test for RIGHT move
JP NZ,L5568 ; Print "Should have gone RIGHT!"
BIT 3,A ; Test for UP move
JP NZ,L54E4 ; Print "Should have gone UP!"
BIT 4,A ; Test for FEET move
JP NZ,L54B8 ; Print "Should have used your FEET!"
;----------------------------------------------------
; Print Hint: "Should have used your HAND!"
;----------------------------------------------------
PUSH HL ; Save HL Register
LD HL,0020Ch ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5493: .TEXT " SHOULD HAVE USED YOUR HAND !"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
L54B5: JP L5591 ; Continue Hint Routine
;----------------------------------------------------
; Print Hint: "Should have used your FEET!"
;----------------------------------------------------
L54B8: PUSH HL ; Save HL Register
LD HL,0020Ch ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L54BF: .TEXT " SHOULD HAVE USED YOUR FEET !"
.DB 000h
;----------------------------------------------------
L54E1: JP L5591 ; Continue Hint Routine
;----------------------------------------------------
; Print Hint: "Should have gone UP!"
;----------------------------------------------------
L54E4: PUSH HL ; Save HL Register
LD HL,0020Ch ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L54EB: .TEXT " SHOULD HAVE GONE UP ! "
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
L550D: JP L5591 ; Continue Hint Routine
;----------------------------------------------------
; Print Hint: "Should have gone DOWN!"
;----------------------------------------------------
L5510: PUSH HL ; Save HL Register
L5511: LD HL,0020Ch ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5517: .TEXT " SHOULD HAVE GONE DOWN ! "
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
L5539: JP L5591 ; Continue Hint Routine
;----------------------------------------------------
; Print Hint: "Should have gone LEFT!"
;----------------------------------------------------
L553C: PUSH HL ; Save HL Register
L553D: LD HL,0020Ch ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5543: .TEXT " SHOULD HAVE GONE LEFT ! "
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
L5565: JP L5591 ; Continue Hint Routine
;----------------------------------------------------
; Print Hint: "Should have gone RIGHT!"
;----------------------------------------------------
L5568: PUSH HL ; Save HL Register
L5569: LD HL,0020Ch ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L556F: .TEXT " SHOULD HAVE GONE RIGHT ! "
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
;----------------------------------------------------
; Continue Hint Routine
;----------------------------------------------------
L5591: LD HL,L55D2 ; HL = Start
PUSH DE ;
L5595: EX DE,HL ; DE = String
LD HL,000F0h ;
L5599: LD A,028h ; A = 40 characters to print
CALL L2224 ; Print text of length A
POP DE ;
LD HL,055D2h ;
PUSH DE ;
EX DE,HL ; DE = String
LD HL,00280h ;
L55A7: LD A,028h ; A = 40 characters to print
CALL L2224 ; Print text of length A
POP DE ;
L55AD: LD HL,L55C9 ; Point to Color Table
L55B0: LD A,(HL) ;
OR A ;
JR Z,L55C6 ;
LD (0E136h),A ; Set Color
PUSH HL ; Save HL Register
CALL L22F5 ; Program Graphics Chip
LD B,003h ; Loop = 3
L55BD: CALL L2353 ; Wait for Comm Ready
DJNZ L55BD ; Loop for 3 Comm's
POP HL ; Restore HL Register
INC HL ;
JR L55B0 ;
L55C6: JP L569D ;
;----------------------------------------------------
; Color Flash Data
;----------------------------------------------------
L55C9: .DB 0F4h
.DB 0F6h
.DB 04Fh
.DB 06Fh
.DB 0F4h
.DB 0F6h
.DB 0F4h
.DB 0F6h
.DB 000h ; end
;----------------------------------------------------
;
;----------------------------------------------------
L55D2: .DB 080h, 080h, 080h, 080h, 080h, 080h, 080h, 080h
.DB 080h, 080h, 080h, 080h, 080h, 080h, 080h, 080h
.DB 080h, 080h, 080h, 080h, 080h, 080h, 080h, 080h
.DB 080h, 080h, 080h, 080h, 080h, 080h, 080h, 080h
.DB 080h, 080h, 080h, 080h, 080h, 080h, 080h, 080h
;----------------------------------------------------
; Print Player Score and Lives
;----------------------------------------------------
L55FA: PUSH HL ; Save HL Register
LD HL,00177h ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5601: .TEXT "PLAYER # "
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
LD A,(0E1A9h) ; Get Player Number
AND 003h ; Isolate first 2 bits
OR 030h ; Create printable number
CALL L2256 ; Print A to Text Display
LD A,(0E126h) ; Get Control Register
BIT 2,A ;
JP NZ,L53FA ; Do Tilt Check
LD A,(0E1AEh) ; Get Lives Remaining
LD B,A ; B = Lives Remaining
LD A,(0E157h) ; Get Starting # of Lives
CP B ; Is this the first lift?
JP Z,L569E ; Yes, so print "GOOD LUCK!"
PUSH HL ; Save HL Register
L562B: LD HL,001E7h ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5631: .TEXT "YOUR SCORE IS "
.DB 000h
;----------------------------------------------------
L5640: POP HL ; Restore HL Register
LD HL,0E1AAh ; Number = Score
LD DE,0150Ch ; Location X = 21, Y = 12
CALL L2269 ; Print 8-digit number
PUSH HL ; Save HL Register
LD HL,00237h ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5651: .TEXT "You have "
.DB 000h
;----------------------------------------------------
L565D: POP HL ; Restore HL Register
LD DE,0100Eh ; Location X = 16, Y = 14
LD A,(0E1AEh) ; A = Lives Remaining
LD HL,0E137h ; Number = ?
CALL L225D ; Print 2-digit number
LD A,(0E1AEh) ; Get Lives Remaining
CP 001h ; Is there just one life left?
JP Z,L5689 ; Yes so print singular 'life'
PUSH HL ; Save HL Register
LD HL,00245h ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L567A: .TEXT "lives left"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
L5686: JP L569D ; Jump to Return
;----------------------------------------------------
; Print "life left"
;----------------------------------------------------
L5689: PUSH HL ; Save HL Register
L568A: LD HL,00244h ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5690: .TEXT " life left."
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
L569D: RET ; Return
;----------------------------------------------------
; Print "GOOD LUCK!"
;----------------------------------------------------
L569E: PUSH HL ; Save HL Register
LD HL,00210h ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L56A5: .TEXT "G O O D L U C K ! ! !"
.DB 000h
;----------------------------------------------------
L56BE: POP HL ; Restore HL Register
RET ; Return
;----------------------------------------------------
; Show Programmer Names
;----------------------------------------------------
L56C0: PUSH HL ; Save HL Register
LD HL,00120h ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L56C7: .TEXT "Designed & Programmed By"
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
CALL Delay100000 ; Call Delay 100,000
PUSH HL ; Save HL Register
LD HL,0019Bh ; Cursor Position
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L56EB: .TEXT "PAUL M. RUBENSTEIN"
.DB 000h
;----------------------------------------------------
L56FE: POP HL ; Restore HL Register
CALL Delay10000 ; Delay 10,000
PUSH HL ; Save HL Register
L5703: LD HL,001EAh ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5709: .TEXT " BOB KOWALSKI "
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
CALL Delay10000 ; Delay 10,000
PUSH HL ; Save HL Register
LD HL,0023Ah ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5728: .TEXT " JON MICHAEL HOGAN "
.DB 000h
;----------------------------------------------------
L573C: POP HL ; Restore HL Register
CALL Delay10000 ; Delay 10,000
PUSH HL ; Save HL Register
LD HL,0028Ah ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L5747: .TEXT "EDWARD J. MARCH JR."
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
L575C: RET ; Return
;----------------------------------------------------
; Draw Programmed Rectangle
; A = Rectangle # to draw from table below
;----------------------------------------------------
L575D: CP 00Bh ; Is rectangle # > 11?
JP NC,L57CD ; No, so print "READY"
AND 00Fh ; Mask data
ADD A,A ; A = A * 2
ADD A,A ; A = A * 2
LD E,A ; E = Rectangle # * 4 bytes
LD D,000h ; DE = Index
LD IY,057E8h ; Point to start of data
ADD IY,DE ; Index into data
LD D,(IY+000h) ; Get X Location
LD E,(IY+001h) ; Get Y Location
LD B,(IY+002h) ; Get Rectangle Width
;----------------------------------------------------
; Draw top edge of rectangle
;----------------------------------------------------
LD A,083h ; A = Character Upper Left Corner
CALL L2233 ; Print one Character to Text Display
L577D: LD A,080h ; A = Character Horizontal Line
CALL L2256 ; Print A to Text Display
PUSH AF ; Small delay
POP AF ; Small delay
DJNZ L577D ; Loop until width of horizontal line complete
LD A,082h ; A = Character Upper Right Corner
CALL L2256 ; Print A to Text Display
;----------------------------------------------------
; Draw left edge of rectangle
;----------------------------------------------------
LD B,(IY+003h) ; Loop = Rectangle Height
L578E: LD A,081h ; A = Character Verticle Line
INC E ; Location Y = Y + 1
CALL L2233 ; Print one Character to Text Display
PUSH AF ; Small delay
POP AF ; Small delay
PUSH AF ; Small delay
POP AF ; Small delay
DJNZ L578E ; Loop until heigth of rectangle complete
LD A,085h ; A = Character Lower Left Corner
INC E ; Location Y = Y + 1
CALL L2233 ; Print one Character to Text Display
;----------------------------------------------------
; Draw bottom edge of rectangle
;----------------------------------------------------
LD B,(IY+002h) ; Get rectangle width
L57A3: LD A,080h ; A = Character Horizontal Line
CALL L2256 ; Print A to Text Display
PUSH AF ; Small delay
POP AF ; Small delay
DJNZ L57A3 ; Loop until width of rectangle complete
LD A,084h ; A = Character Lower Right Corner
CALL L2256 ; Print A to Text Display
;----------------------------------------------------
; Draw right edge of rectangle
;----------------------------------------------------
LD D,(IY+000h) ; Get X Location
LD E,(IY+001h) ; Get Y Location
LD A,(IY+002h) ; Get Rectangle Width
ADD A,D ; Add Width to X
LD D,A ; D = Right edge X
INC D ; Location X = X + 1
LD B,(IY+003h) ; Loop = Rectangle Height
L57C0: LD A,081h ; A = Character Verticle Line
INC E ; Location Y = Y + 1
CALL L2233 ; Print one Character to Text Display
PUSH AF ; Small delay
POP AF ; Small delay
PUSH AF ; Small delay
POP AF ; Small delay
DJNZ L57C0 ; Loop until rectangle heigth complete
RET ; Return
;----------------------------------------------------
; Print "READY"
;----------------------------------------------------
L57CD: PUSH HL ; Save HL Register
LD HL,001C3h ; Cursor Location
CALL L2212 ; Set Cursor and Print Text
;----------------------------------------------------
L57D4: .TEXT " R E A D Y "
.DB 000h
;----------------------------------------------------
POP HL ; Restore HL Register
RET ; Return
;----------------------------------------------------
; Rectangle Data:
; X, Y, Width Heigth
;----------------------------------------------------
L57E8: .DB 0, 0, 38, 21 ; Rectangle #0
.DB 1, 1, 36, 19 ; Rectangle #1
.DB 2, 2, 34, 17 ; Rectangle #2
.DB 3, 3, 32, 15 ; Rectangle #3
.DB 4, 4, 30, 13 ; Rectangle #4
.DB 5, 5, 28, 11 ; Rectangle #5
.DB 6, 6, 26, 9 ; Rectangle #6
.DB 7, 7, 24, 7 ; Rectangle #7
.DB 8, 8, 22, 5 ; Rectangle #8
.DB 9, 9, 20, 3 ; Rectangle #9
.DB 10, 10, 18, 1 ; Rectangle #10
.DB 11, 11, 16, 1 ; Rectangle #11
.DB 12, 12, 14, 1 ; Rectangle #12
.DB 13, 13, 12, 1 ; Rectangle #13
.DB 13, 13, 12, 1 ; Rectangle #14
.DB 13, 13, 12, 1 ; Rectangle #15
.DB 13, 13, 12, 1 ; Rectangle #16
.DB 0E0h
;----------------------------------------------------
; Copyright Location
;----------------------------------------------------
L582D: .TEXT "COPYRIGHT: STERN ELECTRONICS, INC."
;----------------------------------------------------
;----------------------------------------------------
; Character Pattern Definitions
; 128 characters, 8 bytes each
;----------------------------------------------------
L584F: chdef[ ] ; 20h
L5850: chdef[ ]
chdef[ ]
chdef[ ]
chdef[ ]
chdef[ ]
chdef[ ]
chdef[ ]
;----------------------------------------------------
chdef[ X ] ; 21h
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ ]
chdef[ X ]
;----------------------------------------------------
chdef[ X X ] ; 22h
chdef[ X X ]
chdef[ X X ]
chdef[ ]
chdef[ ]
chdef[ ]
chdef[ ]
chdef[ ]
;----------------------------------------------------
chdef[ X X ] ; 23h
chdef[ X X ]
chdef[XXXXX ]
chdef[ X X ]
chdef[XXXXX ]
chdef[ X X ]
chdef[ X X ]
chdef[ ]
;----------------------------------------------------
chdef[ X ] ; 24h
chdef[ XXXX ]
chdef[X X ]
chdef[ XXX ]
chdef[ X X ]
chdef[XXXX ]
chdef[ X ]
chdef[ ]
;----------------------------------------------------
chdef[XX ] ; 25h
chdef[XX X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[X XX ]
chdef[ XX ]
chdef[ ]
;----------------------------------------------------
chdef[ X ] ; 26h
chdef[X X ]
chdef[X X ]
chdef[ X ]
chdef[X X X ]
chdef[X X ]
chdef[ XX X ]
chdef[ ]
;----------------------------------------------------
chdef[ X ] ; 027h
chdef[ X ]
chdef[ X ]
chdef[ ]
chdef[ ]
chdef[ ]
chdef[ ]
chdef[ ]
;----------------------------------------------------
chdef[ X ] ; 28h
chdef[ X ]
chdef[X ]
chdef[X ]
chdef[X ]
chdef[ X ]
chdef[ X ]
chdef[ ]
;----------------------------------------------------
chdef[ X ] ; 029h
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ ]
;----------------------------------------------------
chdef[ X ] ; 2Ah
chdef[X X X ]
chdef[ XXX ]
chdef[ X ]
chdef[ XXX ]
chdef[X X X ]
chdef[ X ]
chdef[ ]
;----------------------------------------------------
chdef[ X ] ; 2Bh
chdef[ X ]
chdef[XXXXX ]
chdef[ X ]
chdef[ X ]
chdef[ ]
chdef[ ]
chdef[ ]
;----------------------------------------------------
chdef[ ] ; 2Ch
chdef[ ]
chdef[ ]
chdef[ ]
chdef[ ]
chdef[ X ]
chdef[ X ]
chdef[ ]
;----------------------------------------------------
chdef[ ] ; 2Dh
chdef[ ]
chdef[ ]
chdef[XXXXX ]
chdef[ ]
chdef[ ]
chdef[ ]
chdef[ ]
;----------------------------------------------------
chdef[ ] ; 2Eh
chdef[ ]
chdef[ ]
chdef[ ]
chdef[ ]
chdef[ ]
chdef[ X ]
chdef[ ]
;----------------------------------------------------
chdef[ ] ; 2Fh
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[X ]
chdef[ ]
chdef[ ]
;----------------------------------------------------
chdef[ XXX ] ; 030h
chdef[X X ]
chdef[X XX ]
chdef[X X X ]
chdef[XX X ]
chdef[X X ]
chdef[ XXX ]
chdef[ ]
;----------------------------------------------------
chdef[ X ] ; 031h
chdef[ XX ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ XXX ]
chdef[ ]
;----------------------------------------------------
chdef[ XXX ] ; 32h
chdef[X X ]
chdef[ X ]
chdef[ XX ]
chdef[ X ]
chdef[X ]
chdef[XXXXX ]
chdef[ ]
;----------------------------------------------------
chdef[XXXXX ] ; 33h
chdef[ X ]
chdef[ X ]
chdef[ XX ]
chdef[ X ]
chdef[X X ]
chdef[ XXX ]
chdef[ ]
;----------------------------------------------------
chdef[ X ] ; 34h
chdef[ XX ]
chdef[ X X ]
chdef[X X ]
chdef[XXXXX ]
chdef[ X ]
chdef[ X ]
chdef[ ]
;----------------------------------------------------
chdef[XXXXX ] ; 35h
chdef[X ]
chdef[XXXX ]
chdef[ X ]
chdef[ X ]
chdef[X X ]
chdef[ XXX ]
chdef[ ]
;----------------------------------------------------
chdef[ XXX ] ; 36h
chdef[ X ]
chdef[X ]
chdef[XXXX ]
chdef[X X ]
chdef[X X ]
chdef[ XXX ]
chdef[ ]
;----------------------------------------------------
chdef[XXXXX ] ; 37h
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ ]
;----------------------------------------------------
chdef[ XXX ] ; 038h
chdef[X X ]
chdef[X X ]
chdef[ XXX ]
chdef[X X ]
chdef[X X ]
chdef[ XXX ]
chdef[ ]
;----------------------------------------------------
chdef[ XXX ] ; 039h
chdef[X X ]
chdef[X X ]
chdef[ XXXX ]
chdef[ X ]
chdef[ X ]
chdef[XXX ]
chdef[ ]
;----------------------------------------------------
chdef[ ] ; 03Ah
chdef[ ]
chdef[ X ]
chdef[ ]
chdef[ X ]
chdef[ ]
chdef[ ]
chdef[ ]
;----------------------------------------------------
chdef[ ] ; 3Bh
chdef[ ]
chdef[ X ]
chdef[ ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ ]
;----------------------------------------------------
chdef[ X ] ; 3Ch
chdef[ X ]
chdef[ X ]
chdef[X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ ]
;----------------------------------------------------
chdef[ ] ; 3Dh
chdef[XXXXX ]
chdef[ ]
chdef[XXXXX ]
chdef[ ]
chdef[ ]
chdef[ ]
chdef[ ]
;----------------------------------------------------
chdef[ X ] ; 3Eh
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ ]
;----------------------------------------------------
chdef[ XXX ] ; 03Fh
chdef[X X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ ]
chdef[ X ]
chdef[ ]
;----------------------------------------------------
chdef[ XXX ] ; 40h
chdef[X X ]
chdef[X X X ]
chdef[X XXX ]
chdef[X XX ]
chdef[X ]
chdef[ XXXX ]
chdef[ ]
;----------------------------------------------------
chdef[ X ] ; 041h
chdef[ X X ]
chdef[X X ]
chdef[X X ]
chdef[XXXXX ]
chdef[X X ]
chdef[X X ]
chdef[ ]
;----------------------------------------------------
chdef[XXXX ] ; 42h
chdef[X X ]
chdef[X X ]
chdef[XXXX ]
chdef[X X ]
chdef[X X ]
chdef[XXXX ]
chdef[ ]
;----------------------------------------------------
chdef[ XXX ]
chdef[X X ]
chdef[X ]
chdef[X ]
chdef[X ]
chdef[X X ]
chdef[ XXX ]
chdef[ ]
;----------------------------------------------------
chdef[XXXX ]
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[XXXX ]
chdef[ ]
;----------------------------------------------------
chdef[XXXXX ]
chdef[X ]
chdef[X ]
chdef[XXXX ]
chdef[X ]
chdef[X ]
chdef[XXXXX ]
chdef[ ]
;----------------------------------------------------
chdef[XXXXX ]
chdef[X ]
chdef[X ]
chdef[XXXX ]
chdef[X ]
chdef[X ]
chdef[X ]
chdef[ ]
;----------------------------------------------------
chdef[ XXXX ]
chdef[X ]
chdef[X ]
chdef[X ]
chdef[X XX ]
chdef[X X ]
chdef[ XXXX ]
chdef[ ]
;----------------------------------------------------
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[XXXXX ]
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[ ]
;----------------------------------------------------
chdef[ XXX ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ XXX ]
chdef[ ]
;----------------------------------------------------
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[X X ]
chdef[ XXX ]
chdef[ ]
;----------------------------------------------------
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[XX ]
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[ ]
;----------------------------------------------------
chdef[X ]
chdef[X ]
chdef[X ]
chdef[X ]
chdef[X ]
chdef[X ]
chdef[XXXXX ]
chdef[ ]
;----------------------------------------------------
chdef[X X ]
chdef[XX XX ]
chdef[X X X ]
chdef[X X X ]
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[ ]
;----------------------------------------------------
chdef[X X ]
chdef[X X ]
chdef[XX X ]
chdef[X X X ]
chdef[X XX ]
chdef[X X ]
chdef[X X ]
chdef[ ]
;----------------------------------------------------
chdef[ XXX ]
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[ XXX ]
chdef[ ]
;----------------------------------------------------
chdef[XXXX ]
chdef[X X ]
chdef[X X ]
chdef[XXXX ]
chdef[X ]
chdef[X ]
chdef[X ]
chdef[ ]
;----------------------------------------------------
chdef[ XXX ]
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[X X X ]
chdef[X X ]
chdef[ XX X ]
chdef[ ]
;----------------------------------------------------
chdef[XXXX ]
chdef[X X ]
chdef[X X ]
chdef[XXXX ]
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[ ]
;----------------------------------------------------
chdef[ XXX ]
chdef[X X ]
chdef[X ]
chdef[ XXX ]
chdef[ X ]
chdef[X X ]
chdef[ XXX ]
chdef[ ]
;----------------------------------------------------
chdef[XXXXX ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ ]
;----------------------------------------------------
chdef[X X ] ;
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[ XXX ]
chdef[ ]
;----------------------------------------------------
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[ X X ]
chdef[ X ]
chdef[ ]
;----------------------------------------------------
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[X X X ]
chdef[X X X ]
chdef[XX XX ]
chdef[X X ]
chdef[ ]
;----------------------------------------------------
chdef[X X ]
chdef[X X ]
chdef[ X X ]
chdef[ X ]
chdef[ X X ]
chdef[X X ]
chdef[X X ]
chdef[ ]
;----------------------------------------------------
chdef[X X ]
chdef[X X ]
chdef[ X X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ ]
;----------------------------------------------------
chdef[XXXXX ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[X ]
chdef[XXXXX ]
chdef[ ]
;----------------------------------------------------
chdef[XXXXX ]
chdef[XX ]
chdef[XX ]
chdef[XX ]
chdef[XX ]
chdef[XX ]
chdef[XXXXX ]
chdef[ ]
;----------------------------------------------------
chdef[XXX ]
chdef[XXXX ]
chdef[XXXXX ]
chdef[XXXXXX ]
chdef[XXXXX ]
chdef[XXXX ]
chdef[XXX ]
chdef[XX ]
;----------------------------------------------------
chdef[XXXXX ]
chdef[ XX ]
chdef[ XX ]
chdef[ XX ]
chdef[ XX ]
chdef[ XX ]
chdef[XXXXX ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[ X ]
chdef[ X X ]
chdef[X X ]
chdef[ ]
chdef[ ]
chdef[ ]
;----------------------------------------------------
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[XXXXX ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ ]
;----------------------------------------------------
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ ]
chdef[ ]
chdef[ ]
chdef[ ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[ XXX ]
chdef[X X ]
chdef[XXXXX ]
chdef[X X ]
chdef[X X ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[XXXX ]
chdef[ X X ]
chdef[ XXX ]
chdef[ X X ]
chdef[XXXX ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[ XXXX ]
chdef[X ]
chdef[X ]
chdef[X ]
chdef[ XXXX ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[XXXX ]
chdef[ X X ]
chdef[ X X ]
chdef[ X X ]
chdef[XXXX ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[XXXXX ]
chdef[X ]
chdef[XXXX ]
chdef[X ]
chdef[XXXXX ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[XXXX ]
chdef[X ]
chdef[XXX ]
chdef[X ]
chdef[X ]
chdef[ ]
;----------------------------------------------------
chdef[ ] ;
chdef[ ]
chdef[ XXXX ]
chdef[X ]
chdef[X XXX ]
chdef[X X ]
chdef[ XXX ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[X X ]
chdef[X X ]
chdef[XXXXX ]
chdef[X X ]
chdef[X X ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[XXXXX ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[XXXXX ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[ XXX ]
chdef[ X ]
chdef[ X ]
chdef[X X ]
chdef[XXX ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[X X ]
chdef[X X ]
chdef[XX ]
chdef[X X ]
chdef[X X ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[X ]
chdef[X ]
chdef[X ]
chdef[X ]
chdef[XXXXX ]
chdef[ ]
;----------------------------------------------------
chdef[ ] ;
chdef[ ]
chdef[X X ]
chdef[XX XX ]
chdef[X X X ]
chdef[X X ]
chdef[X X ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[X X ]
chdef[XX X ]
chdef[X X X ]
chdef[X XX ]
chdef[X X ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[ XXX ]
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[ XXX ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[XXXX ]
chdef[X X ]
chdef[XXXX ]
chdef[X ]
chdef[X ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[XXXXX ]
chdef[X X ]
chdef[X X X ]
chdef[X X ]
chdef[XXX ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[XXXXX ]
chdef[X X ]
chdef[XXXXX ]
chdef[X X ]
chdef[X X ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[ XXXX ]
chdef[X ]
chdef[ XXX ]
chdef[ X ]
chdef[XXXX ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[XXXXX ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[ XXX ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[X X ]
chdef[ X ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[X X ]
chdef[X X ]
chdef[X X X ]
chdef[XX XX ]
chdef[X X ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[X X ]
chdef[ XXX ]
chdef[ X ]
chdef[ XXX ]
chdef[X X ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[X X ]
chdef[ X X ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[ ]
;----------------------------------------------------
chdef[ ]
chdef[ ]
chdef[XXXXX ]
chdef[ X ]
chdef[ X ]
chdef[ X ]
chdef[XXXXX ]
chdef[ ]
;----------------------------------------------------
chdef[ XXX ]
chdef[ X ]
chdef[ X ]
chdef[XX ]
chdef[ X ]
chdef[ X ]
chdef[ XXX ]
chdef[ ]
;----------------------------------------------------
chdef[ XX ]
chdef[ XX ]
chdef[ XX ]
chdef[ XX ]
chdef[ XX ]
chdef[ XX ]
chdef[ XX ]
chdef[ XX ]
;----------------------------------------------------
chdef[XXX ]
chdef[ X ]
chdef[ X ]
chdef[ XX ]
chdef[ X ]
chdef[ X ]
chdef[XXX ]
chdef[ ]
;----------------------------------------------------
NEXT PAGE
|
|