; Disassembly of the file "VIDSTORY.BIN" - (c)19??
; 
; CPU Type: Z80 for the Bally/Astrocade Professional
; 
; Created with dZ80 1.50 and Blood, Sweat & Tears
; Reassembles  correctly with: zmac -i -m VIDSTORY.ASM
; 
; on Thursday, 13 of March 2008 at 05:27 PM
; By: Richard C. Degler - From Scratch, Inc.
;

; HIDDEN  EQU     $4CF8		; First Hidden Byte

STACKA  EQU     $4DA8		; Top of 176 byte Stack Area and ??
; $4DA8 through $4F77 cleared to Initialize Video Story

; ??   EQU     $4DA9	; Don't Handle SENTRY Return = SF4 until one SENTRY Return = SF3
KYSHFT  EQU     $4DAA	; Add 0 or 24 to KeyCode if Shifted
FILLBX  EQU     $4DAB	; 0 to draw a Hollow Box, or 1 to draw a Filled Box
FILLCI  EQU     $4DAC	; 0 to draw a Hollow Circle, or 1 to draw a Filled Circle
; ??   EQU     $4DAD	; 
; ??   EQU     $4DAE	; 
; ??   EQU     $4DAF	; Store old Return Address word in ?? Routine
; ??   EQU     $4DB1	; 
; ??   EQU     $4DB2	; 
; ??   EQU     $4DB3	; 
; ??   EQU     $4DB4	; 
; ??   EQU     $4DB5	; 
; ??   EQU     $4DB6	; 
OLDHMR EQU     $4DB7	; Old Hold Magic Register ??
; ??   EQU     $4DB8	; 0 by "=,4", 1 by "=,5" (default), or 2 by "=,6" for ??
; ??   EQU     $4DB9	; 0 no flash pictures ??, 1 for Draw Pictures ??
CURSOR EQU     $4DBA	; 0 to use Joystick 1 to Move Cursor, or 1 to use Knobs One and Three 
OLDSW0 EQU     $4DBB	; Old Joystick 1 Reading
; ??   EQU     $4DBC	; 
; ??   EQU     $4DBD	; Store ?? Address word in ?? Routine
; ??   EQU     $4DBF	; Store ?? Address word in ?? Routine
; ??   EQU     $4DC1	; Save ?? in ?? Routine
; ??   EQU     $4DC2	; Save ?? in ?? Routine
; ??   EQU     $4DC3	; 
; ??   EQU     $4DC4	; 
; ??   EQU     $4DC5	; 
; ??   EQU     $4DC6	; Save ?? in ?? Routine
; ??   EQU     $4DC7	; 
; ??   EQU     $4DC8	; 
; ??   EQU     $4DC9	; Saved as byte but Read as word
; ??   EQU     $4DCB	; Saved as byte but Read as word
; ??   EQU     $4DCD	; Saved as byte but Read as word
; ??   EQU     $4DCF	; 
; ??   EQU     $4DD0	; 
; ??   EQU     $4DD1	; 
; ??   EQU     $4DD2	; 
; ??   EQU     $4DD3	; 
; ??   EQU     $4DD4	; 
; ??   EQU     $4DD5	; 
HOLDMR EQU     $4DD6	; 0 for PLOP, 16 for OR, or 32 for XOR in Hold Magic Register
COLORM EQU     $4DD7	; Color Mode 0, 1, or 2
OLDMUC EQU     $4DD8	; Old Multi-Color 0 through 1
MULTIC EQU     $4DD9	; Multi-Color 0 through 1
; ??   EQU     $4DDA	; Store ?? Address word in ?? Routine
; ??   EQU     $4DDC	; Store ?? Address word in ?? Routine
; ??   EQU     $4DDE	; Store ?? Address word in ?? Routine
; ??   EQU     $4DE0	; Store ?? Address word in ?? Routine
; ??   EQU     $4DE2	; 
; ??   EQU     $4DE3	; 
; ??   EQU     $4DE4	; 
; ??   EQU     $4DE5	; Store ?? Address word in ?? Routine
; ??   EQU     $4DE7	; Store ?? Address word in ?? Routine
; ??   EQU     $4DE9	; Store ?? Address word in ?? Routine
; ??   EQU     $4DEB	; Store ?? Address word in ?? Routine

			; 35 byte Location Blocks offset:
				; +$00 - MAGIC to Write with
				; +$01 - 
				; +$02 - Speed ??
				; +$03, $04 - Delta X
				; +$05, $06 - X
				; +$07 - 
				; +$08, $09 - Delta Y
				; +$0A, $0B - Y
				; +$0C - 
				; +$0D, $0E - Absolute MAGIC Address
				; +$0F, $10 - 
				; +$11 - 
				; +$12, $13 - Data for Image
				; +$14, $15 - Limit Table Address
				; +$16 - 
				; +$17, $18 - 
				; +$19 - 
				; +$1A, $1B - Handler Address word for Block ??
				; +$1C - Header Up Counter or $FF for Only One Header
				; +$1D - Delay Down Counter or $FF for No Draw of This Block
				; +$1E, $1F - Current Header Address
				; +$20, $21 - Header Base Address
				; +$22 -  

BLOCK0  EQU     $4DED	; Cursor Location Block
VALIDC  EQU     BLOCK0+$12	; $4DFF word = L3713 for Valid Cursor Data else Preset ALL  
BLOCK1  EQU     $4E10	; First Location Block
BLOCK2  EQU     $4E33	; Second Location Block
BLOCK3  EQU     $4E56	; Third Location Block
BLOCK4  EQU     $4E79	; Fourth Location Block
BLOCK5  EQU     $4E9C	; Fifth Location Block
BLOCK6  EQU     $4EBF	; Sixth Location Block
BLOCK7  EQU     $4EE2	; Seventh Location Block
;			 $4F05	(Set to 1 but Not Used ??)
COLORS  EQU     $4F06	; 8 byte RAM Color Table

RMPCLR  EQU     $4F0E	; 0 to Freeze, 1 to Ramp Colors
; ??   EQU     $4F0F	; ?? word ??
; ??   EQU     $4F11	; ?? word ??
; ??   EQU     $4F13	; ?? word ??
; $4F15 through $4F26	?? not used
; ??   EQU     $4F27	; ?? word ??
; ??   EQU     $4F29	; ?? word ??
; ??   EQU     $4F2B	; ?? word ??
; ??   EQU     $4F2D	; ?? word ??
; $4F2F through $4F3D	?? not used
; ??   EQU     $4F3E	data ??
; $4F3F and $4F40	?? not used
; ??   EQU     $4F41	; ?? word ??

; $4F43 through $4F5C cleared	by Clear Some Variables Routine
; $4F43 ?? not used
; ??   EQU     $4F44	; = 0 ??
; ??   EQU     $4F45	; - 1 ??
; ??   EQU     $4F46	; - 1 ??
; ??   EQU     $4F47	; = 0 ??
; ??   EQU     $4F48	; = 0 ??
; ??   EQU     $4F49	?? not used
; ??   EQU     $4F4A	; = 0 ??
; ??   EQU     $4F4B	; = 0 ??
; ??   EQU     $4F4C	; = 50 or 35 ??
; ??   EQU     $4F4D	; = 0 and not used ??

BGC0R3  EQU     $4F4E	; Background Color Right Number 3 (out of order)
BGC0RX  EQU     $4F4F	; Background Color Right Number X (not used) 
BGC0R2  EQU     $4F50	; Background Color Right Number 2
BGC0R1  EQU     $4F51	; Background Color Right Number 1

; ??   EQU     $4F52	; = 0 ??
; ??   EQU     $4F53	= 75 at TWO PLACES but Not Read ??
ILINE1  EQU     $4F54	; = 50 or 0 Holds Interrupt Line Number #1
ILINE2  EQU     $4F55	; = 170 or 190 Interrupt Line Register #2
VECT01  EQU     $4F56	; word set to L21AD to point to Interrupt Routine #1 (first)
VECT03  EQU     $4F58	; word set to L2368 to point to Interrupt Routine #3 (out of order)
VECT02  EQU     $4F5A	; word set to L2283 to point to Interrupt Routine #2 (second)
; $4F5C last byte cleared by Clear Some Variables Routine - not used

; $4F5D through $4F77 cleared by Clear Jump Address Table and User Time Base Routine
; $4F5D through $4F61	?? not used

			; Jump Address Table in RAM for Look Up Address Routine
JUMP00  EQU     $4F62	; word with A = 0 for Sentry Return SCT0
; JUMP01  EQU     $4F64		; word with A = 1 for Sentry Return SCT1
JUMP02  EQU     $4F66	; word with A = 2 for Sentry Return SCT2
; JUMP03  EQU     $4F68		; word with A = 3 for Sentry Return SCT3
; JUMP04  EQU     $4F6A		; word with A = 4 for Sentry Return SCT4
; JUMP05  EQU     $4F6C		; word with A = 5 for Sentry Return SCT5
; JUMP06  EQU     $4F6E		; word with A = 6 for Sentry Return SCT6
; JUMP07  EQU     $4F70		; word with A = 7 for Sentry Return SCT7

USRTB1  EQU     $4F72	; User Time Base #1 divide by 15 for CT3 through CT7
USRTB2  EQU     $4F73	; User Time Base #2 divide by 2 for CT2
USRTB3  EQU     $4F74	; User Time Base #3 for CT0 & CT1

; $4F75 through $4F77	?? not used
; $4F77 last byte cleared by Clear Jump Address Table and User Time Base Routine
; $4DA8 (STACKA) through $4F77 cleared to Initialize Video Story

        NOLIST
        INCLUDE "HVGLIB.H"

        LIST
        ORG     FIRSTC

; L2000:
        JP      L3ED2			; Jump to Auto Start Cartridge

L2003:			; Clear Screen Routine
        LD      E,$00
        LD      HL,NORMEM	; Clear from $4000 through $4D47
        LD      BC,$0D48
L200B:  LD      (HL),E		; Set to 0
        CPI				; Decrement BC, Increment HL (ignore Compare)
        JP      PE,L200B		; Is BC NOT 0 ?
        RET

L2012:			; Initialize HVG System Routines Routine
        LD      (WASTER),A	; $0FFF = 0 for Safe Magic Write to Flush Shifter
        DEC     A
        LD      (TIMOUT),A	; $4FEC = 255 for Maximum Delay before PIZBRK

        SYSTEM  EMUSIC		; End Music

        SYSSUK  SETOUT     
        DB      $AA		; &(10) = 85*2 for VERBL    
        DB      $29		; &(9) = 41 for HORCB
        DB      $08		; &(14) = 8 for INMOD

        SYSTEM  ACTINT		; Activate Interrupts

        RET

L2023:			; User Routine #80 starts here (DE = Key Mask)
        EXX
        LD      HL,L202F
        PUSH    HL		; Fake a Return Address to Return Node for Next Return
        LD      HL,($010D)	; SYSDPT (UPI Jump Address Base) + 2*33 (Sense Transition)
        PUSH    HL		; Fake a Return Address (direct to SENTRY) to Return From
        EXX
        DI
        RET				; Jump to System Routine at $01AC (MENTRY) was in $010D

L202F:			; Return Node
        EI
        RET

L2031:			; Extended User Routine starting address Table in ROM
        DW      L2023		; User Routine #80 to DI, Call SENTRY Routine, EI

L2033:			; Extended User Mask ARGuments Table in ROM
        DB      $03		; User Routine #80 sucks DE register

L2034:			; Do Look Up Address by A into HL Jump Table Routine
        LD      E,A		; where A was 0 through 7 for RAM, or 0 through 39 for ROM
        LD      D,$00
        ADD     HL,DE
        ADD     HL,DE		; Table Base plus Two times (0 through 7) or (0 through 39)
        LD      E,(HL)
        INC     HL
        LD      D,(HL)		; Look Up into DE
        RET 

L203D:			; Clear Jump Address Table and User Time Bases Routine
        LD      E,$00
        LD      BC,$001B
        LD      HL,$4F5D	; Clear from $4F5D through $4F77
L2045:  LD      (HL),E
        CPI				; Decrement BC, Increment HL (ignore Compare) 
        JP      PE,L2045		; Is BC NOT 0 ?
        RET

        LD      D,A		; (unreachable code ??)
L204D:			; Set CTn to Delay and Jump by Table in RAM Routine
        DI
        LD      A,D		; with D = Delay (of 1), E = 0 through 7 (always a 2) ??
        LD      D,$00
        LD      HL,CT0		; Counter Timer 0 Address at $4FD5
        ADD     HL,DE
        LD      (HL),A		; Store a 1 by E into CT0 through CT7 (always CT2)
        LD      HL,JUMP00	; Jump Table Base Address in RAM
        ADD     HL,DE
        ADD     HL,DE		; Point at Jump Address by Two Times E
        POP     DE		; Steal Real Return Address
        LD      (HL),E
        INC     HL
        LD      (HL),D		; Save Old Return Address in Jump Table
        EI
        RET				; Jump to Address in Jump Table (always JUMP02)

L2061:			; Run at 60Hz ?? Routine
        LD      BC,$0103	; Reset Value = 1 and Counter Mask = 3 (CT0 & CT1)
        LD      HL,USRTB3	; $4F74 for User Time Base #3
        CALL    CTIMER		; to Decrement Time Base and Call DECCTS if Zero
        LD      BC,$0204	; Reset Value = 2 and Counter Mask = 4 (CT2)
        LD      HL,USRTB2	; $4F73 for User Time Base #2
        CALL    CTIMER		; to Decrement Time Base and Call DECCTS if Zero
        LD      BC,$0FF8	; Reset Value = 15 and Counter Mask = All Others
        LD      HL,USRTB1	; $4F72 for User Time Base #1
        JP      CTIMER			; to Decrement Time Base and Call DECCTS if Zero

L207C:			; Handle SENTRY Return = SCT0
        XOR     A
L207D:			; Common Exit Point for Handle SENTRY Return = SCT0 through SCT7 
        LD      HL,JUMP00	; Point to Jump Table in RAM
        CALL    L2034		; to Look Up Address by 0 through 7 in RAM Jump Table
        LD      A,E
        OR      D				; No Address in RAM Jump Table ?
        JR      Z,L2089                 ; (+$02)
        EX      DE,HL
        JP      (HL)			; Jump to Address in RAM Jump Table ??

L2089:			;  Return Point for Unhandled SENTRY Return = SCT0 through SCT7
        RET

L208A:			; Handle SENTRY Return = SCT1
        LD      A,$01
        JR      L207D                   ; (-$11)

L208E:			; Handle SENTRY Return = SCT2
        LD      A,$02
        JR      L207D                   ; (-$15)

L2092:			; Handle SENTRY Return = SCT3
        LD      A,$03
        JR      L207D                   ; (-$19)

L2096:			; Handle SENTRY Return = SCT4
        LD      A,$04
        JR      L207D                   ; (-$1d)

L209A:			; Handle SENTRY Return = SCT5
        LD      A,$05
        JP      L207D			; (close enough for relative jump ??) 

L209F:			; Handle SENTRY Return = SCT6
        LD      A,$06
        JP      L207D			; (close enough for relative jump ??)

L20A4:			; Handle SENTRY Return = SCT7
        LD      A,$07
        JP      L207D			; (close enough for relative jump ??)

			; ?? ??
L20A9:			; ?? Routine
        LD      E,(HL)		; with HL = L2172, L2176 or ??
        INC     HL
        LD      D,(HL)
        LD      L,E
        LD      H,D		; HL = $4F29, $4F0F or ??
        INC     HL
        INC     HL
        INC     HL
        INC     HL
        EX      DE,HL		; DE = $4F2D, $4F13 or ?? + 4 ??
        LD      (HL),E
        INC     HL
        LD      (HL),D		; Save DE word in $4F29, $4F0F or ?? 
        INC     HL
        LD      (HL),E
        INC     HL
        LD      (HL),D		; Save DE word in $4F2B, $4F11 or ?? + 2 ??
        RET

; L20BB:			(Not Called ??)
        POP     HL
        CALL    L20A9		; to ??
        JP      (IY)			; to Where ??

L20C1:			; ?? Routine
        LD      A,I		; Read I register ??
        PUSH    AF
        DI
        PUSH    DE
        LD      E,(HL)		; with HL = L2172 or L2176
        INC     HL
        LD      D,(HL)
        PUSH    DE
        POP     IY		; IY = $4F29 or $4F0F
        INC     HL
        LD      C,(IY+$00)
        LD      E,C
        LD      B,(IY+$01)
        LD      D,B
        LD      A,(HL)
        INC     HL
        CP      C 
        JR      NZ,L20DC                ; (+$02)
        LD      A,(HL)
        CP      B				; (L2174 or L2178) word NOT ($4F29 or $4F0F) ?
L20DC:  JR      NZ,L20E3                ; (+$05)
        PUSH    IY
        POP     BC		; BC = $4F29 or $4F0F
        INC     BC
        INC     BC
L20E3:  INC     BC
        INC     BC
        LD      A,(IY+$02)
        CP      C
        LD      A,(IY+$03)
        JR      NZ,L20EF                ; (+$01)
        CP      B		; $4F2D or $4F13 or ($4F29 or $4F0F) + 2 word NOT ($4F2B or $4F11) ?
L20EF:  JR      NZ,L20FB                ; (+$0a)
        POP     DE
        LD      HL,$0001
        POP     AF
        JP      PO,L20FA		; (close enough for relative jump ??)
        EI
L20FA:  RET

L20FB:  POP     HL		; Absolute Screen Address (Was in IX) 
        LD      A,L
        LD      (DE),A
        INC     DE
        LD      A,H
        LD      (DE),A		; HL word into (DE)
        LD      (IY+$00),C
        LD      (IY+$01),B	; BC word into (IY)
        LD      HL,$0000	; Clear HL
        POP     AF
        JP      PO,L210F		; (close enough for relative jump ??)
        EI
L210F:  RET

L2110:			; ?? Routine
        LD      A,I		; Read I register ??
        PUSH    AF
        DI
        LD      E,(HL)		; with HL = L2172 or L2176
        INC     HL
        LD      D,(HL)
        PUSH    DE
        POP     IY		; IY = $4F29 or $4F0F
        INC     HL
        LD      C,(IY+$02)
        LD      B,(IY+$03)
        LD      A,(IY+$00)
        CP      C
        JR      NZ,L212B                ; (+$04)
        LD      A,(IY+$01)
        CP      B				; ($4F29 or $4F0F) word NOT ($4F2B or $4F11) ?
L212B:  JR      NZ,L2136                ; (+$09)
        LD      HL,$0001	; HL word = 1
        POP     AF
        JP      PO,L2135		; (close enough for relative jump ??)
        EI
L2135:  RET

L2136:  LD      A,(BC)
        LD      E,A
        INC     BC
        LD      A,(BC)
        LD      D,A		; DE word = (($4F29 or $4F0F))
        DEC     BC		; BC word = ($4F29 or $4F0F)
        LD      A,(HL)
        INC     HL
        CP      C
        JR      NZ,L2143                ; (+$02)
        LD      A,(HL)
        CP      B				; ($4F41 or $4F27) word NOT ($4F29 or $4F0F) ?
L2143:  JR      NZ,L214A                ; (+$05)
        PUSH    IY
        POP     BC		; BC = $4F29 or $4F0F
        INC     BC
        INC     BC
L214A:  INC     BC
        INC     BC
        LD      (IY+$02),C
        LD      (IY+$03),B	; Set $4F29 or $4F0F to ($4F29 or $4F0F) + 2 or $4F2B or $4F11
        LD      HL,$0000	; Clear HL
        POP     AF
        JP      PO,L215A		; (close enough for relative jump ??)
        EI
L215A:  RET

L215B:		; Ramp Background Color (NOT Called ??) and LOCK UP ??
        DI
        ADD     A,$09
        OUT     (COL0R),A	; &(0) + 8 + 1 for Up in Color AND Intensity
        JP      L215B			; (close enough for relative jump ??)

L2163:			; Clear Some Variables Routine
        LD      E,$00
        LD      BC,$001A
        LD      HL,$4F43	; Clear from $4F43 through $4F5C
L216B:  LD      (HL),E
        CPI				; Decrement BC, Increment HL (ignore Compare)
        JP      PE,L216B		; Is BC NOT 0 ?
        RET

			; Addresses for ??
L2172:			; Data for ??
        DW      $4F29
        DW      $4F41

L2176:			; Data for ??
        DW      $4F0F
        DW      $4F27

L217A:			; ?? Routine ??
        BIT     2,(IX+$01)
        RET     NZ
        SET     2,(IX+$01)	; (already set ??)
        LD      A,($4F4C)
        CP      (IX+$0B)		; is $4F4C Greater Than Block Y ?
        JR      NC,L2194                ; (+$09)
        LD      HL,$4F47
        INC     (HL)		; $4F47 + 1 ??
        LD      HL,L2176
        JR      L219B                   ; (+$07)

L2194:  LD      HL,$4F48
        INC     (HL)		; $4F48 + 1 ??
        LD      HL,L2172
L219B:  PUSH    IX
        POP     DE		; Copy IX to DE
        CALL    L20C1		; to ??
        LD      A,L
        OR      H				; is HL Zero ?
        JR      Z,L21AC                 ; (+$07)
L21A5:  LD      A,R		; Set A to psudorandom 0 to 127 and copy IFF2 to Parity Flag ??
        OUT     (COL0R),A	; &(0) = ?? for Background Color and WAIT FOR INTERRUPT ??
        JP      L21A5			; (close enough for relative jump ??)

L21AC:  RET

L21AD:			; Interrupt Routine #1 pointed to by VECT01 in $4F56 to ??
        PUSH    AF
        PUSH    BC
        PUSH    DE
        PUSH    HL
        EXX
        EX      AF,AF'
        PUSH    AF
        PUSH    BC
        PUSH    DE
        PUSH    HL
        PUSH    IY
        PUSH    IX
        LD      A,(ILINE2)
        OUT     (INLIN),A	; &(15) set by $4F55 into Interrupt Line Register
        LD      A,$4F
        LD      I,A		; Set I Register to $4F for hi byte of $4F5A
        LD      A,$5A
        OUT     (INFBK),A	; &(13) = $5A for Interrupt Feedback to VECT02
        CALL    L2061		; to ??
        LD      HL,$4F52
        INC     (HL)		; $4F52 + 1 ??
        LD      A,($4F4B)
        CP      $00			; is $4F4B Not Zero ?
        JP      NZ,L2267		; (close enough for relative jump ??)
        LD      A,$01
        EI
        LD      ($4F4B),A	; Set $4F4B to 1 ??
        XOR     A
        LD      ($4F44),A	; Set $4F44 to 0 ??
        LD      A,($4F48)
        LD      ($4F46),A	; Store $4F48 in $4F46
L21E7:  LD      A,($4F4B)
        CP      $01			; is $4F4B Not Equal 1 ?
        JR      NZ,L2261                ; (+$73)
        LD      A,($4F44)
        OR      A				; is $4F44 Not Zero ?
        JR      NZ,L2261                ; (+$6d)
        LD      A,($4F46)
        OR      A				; is $4F46 Equal Zero ?
        JR      Z,L2261                 ; (+$67)
        LD      HL,L2172	; Point to ??
        CALL    L2110		; to ??
        LD      A,L
        OR      H				; is H or L Not Zero ?
        JR      NZ,L2261                ; (+$5d)
        LD      HL,$4F48
        DEC     (HL)		; $4F48 - 1 ??
        LD      HL,$4F46
        DEC     (HL)		; $4F46 - 1 ??
        LD      A,(BGC0R1)
        OUT     (COL0R),A	; &(0) = $4F51 for Background Color #1
        PUSH    DE
        POP     IX
        RES     2,(IX+$01)
        BIT     7,(IX+$01)
        JR      Z,L2259                 ; (+$3b)
        LD      A,($4F52)
        LD      C,A
        SUB     (IX+$17)
        LD      B,(IX+$18)
        CP      B
        JR      C,L222C                 ; (+$01)
        LD      A,B
L222C:  LD      C,(IX+$19)
        CP      C
        JP      C,L2252			; (close enough for relative jump ??)
        LD      B,$00
L2235:  SUB     C
        INC     B
        CP      C
        JP      NC,L2235		; (close enough for relative jump ??)
        LD      C,A
        LD      A,($4F52)
        SUB     C
        LD      (IX+$17),A
        LD      (IX+$02),B
        LD      HL,L2252
        PUSH    HL		; Fake a Return Address ??
        LD      H,(IX+$1B)
        LD      L,(IX+$1A)	; Read Handler Address word for Block ??
        DI
        JP      (HL)			; to Block Handler ??

L2252:			; Fake Return Address after ?? Block Handler ??
        BIT     7,(IX+$01)
        CALL    NZ,L217A	; to ??
