; "Treasure Cove"
; Designed by Brett Bilbrey, Marion Nalepa, and Michael Toth
;
; This Z80 assembly source file will assembly using ZMac to an exact
; byte-for-byte 8K replicate of the the Bally/Astrocade cartridge
; game, "Treasure Cove."
;
; This disassembly of the cartridge begun by Adam Trionfo on
; August 9, 2011.  This disassembly is based upon the incomplete
; printout of source code sent by Brett Bilbrey to Adam Trionfo
; in April of 2009.
;
;    -  Version (.13) - 8/25/2011 (Update by RCD)
;          - VERY Minor change.  Disassembled a couple of lines
;            at $327A. 
;
;    -  Version (.12) - 8/25/2011 (Update by RCD)
;          - Disassembled Music Routines at $2C54-$2FFF
;            and $3F20-$3FFF 
;                
;    -  Version (.11) - 8/20/2011 (Update by RCD)
;          - Cleaned up Source Code 
;          - RAM cells noted
;
;    -  Version (.10) - August 19, 2011
;          - This is a MAJOR revision, and thus code revision history
;            jumps from .02 to .10 (there were NO other released versions)
;            Version .02 will be kept around because it is nearly 100%
;            identical to the incomplete printout.  Version .02 can be
;            considered a non-functional version that can be referred
;            back to in the future for reference.
;          - This version of the source is the first to match
;            byte-for-byte with the 1983 cartridge release.
;          - This release worked backward from the cartridge dump rather
;            than the re-typed source code.  The code was disassembled
;            using a Z80 disassembler and then the original comments
;            were added back in.  This allowed a HUGE amount of the
;            original code to be saved (well over 90%)!
;          - The incomplete printout's code of version .02 ended at
;            about 3K (byte $2C52 of the ROM).  The rest of the 5K of
;            the program in this release was added to this version.
;            Thus ALL work after that point is new to this release.
;          - Some of the specific changes in this version include:
;               - Located nearly all patterns and commented them.
;               - Located all of the title screen.
;               - Disassembled and began commenting of Music Score
;                 from $255D-$2D5C.
;
;    -- Version (.02) - March 3, 2010
;          - First release of retyped incomplete source.
;          - Assembles fine using Zmac.
;          - This version does NOT run.
;          - When run under MESS .135, it "locks up."  When the
;            debugger is used, the game is getting "stuck" in the WRITP
;            routine in the system ROM.  The problem has been traced
;            back to when the cartridge calls the WRITP routine
;            from $27DE.  The game never returns from this call.
;          - Richard Degler suggests, "Sounds like the Stack area is
;            getting clobbered by the WRITPattern - there is no bounds
;            checking so if it draws too far down it just can't find
;            its way back."
;
;    -- Version (.01) - March 1, 2010
;          - Source typed in by Adam Trionfo
;          - Typed-in from January 22 - March 1, 2010
;          - Assembles without errors.
;          - A few changes to the source had to be made:
;               - Lines 386 and 387: The label HALT was changed to HALT1
;               - Lines 426 and 442: The label POP changed to POP1
;

        INCLUDE "HVGLIB.H"      ; Home Video Game Library

; OTHER EQUATES (BYTE VALUES)
NUMFIS  EQU     26              ; NUMber of FISh
DMAX    EQU     10              ; Diver patterns MAXimum
SNDCLR  EQU     $74             ; SaND CoLoR = 116 (YELLOW)
GREEN   EQU     $CC             ; = 204
BLUE    EQU     $F8             ; = 248 (DARK BLUE)
BLACK   EQU     $00
OYSPD   EQU     10              ; THIS VARIES OCT Y SPEED
BDELT   EQU     $45             ; Boat [positive] DELTa ?? [to BODXL]
CLEAN   EQU     $0EF3           ; CLEAR (3827 bytes) TO END OF VECTOR AREA
FLOAT   EQU     $0015           ; ANTI-GRAV FACTOR

; RAM STORAGE EQUATES

; for FISH 1 to 6
; note: bytes +15 and +16 store +VBOAL and +VBOAH, swapped if +17 counted down to 0 ?? 1 or 2
VECT1   EQU     $4E88           ; VECTor blocks [18-bytes each ??] IndeXed from FISHVT table
VECT2   EQU     $4E9A
VECT3   EQU     $4EAC
VECT4   EQU     $4EBE
VECT5   EQU     $4ED0
VECT6   EQU     $4EE2
GSTACK  EQU     $4F53           ; Game STACK area
CONVRT  EQU     $4F55           ; CONVeRT ?? to BCD for DISNUM
SCROL   EQU     $4F56           ; SCROLling Color 3 value ?? for title
MUZRET  EQU     $4F58           ; MUSIC RAM BLOCK [init to $90,xx,$B0,xxxx,$C9]
INSTAT  EQU     $4F5E           ; IN ?? STATe 0 / 1=drawing flag
BONTOT  EQU     $4F5F           ; BONus TOTal ?? 3-bytes
LEVSCO  EQU     $4F62           ; LEVel SCOre ?? 3-bytes
IYSAVE  EQU     $4F65           ; IY SAVE ?? word
ANISPD  EQU     $4F67           ; ANImation SPeeD ?? upper limit of ANIMAT upcounter ??
OXSTAT  EQU     $4F68           ; OXygen STATus ??
TIMER   EQU     $4F69           ; oxyger TIMER ?? downcounter resets to 20
OXCONT  EQU     $4F6A           ; OXygen CONTrol ?? 100 to 0=dead
OCT3    EQU     $4F6B           ; OCTopus 3 ??
SUBV1   EQU     $4F6D           ; ?? SUBroutine table ?? Value 1 ??
SUBV2   EQU     $4F6F           ; ?? SUBroutine table ?? Value 2 ??
OCTPAT  EQU     $4F71           ; OCTopus PATtern ??
OCT2    EQU     $4F73           ; OCTopus 2 ??
OCTANI  EQU     $4F75           ; OCTopus ANImation step ??
CMF     EQU     $4F76           ; CMF ??
TCOUNT  EQU     $4F77           ; Treasure COUNT 0 to 4=EOB:
SAVEBC  EQU     $4F78           ; ?? temp word
TTAB    EQU     $4F7A           ; 4 TEMP. WORD ENTRIES
ANIMAT  EQU     $4F82           ; ANIMATion step ?? 0 to ANISPD
VECLIM  EQU     $4F83           ; VECtor LIMit table ??
DELTA   EQU     $4F85           ; diver [positive] DELTA
DIVER   EQU     $4F87           ; current DIVER pattern
BOMAG   EQU     $4F89           ; BOat MAGic register ?? non-IndeXed Vector Block
BOSTAT  EQU     BOMAG+VBSTAT
BOTIME  EQU     BOMAG+VBTIMB
BODXL   EQU     BOMAG+VBDXL
BODXH   EQU     BOMAG+VBDXH
BOXL    EQU     BOMAG+VBXL
BOXH    EQU     BOMAG+VBXH
BOXCK   EQU     BOMAG+VBXCHK
BODYL   EQU     BOMAG+VBDYL
BODYH   EQU     BOMAG+VBDYH
BOYL    EQU     BOMAG+VBYL
BOYH    EQU     BOMAG+VBYH
BOYCK   EQU     BOMAG+VBYCHK
OMAG    EQU     $4F96           ; Octopus MAGic register ?? non-IndeXed Vector Block
OSTAT   EQU     OMAG+VBSTAT
OTIME   EQU     OMAG+VBTIMB
ODXL    EQU     OMAG+VBDXL
OXH     EQU     OMAG+VBXH
OXCK    EQU     OMAG+VBXCHK
ODYL    EQU     OMAG+VBDYL
OYH     EQU     OMAG+VBYH
OYCK    EQU     OMAG+VBYCHK
VBMREG  EQU     $4FA3           ; Vector Block, Magic Register [IndeXed, for diver]
MSTACK  EQU     $4FB8           ; Music Stack Pointer
PBLOCK  EQU     $4FBA           ; Player BLOCK ?? 4 blocks of ??
PLAY1   EQU     PBLOCK          ; 5-bytes each ?? Indexed from PLATAB table
PLAY2   EQU     $4FBF
PLAY3   EQU     $4FC4
PLAY4   EQU     $4FC9

NUMPLA  EQU     NUMPLY          ;
NUMDIV  EQU     ENDSCR          ; both $4FF4 ??
SWAP    EQU     NUMDIV
CPP     EQU     $4FF5           ; Current Player Port ($10 to $13)
PIN     EQU     $4FF6           ;
COUNT   EQU     $4FFB           ;
DINDEX  EQU     $4FFC           ;
VECTOR  EQU     $4FFD           ;
;

        ORG     FIRSTC          ; FIRST address in Cartridge

        JP      L2003           ; Autostart "Treasure Cove"

; First Byte of "Treasure Cove" Program
; Initialize $4000-$4FFF to all zeros
L2003:  LD      HL,$4000        ; Source for LDIR
        LD      DE,$4001        ; Destination for LDIR
        LD      BC,$0FFF        ; Counter for LDIR
        LD      (HL),L          ; Load L ($00) into 16384
        LDIR

        IM      2               ; Set Interrupt Mode 2 Condition
        LD      SP,GSTACK

        SYSTEM  INTPC           ; UPI INTerPret with Context create
        ;
        DO      COLSET          ; UPI COLors SET
        DW      $3131           ; ... Address of Color Table
        ;
        DO      SETOUT          ; UPI SET some OUTput ports
        DB      95*2            ; ... Set VERBL (Port $0A) VERtical Blanking Line
        DB      26              ; ... Set HORCB (Port $09) HORizontal Color Boundary
        DB      0               ; ... Set INMOD (Port $0E) INterrupt MODe
        ;
        DO      RECTAN          ; UPI paint a RECTANgle
        DB      0               ; ... X Coordinate
        DB      87              ; ... Y Coordinate
        DB      160             ; ... X Size (Width)
        DB      8               ; ... Y Size (Height)
        DB      $55             ; ... Color Mask to Write Rectangle with
        ;
        DO      STRDIS          ; UPI STRing DISplay
        DB      38              ; ... X Coordinate
        DB      1               ; ... Y Coordinate
        DB      01001100B       ; ... Options (2x2 Pixels, Color=3 on Color=0)
        DW      TREAS           ; ... String "TREASURE"
        ;
        DO      STRDIS          ; UPI STRing DISplay
        DB      92              ; ... X Coordinate
        DB      16              ; ... Y Coordinate
        DB      01001100B       ; ... Options (2x2 Pixels, Color=3 on Color=0)
        DW      COVE            ; ... String "COVE"
        ;
        DO      BMUSIC          ; UPI Begin playing MUSIC
        DW      MSTACK          ; ... Music Stack Pointer
        DB      $FC             ; ... Setup Voices, Use Tone A, B and C
        DW      L2C54           ; ... Score Address for BACKGROUND music
        ;
        DONT    XINTC           ; UPI eXit INTerpreter with Context
        ;
        LD      A,$FF
        LD      ($4FEC),A
        SYSSUK  RECTAN          ; UPI paint a RECTANgle
        DB      23              ; ... X
        DB      86              ; ... Y
        DB      138             ; ... Width
        DB      2               ; ... Height
        DB      $55             ; ... Color
        ;
        LD      BC,PATTAB       ; Table of Patterns
        CALL    NEXPAT          ; do Draw ALL PATterns [not First Diver Pat !!]
        LD      DE,L286E
        LD      HL,$3000        ; First Diver Pattern
        LD      (DIVER),HL
        LD      A,10
        LD      (ANISPD),A
        CALL    STADIV          ; Start the Diver
        SYSSUK  COLSET          ; UPI COLors SET
        DW      TITCOL          ; ... Table Address
        ;
        LD      HL,$0020        ; Setup Diver Vector
        LD      (DELTA),HL
        LD      A,9
        LD      (PIN),A
        LD      HL,TITLIM
        LD      (VECLIM),HL
        LD      A,170           ; Interrupt Line Number
        OUT     (INLIN),A       ; Port $F, write INterrupt LINe
        LD      A,3
        LD      (SCROL),A       ; init SCROlling colors to GRAY
        LD      HL,TITIES
        LD      (SWAP),HL
        LD      A,8
        OUT     (INMOD),A       ; Port $E, write INterrupt MODe
        LD      HL,TIT1
        CALL    INTSET
DO_1:   JR      DO_1            ; loop "FOREVER"

TIT1:   LD      A,(SCROL)
        ADD     A,8
        LD      (SCROL),A
        LD      B,57
CYCLE:  ADD     A,$8
        OUT     (COL3R),A       ; Port $3, COLor 3 Right
        OUT     (COL3L),A       ; Port $7, COLor 3 Left
        OUT     (COL3R),A       ; Port $3, COLor 3 Right
        OUT     (COL3L),A       ; Port $7, COLor 3 Left
        OUT     (COL3R),A       ; Port $3, COLor 3 Right
        OUT     (COL3L),A       ; Port $7, COLor 3 Left
        OUT     (COL3R),A       ; Port $3, COLor 3 Right
        OUT     (COL3L),A       ; Port $7, COLor 3 Left
        DJNZ    CYCLE
        LD      A,BLACK
        OUT     (COL3R),A       ; Port $3, COLor 3 Right
        OUT     (COL3L),A       ; Port $7, COLor 3 Left
        CALL    STIMER          ; Seconds and music TIMER
        LD      A,(VBMREG+VBXCHK)
        BIT     VBCLAT,A
        JR      Z,YCHEK
        LD      A,1
        LD      (VBMREG+VBXCHK),A
        LD      A,(PIN)
        XOR     12
        LD      (PIN),A
        LD      HL,(SWAP)
        LD      DE,(VECLIM)
        LD      (SWAP),DE
        LD      (VECLIM),HL
YCHEK:  LD      A,(VBMREG+VBYCHK)
        BIT     VBCLAT,A
        JR      Z,SET2
        LD      A,$01
        LD      (VBMREG+VBYCHK),A
        LD      A,(PIN)
        XOR     3
        LD      (PIN),A
SET2:   LD      HL,TIT2
        LD      (VECTOR),HL
        LD      A,80
        OUT     (INLIN),A       ; Port $F, write INterrupt LINe
        EI
        RET

TIT2:   CALL    DVRRTN
        LD      HL,TIT3
        LD      (VECTOR),HL
        LD      A,186
        OUT     (INLIN),A       ; Port $F, write INterrupt LINe
        EI
        RET

TIT3:   LD      A,SNDCLR
        OUT     (COL0R),A       ; Port $0, Set COLor 0 Right
        OUT     (COL0L),A       ; Port $4, Set COLor 0 Left
        CALL    MUSIC           ; do Check MR/MS for Off/On
        IN      A,(SW0)         ; read SWitch bank 0 for player 1 hand control
        AND     A
        JR      NZ,GSTART
        IN      A,(KEY0)        ; KEYboard column 0 (right side)
        AND     A
        JR      NZ,GSTART
        IN      A,(KEY1)        ; KEYboard column 1 (center right)
        AND     A
        JR      NZ,GSTART
        IN      A,(KEY2)        ; KEYboard column 2 (center left)
        CP      $03             ; [is none, 'MS' or 'UpArrow' pressed?]
        JP      M,W1
        AND     A               ; [is any-other in that column pressed?]
        JR      NZ,GSTART
W1:     IN      A,(KEY3)        ; KEYboard column 3 (left side)
        CP      $01             ; [is 'C' pressed?]
        JP      Z,GSTART
        CP      $03             ; [is none, 'MR' or 'C' pressed?]
        JP      M,W2
        AND     A               ; [is any-other in that column pressed?]
        JR      NZ,GSTART
W2:     LD      HL,TIT1
        LD      (VECTOR),HL
        LD      A,$00
        OUT     (INLIN),A       ; Port $F, write INterrupt LINe
        LD      B,$FF
WAITER: NOP
        DJNZ    WAITER
        LD      A,GREEN
        OUT     (COL0R),A       ; Port $0, Set COLor 0 Right
        OUT     (COL0L),A       ; Port $4, Set COLor 0 Left
        EI
        RET

GSTART: POP     HL
        LD      HL,MUINT
        CALL    INTSET
        IN      A,(KEY3)        ; KEYboard column 3 (left side)
        CP      $01             ; [is 'C' key NOT pressed?]
        JR      NZ,L2165
        CALL    ERASE
        SYSSUK  STRDIS          ; UPI STRing DISplay
        DB      25              ; ... X = 25
        DB      20              ; ... Y = 20
        DB      $0C             ; ... Options
        DW      DESIGN          ; ... String Address of "DESIGNED BY:"
        ;
L2160:  IN      A,(KEY3)        ; KEYboard column 3 (left side)
        AND     A
        JR      Z,L2160         ; [loop until any key in that column pressed]
L2165:  CALL    ERASE
        SYSSUK  COLSET          ; UPI COLors SET
        DW      PSCOL           ; ... Table Address
        ;
        SYSSUK  SETOUT          ; UPI SET some OUTput ports
        DB      183             ; ... VERBL*2 = 183
        DB      41              ; ... HORCB/4 = 41
        DB      8               ; ... INMOD = 8
        LD      A,$FF
        LD      ($4FEC),A
        SYSTEM  ACTINT          ; UPI ACTivate sub timer
        ;
        LD      DE,LOGO
NOGOOD: SYSSUK  GETPAR          ; UPI GET game PARameter from user
        DW      PROMPT          ; ... Prompt Address
        DB      1               ; ... Digits
        DW      NUMPLA          ; ... Parameter Address
        ;
        LD      A,(NUMPLA)
        AND     A
        JR      Z,NOGOOD
        CP      5
        JP      P,NOGOOD
        LD      DE,LOGO2
        SYSSUK  GETPAR          ; UPI GET game PARameter from user
        DW      DPRMPT          ; ... Prompt Address
        DB      1               ; ... Digits
        DW      NUMDIV          ; ... Parameter Address
        ;
        LD      A,(NUMDIV)
        AND     A
        JR      NZ,OK
        LD      A,4
        LD      ($4F57),A
OK:     LD      (NUMDIV),A
        CALL    ERASE
        LD      A,186           ; [show 93 pixel-lines]
        OUT     (VERBL),A
        LD      A,$EC           ; [HORizontal=44 bytes, Border Color=3]
        OUT     (HORCB),A
        LD      DE,$0004
        LD      A,(NUMPLA)
        LD      B,A
        LD      A,(NUMDIV)
        LD      HL,PBLOCK+3
INIT:   LD      (HL),A
        INC     HL
        LD      (HL),1
        ADD     HL,DE
        DJNZ    INIT
ONE:    LD      BC,$100
TWO:    SYSSUK  COLSET          ; UPI COLors SET
        DW      BANDW           ; ... Table Address
        ;
        LD      A,B
        LD      HL,PLATAB-2
        SYSTEM  INDEXW          ; UPI INDEX Word by A
        ;
        NOP
        PUSH    DE
        POP     IY
        LD      (IYSAVE),DE
        LD      A,15
        ADD     A,B
        LD      (CPP),A
        LD      HL,MUINT
        CALL    INTSET
        LD      A,(IY+3)
        AND     A
        JR      NZ,LIVING
        INC     C
        LD      A,4
        CP      C
        JP      Z,GAMEND
        JR      SKIPLA

LIVING: LD      (SAVEBC),BC
        LD      A,44            ; [HORiz. split=44, Color of Border=0]
        OUT     (HORCB),A
        SYSSUK  STRDIS          ; UPI STRing DISplay
        DB      $20             ; ... X
        DB      20              ; ... Y
        DB      4               ; ... Options
        DW      PLAYUP          ; ... String Address
        ;
        LD      A,$30
        OR      B
        LD      C,4
        LD      DE,$1459
        SYSTEM  CHRDIS          ; UPI CHaRacter DISplay
        ;
        CALL    ADDERL
        CALL    SCODIS
        XOR     A
        LD      ($4F76),A
        CALL    FPULL           ; In the preliminary source this CALLed PULLED
        LD      HL,DUMMY
        CALL    INTSET
WAIT:   JR      WAIT

CONTNU: DI
        POP     HL              ; Throw Away Dummy Return Value
        CALL    ERASE
        SYSSUK  COLSET          ; UPI COLors SET
        DW      TOPCOL          ; ... Address of Color Table
        ;
        JR      PLOOP

RETURN: CALL    FPULL
DRET:   LD      B,180
HALT1:  HALT
        DJNZ    HALT1
        LD      HL,MUINT
        CALL    INTSET
        CALL    ERASE
        LD      BC,(SAVEBC)
SKIPLA: INC     B
        LD      A,5
        CP      B
        JP      Z,ONE
        JP      TWO

