Site Map | Contact Info | Home  
  
 Home
 Products
 ROMHACK Toolbox
 Ordering Info
 Code Disassembly
  Bega's Battle
  Cliffhanger
  Thayer's Quest
 My Gameroom
 Links

 

 

Page1

Page2

Page3

Page4

Page5

Page6


        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   002h001h
        .DB   002h001h
        .DB   003h001h
        .DB   004h001h   






;----------------------------------------------------
;          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   080h080h080h080h080h080h080h080h 
        .DB   080h080h080h080h080h080h080h080h 
        .DB   080h080h080h080h080h080h080h080h 
        .DB   080h080h080h080h080h080h080h080h 
        .DB   080h080h080h080h080h080h080h080h 







;----------------------------------------------------
;            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
 

HOME  

  ROMHACK 2009