L2259:  EI
        LD      A,(BGC0R3)
        OUT     (COL0R),A	; &(0) = $4F4E for Background Color #3
        JR      L21E7                   ; (-$7a)

L2261:			; Exit ??
        DI
        LD      A,$00
        LD      ($4F4B),A	; Set $4F4B to 0 ??
L2267:  POP     IX
        POP     IY
        POP     HL
        POP     DE
        POP     BC
        POP     AF
        EX      AF,AF'
        EXX
        POP     HL
        POP     DE
        POP     BC
        POP     AF
        EI
        RET

L2277:			; Set Up Interrupt(s) Routine
        DI
        LD      A,$08
        OUT     (INMOD),A	; &(14) = 8 for Screen Interrupt Enable Mode 0 ??
        IM      2
        CALL    L21AD		; Direct to Interrupt Routine #1 to ??
        DI
        RET

L2283:			; Interrupt Routine #2 pointed to by VECT02 in $4F5A to ??
        PUSH    AF
        PUSH    BC
        PUSH    DE
        PUSH    HL
        EXX
        EX      AF,AF'
        PUSH    AF
        PUSH    BC
        PUSH    DE
        PUSH    HL
        PUSH    IY
        PUSH    IX
        LD      A,(ILINE1)
        OUT     (INLIN),A	; &(15) set by $4F54 for Hold Interrupt Line ??
        LD      A,$4F
        LD      I,A		; Set I Register to $4F for hi byte of $4F58
        LD      A,$58
        OUT     (INFBK),A	; &(13) = $58 for Interrupt Feedback to VECT03
        LD      A,(RMPCLR)
        OR      A				; $4F0E for Freeze Colors ?
        JR      Z,L22C1                 ; (+$1d)
        LD      HL,COLORS	; RAM Color table
        LD      B,$03
L22A9:  LD      A,(HL)		; Change Colors Up
        ADD     A,$08
        LD      (HL),A
        INC     HL		; COL3L through COL1L
        DJNZ    L22A9                   ; (-$07)

        INC     HL		; Skip COL0L
        LD      B,$03
L22B3:  LD      A,(HL)
        INC     A			; Change Intensity Up
        LD      (HL),A
        INC     HL		; COL3R through COL1R
        DJNZ    L22B3                   ; (-$06)

        LD      HL,COLORS	; RAM Color table again
        LD      BC,$080B	; Out COLBX Port eight times
        OTIR
L22C1:  LD      A,($4F4B)
        CP      $01			; is $4F4B Not Equal to 1 ?
        JR      NZ,L22CD                ; (+$05)
        LD      A,$02
        LD      ($4F4B),A	; Set $4F4B to 2 ??
L22CD:  LD      A,($4F4A)
        CP      $00			; is $4F4A Not Equal to 0 ?
        JP      NZ,L2267		; (close enough for relative jump ??)
        LD      A,$01
        EI
        LD      ($4F4A),A	; Set $4F4A to 1 ??
        XOR     A
        LD      ($4F44),A	; Set $4F44 to 0 ??
        LD      A,($4F47)
        LD      ($4F45),A	; Store $4F47 in $4F45
L22E5:  LD      A,($4F4A)
        CP      $01			; is $4F4A Not Equal to 1 ?
        JR      NZ,L235F                ; (+$73)
        LD      A,($4F44)
        OR      A			; is $4F44 Not Equal to 0 ?
        JR      NZ,L235F                ; (+$6d)
        LD      A,($4F45)
        OR      A			; is $4F45 Equal to 0 ?
        JR      Z,L235F                 ; (+$67)
        LD      HL,L2176
        CALL    L2110		; to ??
        LD      A,L
        OR      H			; is H or L set to Not Zero ?
        JR      NZ,L235F                ; (+$5d)
        LD      HL,$4F47
        DEC     (HL)		; $4F47 - 1
        LD      HL,$4F45
        DEC     (HL)		; $4F45 - 1
        LD      A,(BGC0R2)
        OUT     (COL0R),A	; &(0) = $4F50 for Background Color #2
        PUSH    DE
        POP     IX
        RES     2,(IX+$01)
        BIT     7,(IX+$01)
        JR      Z,L2357                 ; (+$3b)
        LD      A,($4F52)
        LD      C,A		; (C = $4F52 then not used ??)
        SUB     (IX+$17)
        LD      B,(IX+$18)
        CP      B
        JR      C,L232A                 ; (+$01)
        LD      A,B
L232A:  LD      C,(IX+$19)
        CP      C
        JP      C,L2350			; (close enough for relative jump ??)
        LD      B,$00
L2333:  SUB     C
        INC     B
        CP      C
        JP      NC,L2333		; (close enough for relative jump ??)
        LD      C,A
        LD      A,($4F52)
        SUB     C
        LD      (IX+$17),A
        LD      (IX+$02),B
        LD      HL,L2350
        PUSH    HL		; Fake a Return Address ??
        LD      H,(IX+$1B)
        LD      L,(IX+$1A)	; Read Handler Address word for Block ??
        DI
        JP      (HL)			; to Block Handler ??

L2350:			; Fake Return Address for ?? Block Handler ??
        BIT     7,(IX+$01)
        CALL    NZ,L217A	; to ??
L2357:  EI
        LD      A,(BGC0R3)
        OUT     (COL0R),A	; &(0) = $4F4E for Background Color 3
        JR      L22E5                   ; (-$7a)

L235F:			; Exit ??
        DI
        LD      A,$00
        LD      ($4F4A),A	; Set $4F4A to 0 ??
        JP      L2267			; (close enough for relative jump ??)

L2368:			; Interrupt Routine #3 pointed to by VECT03 in $4F58 to ??
        PUSH    AF
        LD      A,($4F53)
        OUT     ($0F),A
        LD      A,$4F
        LD      I,A		; Set I Register to $4F for hi byte of $4F56
        LD      A,$56
        OUT     (INFBK),A	; &(13) = $56 for Interrupt Feedback to VECT01
        LD      A,($4F4A)
        CP      $01
        JR      NZ,L2382                ; (+$05)
        LD      A,$02
        LD      ($4F4A),A
L2382:  POP     AF
        EI      
        RET

L2385:			; Convert Relative to Absolute (with A = MAGIC to Write) Routine
        AND     $FC
        LD      B,A
        LD      A,D
        LD      C,A
        LD      L,H
        LD      H,$00
        ADD     HL,HL		; ?? Times 40 ??
        ADD     HL,HL
        ADD     HL,HL
        LD      D,H
        LD      E,L
        ADD     HL,HL
        ADD     HL,HL
        ADD     HL,DE
        SRL     A			; Divide ?? by 4 ??
        SRL     A
        LD      E,A
        LD      D,$00
        ADD     HL,DE
        LD      A,C
        AND     $03
        BIT     6,B
        JR      Z,L23A9                 ; (+$05)
        NEG
        JR      NZ,L23A9                ; (+$01)
        DEC     HL
L23A9:  AND     $03
        OR      B
        RET

L23AD:			; Draw Pattern in BC (size in DE) to HL (oriented by A) Routine
        OUT     (MAGIC),A	; &(12) = ?? for Magic Register ??
        BIT     7,A			; Test for FLIP (non-standard Invert)
        JR      NZ,L23E1                ; (+$2e)
        BIT     6,A			; Test for FLOP
        JR      Z,L23CC                 ; (+$15)
L23B7:  PUSH    DE
        PUSH    HL
L23B9:  LD      A,(BC)
        LD      (HL),A
        DEC     HL		; Left for Next byte
        INC     BC
        DEC     E				; Last byte in Row ?
        JR      NZ,L23B9                ; (-$07)
        LD      (HL),E		; Additional 0 Write for Shifter
        POP     HL		; Recenter to First byte written
        LD      DE,$0028
        ADD     HL,DE		; Down to Next line
        POP     DE
        DEC     D
        JR      NZ,L23B7                ; (-$13)
        JR      L23DF                   ; (+$13)

L23CC:  PUSH    DE
        PUSH    HL
L23CE:  LD      A,(BC)
        LD      (HL),A
        INC     HL		; Right a byte
        INC     BC
        DEC     E				; Last byte in Row ?
        JR      NZ,L23CE                ; (-$07)
        LD      (HL),E		; Additional 0 Write for Shifter
        POP     HL		; Recenter to First byte written
        LD      DE,$0028
        ADD     HL,DE		; Down to Next line
        POP     DE
        DEC     D
        JR      NZ,L23CC                ; (-$13)
L23DF:  JR      L2413                   ; (+$32)

L23E1:  BIT     6,A			; Test for FLOP
        JR      Z,L23FD                 ; (+$18)
L23E5:  PUSH    DE
        PUSH    HL
L23E7:  LD      A,(BC)
        LD      (HL),A
        DEC     HL		; Left a byte
        INC     BC
        DEC     E				; Last byte in Row ?
        JR      NZ,L23E7                ; (-$07)
        LD      (HL),E		; Additional 0 Write for Shifter
        POP     HL		; Recenter to First byte written
        LD      DE,$0028
        SCF				; Clear Carry Flag (in two steps)
        CCF
        SBC     HL,DE		; Up to Previous line
        POP     DE
        DEC     D
        JR      NZ,L23E5                ; (-$16)
        JR      L2413                   ; (+$16)

L23FD:  PUSH    DE
        PUSH    HL
L23FF:  LD      A,(BC)
        LD      (HL),A
        INC     HL		; Right a byte
        INC     BC
        DEC     E				; Last byte in Row ?
        JR      NZ,L23FF                ; (-$07)
        LD      (HL),E		; Additional 0 Write for Shifter
        POP     HL		; Recenter to First byte written
        LD      DE,$0028
        SCF				; Clear Carry Flag (in two steps)
        CCF
        SBC     HL,DE		; Up to Previous line
        POP     DE
        DEC     D
        JR      NZ,L23FD                ; (-$16)
L2413:			; Common Exit for all Draw Patterns
        IN      A,(INTST)	; Read &(8) for Intercept Status Register
        RET

L2416:			; Read Block for Draw Routine
        LD      L,(IX+$12)
        LD      H,(IX+$13)	; Read Pattern Base Address
        INC     HL
        INC     HL
        LD      E,(HL)		; Save Width in Bytes
        INC     HL
        LD      D,(HL)		; Save Height in Pixels
        INC     HL
        LD      B,H
        LD      C,L		; Pattern Data Starts Here
        LD      L,(IX+$0D)
        LD      H,(IX+$0E)	; Absolute MAGIC Address
        IN      A,(INTST)	; Read &(8) for Intercept Status Register (ignored) ??
        LD      A,(IX+$00)	; Read MAGIC to Write with
        CALL    L23AD		; to Draw Pattern
        RET

L2433:			; Read Block for Draw (with A = ??) Routine
        LD      L,(IX+$12)
        LD      H,(IX+$13)	; Read Pattern Base Address
        LD      C,(IX+$00)	; Read MAGIC to Write with
        LD      A,(IX+$06)	; Read X Location
        BIT     6,C			; is FLOP Not Set ?
        JR      Z,L2446                 ; (+$03)
        ADD     A,(HL)		; X + Width in Bytes
        JR      L2447                   ; (+$01)

L2446:  SUB     (HL)		; X - Width in Bytes
L2447:  INC     HL
        LD      D,A		; Save Starting X byte
        LD      A,(IX+$0B)	; Read Y Location
        BIT     7,C			; is (non-standard) FLIP Not Set ?
        JR      Z,L2454                 ; (+$04)
        ADD     A,(HL)
        DEC     A			; Y + Height in Pixels - 1
        JR      L2455                   ; (+$01)

L2454:  SUB     (HL)		; Y - Height in Pixels
L2455:  INC     HL
        PUSH    HL		; Save Pattern Data Starts Here pointer
        LD      H,A		; Save Starting Y line		
        IN      A,(INTST)	; Read &(8) for Intercept Status Register (ignored) ??
        LD      A,C		; Read MAGIC to Write with	
        CALL    L2385		; to Convert Relative to Absolute with D = ??
        LD      (IX+$00),A	; Save MAGIC to Write with (with Shift Added In)
        EX      (SP),HL		; Exchange Pattern Data Starts Here pointer with HL ??
        LD      E,(HL)
        INC     HL
        LD      D,(HL)		; DE = Pattern Data Starts Here pointer ??
        INC     HL
        LD      B,H
        LD      C,L		; BC = Pattern Data Starts Here pointer + 2 ??
        POP     HL		; HL = ??
        LD      (IX+$0E),H	; ??
        LD      (IX+$0D),L	; Supposed to be $0F ??
        JP      L23AD			; to Draw Pattern (close enough for relative jump ??)

L2472:			; Add Delta X to X, and Delta Y to Y, times A ?? Routine
        OR      A
        RET     Z
        LD      B,A
        PUSH    BC
        PUSH    HL
        POP     IY
        RES     3,(IX+$07)
        RES     3,(IX+$0C)
        LD      H,(IX+$06)	; Read Block X
        LD      L,(IX+$05)
        LD      D,(IX+$04)	; Read Delta X
        LD      E,(IX+$03)
L248D:  ADD     HL,DE
        DJNZ    L248D                   ; (-$03)

        BIT     0,(IX+$07)
        JR      Z,L24C3                 ; (+$2d)
        LD      A,H
        LD      B,(IY+$00)
        CP      $CF
        JR      NC,L24A9                ; (+$0b)
        CP      B
        JR      C,L24A9                 ; (+$08)
        LD      B,(IY+$01)
        CP      B
        JR      C,L24C3                 ; (+$1c)
        JR      Z,L24C3                 ; (+$1a)
L24A9:  SET     3,(IX+$07)
        LD      H,B
        LD      L,$00
        BIT     1,(IX+$07)
        JR      Z,L24C3                 ; (+$0d)
        LD      A,D
        CPL
        LD      D,A
        LD      A,E
        CPL
        LD      E,A
        INC     DE
        LD      (IX+$03),E
        LD      (IX+$04),D	; Save Delta X
L24C3:  LD      (IX+$05),L
        LD      (IX+$06),H	; Save Block X
        POP     BC
        LD      H,(IX+$0B)	; Read Block Y
        LD      L,(IX+$0A)
        LD      D,(IX+$09)	; Read Delta Y
        LD      E,(IX+$08)
L24D6:  ADD     HL,DE
        DJNZ    L24D6                   ; (-$03)

        BIT     0,(IX+$0C)
        JR      Z,L250C                 ; (+$2d)
        LD      A,H
        LD      B,(IY+$02)
        CP      $CF
        JR      NC,L24F2                ; (+$0b)
        CP      B
        JR      C,L24F2                 ; (+$08)
        LD      B,(IY+$03)
        CP      B
        JR      C,L250C                 ; (+$1c)
        JR      Z,L250C                 ; (+$1a)
L24F2:  SET     3,(IX+$0C)
        LD      H,B
        LD      L,$00
        BIT     1,(IX+$0C)
        JR      Z,L250C                 ; (+$0d)
        LD      A,D
        CPL
        LD      D,A
        LD      A,E
        CPL
        LD      E,A
        INC     DE
        LD      (IX+$08),E
        LD      (IX+$09),D	; Save Delta Y
L250C:  LD      (IX+$0A),L
        LD      (IX+$0B),H	; Save Y
        RET

L2513:			; Set Up Block for Draw Routine
        LD      A,(IX+$1D)	; Read Delay
        CP      $FF			; is Block Draw Turned Off ?
        RET     Z
        BIT     4,(IX+$07)		; is ??
        JR      Z,L2527                 ; (+$08)
        LD      L,(IX+$20)	; Read ??
        LD      H,(IX+$21)	; Read ??
        JR      L252D                   ; (+$06)

L2527:  LD      L,(IX+$1E)	; Read ??
        LD      H,(IX+$1F)	; Read ??
L252D:  DEC     (IX+$1D)	; Count Down Delay and Return if Not Zero ?
        JR      NZ,L255A                ; (+$28)
        PUSH    HL
        LD      A,(IX+$1C)	; Read Header Count
        INC     A				; was Header Count Equal to 255 ?
        JR      Z,L2540                 ; (+$07)
        LD      DE,$0003
        LD      B,A		; Header Count + 1
L253D:  ADD     HL,DE			; Point to Next Header
        DJNZ    L253D                   ; (-$03)

L2540:  LD      B,A
        LD      A,(HL)		; Header Data for ??
        POP     DE
        OR      A				; is Header+0 Not Equal Zero ?
        JR      NZ,L254A                ; (+$04)
        EX      DE,HL		; Loop Back to First Header ??
        LD      A,(HL)		; Read New Delay
        LD      B,$00		; Reset Header Count
L254A:  LD      (IX+$1D),A	; Save Delay
        INC     HL
        LD      A,(HL)
        LD      (IX+$12),A	; Save Hi byte Data Address
        INC     HL
        LD      A,(HL)
        LD      (IX+$13),A	; Save Low byte Data Address
        LD      (IX+$1C),B	; Save Header Count
L255A:  RET

L255B:			; Read (HL) bytes from HL+1 to IX ?? and then ?? Routine
        DI
        PUSH    IX
        POP     DE
        LD      C,(HL)
        INC     HL
        LD      B,$00
        SYSTEM  MOVE

        CALL    L2433		; to Set Up for Draw (with A = ??)
        LD      A,($4F52)
        DEC     A
        LD      (IX+$17),A
        CALL    L217A		; to ??
        SET     7,(IX+$01)
        RET

; L2577:		Not Used ?? 
        POP     DE
        POP     HL
        PUSH    BC
        PUSH    IX
        PUSH    IY
        PUSH    DE
        POP     IX
        CALL    L255B		; to ??
        POP     IY
        POP     IX
        POP     BC
        JP      (IY)			; to Where ??

L258B:			; Preset Some Variables Routine
        CALL    L2012		; to Initialize HVG System Routines
        CALL    L203D		; to Clear Jump Address Table and User Time Bases
        CALL    L2163		; to Clear Some Variables
        LD      HL,L21AD
        LD      (VECT01),HL	; Set $4F56 word to L21AD for Interrupt Routine #1
        LD      A,$4B
        LD      ($4F53),A	; Set $4F53 to 75 ??
        XOR     A
        LD      ($4F4B),A	; Set $4F4B to 0 ??
        XOR     A
        LD      ($4F4A),A	; Set $4F4A to 0 ??
        LD      HL,L2283
        LD      (VECT02),HL	; Set $4F5A word to L2283 for Interrupt Routine #2
        LD      A,$BE
        LD      (ILINE2),A	; Set $4F55 to 190 for Interrupt Line Register
        LD      HL,L2368
        LD      (VECT03),HL	; Set $4F58 word to L2368 for Interrupt Routine #3
        LD      A,$32
        LD      (ILINE1),A	; Set $4F54 to 50 ??
        XOR     A
        LD      ($4F48),A	; Set $4F48 to 0 ??
        XOR     A
        LD      ($4F47),A	; Set $4F47 to 0 ??
        LD      A,$32
        LD      ($4F4C),A	; Set $4F4C to 50 ??
        XOR     A
        LD      ($4F52),A	; Set $4F52 to 0 ??
        XOR     A
        LD      ($4F44),A	; Set $4F44 to 0 ??
        LD      HL,L2172
        CALL    L20A9		; to ??
        LD      HL,L2176
        CALL    L20A9		; to ??
        XOR     A
        LD      (BGC0RX),A	; Set $4F4F to 0 for Black Background Color #X (not used)
        XOR     A
        LD      (BGC0R1),A	; Set $4F51 to 0 for Black Background Color #1
        XOR     A
        LD      (BGC0R2),A	; Set $4F50 to 0 for Black Background Color #2
        XOR     A
        LD      ($4F4D),A	; Set $4F4D to 0 ??
        XOR     A
        LD      (BGC0R3),A	; Set $4F4E to 0 for Black Background Color #3
        RET

; L25F3			; Not Called ??
        PUSH    BC
        CALL    L258B		; to Preset Some Variables ??
        POP     BC
        JP      (IY)			; to Where ??

L25FA:			; ?? Routine
        XOR     A
        BIT     2,(IX+$07)
        RET     Z
        BIT     4,(IX+$07)
        RET     NZ
        LD      L,(IX+$0F)
        LD      H,(IX+$10)
        LD      B,(IX+$11)
        LD      E,(HL)
        INC     HL
        LD      D,(HL)
        PUSH    DE
        POP     IY
        EXX
        BIT     6,(IX+$0C)
        JR      Z,L2620                 ; (+$05)
        LD      BC,$0301
        JR      L262E                   ; (+$0e)

L2620:  LD      H,(IX+$13)
        LD      L,(IX+$12)
        INC     HL
        INC     HL
        LD      A,(HL)
        SLA     A
        LD      B,A
        INC     HL
        LD      C,(HL)
L262E:  LD      H,(IX+$06)	; Read Block X
        LD      L,(IX+$0B)	; Read Block Y
        EXX
L2635:  EXX
        BIT     4,(IY+$07)
        JR      NZ,L2694                ; (+$58)
        BIT     7,(IY+$01)
        JR      Z,L2694                 ; (+$52)
        BIT     6,(IY+$0C)
        JR      Z,L2653                 ; (+$0b)
        LD      A,(IY+$02)
        OR      A
        JR      Z,L2694                 ; (+$46)
        LD      DE,$0301
        JR      L2663                   ; (+$10)

L2653:  PUSH    HL
        LD      H,(IY+$13)
        LD      L,(IY+$12)
        INC     HL
        INC     HL
        LD      A,(HL)
        SLA     A
        LD      D,A
        INC     HL
        LD      E,(HL)
        POP     HL
L2663:  LD      A,(IY+$06)	; Read Block X
        EX      AF,AF'
        LD      A,(IY+$0B)	; Read Block Y
        EX      DE,HL
        ADD     HL,BC
        EX      DE,HL
        INC     E
        SRA     E
        SUB     L
        JP      M,L267B			; (close enough for relative jump ??)
        CP      E
        JP      NC,L2694		; (close enough for relative jump ??)
        JP      L267F			; (close enough for relative jump ??)

L267B:  ADD     A,E
        JP      M,L2694			; (close enough for relative jump ??)
L267F:  EX      AF,AF'
        SUB     H
        JP      M,L268B			; (close enough for relative jump ??)
        CP      D
        JP      NC,L2694		; (close enough for relative jump ??)
        JP      L268F			; (close enough for relative jump ??)

L268B:  ADD     A,D
        JP      M,L2694			; (close enough for relative jump ??)
L268F:  LD      A,$01
        AND     A
        JR      L2695                   ; (+$01)

L2694:  XOR     A
L2695:  EXX
        JR      Z,L269E                 ; (+$06)
        SET     5,(IY+$07)
        LD      B,$01
L269E:  INC     HL
        LD      E,(HL)
        INC     HL
        LD      D,(HL)
        PUSH    DE
        POP     IY
        DEC     B
        JP      NZ,L2635		; (close enough for relative jump ??)
        RET

L26AA:			; ?? Routine
        CALL    L2416		; to ??
        BIT     4,(IX+$16)
        JR      Z,L26C4                 ; (+$11)
        LD      B,(IX+$02)
L26B6:  DEC     (IX+$22)
        JR      NZ,L26C0                ; (+$05)
        RES     7,(IX+$01)
        RET

L26C0:  DJNZ    L26B6                   ; (-$0c)

        JR      L26D6                   ; (+$12)

L26C4:  BIT     5,(IX+$16)
        JR      Z,L26D6                 ; (+$0c)
        SET     4,(IX+$16)
        LD      (IX+$1C),$00
        LD      (IX+$1D),$01
L26D6:  CALL    L2513		; to Set Up Block for Draw
        BIT     3,(IX+$01)
        JP      NZ,L2416		; (NOT close enough for relative jump ??)
        LD      L,(IX+$14)
        LD      H,(IX+$15)	; New Block Base Address ??
        LD      A,(IX+$02)	; Read Speed
        CALL    L2472		; to Add Delta X to X, and Delta Y to Y, times A
        CALL    L2433		; to Set Up for Draw (with A = ??)
        OR      A
        RET     Z
        CALL    L25FA		; to ??
        OR      A
        RET     Z
        SET     5,(IX+$07)
        RET

			; Graphics Data Starts ??