PLOOP:  LD      A,1
        LD      (INSTAT),A
        LD      HL,INT1
        CALL    INTSET
        SYSSUK  RECTAN          ; UPI paint a RECTANgle
        DB      0               ; ... X
        DB      0               ; ... Y
        DB      160             ; ... Width
        DB      10              ; ... Height
        DB      $FF             ; ... Color
        ;
        SYSSUK  RECTAN          ; UPI paint a RECTANgle
        DB      $00             ; ... X
        DB      $58             ; ... Y
        DB      $A0             ; ... Width
        DB      $06             ; ... Height
        DB      $55             ; ... Color
        ;
        LD      BC,GPTAB
        CALL    NEXPAT          ; do Draw ALL PATterns
        SYSSUK  RECTAN          ; UPI paint a RECTANgle
        DB      23              ; ... X
        DB      86              ; ... Y
        DB      138             ; ... Width
        DB      2               ; ... Height
        DB      $55             ; ... Color
        ;
        SYSSUK  WRITP           ; UPI WRITe with Pattern size
        DB      24              ; ... X
        DB      87              ; ... Y
        DB      $10             ; ... Magic
        DW      L32E6           ; ... "OXY" Patten Address
        ;
        LD      B,4
        PUSH    HL
        PUSH    AF
POP1:   POP     AF
        POP     HL
REPEAT: SYSSUK  RANGED          ; UPI RANGED random number
        DB      26              ; ... Cutoff = 26
        ;
        LD      E,A
        LD      D,0
        LD      HL,$4C86
        ADD     HL,DE
        PUSH    HL
        LD      E,$50
        ADD     HL,DE
        PUSH    AF
        LD      A,(HL)
        AND     60
        CP      60
        JR      Z,POP1
        POP     AF
        SLA     A
        SLA     A
        ADD     A,24
        LD      E,A
        LD      D,82
        LD      HL,L3700        ; Treasure Pattern
        LD      A,$10
        SYSTEM  WRITP           ; UPI WRITe with Pattern size
        ;
        LD      HL,TTAB-2
        LD      A,B
        SYSTEM  INDEXW          ; UPI INDEX Word by A
        ;
        POP     DE
        LD      (HL),E
        INC     HL
        LD      (HL),D
        DJNZ    REPEAT
        LD      A,$20
        LD      (OMAG),A
        LD      (BOMAG),A
        LD      A,$80
        LD      (OSTAT),A
        LD      (BOSTAT),A
        LD      A,1
        LD      (BOXCK),A
        LD      A,3
        LD      (OXCK),A
        LD      (OYCK),A
        LD      HL,BDELT
        LD      (BODXL),HL
        SYSSUK  RANGED          ; UPI RANGED random number
        DB      100             ; ... Cutoff = 100
        ;
        ADD     A,30
        LD      (BOXH),A
        SYSSUK  VWRITR          ; UPI Vector WRITe Relative
        DW      BOMAG           ; ... Vector Block
        DW      L3706           ; ... Address of Boat Pattern
        ;
        XOR     A
        LD      (OMAG+4),A
        LD      (OMAG+5),A
        LD      (OMAG+9),A
        LD      (OMAG+10),A
        LD      (VBMREG+VBSTAT),A
        LD      (TCOUNT),A
        SYSTEM  RANGED          ; UPI RANGED random number
        ;
        LD      (ODXL),A
        LD      A,OYSPD
        LD      (ODYL),A
        SYSSUK  RANGED          ; UPI RANGED random number
        DB      60              ; ... Cutoff = 60
        ;
        ADD     A,40
        LD      (OXH),A
        LD      A,66
        LD      (OYH),A
        SYSSUK  VWRITR          ; UPI Vector WRITe Relative
        DW      OMAG            ; ... Vector Block = 20374
        DW      L3764           ; ... Address of Octopus Pattern
        ;
        LD      HL,L3764
        LD      (OCTPAT),HL
        LD      HL,$3999
        LD      (OCT2),HL
        LD      HL,OCTP3
        LD      (OCT3),HL
        LD      A,5
        LD      (OCTANI),A
        LD      A,(IY+4)
        INC     A
        INC     A
        CP      7
        JP      M,LIMIT
        LD      A,6
LIMIT:  LD      (CMF),A
        LD      A,$90           ; SETUP BEEP
        LD      (MUZRET),A
        LD      A,$B0
        LD      (MUZRET+2),A
        LD      A,$C9
        LD      (MUZRET+5),A
        LD      HL,SUBTAB
        LD      (SUBV1),HL
        LD      HL,SUBTB2
        LD      (SUBV2),HL
        LD      DE,BONTOT
        CALL    DESET
        XOR     A
        LD      (INSTAT),A
HOME:   CALL    FIS
HEREIS: LD      A,100
        LD      (OXCONT),A
        LD      A,1
        LD      (INSTAT),A
        SYSSUK  RECTAN          ; UPI paint a RECTANgle
        DB      37              ; ... X
        DB      88              ; ... Y
        DB      102             ; ... Width
        DB      3               ; ... Height
        DB      $FF             ; ... Color
        ;
        SYSSUK  RECTAN          ; UPI paint a RECTANgle
        DB      38              ; ... X
        DB      89              ; ... Y
        DB      100             ; ... Width
        DB      1               ; ... Height
        DB      0               ; ... Color
        ;
        XOR     A
        LD      (INSTAT),A
        CALL    FPULL
HITIS:  CALL    FISHW
        XOR     A
        LD      (OXSTAT),A
        LD      A,(CPP)        ; GET CURRENT PLAYER PORT
        LD      C,A
        IN      A,(C)
        BIT     CHTRIG,A       ; IS TRIGGER PULLED?
        JR      Z,HITIS        ; NOPE, WAIT
        LD      A,(BOMAG)
        LD      E,A
        LD      A,(BOXH)
        BIT     6,E
        JR      Z,LOAD
        LD      E,A
        LD      A,138
        SUB     E
LOAD:   LD      E,A
        LD      D,10           ; Y START POSITION
        LD      HL,GAMLIM
        LD      (VECLIM),HL    ; SET VECTOR LIMIT TABLE
        LD      HL,$3000
        LD      (DIVER),HL
        XOR     A
        LD      (ANIMAT),A
        CALL    STADIV         ; START DIVER
TWATCH: CALL    MOVDIV
        LD      A,(VBMREG+VBSTAT)
        CP      1
        JP      Z,DRET
        LD      B,4
DITTO:  LD      A,B
        LD      HL,TTAB-2
        SYSTEM  INDEXW          ; UPI INDEX Word by A
        ;
        XOR     A
        SUB     E
        JR      Z,GONE
        LD      A,(DE)
        AND     A
        JR      NZ,GOTIT
GONE:   DJNZ    DITTO
        JR      TWATCH

GOTIT:  XOR     A
        LD      (HL),A
        LD      A,E
        SLA     A
        SLA     A
        LD      E,A
        LD      D,82
        LD      HL,L3700
        LD      A,1
        LD      (INSTAT),A
        LD      A,$20
        SYSTEM  WRITP           ; UPI WRITe with Pattern size
        ;
        LD      DE,DING
        CALL    DOBEEP
        XOR     A
        LD      (INSTAT),A
BWATCH: CALL    MOVDIV
        LD      A,(VBMREG+VBSTAT)
        CP      $FF
        JP      Z,BWATCH
        CP      1
        JP      Z,DRET
        LD      A,(BOMAG)
        BIT     6,A
        LD      A,(BOXH)
        JR      Z,NBFLOP
        LD      L,A
        LD      A,128
        SUB     L
NBFLOP: SRL     A
        SRL     A
        LD      L,A
        LD      H,0
        LD      DE,$4190
        ADD     HL,DE
        LD      B,8
NOHOME: LD      A,(HL)
        AND     A
        JR      NZ,BACK
        INC     HL
        DJNZ    NOHOME
        JR      BWATCH

BACK:   XOR     A
        LD      (OXSTAT),A
        LD      (VBMREG+VBSTAT),A
        LD      HL,(DIVER)
        LD      A,(VBMREG+VBYH)
        LD      D,A
        LD      A,(VBMREG+VBXH)
        LD      E,A
        LD      A,1
        LD      (INSTAT),A
        LD      A,(VBMREG)
        SYSTEM  WRITR           ; UPI WRITe RELATIVE
        ;
        XOR     A
        LD      (INSTAT),A
        LD      DE,HOMER
        CALL    DOBEEP
        LD      HL,LEVSCO       ; ADD TREASURE
        PUSH    IY
        POP     DE
        LD      B,3
        SYSTEM  BCDADD          ; UPI BCD ADDition
        ;
        CALL    ADDERO
        LD      A,(TCOUNT)
        INC     A
        LD      (TCOUNT),A
        CP      4
        JR      Z,EOB
        LD      B,120
HALT2:  HALT
        PUSH    BC
        CALL    FISHW
        POP     BC
        DJNZ    HALT2
        JP      HEREIS

EOB:    INC     (IY+4)
        CALL    ENDADD
        JP      RETURN          ; ADD SCORES, BONUS,...

MOVDIV: LD      A,(CPP)
        LD      C,A
        LD      A,2
        LD      (ANISPD),A
        IN      A,(C)
        LD      HL,$0100
        LD      (DELTA),HL
        BIT     4,A
        JR      Z,CONT
        LD      HL,(DELTA)
        ADD     HL,HL
        LD      (DELTA),HL
        PUSH    AF
        LD      A,1
        LD      (ANISPD),A
        POP     AF
CONT:   AND     $F              ; MASK OFF TRIGGER
        LD      (PIN),A         ; SAVE PLAYER INPUT
FISHW:  LD      A,(CMF)
        AND     A
        RET     Z
        LD      B,A
FISHER: LD      A,B
        DEC     A
        LD      HL,FISHVT
        SYSTEM  INDEXW          ; UPI INDEX Word by A
        ;
        PUSH    DE
        POP     IX
        BIT     VBSACT,(IX+VBSTAT)
        CALL    Z,SAFISH
        DJNZ    FISHER
        RET

FIS:    LD      A,(CMF)
        LD      B,A
X1:     LD      A,B
        DEC     A
        LD      HL,FISHVT
        SYSTEM  INDEXW          ; UPI INDEX Word by A
        ;
        PUSH    DE
        POP     IX
        SYSSUK  RANGED          ; UPI RANGED random number
        DB      80              ; ... Cutoff = 80
        ;
        LD      (IX+VBXH),A
        CALL    FIRST
        DJNZ    X1
        RET

SAFISH: LD      (IX+VBXH),0
FIRST:  LD      A,4            ; DETERMINE # OF FISH PATS
        ADD     A,(IY+VBDXH)
        CP      NUMFIS
        JP      M,NOLOAD
        LD      A,NUMFIS
NOLOAD: SYSTEM  RANGED          ; UPI RANGED random number
        ;
        LD      HL,FISHIN
        SYSTEM  INDEXW          ; UPI INDEX Word by A
        ;
        LD      A,(DE)
        LD      (IX+VBOAL),A
        INC     DE
        LD      A,(DE)
        LD      (IX+VBOAH),A
        INC     DE
        LD      A,(DE)
        LD      (IX+15),A
        INC     DE
        LD      A,(DE)
        LD      (IX+16),A
        INC     DE
        LD      A,(DE)
        LD      (IX+VBDXH),A
        XOR     A
        SYSTEM  RANGED          ; UPI RANGED random number
        ;
        BIT     7,A
        JR      Z,NOMAGF
        LD      (IX+VBMR),$60
        JR      MAGF

NOMAGF: LD      (IX+VBMR),$20
MAGF:   LD      (IX+VBXL),0
        LD      (IX+VBDYH),0
        LD      (IX+VBYL),0
        LD      A,225
        SYSTEM  RANGED          ; UPI RANGED random number
        ;
        ADD     A,30
        LD      (IX+VBDXL),A
        LD      A,225
        SYSTEM  RANGED          ; UPI RANGED random number
        ;
        ADD     A,30
        LD      (IX+VBDYL),A
        LD      A,30
        SYSTEM  RANGED          ; UPI RANGED random number
        ;
        ADD     A,25
        LD      (IX+VBYH),A
        LD      (IX+VBXCHK),1
        LD      (IX+VBYCHK),3
        LD      (IX+17),2
        LD      A,1
        LD      (INSTAT),A
        LD      H,(IX+VBOAH)
        LD      L,(IX+VBOAL)
        SYSTEM  VWRITR          ; UPI Vector WRITe Relative
        ;
        LD      (IX+VBSTAT),$80
        XOR     A
        LD      (INSTAT),A
        RET

INT1:   EX      AF,AF'
        OUT     (HORCB),A
        EXX
        CALL    STIMER          ; Seconds and music TIMER
        LD      A,140
        OUT     (INLIN),A       ; write INterrupt LINe
        LD      HL,INT2
        LD      (VECTOR),HL
        LD      A,(OXSTAT)
        AND     A
        JR      Z,TTSKIP
        LD      A,(CPP)
        LD      C,A
        IN      A,(C)
        LD      B,A
        BIT     CHTRIG,B
        JR      Z,B_2
        LD      B,3
        JR      TREPT

B_2:    LD      B,1
TREPT:  LD      A,(TIMER)
        DEC     A
        LD      (TIMER),A
        JR      NZ,TSKIP
        LD      A,20           ; OXYGEN TIMER
        LD      (TIMER),A
        LD      A,(OXCONT)
        DEC     A
        LD      (OXCONT),A
        JR      NZ,TSKIP
        XOR     A
        LD      (OXSTAT),A
        LD      DE,MDEAD
        CALL    DOBEEP
        LD      A,$FF
        LD      (VBMREG+VBSTAT),A
        JR      TTSKIP

TSKIP:  DJNZ    TREPT
TTSKIP: LD      DE,$598A
        LD      A,(INSTAT)
        AND     A
        JR      NZ,PSAFE
        LD      A,(OXCONT)
        LD      C,A
        LD      A,100
        SUB     C
        LD      C,A
        LD      B,A
        LD      A,E
        SUB     B
        LD      E,A
        LD      A,$AA
        LD      B,1
        SYSTEM  RECTAN          ; UPI paint a RECTANgle
        ;
PSAFE:  EXX
        LD      A,$C0
        EX      AF,AF'
        EI
        RET

DUMMY:  EXX
        EX      AF,AF'
        CALL    STIMER          ; Seconds and music TIMER
        CALL    MUSIC           ; do Check MR/MS for Off/On
        LD      A,(CPP)
        LD      C,A
        IN      A,(C)
        BIT     CHTRIG,A
        JP      NZ,CONTNU
        EX      AF,AF'
        EXX
        EI
        RET

MUINT:  EXX
        EX      AF,AF'
        CALL    STIMER          ; Seconds and music TIMER
        CALL    MUSIC           ; do Check MR/MS for Off/On
        EX      AF,AF'
        EXX
        EI
        RET

INT2:   EX      AF,AF'
        OUT     (HORCB),A
        EXX
        PUSH    IX
        PUSH    IY
        LD      A,(INSTAT)
        AND     A
        JR      NZ,MAGIC1
        LD      IY,(IYSAVE)
; [read SUBroutine TABle (or TaB 2) for JumP address]
        LD      A,(COUNT)
        INC     A
        CP      6
        JR      NZ,STORE
        XOR     A
STORE:  LD      (COUNT),A
        LD      HL,(SUBV1)
        LD      E,A
        LD      D,0
        SLA     E               ; [plus COUNT as a word x 2]
        RL      D
        ADD     HL,DE
        LD      E,(HL)
        INC     HL
        LD      D,(HL)
        LD      HL,MAGIC1
        PUSH    HL
        EX      DE,HL
        JP      (HL)

MAGIC1: LD      A,19
        OUT     (INLIN),A       ; write INterrupt LINe
        LD      HL,INT1
        LD      (VECTOR),HL
        POP     IY
        POP     IX
        EXX
        XOR     A
        EX      AF,AF'
        EI
        RET

STADIV: LD      A,E
        LD      (VBMREG+VBXH),A
        LD      A,D
        LD      (VBMREG+VBYH),A
        XOR     A
        LD      (VBMREG+VBXL),A
        LD      (VBMREG+VBYL),A
        INC     A
        LD      (VBMREG+VBXCHK),A
        LD      (VBMREG+VBYCHK),A
        LD      A,$80
        LD      (VBMREG+VBSTAT),A
        LD      A,1
        LD      (INSTAT),A
        LD      A,$20
        LD      (VBMREG),A
        LD      HL,(DIVER)
        SYSTEM  WRITR           ; UPI WRITe RELATIVE
        ;
        XOR     A
        LD      (INSTAT),A
        LD      A,1
        LD      (OXSTAT),A
        LD      A,25
        LD      (TIMER),A
        LD      A,(ANISPD)
        CP      10
        RET     Z
        LD      A,1
        LD      (INSTAT),A
        SYSSUK  RECTAN          ; UPI paint a RECTANgle
        DB      37              ; ... X = 37
        DB      88              ; ... Y = 88
        DB      102             ; ... Width = 102
        DB      3               ; ... Height = 3
        DB      255             ; ... Color = 255
        ;
        SYSSUK  RECTAN          ; UPI paint a RECTANgle
        DB      38              ; ... X = 38
        DB      89              ; ... Y = 89
        DB      100             ; ... Width = 100
        DB      1               ; ... Height = 1
        DB      0               ; ... Color = 0
        ;
        XOR     A
        LD      (INSTAT),A
        RET

ATTOP:  LD    A,1
        LD    (VBMREG+VBSTAT),A
        DEC   (IY+3)
        RET

DDRTN:  LD      HL,DEADPT       ; Address of Dead Diver Pattern
        LD      (DIVER),HL      ; Current Diver is Dead Diver
        LD      HL,GAMLIM       ; Limit Table Address for VECT
        LD      DE,$0000
        LD      (VBMREG+VBDXL),DE
        LD      DE,$FF00
        LD      (VBMREG+VBDYL),DE
        LD      A,1
        LD      (VBMREG+VBTIMB),A
        SYSTEM  VECT            ; UPI VECTor move coordinate
        ;
        LD      HL,(DIVER)      ; Pattern Address of Diver
        SYSTEM  VWRITR          ; UPI Vector WRITe Relative
        ;
        LD      A,(VBMREG+VBYCHK)
        BIT     VBCLAT,A
        JR      NZ,ATTOP
        RET

DVRRTN: LD      A,(VBMREG+VBSTAT)
        CP      1
        RET     Z
        BIT     VBSACT,A
        RET     Z
        LD      HL,(DIVER)      ; Diver Pattern Address
        LD      IX,VBMREG       ; Diver Vector Address
        SYSTEM  VWRITR          ; UPI Vector WRITe Relative
        ;
        LD      A,(VBMREG+VBSTAT)
        CP      $FF
        JR      Z,DDRTN         ; If Diver is dead, then Jump
        LD      A,(PIN)
        AND     A
        JP      Z,MOVED
        LD      A,(ANISPD)
        LD      B,A
        LD      A,(ANIMAT)
        INC     A
        CP      B
        LD      (ANIMAT),A
        JP      M,MOVED
        XOR     A
        LD      (ANIMAT),A
        LD      A,(DINDEX)
        INC     A
        CP      DMAX
        LD      (DINDEX),A
        JP      M,NDPATT
        XOR     A
        LD      (DINDEX),A
NDPATT: LD      HL,DPTAB
        SYSTEM  INDEXW          ; UPI INDEX Word by A
        ;
        LD      (DIVER),DE
MOVED:  LD      A,(PIN)
        LD      B,A
        LD      A,(VBMREG)
        BIT     2,B
        JR      NZ,LEFT
        BIT     3,B
        JR      NZ,RIGHT
        JR      SKIP

LEFT:   BIT     6,A
        JR      NZ,SKIP
        LD      A,$60
        JR      FLIP

RIGHT:  BIT     6,A
        JR      Z,SKIP
        LD      A,$20
FLIP:   LD      (VBMREG),A
        LD      A,(VBMREG+VBXH)
        LD      E,A
        LD      A,$87
        SUB     E
        LD      ($4FA9),A
SKIP:   LD      A,(VBMREG)
        LD      C,A
        LD      HL,(DELTA)
        LD      DE,(DELTA)
        SYSTEM  MSKTD           ; UPI MaSK joystick in B To Deltas
        ;
        LD      (VBMREG+VBDXL),DE
        LD      DE,FLOAT
        CCF
        SBC     HL,DE
        LD      (VBMREG+VBDYL),HL
        LD      A,$01
        LD      (VBMREG+VBTIMB),A
        LD      HL,(VECLIM)
        SYSTEM  VECT            ; UPI VECTor move coordinate
        ;
        IN      A,(INTST)       ; Port $8, Clear INTercept STatus
        LD      HL,(DIVER)
        SYSTEM  VWRITR          ; UPI Vector WRITe Relative
        ;
        IN      A,(INTST)       ; Port $8, Check INTercept STatus
        AND     A
        JR      Z,NDEAD
        LD      DE,$3F75
        CALL    DOBEEP
        LD      A,$FF
        LD      (VBMREG+VBSTAT),A
        XOR     A
        LD      (OXSTAT),A
NDEAD:  RET

BOMOV:  SYSSUK  VWRITR          ; UPI Vector WRITe Relative
        DW      BOMAG
        DW      L3706           ; BOAT PATTERN
        ;
        LD      A,(BOXCK)
        BIT     VBCLAT,A
        JR      Z,MBO
        LD      A,1
        LD      (BOXCK),A
        LD      A,(BOMAG)
        XOR     $40
        LD      (BOMAG),A
        LD      A,(BOXH)
        LD      E,A
        LD      A,124
        SUB     E
        LD      (BOXH),A
MBO:    LD      A,1
        LD      (BOTIME),A
        SYSSUK  VECT            ; UPI VECTor move coordinate
        DW      BOMAG
        DW      BOLIM
        ;
        SYSSUK  VWRITR          ; UPI Vector WRITe Relative
        DW      BOMAG
        DW      L3706           ; BOAT PATTERN
        ;
        RET

OCT:    LD      IX,OMAG
        LD      HL,(OCTPAT)
        SYSTEM  VWRITR          ; UPI Vector WRITe Relative
        ;
        XOR     A
        SYSTEM  RANGED          ; UPI RANGED random number
        ;
        LD      (ODXL),A
        LD      A,1
        LD      (OTIME),A
        SYSSUK  VECT            ; UPI VECTor move coordinate
        DW      OMAG
        DW      OLIM
        ;
        LD      HL,OCTANI
        DEC     (HL)
        JR      NZ,OCTSKP
        LD      (HL),3
        LD      HL,(OCT3)
        LD      DE,(OCT2)
        LD      (OCT3),DE
        LD      DE,(OCTPAT)
        LD      (OCT2),DE
        LD      (OCTPAT),HL
OCTSKP: LD      HL,(OCTPAT)
        SYSTEM  VWRITR          ; UPI Vector WRITe Relative
        ;
        LD      HL,(SUBV1)
        LD      DE,(SUBV2)
        LD      (SUBV1),DE
        LD      (SUBV2),HL
        RET

; [Draws ALL patterns in the table] routine
NEXPAT: LD      A,(BC)
        LD      E,A
        INC     BC
        LD      A,(BC)
        LD      D,A
        INC     BC
        LD      A,(BC)
        LD      L,A
        INC     BC
        LD      A,(BC)
        LD      H,A
        INC     BC
        LD      A,$FF
        CP      E               ; [End of Table?]
        JR      Z,OUT1
        LD      A,$10           ; [MR for OR write]
        SYSTEM  WRITP           ; UPI WRITe with Pattern size lookup
        ;
        JR      NEXPAT

OUT1:   RET

ERASE:  LD      BC,CLEAN
UERASE: LD      HL,$4000
        LD      DE,$4001
        LD      (HL),L
        LDIR
        RET

AFISH:  BIT     VBSACT,(IX+VBSTAT)
        RET     Z
        LD      H,(IX+VBOAH)
        LD      L,(IX+VBOAL)
        SYSTEM  VWRITR          ; UPI Vector WRITe Relative
        ;
        LD      HL,FISLIM
        LD      (IX+VBTIMB),1
        SYSTEM  VECT            ; UPI VECTor move coordinate pair
        ;
        BIT     VBCLAT,(IX+VBXCHK)
        JR      Z,ANIM
        LD      (IX+VBSTAT),0
        RET

ANIM:   DEC     (IX+17)
        JR      NZ,NOSWAP
        LD      (IX+17),2
        LD      E,(IX+VBOAL)
        LD      D,(IX+VBOAH)
        LD      L,(IX+15)
        LD      H,(IX+16)
        LD      (IX+VBOAL),L
        LD      (IX+VBOAH),H
        LD      (IX+15),E
        LD      (IX+16),D
NOSWAP: LD      H,(IX+VBOAH)
        LD      L,(IX+VBOAL)
L286E:  SYSTEM  VWRITR          ; UPI Vector WRITe Relative
        ;
        RET

FISH1:  LD      IX,VECT1
        JR      PHONE

FISH2:  LD      IX,VECT2
        JR      PHONE

FISH3:  LD      IX,VECT3
        JR      PHONE

FISH4:  LD      IX,VECT4
        JR      PHONE

FISH5:  LD      IX,VECT5
        JR      PHONE

FISH6:  LD      IX,VECT6
PHONE:  CALL    AFISH
        EI
        RET

INTSET: DI
        LD      (VECTOR),HL
        LD      HL,VECTOR
        LD      A,H
        LD      I,A             ; High byte of Interrupt Vector
        LD      A,L
        OUT     (INFBK),A       ; Port $D, write INterrupt FeedBacK
        EI
        RET

GAMEND: LD      HL,MUINT
        CALL    INTSET
        LD      A,$2C
        OUT     (HORCB),A       ;  HORizontal Color Boundary = 44 bytes
        DI
        SYSSUK  STRDIS          ; UPI STRing DISplay
        DB      32              ; ... X
        DB      25              ; ... Y = 25
        DB      $04             ; ... Options = 4
        DW      GAMOVR          ; ... String Address of "FAREWELL"
        ;
        LD      L,0
        LD      (IYSAVE),HL
        CALL    SCODIS
        EI
RESET:  IN      A,(SW0)         ; read SWitch bank 0 for player 1 hand control
        BIT     4,A
        JR      Z,RESET
        RST     $00             ; System ReSeT
FPULL:  CALL    FISHW
PULLED: LD      A,(CPP)
        LD      C,A
        IN      A,(C)
        BIT     CHTRIG,A
        JR      NZ,FPULL        ; In the preliminary source this jumped to PULLED
        RET

SCODIS: LD      A,($4F57)
        CP      $04
        JR      NZ,L28F3
        SYSSUK  RECTAN          ; UPI paint a RECTANgle
        DB      0               ; ... X
        DB      5               ; ... Y
        Db      160             ; ... Width = 160
        DB      11              ; ... Height
        DB      $FF             ; ... Color
        ;
        SYSSUK  RECTAN          ; UPI paint a RECTANgle
        DB      1               ; ... X
        DB      6               ; ... Y
        DB      158             ; ... Width
        DB      9               ; ... Height
        DB      $00             ; ... Color
        ;
        SYSSUK  STRDIS          ; UPI STRing DISplay
        DB      5               ; ... X
        DB      7               ; ... Y
        DB      $0C             ; ... Options
        DW      L3F0D           ; ... String Address of "*TOURNAMENT LEVEL*"
        ;
L28F3:  SYSSUK  STRDIS          ; UPI STRing DISplay
        DB      32              ; ... X
        DB      39              ; ... Y
        DB      $0C             ; ... Options
        DW      SCODIV          ; ... String Address of "SCORE"
        ;
        SYSSUK  WRITR           ; UPI WRITe RELATIVE
        DB      86              ; ... X
        DB      39              ; ... Y
        DB      $20             ; ... Magic Register
        DW      $3000           ; ... Pattern Address of Diver
        ;
        LD      A,(IYSAVE)
        AND     A
        JR      NZ,NOEND
        LD      HL,$3D76        ; [pattern-2 for 0,0 displacement ??]
        JR      CHEST

NOEND:  LD      A,(IY+$04)
        DEC     A
        CP      $1F
        JP      M,L2919
        LD      A,$19
        JR      MAXED

L2919:  CP      $10
        JP      M,MAXED
        SUB     $05
MAXED   LD      HL,FISHIN
        SYSTEM  INDEXW          ; UPI INDEX Word by A
        ;
        LD      A,(DE)
        LD      L,A
        INC     DE
        LD      A,(DE)
        LD      H,A
CHEST:  LD      A,$20           ; [X-OR write]
        LD      DE,$207E        ; [X=126, Y=32 ??]
        SYSTEM  WRITR           ; UPI WRITe RELATIVE
        ;
        XOR     A
NEXNUM: LD      HL,PLATAB
        SYSTEM  INDEXW          ; UPI INDEX Word by A
        ;
        EX      DE,HL
        PUSH    AF
        LD      D,A
        SLA     D
        SLA     D
        SLA     D
        LD      A,48
        ADD     A,D
        LD      D,A
        POP     AF
        LD      E,$20
        LD      BC,$8608
        SYSTEM  DISNUM          ; UPI DISplay NUMber
        ;
        LD      E,$63
        LD      B,$01
        INC     HL
        INC     HL
        INC     HL
        SYSTEM  DISNUM          ; UPI DISplay NUMber
        ;
        LD      E,126
        INC     HL
        PUSH    AF
        LD      A,(HL)
        AND     $F0
        LD      B,A
        LD      A,(HL)
        DEC     A
        AND     $F0
        CP      B
        JR      Z,SAME
        LD      A,(HL)
        ADD     A,6
        LD      (HL),A
SAME:   LD      A,(HL)
        LD      HL,CONVRT
        ADD     A,0
        DAA
        LD      (HL),A
        POP     AF
        LD      B,$82
        SYSTEM  DISNUM          ; UPI DISplay NUMber
        ;
        LD      C,12
        PUSH    AF
        LD      E,20
        ADD     A,$31
        SYSTEM  CHRDIS          ; UPI CHaRacter DISplay
        ;
        LD      A,(NUMPLA)
        LD      B,A
        POP     AF
        INC     A
        CP      B
        JP      NZ,NEXNUM
        RET

ADDERL: LD      B,(IY+$04)
        LD      DE,LEVSCO
        CALL    DESET
        LD      HL,HUND
ADD1:   PUSH    BC
        LD      B,$03
        SYSTEM  BCDADD          ; UPI BCD ADDition
        ;
        POP     BC
        DJNZ    ADD1
        RET

ADDERO: LD      A,(OXCONT)
        LD      B,A
        LD      DE,BONTOT
        LD      HL,ONEP
ADD2:   PUSH    BC
        LD      B,$03
        SYSTEM  BCDADD          ; UPI BCD ADDition
        ;
        POP     BC
        DJNZ    ADD2
        RET

ENDADD: PUSH    IY
        POP     DE
        LD      HL,BONTOT
        LD      B,$03
        SYSTEM  BCDADD          ; UPI BCD ADDition
        ;
        RET

DESET:  XOR     A
        LD      (DE),A
        INC     DE
        LD      (DE),A
        INC     DE
        LD      (DE),A
        DEC     DE
        DEC     DE
        RET

DOBEEP: DI
        PUSH    DE
        LD      A,($4FD4)       ; Voices
        LD      (MUZRET+1),A
        LD      HL,($4FD2)      ; Volumes
        LD      ($4F5B),HL
        LD      DE,($4FCE)      ; MUZPC
        LD      HL,($4FD0)      ; MUZSP
        DEC     HL
        LD      (HL),D
        DEC     HL
        LD      (HL),E
        POP     DE
        LD      ($4FCE),DE      ; MUZPC
        LD      ($4FD0),HL      ; MUZSP
        EI
        RET

; scan keypad MR to Stop, or MS to Start MUSIC
MUSIC:  IN      A,(KEY3)        ; KEYboard column 3 (left side)
        BIT     1,A             ; [is 'MR' key un-pressed?]
        JR      Z,STARTM
        SYSSUK  BMUSIC          ; UPI Begin playing MUSIC
        DW      MSTACK          ; ... Music Stack
        DB      $FC             ; ... Setup Voices, Use Tone A, B and C
        DW      L327A           ; ... Music Score Address for SILENCE
        ;
        RET

; START background Music [if desired]
STARTM: IN      A,(KEY2)        ; KEYboard column 2 (center left)
        BIT     1,A             ; [is 'MS' key un-pressed?]
        RET     Z
        SYSSUK  BMUSIC          ; UPI Begin playing MUSIC
        DW      MSTACK          ; ... Music Stack
        DB      $FC             ; ... Setup Voices, Use Tone A, B and C
        DW      L2C54           ; ... Music Score Address for BACKGROUND
        ;
        RET

DESIGN: DB      "DESIGNED BY:                              "
        DB      "BRETT BILBREY       MARION NALEPA       MICHAEL TOTH",0

TOPCOL: DB      $F8
        DB      $F7
        DB      $77
        DB      GREEN
        DB      $F8
        DB      $77
        DB      $F7
        DB      GREEN

; ?? [not used ??]
L2A6A:  DB      $00
        DB      $96
        DB      $74
        DB      $CC

; Color Table
TITCOL: DB      248
        DB      154
        DB      116
        DB      163
        DB      248
        DB      119
        DB      116
        DB      163

PSCOL:  DB      248
        DB      0
        DB      247
        DB      163

BANDW:  DB      $77             ; Color Table for COLSET
        DB      $00
        DB      $07
        DB      $F2

PLATAB: DW      PLAY1
        DW      PLAY2
        DW      PLAY3
        DW      PLAY4

FISHVT: DW      VECT1
        DW      VECT2
        DW      VECT3
        DW      VECT4
        DW      VECT5
        DW      VECT6

FISHIN: DW      L2AC6           ; F1
        DW      L2ACB           ; F2
        DW      L2AD0           ; F3
        DW      L2AD5           ; F4
        DW      L2ADA           ; F5
        DW      L2ADF           ; F6
        DW      L2AE4           ; F7
        DW      L2AE9           ; F8
        DW      L2AEE           ; F9
        DW      L2AF3           ; F10
        DW      L2AF8           ; F11
        DW      L2AFD           ; F12
        DW      L2B02           ; F13
        DW      L2B07           ; F14
        DW      L2B0C           ; F15
        DW      L2B11           ; F16
        DW      L2B16           ; F17
        DW      L2B1B           ; F18
        DW      L2B20           ; F19
        DW      L2B25           ; F20
        DW      L2B2A           ; F21
        DW      L2B2F           ; F22
        DW      L2B34           ; F23
        DW      L2B39           ; F24
        DW      L2B3E           ; F25
        DW      L2B43           ; F26

L2AC6:  DW      L3200           ; Black Fishie Pattern
        DW      L31D4           ; Black Fishie Pattern, Alt
        DB      $03

L2ACB:  DW      L3A6E           ; Nosefish Pattern
        DW      L3A92           ; Nosefish Pattern, Alt
        DB      $02

L2AD0:  DW      L3E4D           ; Turtle Pattern
        DW      $3E74           ; Turtle Pattern, Alt
        DB      1

L2AD5:  DW      L3E9B           ; Snark Pattern
        DW      L3EA5           ; Snark Pattern, Alt
        DB      3

L2ADA:  DW      L3210           ; Yellow Anim ??
        DW      L3EAF           ; Yellow Anim, Alt ??
        DB      2

L2ADF:  DW      L3DDC           ; Seahorse Pattern
        DW      L3E13           ; Seahorse Pattern, Alt
        DB      3

L2AE4:  DW      L3220           ; Generic Fish 1
        DW      L31C4           ; Generic Fish 1, Alt
        DB      2

L2AE9:  DW      L3230           ; Spiderfish Pattern
        DW      L3255           ; Spiderfish Pattern, Alt
        DB      2

L2AEE:  DW      L37AE           ; Shark Pattern
        DW      L3BF4           ; Shark Pattern, Alt
        DB      2

L2AF3:  DW      L3B2C           ; Swordfish Pattern
        DW      L3B90           ; Swordfish Pattern, Alt
        DB      2

L2AF8:  DW      L31E4           ; Goldfish Pattern
        DW      L31F2           ; Goldfish Pattern, Alt
        DB      2

L2AFD:  DW      L36B9           ; Eel Pattern
        DW      L36D1           ; Eel Pattern, Alt
        DB      3

L2B02:  DW      L3980           ; Clam Pattern
        DW      L3972           ; Clam Pattern, Alt
        DB      2

L2B07:  DW      L390E           ; Party Sub
        DW      L39E3           ; Party Sub Pattern, Alt
        DB      1

L2B0C:  DW      L3C5B           ; Sailfish
        DW      L3CBA           ; Sailfish, Alt
        DB      2

L2B11:  DW      L3D12           ; Squid Pattern
        DW      L3280           ; Squid Pattern, Alt
        DB      2

L2B16:  DW      L3EBF           ; Generic Fish Pattern 2
        DW      L3ED3           ; Generic Fish Pattern 2, Alt
        DB      4

L2B1B:  DW      L3EAF           ; Yellow Anim, Alt ??
        DW      L3210           ; Yellow Anim ??
        DB      3

L2B20:  DW      L3A47           ; Crab Pattern
        DW      L3A57           ; Crab Pattern, Alt
        DB      3

L2B25:  DW      L3E13           ; Seahorse Pattern, Alt
        DW      L3DDC           ; Seahorse Pattern
        DB      5

L2B2A:  DW      L39E3           ; Party Sub Pattern, Alt
        DW      L390E           ; Party Sub
        DB      5

L2B2F:  DW      L3280           ; Squid Pattern, Alt
        DW      L3D12           ; Squid Pattern
        DB      5

L2B34:  DW      L3B90           ; Swordfish Pattern, Alt
        DW      L3B2C           ; Swordfish Pattern
        DB      5

L2B39:  DW      L3CBA           ; Sailfish, Alt
        DW      L3C5B           ; Sailfish
        DB      6

L2B3E:  DW      L3BF4           ; Shark Pattern, Alt
        DW      L37AE           ; Shark Pattern
        DB      6

L2B43:  DW      L3999           ; Octopus Pattern
        DW      L3764           ; Octopus Pattern, Alt
        DB      5

HUND:   DB      0
ONEP:   DB      1
        DB      0
        DB      0

TITLIM: DB      100
        DB      130
        DB      30
        DB      45

GAMLIM: DB      0
        DB      130
        DB      10
        DB      74

BOLIM:  DB      0
        DB      124
TITIES: DB      0
        DB      30
        DB      30
        DB      45

OLIM:   DB      20
        DB      120
        DB      64
        DB      66

FISLIM: DB      0
        DB      125
        DB      12
        DB      55

SUBTAB: DW      DVRRTN
        DW      BOMOV
        DW      OCT
        DW      FISH1
        DW      FISH2
        DW      FISH3

SUBTB2: DW      DVRRTN
        DW      BOMOV
        DW      OCT
        DW      FISH4
        DW      FISH5
        DW      FISH6

DPTAB:  DW      L3000           ; Diver Pattern (Animation Frame 1)
        DW      L302E           ; Diver Pattern (Animation Frame 2)
        DW      L305C           ; Diver Pattern (Animation Frame 3)
        DW      L308A           ; Diver Pattern (Animation Frame 4)
        DW      L30B8           ; Diver Pattern (Animation Frame 5)
        DW      L30E6           ; Diver Pattern (Animation Frame 6)
        DW      L310E           ; Diver Pattern (Animation Frame 7)
        DW      L313C           ; Diver Pattern (Animation Frame 8)
        DW      L3164           ; Diver Pattern (Animation Frame 9)
        DW      L3192           ; Diver Pattern (Animation Frame 10)