L26FB:			; 72 bytes of 4x17 Data #1 for a Cottage
        DB      $08,$08		; X, Y Offsets to Hot Spot
        DB      $04,$11		; W Bytes by H Lines Pattern Size
        DB      $00,$50,$15,$00		; . . . . 1 1 . . . 1 1 1 . . . .
        DB      $01,$54,$55,$40		; . . . 1 1 1 1 . 1 1 1 1 1 . . .
        DB      $05,$55,$55,$50		; . . 1 1 1 1 1 1 1 1 1 1 1 1 . .
        DB      $15,$55,$55,$54		; . 1 1 1 1 1 1 1 1 1 1 1 1 1 1 .
        DB      $55,$5A,$AA,$A8		; 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 .
        DB      $AA,$AA,$AA,$A8		; 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 .
        DB      $A9,$A9,$59,$58		; 2 2 2 1 2 2 2 1 1 1 2 1 1 1 2 .
        DB      $97,$59,$D9,$D8		; 2 1 1 3 1 1 2 1 3 1 2 1 3 1 2 .
        DB      $A9,$A9,$D9,$D8		; 2 2 2 1 2 2 2 1(3)1 2 1 3 1 2 .
        DB      $AA,$A9,$59,$58		; 2 2 2 2 2 2 2 1 1 1 2 1 1 1 2 .
        DB      $A5,$58,$00,$08		; 2 2 1 1 1 1 2 . . . . . . . 2 .
        DB      $A7,$DA,$AA,$A8		; 2 2 1 3 3 1 2 2 2 2 2 2 2 2 2 .
        DB      $A7,$DA,$A5,$A8		; 2 2 1 3 3 1 2 2 2 2 1 1 2 2 2 .
        DB      $A5,$5A,$95,$68		; 2 2 1 1 1 1 2 2 2 1 1 1 1 2 2 .
        DB      $A0,$0A,$99,$68		; 2 2 . . . . 2 2 2 1 2 1 1 2 2 .
        DB      $AA,$AA,$95,$68		; 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 .
        DB      $AA,$AA,$95,$68		; 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 .

L2743:			; 72 bytes of 4x17 Data #2 for a Cottage
        DB      $08,$08		; X, Y Offsets to Hot Spot
        DB      $04,$11		; W Bytes by H Lines Pattern Size
        DB      $00,$50,$15,$00		; . . . . 1 1 . . . 1 1 1 . . . .
        DB      $01,$54,$55,$40		; . . . 1 1 1 1 . 1 1 1 1 1 . . .
        DB      $05,$55,$55,$50		; . . 1 1 1 1 1 1 1 1 1 1 1 1 . .
        DB      $15,$55,$55,$54		; . 1 1 1 1 1 1 1 1 1 1 1 1 1 1 .
        DB      $55,$5A,$AA,$A8		; 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 .
        DB      $AA,$AA,$AA,$A8		; 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 .
        DB      $A9,$A9,$59,$58		; 2 2 2 1 2 2 2 1 1 1 2 1 1 1 2 .
        DB      $94,$59,$19,$18		; 2 1 1 . 1 1 2 1 . 1 2 1 . 1 2 .
        DB      $A9,$A9,$19,$18		; 2 2 2 1 2 2 2 1(.)1 2 1 . 1 2 .
        DB      $AA,$A9,$59,$58		; 2 2 2 2 2 2 2 1 1 1 2 1 1 1 2 .
        DB      $A5,$58,$00,$08		; 2 2 1 1 1 1 2 . . . . . . . 2 .
        DB      $A4,$1A,$AA,$A8		; 2 2 1 . . 1 2 2 2 2 2 2 2 2 2 .
        DB      $A4,$1A,$A5,$A8		; 2 2 1 . . 1 2 2 2 2 1 1 2 2 2 .
        DB      $A5,$5A,$95,$68		; 2 2 1 1 1 1 2 2 2 1 1 1 1 2 2 .
        DB      $A0,$0A,$99,$68		; 2 2 . . . . 2 2 2 1 2 1 1 2 2 .
        DB      $AA,$AA,$95,$68		; 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 .
        DB      $AA,$AA,$95,$68		; 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 .

L278B:			; Header #1 for a Cottage
        DB      $17
        DW      L26FB

L278E:			; Header #2 for a Cottage
        DB      $0F
        DW      L2743

L2791:			; Loop Back for a Cottage
        DB      $00
        DW      L278B

L2794:			; 129 bytes of 5x25 Data #1 for a Fire Station
        DB      $0B,$0C		; X, Y Offsets to Hot Spot
        DB      $05,$19		; W Bytes by H Lines Pattern Size
        DB      $33,$30,$00,$00,$00		; . 3 . 3 . 3 . . . . . . . . . . . . . .
        DB      $CC,$CC,$00,$00,$00		; 3 . 3 . 3 . 3 . . . . . . . . . . . . .
        DB      $00,$33,$00,$80,$00		; . . . . . 3 . 3 . . . . 2 . . . . . . .
        DB      $00,$15,$42,$A0,$00		; . . . . . 1 1 1 1 . . 2 2 2 . . . . . .
        DB      $00,$10,$4A,$68,$00		; . . . . . 1 . . 1 . 2 2 1 2 2 . . . . .
        DB      $00,$10,$69,$DA,$00		; . . . . . 1 . . 1 2 2 1 3 1 2 2 . . . .
        DB      $00,$10,$A7,$F6,$80		; . . . . . 1 . . 2 2 1 3 3 3 1 2 2 . . .
        DB      $00,$12,$9F,$7D,$A0		; . . . . . 1 . 2 2 1 3 3 1 3 3 1 2 2 . .
        DB      $00,$1A,$55,$55,$68		; . . . . . 1 2 2 1 1 1 1 1 1 1 1 1 2 2 .
        DB      $00,$2A,$AA,$AA,$AA		; . . . . . 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
        DB      $00,$15,$55,$55,$55		; . . . . . 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
        DB      $00,$1D,$D1,$D1,$DD		; . . . . . 1 2 1 2 1 . 1 2 1 . 1 2 1 2 1
        DB      $00,$15,$55,$55,$55		; . . . . . 1 1 1 1 1 1(1)1 1 1 1 1 1 1 1
        DB      $00,$19,$55,$95,$59		; . . . . . 1 2 1 1 1 1 1 2 1 1 1 1 1 2 1
        DB      $00,$19,$DD,$9D,$D9		; . . . . . 1 2 1 3 1 3 1 2 1 3 1 3 1 2 1
        DB      $00,$19,$55,$95,$59		; . . . . . 1 2 1 1 1 1 1 2 1 1 1 1 1 2 1
        DB      $00,$19,$DD,$9D,$D9		; . . . . . 1 2 1 3 1 3 1 2 1 3 1 3 1 2 1
        DB      $00,$19,$55,$95,$59		; . . . . . 1 2 1 1 1 1 1 2 1 1 1 1 1 2 1
        DB      $00,$15,$55,$55,$55		; . . . . . 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
        DB      $00,$1D,$15,$55,$1D		; . . . . . 1 3 1 . 1 1 1 1 1 1 1 . 1 3 1
        DB      $00,$15,$AA,$6A,$95		; . . . . . 1 1 1 2 2 2 2 1 2 2 2 2 1 1 1
        DB      $00,$1D,$AA,$6A,$9D		; . . . . . 1 3 1 2 2 2 2 1 2 2 2 2 1 3 1
        DB      $00,$15,$A9,$5A,$95		; . . . . . 1 1 1 2 2 2 1 1 1 2 2 2 1 1 1
        DB      $00,$1D,$AA,$6A,$9D		; . . . . . 1 3 1 2 2 2 2 1 2 2 2 2 1 3 1
        DB      $00,$15,$55,$55,$55		; . . . . . 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

L2815:			; 129 bytes of 5x25 Data #2 for a Fire Station
        DB      $0A,$0C		; X, Y Offsets to Hot Spot
        DB      $05,$19		; W Bytes by H Lines Pattern Size
        DB      $33,$30,$00,$00,$00		; . 3 . 3 . 3 . . . . . . . . . . . . . .
        DB      $CC,$CC,$00,$00,$00		; 3 . 3 . 3 . 3 . . . . . . . . . . . . .
        DB      $00,$33,$02,$00,$00		; . . . . . 3 . 3 . . . 2 . . . . . . . .
        DB      $00,$55,$0A,$80,$00		; . . . . 1 1 1 1 . . 2 2 2 . . . . . . .
        DB      $00,$41,$29,$A0,$00		; . . . . 1 . . 1 . 2 2 1 2 2 . . . . . .
        DB      $00,$41,$A4,$68,$00		; . . . . 1 . . 1 2 2 1 . 1 2 2 . . . . .
        DB      $00,$42,$90,$1A,$00		; . . . . 1 . . 2 2 1 . . . 1 2 2 . . . .
        DB      $00,$4A,$41,$06,$80		; . . . . 1 . 2 2 1 . . 1 . . 1 2 2 . . .
        DB      $00,$69,$55,$55,$A0		; . . . . 1 2 2 1 1 1 1 1 1 1 1 1 2 2 . .
        DB      $00,$AA,$AA,$AA,$A8		; . . . . 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 .
        DB      $00,$55,$55,$55,$54		; . . . . 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 .
        DB      $00,$44,$44,$44,$44		; . . . . 1 . 1 . 1 . 1 . 1 . 1 . 1 . 1 .
        DB      $00,$55,$55,$55,$54		; . . . . 1 1 1 1 1 1(1)1 1 1 1 1 1 1 1 .
        DB      $00,$65,$56,$55,$64		; . . . . 1 2 1 1 1 1 1 2 1 1 1 1 1 2 1 .
        DB      $00,$64,$46,$44,$64		; . . . . 1 2 1 . 1 . 1 2 1 . 1 . 1 2 1 .
        DB      $00,$65,$56,$55,$64		; . . . . 1 2 1 1 1 1 1 2 1 1 1 1 1 2 1 .
        DB      $00,$64,$46,$44,$64		; . . . . 1 2 1 . 1 . 1 2 1 . 1 . 1 2 1 .
        DB      $00,$65,$56,$55,$64		; . . . . 1 2 1 1 1 1 1 2 1 1 1 1 1 2 1 .
        DB      $00,$55,$55,$55,$54		; . . . . 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 .
        DB      $00,$44,$55,$54,$44		; . . . . 1 . 1 . 1 1 1 1 1 1 1 . 1 . 1 .
        DB      $00,$56,$A9,$AA,$54		; . . . . 1 1 1 2 2 2 2 1 2 2 2 2 1 1 1 .
        DB      $00,$46,$A9,$AA,$44		; . . . . 1 . 1 2 2 2 2 1 2 2 2 2 1 . 1 .
        DB      $00,$56,$A5,$6A,$54		; . . . . 1 1 1 2 2 2 1 1 1 2 2 2 1 1 1 .
        DB      $00,$46,$A9,$AA,$44		; . . . . 1 . 1 2 2 2 2 1 2 2 2 2 1 . 1 .
        DB      $00,$55,$55,$55,$54		; . . . . 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 .

L2896:			; Header #1 for a Fire Station
        DB      $04
        DW      L2794

L2899:			; Header #2 for a Fire Station 
        DB      $02
        DW      L2815

L289C:			; Loop Back for a Fire Station
        DB      $00
        DW      L2896

L289F:			; 154 bytes of 24x25 Data #1 for a House
        DB      $0C,$0C		; X, Y Offsets to Hot Spot
        DB      $06,$19		; W Bytes by H Lines Pattern Size
        DB      $00,$00,$00,$40,$00,$00	; . . . . . . . . . . . . 1 . . . . . . . . . . .
        DB      $00,$00,$01,$50,$00,$00	; . . . . . . . . . . . 1 1 1 . . . . . . . . . .
        DB      $00,$0A,$A5,$56,$A0,$00	; . . . . . . 2 2 2 2 1 1 1 1 1 2 2 2 . . . . . .
        DB      $00,$2A,$95,$55,$A8,$00	; . . . . . 2 2 2 2 1 1 1 1 1 1 1 2 2 2 . . . . .
        DB      $00,$AA,$95,$55,$AA,$00	; . . . . 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 . . . .
        DB      $02,$AA,$BF,$FF,$AA,$80	; . . . 2 2 2 2 2 2 3 3 3 3 3 3 3 2 2 2 2 2 . . .
        DB      $0A,$AA,$B0,$03,$AA,$A0	; . . 2 2 2 2 2 2 2 3 . . . . . 3 2 2 2 2 2 2 . .
        DB      $2A,$AA,$B1,$53,$FF,$F0	; . 2 2 2 2 2 2 2 2 3 . 1 1 1 . 3 3 3 3 3 3 3 . .
        DB      $3F,$FF,$F4,$47,$75,$70	; . 3 3 3 3 3 3 3 3 3 1 . 1 . 1 3 1 3 1 1 1 3 . .
        DB      $35,$55,$74,$47,$74,$70	; . 3 1 1 1 1 1 1 1 3 1 1 1 1 1 3 1 3 1 1 1 3 . .
        DB      $34,$10,$75,$57,$75,$70	; . 3 1 . . 1 . . 1 3 1 1 1 1 1 3 1 3 1 1 1 3 . .
        DB      $35,$55,$75,$57,$74,$70	; . 3 1 1 1 1 1 1 1 3 1 1 1 1 1 3 1 3 1 . 1 3 . .
        DB      $3F,$FF,$F4,$47,$75,$70	; . 3 3 3 3 3 3 3 3 3 1 .(1). 1 3 1 3 1 1 1 3 . .
        DB      $33,$33,$34,$47,$74,$70	; . 3 . 3 . 3 . 3 . 3 1 . 1 . 1 3 1 3 1 . 1 3 . .
        DB      $33,$33,$31,$53,$75,$70	; . 3 . 3 . 3 . 3 . 3 . 1 1 1 . 3 1 3 1 1 1 3 . .
        DB      $33,$33,$30,$03,$74,$70	; . 3 . 3 . 3 . 3 . 3 . . . . . 3 1 3 1 . 1 3 . .
        DB      $33,$33,$30,$C3,$75,$70	; . 3 . 3 . 3 . 3 . 3 . . 3 . . 3 1 3 1 1 1 3 . .
        DB      $33,$33,$33,$73,$74,$70	; . 3 . 3 . 3 . 3 . 3 . 3 1 3 . 3 1 3 1 . 1 3 . .
        DB      $F3,$33,$3D,$5F,$75,$7C	; 3 3 . 3 . 3 . 3 . 3 3 1 1 1 3 3 1 3 1 1 1 3 3 .
        DB      $FF,$FF,$F5,$97,$FF,$FC	; 3 3 3 3 3 3 3 3 3 3 1 1 2 1 1 3 3 3 3 3 3 3 3 .
        DB      $35,$55,$56,$A5,$55,$70	; . 3 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 3 . .
        DB      $34,$10,$56,$A5,$40,$70	; . 3 1 . . 1 . . 1 1 1 2 2 2 1 1 1 . . . 1 3 . .
        DB      $34,$10,$55,$A5,$40,$70	; . 3 1 . . 1 . . 1 1 1 1 2 2 1 1 1 . . . 1 3 . .
        DB      $35,$55,$56,$A5,$55,$70	; . 3 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 3 . .
        DB      $3F,$FF,$FF,$FF,$FF,$F0	; . 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 . .

L2939:			; 154 bytes of 24x25 Data #2 for a House
        DB      $0C,$0C		; X, Y Offsets to Hot Spot
        DB      $06,$19		; W Bytes by H Lines Pattern Size
        DB      $00,$00,$00,$40,$00,$00	; . . . . . . . . . . . . 1 . . . . . . . . . . .
        DB      $00,$00,$01,$50,$00,$00	; . . . . . . . . . . . 1 1 1 . . . . . . . . . .
        DB      $00,$0A,$A5,$56,$A0,$00	; . . . . . . 2 2 2 2 1 1 1 1 1 2 2 2 . . . . . .
        DB      $00,$2A,$95,$55,$A8,$00	; . . . . . 2 2 2 2 1 1 1 1 1 1 1 2 2 2 . . . . .
        DB      $00,$AA,$95,$55,$AA,$00	; . . . . 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 . . . .
        DB      $02,$AA,$BF,$FF,$AA,$80	; . . . 2 2 2 2 2 2 3 3 3 3 3 3 3 2 2 2 2 2 . . .
        DB      $0A,$AA,$B0,$03,$AA,$A0	; . . 2 2 2 2 2 2 2 3 . . . . . 3 2 2 2 2 2 2 . .
        DB      $2A,$AA,$B1,$53,$FF,$F0	; . 2 2 2 2 2 2 2 2 3 . 1 1 1 . 3 3 3 3 3 3 3 . .
        DB      $3F,$FF,$F4,$47,$75,$70	; . 3 3 3 3 3 3 3 3 3 1 . 1 . 1 3 1 3 1 1 1 3 . .
        DB      $35,$55,$74,$47,$74,$70	; . 3 1 1 1 1 1 1 1 3 1 . 1 . 1 3 1 3 1 . 1 3 . .
        DB      $34,$10,$75,$57,$75,$70	; . 3 1 . . 1 . . 1 3 1 1 1 1 1 3 1 3 1 1 1 3 . .
        DB      $35,$55,$75,$57,$74,$70	; . 3 1 1 1 1 1 1 1 3 1 1 1 1 1 3 1 3 1 . 1 3 . .
        DB      $3F,$FF,$F4,$47,$75,$70	; . 3 3 3 3 3 3 3 3 3 1 .(1). 1 3 1 3 1 1 1 3 . .
        DB      $33,$33,$34,$47,$74,$70	; . 3 . 3 . 3 . 3 . 3 1 . 1 . 1 3 1 3 1 . 1 3 . .
        DB      $33,$33,$31,$53,$75,$70	; . 3 . 3 . 3 . 3 . 3 . 1 1 1 . 3 1 3 1 1 1 3 . .
        DB      $33,$33,$30,$03,$74,$70	; . 3 . 3 . 3 . 3 . 3 . . . . . 3 1 3 1 . 1 3 . .
        DB      $33,$33,$30,$C3,$75,$70	; . 3 . 3 . 3 . 3 . 3 . . 3 . . 3 1 3 1 1 1 3 . .
        DB      $33,$33,$33,$73,$74,$70	; . 3 . 3 . 3 . 3 . 3 . 3 1 3 . 3 1 3 1 . 1 3 . .
        DB      $F3,$33,$3D,$5F,$75,$7C	; 3 3 . 3 . 3 . 3 . 3 3 1 1 1 3 3 1 3 1 1 1 3 3 .
        DB      $FF,$FF,$F5,$97,$FF,$FC	; 3 3 3 3 3 3 3 3 3 3 1 1 2 1 1 2 3 3 3 3 3 3 3 .
        DB      $35,$55,$56,$A5,$55,$70	; . 3 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 3 . .
        DB      $37,$DF,$56,$A5,$7F,$70	; . 3 1 3 3 1 3 3 1 1 1 2 2 2 1 1 1 3 3 3 1 3 . .
        DB      $37,$DF,$55,$A5,$7F,$70	; . 3 1 3 3 1 3 3 1 1 1 1 2 2 1 1 1 3 3 3 1 3 . .
        DB      $35,$55,$56,$A5,$55,$70	; . 3 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 3 . .
        DB      $3F,$FF,$FF,$FF,$FF,$F0	; . 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 . .

L29D3:			; 154 bytes of 24x25 Data #3 for a House
        DB      $0C,$0C		; X, Y Offsets to Hot Spot
        DB      $06,$19		; W Bytes by H Lines Pattern Size
        DB      $00,$00,$00,$40,$00,$00	; . . . . . . . . . . . . 1 . . . . . . . . . . .
        DB      $00,$00,$01,$50,$00,$00	; . . . . . . . . . . . 1 1 1 . . . . . . . . . .
        DB      $00,$0A,$A5,$56,$A0,$00	; . . . . . . 2 2 2 2 1 1 1 1 1 2 2 2 . . . . . .
        DB      $00,$2A,$95,$55,$A8,$00	; . . . . . 2 2 2 2 1 1 1 1 1 1 1 2 2 2 . . . . .
        DB      $00,$AA,$95,$55,$AA,$00	; . . . . 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 . . . .
        DB      $02,$AA,$BF,$FF,$AA,$80	; . . . 2 2 2 2 2 2 3 3 3 3 3 3 3 2 2 2 2 2 . . .
        DB      $0A,$AA,$B0,$03,$AA,$A0	; . . 2 2 2 2 2 2 2 3 . . . . . 3 2 2 2 2 2 2 . .
        DB      $2A,$AA,$B1,$53,$FF,$F0	; . 2 2 2 2 2 2 2 2 3 . 1 1 1 . 3 3 3 3 3 3 3 . .
        DB      $3F,$FF,$F4,$47,$75,$70	; . 3 3 3 3 3 3 3 3 3 1 . 1 . 1 3 1 3 1 1 1 3 . .
        DB      $35,$55,$74,$47,$74,$70	; . 3 1 1 1 1 1 1 1 3 1 . 1 . 1 3 1 3 1 . 1 3 . .
        DB      $34,$10,$75,$57,$75,$70	; . 3 1 . . 1 . . 1 3 1 1 1 1 1 3 1 3 1 1 1 3 . .
        DB      $35,$55,$75,$57,$74,$70	; . 3 1 1 1 1 1 1 1 3 1 1 1 1 1 3 1 3 1 . 1 3 . .
        DB      $3F,$FF,$F7,$77,$75,$70	; . 3 3 3 3 3 3 3 3 3 1 3(1)3 1 3 1 3 1 1 1 3 . .
        DB      $33,$33,$37,$77,$77,$70	; . 3 . 3 . 3 . 3 . 3 1 3 1 3 1 3 1 3 1 3 1 3 . .
        DB      $33,$33,$31,$53,$75,$70	; . 3 . 3 . 3 . 3 . 3 . 1 1 1 . 3 1 3 1 1 1 3 . .
        DB      $33,$33,$30,$03,$77,$70	; . 3 . 3 . 3 . 3 . 3 . . . . . 3 1 3 1 3 1 3 . .
        DB      $33,$33,$30,$C3,$75,$70	; . 3 . 3 . 3 . 3 . 3 . . 3 . . 3 1 3 1 1 1 3 . .
        DB      $33,$33,$33,$73,$77,$70	; . 3 . 3 . 3 . 3 . 3 . 3 1 3 . 3 1 3 1 3 1 3 . .
        DB      $F3,$33,$3D,$5F,$75,$7C	; 3 3 . 3 . 3 . 3 . 3 3 1 1 1 3 3 1 3 1 1 1 3 3 .
        DB      $FF,$FF,$F5,$97,$FF,$FC	; 3 3 3 3 3 3 3 3 3 3 1 1 2 1 1 3 3 3 3 3 3 3 3 .
        DB      $35,$55,$56,$A5,$55,$70	; . 3 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 3 . .
        DB      $37,$DF,$56,$A5,$7F,$70	; . 3 1 3 3 1 3 3 1 1 1 2 2 2 1 1 1 3 3 3 1 3 . .
        DB      $37,$DF,$55,$A5,$7F,$70	; . 3 1 3 3 1 3 3 1 1 1 1 2 2 1 1 1 3 3 3 1 3 . .
        DB      $35,$55,$56,$A5,$55,$70	; . 3 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 3 . .
        DB      $3F,$FF,$FF,$FF,$FF,$F0	; . 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 . .

L2A6D:			; Header #1 for a House
        DB      $08
        DW      L289F
L2A70:			; Header #2 for a House
        DB      $08
        DW      L2939
L2A73:			; Header #3 for a House
        DB      $08
        DW      L29D3
L2A76:			; Loop Back for a House
        DB      $00
        DW      L2A6D