; PATern TABle [list of X, Y, and Pattern Addresses to Draw with NEXPAT]
PATTAB: DB      17              ; X=
        DB      30              ; Y=
        DW      L3BF6           ; Shark Pattern
        DB      72
        DB      84
        DW      L3DAE           ; Anchor Pattern
        DB      105
        DB      74
        DW      L3D78           ; Chest Pattern
        DB      0
        DB      70
        DW      L3212           ; Fish Pattern
        DB      10
        DB      10
        DW      L3212           ; Fish Pattern
        DB      121
        DB      70
        DW      L3212           ; Fish Pattern
        DB      111
        DB      66
        DW      L3202           ; Fish Pattern (Black ??)
        DB      77
        DB      64
        DW      L3212           ; Fish Pattern
        DB      154
        DB      47
        DW      L3212           ; Fish Pattern
        DB      67
        DB      55
        DW      $3202           ; Fish Pattern (Black ??)
        DB      87
        DB      36
        DW      L3212           ; Fish Pattern
        DB      25
        DB      15
        DW      L3212           ; Fish Pattern
        DB      60
        DB      40
        DW      L3910           ; Sub Pattern
        DB      100
        DB      90
        DW      L3700           ; Treasure Pattern
        DB      33
        DB      89
        DW      L3700           ; Treasure Pattern
        DB      44
        DB      87
        DW      L3700           ; Treasure Pattern
        DB      0
        DB      43
        DW      L3300           ; Start of Ship
        DB      4
        DB      79
        DW      L332A           ; Pattern
        DB      8
        DB      38
        DW      L3330           ; Pattern
        DB      16
        DB      40
        DW      L3396           ; Pattern
        DB      51
        DB      23
        DW      L3428           ; Pattern
        DB      55
        DB      27
        DW      L342F           ; Pattern
        DB      59
        DB      31
        DW      L3436           ; Pattern
        DB      63
        DB      23
        DW      L3441           ; Pattern
        DB      68
        DB      40
        DW      L3465           ; Pattern
        DB      60
        DB      40
        DW      L346C           ; Pattern
        DB      72
        DB      44
        DW      L3480           ; Pattern
        DB      76
        DB      48
        DW      L3487           ; Pattern
        DB      80
        DB      52
        DW      L348E           ; Pattern
        DB      48
        DB      56
        DW      L3495           ; Pattern
        DB      60
        DB      59
        DW      L349A           ; Pattern
        DB      68
        DB      64
        DW      L34D2           ; Pattern
        DB      76
        DB      69
        DW      L3500           ; Pattern
        DB      84
        DB      72
        DW      L351C           ; Pattern
        DB      92
        DB      64
        DW      L3538           ; Pattern
        DB      96
        DB      59
        DW      L354F           ; Pattern
        DB      100
        DB      61
        DW      L3560           ; Pattern
        DB      28
        DB      43
        DW      L3567           ; Pattern
        DB      36
        DB      45
        DW      L35B9           ; Pattern
        DB      52
        DB      40
        DW      L360D           ; Pattern
        DB      44
        DB      47
        DW      L3669           ; Pattern
        DB      133
        DB      69
        DW      L3766           ; Octopus Pattern

; in-Game Patern TABle [continues list of X, Y, and Pattern Addresses]
GPTAB:  DB      0
        DB      81
        DW      L3825           ; Start of Ground
        DB      15
        DB      86
        DW      L383C           ; Pattern (Ground, 2x2)
        DB      25
        DB      81
        DW      L3886           ; Pattern (Ground, 5x5)
        DB      49
        DB      84
        DW      L38A1           ; Pattern (Ground, 3x2)
        DB      70
        DB      81
        DW      L38A9           ; Pattern (Ground, 11x5)
        DB      121
        DB      82
        DW      L38E2           ; Pattern (Ground, 5x4)
        DB      147
        DB      81
        DW      L38F8           ; Pattern (Ground, 4x5)
        DB      $FF             ; End of Pattern Table

        DB      $46             ; [leftover byte ??]

; BACKGROUND Music Score [called with Voices = $FC]
; ----------------------
L2C54:  MASTER  OA3             ; set TONMO to $23
        DB      $91             ; Non-standard, use PUSHN $02 !!
L2C57:                          ; [repeat twice]
        CALL    L2D17
        VOLUME  $05,$00         ; VA = 5, VB = 0, VC= 0
        ; Duration= TC= TB= TA=
        NOTE3   $0E, G8, G8, F1
        NOTE3   $0E, G8, G8, E1
        NOTE3   $0E, G8, G8, F1
        VOLUME  $56,$03         ; VA = 6, VB = 5, VC= 3
        NOTE3   $1C, B0, D1, G1
        VOLUME  $05,$00         ; VA = 5, VB = 0, VC= 0
        NOTE3   $0E, G8, G8, F1
        VOLUME  $56,$03         ; VA = 6, VB = 5, VC= 3
        NOTE3   $1C, G0, C1, E1
        VOLUME  $05,$00         ; VA = 5, VB = 0, VC= 0
        NOTE3   $0E, G8, G8, G1
        VOLUME  $56,$05         ; VA = 6, VB = 5, VC= 5
        NOTE3   $1C, E1, G1, C2
        NOTE3   $0E, E1, G1, C2
        VOLUME  $05,$00         ; VA = 5, VB = 0, VC= 0
        NOTE3   $0E, G8, G8, B1
        NOTE3   $0E, G8, G8, A1
        NOTE3   $0E, G8, G8, B1
        VOLUME  $56,$05         ; VA = 6, VB = 5, VC= 5
        NOTE3   $1C, D1,FS1, C2
        VOLUME  $05,$00         ; VA = 5, VB = 0, VC= 0
        NOTE3   $0E, G8, G8, A1
        LEGSTA                  ; Toggle to LEGato
        VOLUME  $67,$06         ; VA = 7, VB = 6, VC= 6
        NOTE3   $2B, G1, B1, D2
        LEGSTA                  ; Toggle to STAccato
        VOLUME  $66,$06         ; VA = 6, VB = 6, VC= 6
        NOTE3   $1C, G1, B1, D2
        REST    $18
        DSJNZ   L2C57
        ;
        CALL    L2D17
        VOLUME  $56,$05         ; VA = 6, VB = 5, VC= 5
        NOTE3   $0E, C1, F1, A1
        VOLUME  $05,$00         ; VA = 5, VB = 0, VC= 0
        NOTE3   $0E, G8, G8,GS1
        VOLUME  $56,$05         ; VA = 6, VB = 5, VC= 5
        NOTE3   $0E, C1, F1, A1
        NOTE3   $1C, D1, G1, B1
        NOTE3   $0E, D1, G1, B1
        NOTE3   $1C, E1, G1, C2
        NOTE3   $0E, E1, G1, C2
        NOTE3   $1F, F1, B1, D2
        NOTE3   $0F, F1, B1, D2
        NOTE3   $21, G1, C2, E2
        VOLUME  $05,$00         ; VA = 5, VB = 0, VC= 0
        NOTE3   $10, G8, G8, C2
        VOLUME  $56,$05         ; VA = 6, VB = 5, VC= 5
        NOTE3   $26, F1, B1, D2
        VOLUME  $05,$00         ; VA = 5, VB = 0, VC= 0
        NOTE3   $13, G8, G8, B1
        VOLUME  $56,$05         ; VA = 6, VB = 5, VC= 5
        NOTE3   $5B, E1, G1, C2
        REST    $60
        DB      $C1,$5F,$2D     ; MuzJP to L2D5F [should be a $C3]

L2D17:  VOLUME  $56,$05         ; VA = 6, VB = 5, VC= 5
        NOTE3   $2B, C1, E1, G1
        NOTE3   $2B, E1, G1, C2
        NOTE3   $2B, E1, G1, C2
        NOTE3   $2B, C1, E1, G1
        NOTE3   $0E, C1, F1, A1
        VOLUME  $05,$00         ; VA = 5, VB = 0, VC= 0
        NOTE3   $0E, G8, G8,GS1
        VOLUME  $56,$05         ; VA = 6, VB = 5, VC= 5
        NOTE3   $0E, C1, F1, A1
        NOTE3   $1C, F1, A1, C2
        VOLUME  $05,$00         ; VA = 5, VB = 0, VC= 0
        NOTE3   $0E, G8, G8, A1
        LEGSTA                  ; Toggle to LEGato
        VOLUME  $56,$05         ; VA = 6, VB = 5, VC= 5
        NOTE3   $2B, C1, E1, G1
        LEGSTA                  ; Toggle to STAccato
        NOTE3   $1C, C1, E1, G1
        VOLUME  $05,$00         ; VA = 5, VB = 0, VC= 0
        NOTE3   $0E, G8, G8, G1
        RET


; L2D5C: ?? NOT USED ??
        QUIET

; L2D5D: ?? filler ??
        DB    $00
        DB    $55

; MORE ?? Music Score [Voices still = $FC]
; ----------------------
L2D5F:  MASTER  OA3             ; set TONMO to $23
        DB      $91             ; Non-standard, use PUSHN $02 !!
L2D62:                          ; [repeat twice]
        CALL    L2E41
        NOTE3   $0F, A0, E1, C2
        NOTE3   $0F, A0, E1, A1
        NOTE3   $1E, A0, F1, D2
        NOTE3   $1E, A0, E1, A1
        REST    $18
        DSJNZ   L2D62
        ;
        DB      $91             ; Non-standard, use PUSHN $02 !!
 L2D7B:                         ; [repeat twice]
        NOTE3   $2D, C2, E2, C3
        NOTE3   $0F, C2, E2, C3
        LEGSTA                  ; Toggle to LEGato
        NOTE3   $0F, C2, E2, C3
        NOTE3   $0F, C2, E2,AS2
        NOTE3   $0F, C2, E2, A2
        NOTE3   $0F, C2, E2, G2
        NOTE3   $1E, F1, A1, F2
        NOTE3   $1E, C2, E2, C3
        LEGSTA                  ; Toggle to STAccato
        NOTE3   $3C, F1, C2, A2
        DSJNZ   L2D7B
        ;
        NOTE3   $1E, F2, A2, D3
        NOTE3   $0F, F2, A2, D3
        NOTE3   $0F, F2, A2, D3
        NOTE3   $1E, C2, E2, A2
        NOTE3   $1E, C2, E2, A2
        NOTE3   $1E, A2, D3, F3
        NOTE3   $0F, F2, A2, E3
        NOTE3   $0F, F2, A2, D3
        NOTE3   $1E, E2, A2, C3
        NOTE3   $1E, C2, E2, A2
        NOTE3   $1E, F2, A2, D3
        NOTE3   $1E, F2, A2, F3
        NOTE3   $0F, A2, C2, E3
        NOTE3   $07, A2, C2, F3
        NOTE3   $07, A2, C2, E3
        NOTE3   $1E, E2,GS2, D3
        NOTE3   $0F, A1, E2, C3
        NOTE3   $0F, A1, E2, A2
        NOTE3   $1E, A1, F2, D3
        NOTE3   $3C, A1, E2, A2
        CALL    L2E41
        NOTE3   $0F, A0, E1, C2
        NOTE3   $0F, A0, E1, A1
        NOTE3   $1E, A0, F1, D2
        NOTE3   $3C, A1, E2, A2
        VOLUME  $55,$05         ; VA = 5, VB = 5, VC= 5
        NOTE3   $0F, A1, E2, C3
        NOTE3   $0F, A1, E2, A2
        NOTE3   $1E, A1, F2, D3
        NOTE3   $3C, A2, E3, A3
        VOLUME  $44,$04         ; VA = 4, VB = 4, VC= 4
        NOTE3   $0F, A0, E1, C2
        NOTE3   $0F, A0, E1, A1
        NOTE3   $1E, A0, F1, D2
        NOTE3   $3C, A1, E2, A2
        NOTE3   $3C, A1, E2, A2
        VOLUME  $33,$03         ; VA = 3, VB = 3, VC= 3
        NOTE3   $3C, D2, F2, A2
        NOTE3   $78, A1, E2, A2
        REST    $60
        DB      $C1,$76,$2E     ; MuzJP to L2E76 - should be a $C3

L2E41:  DB      $91             ; Non-standard, use PUSHN $02 !!
L2E42:                          ; [repeat twice]
        VOLUME  $56,$05         ; VA = 6, VB = 5, VC= 5
        NOTE3   $0F, A0, E1, C2
        NOTE3   $0F, A0, E1, A1
        NOTE3   $1E, A0, F1, D2
        NOTE3   $1E, A0, E1, A1
        REST    $18
        DSJNZ   L2E42
        ;
        NOTE3   $1E, A0, E1, C2 ; [finish sub-routine]
        NOTE3   $1E, D1, A1, F2
        NOTE3   $0F, C1, A1, E2
        NOTE3   $07, C1, A1, F2
        NOTE3   $07, C1, A1, E2
        NOTE3   $1E, E1,GS1, D2
        RET

L2E73: ; ?? QUI[E]T ?? not used ??
        QUIET

; L2E74: block ??
        DB    $00
        DB    $05

;  ?? Chorus ?? muzJumP'ed to

L2E76:  MASTER  OA3             ; set TONMO to $23
        VOLUME  $55,$05         ; VA = 5, VB = 5, VC= 5
        NOTE3   $12, G2, E2, C2
        NOTE3   $12, G2, E2, C2
        VOLUME  $00,$05         ; VA = 0, VB = 0, VC= 5
        NOTE3   $12,FS2, G8, G8
        VOLUME  $55,$05         ; VA = 5, VB = 5, VC= 5
        NOTE3   $12, G2, E2, C2
        NOTE3   $12, E2, C2, G1
        VOLUME  $00,$05         ; VA = 0, VB = 0, VC= 5
        NOTE3   $12, C2, G8, G8
        VOLUME  $55,$05         ; VA = 5, VB = 5, VC= 5
        NOTE3   $12, E2, C2, G1
        NOTE3   $12, G2, E2, C2
        VOLUME  $00,$05         ; VA = 0, VB = 0, VC= 5
        NOTE3   $12,FS2, G8, G8
        VOLUME  $55,$05         ; VA = 5, VB = 5, VC= 5
        NOTE3   $12, G2, E2, C2
        NOTE3   $24, E2, C2, G1
        NOTE3   $09, E2, C2, G1
        NOTE3   $09, E2, C2, G1
        NOTE3   $36, G2, E2, C2
        NOTE3   $36, A2, E2, C2
        NOTE3   $1B, F2, D2, B1
        VOLUME  $00,$05         ; VA = 0, VB = 0, VC= 5
        NOTE3   $09, E2, G8, G8
        VOLUME  $55,$05         ; VA = 5, VB = 5, VC= 5
        NOTE3   $12, F2, D2, B1
        NOTE3   $24, D2, B1, F1
        NOTE3   $12, A2, F2, D2
        NOTE3   $1B, A2, F2, D2
        VOLUME  $00,$05         ; VA = 0, VB = 0, VC= 5
        NOTE3   $09, D2, G8, G8
        NOTE3   $12, D2, G8, G8
        VOLUME  $55,$05         ; VA = 5, VB = 5, VC= 5
        NOTE3   $12, F2, D2, B1
        VOLUME  $00,$05         ; VA = 0, VB = 0, VC= 5
        NOTE3   $12, E2, G8, G8
        VOLUME  $55,$05         ; VA = 5, VB = 5, VC= 5
        NOTE3   $12, D2, B1, F1
        NOTE3   $24, F2, D2, B1
        VOLUME  $00,$05         ; VA = 0, VB = 0, VC= 5
        NOTE3   $12, D2, G8, G8
        VOLUME  $55,$05         ; VA = 5, VB = 5, VC= 5
        NOTE3   $36, A2, F2, C2
        NOTE3   $09, G2, E2, C2
        NOTE3   $1B, G2, E2, C2
        NOTE3   $12, G2, E2, C2
        NOTE3   $24, G2, D2, B1
        NOTE3   $12, F2, D2, B1
        NOTE3   $1B, E2, B1, G1
        VOLUME  $00,$05         ; VA = 0, VB = 0, VC= 5
        NOTE3   $09, D2, G8, G8
        VOLUME  $55,$05         ; VA = 5, VB = 5, VC= 5
        NOTE3   $12, E2, B1, G1
        NOTE3   $24, C2, G1, E1
        NOTE3   $12, G2, E2, C2
        NOTE3   $12, G2, E2, C2
        NOTE3   $12, A2, E2, C2
        NOTE3   $12, G2, E2, C2
        NOTE3   $12, E2, C2, G1
        NOTE3   $12, C2, G1, E1
        NOTE3   $12, E2, C2, G1
        NOTE3   $12, G2, E2, C2
        NOTE3   $12,FS2, E2, C2
        NOTE3   $12, G2, E2, C2
        NOTE3   $24, E2, C2, G1
        NOTE3   $09, E2, C2, G1
        NOTE3   $09, E2, C2, G1
        NOTE3   $36, G2, E2, C2
        NOTE3   $36, A2, E2, C2
        NOTE3   $1B, F2, D2, B1
        VOLUME  $00,$05         ; VA = 0, VB = 0, VC= 5
        NOTE3   $09, E2, G8, G8
        VOLUME  $55,$05         ; VA = 5, VB = 5, VC= 5
        NOTE3   $12, F2, D2, B1
        NOTE3   $24, D2, B1, F1
        NOTE3   $12, A2, F2, D2
        NOTE3   $12, A2, F2, D2
        VOLUME  $00,$05         ; VA = 0, VB = 0, VC= 5
        NOTE3   $12, D2, G8, G8
        NOTE3   $12, E2, G8, G8
        VOLUME  $55,$05         ; VA = 5, VB = 5, VC= 5
        NOTE3   $12, F2, D2, B1
        NOTE3   $12, E2, C2, G1
        NOTE3   $12, D2, A1, F1
        NOTE3   $12, F2, D2, B1
        NOTE3   $12, E2, C2, G1
        NOTE3   $12, D2, B2, F2
        NOTE3   $36, A2, F2, D2
        NOTE3   $09, G2, E2, C2
        NOTE3   $1B, G2, E2, C2
        NOTE3   $12, G2, E2, C2
        NOTE3   $24, G2, D2, B1
        NOTE3   $12, F2, D2, B1
        NOTE3   $1B, E2, C2, G1
        VOLUME  $00,$05         ; VA = 0, VB = 0, VC= 5
        NOTE3   $09, D2, G8, G8
        VOLUME  $55,$05         ; VA = 5, VB = 5, VC= 5
        NOTE3   $12, E2, C2, G1
        NOTE3   $24, C2, G1, E1
        REST    $30
        REST    $30
        REST    $30
        REST    $30
        DB      $C1,$54,$2C     ; MuzJP to L2C54 - should be a $C3

; L2FFC: 4 junk bytes ??
        DB      $00
        DB      $4D
        DB      $4A
        DB      $4E

; Diver Pattern, Animation Frame 1 (24 Pixels Wide x 7 Pixels High)
; -----------------------------------------------------------------
;
; . . . . . 3 2 2 . . . . . 1 1 1 1 1 1 . . . 2 .
; . . . . 3 . . . 2 2 . . . 1 1 1 1 1 1 3 1 1 1 1
; . . . 3 . . . . . . 2 2 2 2 2 1 2 2 2 2 3 2 2 1
; . . . . 3 3 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 3 3 .
; . . . 3 . . . . . . . . . . . . . . . 2 . . . .
; . . . . . . . . . . . . . . . . . . . . 2 2 2 1
; . . . . . . . . . . . . . . . . . . . . . . . .
;
L3000:  DB    $0,0              ; X,Y Displacement
        DB    $6,7              ; X,Y Size
        DB    00000000B,00111010B,00000000B,00010101B,01010100B,00001000B
        DB    00000000B,11000000B,10100000B,00010101B,01010111B,01010101B
        DB    00000011B,00000000B,00001010B,10101001B,10101010B,11101001B
        DB    00000000B,11111010B,10101010B,10101001B,10101010B,10111100B
        DB    00000011B,00000000B,00000000B,00000000B,00000010B,00000000B
        DB    00000000B,00000000B,00000000B,00000000B,00000000B,10101001B
        DB    00000000B,00000000B,00000000B,00000000B,00000000B,00000000B

; Diver Pattern, Animation Frame 2 (24 Pixels Wide x 7 Pixels High)
; -----------------------------------------------------------------
;
; . . . 3 3 3 2 2 . . . . . 1 1 1 1 1 1 . . . 2 .
; . . . . . . . . 2 2 . . . 1 1 1 1 1 1 3 1 1 1 1
; . . . . . . . . . . 2 2 2 2 2 1 2 2 2 2 3 2 2 1
; . . . . . 3 2 2 2 . . . 2 2 2 1 2 2 2 2 2 3 3 .
; . . . . 3 . . . . 2 2 2 . . . . . . . 2 . . . .
; . . . 3 . . . . . . . . . . . . . . . . 2 . . .
; . . . . . . . . . . . . . . . . . . . . . 2 2 1
;
L302E:  DB    $0,0              ; X,Y Displacement
        DB    $6,7              ; X,Y Size
        DB    00000011B,11111010B,00000000B,00010101B,01010100B,00001000B
        DB    00000000B,00000000B,10100000B,00010101B,01010111B,01010101B
        DB    00000000B,00000000B,00001010B,10101001B,10101010B,11101001B
        DB    00000000B,00111010B,10000000B,10101001B,10101010B,10111100B
        DB    00000000B,11000000B,00101010B,00000000B,00000010B,00000000B
        DB    00000011B,00000000B,00000000B,00000000B,00000000B,10000000B
        DB    00000000B,00000000B,00000000B,00000000B,00000000B,00101001B

; Diver Pattern, Animation Frame 3 (24 Pixels Wide x 7 Pixels High)
; -----------------------------------------------------------------
;
; . . . . . . . . . . . . . 1 1 1 1 1 1 . . . 2 .
; . . . 3 3 3 2 2 2 . . . . 1 1 1 1 1 1 3 1 1 1 1
; . . . . . 3 2 2 2 2 2 2 2 2 2 1 2 2 2 2 3 2 2 1
; . . . . 3 . . . . 2 2 2 2 2 2 1 2 2 2 2 2 3 3 .
; . . . 3 . . . . . . . . . . . . . . . 2 . . . .
; . . . . . . . . . . . . . . . . . . . 2 . . . .
; . . . . . . . . . . . . . . . . . . . . 2 1 . .

L305C:  DB    $0,0              ; X,Y Displacement
        DB    $6,7              ; X,Y Size
        DB    $00,$00,$00,$15,$54,$08
        DB    $03,$FA,$80,$15,$57,$55
        DB    $00,$3A,$AA,$A9,$AA,$E9
        DB    $00,$C0,$2A,$A9,$AA,$BC
        DB    $03,$00,$00,$00,$02,$00
        DB    $00,$00,$00,$00,$02,$00
        DB    $00,$00,$00,$00,$00,$90

; Diver Pattern, Animation Frame 4 (24 Pixels Wide x 7 Pixels High)
; -----------------------------------------------------------------
; . . . . . . . . . . . . . 1 1 1 1 1 1 . . . 2 .
; . . . . . 3 2 2 . . . . . 1 1 1 1 1 1 3 1 1 1 1
; . . . . 3 . . . 2 2 2 2 2 2 2 1 2 2 2 2 3 2 2 1
; . . . 3 3 3 2 2 2 . . 2 2 2 2 1 2 2 2 2 2 3 3 .
; . . . . . . . . . . . . . . . . . . . 2 . . . .
; . . . . . . . . . . . . . . . . . . . 2 . . . .
; . . . . . . . . . . . . . . . . . . . 1 . . . .
;
L308A:  DB    $0,0              ; X,Y Displacement
        DB    $6,7              ; X,Y Size
        DB    $00,$00,$00,$15,$54,$08
        DB    $00,$3A,$00,$15,$57,$55
        DB    $00,$C0,$AA,$A9,$AA,$E9
        DB    $03,$FA,$82,$A9,$AA,$BC
        DB    $00,$00,$00,$00,$02,$00
        DB    $00,$00,$00,$00,$02,$00
        DB    $00,$00,$00,$00,$01,$00

; Diver Pattern, Animation Frame 5 (24 Pixels Wide x 7 Pixels High)
; -----------------------------------------------------------------
;
; . . . . . 3 2 2 . . . . . 1 1 1 1 1 1 . . . 2 .
; . . . . 3 . . . 2 2 . . . 1 1 1 1 1 1 3 1 1 1 1
; . . . 3 . . . . . . 2 2 2 2 2 1 2 2 2 2 3 2 2 1
; . . . . 3 3 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 3 3 .
; . . . 3 . . . . . . . . . . . . . . . 2 . . . .
; . . . . . . . . . . . . . . . . . . 2 . . . . .
; . . . . . . . . . . . . . . . . 1 2 . . . . . .
;
L30B8:  DB    $0,0              ; X,Y Displacement
        DB    $6,7              ; X,Y Size
        DB    $00,$3A,$00,$15,$54,$08
        DB    $00,$C0,$A0,$15,$57,$55
        DB    $03,$00,$0A,$A9,$AA,$E9
        DB    $00,$FA,$AA,$A9,$AA,$BC
        DB    $03,$00,$00,$00,$02,$00
        DB    $00,$00,$00,$00,$08,$00
        DB    $00,$00,$00,$00,$60,$00

; Diver Pattern, Animation Frame 6 (24 Pixels Wide x 6 Pixels High)
; -----------------------------------------------------------------
;
; . . . . . 3 2 2 . . . . . 1 1 1 1 1 1 . . . 2 .
; . . . . 3 . . . 2 2 . . . 1 1 1 1 1 1 3 1 1 1 1
; . . . 3 . . . . . . 2 2 2 2 2 1 2 2 2 2 3 2 2 1
; . . . . 3 3 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 3 3 .
; . . . 3 . . . . . . . . . . . . . . . 2 . . . .
; . . . . . . . . . . . . . . . 1 2 2 2 . . . . .
;
L30E6:  DB    $0,0              ; X,Y Displacement
        DB    $6,6              ; X,Y Size
        DB    $00,$3A,$00,$15,$54,$08
        DB    $00,$C0,$A0,$15,$57,$55
        DB    $03,$00,$0A,$A9,$AA,$E9
        DB    $00,$FA,$AA,$A9,$AA,$BC
        DB    $03,$00,$00,$00,$02,$00
        DB    $00,$00,$00,$01,$A8,$00

; Diver Pattern, Animation Frame 7 (24 Pixels Wide x 7 Pixels High)
; -----------------------------------------------------------------
;   This pattern ALSO contains a Color Table starting at $3131.
;   The color table is using all zeros to fill the eight
;   color registers.
;
; . . . 3 3 3 2 2 . . . . . 1 1 1 1 1 1 . . . 2 .
; . . . . . . . . 2 2 . . . 1 1 1 1 1 1 3 1 1 1 1
; . . . . . . . . . . 2 2 2 2 2 1 2 2 2 2 3 2 2 1
; . . . . . 3 2 2 2 . . . 2 2 2 1 2 2 2 2 2 3 3 .
; . . . . 3 . . . . 2 2 2 . . . . . 1 2 2 . . . .
; . . . 3 . . . . . . . . . . . . . . . . . . . .
; . . . . . . . . . . . . . . . . . . . . . . . .
;
L310E:  DB    $0,0              ; X,Y Displacement
        DB    $6,7              ; X,Y Size
        DB    $03,$FA,$00,$15,$54,$08
        DB    $00,$00,$A0,$15,$57,$55
        DB    $00,$00,$0A,$A9,$AA,$E9
        DB    $00,$3A,$80,$A9,$AA,$BC
        DB    $00,$C0,$2A,$00,$1A,$00
        DB    $03,$00,$00,$00,$00,$00
        DB    $00,$00,$00,$00,$00,$00

; Diver Pattern, Animation Frame 8 (24 Pixels Wide x 6 Pixels High)
; -----------------------------------------------------------------
; . . . . . . . . . . . . . 1 1 1 1 1 1 . . . 2 .
; . . . 3 3 3 2 2 2 . . . . 1 1 1 1 1 1 3 1 1 1 1
; . . . . . 3 2 2 2 2 2 2 2 2 2 1 2 2 2 2 3 2 2 1
; . . . . 3 . . . . 2 2 2 2 2 2 1 2 2 2 2 2 3 3 .
; . . . 3 . . . . . . . . . . . . . . . 1 . . . .
; . . . . . . . . . . . . . . . . . . . . . . . .
;
L313C:  DB    0,0               ; X,Y Displacement
        DB    6,6               ; X,Y Size
        DB    $00,$00,$00,$15,$54,$08
        DB    $03,$FA,$80,$15,$57,$55
        DB    $00,$3A,$AA,$A9,$AA,$E9
        DB    $00,$C0,$2A,$A9,$AA,$BC
        DB    $03,$00,$00,$00,$01,$00
        DB    $00,$00,$00,$00,$00,$00

; Diver Pattern, Animation Frame 9 (24 Pixels Wide x 7 Pixels High)
; -----------------------------------------------------------------
L3164:  DB    0,0               ; X,Y Displacement
        DB    6,7               ; X,Y Size
; . . . . . . . . . . . . . 1 1 1 1 1 1 . . . 2 .
; . . . . . 3 2 2 . . . . . 1 1 1 1 1 1 3 1 1 1 1
; . . . . 3 . . . 2 2 2 2 2 2 2 1 2 2 2 2 3 2 2 1
; . . . 3 3 3 2 2 2 . . 2 2 2 2 1 2 2 2 2 2 3 3 .
; . . . . . . . . . . . . . . . . . . . 2 2 1 . .
; . . . . . . . . . . . . . . . . . . . . . . . .
; . . . . . . . . . . . . . . . . . . . . . . . .
        DB    $00,$00,$00,$15,$54,$08
        DB    $00,$3A,$00,$15,$57,$55
        DB    $00,$C0,$AA,$A9,$AA,$E9
        DB    $03,$FA,$82,$A9,$AA,$BC
        DB    $00,$00,$00,$00,$02,$90
        DB    $00,$00,$00,$00,$00,$00
        DB    $00,$00,$00,$00,$00,$00

; Diver Pattern, Animation Frame 10 (24 Pixels Wide x 6 Pixels High)
; -----------------------------------------------------------------
;
; . . . . . 3 2 2 . . . . . 1 1 1 1 1 1 . . . 2 .
; . . . . 3 . . . 2 2 . . . 1 1 1 1 1 1 3 1 1 1 1
; . . . 3 . . . . . . 2 2 2 2 2 1 2 2 2 2 3 2 2 1
; . . . . 3 3 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 3 3 .
; . . . 3 . . . . . . . . . . . . . . . 2 2 2 2 1
; . . . . . . . . . . . . . . . . . . . . . . . .
; . . . . . . . . . . . . . . . . . . . . . . . .
;
L3192:  DB    0,0               ; X,Y Displacement
        DB    6,7               ; X,Y Size
        DB    $00,$3A,$00,$15,$54,$08
        DB    $00,$C0,$A0,$15,$57,$55
        DB    $03,$00,$0A,$A9,$AA,$E9
        DB    $00,$FA,$AA,$A9,$AA,$BC
        DB    $03,$00,$00,$00,$02,$A9
        DB    $00,$00,$00,$00,$00,$00
        DB    $00,$00,$00,$00,$00,$00

        DB    $00
        DB    $00
        DB    $00
        DB    $00

; Generic Fish 1 Pattern, Alt (8 Pixels Wide x 6 Pixels High)
; -----------------------------------------------------------
L31C4:  DB    13,0              ; X,Y Displacement
        DB    2,6               ; X,Y Size
        DB    $14,$00           ; . 1 1 . . . . .
        DB    $05,$00           ; . . 1 1 . . . .
        DB    $55,$40           ; 1 1 1 1 1 . . .
        DB    $15,$D0           ; . 1 1 1 3 1 . .
        DB    $41,$40           ; 1 . . 1 1 . . .
        DB    $01,$00           ; . . . 1 . . . .

; Black Fishie, Alt (8 Pixels Wide x 6 Pixels High)
; -------------------------------------------------
L31D4:  DB    13,0              ; X,Y Displacement
        DB    2,6               ; X,Y Size
        DB    $3C,$00           ; . 3 3 . . . . .
        DB    $0F,$00           ; . . 3 3 . . . .
        DB    $FF,$C0           ; 3 3 3 3 3 . . .
        DB    $3F,$30           ; . 3 3 3 . 3 . .
        DB    $C3,$C0           ; 3 . . 3 3 . . .
        DB    $03,$00           ; . . . 3 . . . .

; Goldfish Pattern (8 Pixels Wide x 5 Pixels High)
; ------------------------------------------------
L31E4:  DB    13,0              ; X,Y Displacement
        DB    2,5               ; X,Y Size
        DB    $04,$00           ; . . 1 . . . . .
        DB    $45,$00           ; 1 . 1 1 . . . .
        DB    $17,$40           ; . 1 1 3 1 . . .
        DB    $45,$00           ; 1 . 1 1 . . . .
        DB    $04,$00           ; . . 1 . . . . .

; Goldfish Pattern, Alt (8 Pixels Wide x 5 Pixels High)
; -----------------------------------------------------
L31F2:  DB    13,0              ; X,Y Displacement
        DB    2,5               ; X,Y Size
        DB    $44,$00           ; 1 . 1 . . . . .
        DB    $25,$00           ; . 2 1 1 . . . .
        DB    $17,$40           ; . 1 1 3 1 . . .
        DB    $25,$00           ; . 2 1 1 . . . .
        DB    $44,$00           ; 1 . 1 . . . . .

; Black Fishie (8 Pixels Wide x 6 Pixels High)
; --------------------------------------------
L3200:  DB    13,0              ; X,Y Displacement
L3202:  DB    2,6               ; X,Y Size
        DB    $0C,$00           ; . . 3 . . . . .
        DB    $CF,$00           ; 3 . 3 3 . . . .
        DB    $3F,$C0           ; . 3 3 3 3 . . .
        DB    $3F,$30           ; . 3 3 3 . 3 . .
        DB    $C3,$C0           ; 3 . . 3 3 . . .
        DB    $0F,$00           ; . . 3 3 . . . .

; Yellow Anim ?? Pattern (8 Pixels Wide x 6 Pixels High)
; ------------------------------------------------------
L3210:  DB    13,0              ; X,Y Displacement
L3212:  DB    2,6               ; X,Y Size
        DB    $08,$00           ; . . 2 . . . . .
        DB    $8A,$00           ; 2 . 2 2 . . . .
        DB    $2A,$80           ; . 2 2 2 2 . . .
        DB    $2A,$20           ; . 2 2 2 . 2 . .
        DB    $82,$80           ; 2 . . 2 2 . . .
        DB    $0A,$00           ; . . 2 2 . . . .

; Generic Fish 1 Pattern (8 Pixels Wide x 6 Pixels High)
; ------------------------------------------------------
L3220:  DB    13,0              ; X,Y Displacement
        DB    2,6               ; X,Y Size
        DB    $04,$00           ; . . 1 . . . . .
        DB    $45,$00           ; 1 . 1 1 . . . .
        DB    $15,$40           ; . 1 1 1 1 . . .
        DB    $15,$10           ; . 1 1 1 . 1 . .
        DB    $41,$40           ; 1 . . 1 1 . . .
        DB    $05,$00           ; . . 1 1 . . . .

; Spiderfish Pattern (12 Pixels Wide x 11 Pixels High)
; ----------------------------------------------------
L3230:  DB    11,0              ; X,Y Displacement
        DB    3,11              ; X,Y Size
        DB    $00,$C0,$0F       ; . . . . 3 . . . . . 3 3
        DB    $0C,$20,$B0       ; . . 3 . . 2 . . 2 3 . .
        DB    $32,$22,$0F       ; . 3 . 2 . 2 . 2 . . 3 3
        DB    $00,$A8,$00       ; . . . . 2 2 2 . . . . .
        DB    $02,$AA,$30       ; . . . 2 2 2 2 2 . 3 . .
        DB    $02,$AA,$80       ; . . . 2 2 2 2 2 2 . . .
        DB    $02,$AA,$30       ; . . . 2 2 2 2 2 . 3 . .
        DB    $00,$A8,$00       ; . . . . 2 2 2 . . . . .
        DB    $32,$22,$00       ; . 3 . 2 . 2 . 2 . . . .
        DB    $0C,$20,$BF       ; . . 3 . . 2 . . 2 3 3 3
        DB    $00,$C0,$00       ; . . . . 3 . . . . . . .

; Spiderfish Pattern, Alt (12 Pixels Wide x 11 Pixels High)
; ---------------------------------------------------------
L3255:  DB    11,0              ; X,Y Displacement
        DB    3,11              ; X,Y Size
        DB    $00,$C0,$00       ; . . . . 3 . . . . . . .
        DB    $0C,$20,$BF       ; . . 3 . . 2 . . 2 3 3 3
        DB    $32,$22,$00       ; . 3 . 2 . 2 . 2 . . . .
        DB    $00,$A8,$00       ; . . . . 2 2 2 . . . . .
        DB    $02,$AA,$30       ; . . . 2 2 2 2 2 . 3 . .
        DB    $02,$AA,$80       ; . . . 2 2 2 2 2 2 . . .
        DB    $02,$AA,$30       ; . . . 2 2 2 2 2 . 3 . .
        DB    $00,$A8,$00       ; . . . . 2 2 2 . . . . .
        DB    $32,$22,$0F       ; . 3 . 2 . 2 . 2 . . 3 3
        DB    $0C,$20,$B0       ; . . 3 . . 2 . . 2 3 . .
        DB    $00,$C0,$0F       ; . . . . 3 . . . . . 3 3

; SILENCE Music Score [called with Voices = $FC]
; -------------------
L327A: REST    $01
       JP      L327A           ; muzJumP to loop [until a BMUSIC]

       DB      $00

; Squid Pattern, Alt (28 Pixels Wide x 14 Pixels High)
; ----------------------------------------------------
;
; . . . . 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 2 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 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 3 . . . .
; . . . 3 3 3 3 3 3 . . . . . . . . . . . . . . . . . . .
; . . 3 3 3 . . 3 . . . . . . . . . . . . . . . . . . . .
; . . . . . . 3 . . . . . . . . . . . . . . . . . . . . .
; . . . . . 3 . . . . . . . . . . . . . . . . . . . . . .
; . . . . 3 3 . . . . . . . . . . . . . . . . . . . . . .
;
L3280:  DB    0,0               ; X,Y Displacement
        DB    7,14              ; X,Y Size
        DB    $00,$C0,$00,$00,$00,$00,$00
        DB    $00,$FC,$00,$00,$00,$00,$00
        DB    $0C,$03,$00,$00,$00,$00,$00
        DB    $0F,$CF,$C0,$00,$00,$00,$00
        DB    $00,$30,$FF,$C0,$00,$3F,$00
        DB    $00,$C3,$FB,$FF,$FF,$FF,$F0
        DB    $00,$3F,$FF,$FF,$FF,$FF,$FF
        DB    $00,$CF,$FF,$FF,$FF,$FF,$F0
        DB    $00,$00,$FF,$C0,$00,$3F,$00
        DB    $03,$FF,$C0,$00,$00,$00,$00
        DB    $0F,$C3,$00,$00,$00,$00,$00
        DB    $00,$0C,$00,$00,$00,$00,$00
        DB    $00,$30,$00,$00,$00,$00,$00
        DB    $00,$F0,$00,$00,$00,$00,$00

; "OXY" Pattern (12 Pixels Wide x 5 Pixels High) "OXY"
L32E6:  DB    3,5; X,Y Size
        DB    11111100B,11001100B,11001100B; 3 3 3 . 3 . 3 . 3 . 3 .
        DB    11001100B,11001100B,11001100B; 3 . 3 . 3 . 3 . 3 . 3 .
        DB    11001100B,00110000B,00110000B; 3 . 3 . . 3 . . . 3 . .
        DB    11001100B,11001100B,00110000B; 3 . 3 . 3 . 3 . . 3 . .
        DB    11111100B,11001100B,00110000B; 3 3 3 . 3 . 3 . . 3 . .

TREAS:  DB    "TREASURE",0

; Start of Ship Pattern (8 Pixels Wide x 20 Pixels High)
L3300:  DB    2,20              ; X,Y Size
        DB    $00,$02
        DB    $00,$2B
        DB    $2A,$BF
        DB    $BF,$FA
        DB    $BF,$FB
        DB    $BF,$FB
        DB    $BF,$FA
        DB    $BF,$FB
        DB    $2F,$FB
        DB    $0B,$FA
        DB    $02,$FF
        DB    $02,$FF
        DB    $00,$AA
        DB    $00,$BF
        DB    $00,$BF
        DB    $00,$2F
        DB    $00,$2F
        DB    $00,$2F
        DB    $00,$0B
        DB    $00,$0A

; Pattern (4 Pixels Wide x 4 Pixels High)
L332A:  DB    1,4               ; X,Y Size
        DB    $02               ; . . . 2
        DB    $02               ; . . . 2
        DB    $0B               ; . . 2 3
        DB    $0F               ; . . 3 3

; Pattern (8 Pixels Wide x 50 Pixels High)
L3330:  DB    2,50              ; X,Y Size
        DB    $AA,$00
        DB    $BF,$AA
        DB    $BF,$FF
        DB    $BF,$FF
        DB    $BF,$FF
        DB    $BF,$FF
        DB    $EB,$FF
        DB    $FE,$AA
        DB    $FF,$FF
        DB    $AB,$FF
        DB    $EE,$BA
        DB    $EF,$BB
        DB    $AB,$BB
        DB    $EE,$BA
        DB    $EF,$BB
        DB    $AB,$BB
        DB    $FE,$BA
        DB    $FF,$FF
        DB    $AA,$FF
        DB    $FF,$AA
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $AA,$FF
        DB    $2F,$AA
        DB    $2F,$FF
        DB    $0B,$FF
        DB    $0B,$FF
        DB    $02,$FF
        DB    $02,$FF
        DB    $00,$BF
        DB    $00,$BA
        DB    $00,$2F
        DB    $00,$BF
        DB    $02,$FF
        DB    $0B,$FF
        DB    $0B,$FF
        DB    $2F,$FF
        DB    $BF,$FF
        DB    $FF,$FE
        DB    $FF,$FE
        DB    $FF,$FB
        DB    $FF,$FB
        DB    $FF,$EF
        DB    $3F,$EF
        DB    $0F,$BF
        DB    $03,$BF
        DB    $00,$FF