L2A79:			; 151 bytes of 28x21 Data #1 for Two Deer
        DB      $0A,$0A		; X, Y Offsets to Hot Spot
        DB      $07,$15		; W Bytes by H Lines Pattern Size
        DB      $00,$00,$11,$00,$00,$00,$00
        DB      $00,$00,$51,$40,$00,$00,$00
        DB      $00,$03,$11,$30,$00,$00,$00
        DB      $00,$00,$D1,$C0,$00,$00,$00
        DB      $C0,$00,$3B,$00,$00,$00,$00
        DB      $30,$00,$3F,$40,$00,$00,$00
        DB      $0F,$FF,$F0,$00,$00,$00,$00
        DB      $0F,$FF,$C0,$00,$00,$00,$00
        DB      $03,$FF,$00,$00,$00,$00,$00
        DB      $03,$30,$C0,$00,$00,$44,$00
        DB      $0C,$C3,$30,$00,$01,$45,$00
        DB      $33,$0C,$C0,$00,$0C,$44,$C0
        DB      $00,$00,$00,$00,$03,$47,$00
        DB      $00,$00,$03,$00,$00,$EC,$00
        DB      $00,$00,$00,$C0,$00,$FD,$00
        DB      $00,$00,$00,$3F,$FF,$C0,$00
        DB      $00,$00,$00,$3F,$FF,$00,$00
        DB      $00,$00,$00,$0F,$FC,$F0,$00
        DB      $00,$00,$00,$0C,$C3,$0C,$00
        DB      $00,$00,$00,$03,$30,$C3,$00
        DB      $00,$00,$00,$00,$CC,$30,$00
					; . . . . . . . . . 1 . 1 . . . . . . . . . . . . . . . .
					; . . . . . . . . 1 1 . 1 1 . . . . . . . . . . . . . . .
					; . . . . . . . 3 . 1 . 1 . 3 . . . . . . . . . . . . . .
					; . . . . . . . . 3 1 . 1 3 . . . . . . . . . . . . . . .
					; 3 . . . . . . . . 3 1 3 . . . . . . . . . . . . . . . .
					; . 3 . . . . . . . 3 3 3 1 . . . . . . . . . . . . . . .
					; . . 3 3 3 3 3 3 3 3 . . . . . . . . . . . . . . . . . .
					; . . 3 3 3 3 3 3 3 . . . . . . . . . . . . . . . . . . .
					; . . . 3 3 3 3 3 . . . . . . . . . . . . . . . . . . . .
					; . . . 3 . 3 . . 3 . . . . . . . . . . . 1 . 1 . . . . .
					; . . 3 . 3 . . 3 . 3(.). . . . . . . . 1 1 . 1 1 . . . .
					; . 3 . 3 . . 3 . 3 . . . . . . . . . 3 . 1 . 1 . 3 . . .
					; . . . . . . . . . . . . . . . . . . . 3 1 . 1 3 . . . .
					; . . . . . . . . . . . 3 . . . . . . . . 3 2 2 . . . . .
					; . . . . . . . . . . . . 3 . . . . . . . 3 3 3 1 . . . .
					; . . . . . . . . . . . . . 3 3 3 3 3 3 3 3 . . . . . . .
					; . . . . . . . . . . . . . 3 3 3 3 3 3 3 . . . . . . . .
					; . . . . . . . . . . . . . . 3 3 3 3 3 . 3 3 . . . . . .
					; . . . . . . . . . . . . . . 3 . 3 . . 3 . . 3 . . . . .
					; . . . . . . . . . . . . . . . 3 . 3 . . 3 . . 3 . . . .
					; . . . . . . . . . . . . . . . . 3 . 3 . . 3 . . . . . .

L2B10:			; 151 bytes of 28x21 Data #2 for Two Deer
        DB      $0A,$0A		; X, Y Offsets to Hot Spot
        DB      $07,$15		; W Bytes by H Lines Pattern Size
        DB      $00,$00,$11,$00,$00,$00,$00
        DB      $00,$00,$51,$40,$00,$00,$00
        DB      $00,$03,$11,$30,$00,$00,$00
        DB      $00,$00,$D1,$C0,$00,$00,$00
        DB      $C0,$00,$3B,$00,$00,$00,$00
        DB      $30,$00,$3F,$40,$00,$00,$00
        DB      $0F,$FF,$F0,$00,$00,$00,$00
        DB      $0F,$FF,$C0,$00,$00,$00,$00
        DB      $03,$FF,$3C,$00,$00,$00,$00
        DB      $03,$30,$C3,$00,$00,$44,$00
        DB      $00,$CC,$30,$C0,$01,$45,$00
        DB      $00,$33,$0C,$00,$0C,$44,$C0
        DB      $00,$00,$00,$00,$03,$47,$00
        DB      $00,$00,$03,$00,$00,$EC,$00
        DB      $00,$00,$00,$C0,$00,$FD,$00
        DB      $00,$00,$00,$3F,$FF,$C0,$00
        DB      $00,$00,$00,$3F,$FF,$00,$00
        DB      $00,$00,$00,$0F,$FC,$00,$00
        DB      $00,$00,$00,$0C,$C3,$00,$00
        DB      $00,$00,$00,$33,$0C,$C0,$00
        DB      $00,$00,$00,$CC,$33,$00,$00
					; . . . . . . . . . 1 . 1 . . . . . . . . . . . . . . . .
					; . . . . . . . . 1 1 . 1 1 . . . . . . . . . . . . . . .
					; . . . . . . . 3 . 1 . 1 . 3 . . . . . . . . . . . . . .
					; . . . . . . . . 3 1 . 1 3 . . . . . . . . . . . . . . .
					; 3 . . . . . . . . 3 2 3 . . . . . . . . . . . . . . . .
					; . 3 . . . . . . . 3 3 3 1 . . . . . . . . . . . . . . .
					; . . 3 3 3 3 3 3 3 3 . . . . . . . . . . . . . . . . . .
					; . . 3 3 3 3 3 3 3 . . . . . . . . . . . . . . . . . . .
					; . . . 3 3 3 3 3 . 3 3 . . . . . . . . . . . . . . . . .
					; . . . 3 . 3 . . 3 . . 3 . . . . . . . . 1 . 1 . . . . .
					; . . . . 3 . 3 . . 3(.). 3 . . . . . . 1 1 . 1 1 . . . .
					; . . . . . 3 . 3 . . 3 . . . . . . . 3 . 1 . 1 . 3 . . .
					; . . . . . . . . . . . . . . . . . . . 3 1 . 1 3 . . . .
					; . . . . . . . . . . . 3 . . . . . . . . 3 2 3 . . . . .
					; . . . . . . . . . . . . 3 . . . . . . . 3 3 3 1 . . . .
					; . . . . . . . . . . . . . 3 3 3 3 3 3 3 3 . . . . . . .
					; . . . . . . . . . . . . . 3 3 3 3 3 3 3 . . . . . . . .
					; . . . . . . . . . . . . . . 3 3 3 3 3 . . . . . . . . .
					; . . . . . . . . . . . . . . 3 . 3 . . 3 . . . . . . . .
					; . . . . . . . . . . . . . 3 . 3 . . 3 . 3 . . . . . . .
					; . . . . . . . . . . . . 3 . 3 . . 3 . 3 . . . . . . . .

L2BA7:			; Header #1 for Two Deer
        DB      $01
        DW      L2A79

L2BAA:			; Header #2 for Two Deer
        DB      $01
        DW      L2B10