; Pattern (12 Pixels Wide x 48 Pixels High)
L3396:  DB    3,48
        DB    $AA,$00,$00
        DB    $FF,$AA,$00
        DB    $FF,$FF,$AA
        DB    $FF,$FF,$FF
        DB    $FA,$AF,$FF
        DB    $AF,$FA,$BF
        DB    $FF,$FF,$EF
        DB    $FF,$FF,$FA
        DB    $FF,$FF,$FF
        DB    $AB,$FF,$FF
        DB    $EE,$BA,$FF
        DB    $EF,$BB,$AB
        DB    $AB,$BB,$EE
        DB    $EE,$BA,$EF
        DB    $EF,$BB,$AB
        DB    $AB,$BB,$EE
        DB    $FE,$BA,$EF
        DB    $FF,$FF,$AB
        DB    $AA,$FF,$FE
        DB    $FF,$AA,$FF
        DB    $FF,$FF,$AA
        DB    $FF,$FF,$FF
        DB    $FF,$FF,$FF
        DB    $FF,$FA,$FF
        DB    $FF,$FA,$FF
        DB    $AA,$EB,$FF
        DB    $FF,$BA,$FF
        DB    $FE,$EF,$AA
        DB    $FE,$EF,$FF
        DB    $FB,$BF,$FF
        DB    $AF,$BF,$FF
        DB    $FE,$FF,$FF
        DB    $FE,$FF,$FF
        DB    $FB,$FF,$FF
        DB    $FB,$FF,$FF
        DB    $EA,$FF,$FF
        DB    $EF,$AA,$AA
        DB    $BF,$FF,$FF
        DB    $BF,$FF,$FF
        DB    $FF,$FF,$FF
        DB    $FF,$FF,$FF
        DB    $FF,$FF,$FF
        DB    $FF,$FF,$FF
        DB    $FF,$FF,$FC
        DB    $FF,$FF,$F0
        DB    $FF,$FF,$C0
        DB    $FF,$FC,$00
        DB    $C0,$00,$00

; Pattern (4 Pixels Wide x 5 Pixels High)
L3428:  DB    1,5               ; X,Y Size
        DB    $80               ; 2 . . .
        DB    $A0               ; 2 2 . .
        DB    $28               ; . 2 2 .
        DB    $0A               ; . . 2 2
        DB    $02               ; . . . 2

; Pattern (4 Pixels Wide x 5 Pixels High)
L342F:  DB    $1,5              ; X,Y Size
        DB    $80               ; 2 . . .
        DB    $A0               ; 2 2 . .
        DB    $28               ; . 2 2 .
        DB    $0A               ; . . 2 2
        DB    $02               ; . . . 2

; Pattern (8 Pixels Wide x 9 Pixels High)
L3436:  DB    1,9               ; X,Y Size
        DB    $80               ; 2 . . .
        DB    $A0               ; 2 2 . .
        DB    $28               ; . 2 2 .
        DB    $0A               ; . . 2 2
        DB    $02               ; . . . 2
        DB    $0B               ; . . 2 3
        DB    $0B               ; . . 2 3
        DB    $2F               ; . 2 3 3
        DB    $2F               ; . 2 3 3

; Pattern (8 Pixels Wide x 17 Pixels High)
L3441:  DB    2,17              ; X,Y Size
        DB    $00,$20           ; . . . . . 2 . .
        DB    $00,$A0           ; . . . . 2 2 . .
        DB    $00,$A0           ; . . . . 2 2 . .
        DB    $02,$A0           ; . . . 2 2 2 . .
        DB    $02,$A2           ; . . . 2 2 2 . 2
        DB    $0A,$A2           ; . . 2 2 2 2 . 2
        DB    $0A,$A8           ; . . 2 2 2 2 2 .
        DB    $2E,$A8           ; . 2 3 2 2 2 2 .
        DB    $2E,$A0           ; . 2 3 2 2 2 . .
        DB    $BF,$E0           ; 2 3 3 3 3 2 . .
        DB    $BF,$80           ; 2 3 3 3 2 . . .
        DB    $FF,$80           ; 3 3 3 3 2 . . .
        DB    $BE,$00           ; 2 3 3 2 . . . .
        DB    $AE,$00           ; 2 2 3 2 . . . .
        DB    $E8,$00           ; 3 2 2 . . . . .
        DB    $FA,$00           ; 3 3 2 2 . . . .
        DB    $E2,$80           ; 3 2 . 2 2 . . .

; Pattern (8 Pixels Wide x 5 Pixels High)
L3465:  DB    1,5               ; X,Y Size
        DB    $80               ; 2 . . .
        DB    $A0               ; 2 2 . .
        DB    $28               ; . 2 2 .
        DB    $0A               ; . . 2 2
        DB    $02               ; . . . 2

; Pattern (8 Pixels Wide x 9 Pixels High)
L346C:  DB    2,9               ; X,Y Size
        DB    $FF,$82           ; 3 3 3 3 2 . . 2
        DB    $FE,$00           ; 3 3 3 2 . . . .
        DB    $FE,$00           ; 3 3 3 2 . . . .
        DB    $F8,$00           ; 3 3 2 . . . . .
        DB    $F8,$00           ; 3 3 2 . . . . .
        DB    $E0,$00           ; 3 2 . . . . . .
        DB    $E0,$00           ; 3 2 . . . . . .
        DB    $80,$00           ; 2 . . . . . . .
        DB    $80,$00           ; 2 . . . . . . .

; Pattern (4 Pixels x 5 Pixels High)
L3480:  DB    1,5               ; X,Y Size
        DB    $80               ; 2 . . .
        DB    $A0               ; 2 2 . .
        DB    $28               ; . 2 2 .
        DB    $0A               ; . . 2 2
        DB    $02               ; . . . 2

; Pattern (4 Pixels x 5 Pixels High)
L3487:  DB    1,5               ; X,Y Size
        DB    $80               ; 2 . . .
        DB    $A0               ; 2 2 . .
        DB    $28               ; . 2 2 .
        DB    $0A               ; . . 2 2
        DB    $02               ; . . . 2

; Pattern (4 Pixels x 5 Pixels High)
L348E:  DB    1,5               ; X,Y Size
        DB    $80               ; 2 . . .
        DB    $A0               ; 2 2 . .
        DB    $28               ; . 2 2 .
        DB    $0A               ; . . 2 2
        DB    $02               ; . . . 2

; Pattern (4 Pixels x 3 Pixels High)
L3495:  DB    1,3               ; X,Y Size
        DB    $80               ; 2 . . .
        DB    $A0               ; 2 2 . .
        DB    $28               ; . 2 2 .

; Pattern (8 Pixels x 27 Pixels High)
L349A:  DB    2,27              ; X,Y Size
        DB    $80,$00
        DB    $A8,$00
        DB    $BE,$80
        DB    $BF,$E0
        DB    $BF,$FA
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FA,$FF
        DB    $FB,$BF
        DB    $FB,$EB
        DB    $FB,$FB
        DB    $FA,$FB
        DB    $FF,$BB
        DB    $FF,$EB
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $3F,$FF

; Pattern (8 Pixels x 22 Pixels High)
L34D2:  DB    2,22              ; X,Y Size
        DB    $A0,$00
        DB    $88,$00
        DB    $8A,$80
        DB    $8B,$E0
        DB    $AB,$FA
        DB    $FB,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$AF
        DB    $FF,$BB
        DB    $FF,$BE
        DB    $FF,$BF
        DB    $FF,$AF
        DB    $FF,$FB
        DB    $FF,$FE
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FC
        DB    $FF,$F0
        DB    $FF,$00
        DB    $F0,$00

; Pattern (8 Pixels x 13 Pixels High)
L3500:  DB    2,13              ; X,Y Size
        DB    $80,$00
        DB    $E0,$00
        DB    $FA,$00
        DB    $F8,$80
        DB    $F8,$A8
        DB    $B8,$BE
        DB    $BA,$BF
        DB    $BF,$BF
        DB    $BF,$FF
        DB    $BF,$FF
        DB    $FF,$FA
        DB    $FF,$FB
        DB    $00,$03

; Pattern (8 Pixels x 13 Pixels High)
L351C:  DB    2,13              ; X,Y Size
        DB    $00,$02
        DB    $00,$02
        DB    $80,$0B
        DB    $E8,$0B
        DB    $FE,$2F
        DB    $FF,$AF
        DB    $FF,$BB
        DB    $FF,$BA
        DB    $BF,$BB
        DB    $EB,$AB
        DB    $FB,$FB
        DB    $03,$FF
        DB    $00,$0F

; Pattern (4 Pixels x 21 Pixels High)
L3538:  DB    1,21              ; X,Y Size
        DB    $02
        DB    $02
        DB    $0B
        DB    $0B
        DB    $2F
        DB    $2F
        DB    $BF
        DB    $BF
        DB    $FF
        DB    $FF
        DB    $FE
        DB    $FE
        DB    $F8
        DB    $F8
        DB    $E0
        DB    $A0
        DB    $FA
        DB    $FF
        DB    $FF
        DB    $F0
        DB    $F0

; Pattern (4 Pixels x 15 Pixels High)
L354F:  DB    1,15              ; X,Y Size
        DB    $08
        DB    $28
        DB    $28
        DB    $BA
        DB    $BF
        DB    $FF
        DB    $FF
        DB    $FE
        DB    $FE
        DB    $F8
        DB    $F8
        DB    $E0
        DB    $E0
        DB    $80
        DB    $80

; Pattern (4 Pixels x 5 Pixels High)
L3560:  DB    1,5               ; X,Y Size
        DB    $A0
        DB    $E0
        DB    $E0
        DB    $80
        DB    $80

; Pattern (8 Pixels x 40 Pixels High)
L3567:  DB    2,40              ; X,Y Size
        DB    $AA,$00
        DB    $FF,$AA
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $BF,$FF
        DB    $EA,$AB
        DB    $FF,$FB
        DB    $FF,$FE
        DB    $BA,$FF
        DB    $BB,$AB
        DB    $BB,$EE
        DB    $BA,$EF
        DB    $BB,$AB
        DB    $BB,$EE
        DB    $BA,$EF
        DB    $FF,$AB
        DB    $FF,$FE
        DB    $AA,$FF
        DB    $FF,$AA
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $AA,$FF
        DB    $FF,$AA
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $AA,$BF
        DB    $FF,$EA
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FC,$0F
        DB    $FC,$03

; Pattern (8 Pixels x 41 Pixels High)
L35B9:  DB    2,41              ; X,Y Size
        DB    $AA,$00
        DB    $FF,$AA
        DB    $FF,$FE
        DB    $FF,$FE
        DB    $FF,$FE
        DB    $FF,$FE
        DB    $FF,$FE
        DB    $AA,$BE
        DB    $FF,$EA
        DB    $BF,$FE
        DB    $BF,$FF
        DB    $BF,$FF
        DB    $BF,$FE
        DB    $BF,$FE
        DB    $BF,$FB
        DB    $BF,$AE
        DB    $FE,$FF
        DB    $FB,$BF
        DB    $AF,$EF
        DB    $FB,$FB
        DB    $FB,$FB
        DB    $FE,$FE
        DB    $FE,$FF
        DB    $FE,$FF
        DB    $FF,$BA
        DB    $AA,$AF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $AB,$FF
        DB    $FE,$AF
        DB    $FF,$FA
        DB    $FF,$FF
        DB    $0F,$FF
        DB    $00,$3F
        DB    $00,$03

; Pattern (8 Pixels x 45 Pixels High)
L360D:  DB    2,45              ; X,Y Size
        DB    $00,$02
        DB    $00,$02
        DB    $00,$0B
        DB    $00,$0B
        DB    $00,$2F
        DB    $00,$2F
        DB    $00,$BF
        DB    $00,$BF
        DB    $02,$FF
        DB    $02,$FE
        DB    $0B,$FE
        DB    $0B,$F8
        DB    $2F,$F8
        DB    $AF,$E0
        DB    $EF,$E0
        DB    $FB,$80
        DB    $FE,$80
        DB    $FF,$E0
        DB    $FF,$FA
        DB    $AF,$F8
        DB    $BB,$F8
        DB    $BE,$B8
        DB    $BF,$BA
        DB    $AF,$BF
        DB    $FB,$BF
        DB    $FE,$BF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $00,$3F

; Pattern (8 Pixels Wide x 39 Pixels High)
L3669:  DB    2,39              ; X,Y Size
        DB    $80,$00
        DB    $E0,$00
        DB    $F8,$00
        DB    $FE,$00
        DB    $FF,$A0
        DB    $FF,$88
        DB    $FF,$8A
        DB    $FF,$8B
        DB    $BF,$AB
        DB    $AF,$FB
        DB    $FA,$FF
        DB    $EF,$BF
        DB    $EB,$EF
        DB    $FA,$EF
        DB    $BE,$EF
        DB    $EB,$EF
        DB    $FE,$EF
        DB    $FF,$AF
        DB    $FF,$BF
        DB    $FE,$FF
        DB    $BB,$FF
        DB    $AF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $FF,$FF
        DB    $AF,$FF
        DB    $FA,$FF
        DB    $FF,$AC
        DB    $FF,$C0

; Eel Pattern (20 Pixels Wide x 5 Pixels High)
; --------------------------------------------
L36B9:  DB    5,0               ; X,Y Displacement
        DB    4,5               ; X,Y Size
        DB    $00,$01,$40,$00; . . . . . . . 1 1 . . . . . . .
        DB    $50,$05,$50,$54; 1 1 . . . . 1 1 1 1 . . 1 1 1 .
        DB    $14,$14,$15,$5D; . 1 1 . . 1 1 . . 1 1 1 1 1 3 1
        DB    $05,$50,$05,$54; . . 1 1 1 1 . . . . 1 1 1 1 1 .
        DB    $01,$40,$00,$00; . . . 1 1 . . . . . . . . . . .

; Eel Pattern,alt (20 Pixels Wide x 5 Pixels High)
; ------------------------------------------------
L36D1:  DB    5,0               ; X,Y Displacement
        DB    4,5               ; X,Y Size
        DB    $01,$40,$00,$54   ; . . . 1 1 . . . . . . . 1 1 1 .
        DB    $05,$50,$05,$5D   ; . . 1 1 1 1 . . . . 1 1 1 1 3 1
        DB    $14,$14,$15,$54   ; . 1 1 . . 1 1 . . 1 1 1 1 1 1 .
        DB    $50,$05,$50,$00   ; 1 1 . . . . 1 1 1 1 . . . . . .
        DB    $00,$01,$40,$00   ; . . . . . . . 1 1 . . . . . . .

PROMPT: DB    "NUMBER OF     PLAYERS",0
        DB    $00

; Treasure Pattern (4 Pixels Wide x 4 Pixels High)
L3700:  DB    1,4         ; X,Y Size
        DB    00111100B   ; . 3 3 .
        DB    11111111B   ; 3 3 3 3
        DB    11111111B   ; 3 3 3 3
        DB    00111100B   ; . 3 3 .

; Boat Pattern (36 Pixels Wide x 10 Pixels High)
; ---------------------------------------------------------
;
; . . . . . . . . . . . . . . . . . . . . . . 2 2 2 . . . . . . . . .
; . . . . . . . . . . . . . . . . . . . . . . . 2 . . . . . . . . . .
; . . . . . . . . . . . . . . . . . . . . . . . 2 . . . . . . . . . .
; . . . . . . . . . . . . . . . . . . . . . 2 2 2 2 2 . . . . . . . .
; . . . . . . . . . . . . . . . . 1 1 . . . 2 2 1 1 2 . . . . . . . .
; . 2 . . . . . . 2 2 . . 2 2 2 2 2 2 2 2 2 2 2 2 2 2 . . . . 1 1 1 .
; 2 . 2 . . . . 2 2 2 . 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 . .
; . . . 2 . . . 2 2 2 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 1 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 1 . . .
;
L3706:  DB    0,0               ; X,Y Displacement
        DB    9,10              ; X,Y Size
        DB    $00,$00,$00,$00,$00,$0A,$80,$00,$00
        DB    $00,$00,$00,$00,$00,$02,$00,$00,$00
        DB    $00,$00,$00,$00,$00,$02,$00,$00,$00
        DB    $00,$00,$00,$00,$00,$2A,$A0,$00,$00
        DB    $00,$00,$00,$00,$50,$29,$60,$00,$00
        DB    $20,$00,$A0,$AA,$AA,$AA,$A0,$05,$54
        DB    $88,$02,$A2,$AA,$AA,$A9,$55,$55,$50
        DB    $02,$02,$A9,$55,$55,$55,$55,$55,$40
        DB    $05,$55,$55,$55,$55,$55,$55,$55,$40
        DB    $02,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$80

; Octopus Pattern, Alt (20 Pixels Wide x 14 Pixels High)
; -------------------------------------------------
L3764:  DB    7,0                 ; X,Y Displacement
L3766:  DB    5,14                ; X,Y Size
        DB    $00,$00,$3F,$00,$00 ; . . . . . . . . . 3 3 3 . . . . . . . .
        DB    $00,$00,$FF,$C0,$00 ; . . . . . . . . 3 3 3 3 3 . . . . . . .
        DB    $00,$00,$FF,$C0,$00 ; . . . . . . . . 3 3 3 3 3 . . . . . . .
        DB    $00,$3C,$FF,$C3,$C0 ; . . . . . 3 3 . 3 3 3 3 3 . . 3 3 . . .
        DB    $00,$CC,$DD,$CC,$30 ; . . . . 3 . 3 . 3 1 3 1 3 . 3 . . 3 . .
        DB    $00,$0C,$FF,$CC,$C0 ; . . . . . . 3 . 3 3 3 3 3 . 3 . 3 . . .
        DB    $00,$0C,$3F,$0C,$00 ; . . . . . . 3 . . 3 3 3 . . 3 . . . . .
        DB    $3C,$30,$FF,$F0,$3C ; . 3 3 . . 3 . . 3 3 3 3 3 3 . . . 3 3 .
        DB    $C3,$FF,$FF,$FF,$C3 ; 3 . . 3 3 3 3 3 3 3 3 3 3 3 3 3 3 . . 3
        DB    $30,$0F,$33,$F0,$0C ; . 3 . . . . 3 3 . 3 . 3 3 3 . . . . 3 .
        DB    $00,$30,$33,$3C,$00 ; . . . . . 3 . . . 3 . 3 . 3 3 . . . . .
        DB    $00,$30,$33,$03,$CC ; . . . . . 3 . . . 3 . 3 . . . 3 3 . 3 .
        DB    $03,$C3,$33,$00,$30 ; . . . 3 3 . . 3 . 3 . 3 . . . . . 3 . .
        DB    $00,$00,$C0,$F0,$00 ; . . . . . . . . 3 . . . 3 3 . . . . . .

; Shark Pattern (36 Pixels Wide x 11 Pixels High)
; -----------------------------------------------
; . . . . . . . . . . . . 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 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 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 2 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 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 . . . . . . . . . . . . . . . .
;
L37AE:  DB    0,0               ; X,Y Displacement
        DB    9,11              ; X,Y Size
        DB    $00,$00,$00,$F0,$00,$00,$00,$00,$00
        DB    $F0,$00,$00,$3F,$00,$00,$00,$00,$00
        DB    $3F,$00,$00,$3F,$F0,$00,$00,$00,$00
        DB    $0F,$F0,$00,$0F,$FC,$00,$00,$00,$00
        DB    $03,$FF,$FF,$FF,$FF,$FF,$C0,$00,$00
        DB    $03,$FF,$FF,$FF,$FF,$FF,$FF,$F0,$00
        DB    $3F,$CF,$FF,$FF,$FF,$33,$3E,$FF,$00
        DB    $F0,$00,$0F,$FF,$FF,$33,$3F,$FF,$F0
        DB    $00,$00,$00,$3F,$FF,$FF,$FF,$FF,$C0
        DB    $00,$00,$00,$00,$03,$FF,$FF,$F0,$00
        DB    $00,$00,$00,$00,$0F,$00,$00,$00,$00

SCODIV: DB    "SCORE",0

; L381B: not used ??
        DB    $45
        DB    $00
        DB    $15
        DB    $40
        DB    $15
        DB    $90
        DB    $41
        DB    $40
        DB    $05
        DB    $00

; Start of Ground
L3825:  DB    3,7               ; X,Y Size
        DB    $55,$00,$00       ; 1 1 1 1 . . . . . . . .
        DB    $55,$50,$00       ; 1 1 1 1 1 1 . . . . . .
        DB    $55,$55,$00       ; 1 1 1 1 1 1 1 1 . . . .
        DB    $55,$55,$40       ; 1 1 1 1 1 1 1 1 1 . . .
        DB    $55,$55,$50       ; 1 1 1 1 1 1 1 1 1 1 . .
        DB    $55,$55,$54       ; 1 1 1 1 1 1 1 1 1 1 1 .
        DB    $55,$55,$55       ; 1 1 1 1 1 1 1 1 1 1 1 1

L383C:  DB    2,2               ; X,Y Size
        DB    $00,$01           ; . . . . . 1
        DB    $15,$55           ; 1 1 1 1 1 1

GAMOVR: DB    "FAREWELL",0

DPRMPT: DB    "NUMBER OF     DIVERS",0

LOGO2:  DB    "SOFTWARE FROM        SPECTRECADE     ",0

L3886:  DB    5,5               ; X,Y Size
        DB    $00,$05,$40,$00,$00 ; . . . . . . 1 1 1 . . . . . . . . . . .
        DB    $00,$05,$50,$00,$00 ; . . . . . . 1 1 1 1 . . . . . . . . . .
        DB    $05,$55,$55,$40,$00 ; . . 1 1 1 1 1 1 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    $55,$55,$55,$55,$50 ; 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 . .

L38A1:  DB    3,2               ; X,Y Size
        DB    $05,$55,$00       ; . . 1 1 1 1 1 1 . . . .
        DB    $55,$55,$55       ; 1 1 1 1 1 1 1 1 1 1 1 1

L38A9:  DB    11,5              ; X,Y Size
;
; . . . . . . 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 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 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 .
;
        DB    $00,$05,$55,$40,$00,$00,$00,$05,$40,$00,$00
        DB    $00,$15,$55,$50,$00,$00,$01,$55,$50,$00,$00
        DB    $00,$55,$55,$55,$40,$00,$55,$55,$55,$40,$00
        DB    $05,$55,$55,$55,$55,$00,$55,$55,$55,$50,$00
        DB    $55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$54

L38E2:  DB    5,4                 ; X,Y Size
        DB    $00,$01,$54,$00,$00 ; . . . . . . . 1 1 1 1 . . . . . . . . .
        DB    $00,$55,$55,$00,$00 ; . . . . 1 1 1 1 1 1 1 1 . . . . . . . .
        DB    $05,$55,$55,$50,$00 ; . . 1 1 1 1 1 1 1 1 1 1 1 1 . . . . . .
        DB    $55,$55,$55,$55,$55 ; 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

L38F8:  DB    4,5               ; X,Y Size
        DB    $00,$01,$55,$40   ; . . . . . . . 1 1 1 1 1 1 . . .
        DB    $00,$15,$55,$40   ; . . . . . 1 1 1 1 1 1 1 1 . . .
        DB    $00,$15,$55,$40   ; . . . . . 1 1 1 1 1 1 1 1 . . .
        DB    $01,$55,$55,$40   ; . . . 1 1 1 1 1 1 1 1 1 1 . . .
        DB    $55,$55,$55,$40   ; 1 1 1 1 1 1 1 1 1 1 1 1 1 . . .

; Sub Pattern (40 Pixels Wide x 12 Pixels High)
; ---------------------------------------------
L390E:  DB    0,0               ; X,Y Displacement
;
; . . . . . . . . . . . . . . . . . 3 3 . . . . . . . . . . . . .
; . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . .
; . . . . . . . . . . . . . . 2 2 2 2 2 . . . . . . . . . . . . .
; . . . . . . . . . . . . . 2 2 1 2 1 2 2 . . . . . . . . . . . .
; 2 2 . . . . . . . . . . . 2 2 2 2 2 2 2 . . . . . . . . . . . .
; 2 2 2 . . . . . . . . . 2 2 2 2 2 2 3 3 3 3 3 3 . . . . . . . .
; 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 . .
; 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 2 2 1 2 1 2 2 2 2 2 3 3 2 2 .
; 2 2 3 . . 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 .
; . . 3 2 2 2 2 2 3 2 2 1 2 1 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 . .
; . . 3 . . 2 2 2 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 . . . . .
;
L3910:  DB    8,12              ; X,Y Size
        DB    $00,$00,$00,$00,$3C,$00,$00,$00
        DB    $00,$00,$00,$00,$30,$00,$00,$00
        DB    $00,$00,$00,$0A,$A8,$00,$00,$00
        DB    $00,$00,$00,$29,$9A,$00,$00,$00
        DB    $A0,$00,$00,$2A,$AA,$00,$00,$00
        DB    $A8,$00,$00,$AA,$AF,$FF,$00,$00
        DB    $AA,$AA,$AA,$AA,$BA,$AA,$AA,$A0
        DB    $AA,$AA,$AF,$FF,$E9,$9A,$AB,$E8
        DB    $AC,$2A,$BA,$AA,$AA,$AA,$AA,$A8
        DB    $0E,$AA,$E9,$99,$9A,$AA,$AA,$A0
        DB    $0C,$2A,$EA,$AA,$AA,$AA,$AA,$00
        DB    $00,$00,$2A,$AA,$AA,$AA,$A8,$00

; Clam Pattern, Alt (8 Pixels Wide x 5 Pixels High)
L3972:  DB    13,0              ; X,Y Displacement
        DB    2,5               ; X,y Size
        DB    $0F,$F0           ; . . 3 3 3 3 . .
        DB    $35,$5C           ; . 3 1 1 1 1 3 .
        DB    $FF,$FF           ; 3 3 3 3 3 3 3 3
        DB    $35,$5C           ; . 3 1 1 1 1 3 .
        DB    $0F,$F0           ; . . 3 3 3 3 . .

; Clam Pattern (8 Pixels Wide x 9 Pixels High)
L3980:  DB    13,0              ; X,Y Displacement
        DB    2,9               ; X,Y Size
        DB    $03,$F0           ; . . . 3 3 3 . .
        DB    $0D,$5F           ; . . 3 1 1 1 3 3
        DB    $35,$FC           ; . 3 1 1 3 3 3 .
        DB    $3F,$00           ; . 3 3 3 . . . .
        DB    $C0,$00           ; 3 . . . . . . .
        DB    $3F,$00           ; . 3 3 3 . . . .
        DB    $35,$FC           ; . 3 1 1 3 3 3 .
        DB    $0D,$5F           ; . . 3 1 1 1 3 3
        DB    $03,$F0           ; . . . 3 3 3 . .

        DB    $00
        DB    $00
        DB    $00

; Octopus Pattern (20 Pixels Wide x 14 Pixels High)
; -------------------------------------------------
L3999:  DB    7,0                 ; X,Y Displacement
        DB    5,14                ; X,Y Size
        DB    $00,$00,$3F,$00,$00 ; . . . . . . . . . 3 3 3 . . . . . . . .
        DB    $00,$00,$FF,$C0,$00 ; . . . . . . . . 3 3 3 3 3 . . . . . . .
        DB    $00,$00,$FF,$C0,$00 ; . . . . . . . . 3 3 3 3 3 . . . . . . .
        DB    $00,$C0,$FF,$C0,$F0 ; . . . . 3 . . . 3 3 3 3 3 . . . 3 3 . .
        DB    $03,$30,$EE,$C3,$0C ; . . . 3 . 3 . . 3 2 3 2 3 . . 3 . . 3 .
        DB    $00,$0C,$FF,$C3,$30 ; . . . . . . 3 . 3 3 3 3 3 . . 3 . 3 . .
        DB    $00,$0C,$3F,$0C,$00 ; . . . . . . 3 . . 3 3 3 . . 3 . . . . .
        DB    $0C,$30,$FF,$F0,$0C ; . . 3 . . 3 . . 3 3 3 3 3 3 . . . . 3 .
        DB    $33,$3F,$FF,$FF,$F3 ; . 3 . 3 . 3 3 3 3 3 3 3 3 3 3 3 3 3 . 3
        DB    $C0,$CF,$C3,$C0,$03 ; 3 . . . 3 . 3 3 3 . . 3 3 . . . . . . 3
        DB    $30,$30,$C3,$F0,$00 ; . 3 . . . 3 . . 3 . . 3 3 3 . . . . . .
        DB    $00,$C3,$0C,$0C,$C0 ; . . . . 3 . . 3 . . 3 . . . 3 . 3 . . .
        DB    $03,$03,$0C,$03,$00 ; . . . 3 . . . 3 . . 3 . . . . 3 . . . .
        DB    $03,$3C,$03,$00,$00 ; . . . 3 . 3 3 . . . . 3 . . . . . . . .

; Party Sub, Alt (32 Pixels Wide x 12 Pixels High)
; ------------------------------------------------
;
; . . . . . . . . . . . . . . . . . 3 3 . . . . . . . . . . . . .
; . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . .
; . . . . . . . . . . . . . . 2 2 2 2 2 . . . . . . . . . . . . .
; . . . . . . . . . . . . . 2 2 1 2 1 2 2 . . . . . . . . . . . .
; 2 2 . . . . . . . . . . . 2 2 2 2 2 2 2 . . . . . . . . . . . .
; 2 2 2 . . . . . . . . . 2 2 2 2 2 2 3 3 3 3 3 3 . . . . . . . .
; 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 . .
; 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 2 2 1 2 2 2 2 2 2 2 3 3 2 2 .
; 2 2 . . . 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 .
; . . 3 2 2 2 2 2 3 2 2 1 2 1 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 . .
; . . . . . 2 2 2 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 . . . . .
;
L39E3:  DB    0,0               ; X,Y Displacement
        DB    8,12              ; X,Y Size
        DB    $00,$00,$00,$00,$3C,$00,$00,$00
        DB    $00,$00,$00,$00,$30,$00,$00,$00
        DB    $00,$00,$00,$0A,$A8,$00,$00,$00
        DB    $00,$00,$00,$29,$9A,$00,$00,$00
        DB    $A0,$00,$00,$2A,$AA,$00,$00,$00
        DB    $A8,$00,$00,$AA,$AF,$FF,$00,$00
        DB    $AA,$AA,$AA,$AA,$BA,$AA,$AA,$A0
        DB    $AA,$AA,$AF,$FF,$E9,$AA,$AB,$E8
        DB    $A0,$2A,$BA,$AA,$AA,$AA,$AA,$A8
        DB    $0E,$AA,$E9,$99,$9A,$AA,$AA,$A0
        DB    $00,$2A,$EA,$AA,$AA,$AA,$AA,$00
        DB    $00,$00,$2A,$AA,$AA,$AA,$A8,$00

; Crab (8 Pixels Wide x 6 Pixel Height)
; -------------------------------------
L3A47:  DB    13,0              ; X,Y Displacement
        DB    2,6               ; X,Y Size
        DB    $0C,$C0           ; . . 3 . 3 . . .
        DB    $3F,$F0           ; . 3 3 3 3 3 . .
        DB    $FB,$BC           ; 3 3 2 3 2 3 3 .
        DB    $3F,$F0           ; . 3 3 3 3 3 . .
        DB    $30,$30           ; . 3 . . . 3 . .
        DB    $3C,$F0           ; . 3 3 . 3 3 . .

; Crab, Alt (8 Pixels Wide x 6 Pixel Height)
; ------------------------------------------
L3A57:  DB    13,0              ; X,Y Displacement
        DB    2,6               ; X,Y Size
        DB    $0C,$C0           ; . . 3 . 3 . . .
        DB    $3F,$F0           ; . 3 3 3 3 3 . .
        DB    $F3,$3C           ; 3 3 . 3 . 3 3 .
        DB    $3F,$F0           ; . 3 3 3 3 3 . .
        DB    $30,$30           ; . 3 . . . 3 . .
        DB    $0C,$C0           ; . . 3 . 3 . . .

; "COVE" String
COVE:   DB    "COVE",0

; L3A6C ?? not used ??
        DB    $A0
        DB    $00

; Nosefish Pattern (16 Pixels Wide x 8 Pixels High)
; -------------------------------------------------
L3A6E:  DB    9,0               ; X,Y Displacement
        DB    4,8               ; X,Y Size
        DB    $00,$55,$40,$00   ; . . . . 1 1 1 1 1 . . . . . . .
        DB    $01,$55,$50,$00   ; . . . 1 1 1 1 1 1 1 . . . . . .
        DB    $21,$55,$74,$00   ; . 2 . 1 1 1 1 1 1 3 1 . . . . .
        DB    $A1,$55,$54,$10   ; 2 2 . 1 1 1 1 1 1 1 1 . . 1 . .
        DB    $A9,$69,$55,$40   ; 2 2 2 1 1 2 2 1 1 1 1 1 1 . . .
        DB    $81,$5A,$55,$00   ; 2 . . 1 1 1 2 2 1 1 1 1 . . . .
        DB    $01,$69,$54,$00   ; . . . 1 1 2 2 1 1 1 1 . . . . .
        DB    $00,$55,$50,$00   ; . . . . 1 1 1 1 1 1 . . . . . .

; Nosefish Pattern, Alt (16 Pixels Wide x 8 Pixels High)
; ------------------------------------------------------
L3A92:  DB    9,0               ; X,Y Displacement
        DB    4,8               ; X,Y Size
        DB    $00,$55,$40,$00   ; . . . . 1 1 1 1 1 . . . . . . .
        DB    $01,$55,$50,$00   ; . . . 1 1 1 1 1 1 1 . . . . . .
        DB    $81,$55,$74,$00   ; 2 . . 1 1 1 1 1 1 3 1 . . . . .
        DB    $A1,$69,$54,$00   ; 2 2 . 1 1 2 2 1 1 1 1 . . . . .
        DB    $A9,$5A,$55,$00   ; 2 2 2 1 1 1 2 2 1 1 1 1 . . . .
        DB    $81,$69,$55,$50   ; 2 2 2 1 1 1 2 2 1 1 1 1 . . . .
        DB    $01,$55,$54,$00   ; . . . 1 1 1 1 1 1 1 1 . . . . .
        DB    $00,$55,$50,$00   ; . . . . 1 1 1 1 1 1 . . . . . .

; Octopus Pattern (20 Pixels Wide x 14 Pixels High)
; -------------------------------------------------
OCTP3:  DB    7,0               ; X,Y Displacement
        DB    5,14              ; X,Y Size
        DB    $00,$00,$FC,$00,$00 ; . . . . . . . . 3 3 3 . . . . . . . . .
        DB    $00,$03,$FF,$00,$00 ; . . . . . . . 3 3 3 3 3 . . . . . . . .
        DB    $00,$03,$FF,$03,$00 ; . . . . . . . 3 3 3 3 3 . . . 3 . . . .
        DB    $0F,$03,$FF,$0C,$C0 ; . . 3 3 . . . 3 3 3 3 3 . . 3 . 3 . . .
        DB    $30,$C3,$77,$30,$C0 ; . 3 . . 3 . . 3 1 3 1 3 . 3 . . 3 . . .
        DB    $00,$C3,$FF,$0C,$00 ; . . . . 3 . . 3 3 3 3 3 . . 3 . . . . .
        DB    $00,$30,$FC,$30,$00 ; . . . . . 3 . . 3 3 3 . . 3 . . . . . .
        DB    $3C,$33,$FF,$C0,$00 ; . 3 3 . . 3 . 3 3 3 3 3 3 . . . . . . .
        DB    $C3,$3F,$FF,$FF,$C0 ; 3 . . 3 . 3 3 3 3 3 3 3 3 3 3 3 3 . . .
        DB    $C0,$CC,$CF,$C0,$30 ; 3 . . . 3 . 3 . 3 . 3 3 3 . . . . 3 . .
        DB    $30,$30,$CF,$30,$C0 ; . 3 . . . 3 . . 3 . 3 3 . 3 . . 3 . . .
        DB    $00,$33,$03,$0C,$00 ; . . . . . 3 . 3 . . . 3 . . 3 . . . . .
        DB    $03,$C3,$03,$03,$C0 ; . . . 3 3 . . 3 . . . 3 . . . 3 3 . . .
        DB    $00,$0C,$00,$C0,$00 ; . . . . . . 3 . . . . . 3 . . . . . . .

; Dead Diver Pattern (20 Pixels Wide x 8 Pixels High)
; ---------------------------------------------------
DEADPT: DB    0,0               ; X,Y Displacement
        DB    5,8               ; X,Y Size
        DB    $02,$80,$00,$00,$00 ; . . . 2 2 . . . . . . . . . . . . . . .
        DB    $08,$2A,$A9,$AA,$BC ; . . 2 . . 2 2 2 2 2 2 1 2 2 2 2 2 3 3 .
        DB    $0C,$02,$A9,$AA,$E9 ; . . 3 . . . . 2 2 2 2 1 2 2 2 2 3 2 2 1
        DB    $3A,$A8,$15,$56,$15 ; . 3 2 2 2 2 2 . . 1 1 1 1 1 1 2 . 1 1 1
        DB    $20,$00,$15,$56,$08 ; . 2 . . . . . . . 1 1 1 1 1 1 2 . . 2 .
        DB    $20,$00,$00,$08,$00 ; . 2 . . . . . . . . . . . . 2 . . . . .
        DB    $30,$00,$00,$20,$00 ; . 3 . . . . . . . . . . . 2 . . . . . .
        DB    $C0,$00,$00,$C0,$00 ; 3 . . . . . . . . . . . 3 . . . . . . .

; Swordfish Pattern (32 Pixels Wide x 11 Pixels High)
; ---------------------------------------------------
; . . . . . . . . . . . . . . . . . 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 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 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 . . . 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 3 . . . . . . .
; . 3 . . . . . . . 3 . . . . . . . . . 3 3 . . . . . . . . . . .
; 3 . . . . . . . . . . . . . . . . 3 3 3 . . . . . . . . . . . .
;
L3B2C:  DB    0,0               ; X,Y Displacement
        DB    8,11              ; X,Y Size
        DB    $00,$00,$00,$00,$3C,$00,$00,$00
        DB    $00,$00,$00,$00,$0F,$00,$00,$00
        DB    $C0,$00,$00,$00,$0F,$C0,$00,$00
        DB    $30,$00,$00,$00,$FF,$F0,$00,$00
        DB    $3C,$00,$03,$FF,$FF,$FF,$00,$00
        DB    $0F,$3F,$FF,$FF,$FF,$FE,$C0,$00
        DB    $0F,$FF,$FF,$FF,$FF,$FF,$FF,$FF
        DB    $0F,$03,$FF,$FF,$FF,$FC,$00,$00
        DB    $3C,$00,$3F,$FF,$FF,$FF,$C0,$00
        DB    $30,$00,$30,$00,$03,$C0,$00,$00
        DB    $C0,$00,$00,$00,$3F,$00,$00,$00

; It looks like these eight bytes SHOULD have been the bottom row of
; the Swordfish Pattern, but the Y Size used was 11 instead of 12
        DB    $00,$00,$00,$F0,$00,$00,$00,$00

; Swordfish Pattern, Alt (32 Pixels Wide x 11 Pixels High)
; --------------------------------------------------------
;
; . . . . . . . . . . . . . . . . . 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 3 3 3 3 3 3 3 3 3 3 3 3 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 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 3 . . . . . . . . .
; . . 3 . . . . . 3 . . . . . . . . . . 3 3 . . . . . . . . . . .
; . 3 . . . . . . . . . . . . . . . . 3 3 . . . . . . . . . . . .
; . . . . . . . . . . . . . . . . . 3 3 . . . . . . . . . . . . .
;
L3B90:  DB    0,0               ; X,Y Displacement
        DB    8,12              ; XY Size
        DB    $00,$00,$00,$00,$3C,$00,$00,$00
        DB    $00,$00,$00,$00,$0F,$00,$00,$00
        DB    $30,$00,$00,$00,$0F,$C0,$00,$00
        DB    $0C,$00,$00,$00,$FF,$F0,$00,$00
        DB    $0F,$00,$03,$FF,$FF,$FF,$00,$00
        DB    $03,$FF,$FF,$FF,$FF,$FD,$C0,$00
        DB    $03,$FF,$FF,$FF,$FF,$FF,$FF,$FF
        DB    $03,$C3,$FF,$FF,$FF,$FF,$00,$00
        DB    $0F,$00,$3F,$FF,$FF,$FC,$00,$00
        DB    $0C,$00,$C0,$00,$03,$C0,$00,$00
        DB    $30,$00,$00,$00,$0F,$00,$00,$00
        DB    $00,$00,$00,$00,$3C,$00,$00,$00