L2BAD:			; Header #3 for Two Deer
        DB      $01
        DW      L2A79	; (Data #1 again)

L2BB0:			; Loop Back Header for Two Deer
        DB      $00
        DW      L2BA7

L2BB3:			; 67 bytes of 36x7 Data #1 for a Garden (wide)
        DB      $13,$04		; X, Y Offsets to Hot Spot
        DB      $09,$07		; W Bytes by H Lines Pattern Size
        DB      $00,$00,$00,$00,$00,$00,$00,$00,$00
        DB      $30,$01,$00,$30,$03,$00,$10,$03,$00
        DB      $00,$00,$00,$00,$00,$00,$00,$00,$00
        DB      $20,$02,$00,$20,$02,$00,$20,$02,$00
        DB      $20,$02,$00,$20,$02,$00,$20,$02,$00
        DB      $20,$02,$00,$20,$02,$00,$20,$02,$00
        DB      $00,$00,$00,$00,$00,$00,$00,$00,$00
			; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
			; . 3 . . . . . 1 . . . . . 3 . . . . . 3 . . . . . 1 . . . . . 3 . . . .
			; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
			; . 2 . . . . . 2 . . . . . 2 . . . . . 2 . . . . . 2 . . . . . 2 . . . .
			; . 2 . . . . . 2 . . . . . 2 . . . . .(2). . . . . 2 . . . . . 2 . . . .
			; . 2 . . . . . 2 . . . . . 2 . . . . . 2 . . . . . 2 . . . . . 2 . . . .
			; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

L2BF6:			; 58 bytes of 36x6 Data #2 for a Garden (wide)
        DB      $15,$04		; X, Y Offsets to Hot Spot
        DB      $09,$06		; W Bytes by H Lines Pattern Size
        DB      $00,$00,$00,$00,$00,$00,$00,$00,$00
        DB      $03,$00,$10,$03,$00,$30,$01,$00,$30
        DB      $00,$00,$00,$00,$00,$00,$00,$00,$00
        DB      $22,$22,$22,$22,$22,$22,$22,$22,$22
        DB      $0A,$80,$A8,$0A,$80,$A8,$0A,$80,$A8
        DB      $02,$00,$20,$02,$00,$20,$02,$00,$20
			; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
			; . . . 3 . . . . . 1 . . . . . 3 . . . . . 3 . . . . . 1 . . . . . 3 . .
			; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
			; . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2
			; . . 2 2 2 . . . 2 2 2 . . . 2 2 2 . . . 2(2)2 . . . 2 2 2 . . . 2 2 2 .
			; . . . 2 . . . . . 2 . . . . . 2 . . . . . 2 . . . . . 2 . . . . . 2 . .

L2C30:			; 58 bytes of 36x6 Data #3 for a Garden (wide)
        DB      $15,$04		; X, Y Offsets to Hot Spot
        DB      $09,$06		; W Bytes by H Lines Pattern Size
        DB      $01,$00,$30,$01,$00,$10,$03,$00,$10
        DB      $07,$40,$DC,$07,$40,$74,$0D,$C0,$74
        DB      $01,$00,$30,$01,$00,$10,$03,$00,$10
        DB      $22,$22,$22,$22,$22,$22,$22,$22,$22
        DB      $0A,$80,$A8,$0A,$80,$A8,$0A,$80,$A8
        DB      $02,$00,$20,$02,$00,$20,$02,$00,$20
			; . . . 1 . . . . . 3 . . . . . 1 . . . . . 1 . . . . . 3 . . . . . 1 . .
			; . . 1 2 1 . . . 3 1 3 . . . 1 3 1 . . . 1 3 1 . . . 3 1 3 . . . 1 3 1 .
			; . . . 1 . . . . . 3 . . . . . 1 . . . . . 1 . . . . . 3 . . . . . 1 . .
			; . . 2 2 2 . . . 2 2 2 . . . 2 2 2 . . . 2 2 2 . . . 2 2 2 . . . 2 2 2 .
			; . . 2 2 2 . . . 2 2 2 . . . 2 2 2 . . . 2(2)2 . . . 2 2 2 . . . 2 2 2 .
			; . . . 2 . . . . . 2 . . . . . 2 . . . . . 2 . . . . . 2 . . . . . 2 . .

L2C6A:			; Header #1 for a Garden (wide)
        DB      $04
        DW      L2BB3

L2C6D:			; Header #2 for a Garden (wide)
        DB      $04
        DW      L2BF6

L2C70:			; Header #3 for a Garden (wide)
        DB      $0C
        DW      L2C30

L2C73:			; Header #4 for a Garden (wide)
        DB      $0C
        DW      L2C30	; (Data #3 again)

L2C76:			; Header #5 for a Garden (wide)
        DB      $04
        DW      L2BF6	; (Data #2 again)

L2C79:			; Header #6 for a Garden (wide)
        DB      $04
        DW      L2BB3	; (Data #1 again)

L2C7C:			; Loop Back for a Garden (wide)
        DB      $00
        DW      L2C6A

L2C7F:			; 12 bytes of 8x4 Data #1 for a Turtle and Call to L3BB6 to ??
        DB      $04,$01		; X, Y Offsets to Hot Spot
        DB      $02,$04		; W Bytes by H Lines Pattern Size
        DB      $D0,$80				; 3 1 . . 2 . . .
        DB      $52,$A1				; 1 1 . 2(2)2 . 1
        DB      $0A,$A8				; . . 2 2 2 2 2 .
        DB      $08,$08				; . . 2 . . . 2 .

L2C8B:			; 12 bytes of 8x4 Data #2 for a Turtle and Call to L3BB6 to ??
        DB      $04,$01		; X, Y Offsets to Hot Spot
        DB      $02,$04		; W Bytes by H Lines Pattern Size
        DB      $D0,$80				; 3 1 . . 2 . . .
        DB      $52,$A1				; 1 1 . 2(2)2 . 1
        DB      $0A,$A8				; . . 2 2 2 2 2 .
        DB      $02,$02				; . . . 2 . . . 2

L2C97:			; Header #1 for a Turtle and Call to L3BB6 to ??
        DB      $04
        DW      L2C7F

L2C9A:			; Header #2 for a Turtle and Call to L3BB6 to ??
        DB      $04
        DW      L2C8B

L2C9D:			; Loop Back for a Turtle and Call to L3BB6 to ??
        DB      $00
        DW      L2C97

L2CA0:			; 52 bytes of 24x8 Data #1 for a Fire Truck
        DB      $0F,$02		; X, Y Offsets to Hot Spot
        DB      $06,$08		; W Bytes by H Lines Pattern Size
        DB      $FF,$FF,$FC,$05,$00,$00	; 3 3 3 3 3 3 3 3 3 3 3 . . . 1 1 . . . . . . . .
        DB      $CC,$CC,$CC,$57,$40,$00	; 3 . 3 . 3 . 3 . 3 . 3 . 1 1 1 3 1 . . . . . . .
        DB      $FF,$FF,$FD,$5F,$50,$00	; 3 3 3 3 3 3 3 3 3 3 3 1 1 1 3(3)1 1 . . . . . .
        DB      $00,$55,$55,$55,$54,$00	; . . . . 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 . . . . .
        DB      $01,$7D,$7D,$7D,$7D,$C0	; . . . 1 1 3 3 1 1 3 3 1 1 3 3 1 1 3 3 1 3 . . .
        DB      $01,$55,$55,$55,$55,$00	; . . . 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 . . . .
        DB      $01,$5A,$95,$5A,$69,$00	; . . . 1 1 1 2 2 2 1 1 1 1 1 2 2 1 2 2 1 . . . .
        DB      $00,$06,$80,$06,$18,$00	; . . . . . . 1 2 2 . . . . . 1 2 . 1 2 . . . . .

L2CD4:			; 74 bytes of 20x14 Data #2 for a Fire Truck
        DB      $0C,$08		; X, Y Offsets to Hot Spot
        DB      $05,$0E		; W Bytes by H Lines Pattern Size
        DB      $F0,$00,$00,$00,$00		; 3 3 . . . . . . . . . . . . . . . . . .
        DB      $CC,$00,$00,$00,$00		; 3 . 3 . . . . . . . . . . . . . . . . .
        DB      $FF,$00,$00,$00,$00		; 3 3 3 3 . . . . . . . . . . . . . . . .
        DB      $30,$C0,$00,$00,$00		; . 3 . . 3 . . . . . . . . . . . . . . .
        DB      $0F,$F0,$00,$00,$00		; . . 3 3 3 3 . . . . . . . . . . . . . .
        DB      $03,$0C,$00,$00,$00		; . . . 3 . . 3 . . . . . . . . . . . . .
        DB      $00,$FF,$01,$40,$00		; . . . . 3 3 3 3 . . . 1 1 . . . . . . .
        DB      $00,$33,$15,$10,$00		; . . . . . 3 . 3 . 1 1 1 . 1 . . . . . .
        DB      $00,$0F,$54,$14,$00		; . . . . . . 3 3 1 1 1 .(.)1 1 . . . . .
        DB      $15,$55,$55,$55,$00		; . 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 . . . .
        DB      $50,$50,$50,$50,$40		; 1 1 . . 1 1 . . 1 1 . . 1 1 . . 1 . . .
        DB      $55,$55,$55,$55,$40		; 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 . . .
        DB      $55,$A5,$55,$96,$40		; 1 1 1 1 2 2 1 1 1 1 1 1 2 1 1 2 1 . . .
        DB      $02,$A0,$02,$8A,$00		; . . . 2 2 2 . . . . . 2 2 . 2 2 . . . .

L2D1E:			; 52 bytes of 24x8 Data #3 for a Fire Truck
        DB      $0F,$02		; X, Y Offsets to Hot Spot
        DB      $06,$08		; W Bytes by H Lines Pattern Size
        DB      $FF,$FF,$FC,$05,$00,$00	; 3 3 3 3 3 3 3 3 3 3 3 . . . 1 1 . . . . . . . .
        DB      $CC,$CC,$CC,$57,$40,$00	; 3 . 3 . 3 . 3 . 3 . 3 . 1 1 1 3 1 . . . . . . .
        DB      $FF,$FF,$FD,$5F,$50,$00	; 3 3 3 3 3 3 3 3 3 3 3 1 1 1 3(3)1 1 . . . . . .
        DB      $00,$55,$55,$55,$54,$00	; . . . . 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 . . . . .
        DB      $01,$7D,$7D,$7D,$7D,$C0	; . . . 1 1 3 3 1 1 3 3 1 1 3 3 1 1 3 3 1 3 . . .
        DB      $01,$55,$55,$55,$55,$00	; . . . 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 . . . .
        DB      $01,$5A,$55,$59,$65,$00	; . . . 1 1 1 2 2 1 1 1 1 1 1 2 1 1 2 1 1 . . . .
        DB      $00,$0A,$80,$0A,$28,$00	; . . . . . . 2 2 2 . . . . . 2 2 . 2 2 . . . . .

L2D52:			; 74 bytes of 20x14 Data #4 for a Fire Truck
        DB      $0C,$08		; X, Y Offsets to Hot Spot
        DB      $05,$0E		; W Bytes by H Lines Pattern Size
        DB      $F0,$00,$00,$00,$00		; 3 3 . . . . . . . . . . . . . . . . . .
        DB      $CC,$00,$00,$00,$00		; 3 . 3 . . . . . . . . . . . . . . . . .
        DB      $FF,$00,$00,$00,$00		; 3 3 3 3 . . . . . . . . . . . . . . . .
        DB      $30,$C0,$00,$00,$00		; . 3 . . 3 . . . . . . . . . . . . . . .
        DB      $0F,$F0,$00,$00,$00		; . . 3 3 3 3 . . . . . . . . . . . . . .
        DB      $03,$0C,$00,$00,$00		; . . . 3 . . 3 . . . . . . . . . . . . .
        DB      $00,$FF,$01,$40,$00		; . . . . 3 3 3 3 . . . 1 1 . . . . . . .
        DB      $00,$33,$15,$10,$00		; . . . . . 3 . 3 . 1 1 1 . 1 . . . . . .
        DB      $00,$0F,$54,$14,$00		; . . . . . . 3 3 1 1 1 .(.)1 1 . . . . .
        DB      $15,$55,$55,$55,$00		; . 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 . . . .
        DB      $50,$50,$50,$50,$40		; 1 1 . . 1 1 . . 1 1 . . 1 1 . . 1 . . .
        DB      $55,$55,$55,$55,$40		; 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 . . .
        DB      $56,$A5,$56,$9A,$40		; 1 1 1 2 2 2 1 1 1 1 1 2 2 1 2 2 1 . . .
        DB      $02,$90,$02,$49,$00		; . . . 2 2 1 . . . . . 2 1 . 2 1 . . . .

L2D9C:			; Header #1 for a Fire Truck
        DB      $08
        DW      L2CA0

L2D9F:			; Header #2 for a Fire Truck
        DB      $08
        DW      L2CD4

L2DA2:			; Header #3 for a Fire Truck
        DB      $08
        DW      L2D1E

L2DA5:			; Header #4 for a Fire Truck
        DB      $08
        DW      L2D52

L2DA8:			; Header #5 for a Fire Truck
        DB      $08
        DW      L2D1E	; (Data #3 again)

L2DAB:			; Header #6 for a Fire Truck
        DB      $08
        DW      L2CD4	; (Data #2 again)

L2DAE:			; Loop Back for a Fire Truck
        DB      $00
        DW      L2D9C

L2DB1:			; 106 bytes of 24x17 Data #1 for Two Birds
        DB      $10,$08		; 74 bytes of 6x17 X, Y Offsets to Hot Spot
        DB      $06,$11		; W Bytes by H Lines Pattern Size
        DB      $00,$00,$00,$02,$A0,$00	; . . . . . . . . . . . . . . . 2 2 2 . . . . . .
        DB      $00,$00,$00,$02,$E0,$00	; . . . . . . . . . . . . . . . 2 3 2 . . . . . .
        DB      $00,$00,$00,$00,$40,$00	; . . . . . . . . . . . . . . . . 1 . . . . . . .
        DB      $00,$00,$00,$06,$64,$00	; . . . . . . . . . . . . . . 1 2 1 2 1 . . . . .
        DB      $00,$00,$00,$1A,$69,$00	; . . . . . . . . . . . . . 1 2 2 1 2 2 1 . . . .
        DB      $00,$00,$00,$62,$A2,$40	; . . . . . . . . . . . . 1 2 . 2 2 2 . 2 1 . . .
        DB      $00,$00,$01,$80,$80,$90	; . . . . . . . . . . . 1 2 . . . 2 . . . 2 1 . .
        DB      $00,$00,$00,$03,$30,$00	; . . . . . . . . . . . . . . . 3 . 3 . . . . . .
        DB      $00,$00,$00,$00,$00,$00	; . . . . . . . . . . . . . . . .(.). . . . . . .
        DB      $00,$A8,$00,$00,$00,$00	; . . . . 2 2 2 . . . . . . . . . . . . . . . . .
        DB      $90,$B8,$18,$00,$00,$00	; 2 1 . . 2 3 2 . . 1 2 . . . . . . . . . . . . .
        DB      $24,$10,$60,$00,$00,$00	; . 2 1 . . 1 . . 1 2 . . . . . . . . . . . . . .
        DB      $09,$99,$80,$00,$00,$00	; . . 2 1 2 1 2 1 2 . . . . . . . . . . . . . . .
        DB      $02,$9A,$00,$00,$00,$00	; . . . 2 2 1 2 2 . . . . . . . . . . . . . . . .
        DB      $00,$A8,$00,$00,$00,$00	; . . . . 2 2 2 . . . . . . . . . . . . . . . . .
        DB      $00,$20,$00,$00,$00,$00	; . . . . . 2 . . . . . . . . . . . . . . . . . .
        DB      $00,$CC,$00,$00,$00,$00	; . . . . 3 . 3 . . . . . . . . . . . . . . . . .

L2E1B:			; 106 bytes of 24x17 Data #2 for Two Birds
        DB      $10,$08		; X, Y Offsets to Hot Spot
        DB      $06,$11		; W Bytes by H Lines Pattern Size
        DB      $00,$00,$00,$02,$A0,$00	; . . . . . . . . . . . . . . . 2 2 2 . . . . . .
        DB      $00,$00,$02,$42,$E0,$60	; . . . . . . . . . . . 2 1 . . 2 3 2 . . 1 2 . .
        DB      $00,$00,$00,$90,$41,$80	; . . . . . . . . . . . . 2 1 . . 1 . . 1 2 . . .
        DB      $00,$00,$00,$26,$66,$00	; . . . . . . . . . . . . . 2 1 2 1 2 1 2 . . . .
        DB      $00,$00,$00,$0A,$68,$00	; . . . . . . . . . . . . . . 2 2 1 2 2 . . . . .
        DB      $00,$00,$00,$02,$A0,$00	; . . . . . . . . . . . . . . . 2 2 2 . . . . . .
        DB      $00,$00,$00,$00,$80,$00	; . . . . . . . . . . . . . . . . 2 . . . . . . .
        DB      $00,$00,$00,$03,$30,$00	; . . . . . . . . . . . . . . . 3 . 3 . . . . . .
        DB      $00,$00,$00,$00,$00,$00	; . . . . . . . . . . . . . . . .(.). . . . . . .
        DB      $00,$A8,$00,$00,$00,$00	; . . . . 2 2 2 . . . . . . . . . . . . . . . . .
        DB      $00,$B8,$00,$00,$00,$00	; . . . . 2 3 2 . . . . . . . . . . . . . . . . .
        DB      $00,$10,$00,$00,$00,$00	; . . . . . 1 . . . . . . . . . . . . . . . . . .
        DB      $01,$99,$00,$00,$00,$00	; . . . 1 2 1 2 1 . . . . . . . . . . . . . . . .
        DB      $06,$9A,$40,$00,$00,$00	; . . 1 2 2 1 2 2 1 . . . . . . . . . . . . . . .
        DB      $18,$A8,$90,$00,$00,$00	; . 1 2 . 2 2 2 . 2 1 . . . . . . . . . . . . . .
        DB      $60,$20,$24,$00,$00,$00	; 1 2 . . . 2 . . . 2 1 . . . . . . . . . . . . .
        DB      $00,$CC,$00,$00,$00,$00	; . . . . 3 . 3 . . . . . . . . . . . . . . . . .

L2E85:			; Header #1 for Two Birds
        DB      $01
        DW      L2DB1

L2E88:			; Header #2 for Two Birds
        DB      $01
        DW      L2E1B

L2E8B:			; Loop Back for Two Birds
        DB      $00
        DW      L2E85

L2E8E:			; 100 bytes of 24x16 Data #1 for a Kangaroo
        DB      $0F,$0A		; X, Y Offsets to Hot Spot
        DB      $06,$10		; W Bytes by H Lines Pattern Size
        DB      $00,$00,$04,$01,$00,$00	; . . . . . . . . . . 1 . . . . 1 . . . . . . . .
        DB      $00,$00,$05,$05,$00,$00	; . . . . . . . . . . 1 1 . . 1 1 . . . . . . . .
        DB      $00,$00,$01,$54,$00,$00	; . . . . . . . . . . . 1 1 1 1 . . . . . . . . .
        DB      $00,$00,$01,$5C,$00,$00	; . . . . . . . . . . . 1 1 1 3 . . . . . . . . .
        DB      $00,$00,$00,$55,$40,$00	; . . . . . . . . . . . . 1 1 1 1 1 . . . . . . .
        DB      $40,$00,$01,$55,$40,$00	; 1 . . . . . . . . . . 1 1 1 1 1 1 . . . . . . .
        DB      $50,$00,$05,$54,$00,$00	; 1 1 . . . . . . . . 1 1 1 1 1 . . . . . . . . .
        DB      $54,$00,$15,$55,$55,$00	; 1 1 1 . . . . . . 1 1 1 1 1 1 1 1 1 1 1 . . . .
        DB      $15,$00,$55,$54,$05,$00	; . 1 1 1 . . . . 1 1 1 1 1 1 1 . . . 1 1 . . . .
        DB      $05,$40,$55,$77,$00,$00	; . . 1 1 1 . . . 1 1 1 1 1 3 1 3 . . . . . . . .
        DB      $01,$50,$55,$5E,$00,$00	; . . . 1 1 1 . . 1 1 1 1 1 1 3(2). . . . . . . .
        DB      $00,$54,$55,$5F,$C0,$00	; . . . . 1 1 1 . 1 1 1 1 1 1 3 3 3 . . . . . . .
        DB      $00,$05,$55,$40,$40,$00	; . . . . . . 1 1 1 1 1 1 1 . . . 1 . . . . . . .
        DB      $00,$00,$55,$41,$00,$00	; . . . . . . . . 1 1 1 1 1 . . 1 . . . . . . . .
        DB      $00,$00,$15,$55,$55,$50	; . . . . . . . . . 1 1 1 1 1 1 1 1 1 1 1 1 1 . .
        DB      $00,$00,$01,$55,$55,$40	; . . . . . . . . . . . 1 1 1 1 1 1 1 1 1 1 . . .

L2EF2:			; 130 bytes of 28x18 Data #2 for a Kangaroo
        DB      $12,$0A		; X, Y Offsets to Hot Spot
        DB      $07,$12		; W Bytes by H Lines Pattern Size
        DB      $00,$00,$00,$04,$01,$00,$00
        DB      $00,$00,$00,$05,$05,$00,$00
        DB      $00,$00,$00,$02,$54,$00,$00
        DB      $00,$00,$00,$15,$50,$00,$00
        DB      $00,$00,$00,$15,$50,$00,$00
        DB      $00,$00,$00,$01,$50,$00,$00
        DB      $00,$00,$00,$05,$50,$00,$00
        DB      $00,$00,$00,$15,$55,$54,$00
        DB      $40,$00,$00,$55,$50,$14,$00
        DB      $50,$00,$01,$55,$73,$00,$00
        DB      $15,$40,$01,$55,$6C,$00,$00
        DB      $01,$55,$41,$55,$FC,$00,$00
        DB      $00,$15,$55,$55,$04,$00,$00
        DB      $00,$00,$01,$55,$10,$00,$00
        DB      $00,$00,$00,$55,$50,$00,$00
        DB      $00,$00,$00,$05,$50,$00,$00
        DB      $00,$00,$00,$01,$55,$55,$40
        DB      $00,$00,$00,$00,$55,$55,$00
					; . . . . . . . . . . . . . . 1 . . . . 1 . . . . . . . .
					; . . . . . . . . . . . . . . 1 1 . . 1 1 . . . . . . . .
					; . . . . . . . . . . . . . . . 2 1 1 1 . . . . . . . . .
					; . . . . . . . . . . . . . 1 1 1 1 1 . . . . . . . . . .
					; . . . . . . . . . . . . . 1 1 1 1 1 . . . . . . . . . .
					; . . . . . . . . . . . . . . . 1 1 1 . . . . . . . . . .
					; . . . . . . . . . . . . . . 1 1 1 1 . . . . . . . . . .
					; . . . . . . . . . . . . . 1 1 1 1 1 1 1 1 1 1 . . . . .
					; 1 . . . . . . . . . . . 1 1 1 1 1 1 . . . 1 1 . . . . .
					; 1 1 . . . . . . . . . 1 1 1 1 1 1 3 . 3 . . . . . . . .
					; . 1 1 1 1 . . . . . . 1 1 1 1 1 1 2(3). . . . . . . . .
					; . . . 1 1 1 1 1 1 . . 1 1 1 1 1 3 3 3 . . . . . . . . .
					; . . . . . 1 1 1 1 1 1 1 1 1 1 1 . . 1 . . . . . . . . .
					; . . . . . . . . . . . 1 1 1 1 1 . 1 . . . . . . . . . .
					; . . . . . . . . . . . . 1 1 1 1 1 1 . . . . . . . . . .
					; . . . . . . . . . . . . . . 1 1 1 1 . . . . . . . . . .
					; . . . . . . . . . . . . . . . 1 1 1 1 1 1 1 1 1 1 . . .
					; . . . . . . . . . . . . . . . . 1 1 1 1 1 1 1 1 . . . .

L2F74:			; 130 bytes of 24x21 Data #3 for a Kangaroo
        DB      $12,$0A		; X, Y Offsets to Hot Spot
        DB      $06,$15		; W Bytes by H Lines Pattern Size
        DB      $00,$00,$00,$04,$01,$00	; . . . . . . . . . . . . . . 1 . . . . 1 . . . .
        DB      $00,$00,$00,$05,$05,$00	; . . . . . . . . . . . . . . 1 1 . . 1 1 . . . .
        DB      $00,$00,$00,$02,$54,$00	; . . . . . . . . . . . . . . . 2 1 1 1 . . . . .
        DB      $00,$00,$00,$15,$50,$00	; . . . . . . . . . . . . . 1 1 1 1 1 . . . . . .
        DB      $00,$00,$00,$15,$50,$00	; . . . . . . . . . . . . . 1 1 1 1 1 . . . . . .
        DB      $00,$00,$00,$01,$50,$00	; . . . . . . . . . . . . . . . 1 1 1 . . . . . .
        DB      $00,$00,$00,$05,$50,$00	; . . . . . . . . . . . . . . 1 1 1 1 . . . . . .
        DB      $00,$00,$00,$15,$55,$54	; . . . . . . . . . . . . . 1 1 1 1 1 1 1 1 1 1 .
        DB      $40,$00,$00,$55,$50,$14	; 1 . . . . . . . . . . . 1 1 1 1 1 1 . . . 1 1 .
        DB      $50,$00,$01,$55,$73,$00	; 1 1 . . . . . . . . . 1 1 1 1 1 1 3 . 3 . . . .
        DB      $15,$40,$01,$55,$6C,$00	; . 1 1 1 1 . . . . . . 1 1 1 1 1 1 2(3). . . . .
        DB      $01,$55,$05,$55,$FC,$00	; . . . 1 1 1 1 1 . . 1 1 1 1 1 1 3 3 3 . . . . .
        DB      $00,$15,$55,$55,$04,$00	; . . . . . 1 1 1 1 1 1 1 1 1 1 1 . . 1 . . . . .
        DB      $00,$00,$05,$55,$10,$00	; . . . . . . . . . . 1 1 1 1 1 1 . 1 . . . . . .
        DB      $00,$00,$01,$55,$50,$00	; . . . . . . . . . . . 1 1 1 1 1 1 1 . . . . . .
        DB      $00,$00,$00,$55,$54,$00	; . . . . . . . . . . . . 1 1 1 1 1 1 1 . . . . .
        DB      $00,$00,$00,$01,$54,$00	; . . . . . . . . . . . . . . . 1 1 1 1 . . . . .
        DB      $00,$00,$00,$05,$50,$00	; . . . . . . . . . . . . . . 1 1 1 1 . . . . . .
        DB      $00,$00,$00,$15,$40,$00	; . . . . . . . . . . . . . 1 1 1 1 . . . . . . .
        DB      $00,$00,$00,$05,$55,$55	; . . . . . . . . . . . . . . 1 1 1 1 1 1 1 1 1 1
        DB      $00,$00,$00,$01,$55,$54	; . . . . . . . . . . . . . . . 1 1 1 1 1 1 1 1 .

L2FF6:			; Header #1 for a Kangaroo
        DB      $03
        DW      L2E8E

L2FF9:			; Header #2 for a Kangaroo
        DB      $01
        DW      L2EF2

L2FFC:			; Header #3 for a Kangaroo
        DB      $01
        DW      L2F74

L2FFF:			; Loop Back for a Kangaroo
        DB      $00
        DW      L2FF6

L3002:			; 64 bytes of 12x20 Data #1 for a Tree
        DB      $05,$0E		; X, Y Offsets to Hot Spot
        DB      $03,$14		; W Bytes by H Lines Pattern Size
        DB      $00,$03,$40			; . . . . . . . 3 1 . . .
        DB      $40,$01,$00			; 1 . . . . . . 1 . . . .
        DB      $14,$07,$0D			; . 1 1 . . . 1 3 . . 3 1
        DB      $35,$10,$04			; . 3 1 1 . 1 . . . . 1 .
        DB      $01,$D1,$14			; . . . 1 3 1 . 1 . 1 1 .
        DB      $10,$54,$50			; . 1 . . 1 1 1 . 1 1 . .
        DB      $34,$75,$C0			; . 3 1 . 1 3 1 1 3 . . .
        DB      $01,$54,$00			; . . . 1 1 1 1 . . . . .
        DB      $00,$54,$40			; . . . . 1 1 1 . 1 . . .
        DB      $00,$55,$1C			; . . . . 1 1 1 1 . 1 3 .
        DB      $00,$54,$04			; . . . . 1 1 1 . . . 1 .
        DB      $00,$54,$00			; . . . . 1 1 1 . . . . .
        DB      $00,$54,$00			; . . . . 1 1 1 . . . . .
        DB      $00,$64,$00			; . . . . 1 2 1 . . . . .
        DB      $00,$64,$00			; . . . . 1(2)1 . . . . .
        DB      $00,$54,$00			; . . . . 1 1 1 . . . . .
        DB      $00,$54,$00			; . . . . 1 1 1 . . . . .
        DB      $00,$54,$00			; . . . . 1 1 1 . . . . .
        DB      $01,$55,$00			; . . . 1 1 1 1 1 . . . .
        DB      $05,$55,$40			; . . 1 1 1 1 1 1 1 . . .

L3042:			; Header #1 for a Tree
        DB      $FF
        DW      $3002

L3045:			; Loop Back for a Tree
        DB      $00
        DW      $3042

			; Code Starts Again Here
L3048:			; ?? Routine
        PUSH    HL
        XOR     A
        BIT     7,D
        JR      NZ,L3057                ; (+$09)
        LD      HL,($4DEB)
        SBC     HL,DE
        JR      C,L305C                 ; (+$07)
        JR      Z,L3066                 ; (+$0f)
L3057:  OR      $01
        JP      L3066			; (close enough for relative jump ??)

L305C:  LD      HL,($4DE7)
        OR      A
        SBC     HL,DE
        JR      NC,L3066                ; (+$02)
        OR      $02
L3066:  POP     HL
        EXX
        PUSH    HL
        BIT     7,D
        JR      NZ,L3076                ; (+$09)
        LD      HL,($4DE9)
        SBC     HL,DE
        JR      C,L307B                 ; (+$07)
        JR      Z,L3085                 ; (+$0f)
L3076:  OR      $08
        JP      L3085			; (close enough for relative jump ??)

L307B:  LD      HL,($4DE5)
        OR      A
        SBC     HL,DE
        JR      NC,L3085                ; (+$02)
        OR      $04
L3085:  POP     HL
        EXX
        RET

L3088:			; ?? Routine
        EX      DE,HL
        BIT     7,H
        JR      NZ,L309D                ; (+$10)
        LD      H,B
        LD      L,C
        SBC     HL,DE
        JR      C,L3096                 ; (+$03)
        LD      H,B
        LD      L,C
        RET

L3096:  BIT     7,D
        JR      NZ,L309D                ; (+$03)
        LD      H,D
        LD      L,E
        RET

L309D:  LD      HL,$0000
        RET

L30A1:			; ?? Routine
        CALL    L3048		; to ??
        LD      B,A
        EX      DE,HL
        EXX
        EX      DE,HL
        EXX
        CALL    L3048		; to ??
        LD      C,A
        OR      B
        RET     Z
        LD      A,C
        AND     B
        RET     NZ
        EX      AF,AF'
        LD      A,B
        LD      ($4DE3),A	; Set $4DE3 to ??
        LD      ($4DE4),A	; Set $4DE4 to ??
        LD      A,C
        LD      ($4DE2),A	; Set $4DE2 to ??
        LD      ($4DDE),DE	; Set $4DDE word to ??
        LD      ($4DE0),HL	; Set $4DE0 word to ??
        EXX
        LD      ($4DDA),DE	; Set $4DDA word to ??
        LD      ($4DDC),HL	; Set $4DDC word to ??
        EXX
L30CE:  OR      A
        JR      NZ,L30DA                ; (+$09)
        EX      AF,AF'
        EX      DE,HL
        EXX
        EX      DE,HL
        EXX
        JR      Z,L314C                 ; (+$74)
        XOR     A
        RET

L30DA:  LD      BC,$FFFF
        EXX
        LD      BC,$FFFF
        EXX
L30E2:  PUSH    HL
        BIT     7,D
        JR      NZ,L30F1                ; (+$0a)
        BIT     7,H
        JR      NZ,L30F1                ; (+$06)
        ADD     HL,DE
        SRL     H
        JP      L30F4			; (close enough for relative jump ??)

L30F1:  ADD     HL,DE
        SRA     H
L30F4:  RR      L
        INC     HL
        EX      DE,HL
        EXX
        PUSH    HL
        BIT     7,H
; L3100: 			; Not a Label ??
        JR      NZ,L3108                ; (+$0a)
        BIT     7,D
        JR      NZ,L3108                ; (+$06)
        ADD     HL,DE
        SRL     H
        JP      L310B			; (close enough for relative jump ??)

L3108:  ADD     HL,DE
        SRA     H
L310B:  RR      L
        EX      DE,HL
        EXX
        PUSH    DE
        LD      A,E
        AND     $C0
        LD      E,A
        LD      A,C
        AND     $C0
        CP      E
        POP     DE
        JR      NZ,L3168                ; (+$4d)
        LD      A,B
        CP      D
        JR      NZ,L3168                ; (+$49)
        EXX
        PUSH    DE
        LD      A,E
        AND     $C0
        LD      E,A
        LD      A,C
        AND     $C0
        CP      E
        POP     DE
        JR      NZ,L3167                ; (+$3b)
        LD      A,B
        CP      D
        JR      NZ,L3167                ; (+$37)
        POP     BC
        CALL    L3088		; to ??
        EXX
        POP     BC
        CALL    L3088		; to ??
        EX      AF,AF'
        JR      NZ,L315B                ; (+$1f)
        LD      DE,($4DE0)
        LD      ($4DDE),HL	; Set $4DDE word to ??
        EXX
        LD      DE,($4DDC)
        LD      ($4DDA),HL	; Set $4DDA word to ??
        EXX
L314C:  INC     A
        EX      AF,AF'
        XOR     A
        LD      ($4DE3),A	; Set $4DE3 to 0 ??
        LD      A,($4DE4)
        LD      ($4DE2),A	; Store $4DE4 in $4DE2 ??
        JP      L30CE			; (close enough for relative jump ??)

L315B:  LD      DE,($4DDE)
        EXX
        LD      DE,($4DDA)
        EXX
        XOR     A
        RET

L3167:  EXX
L3168:  CALL    L3048		; to ??
        LD      C,A
        LD      A,($4DE2)
        AND     C
        JR      NZ,L3183                ; (+$11)
        LD      A,C
        LD      ($4DE3),A	; Set $4DE3 to ??
        EX      DE,HL
        LD      B,H
        LD      C,L
        EXX
        EX      DE,HL
        LD      B,H
        LD      C,L
        EXX
        POP     AF
        POP     AF
        JP      L30E2			; (close enough for relative jump ??)

L3183:  LD      A,C
        LD      ($4DE2),A	; Set $4DE2 to ??
        LD      A,($4DE3)
        AND     C
        JR      NZ,L3198                ; (+$0b)
        EXX
        POP     HL
        LD      B,D
        LD      C,E
        EXX
        POP     HL
        LD      B,D
        LD      C,E
        JP      L30E2			; (close enough for relative jump ??)

L3198:  POP     HL
        POP     HL
        RET

L319B:			; ?? Routine
        LD      A,H
        SUB     D
        PUSH    AF
        JR      NC,L31A2                ; (+$02)
        CPL
        INC     A
L31A2:  LD      H,A
        POP     AF
        RET

L31A5:			; ?? Routine
        JR      C,L31AE                 ; (+$07)
        EX      AF,AF'
        JR      NC,L31B1                ; (+$07)
L31AA:  LD      BC,$FFD8
        RET

L31AE:  EX      AF,AF'
        JR      NC,L31AA                ; (-$07)
L31B1:  LD      BC,$0028
        RET

L31B5:			; Set Color Mode Routine
        LD      A,(COLORM)	; Read $4DD7 for Color Mode
        OR      A				; is Color Mode Not Equal 0 ?
        JR      NZ,L31BF                ; (+$04)
        LD      A,(MULTIC)	; Set $4DD9 to 0 for Multi-Color 0
        RET

L31BF:  CP      $02			; is Color Mode Not Equal 2 ?
        JR      NZ,L31D0                ; (+$0d)
L31C3:		; Set Color Mode to 2 Subroutine
        LD      A,(MULTIC)
        LD      (OLDMUC),A	; Save $4DD9 in $4DD8 for Old Multi-Color
        INC     A
        AND     $03
        LD      (MULTIC),A	; Multi-Color = (Old Multi-Color + 1) MOD 4
        RET

L31D0:		; Set Color Mode to 1 Subroutine
        CALL    L31C3		; to Set Color Mode to 2 Subroutine
        JR      NZ,L31D6                ; (+$01)
        INC     A			; A = Minimum of 1
L31D6:  LD      (MULTIC),A	; Set $4DD9 = 1, 1, 2 or 3 for Multi-Color 
        RET

L31DA:			; Compute Shift + Hold Magic Register Routine
        LD      E,D
        LD      D,$00
        LD      L,H
        LD      H,$00
        PUSH    DE
        ADD     HL,HL
        PUSH    HL
        AND     A
        SBC     HL,DE
        PUSH    HL
        AND     A
        SBC     HL,DE
        EX      DE,HL
        POP     HL
        POP     BC
        EXX
        POP     HL
        INC     L
        LD      A,(MULTIC)	; Read $4DD9 for Multi-Color
        RRCA    
        RRCA    
        LD      D,A
        EX      AF,AF'
        PUSH    HL
        LD      HL,HOLDMR	; Point to $4DD6 for Hold Magic Register
        OR      (HL)
        POP     HL
        RET

L31FE:			; ?? Routine
        OUT     (MAGIC),A	; &(12) = ?? for Magic Register ??
        LD      (IX+$00),D
        EXX
        BIT     7,H
        JR      NZ,L3214                ; (+$0c)
        INC     A
        BIT     2,A
        JR      Z,L3211                 ; (+$04)
        AND     $30
        INC     IX
L3211:  ADD     HL,DE
        JR      L3215                   ; (+$01)

L3214:  ADD     HL,BC
L3215:  EXX
        ADD     IX,BC
        DEC     L
        JR      NZ,L31FE                ; (-$1d)
        RET

L321C:			; ?? Routine
        OUT     (MAGIC),A	; &(12) = ?? for Magic Register ??
        LD      (IX+$00),D
        EXX
        BIT     7,H
        JR      NZ,L322D                ; (+$07)
        EXX
        ADD     IX,BC
        EXX
        ADD     HL,DE
        JR      L322E                   ; (+$01)

L322D:  ADD     HL,BC
L322E:  EXX
        INC     A
        BIT     2,A
        JR      Z,L3238                 ; (+$04)
        AND     $30
        INC     IX
L3238:  DEC     L
        JR      NZ,L321C                ; (-$1f)
        RET

L323C:  LD      A,$9F
        CP      H
        JR      NC,L3245                ; (+$04)
        SRA     H
        JR      L3247                   ; (+$02)

L3245:  SRL     H
L3247:  RR      L
        CP      D
        JR      NC,L3250                ; (+$04)
        SRA     D
        JR      L3252                   ; (+$02)

L3250:  SRL     D
L3252:  RR      E
        CALL    L30A1		; to ??
        EXX
        RET     NZ
        PUSH    IX
        PUSH    IY
        PUSH    HL
        CALL    L319B		; to ??
        EX      (SP),HL
        EXX
        EX      AF,AF'
        EX      DE,HL
        ADD     HL,HL
        EX      DE,HL
        ADD     HL,HL
        PUSH    HL
        CALL    L319B		; to ??
        EX      (SP),HL
        EXX
        CALL    L31A5		; to ??
        EX      AF,AF'
        JR      C,L3275                 ; (+$01)
        EX      DE,HL
L3275:  PUSH    HL
        EXX
        JR      NC,L327A                ; (+$01)
        EX      DE,HL
L327A:  POP     HL
        XOR     A
        CALL    L2385		; to Convert Relative to Absolute (with A = PLOP)
        EX      AF,AF'
        PUSH    HL
        POP     IX
        POP     DE
        POP     HL
        PUSH    HL
        AND     A
        SBC     HL,DE
        POP     HL
        JR      C,L3295                 ; (+$09)
        EX      DE,HL
        CALL    L31DA		; to Compute Shift + Hold Magic Register
        CALL    L31FE		; to ??
        JR      L329B                   ; (+$06)

L3295:  CALL    L31DA		; to Compute Shift + Hold Magic Register
        CALL    L321C		; to ??
L329B:  POP     IY
        POP     IX
        RET

L32A0:			; ?? Routine
        EXX
        LD      A,($4DD2)
        LD      H,A
        LD      ($4DD0),A	; Store $4DD2 in $4DD0 ??
        EXX
        LD      A,($4DD3)
        LD      H,A
        LD      ($4DD1),A	; Store $4DD3 in $4DD1 ??
        EXX
        LD      A,($4DD4)
        LD      D,A
        EXX
        LD      A,($4DD5)	; Store $4DD3 (Not $4DD4 ??) in $4DD5 ??
        LD      D,A
        CALL    L31B5		; to ??
        JP      L323C			; (close enough for relative jump ??)

L32C0:			; ?? Routine
        LD      A,($4DD1)
        LD      ($4DD5),A	; Store $4DD1 in $4DD5 ??
        LD      A,($4DD0)
        LD      ($4DD4),A	; Store $4DD0 in $4DD4 ??
        JP      L32A0			; (close enough for relative jump ??)

L32CF:			; ?? and Restore Old Multi-Color Routine
        CALL    L32A0		; to ??
        LD      A,(OLDMUC)
        LD      (MULTIC),A	; Restore $4DD8 to $4DD9 for Multi-Color
        RET

L32D9:			; ?? and Restore Old Multi-Color Routine
        CALL    L32C0		; to ??
        LD      A,(OLDMUC)
        LD      (MULTIC),A	; Restore $4DD8 to $4DD9 for Multi-Color
        RET

L32E3:			; Set Magic Register to A + Hold Magic Register Routine
        PUSH    HL
        LD      HL,HOLDMR	; Point to $4DD6 for Hold Magic Register
        OR      (HL)
        POP     HL
        OUT     (MAGIC),A	; &(12) = ?? for Magic Register ??
        RET

L32EC:			; ?? Routine
        CALL    L31B5		; to ??
        RRCA    
        RRCA    
        LD      D,A
        EXX
        LD      BC,($4DCD)
        INC     C
        LD      B,$08
        XOR     A
        LD      A,C
L32FC:  RLA     
        JR      C,L3301                 ; (+$02)
        DJNZ    L32FC                   ; (-$05)

L3301:  LD      A,B
        LD      ($4DCF),A	; Set $4DCF to ??
        LD      HL,($4DC9)
        LD      DE,($4DCB)
        PUSH    IX
        PUSH    IY
        EXX
        PUSH    BC
        EXX
        PUSH    BC
        PUSH    DE
        XOR     A
        LD      B,A
        PUSH    BC
        PUSH    HL
        SBC     HL,BC
        LD      D,E
        LD      H,L
        CALL    L2385		; to Convert Relative to Absolute (with A = PLOP)
        EXX
        LD      H,A
        XOR     $03
        LD      L,A
        EXX
        PUSH    HL
        POP     IX
        POP     HL
        POP     BC
        POP     DE
        ADD     HL,BC
        XOR     A
        LD      D,E
        LD      H,L
        CALL    L2385		; to Convert Relative to Absolute (with A = PLOP)
        PUSH    HL
        POP     IY
        POP     DE
        LD      D,E
        XOR     A
        LD      E,A
        LD      B,A
        LD      H,A
        LD      L,A
        DEC     DE
        EXX
        LD      BC,$0028
        ADD     IX,BC
        LD      BC,$FFD8
        ADD     IY,BC
        LD      A,H
        CALL    L32E3		; to ??
        LD      (IX+$00),D
        LD      (IY+$00),D
        EXX
L3354:  PUSH    DE
        LD      A,($4DCF)
        LD      B,A
        LD      A,E
L335A:  SRL     D
        RRA     
        DJNZ    L335A                   ; (-$05)

        LD      E,A
        LD      A,H
        ADD     HL,DE
        CP      H
        LD      A,$00
        JR      NC,L3368                ; (+$01)
        INC     A
L3368:  EX      AF,AF'
        LD      D,H
        LD      E,L
        LD      A,($4DCF)
        LD      B,A
        LD      A,E
L3370:  SRL     D
        RRA     
        DJNZ    L3370                   ; (-$05)

        LD      E,A
        LD      B,H
        LD      C,L
        POP     HL
        LD      A,H
        SBC     HL,DE
        CP      H
        JR      Z,L338C                 ; (+$0d)
        LD      DE,$0028
        ADD     IX,DE
        LD      DE,$FFD8
        ADD     IY,DE
        EX      AF,AF'
        INC     A
        EX      AF,AF'
L338C:  LD      D,H
        LD      E,L
        LD      H,B
        LD      L,C
        EX      AF,AF'
        JR      Z,L3354                 ; (-$3f)
        LD      A,D
        OR      A
        JR      Z,L33E0                 ; (+$49)
        LD      A,H
        EXX
        LD      E,A
        ADD     A,L
        CPL
        LD      C,A
        AND     $03
        CALL    L32E3		; to ??
        SRA     C
        SRA     C
        LD      B,$FF
        INC     BC
        ADD     IX,BC
        ADD     IY,BC
        LD      (IX+$00),D
        LD      (IY+$00),D
        LD      A,E
        ADD     A,H
        LD      E,A
        AND     $03
        CALL    L32E3		; to ??
        SRL     E
        SRL     E
        LD      A,C
        CPL
        INC     A
        ADD     A,E
        LD      C,A
        LD      A,$00
        ADC     A,A
        LD      B,A
        ADD     IX,BC
        ADD     IY,BC
        LD      (IX+$00),D
        LD      (IY+$00),D
        LD      B,$FF
        LD      A,E
        CPL
        LD      C,A
        INC     BC
        ADD     IX,BC
        ADD     IY,BC
        EXX
        JP      L3354			; (close enough for relative jump ??)

L33E0:  LD      A,H
        EXX
        LD      E,A
        ADD     A,L
        CPL
        LD      C,A
        AND     $03
        CALL    L32E3		; to ??
        SRA     C
        SRA     C
        LD      B,$FF
        INC     BC
        ADD     IX,BC
        LD      (IX+$00),D
        LD      A,E
        ADD     A,H
        LD      E,A
        AND     $03
        CALL    L32E3		; to ??
        SRL     E
        SRL     E
        LD      A,C
        CPL
        INC     A
        ADD     A,E
        LD      C,A
        LD      A,$00
        ADC     A,A
        LD      B,A
        ADD     IX,BC
        LD      (IX+$00),D
        POP     BC
        POP     IY
        POP     IX
        RET

L3417:			; ?? Routine
        CALL    L32EC		; to ??
        LD      A,(OLDMUC)
        LD      (MULTIC),A
        RET

L3421:  RRCA    
        RRCA    
        LD      ($4DC6),A	; Set $4DC6 to ??
        LD      A,(HOLDMR)	; Read $4DD6 for Hold Magic Register
        OUT     (MAGIC),A	; &(12) = $4DD6 (with no shift) for Magic Register
        XOR     A
        LD      ($4DC5),A	; Set $4DC5 to 0 ??
        LD      ($4DC4),A	; Set $4DC4 to 0 ??
        CALL    L2385		; to Convert Relative to Absolute (with A = PLOP)
        SET     6,H
        PUSH    HL
        LD      E,A
        CP      $03
        LD      A,(HL)
        JR      Z,L3444                 ; (+$06)
        LD      B,E
        INC     B
L3440:  RLCA    
        RLCA    
        DJNZ    L3440                   ; (-$04)

L3444:  LD      C,A
        RRCA    
        RRCA    
        EX      AF,AF'
        LD      A,C
        AND     $03
        LD      D,A
L344C:  LD      A,E
        OR      A
        JR      Z,L345E                 ; (+$0e)
        LD      B,E
        INC     B
L3452:  LD      A,C
        AND     $03
        CP      D
        JR      NZ,L3464                ; (+$0c)
        RRC     C
        RRC     C
        DJNZ    L3452                   ; (-$0c)

L345E:  LD      B,$04
        DEC     HL
        LD      C,(HL)
        JR      L3452                   ; (-$12)

L3464:  BIT     2,B
        JR      Z,L346B                 ; (+$03)
        LD      B,$00
        INC     HL
L346B:  LD      A,B
        LD      ($4DC3),A	; Set $4DC3 to ??
        LD      A,($4DC5)
        OR      A
        JR      NZ,L347C                ; (+$07)
        LD      ($4DBF),HL	; Store ?? word in $4DBF for ??
        LD      A,B
        LD      ($4DC1),A	; Set $4DC1 to ??
L347C:  EX      (SP),HL
        RRC     D
        RRC     D
        LD      A,E
        CP      $03
        JR      Z,L349A                 ; (+$14)
        CPL
        AND     $03
        LD      B,A
        INC     B
        EX      AF,AF'
        LD      C,A
L348D:  LD      A,C
        AND     $C0
        CP      D
        JR      NZ,L34A2                ; (+$0f)
        INC     E
        RLC     C
        RLC     C
        DJNZ    L348D                   ; (-$0d)

L349A:  LD      E,$00
        LD      B,$04
        INC     HL
        LD      C,(HL)
        JR      L348D                   ; (-$15)

L34A2:  DEC     E
        LD      A,E
        BIT     7,A
        JR      Z,L34AC                 ; (+$04)
        LD      A,$03
        LD      E,A
        DEC     HL
L34AC:  LD      ($4DC2),A	; Set $4DC2 to ??
        XOR     A
        POP     BC
        PUSH    BC
        SBC     HL,BC
        LD      A,L
        EX      AF,AF'
        LD      A,L
        OR      H
        JR      NZ,L34C4                ; (+$0a)
        LD      A,($4DC3)
        LD      B,A
        LD      A,E
        SUB     B
        INC     A
        LD      L,A
        JR      L34DC                   ; (+$18)

L34C4:  DEC     L
        SLA     L
        RL      H
        SLA     L
        RL      H
        LD      A,($4DC3)
        CPL
        AND     $03
        INC     A
        ADD     A,E
        INC     A
        ADD     A,L
        LD      L,A
        LD      A,H
        ADC     A,$00
        LD      H,A
L34DC:  LD      A,($4DC5)
        OR      A
        JR      NZ,L34E9                ; (+$07)
        INC     A
        LD      ($4DC5),A	; Set $4DC5 to 1 ??
        LD      ($4DBD),HL	; Store ?? word in $4DBD for ??
L34E9:  EX      (SP),HL
        PUSH    HL
        RES     6,H
        LD      A,($4DC3)
        CPL
        AND     $03
        LD      B,A
        INC     B
        LD      A,($4DC6)
        LD      C,A
L34F9:  OR      C
        RLCA    
        RLCA    
        DJNZ    L34F9                   ; (-$05)

        LD      E,A
        EX      AF,AF'
        JR      Z,L3518                 ; (+$16)
        LD      (HL),E
        DEC     A
        LD      E,A
        LD      A,C
        LD      B,$03
L3508:  RRCA    
        RRCA    
        OR      C
        DJNZ    L3508                   ; (-$05)

        LD      B,E
        LD      E,A
        LD      A,B
        OR      A
        INC     HL
        JR      Z,L3518                 ; (+$04)
L3514:  LD      (HL),E
        INC     HL
        DJNZ    L3514                   ; (-$04)

L3518:  LD      A,($4DC2)
        CPL
        AND     $03
        JR      Z,L352C                 ; (+$0c)
        LD      B,A
        LD      C,$FC
        LD      A,E
L3524:  AND     C
        RLC     C
        RLC     C
        DJNZ    L3524                   ; (-$07)

        LD      E,A
L352C:  LD      (HL),E
        RLC     D
        RLC     D
L3531:  LD      A,($4DC4)
        OR      A
        JR      NZ,L353C                ; (+$05)
        LD      BC,$0028
        JR      L353F                   ; (+$03)

L353C:  LD      BC,$FFD8
L353F:  POP     HL
        ADD     HL,BC
        EXX
        POP     DE
        EXX
        LD      A,($4DC3)
        LD      E,A
        CPL
        AND     $03
        INC     A
        LD      C,A
        LD      B,E
        INC     B
L354F:  LD      A,(HL)
L3550:  RLCA    
        RLCA    
        DJNZ    L3550                   ; (-$04)

        LD      B,C
L3555:  LD      C,A
        AND     $03
        CP      D
        JR      Z,L358B                 ; (+$30)
        INC     E
        EXX
        DEC     DE
        LD      A,D
        OR      E
        EXX
        JR      NZ,L357D                ; (+$1a)
        LD      A,($4DC4)
        OR      A
        JR      NZ,L3593                ; (+$2a)
        INC     A
        LD      ($4DC4),A	; Set $4DC4 to 1 ??
        LD      HL,($4DBD)
        PUSH    HL
        LD      HL,($4DBF)
        PUSH    HL
        LD      A,($4DC1)
        LD      ($4DC3),A	; Store $4DC1 in $4DC3 ??
        JR      L3531                   ; (-$4c)

L357D:  LD      A,C
        RLCA    
        RLCA    
        DJNZ    L3555                   ; (-$2d)

        INC     HL
        LD      C,$04
        LD      E,$00
        LD      B,$01
        JR      L354F                   ; (-$3c)

L358B:  PUSH    HL
        LD      A,C
        RRCA    
        RRCA    
        EX      AF,AF'
        JP      L344C			; (close enough for relative jump ??)

L3593:  RET

L3594:			; ?? Routine
        LD      A,($4DC8)
        LD      D,A
        LD      A,($4DC7)
        LD      H,A
        CALL    L31B5		; to ??
        JP      L3421			; (close enough for relative jump ??)

L35A2:			; ?? Routine
        LD      HL,$0000
        LD      ($4DEB),HL	; Set $4DEB word to $0000 ??
        LD      ($4DE9),HL	; Set $4DE9 word to $0000 ??
        LD      HL,$5000
        LD      ($4DE7),HL	; Set $4DE7 word to $5000 ??
        LD      HL,$5600
        LD      ($4DE5),HL	; Set $4DE5 word to $5600 ??
        RET

L35B8:			; Color Data Block in ROM
        DB      $7E		; &(COL3L) = Gold (Left screen color 3) Ramp Colors Only
        DB      $F5		; &(COL2L) = Blue (Left screen color 2)
        DB      $53		; &(COL1L) = Red (Left screen color 1)
        DB      $00		; &(COL0L) = Black (Left screen color 0)
        DB      $7E		; &(COL3R) = Gold (Right screen color 3) Ramp Intensity
        DB      $F5		; &(COL2R) = Blue (Right screen color 2)
        DB      $53		; &(COL1R) = Red (Right screen color 1)
        DB      $00		; &(COL0R) = Black (Right screen color 0)

L35C0:			; Set Colors Routine
        LD      BC,$0008
        LD      DE,COLORS	; Save Color Block to $4F06 in RAM
        LD      HL,L35B8
        LDIR    
        LD      BC,$080B	; Out COLBX Port eight times 
        LD      HL,COLORS
        OTIR
        RET

L35D4:			; ?? Routine
        IN      A,(SW0)		; Read &(16) for Player One Joystick
        LD      B,A
        AND     $10		; Set Trigger as if Pulled
        LD      HL,OLDSW0
        XOR     (HL)
        CP      $10			; Same as $4DBB Old Joystick Reading ?
        JP      Z,L35F6			; (close enough for relative jump ??)
        LD      A,(HL)
        CP      $10
        JP      NZ,L35ED		; (close enough for relative jump ??)
        LD      (HL),$00	; Save 0 as Old Joystick 1
        JP      L35F6			; (close enough for relative jump ??)

L35ED:  LD      (HL),$10
        LD      A,$01
        LD      HL,$4DBC
        XOR     (HL)
        LD      (HL),A
L35F6:  LD      (IX+$09),$00	; Set Delta Y to 0
        LD      (IX+$04),$00	; Set Delta X to 0
        LD      A,(CURSOR)
        OR      A					; is $4DBA set to Use Knobs ?
        JP      NZ,L363C		; (close enough for relative jump ??)
        LD      A,($4DB9)
        OR      A
        JP      NZ,L3611		; (close enough for relative jump ??)
        LD      C,$01
        JP      L3613			; (close enough for relative jump ??)

L3611:  LD      C,$04
L3613:  BIT     0,B
        JP      Z,L361E			; (close enough for relative jump ??)
        LD      A,C
        NEG
        LD      (IX+$09),A	; Save Delta Y
L361E:  BIT     1,B
        JP      Z,L3626			; (close enough for relative jump ??)
        LD      (IX+$09),C	; Save Delta Y
L3626:  BIT     2,B
        JP      Z,L3631			; (close enough for relative jump ??)
        LD      A,C
        NEG
        LD      (IX+$04),A	; Save Delta X
L3631:  BIT     3,B
        JP      Z,L3639			; (close enough for relative jump ??)
        LD      (IX+$04),C	; Save Delta X
L3639:  JP      L36FF			; (close enough for relative jump ??)

L363C:  LD      A,($4DB8)
        OR      A				; is $4DB8 Not Zero ?
        JP      NZ,L367E		; (close enough for relative jump ??)
        IN      A,(POT0)	; Read &(28) for Player One Knob
        CP      $20
        JP      C,L3660			; (close enough for relative jump ??)
        NEG
        SRL     A
        ADD     A,$10
        LD      HL,$4DF3
        LD      B,A
        SUB     (HL)
        JP      NC,L365A		; (close enough for relative jump ??)
        NEG
L365A:  CP      $10
        JP      NC,L3660		; (close enough for relative jump ??)
        LD      (HL),B
L3660:  IN      A,(POT2)	; Read &(30) for Player Three Knob
        CP      $20
        JP      C,L367B			; (close enough for relative jump ??)
        NEG
        SRL     A
        LD      HL,$4DF8
        LD      B,A
        SUB     (HL)
        JP      NC,L3675		; (close enough for relative jump ??)
        NEG
L3675:  CP      $10
        JP      NC,L367B		; (close enough for relative jump ??)
        LD      (HL),B
L367B:  JP      L36FF			; (close enough for relative jump ??)

L367E:  LD      A,($4DB8)
        CP      $01				; is $4DB8 Equal to 2 ?
        JP      NZ,L36A7		; (close enough for relative jump ??)
        IN      A,(POT0)	; Read &(28) for Player One Knob
        CP      $20
        JP      C,L3696			; (close enough for relative jump ??)
        NEG
        SRL     A
        ADD     A,$10
        LD      ($4DF3),A	; Set $4DF3 to 16 + ??
L3696:  IN      A,(POT2)	; Read &(30) for Player Three Knob
        CP      $20
        JP      C,L36A4			; (close enough for relative jump ??)
        NEG
        SRL     A
        LD      ($4DF8),A	; Set $4DF8 to ??
L36A4:  JP      L36FF			; (close enough for relative jump ??)

L36A7:  IN      A,(POT0)	; Read &(28) for Player One Knob
        CP      $20
        JP      C,L36D4			; (close enough for relative jump ??)
        NEG
        SRL     A
        ADD     A,$10
        LD      D,A
        LD      B,$00
        LD      A,(IX+$06)	; Read Block X
        CP      D
        JP      Z,L36C8			; (close enough for relative jump ??)
        JP      NC,L36C6		; (close enough for relative jump ??)
        LD      B,$01
        JP      L36C8			; (close enough for relative jump ??)

L36C6:  LD      B,$FF
L36C8:  LD      A,($4DB9)
        OR      A
        JP      Z,L36D1			; (close enough for relative jump ??)
        SLA     B
L36D1:  LD      (IX+$04),B	; Save Delta X
L36D4:  IN      A,(POT2)	; Read &(30) for Player Three Knob
        CP      $20
        JP      C,L36FF			; (close enough for relative jump ??)
        NEG
        SRL     A
        LD      E,A
        LD      B,$00
        LD      A,(IX+$0B)	; Read Block Y
        CP      E
        JP      Z,L36F3			; (close enough for relative jump ??)
        JP      NC,L36F1		; (close enough for relative jump ??)
        LD      B,$01
        JP      L36F3			; (close enough for relative jump ??)

L36F1:  LD      B,$FF
L36F3:  LD      A,($4DB9)
        OR      A
        JP      Z,L36FC			; (close enough for relative jump ??)
        SLA     B
L36FC:  LD      (IX+$09),B	; Save Delta Y
L36FF:  RET

L3700:			; Save A for Hold Magic Register Temporaraly Routine
        LD      B,A
        LD      A,(HOLDMR)
        LD      (OLDHMR),A	; Store $4DD6 in $4DB7 for Old Hold Magic Register
        LD      A,B
        LD      (HOLDMR),A	; Save A in $4DD6 for Hold Magic Register
        RET

L370C:			; Restore Old Hold Magic Register Routine
        LD      A,(OLDHMR)
        LD      (HOLDMR),A	; Restore $4DB7 to $4DD6 for Hold Magic Register
        RET

L3713:			; 10 bytes of 8x5 Data for Color CURSOR
        DB      $02,$02		; X, Y Offsets to Hot Spot
        DB      $02,$05		; W Bytes by H Lines Pattern Size
        DB      $04,$00				; . . 1 . . . . . 
        DB      $04,$00				; . . 1 . . . . .
        DB      $55,$40				; 1 1(1)1 1 . . .
        DB      $04,$00				; . . 1 . . . . .
        DB      $04,$00				; . . 1 . . . . .

L3721:			; Limit Table Data for Cursor
        DB      $02		; Left
        DB      $9F		; Right
        DB      $02		; Top
        DB      $46		; Bottom

L3725:			; ?? Routine
        LD      A,($4DB6)
        OR      A
        RET     Z
        LD      A,($4DB5)
        OR      A
        JR      NZ,L3733                ; (+$03)
        CALL    L2416		; to ??
L3733:  CALL    L35D4		; to ??
        LD      A,$01
        LD      ($4DB5),A	; Set $4DB5 to 1 ??
        JP      L26AA			; (NOT close enough for relative jump ??)

L373E:			; ?? Routine
        LD      A,($4DB5)
        OR      A
        RET     Z
        LD      IX,BLOCK0	; Fixed Location Block
        XOR     A
        LD      ($4DB5),A	; Set $4DB5 to 0 ??
        JP      L2416			; (NOT close enough for relative jump ??)

L374E:			; Draw A Hollow Box ?? Routine
        LD      A,($4DB4)
        LD      HL,$4DB2
        LD      ($4DD5),A	; Store $4DB4 in $4DD5 ??
        ADD     A,(HL)
        LD      ($4DD3),A	; Store ($4DB4 + $4DB2) in $4DD3 for  ??
        LD      A,($4DB3)
        LD      ($4DD4),A	; Store $4DB3 in $4DD4 ??
        LD      ($4DD2),A	; Store $4DB3 in $4DD2 ??
        CALL    L32CF		; to ??
        LD      A,($4DD0)
        LD      HL,$4DB1
        ADD     A,(HL)
        LD      ($4DD2),A	; Store ($4DD0 + $4DB1) in $4DD2 for ??
        CALL    L32D9		; to ??
        LD      A,($4DB4)
        LD      ($4DD3),A	; Store $4DB4 in $4DD3 ??
        CALL    L32D9		; to ??
        LD      A,($4DB3)
        LD      ($4DD2),A	; Store $4DB3 in $4DD2 ??
        CALL    L32D9		; to ??
        JP      L31B5			; (NOT close enough for relative jump ??)

L3789:			; Draw A Hollow Box and Restore Old Multi-Color Routine
        CALL    L374E		; to Draw A Hollow Box ??
        LD      A,(OLDMUC)
        LD      (MULTIC),A	; Restore $4DD8 to $4DD9 for Multi-Color
        RET

L3793:			; Draw a Filled Box ?? Routine
        LD      HL,($4DB3)
        PUSH    HL
        LD      HL,($4DB1)
        PUSH    HL
L379B:  CALL    L374E		; to Draw A Hollow Box ??
        LD      A,($4DB2)
        CP      $02
        JR      C,L37C1                 ; (+$1c)
        SUB     $02
        LD      ($4DB2),A	; Set $4DB2 to 2 ??
        LD      A,($4DB1)
        CP      $02
        JR      C,L37C1                 ; (+$10)
        SUB     $02
        LD      ($4DB1),A	; Set $4DB1 to 2 ??
        LD      HL,$4DB4
        INC     (HL)
        LD      HL,$4DB3
        INC     (HL)
        JP      L379B			; (close enough for relative jump ??)

L37C1:  POP     HL
        LD      ($4DB1),HL	; Store Return ?? word in $4DB1 ??
        POP     HL
        LD      ($4DB3),HL	; Store ?? word in $4DB3 ??
        RET					; to Where ??

L37CA:			; ?? Routine
        LD      A,($4DCD)
        PUSH    AF
L37CE:  CALL    L32EC		; to ?? ($4DCD times ??)
        LD      HL,$4DCD
        DEC     (HL)
        JR      NZ,L37CE                ; (-$09)
        POP     AF
        LD      ($4DCD),A	; Restore $4DCD after counting it down to 0 ??
        RET

L37DC:			; ?? Routine
        LD      A,$55
        LD      ($4DD2),A	; Set $4DD2 to 85 ??
        XOR     A
        LD      ($4DD3),A	; Set $4DD3 to 0 ??
        LD      B,$A0
L37E7:  PUSH    BC
        CALL    L32A0		; to ?? (160 times ??)
        LD      HL,$4DD3
        INC     (HL)		; 160 times ??
        POP     BC
        DJNZ    L37E7                   ; (-$0b)

        RET

L37F3:  XOR     A
        LD      ($4DD2),A	; Set $4DD2 to 0 ??
        LD      ($4DD3),A	; Set $4DD3 to 0 ??
        LD      B,$A0
L37FC:  PUSH    BC
        CALL    L32A0		; to ?? (160 times ??)
        LD      HL,$4DD3
        INC     (HL)		; 160 times ??
        POP     BC
        DJNZ    L37FC                   ; (-$0b)

        RET

L3808:			; ?? Routine
        XOR     A
        LD      ($4DD2),A	; Set $4DD2 to 0 ??
        LD      A,$9F
        LD      ($4DD3),A	; Set $4DD3 to 159 ??
        LD      B,$55
L3813:  PUSH    BC
        CALL    L32A0		; to ?? (85 times ??)
        LD      HL,$4DD2
        INC     (HL)		; 85 times ??
        POP     BC
        DJNZ    L3813                   ; (-$0b)

        RET

L381F:			; ?? Routine
        XOR     A
        LD      ($4DD2),A	; Set $4DD2 to 0 ??
        LD      ($4DD3),A	; Set $4DD3 to 0 ??
        LD      B,$55
L3828:  PUSH    BC
        CALL    L32A0		; to ?? (85 times ??)
        LD      HL,$4DD2
        INC     (HL)		; 85 times ??
        POP     BC
        DJNZ    L3828                   ; (-$0b)

        RET

L3834:			; ?? Routine
        POP     HL
        LD      ($4DAF),HL	; Store old Return Address word in $4DAF ??
L3838:  LD      A,($4DBC)
        OR      A				; ?? is Not Zero ?
        JR      NZ,L3847                ; (+$09)
        LD      DE,$0102
        CALL    L204D		; to Set CT2 to Delay of 1 and Jump to JUMP02 Address
        JP      L3838			; (close enough for relative jump ??)

L3847:			; Jump to old Return Address stored in ??
        DI
        LD      HL,($4DAF)	; Read old Return Address word from $4DAF ??
        JP      (HL)			; to Where ??

L384C:			; ?? Routine
        LD      A,($4DF3)
        LD      ($4DAE),A	; Store $4DF3 in $4DAE ??
        LD      A,($4DF8)
        LD      ($4DAD),A	; Store $4DF8 in $4DAD ??
        RET

			; Set as User Routine #2 in RAM to Draw Point or Dotted Line on "Up" ??
L3859:			; Loop Here waiting for Interrupt until Replaced ??
        CALL    L384C		; to ??
L385C:  DI
        LD      A,($4DF3)
        LD      HL,$4DAE
        CP      (HL)			; is $4DF3 Not Equal to $4DAE ?
        JR      NZ,L386F                ; (+$09)
        LD      A,($4DF8)
        LD      HL,$4DAD
        CP      (HL)			; is $4DF8 Equal to $4DAD ?
        JR      Z,L3896                 ; (+$27)
L386F:  LD      A,($4DBC)
        OR      A				; is $4DBC Equal to Zero ?
        JR      Z,L3893                 ; (+$1e)
        CALL    L373E		; to ??
        LD      A,($4DAE)
        LD      ($4DD5),A	; Store $4DAE in $4DD5 ??
        LD      A,($4DAD)
        LD      ($4DD4),A	; Store $4DAD in $4DD4 ??
        LD      A,($4DF3)
        LD      ($4DD3),A	; Store $4DF3 in $4DD3 ??
        LD      A,($4DF8)
        LD      ($4DD2),A	; Store $4DF8 in $4DD2 ??
        CALL    L32A0		; to ??
L3893:  CALL    L384C		; to ??
L3896:  LD      DE,$0102
        CALL    L204D		; to Set CT2 to Delay of 1 and Jump to JUMP02 Address
        JP      L385C			; (close enough for relative jump ??)

			; Set as User Routine #2 in RAM to Draw Rubber Line on "Down" ??
L389F:			; Loop Here waiting for Interrupt until Replaced ??
        CALL    L3834		; to ??
        LD      A,($4DF3)
        LD      ($4DD5),A	; Store $4DF3 in $4DD5 ??
        LD      ($4DD3),A	; Store $4DF3 in $4DD3 ??
        LD      A,($4DF8)
        LD      ($4DD4),A	; Store $4DF8 in $4DD4 ??
        LD      ($4DD2),A	; Store $4DF8 in $4DD2 ??
L38B4:			; Loop Here if $4DBC Not Zero ??
        LD      A,$20
        CALL    L3700		; to Save XOR in Hold Magic Register Temporaraly
        CALL    L32CF		; to ??
        LD      DE,$0102
        CALL    L204D		; to Set CT2 to Delay of 1 and Jump to JUMP02 Address
        DI
        CALL    L32CF		; to ??
        LD      A,($4DF3)
        LD      ($4DD3),A	; Store $4DF3 in $4DD3 ??
        LD      A,($4DF8)
        LD      ($4DD2),A	; Store $4DF8 in $4DD2 ??
        LD      A,($4DBC)
        OR      A				; is $4DBC Not Equal to Zero ?
        JR      NZ,L38B4                ; (-$24)
        CALL    L370C		; to Restore Old Hold Magic Register
        CALL    L32A0		; to ??
        JP      L389F			; (close enough for relative jump ??)

			; Set as User Routine #2 in RAM to Draw a Circle on "mR" or "mS" Routine
			; (on $4DAC = 0 Draw a Hollow Circle, on $4DAC = 1 Draw a Filled Circle)
L38E1:			; Loop This Routine waiting for Interrupt until Replaced ??
        CALL    L3834		; to ??
        LD      A,($4DF3)
        LD      ($4DCB),A	; Store $4DF3 in $4DCB ??
        LD      A,($4DF8)
        LD      ($4DC9),A	; Store $4DF8 in $4DC9 ??
        LD      A,$01
        LD      ($4DCD),A	; Set $4DCD to 1 ??
L38F5:			; Loop Here if $4DBC Not Zero ??
        LD      A,$20
        CALL    L3700		; to to Save XOR in Hold Magic Register Temporaraly
        CALL    L3417		; to ??
        CALL    L370C		; to Restore Old Hold Magic Register
        LD      DE,$0102
        CALL    L204D		; to Set CT2 to Delay of 1 and Jump to JUMP02 Address
        DI
        LD      A,$20
        CALL    L3700		; to to Save XOR in Hold Magic Register Temporaraly
        CALL    L3417		; to ??
        LD      A,($4DF8)
        LD      B,A
        LD      A,($4DC9)
        LD      C,A
        SUB     B
        BIT     7,A			; is ($4DF8 - $4DC9) Not Negative ?
        JR      Z,L391E                 ; (+$02)
        NEG
L391E:  OR      A				; is $4DF8 Not Equal $4DC9 ?
        JR      NZ,L3922                ; (+$01)
        INC     A			; Set A to Minimum of 1 ??
L3922:  LD      B,A		; Absolute Value of ($4DF8 - $4DC9) ??
        LD      A,C
        ADD     A,B
        CP      $54			; is ($4DF8 - $4DC9 + $4DC9) Less Than 84 ?
        JR      C,L392E                 ; (+$05)
        LD      A,$54
        SUB     C			; A = 84 - $4DC9 ??
        JR      L392F                   ; (+$01)

L392E:  LD      A,B		; A = Absolute Value of ($4DF8 - $4DC9) or 1 ??
L392F:  LD      ($4DCD),A	; Set $4DCD to A ??
        LD      A,($4DBC)
        OR      A				; is $4DBC Not Equal to 0 ?
        JR      NZ,L38F5                ; (-$43)
        CALL    L370C		; to Restore Old Hold Magic Register
        LD      A,(FILLCI)	; Read $4DAC
        OR      A				; Draw a Filled Circle ?
        JR      NZ,L3946                ; (+$05)
        CALL    L32EC		; to ??
        JR      L3949                   ; (+$03)

L3946:  CALL    L37CA		; to ??
L3949:  JP      L38E1			; (close enough for relative jump ??)

			; Set as User Routine #2 in RAM to Draw a Box on "cH" Routine
			; (on $4DAB = 0 Draw a Hollow Box, on $4DAB = 1 Draw a Filled Box)
L394C:			; Loop This Routine waiting for Interrupt until Replaced ??
        CALL    L3834		; to ??
        LD      A,($4DF3)
        LD      ($4DB4),A	; Store $4DF3 in $4DB4 ??
        LD      A,($4DF8)
        LD      ($4DB3),A	; Store $4DF8 in $4DB3 ??
        XOR     A
        LD      ($4DB1),A	; Set $4DB1 to 0 ??
        LD      ($4DB2),A	; Set $4DB2 to 0 ??
L3962:			; Loop Here if $4DBC Not Zero ??
        LD      A,$20
        CALL    L3700		; to to Save XOR in Hold Magic Register Temporaraly
        CALL    L3789		; to Draw A Hollow Box and Restore Old Multi-Color
        CALL    L370C		; to Restore Old Hold Magic Register
        LD      DE,$0102
        CALL    L204D		; to Set CT2 to Delay of 1 and Jump to JUMP02 Address
        DI
        LD      A,$20
        CALL    L3700		; to to Save XOR in Hold Magic Register Temporaraly
        CALL    L3789		; to Draw A Hollow Box and Restore Old Multi-Color
        CALL    L370C		; to Restore Old Hold Magic Register
        LD      HL,$4DB2
        LD      A,($4DF3)
        LD      B,A
        LD      A,($4DB4)
        SUB     B				; is $4DF3 Greater Than $4DB4 ?
        JR      C,L3994                 ; (+$08)
        ADD     A,(HL)
        LD      (HL),A		; Add ($4DB4 - $4DF3) to $4DB2 ??
        LD      A,B
        LD      ($4DB4),A	; Store $4DF3 in $4DB4 ??
        JR      L3997                   ; (+$03)

L3994:  NEG
        LD      (HL),A		; Store ($4DF3 - $4DB4) in $4DB2 ??
L3997:  LD      HL,$4DB1
        LD      A,($4DF8)
        LD      B,A
        LD      A,($4DB3)
        SUB     B				; is $4DF8 Greater Than $4DB3 ?
        JR      C,L39AC                 ; (+$08)
        ADD     A,(HL)
        LD      (HL),A		; Add ($4DB3 - $4DF8) to $4DB1 ??
        LD      A,B
        LD      ($4DB3),A	; Store $4DF8 in $4DB3 ??
        JR      L39AF                   ; (+$03)

L39AC:  NEG
        LD      (HL),A		; Store ($4DF8 - $4DB3) in $4DB1 ??
L39AF:  LD      A,($4DBC)
        OR      A				; is $4DBC Not Equal to 0 ?
        JR      NZ,L3962                ; (-$53)
        CALL    L370C		; to Restore Old Hold Magic Register
        CALL    L373E		; to ??
        LD      A,(FILLBX)	; Read $4DAB
        OR      A				; Draw a Filled Box ?
        JR      NZ,L39C6                ; (+$05)
        CALL    L374E		; to Draw A Hollow Box ??
        JR      L39C9                   ; (+$03)

L39C6:  CALL    L3793		; to Draw a Filled Box ??
L39C9:  JP      L394C			; (close enough for relative jump ??)

			; Set as User Routine #2 in RAM to Bad Fill on "%" Routine
L39CC:			; Loop This Routine waiting for Interrupt until Replaced ??
        CALL    L3834		; to ??
        CALL    L373E		; to ??
        XOR     A
        LD      ($4DBC),A	; Set $4DBC to 0 ??
        XOR     A
        LD      ($4DD5),A	; Set $4DD5 to 0 ??
        LD      A,$9F
        LD      ($4DD3),A	; Set $4DD3 to 159 ??
        LD      A,$55
        LD      ($4DD4),A	; Set $4DD4 to 85 ??
        LD      ($4DD2),A	; Set $4DD2 to 85 ??
        LD      A,(MULTIC)
        PUSH    AF		; Save $4DD9 for Multi-Color
        LD      A,$03
        LD      (MULTIC),A	; Set $4DD9 to 3 for Multi-Color Temporaraly
        LD      A,$10
        CALL    L3700		; to Save OR in Hold Magic Register Temporaraly
        CALL    L32A0		; to ??
        CALL    L370C		; to Restore Old Hold Magic Register
        POP     AF
        LD      (MULTIC),A	; Restore $4DD9 for Multi-Color
        LD      A,($4DF3)
        LD      ($4DC8),A	; Store $4DF3 in $4DC8 ??
        LD      A,($4DF8)
        LD      ($4DC7),A	; Store $4DF8 in $4DC7 ??
        CALL    L3594		; to ??
        JP      L39CC			; (close enough for relative jump ??)

L3A11:			; ?? Subroutine
        LD      A,($4DF3)
        LD      ($4DD5),A	; Store $4DF3 in $4DD5 ??
        LD      A,($4DF8)
        LD      ($4DD4),A	; Store $4DF8 in $4DD4 ??
        RET

			; Set as User Routine #2 in RAM to Fan Lines Left on "=,C" Routine
L3A1E:			; Loop This Routine waiting for Interrupt until Replaced ??
        CALL    L3834		; to ??
        CALL    L373E		; to ??
        XOR     A
        LD      ($4DBC),A	; Set $4DBC to 0 ??
        CALL    L3A11		; to ??
        CALL    L381F		; to ??
        JP      L3A1E			; (close enough for relative jump ??)

			; Set as User Routine #2 in RAM to Fan Lines Right on "=,Up" Routine
L3A31:			; Loop This Routine waiting for Interrupt until Replaced ??
        CALL    L3834		; to ??
        CALL    L373E		; to ??
        XOR     A
        LD      ($4DBC),A	; Set $4DBC to 0 ??
        CALL    L3A11		; to ??
        CALL    L3808		; to ??
        JP      L3A31			; (close enough for relative jump ??)

			; Set as User Routine #2 in RAM to Fan Lines Up on "=,Down" Routine
L3A44:			; Loop This Routine waiting for Interrupt until Replaced ??
        CALL    L3834		; to ??
        CALL    L373E		; to ??
        XOR     A
        LD      ($4DBC),A	; Set $4DBC to 0 ??
        CALL    L3A11		; to ??
        CALL    L37F3		; to ??
        JP      L3A44			; (close enough for relative jump ??)

			; Set as User Routine #2 in RAM to Fan Lines Down on "=,%" Routine
L3A57:			; Loop This Routine waiting for Interrupt until Replaced ??
        CALL    L3834		; to ??
        CALL    L373E		; to ??
        XOR     A
        LD      ($4DBC),A	; Set $4DBC to 0 ??
        CALL    L3A11		; to ??
        CALL    L37DC		; to ??
        JP      L3A57			; (close enough for relative jump ??)

L3A6A:			; Clear Location Blocks 1 through 7 Routine
        DI
        LD      A,$01
        LD      ($4DB6),A	; Set $4DB6 to 1 ??
        LD      B,$07
        LD      HL,BLOCK1
L3A75:  PUSH    HL
        POP     IX		; IX = Absolute Screen Location ??
        BIT     7,(IX+$01)		; is Pixel Color 2 or 3 ?
        JR      Z,L3A89                 ; (+$0b)
        PUSH    BC		; Save BC and HL
        PUSH    HL
        CALL    L2416		; to ??
        POP     HL
        POP     BC		; Restore HL and BC
        RES     7,(IX+$01)	; Clear Pixel Color to 0 or 1 ?
L3A89:  LD      DE,$0023
        ADD     HL,DE		; Down a Row and Left 5 bytes ??
        DJNZ    L3A75                   ; (-$1a)

        XOR     A
        OUT     (HORCB),A	; &(9) = 0 for Horizontal Color Boundary ??
        LD      HL,L2172
        CALL    L20A9		; to ??
        LD      HL,L2176
        CALL    L20A9		; to ??
        XOR     A
        LD      ($4F48),A	; Set $4F48 to 0 ??
        LD      ($4F47),A	; Set $4F47 to 0 ??
        DI
        LD      IX,BLOCK0	; $4DEE ??
        RES     2,(IX+$01)	; Clear Bit 2 of Fixed Location Block
        CALL    L217A		; to ??
        RET

L3AB2:			; Clear Block 1 through 7 Deltas ?? Routine
        LD      B,$07		; for Seven Blocks
        LD      DE,$001E
        LD      HL,BLOCK1+$04	; Starting at $4E14
L3ABA:  LD      (HL),$00	; Clear Block +$04 (Delta X)
        INC     HL
        INC     HL
        INC     HL
        RES     5,(HL)		; Block + $07 (to Clear ??)
        INC     HL
        INC     HL
        LD      (HL),$00	; Clear Block + $09 (Delta Y)
        ADD     HL,DE		; to Next Block +$04
        DJNZ    L3ABA                   ; (-$0e)

        RET

L3AC9:			; Handle Block 1 through 7 ??
        BIT     5,(IX+$07)
        JR      Z,L3AF9                 ; (+$2a)
        CALL    L35D4		; to ??
        LD      A,(CURSOR)
        OR      A				; is $4DBA clear to Use Joystick ?
        JR      Z,L3AF9                 ; (+$21)
        LD      A,($4DB8)
        CP      $02			; is $4DB8 Less Than 2 ?
        JR      NC,L3AED                ; (+$0e)
        LD      A,($4DF3)
        LD      (IX+$06),A	; Save Block X
        LD      A,($4DF8)
        LD      (IX+$0B),A	; Save Block Y
        JR      L3AF9                   ; (+$0c)

L3AED:  LD      A,(IX+$06)
        LD      ($4DF3),A	; Set $4DF3 to Block ?? X
        LD      A,(IX+$0B)
        LD      ($4DF8),A	; Set $4DF8 to Block ?? Y
L3AF9:  CALL    L26AA		; to ??
        RET

L3AFD:			; Handle Cursor Block 0 ??
        LD      A,($4DB9)
        OR      A
        JR      Z,L3B54                 ; (+$51)
        LD      A,($4DB6)
        OR      A
        JR      NZ,L3B27                ; (+$1e)
        LD      A,($4DBC)
        OR      A
        JR      Z,L3B25                 ; (+$16)
        CALL    L3AB2		; to Clear Block 1 through 7 Deltas
        LD      A,$01
        LD      ($4DB6),A	; Set $4DB6 to 1 ??
        LD      HL,$4DF4
        RES     2,(HL)
        RES     5,(HL)
        XOR     A
        LD      ($4DBC),A	; Set $4DBC to 0 ??
        XOR     A
        OUT     (HORCB),A	; &(9) = 0 for Horizontal Color Boundary ??
L3B25:  JR      L3B54                   ; (+$2d)

L3B27:  BIT     5,(IX+$07)
        JR      Z,L3B41                 ; (+$14)
        XOR     A
        LD      ($4DB6),A	; Set $4DB6 to 0 ??
        CALL    L373E		; to ??
        XOR     A
        LD      ($4DBC),A	; Set $4DBC to 0 ??
        XOR     A
        OUT     (HORCB),A	; &(9) = 0 for Horizontal Color Boundary ??
        RES     5,(IX+$07)
        JR      L3B54                   ; (+$13)

L3B41:  LD      A,($4DBC)
        OR      A
        JR      Z,L3B54                 ; (+$0d)
        LD      HL,$4DF4
        SET     2,(HL)
        LD      A,$80
        OUT     (HORCB),A	; &(9) = 128 for Set Border Color to Color 2 ??
        XOR     A
        LD      ($4DBC),A	; Set $4DBC to 0 ??
L3B54:  CALL    L3725		; to ??
        RET

L3B58:			; Limit Table for Block Draws
        DB      $0F		; Left
        DB      $96		; Right
        DB      $0F		; Top
        DB      $46		; Bottom

L3B5C:			; 7 words of Location Block 7 through Block 1 Addresses for ??
        DW      BLOCK7		; Location Block #7
        DW      BLOCK6		; Location Block #6
        DW      BLOCK5		; Location Block #5
        DW      BLOCK4		; Location Block #4
        DW      BLOCK3		; Location Block #3
        DW      BLOCK2		; Location Block #2
        DW      BLOCK1		; Location Block #1

L3B6A:			; Data for Empty Image
        DB      $00,$00		; X, Y Offsets to Hot Spot
        DB      $01,$01		; W Bytes by H Lines Pattern Size
        DB      $00			; ....

L3B6F:			; 35 bytes of Default Info to Move into BLOCK1 thru BLOCK7 ??
        DB      $20		; +$00 = MAGIC to Write with
        DB      $80		; +$01
        DB      $01		; +$02 = Speed ??
        DW      $0000		; +$03, $04 = Delta X
        DW      $4000		; +$05, $06	= X
        DB      $01		; +$07
        DW      $0000		; +$08, $09 = Delta Y
        DW      $3100		; +$0A, $0B	= Y
        DB      $01		; +$0C
        DW      $0000		; +$0D, $0E
        DW      $0000		; +$0F, $10
        DB      $00		; +$11
        DW      L3B6A		; +$12, $13 = Data for Image (Empty by Default)
        DW      L3B58		; +$14, $15 = Limit Table (Table of 4 bytes for ??)
        DB      $00		; +$16
        DW      $FF00		; +$17, $18
        DB      $08		; +$19
        DW      L3AC9		; +$1A, $1B to Handle Block ??
        DB      $FF		; +$1C	= Header Up Counter (or $FF for One Header)
        DB      $01		; +$1D	= Delay Down Counter
        DW      L2FF9		; +$1E, $1F = Header for Pattern Data Block
        DW      L2FF9		; +$20, $21 = Header Base Address
        DB      $FF		; +$22

L3B92:			; Size Byte and 35 Bytes of Initial Cursor Data to Move into BLOCK0
        DB      $23		; Size of Block
        DB      $20		; +$00 = MAGIC to Write with
        DB      $20		; +$01
        DB      $00		; +$02 = Speed ??
        DW      $0000		; +$03, $04 = Delta X
        DW      $5000		; +$05, $06	= X
        DB      $01		; +$07
        DW      $0000		; +$08, $09 = Delta Y
        DW      $2C00		; +$0A, $0B	= Y
        DB      $01		; +$0C
        DW      $0000		; +$0D, $0E
        DW      L3B5C		; +$0F, $10	= Table of Block 7 through 1 Addresses)
        DB      $07		; +$11
        DW      L3713		; +$12, $13	= Data for Cursor Image
        DW      L3721		; +$14, $15	= Limit Table for Cursor
        DB      $00		; +$16
        DW      $FF00		; +$17, $18
        DB      $04		; +$19
        DW      L3AFD		; +$1A, $1B	to Handle Cursor Block 0
        DB      $FF		; +$1C	= One Cursor Header
        DB      $00		; +$1D	= No Delay
        DW      $0000		; +$1E, $1F	for No Header for Pattern Data Block
        DW      $0000		; +$20, $21	for No Header Base Address
        DB      $00		; +$22
   
L3BB6:			; Load Block 1 through 7 and ?? Routine
        LD      A,I		; Read I register ??
        PUSH    AF
        DI
        PUSH    DE
        PUSH    BC
        PUSH    IX
        POP     DE
        LD      C,$23
        LD      HL,L3B6F
        LD      B,$00
        SYSTEM  MOVE		; Move 35 bytes of Info from $3B6F into Destination Block
 
        POP     BC
        POP     DE
        LD      (IX+$06),D	; Block X
        LD      (IX+$0B),E	; Block Y
        LD      (IX+$1E),C	; Pattern Data
        LD      (IX+$1F),B
        CALL    L2433		; to Set Up for Draw (with A = ??)
        POP     AF
        JP      PO,L3BDE		; (close enough for relative jump ??)
        EI
L3BDE:  LD      A,($4F52)
        DEC     A
        LD      (IX+$17),A
        JP      L217A			; Jump to ??

L3BE8:			; Common Return for Draw Pictures Subroutine
        DI
        XOR     A
        LD      (OLDSW0),A	; Set $4DBB to 0 for Old Joystick 1 Reading
        XOR     A
        LD      ($4DBC),A	; Set $4DBC to 0 ??
        LD      A,$01
        LD      ($4DB6),A	; Set $4DB6 to 1 ??
        LD      A,$01
        LD      ($4DB9),A	; Set $4DB9 to 1 ??
        JP      $0000			; Jump to System Soft Reset

			; Draw Two Birds, a Tree, Two Deer and a Turtle on "=,mR"
L3BFE:			; from Look Up Jump Address (ROM Table) with A = 28
        CALL    L3A6A		; to Clear Location Blocks 1 through 7
        LD      IX,BLOCK6
        LD      DE,$6C3A	; X = 108 ,Y = 58
        LD      BC,L2C97	; Turtle Data
        CALL    L3BB6		; to ??
        LD      IX,BLOCK5
        LD      DE,$2840	; X = 40 ,Y = 64
        LD      BC,L2BA7	; Two Deer Data
        CALL    L3BB6		; to ??
        LD      IX,BLOCK4
        LD      DE,$6010	; X = 96 ,Y = 16
        LD      BC,L2E85	; Two Birds Data
        CALL    L3BB6		; to ??
        LD      IX,BLOCK7
        LD      DE,$4434	; X = 68 ,Y = 52
        LD      BC,L3042	; Tree Data
        CALL    L3BB6		; to ??
        JP      L3BE8			; (close enough for relative jump ??)

			; Draw a Cottage, Two Trees and Two Kangaroos on "=,cH"
L3C38:			; from Look Up Jump Address (ROM Table) with A = 30
        CALL    L3A6A		; to Clear Location Blocks 1 through 7
        LD      IX,BLOCK7
        LD      DE,$3C34	; X = 60 ,Y = 52
        LD      BC,L2FF6	; Kangaroo Data
        CALL    L3BB6		; to ??
        LD      IX,BLOCK6
        LD      DE,$6046	; X = 96 ,Y = 70
        LD      BC,L2FF6	; Kangaroo Data
        CALL    L3BB6		; to ??
        LD      IX,BLOCK4
        LD      DE,$3010	; X = 48 ,Y = 16
        LD      BC,L3042	; Tree Data
        CALL    L3BB6		; to ??
        LD      IX,BLOCK1
        LD      DE,$5010	; X = 80 ,Y = 16
        LD      BC,L278B	; Cottage Data
        CALL    L3BB6		; to ??
        LD      IX,BLOCK3
        LD      DE,$7010	; X = 112 ,Y = 16
        LD      BC,L3042	; Tree Data
        CALL    L3BB6		; to ??
        JP      L3BE8			; (close enough for relative jump ??)

			; Draw One Kangaroo on "=,9"
L3C7F:			; from Look Up Jump Address (ROM Table) with A = 34
        CALL    L3A6A		; to Clear Location Blocks 1 through 7
        LD      IX,BLOCK7
        LD      DE,$5030	; X = 80 ,Y = 48
        LD      BC,L2FF6	; Kangaroo Data
        CALL    L3BB6		; to ??
        JP      L3BE8			; (close enough for relative jump ??)

			; Draw Two Houses and a Garden on "=,mS"
L3C92:			; from Look Up Jump Address (ROM Table) with A = 29
        CALL    L3A6A		; to Clear Location Blocks 1 through 7
        LD      IX,BLOCK5
        LD      DE,$301E	; X = 48 ,Y = 30
        LD      BC,L2A6D	; House Data
        CALL    L3BB6		; to ??
        LD      IX,BLOCK6
        LD      DE,$741E	; X = 116 ,Y = 30
        LD      BC,L2A6D	; House Data
        CALL    L3BB6		; to ??
        LD      IX,BLOCK3
        LD      DE,$542A	; X = 84 ,Y = 42
        LD      BC,L2C6A	; Garden Data
        CALL    L3BB6		; to ??
        JP      L3BE8			; (close enough for relative jump ??)

			; Draw a Fire Station and a Fire Truck on "=,/"
L3CBF:			; from Look Up Jump Address (ROM Table) with A = 31
        CALL    L3A6A		; to Clear Location Blocks 1 through 7
        LD      IX,BLOCK6
        LD      DE,$3830	; X = 56 ,Y = 48
        LD      BC,L2896	; Fire Station Data
        CALL    L3BB6		; to ??
        LD      IX,BLOCK4
        LD      DE,$5838	; X = 88 ,Y = 56
        LD      BC,L2D9C	; Fire Truck Data
        CALL    L3BB6		; to ??
        JP      L3BE8			; (close enough for relative jump ??)


			; Draw One Cottage on "=,7"
L3CDF:			; from Look Up Jump Address (ROM Table) with A = 32
        CALL    L3A6A		; to Clear Location Blocks 1 through 7
        LD      IX,BLOCK6
        LD      DE,$5030	; X = 80 ,Y = 48
        LD      BC,L278B	; Cottage Data
        CALL    L3BB6		; to ??
        JP      L3BE8			; (NOT close enough for relative jump ??)

			; Draw Seven Turtles on "=,8"
L3CF2:			; from Look Up Jump Address (ROM Table) with A = 33
        CALL    L3A6A		; to Clear Location Blocks 1 through 7
        LD      IX,BLOCK7
        LD      DE,$4434	; X = 68 ,Y = 52
        LD      BC,L2C97	; Turtle Data
        CALL    L3BB6		; to ??
        LD      IX,BLOCK6
        LD      DE,$4820	; X = 72 ,Y = 32
        LD      BC,L2C97	; Turtle Data
        CALL    L3BB6		; to ??
        LD      IX,BLOCK5
        LD      DE,$6023	; X = 96 ,Y = 35
        LD      BC,L2C97	; Turtle Data
        CALL    L3BB6		; to ??
        LD      IX,BLOCK4
        LD      DE,$3C28	; X = 60 ,Y = 40
        LD      BC,L2C97	; Turtle Data
        CALL    L3BB6		; to ??
        LD      IX,BLOCK3
        LD      DE,$3C44	; X = 60 ,Y = 68
        LD      BC,L2C97	; Turtle Data
        CALL    L3BB6		; to ??
        LD      IX,BLOCK2
        LD      DE,$603C	; X = 96 ,Y = 60
        LD      BC,L2C97	; Turtle Data
        CALL    L3BB6		; to ??
        LD      IX,BLOCK1
        LD      DE,$7030	; X = 112 ,Y = 48
        LD      BC,L2C97	; Turtle Data
        CALL    L3BB6		; to ??
        JP      L3BE8			; (NOT close enough for relative jump ??)

			; Set Draw Mode to Rubber Line on "Down"
L3D53:			; from Look Up Jump Address (ROM Table) with A = 2
        LD      HL,L389F
L3D56:			; Common Return Point for Set Jump Address #2 (in RAM) Routines
        DI
        LD      (JUMP02),HL	; Save to Jump Address #2 in RAM
        LD      A,$01
        LD      ($4F73),A	; Set $4D73 to 1 ??
        LD      (CT2),A		; Counter Timer 2 at $4FD7 = 1 ??
        CALL    L3A6A		; to Clear Location Blocks 1 through 7
        XOR     A
        LD      ($4DB9),A	; Set $4DB9 to 0 ??
        EI
        RET

			; Set Draw Mode to Point/Trace on "Up"
L3D6B:			; from Look Up Jump Address (ROM Table) with A = 1
        LD      HL,L3859
        JR      L3D56                   ; (-$1a)

			; Set Draw Mode to Hollow Circle on "mR"
L3D70:			; from Look Up Jump Address (ROM Table) with A = 4
        XOR     A
L3D71:			; Common Return Point for Circle Routines ??
        LD      (FILLCI),A	; Set $4DAC to 0 for Hollow Circle, 1 for Filled Circle
        LD      HL,L38E1
        JR      L3D56                   ; (-$23)

			; Set Draw Mode to Filled Circle on "mS"
L3D79:			; from Look Up Jump Address (ROM Table) with A = 5
        LD      A,$01
        JR      L3D71                   ; (-$0c)

			; Set Draw Mode to Hollow Box on "cH"
L3D7D:			; from Look Up Jump Address (ROM Table) with A = 6
        XOR     A
L3D7E:			; Common Return Point for Box Routines ??
        LD      (FILLBX),A	; Set $4DAB to 0 for Hollow Box, 1 for Filled Box
        LD      HL,L394C
        JR      L3D56                   ; (-$30)

			; Set Draw Mode to Filled Box on "/"
L3D86:			; from Look Up Jump Address (ROM Table) with A = 7
        LD      A,$01
        JR      L3D7E                   ; (-$0c)

			; Set Draw Mode to Poorly Fill on "%" (MESS uses "O")
L3D8A:			; from Look Up Jump Address (ROM Table) with A = 3
        LD      HL,L39CC
        JP      L3D56			; (close enough for relative jump ??)

			; Set Draw Mode to Fan Lines Up on "=,Down"
L3D90:			; from Look Up Jump Address (ROM Table) with A = 26
        LD      HL,L3A44
        JP      L3D56			; (close enough for relative jump ??)

			; Set Draw Mode to Fan Lines Down on "=,%" (MESS uses "Enter,O")
L3D96:			; from Look Up Jump Address (ROM Table) with A = 27
        LD      HL,L3A57
        JP      L3D56			; (close enough for relative jump ??)

			; Set Draw Mode to Fan Lines Left on "=,C"
L3D9C:			; from Look Up Jump Address (ROM Table) with A = 24
        LD      HL,L3A1E
        JP      L3D56			; (close enough for relative jump ??)

			; Set Draw Mode to Fan Lines Right on "=,Up"
L3DA2:			; from Look Up Jump Address (ROM Table) with A = 25
        LD      HL,L3A31
        JP      L3D56			; (close enough for relative jump ??)

			; Set Multi-color Mode 0 on "7"
L3DA8:			; from Look Up Jump Address (ROM Table) with A = 8
        XOR     A
L3DA9:			; Common Return Point for Multi-Color Mode Routines ??
        LD      (MULTIC),A	; Set $4DD9 = 0, 1, 2 or 3 for Multi-Color
        LD      (OLDMUC),A	; Set $4DD8 = 0, 1, 2 or 3 for Old Multi-Color
        RET

			; Set Multi-color Mode 1 on "8"
L3DB0:			; from Look Up Jump Address (ROM Table) with A = 9
        LD      A,$01
        JR      L3DA9                   ; (-$0b)

			; Set Multi-color Mode 2 on "9"
L3DB4:			; from Look Up Jump Address (ROM Table) with A = 10
        LD      A,$02
        JR      L3DA9                   ; (-$0f)

			; Set Multi-color Mode 3 on "*"
L3DB8:			; from Look Up Jump Address (ROM Table) with A = 11
        LD      A,$03
        JR      L3DA9                   ; (-$13)

			; Set Color Mode 0 (for Color 1) on "4"
L3DBC:			; from Look Up Jump Address (ROM Table) with A = 12
        XOR     A
L3DBD:			; Common Return Point for Color Mode Routines ??
        LD      (COLORM),A	; Set $4DD7 to 0, 1 or 2 for Color Mode
        RET

			; Set Color Mode 1 on "6"
L3DC1:			; from Look Up Jump Address (ROM Table) with A = 14
        LD      A,$01
        JR      L3DBD                   ; (-$08)

			; Set Color Mode 2 on "5"
L3DC5:			; from Look Up Jump Address (ROM Table) with A = 13
        LD      A,$02
        JR      L3DBD                   ; (-$0c)

			; Freeze Color Ramping on "1"
L3DC9:			; from Look Up Jump Address (ROM Table) with A = 16
        XOR     A
L3DCA:			; Common Return Point for Ramping Color Routines ??
        LD      (RMPCLR),A	; Set $4F0E to 0 to Freeze, 1 to Ramp Colors
        RET

			; Ramp Colors ONLY on "2"
L3DCE:			; from Look Up Jump Address (ROM Table) with A = 17
        LD      A,$28
L3DD0:			; Common Return Point for Ramping Boundary Routines ??
        OUT     (HORCB),A	; &(9) = 40 or 0 for Horizontal Color Boundary ??
        LD      A,$01
        LD      ($4F05),A	; Set $4F05 to 1 (Not Used ??)
        LD      A,$01
        JR      L3DCA                   ; (-$11)

			; Ramp Colors AND Intensity on "3"
L3DDB:			; from Look Up Jump Address (ROM Table) with A = 18
        XOR     A
        JR      L3DD0                   ; (-$0e)

			; Set PLOP Magic on "cE" ??
L3DDE:			; from Look Up Jump Address (ROM Table) with A = 20
        XOR     A
L3DDF:			; Common Return Point for Set Magic Routines
        LD      (HOLDMR),A	; Set $4DD6 to 0, 16 or 32 for Hold Magic Register
        LD      (OLDHMR),A	; Set $4DB7 to 0, 16 or 32 for Old Hold Magic Register
        RET

			; Set XOR Magic on "." ??
L3DE6:			; from Look Up Jump Address (ROM Table) with A = 22
        LD      A,$20
        JR      L3DDF                   ; (-$0b)

			; Set OR Magic on "0" ??
L3DEA:			; from Look Up Jump Address (ROM Table) with A = 21
        LD      A,$10
        JR      L3DDF                   ; (-$0f)

			; Reset Colors on "-" ?? 
L3DEE:			; from Look Up Jump Address (ROM Table) with A = 15
        DI
        CALL    L3DEA		; direct to Jump Address (ROM Table) as if A = 21
        CALL    L3DC9		; direct to Jump Address (ROM Table) as if A = 16
        CALL    L35C0		; to Set Colors
        CALL    L35A2		; to ??
        LD      A,$01
        JP      L3DA9			; (close enough for relative jump ??)

			; Hard Reset on "+"
L3E00:			; from Look Up Jump Address (ROM Table) with A = 19
        DI
        LD      A,$00
        LD      (VALIDC),A	; Set $4DFF to 0 to Force a Hard Reset and Clear Screen
        JP      $0000			; Jump to System Soft Reset

			; Soft Reset on "C"
L3E09:			; from Look Up Jump Address (ROM Table) with A = 0
        DI
        RST     $00	; to Restart Video Storybook at L2000

			; Begin Two-Part Command on "=" (MESS uses KeyPad Enter)
L3E0B:			; from Look Up Jump Address (ROM Table) with A = 23
        LD      A,$18
        LD      (KYSHFT),A	; Set $4DAA to 24 for Shift Next Key Press
        RET

			; Use Knobs One and Three on "=,*"
L3E11:			; from Look Up Jump Address (ROM Table) with A = 35
        LD      A,$01
        LD      (CURSOR),A	; Set $4DBA to 1
        RET

			; Use Joystick One on "=,-"
L3E17:			; from Look Up Jump Address (ROM Table) with A = 39
        XOR     A
        LD      (CURSOR),A	; Set $4DBA to 0
        RET

			; What ?? on "=,4"
L3E1C:			; from Look Up Jump Address (ROM Table) with A = 36
        XOR     A
        LD      ($4DB8),A	; Set $4DB8 to 0 ??
        RET

			; What ?? on "=,5"
L3E21:			; from Look Up Jump Address (ROM Table) with A = 37
        LD      A,$01
        LD      ($4DB8),A	; Set $4DB8 to 1 ??
        RET

			; What ?? on "=,6"
L3E27:			; from Look Up Jump Address (ROM Table) with A = 38
        LD      A,$02
        LD      ($4DB8),A	; Set $4DB8 to 2 ??
        RET

L3E2D:			; Address Table in ROM for Look Up Jump Address Routine
        DW      L3E09		; A = 0 on "C" to Do a Soft Reset

        DW      L3D6B		; A = 1 on "Up" to Draw Point/Dotted Trace

        DW      L3D53		; A = 2 on "Down" to Draw Rubber Line

        DW      L3D8A		; A = 3 on "%" (MESS uses O) to Fill Poorly

        DW      L3D70		; A = 4 on "mR" to Set Hollow Circle Mode

        DW      L3D79		; A = 5 on "mS" to Set Filled Circle Mode

        DW      L3D7D		; A = 6 on "cH" to Set Hollow Box Mode

        DW      L3D86		; A = 7 on "/" to Set Filled Box Mode

        DW      L3DA8		; A = 8 on "7" to Set Multi-Color Mode 1

        DW      L3DB0		; A = 9 on "8" to Set Multi-Color Mode 2

        DW      L3DB4		; A = 10 on "9" to Set Multi-Color Mode 3

        DW      L3DB8		; A = 11 on "*" to Set Multi-Color Mode 4

        DW      L3DBC		; A = 12 on "4" to Set Color Mode 1

        DW      L3DC5		; A = 13 on "5" to Set Color Mode 2

        DW      L3DC1		; A = 14 on "6" to Set Color Mode 3

        DW      L3DEE		; A = 15 on "-" to Reset Colors to Default

        DW      L3DC9		; A = 16 on "1" to Stop Color Cycling

        DW      L3DCE		; A = 17 on "2" to Start Color Cycling

        DW      L3DDB		; A = 18 on "3" to Start Intensity Cycling

        DW      L3E00		; A = 19 on "+" to Blank Screen

        DW      L3DDE		; A = 20 on "cE" to Set to PLOP Draws

        DW      L3DEA		; A = 21 on "0" to Set to OR Draws

        DW      L3DE6		; A = 22 on "." to Set to XOR Draws

        DW      L3E0B		; A = 23 on "=" to Shift the Following Key Press

        DW      L3D9C		; A = 24 on Shifted "C" to Fan Lines Left

        DW      L3DA2		; A = 25 on Shifted "Up" to Fan Lines Right

        DW      L3D90		; A = 26 on Shifted "Down" to Fan Lines Up

        DW      L3D96		; A = 27 on Shifted "%" (or O) to Fan Lines Down

        DW      L3BFE		; A = 28 on Shifted "mR" to Draw Birds, Tree, Deer and Turtle

        DW      L3C92		; A = 29 on Shifted "mS" to Draw Houses and Garden

        DW      L3C38		; A = 30 on Shifted "cH" to Draw Cottage, Trees and Kangaroos

        DW      L3CBF		; A = 31 on Shifted "/" to Draw Fire Station and Fire Truck

        DW      L3CDF		; A = 32 on Shifted "7" to Draw Cottage

        DW      L3CF2		; A = 33 on Shifted "8" to Draw Turtles

        DW      L3C7F		; A = 34 on Shifted "9" to Draw Kangaroo

        DW      L3E11		; A = 35 on Shifted "*" to Read Knobs for Position

        DW      L3E1C		; A = 36 on Shifted "4" to ??

        DW      L3E21		; A = 37 on Shifted "5" to ??

        DW      L3E27		; A = 38 on Shifted "6" to ??

        DW      L3E17		; A = 39 on Shifted "-"  to Read Joystick for Position

			; Make a Noise to Acknowledge KeyPress
L3E7D:			; Play Key Note Routine
        ADD     A,A
        ADD     A,$20
        OUT     (TONEC),A	; &(19) = 32 + (2 * A) for Tone C
        LD      A,$30
        OUT     (TONMO),A	; &(16) = 48 for Master Oscillator
        LD      A,$08
        OUT     (VOLC),A	; &(21) = 8 for Volume C
        LD      A,$10
        LD      (STACKA),A	; Top of Stack Area = 16 (to Play Music ??)
        RET

L3E90:		; Handle SENTRY Return = SF4 ?? Routine
        LD      HL,$4DA9	; Point to ??
        XOR     A
        CP      (HL)			; is $4DA9 Not Equal Zero ?
        RET     NZ
        LD      (HL),$01	; Set $4DA9 = 1 ?
        LD      HL,KYSHFT	; Point to $4DAA for Shift Key Amount
        LD      A,B
        DEC     A			; Extended Return Code - 1
        ADD     A,(HL)		; Add 24 to KeyCode if Shifted
        LD      (HL),$00	; Unshift (even if Not Shifted)
        CP      $28			; KeyCode greater than 40 ?
        RET     NC
        LD      HL,L3E2D	; Jump Table Base in ROM
        CALL    L2034		; to Look Up Address by 0 through 39 in ROM Jump Table
        CALL    L3E7D		; to Play Key Note 0 through 39
        EX      DE,HL
        JP      (HL)			; Jump to Address from ROM Jump Table

L3EAE:		; Handle SENTRY Return = SF3 ?? Routine
        XOR     A
        LD      ($4DA9),A	; Set $4DA9 to 0 to Enable Handle SENTRY Return = SF4 ??
        RET

L3EB3:			; DO IT Table Data
        DB      $08		; on SENTRY Return = SCT7 ??
        DW      L20A4		; JMP to machine language routine and pop context

        DB      $01		; on SENTRY Return = SCT0 ??
        DW      L207C		; JMP to machine language routine and pop context

        DB      $02		; on SENTRY Return = SCT1 ??
        DW      L208A		; JMP to machine language routine and pop context

        DB      $03		; on SENTRY Return = SCT2 ??
        DW      L208E		; JMP to machine language routine and pop context

        DB      $04		; on SENTRY Return = SCT3 ??
        DW      L2092		; JMP to machine language routine and pop context

        DB      $05		; on SENTRY Return = SCT4 ??
        DW      L2096		; JMP to machine language routine and pop context

        DB      $06		; on SENTRY Return = SCT5 ??
        DW      L209A		; JMP to machine language routine and pop context

        DB      $07		; on SENTRY Return = SCT6 ??
        DW      L209F		; JMP to machine language routine and pop context

        DB      $13		; on SENTRY Return = SF4 ??
        DW      L3E90		; JMP to machine language routine and pop context

        DB      $12		; on SENTRY Return = SF3 ??
        DW      L3EAE		; JMP to machine language routine and pop context

        DB      $C0		; End of DO IT Table

			; Entry Point
L3ED2:			; Initialize Video Story
        DI				; Disable Interrupts
        LD      SP,STACKA	; Set Stack Pointer to $4DA8
        LD      HL,(VALIDC)	; $4DFF = Valid Cursor else Preset ALL Variables on Reset
        LD      DE,L3713	; Base Address for 14 Data Bytes for CURSOR
        OR      A			; Test for Zero and Clear Carry Flag (No SUB word sized)
        SBC     HL,DE			; Already Been Set Up with ($4DFF) = L3713 ?
        JR      Z,L3F35                 ; (+$54)
        LD      BC,$01D0	; 464 byte count
        XOR     A
        LD      HL,STACKA	; Clear Variables ABOVE Top of Stack
L3EE8:  LD      (HL),A		; Loop to Clear $4DA8 through $4F77
        CPI				; Decrement BC, Increment HL (ignore Compare)
        JP      PE,L3EE8		; Is BC NOT 0 ?
        LD      A,$01
        LD      ($4DB6),A	; Set $4DB6 to 1 ??
        CALL    L258B		; to Preset Some Variables
        CALL    L2003		; to Clear Screen
        LD      A,$23
        LD      ($4F4C),A	; Set $4F4C to 35 ??
        XOR     A
        LD      (ILINE1),A	; Set $4F54 to 0 ??
        LD      A,$4B
        LD      ($4F53),A	; Set $4F53 to 75 ??
        LD      A,$AA
        LD      (ILINE2),A	; Set $4F55 to 170 for Interrupt Line Register
        LD      A,$01
        LD      ($4DB8),A	; Set $4DB8 to 1 ??
        LD      A,$A6
        OUT     (VERBL),A	; &(10) = 83*2 for Vertical Blanking Line
        LD      A,$01
        LD      (CURSOR),A	; Set $4DBA to 1 to Use Knobs to Move Cursor
        CALL    L3DEE		; to Jump Address (ROM Table) as if A = 15 to Reset Colors
        LD      A,$01
        LD      ($4DB5),A	; Set $4DB5 to 1 ??
        LD      A,$13
        CALL    L3E7D		; to Play Key Note 19 ??
        XOR     A
        LD      ($4DB9),A	; Set $4DB9 to 0 ??
        LD      HL,L3B92
        LD      IX,BLOCK0
        CALL    L255B		; to Move 35 bytes of Initial Data into Cursor Block 0

L3F35:			; Skip to here to Defeat Hardware Reset
        LD      HL,L2031-$80	; User Routine #80 Address - 128
        LD      (USERTB),HL	; Set Extended Systems Table to $1FB1
        LD      HL,L2033-$40	; User Argument Suck Table Address - 64
        LD      (UMARGT),HL	; Set Extended Mask ARGuments Table to $1FF3
        XOR     A
        OUT     (HORCB),A	; &(9) = 0 for Horizontal Color Boundary

        SYSSUK  FILL  
        DW      JUMP00		; Jump Table Base Address in RAM
        DW      $0010		; Clear for 16 bytes (8 Jump Address words)
        DB      $00		; Set $4F62 through $4F71 to 0

        XOR     A
        LD      ($4DBC),A	; Set $4DBC to 0 ??
        LD      (OLDSW0),A	; Set $4DBB to 0 for Old Joystick 1 Reading
        SYSSUK  FILL  
        DW      CT0
        DW      $0009
        DB      $00		; Set CounterTimers 0 through 7 and CNT to 0

        CALL    L2277		; to Set Up Interrupt(s)
L3F5C:
        LD      HL,L3F5C	; ALWAYS Return Right Here !!
        PUSH    HL		; Save Return Address for Sentry DO IT  
        EI
        LD      HL,STACKA
        XOR     A
        CP      (HL)			; is Top of Stack Area = 0 ?
        JR      Z,L3F73                 ; (+$0b)
        DEC     (HL)			; is (Top of Stack Area - 1) NOT 0 ?
        JR      NZ,L3F73                ; (+$08)
        XOR     A
        LD      BC,$0818	; eight times to SNDBX Port to fake EMUSIC
L3F6F:  OUT     (C),A		; &(18) = 0's to Clear ALL Music Ports
        DJNZ    L3F6F                   ; (-$04)

L3F73:  			; Call Extended User Routine #80 - to ??
        SYSSUK  $80
        DW      ALKEYS		; System ALL KEYS Mask

        SYSSUK  DOIT		; A = Sentry Return, B = Extended Return
        DW      L3EB3		; 3-byte/entry DO IT Table

        RET			; RETURN to L3F5C if Sentry NOT in Table


; L3F7C			; Duplicates Code above, leave intact to match ROM data
        DB                                                      $28,$54,$01,$D0
        DB      $01,$AF,$21,$A8,$4D,$77,$ED,$A1,$EA,$85,$3F,$3E,$01,$32,$B6,$4D
        DB      $CD,$8B,$25,$CD,$03,$20,$3E,$23,$32,$4C,$4F,$AF,$32,$54,$4F,$3E
        DB      $4B,$32,$53,$4F,$3E,$AA,$32,$55,$4F,$3E,$02,$32,$B8,$4D,$3E,$A6
        DB      $D3,$0A,$3E,$01,$32,$BA,$4D,$CD,$8B,$3E,$3E,$01,$32,$B5,$4D,$3E
        DB      $13,$CD,$1A,$3F,$AF,$32,$B9,$4D,$21,$2F,$3C,$DD,$21,$ED,$4D,$CD
        DB      $5B,$25,$21,$B1,$1F,$22,$FD,$4F,$21,$F3,$1F,$22,$FB,$4F,$AF,$D3
        DB      $09,$FF,$1B,$62,$4F,$10,$00,$00,$AF,$32,$BC,$4D,$32,$BB,$4D,$FF
        DB      $1B,$D5,$4F,$09,$00,$00,$CD,$77,$22,$21,$F9,$3F,$E5,$FB,$21,$A8

        END