; Shark Pattern, Alt (and for Title Screen (36 Pixels Wide x 11 Pixels High)
; --------------------------------------------------------------------------
;
; . . . . . . . . . . . 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 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 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 2 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 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 . . . . . . . . . . . . . . .
;
L3BF4:  DB    0,0               ; X,Y Displacement for Shark, Alt
L3BF6:  DB    9,11              ; X,Y Size
        DB    $00,$00,$03,$C0,$00,$00,$00,$00,$00
        DB    $00,$00,$00,$FC,$00,$00,$00,$00,$00
        DB    $F0,$00,$00,$FF,$C0,$00,$00,$00,$00
        DB    $3F,$00,$00,$3F,$F0,$00,$00,$00,$00
        DB    $0F,$FF,$FF,$FF,$FF,$FF,$C0,$00,$00
        DB    $03,$FF,$FF,$FF,$FF,$FF,$FF,$F0,$00
        DB    $03,$FF,$FF,$FF,$FF,$FF,$FE,$FF,$00
        DB    $3F,$C0,$0F,$FF,$FF,$FF,$FF,$FF,$F0
        DB    $F0,$00,$00,$3F,$FF,$FF,$F0,$0F,$C0
        DB    $00,$00,$00,$00,$03,$FF,$FF,$00,$00
        DB    $00,$00,$00,$00,$03,$C0,$00,$00,$00

; Sailfish Pattern (35 Pixels Wide x 11 Pixels High)
; --------------------------------------------------
;
; 3 3 . . . . . . . . . . . . . . 1 1 1 1 . . . . . . . . . .
; 3 3 . . . . . . . . . . 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 . . . . . . . .
; 3 3 . 3 . . . . 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 . . . . . . .
; 3 3 . 3 3 . . . 1 1 1 1 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 2 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 . . . 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 . . . . . .
; 3 3 . 3 . . . . . . . 3 . . . . . . . . 3 3 . . . . . . . .
; 3 3 3 . . . . . . . . . . . . . . . 3 3 3 . . . . . . . . .
;
L3C5B:  DB    0,0               ; X,Y Displacement
        DB    7,11              ; X,Y Size
        DB    $00,$00,$00,$05,$50,$00,$00
        DB    $00,$00,$05,$55,$54,$00,$00
        DB    $C0,$01,$55,$55,$55,$00,$00
        DB    $30,$05,$55,$57,$FF,$C0,$00
        DB    $3C,$05,$57,$FF,$FF,$FC,$00
        DB    $0F,$3F,$FF,$FF,$FF,$FB,$00
        DB    $0F,$FF,$FF,$FF,$FF,$FF,$FF
        DB    $0F,$03,$FF,$FF,$FF,$FC,$00
        DB    $3C,$00,$3F,$FF,$FF,$F0,$00
        DB    $30,$00,$30,$00,$0F,$00,$00
        DB    $C0,$00,$00,$00,$FC,$00,$00

PLAYUP: DB    "PLAYER   UP",0

        DB    $00
        DB    $00

; Sailfish Pattern, Alt (35 Pixels Wide x 12 Pixels High)
; -------------------------------------------------------
;
; . . . . . . . . . . . . . . 1 1 1 1 . . . . . . . . . .
; . . . . . . . . . . 1 1 1 1 1 1 1 1 1 . . . . . . . . .
; . 3 . . . . . 1 1 1 1 1 1 1 1 1 1 1 1 1 . . . . . . . .
; . . 3 . . . 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 . . . . . . .
; . . 3 3 . . 1 1 1 1 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 2 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 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 . . . . . . . . .
; . . . . . . . . . . . . . . . . 3 3 . . . . . . . . . .
;
L3CBA:  DB    0,0               ; X,Y Displacement
        DB    7,12              ; X,Y Size
        DB    $00,$00,$00,$05,$50,$00,$00
        DB    $00,$00,$05,$55,$54,$00,$00
        DB    $30,$01,$55,$55,$55,$00,$00
        DB    $0C,$05,$55,$57,$FF,$C0,$00
        DB    $0F,$05,$57,$FF,$FF,$FC,$00
        DB    $03,$FF,$FF,$FF,$FF,$FB,$00
        DB    $03,$FF,$FF,$FF,$FF,$FF,$FF
        DB    $03,$C3,$FF,$FF,$FF,$F0,$00
        DB    $0F,$00,$3F,$FF,$FF,$FC,$00
        DB    $0C,$00,$C0,$00,$0F,$00,$00
        DB    $30,$00,$00,$00,$3C,$00,$00
        DB    $00,$00,$00,$00,$F0,$00,$00

; Squid (28 Pixels Wide x 14 Pixels High)
; ---------------------------------------
;
; . . . 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 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 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 3 3 3 3 3 3 . . . . . . . . . . . . . . . . . . .
; 3 3 . . . . . 3 . . . . . . . . . . . . . . . . . . . .
; . . . . . . 3 . . . . . . . . . . . . . . . . . . . . .
; . . . . 3 3 . . . . . . . . . . . . . . . . . . . . . .
; . . 3 3 . . . . . . . . . . . . . . . . . . . . . . . .
;
L3D12:  DB    3,0               ; X,Y Displacement
        DB    7,14              ; X,Y Size
        DB    $03,$00,$00,$00,$00,$00,$00
        DB    $00,$FC,$00,$00,$00,$00,$00
        DB    $F0,$03,$00,$00,$00,$00,$00
        DB    $0F,$FF,$C0,$00,$00,$00,$00
        DB    $00,$00,$FF,$F0,$00,$3F,$00
        DB    $00,$0F,$F3,$FF,$FF,$FF,$F0
        DB    $0F,$FF,$FF,$FF,$FF,$FF,$FF
        DB    $00,$0F,$FF,$FF,$FF,$FF,$F0
        DB    $00,$00,$FF,$F0,$00,$3F,$00
        DB    $3F,$FF,$C0,$00,$00,$00,$00
        DB    $F0,$03,$00,$00,$00,$00,$00
        DB    $00,$0C,$00,$00,$00,$00,$00
        DB    $00,$F0,$00,$00,$00,$00,$00
        DB    $0F,$00,$00,$00,$00,$00,$00

; Chest (16 Pixels Wide x 13 Pixels High)
; ---------------------------------------
L3D78:  DB    4,13              ; X,Y Size
        DB    $00,$03,$F0,$00   ; . . . . . . . 3 3 3 . . . . . .
        DB    $03,$FF,$AF,$00   ; . . . 3 3 3 3 3 2 2 3 3 . . . .
        DB    $00,$EA,$FA,$C0   ; . . . . 3 2 2 2 3 3 2 2 3 . . .
        DB    $00,$3E,$BF,$FC   ; . . . . . 3 3 2 2 3 3 3 3 3 3 .
        DB    $3F,$FF,$EA,$AC   ; . 3 3 3 3 3 3 3 3 2 2 2 2 2 3 .
        DB    $EB,$D5,$7F,$EF   ; 3 2 2 3 3 1 1 1 1 3 3 3 3 2 3 3
        DB    $EA,$BD,$55,$7F   ; 3 2 2 2 2 3 3 1 1 1 1 1 1 3 3 3
        DB    $EA,$AF,$FF,$FC   ; 3 2 2 2 2 2 3 3 3 3 3 3 3 3 3 .
        DB    $EA,$AE,$AA,$AC   ; 3 2 2 2 2 2 3 2 2 2 2 2 2 2 3 .
        DB    $3E,$AE,$AA,$AC   ; . 3 3 2 2 2 3 2 2 2 2 2 2 2 3 .
        DB    $03,$EE,$AA,$AC   ; . . . 3 3 2 3 2 2 2 2 2 2 2 3 .
        DB    $00,$3E,$AA,$AC   ; . . . . . 3 3 2 2 2 2 2 2 2 3 .
        DB    $00,$03,$FF,$F0   ; . . . . . . . 3 3 3 3 3 3 3 . .

; Anchor (16 Pixels Wide x 11 Pixels High)
; ----------------------------------------
L3DAE:  DB    4,11              ; X,Y Size
        DB    $00,$FC,$0F,$00   ; . . . . 3 3 3 . . . 3 3 . . . .
        DB    $00,$03,$F3,$00   ; . . . . . . . 3 3 3 . 3 . . . .
        DB    $30,$00,$3F,$C0   ; . 3 . . . . . . . 3 3 3 3 . . .
        DB    $FC,$00,$C0,$3F   ; 3 3 3 . . . . . 3 . . . . 3 3 3
        DB    $30,$03,$00,$00   ; . 3 . . . . . 3 . . . . . . . .
        DB    $30,$0C,$00,$00   ; . 3 . . . . 3 . . . . . . . . .
        DB    $0C,$30,$00,$00   ; . . 3 . . 3 . . . . . . . . . .
        DB    $03,$C0,$00,$00   ; . . . 3 3 . . . . . . . . . . .
        DB    $03,$C0,$30,$00   ; . . . 3 3 . . . . 3 . . . . . .
        DB    $00,$3F,$FC,$00   ; . . . . . 3 3 3 3 3 3 . . . . .
        DB    $00,$00,$30,$00   ; . . . . . . . . . 3 . . . . . .


; Seahorse Pattern (12 Pixels Wide x 17 Pixels High)
; --------------------------------------------------
L3DDC:  DB    11,0              ; X,Y Displacement
        DB    3,17              ; X,Y Size
        DB    $00,$30,$00       ; . . . . . 3 . . . . . .
        DB    $00,$3C,$00       ; . . . . . 3 3 . . . . .
        DB    $00,$FF,$00       ; . . . . 3 3 3 3 . . . .
        DB    $03,$FE,$C0       ; . . . 3 3 3 3 2 3 . . .
        DB    $00,$3F,$FC       ; . . . . . 3 3 3 3 3 3 .
        DB    $00,$FF,$FF       ; . . . . 3 3 3 3 3 3 3 3
        DB    $03,$FC,$00       ; . . . 3 3 3 3 . . . . .
        DB    $00,$3C,$00       ; . . . . . 3 3 . . . . .
        DB    $01,$3F,$00       ; . . . 1 . 3 3 3 . . . .
        DB    $01,$7F,$00       ; . . . 1 1 3 3 3 . . . .
        DB    $01,$7F,$C0       ; . . . 1 1 3 3 3 3 . . .
        DB    $01,$3F,$C0       ; . . . 1 . 3 3 3 3 . . .
        DB    $00,$3F,$C0       ; . . . . . 3 3 3 3 . . .
        DB    $30,$3F,$00       ; . 3 . . . 3 3 3 . . . .
        DB    $C0,$FC,$00       ; 3 . . . 3 3 3 . . . . .
        DB    $F3,$F0,$00       ; 3 3 . 3 3 3 . . . . . .
        DB    $3F,$00,$00       ; . 3 3 3 . . . . . . . .

; Seahorse Pattern, Alt (12 Pixels Wide x 18 Pixels High)
; --------------------------------------------------
L3E13:  DB    11,0              ; X,Y Displacement
        DB    3,18              ; X,Y Size
        DB    $00,$00,$00       ; . . . . . . . . . . . .
        DB    $00,$30,$00       ; . . . . . 3 . . . . . .
        DB    $00,$3C,$00       ; . . . . . 3 3 . . . . .
        DB    $00,$FF,$00       ; . . . . 3 3 3 3 . . . .
        DB    $03,$FE,$C0       ; . . . 3 3 3 3 2 3 . . .
        DB    $00,$3F,$FC       ; . . . . . 3 3 3 3 3 3 .
        DB    $00,$FF,$FF       ; . . . . 3 3 3 3 3 3 3 3
        DB    $03,$FF,$00       ; . . . 3 3 3 3 3 . . . .
        DB    $00,$0F,$00       ; . . . . . . 3 3 . . . .
        DB    $05,$0F,$C0       ; . . 1 1 . . 3 3 3 . . .
        DB    $01,$5F,$C0       ; . . . 1 1 1 3 3 3 . . .
        DB    $01,$5F,$F0       ; . . . 1 1 1 3 3 3 3 . .
        DB    $00,$4F,$F0       ; . . . . 1 . 3 3 3 3 . .
        DB    $0C,$0F,$F0       ; . . 3 . . . 3 3 3 3 . .
        DB    $33,$0F,$C0       ; . 3 . 3 . . 3 3 3 . . .
        DB    $30,$3F,$00       ; . 3 . . . 3 3 3 . . . .
        DB    $0F,$FC,$00       ; . . 3 3 3 3 3 . . . . .
        DB    $03,$C0,$00       ; . . . 3 3 . . . . . . .

; Turtle Pattern (20 Pixels Wide x 7 Pixels High)
; -----------------------------------------------
L3E4D:  DB    7,0                 ; X,Y Displacement
        DB    5,7                 ; X,Y Size
        DB    $00,$3F,$FF,$00,$00 ; . . . . . 3 3 3 3 3 3 3 . . . . . . . .
        DB    $00,$D7,$75,$C0,$00 ; . . . . 3 1 1 3 1 3 1 1 3 . . . . . . .
        DB    $03,$5D,$5D,$70,$54 ; . . . 3 1 1 3 1 1 1 3 1 1 3 . . 1 1 1 .
        DB    $0F,$FF,$FF,$FD,$75 ; . . 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 3 1 1
        DB    $56,$BF,$FF,$A5,$55 ; 1 1 1 2 2 3 3 3 3 3 3 3 2 2 1 1 1 1 1 1
        DB    $0A,$80,$00,$A8,$00 ; . . 2 2 2 . . . . . . . 2 2 2 . . . . .
        DB    $0A,$00,$00,$28,$00 ; . . 2 2 . . . . . . . . . 2 2 . . . . .

; Turtle Pattern, Alt (20 Pixels Wide x 7 Pixels High)
; ----------------------------------------------------
L3E74:  DB    7,0               ; X,Y Displacement
        DB    5,7               ; X,Y Size
        DB    $00,$3F,$FF,$00,$00 ; . . . . . 3 3 3 3 3 3 3 . . . . . . . .
        DB    $00,$D7,$75,$C0,$54 ; . . . . 3 1 1 3 1 3 1 1 3 . . . 1 1 1 .
        DB    $03,$5D,$5D,$70,$75 ; . . . 3 1 1 3 1 1 1 3 1 1 3 . . 1 3 1 1
        DB    $43,$FF,$FF,$FD,$55 ; 1 . . 3 3 3 3 3 3 3 3 3 3 3 3 1 1 1 1 1
        DB    $16,$BF,$FF,$A5,$00 ; . 1 1 2 2 3 3 3 3 3 3 3 2 2 1 1 . . . .
        DB    $02,$80,$00,$A0,$00 ; . . . 2 2 . . . . . . . 2 2 . . . . . .
        DB    $00,$A0,$02,$80,$00 ; . . . . 2 2 . . . . . 2 2 . . . . . . .

; Snark Pattern  (4 Pixels Wide x 3 Pixels High)
; ----------------------------------------------
L3E9B:  DB    13,0              ; X,Y Displacement
        DB    2,3               ; X,Y Size
        DB    $CF,$00           ; 3 . 3 3 . . . .
        DB    $3D,$C0           ; . 3 3 1 3 . . .
        DB    $CF,$00           ; 3 . 3 3 . . . .

; Snark Pattern, Alt  (4 Pixels Wide x 3 Pixels High)
; ---------------------------------------------------
L3EA5:  DB    13,0              ; X,Y Displacement
        DB    2,3               ; X,Y Size
        DB    $3F,$00           ; . 3 3 3 . . . .
        DB    $FD,$C0           ; 3 3 3 1 3 . . .
        DB    $3F,$00           ; . 3 3 3 . . . .

; Yellow Anim Pattern, Alt ?? (8 Pixels Wide x 6 Pixels High)
; -----------------------------------------------------------
L3EAF:  DB    13,0              ; X,Y Displacement
        DB    2,6               ; X,Y Size
        DB    $28,$00           ; . 2 2 . . . . .
        DB    $0A,$00           ; . . 2 2 . . . .
        DB    $AA,$80           ; 2 2 2 2 2 . . .
        DB    $2A,$E0           ; . 2 2 2 3 2 . .
        DB    $82,$80           ; 2 . . 2 2 . . .
        DB    $02,$00           ; . . . 2 . . . .

; Generic Fish Pattern 2, (16 Pixels Wide x 4 Pixels High)
; ---------------------------------------------------------------------
L3EBF:  DB    8,0               ; X,Y Displacement
        DB    4,4               ; X,Y Size
        DB    $00,$00,$50,$00   ; . . . . . . . . 1 1 . . . . . .
        DB    $50,$FF,$FF,$80   ; 1 1 . . 3 3 3 3 3 3 3 3 2 . . .
        DB    $07,$FF,$FF,$FF   ; . . 1 3 3 3 3 3 3 3 3 3 3 3 3 3
        DB    $10,$00,$04,$00   ; . 1 . . . . . . . . 1 . . . . .

; Generic Fish Pattern 2, Alt (16 Pixels Wide x 4 Pixels High)
; --------------------------------------------------------------------------
L3ED3:  DB    8,0               ; X,Y Displacement
        DB    4,4               ; X,Y Size
        DB    $00,$00,$50,$00   ; . . . . . . . . 1 1 . . . . . .
        DB    $10,$FF,$FF,$80   ; . 1 . . 3 3 3 3 3 3 3 3 2 . . .
        DB    $07,$FF,$FF,$FF   ; . . 1 3 3 3 3 3 3 3 3 3 3 3 3 3
        DB    $50,$00,$01,$00   ; 1 1 . . . . . . . . . 1 . . . .

LOGO:   DB    "   (C) 1983         SPECTRE SYSTEMS  ",0

L3F0D:  DB    "*TOURNAMENT LEVEL*",0

; L3F20: ?? 80 NOPs not used ??
        DEFS  $50

; Sound Effect made when Player is HOME Safe [lower pitched "DING"]
HOMER:  MASTER  OA2-1           ; set TONMO to $46
        JP      L3F8A           ; muzJumP to DING+2

; Sound Effect made when Player is DEAD (x2)
MDEAD:  MASTER  $90
        REST    $05
        ; Duration= TC= TB= TA=
        NOTE3   $28, A1,CS2, E2
        NOTE3   $28, E1,GS1, B1
        MASTER  OA3             ; set TONMO to $23
        REST    $10
        JP      MUZRET          ; muzJumP to $4F58 [in RAM]

; Sound Effect made when Player picks up PEARL
DING:   MASTER  OA3             ; set TONMO to $23
L3F8A:  REST    $05
        DB      $91             ; Non-standard, use PUSHN $02 !!
L3F8D:                          ; [two times TRIANGLE DECAY ENVELOPE]
        VOLUME  $FF,$0F         ; VA = 15, VB = 15, VC= 15
        NOTE3   $01, E3,$24,$23
        VOLUME  $EE,$0E         ; VA = 14, VB = 14, VC= 14
        NOTE3   $01, E3,$24,$23
        VOLUME  $DD,$0D         ; VA = 13, VB = 13, VC= 13
        NOTE3   $01, E3,$24,$23
        VOLUME  $CC,$0C         ; VA = 12, VB = 12, VC= 12
        NOTE3   $01, E3,$24,$23
        VOLUME  $BB,$0B         ; VA = 11, VB = 11, VC= 11
        NOTE3   $01, E3,$24,$23
        VOLUME  $AA,$0A         ; VA = 10, VB = 10, VC= 10
        NOTE3   $01, E3,$24,$23
        VOLUME  $99,$09         ; VA = 9, VB = 9, VC= 9
        NOTE3   $01, E3,$24,$23
        VOLUME  $88,$08         ; VA = 8, VB = 8, VC= 8
        NOTE3   $01, E3,$24,$23
        VOLUME  $77,$07         ; VA = 7, VB = 7, VC= 7
        NOTE3   $01, E3,$24,$23
        VOLUME  $66,$06         ; VA = 6, VB = 6, VC= 6
        NOTE3   $01, E3,$24,$23
        VOLUME  $55,$05         ; VA = 5, VB = 5, VC= 5
        NOTE3   $01, E3,$24,$23
        VOLUME  $44,$04         ; VA = 4, VB = 4, VC= 4
        NOTE3   $01, E3,$24,$23
        VOLUME  $33,$03         ; VA = 3, VB = 3, VC= 3
        NOTE3   $01, E3,$24,$23
        VOLUME  $22,$02         ; VA = 2, VB = 2, VC= 2
        NOTE3   $01, E3,$24,$23
        VOLUME  $11,$01         ; VA = 1, VB = 1, VC= 1
        NOTE3   $01, E3,$24,$23
        DSJNZ   L3F8D
        ;
        REST    $05
        MASTER  OA3             ; set TONMO to $23
        JP      MUZRET          ; muzJumP to $4F58 [in RAM]
