; "Muncher" ; For Bally Arcade/Astrocade ; Programmer Unknown ; ; If you know the programmer of this game, please let me know and ; I'll add the information promptly. ; ; Disassembly begun Aug. 1, 2013 by Adam Trionfo ; ; Muncher is an unreleased Pac-Man clone created for release by ; Astocade, Inc. Like most releases for the Astrocade of the 1981/82 ; era, this game was probably programmed by someone at Nutting Associates. ; Muncher is considered one of the best games on the Astrocade. The ; programmer did an amazing job of bringing home the classic arcade ; game to this low-resolution system. ; About the "Original" Disassembly - This "Muncher" disassembly is ; based on the disassembly from Paul Thacker's part of the Bob Fabris ; Collection. Paul scanned it, but he doesn't know who made it. ; I suppose that Tom Wood, an regular submitter of material to the ; Arcadian newsletter. Wood could have created it because he did other ; Bally disassemblies that were also sparsely commented and were part of ; the Fabris Collection. ; ; Release History: ; ---------------- ; Release .02 (Aug. 9, 2013) ; - First public release to BallyAlley.com ; - Based upon, and matches closely with, the disassembly ; on BallyAlley.com: ; http://www.ballyalley.com/ml/ml_source/Muncher%20(Disassembly)(B&W).pdf ; - Matches byte-for-byte with the Muncher Binary ; - Some comments added ; - TODO: ; - Comment the disassembly ; - Find graphic routines ; - Find graphics ; Release .01 (August 1, 2011) ; - Made the binary into a text file that was only DB's ; - Started to disassemble code with ZMac before remembering ; that a pdf of a disassembly of Muncher already exists. ; ; I disassembled this game using time, some effort and the following ; tools and materials: ; 1. DZ80 Disassembler (with BallyHVG.LUA and Music 2-notes.LUA ; disassembly scripts by Richard Degler) ; 2. FC (File Compare) Command on Windows XP Command Line ; 3. "How to Program the Z80," Third Edition, By Rodnay Zaks ; 4. HVGLIB.H - Home Video Game Library header file ; 5. MESS Astrocade Emulator ; 6. "Home Video Game Manual for the Bally Astrocade" ; (aka "Nutting" Manual) and Bally On-Board ROM Source Code ; 7. PS Pad (Text Editor which creates a sort of IDE for ZMac) ; 8. Windows XP Built-In Scientific Calculator ; 9. ZMac Assembler 1.3 (Windows 32 Version) ; ; This program can be assembled using ZMAC. Make sure that HVGLIB.H ; is in the same directory and then type: ; zmac -i -m -o munch.bin -x munch.lst munch.asm ; SYSROM EQU $0000 ; Start of On-Board 8K System ROM NUMPLR EQU $4F61 ; Number of Players INCLUDE "HVGLIB.H" ; Home Video Game Library ORG FIRSTC ; FIRST address in Cartridge DB "U" ; User Cartridge Sentinel ; On-Board ROM Menu Data Structure DW MENUST ; Link to Head of On-Board MENU STart DW L3DB6 ; Address of "MUNCHER" menu text DW L2019 ; Jump here if "MUNCHER" selected IRVEC1: DW ISR1 ; Interrupt Service Routine #1 ; ; Line Interrupt Service Routine #1 ; ISR1 EX AF,AF' EXX LD A,($445E) INC A LD ($445E),A CALL L3093 EX AF,AF' EXX EI RET ; ; Muncher Game Starting Point ; L2019: DI ; Get the Number of Players. SYSSUK GETPAR ; UPI GET game PARameter from user DW L3DA9 ; "ENTER # of PLAYERS" DB $01 ; 1 digit DW NUMPLR ; "# of PLAYERS" storage ; DI LD A,(NUMPLR) ; Check that Number of Players is between 1-4 CP $01 ; NUMPLR < 1? JR C,L2019 ; If Yes, then ask for # of players again CP $05 ; NUMPLR > 4? JR NC,L2019 ; If Yes, then ask for # of players again LD (NUMPLR),A ; NUMPLR is valid, so keep it LD A,96*2 ; 96 pixel lines OUT (VERBL),A ; Vertical Blank [at scan]line 96 LD A,48*2 OUT (INLIN),A ; write INterrupt LINe LD A,35 ; HORCB/4 = 35 OUT (HORCB),A ; write HORizontal Color Boundary LD A,00001000B ; Set Bit 3, Screen Interrupts Only OUT (INMOD),A ; write, INterrupt MODe Register [Screen Ints. only] LD A,IRVEC1 & $FF ; Get Low Order Byte Address OUT (INFBK),A ; write INterrupt FeedBacK LD A,IRVEC1 >> 8 ; High Order Byte Address of Interrupt Vector LD I,A ; Load Interrupt Vector Register IM 2 ; Set Interrupt Mode 2 Condition SYSSUK COLSET ; UPI COLors SET DW L3BE5 ; ... Color Table Address ; CALL L2CF3 ; Draw Rectangle and Clear some scratchpad LD HL,$3097 LD ($4576),HL LD A,$06 LD ($454E),A EI LD HL,$4663 LD ($42CE),HL LD HL,$4023 LD ($42A6),HL L2069: CALL L2D02 LD HL,($42CE) LD DE,$0190 ADD HL,DE LD ($42CE),HL LD IY,($42A6) LD (IY+$04),$03 LD DE,$0050 ADD IY,DE LD ($42A6),IY LD HL,$42F7 INC (HL) LD A,(NUMPLR) CP (HL) JR NZ,L2069 LD HL,$4023 LD ($42A6),HL XOR A LD ($42F7),A LD HL,$4663 LD ($42CE),HL L20A1: CALL L2CDE SYSSUK STRDIS ; UPI STRing DISplay DB $38 ; ... X = 56 DB $1B ; ... Y = 27 DB $0C ; ... Options = 12 DW L3DC8 ; "PLAYER" ; LD A,($42F7) INC A LD ($431E),A SYSSUK DISNUM ; UPI DISplay NUMber DB 72 ; ... X coordinate DB 40 ; ... Y coordinate DB $4C ; ... Options = 76 DB $01 ; ... Extended = 1 DW $431E ; ... Number Address = 17182 ; LD B,$64 LD A,$01 LD ($41B7),A L20C1: CALL L2B15 DJNZ L20C1 CALL L2CDE CALL L2A19 LD HL,($42A6) PUSH HL LD A,($42F7) PUSH AF LD IY,$4023 XOR A LD ($42F7),A LD A,(NUMPLR) L20DF: PUSH AF LD ($42A6),IY LD A,$02 LD ($427F),A CALL L2B6F LD IY,($42A6) POP AF LD DE,$0050 ADD IY,DE LD HL,$42F7 INC (HL) DEC A JR NZ,L20DF POP AF LD ($42F7),A POP HL LD ($42A6),HL L2105: CALL L2D2F CALL L2CFA LD IX,($42A6) LD A,(IX+$03) INC A LD B,A CP $05 LD A,$03 JR NC,L211C LD A,$04 L211C: LD ($41B7),A LD IY,$3B2D LD DE,$0008 L2126: ADD IY,DE DJNZ L2126 LD ($4396),IY LD A,$01 LD ($427E),A LD HL,$385D LD ($43BE),HL LD L,(IY+$06) LD H,(IY+$07) LD ($44FE),HL LD A,$03 LD ($436F),A LD IX,($42A6) LD A,(IX+$28) CP $EA JR NZ,L2166 LD A,(IX+$03) CP $04 JR C,L215B LD A,$04 L215B: LD B,A ADD A,A ADD A,B LD HL,$3B07 CALL L2C32 JR L2169 L2166: LD HL,$3B16 L2169: LD A,(HL) LD ($440E),A INC HL LD ($43E6),HL CALL L2BC1 LD IX,$4F00 LD A,(IY+$02) NEG LD (IX+$09),A LD (IX+$0A),$FF LD (IX+$00),$50 LD (IX+$01),$41 LD HL,$41B3 LD (IX+$02),L LD (IX+$03),H LD A,$04 LD ($44AF),A LD IX,$4F0D LD IY,$3C2F LD B,$04 LD HL,$42A3 L21A7: LD A,(IY+$00) LD (IX+$00),A LD A,(IY+$01) LD (IX+$01),A LD (IX+$02),L LD (IX+$03),H LD A,(IY+$02) LD (IX+$0D),A LD A,$04 SUB B LD (IX+$12),A LD DE,$00F0 ADD HL,DE LD DE,$0003 ADD IY,DE LD DE,$0015 ADD IX,DE DJNZ L21A7 LD IX,$4F0D LD (IX+$09),$80 LD (IX+$0A),$FF LD (IX+$0E),$7D LD (IX+$0F),$01 LD (IX+$13),$04 LD A,($454E) CP $06 CALL NZ,L3086 JP L26C1 L21F8: LD A,($454E) CP $06 JR NZ,L221D LD A,($41B7) PUSH AF SYSSUK BMUSIC ; UPI Begin playing MUSIC DW $4CA8 ; ... Music Stack DB $F0 ; ... Voices = 240 DW L3291 ; ... Score Address ; LD B,$40 L220C: PUSH BC CALL L2B15 CALL STIMER POP BC DJNZ L220C POP AF LD ($41B7),A CALL L3086 L221D: LD HL,$42F6 LD A,(HL) OR A JR Z,L2238 DEC (HL) JR NZ,L2238 LD B,$04 LD IX,$4F0D LD DE,$0015 L2230: RES 2,(IX+$0D) ADD IX,DE DJNZ L2230 L2238: LD HL,($44FE) DEC HL LD A,H OR L JR NZ,L2264 LD IY,($4396) LD A,($427E) OR A JR Z,L2253 LD L,(IY+$04) LD H,(IY+$05) XOR A JR L2261 L2253: LD HL,$385D LD ($43BE),HL LD L,(IY+$06) LD H,(IY+$07) LD A,$02 L2261: LD ($427E),A L2264: LD ($44FE),HL LD A,$03 LD ($44D6),A L226C: LD IX,$4F00 CALL L2E3F CALL L2C0F OR A JR Z,L227C LD ($44AF),A L227C: LD A,($42F7) ADD A,$10 LD C,A IN A,(C) AND $0F LD ($44AE),A JR Z,L22A9 CALL L2B46 LD HL,($44AE) JR NZ,L229A LD A,$03 CP H JR NC,L229A LD A,$0C L229A: LD B,A AND L JR Z,L22A7 LD B,A LD A,H CPL AND B JR NZ,L22A9 LD A,H JR L22A9 L22A7: LD A,H AND B L22A9: JP L2302 NOP INC HL JR L22A9 INC HL LD A,($44AE) AND (HL) JP Z,L2346 LD A,($44AE) LD ($422E),A LD H,(IX+$0A) LD L,(IX+$09) CALL L2AFF LD (IX+$09),L LD (IX+$0A),H LD L,(IX+$0B) LD H,(IX+$0C) CALL L2AFF LD (IX+$0B),L LD (IX+$0C),H JR L2346 CP (HL) JR NZ,L22F9 L22E1: LD A,($44AF) LD HL,$4207 AND (HL) JR NZ,L2346 XOR A LD (IX+$09),A LD (IX+$0A),A LD (IX+$0B),A LD (IX+$0C),A JR L2346 L22F9: OR A JR Z,L22E1 LD HL,$4207 AND (HL) JR Z,L22E1 L2302: LD IY,($4396) LD HL,$3BED LD B,A ADD A,A ADD A,B CALL L2C32 LD A,(HL) LD (IX+$0A),A OR A JR Z,L2324 LD A,(IY+$02) JP M,L2322 LD (IX+$0A),$00 JR L2324 L2322: NEG L2324: LD (IX+$09),A INC HL LD A,(HL) LD (IX+$0C),A OR A JR Z,L233D LD A,(IY+$02) JP M,L233B LD (IX+$0C),$00 JR L233D L233B: NEG L233D: LD (IX+$0B),A LD A,($44AE) LD ($422E),A L2346: LD L,(IX+$09) LD H,(IX+$0A) LD E,(IX+$07) LD D,(IX+$00) CALL L29FB ADD HL,DE LD A,H CP $83 JR C,L235F LD A,$17 JR L2365 L235F: CP $17 JR NC,L2365 LD A,$82 L2365: LD (IX+$07),L LD (IX+$00),A LD L,(IX+$0B) LD H,(IX+$0C) LD E,(IX+$08) LD D,(IX+$01) ADD HL,DE LD (IX+$08),L LD (IX+$01),H CALL L29BD DEC A LD L,A LD C,A LD IY,($4396) LD A,($42F6) OR A JR NZ,L23A0 LD A,($427E) OR A JR NZ,L23A0 LD H,$00 ADD HL,HL ADD HL,HL ADD HL,HL LD DE,$36C8 ADD HL,DE LD ($43BE),HL L23A0: LD HL,$36AC LD B,$00 ADD HL,BC LD A,($4347) CP (HL) JR Z,L23B8 LD A,(HL) LD ($4347),A LD A,(IY+$01) LD ($436E),A JR L23C0 L23B8: LD HL,$436E LD A,(HL) OR A JR Z,L23C0 DEC (HL) L23C0: LD IX,$4F0D LD A,$04 LD ($4486),A L23C9: BIT 0,(IX+$0D) JR Z,L2410 BIT 3,(IX+$0D) JR NZ,L23FA LD A,($4486) LD HL,$436F CP (HL) JP NZ,L2629 LD A,($440E) DEC A JR Z,L23EB LD ($440E),A JP L2629 L23EB: LD HL,$436F DEC (HL) LD HL,($43E6) LD A,(HL) INC HL LD ($43E6),HL LD ($440E),A L23FA: SET 4,(IX+$0D) RES 3,(IX+$0D) RES 0,(IX+$0D) XOR A LD (IX+$10),A LD HL,$3656 CALL L288F L2410: LD A,(IX+$0D) AND $32 JP Z,L24AE LD C,A LD A,(IX+$0E) CP (IX+$00) JP NZ,L24AE LD A,(IX+$0F) CP (IX+$01) JP NZ,L24AE LD A,C CP $10 JR NZ,L2461 LD A,(IX+$10) INC A CP $02 JR Z,L2444 LD (IX+$10),A LD HL,$3656 CALL L288F JP L256A L2444: RES 4,(IX+$0D) XOR A LD (IX+$11),A LD (IX+$09),$80 LD (IX+$0A),$FF LD (IX+$0B),A LD (IX+$0C),A LD (IX+$13),$04 JP L24AE L2461: CP $02 JR NZ,L2493 LD A,$0E LD ($4207),A LD A,(IX+$10) CP $01 JR C,L247B JR NZ,L2488 LD A,(IX+$12) CP $02 JR C,L2488 DEC A L247B: INC A LD (IX+$10),A LD HL,$365A CALL L288F JP L256A L2488: RES 1,(IX+$0D) SET 0,(IX+$0D) JP L2629 L2493: RES 7,(IX+$0D) LD A,(IX+$0A) OR A JP P,L24A2 SET 7,(IX+$0D) L24A2: RES 5,(IX+$0D) SET 6,(IX+$0D) LD (IX+$10),$00 L24AE: LD A,(IX+$0D) AND $13 JR NZ,L2517 LD HL,($43BE) LD A,(IX+$12) ADD A,A CALL L2C32 LD E,(HL) INC HL LD D,(HL) EX DE,HL LD A,($436E) OR A JR NZ,L24DA L24C9: LD A,(HL) OR A JP P,L24DA AND $40 JR Z,L24D7 L24D2: INC HL LD A,(HL) OR A JR NZ,L24D2 L24D7: INC HL JR L24C9 L24DA: LD A,(HL) BIT 6,A JR Z,L24F6 PUSH HL CALL L29BD LD C,A POP HL LD D,H LD E,L INC HL L24E8: LD A,(HL) OR A JR Z,L24F2 CP C JR Z,L24F5 INC HL JR L24E8 L24F2: INC HL JR L24DA L24F5: LD A,(DE) L24F6: AND $3F CP (IX+$11) JR Z,L2517 LD (IX+$11),A RES 6,(IX+$0D) SET 5,(IX+$0D) CALL L29DE LD A,(IY+$01) LD (IX+$0E),A LD A,(IY+$02) LD (IX+$0F),A L2517: CALL L2B24 JR NZ,L2523 RES 0,(IX+$14) JP L256A L2523: BIT 0,(IX+$14) JP NZ,L256A LD ($4207),A SET 0,(IX+$14) BIT 6,(IX+$0D) JR NZ,L253C CALL L289C JR L256A L253C: LD A,(IX+$11) CALL L29DE LD A,(IX+$10) INC A CP (IY+$00) JR C,L254C XOR A L254C: LD (IX+$10),A BIT 7,(IX+$0D) JR NZ,L255D LD L,(IY+$03) LD H,(IY+$04) JR L2563 L255D: LD L,(IY+$05) LD H,(IY+$06) L2563: CALL L2C32 LD A,(HL) CALL L2972 L256A: LD L,(IX+$09) LD H,(IX+$0A) LD E,(IX+$07) LD D,(IX+$00) CALL L29FB CALL L29F2 ADD HL,DE LD A,H CP $83 JR C,L2586 LD A,$17 JR L258C L2586: CP $17 JR NC,L258C LD A,$82 L258C: LD (IX+$07),L LD (IX+$00),A LD L,(IX+$0B) LD H,(IX+$0C) LD E,(IX+$08) LD D,(IX+$01) CALL L29F2 ADD HL,DE LD (IX+$08),L LD (IX+$01),H BIT 3,(IX+$0D) JP NZ,L2629 LD IY,$4F00 LD A,(IY+$01) SUB (IX+$01) JR NC,L25BD NEG L25BD: CP $04 JR NC,L2629 LD A,(IY+$00) SUB (IX+$00) JR NC,L25CB NEG L25CB: CP $04 JR NC,L2629 BIT 2,(IX+$0D) JR NZ,L25DC LD A,$01 LD ($4346),A JR L2629 L25DC: LD (IX+$0D),$0A LD HL,($365A) LD (IX+$0E),L LD (IX+$0F),H LD (IX+$10),$00 LD HL,$4257 LD A,(HL) INC (HL) ADD A,A ADD A,A LD HL,$3A93 CALL L2C32 PUSH IX PUSH HL CALL L3016 POP HL INC HL INC HL LD E,(HL) INC HL LD D,(HL) CALL L306B POP IX LD A,$02 LD ($4346),A LD A,$1E LD ($440F),A LD A,($454E) CP $04 JR NC,L2629 LD HL,$3269 LD A,$1E LD C,$03 LD DE,$3098 CALL L3004 L2629: LD DE,$0015 ADD IX,DE LD HL,$4486 DEC (HL) JP NZ,L23C9 LD HL,$44D6 DEC (HL) JP NZ,L226C CALL L2B15 LD IX,$4F4C LD B,$04 L2645: LD A,(IX+$00) PUSH BC CALL L2CA6 POP BC LD DE,$FFEB ADD IX,DE DJNZ L2645 LD IX,$4F00 CALL L2CA6 LD A,($459E) OR A JR Z,L2689 CP $FF JR NZ,L2679 CALL L2BE6 LD HL,$485C CALL L2C8D LD A,($41B7) CP $04 LD A,$96 JR Z,L2679 LD A,$C8 L2679: DEC A LD ($459E),A JR NZ,L2689 LD IY,$3CB9 LD HL,$485C CALL L2C8D L2689: LD HL,$4CCB L268C: LD A,(HL) OR A JR Z,L26C1 INC HL LD E,(HL) INC HL LD D,(HL) LD BC,$0026 ADD HL,BC LD ($4526),HL LD HL,$4000 ADD HL,DE OR A JP M,L26B4 LD B,$04 LD DE,$0027 L26A8: LD A,(HL) AND $F0 LD (HL),A INC HL LD (HL),$00 ADD HL,DE DJNZ L26A8 JR L26BC L26B4: LD (HL),$00 LD DE,$0028 ADD HL,DE LD (HL),$00 L26BC: LD HL,($4526) JR L268C L26C1: LD IX,$4F00 LD HL,$4CCB LD ($4526),HL LD (HL),$00 LD A,(IX+$00) CP $1D JR C,L26E4 CALL L2C37 LD IY,$3DD7 LD A,($44AF) CALL L2ADE CALL L2C8D L26E4: LD IX,$4F0D LD B,$04 L26EA: LD A,(IX+$00) CP $1D JR C,L2729 PUSH BC CALL L2C37 LD A,(IX+$0D) AND $06 JR Z,L2713 LD IY,$3D51 CP $02 JR Z,L2725 LD IY,$3D45 LD A,($42F6) CP $19 JR NC,L2725 AND $04 JR Z,L2725 L2713: LD A,(IX+$12) ADD A,A ADD A,A ADD A,A LD E,A LD D,$00 LD IY,$3CC5 ADD IY,DE CALL L2AE9 L2725: CALL L2C8D POP BC L2729: LD DE,$0015 ADD IX,DE DJNZ L26EA LD A,($427F) OR A CALL NZ,L2BC1 LD A,($4346) OR A JR Z,L2749 CP $01 JP Z,L2767 LD HL,$440F DEC (HL) CALL Z,L3064 L2749: LD IY,($42A6) LD A,(IY+$28) OR A JP Z,L2832 CALL L2DBA LD HL,$41B6 INC (HL) INC (HL) LD A,(HL) CP $10 JP C,L21F8 LD (HL),$00 JP L21F8 L2767: LD HL,$3279 LD A,$22 LD C,$04 LD DE,$30E3 CALL L3004 LD A,$07 LD ($454F),A LD A,$01 LD ($41B7),A LD B,$0F L2780: CALL L2B15 DJNZ L2780 CALL L2E07 LD HL,$3D5D LD ($4436),HL L278E: LD IX,$4F00 CALL L2CA6 LD HL,($4436) LD A,(HL) OR A JR Z,L27BE PUSH AF INC HL LD E,(HL) INC HL LD D,(HL) INC HL LD ($4436),HL LD A,(IX+$00) CP $1D JR C,L27B5 PUSH DE CALL L2C37 POP IY CALL L2C8D L27B5: POP AF LD B,A L27B7: CALL L2B15 DJNZ L27B7 JR L278E L27BE: LD A,$02 LD ($427F),A XOR A LD ($4346),A LD IY,($42A6) DEC (IY+$04) CALL L2B6F LD A,($42F7) LD IX,($42CE) LD IY,($42A6) LD HL,NUMPLR INC A LD B,(HL) L27E1: LD C,A CP (HL) JR C,L27F1 LD C,$00 LD IX,$4663 LD IY,$4023 JR L27FB L27F1: LD DE,$0190 ADD IX,DE LD DE,$0050 ADD IY,DE L27FB: LD A,(IY+$04) OR A JR NZ,L2807 LD A,C INC A DJNZ L27E1 JR L2816 L2807: LD ($42CE),IX LD ($42A6),IY LD A,C LD ($42F7),A JP L20A1 L2816: SYSSUK STRDIS ; UPI STRING DISPLAY DB $30 ; ... X = 48 DB $30 ; ... Y = 48 DB $08 ; ... OPTIONS = 8 DW L3DBE ; ... STRING ADDRESS ; LD B,$02 LD HL,$41DE L2822: IN A,($10) AND $10 CP (HL) JR Z,L2822 LD (HL),A OR A JR Z,L2822 DJNZ L2822 JP SYSROM ; Jump to First Byte of 8K On-Board System ROM L2832: XOR A LD ($454E),A LD HL,$3097 LD ($4576),HL OUT (VOLAB),A ; write VOLumes of tones A & B OUT (VOLC),A ; write VOLume of tone C LD A,($4346) CP $02 CALL Z,L3064 LD B,$10 L284A: CALL L2B15 DJNZ L284A CALL L2E07 LD B,$03 L2854: LD A,$F1 OUT (COL3L),A ; write COLor 3 Left LD C,$08 L285A: CALL L2B15 DEC C JR NZ,L285A LD A,$F6 OUT (COL3L),A ; write COLor 3 Left LD C,$08 L2866: CALL L2B15 DEC C JR NZ,L2866 DJNZ L2854 LD IX,$4F00 CALL L2CA6 CALL L2D02 LD IY,($42A6) LD A,(IY+$03) INC A CP $16 JR C,L2886 LD A,$0C L2886: LD (IY+$03),A CALL L2B6F JP L2105 L288F: ADD A,A CALL L2C32 LD A,(HL) LD (IX+$0E),A INC HL LD A,(HL) LD (IX+$0F),A L289C: BIT 4,(IX+$0D) JR Z,L28A9 LD A,$0F LD ($4207),A JR L28BE L28A9: LD A,(IX+$13) LD HL,$3C1D L28AF: CP (HL) JR Z,L28B6 INC HL INC HL JR L28AF L28B6: INC HL LD A,(HL) CPL LD HL,$4207 AND (HL) LD (HL),A L28BE: LD B,$00 LD A,(IX+$00) CP (IX+$0E) JR Z,L28CE LD B,$04 JR NC,L28CE LD B,$08 L28CE: LD A,(IX+$01) CP (IX+$0F) LD A,B JR Z,L28DE LD A,$02 JR C,L28DD LD A,$01 L28DD: OR B L28DE: LD HL,$4207 AND (HL) JR Z,L28E5 LD (HL),A L28E5: BIT 3,(IX+$0D) JR NZ,L28F5 LD A,($436E) LD C,A LD A,($427E) OR C JR Z,L2938 L28F5: LD A,(IX+$01) SUB (IX+$0F) LD B,$01 JR NC,L2903 LD B,$02 NEG L2903: LD C,A LD A,(IX+$00) SUB (IX+$0E) JR NC,L2912 SET 2,B NEG JR L2914 L2912: SET 3,B L2914: LD D,A LD A,($4207) AND B JR Z,L2932 LD B,A AND $0C JR Z,L2932 LD A,B AND $03 JR Z,L2932 LD A,D CP C LD A,B JR NC,L292E AND $03 JR L2935 L292E: AND $0C JR L2935 L2932: LD A,($4207) L2935: JP L2972 L2938: LD A,(IX+$12) CP $02 JR NC,L296A LD B,$00 LD IY,$4F00 LD A,(IX+$00) CP (IY+$00) JR Z,L2953 LD B,$04 JR NC,L2953 LD B,$08 L2953: LD A,(IX+$01) CP (IY+$01) JR Z,L2963 LD A,$02 JR C,L2961 LD A,$01 L2961: OR B LD B,A L2963: LD A,(HL) AND B JR Z,L2971 LD (HL),A JR L2971 L296A: LD A,(IX+$13) AND (HL) JR Z,L2971 LD (HL),A L2971: LD A,(HL) L2972: LD IY,($4396) LD C,(IY+$03) BIT 1,(IX+$0D) JR Z,L2981 LD C,$FF L2981: LD HL,$3BED LD B,A ADD A,A ADD A,B CALL L2C32 LD A,(HL) LD (IX+$0A),A OR A JR Z,L299D LD A,C JP M,L299B LD (IX+$0A),$00 JR L299D L299B: NEG L299D: LD (IX+$09),A INC HL LD A,(HL) LD (IX+$0C),A OR A JR Z,L29B4 LD A,C JP M,L29B2 LD (IX+$0C),$00 JR L29B4 L29B2: NEG L29B4: LD (IX+$0B),A INC HL LD A,(HL) LD (IX+$13),A RET L29BD: LD A,(IX+$01) LD HL,$3662 LD DE,$0003 L29C6: CP (HL) JR C,L29CC ADD HL,DE JR L29C6 L29CC: INC HL LD A,(HL) INC HL LD H,(HL) LD L,A LD A,(IX+$00) L29D4: CP (HL) JR C,L29DB INC HL INC HL JR L29D4 L29DB: INC HL LD A,(HL) RET L29DE: DEC A LD L,A LD H,$00 LD E,L LD D,H ADD HL,HL ADD HL,HL ADD HL,HL OR A SBC HL,DE LD DE,$3869 ADD HL,DE PUSH HL POP IY RET L29F2: BIT 2,(IX+$0D) RET Z LD B,$02 JR L2A0B L29FB: LD A,(IX+$01) CP $29 RET NZ LD A,D CP $32 JR C,L2A09 CP $76 RET C L2A09: LD B,$03 L2A0B: PUSH DE LD D,H LD E,L L2A0E: SRA D RR E DJNZ L2A0E OR A SBC HL,DE POP DE RET L2A19: LD IX,$3374 L2A1D: LD E,(IX+$00) LD D,(IX+$01) LD A,$10 SYSTEM RELABS ; UPI RELative to ABSolute conversion ; EX DE,HL PUSH HL PUSH AF LD A,(IX+$03) AND $F0 JR Z,L2A3B LD DE,$FFD8 JP M,L2A3A LD DE,$0028 l2a3a: ADD HL,DE l2a3b: LD (HL),$C0 POP AF POP HL AND $03 INC A CP $04 JR NZ,L2A48 XOR A INC HL l2a48: OR $10 OUT (MAGIC),A ; write MAGIC register LD A,(IX+$02) SUB $02 LD C,$FF LD B,$C0 l2a55: CP $04 JR NC,L2A6B OR A JR Z,L2A74 SUB $04 NEG l2a60: SLA C SLA C RLC B RLC B DEC A JR NZ,L2A60 l2a6b: LD (HL),C INC HL OR A JR Z,L2A74 SUB $04 JR L2A55 L2A74: LD (HL),$00 LD A,B CP $C0 JR Z,L2A7C DEC HL L2A7C: LD A,(IX+$03) AND $0F JR Z,L2A8E AND $08 LD DE,$FFD8 JR NZ,L2A8D LD DE,$0028 L2A8D: ADD HL,DE L2A8E: LD (HL),B INC HL LD (HL),$00 LD DE,$0004 ADD IX,DE LD A,(IX+$00) OR A JR NZ,L2A1D LD IX,$3491 L2AA1: LD E,(IX+$02) LD D,(IX+$03) PUSH DE POP IY L2AAA: LD C,$02 LD E,(IX+$00) L2AAF: LD D,(IY+$00) LD A,$10 SYSTEM RELABS ; UPI RELATIVE TO ABSOLUTE CONVERSION ; EX DE,HL LD B,(IY+$01) LD DE,$0028 L2ABD: LD (HL),$C0 ADD HL,DE DJNZ L2ABD LD E,(IX+$01) DEC C JR NZ,L2AAF INC IY INC IY LD A,(IY+$00) OR A JR NZ,L2AAA LD DE,$0004 ADD IX,DE LD A,(IX+$00) OR A JR NZ,L2AA1 RET L2ADE: LD DE,$0008 L2AE1: SRL A JR C,L2AE9 ADD IY,DE JR L2AE1 L2AE9: LD A,($41B6) SRL A AND $FE LD E,A LD D,$00 ADD IY,DE LD E,(IY+$00) LD D,(IY+$01) PUSH DE POP IY RET L2AFF: LD A,H CPL LD H,A LD A,L CPL LD L,A INC HL RET JR NC,L2B0B NEG L2B0B: LD L,A LD H,$00 JR NC,L2B12 NEG L2B12: JP L2C32 L2B15: LD A,($41B7) LD D,A L2B19: LD A,($445E) CP D JR C,L2B19 XOR A LD ($445E),A RET L2B24: LD A,(IX+$0D) AND $44 JR NZ,L2B46 LD A,(IX+$01) CP $25 JR NZ,L2B46 LD A,(IX+$00) CP $44 JR C,L2B46 CP $5D JR NC,L2B46 LD A,(IX+$13) CP $02 JR Z,L2B46 XOR A RET L2B46: LD A,(IX+$00) LD HL,$35B2 LD DE,$0003 L2B4F: CP (HL) JR Z,L2B57 JR C,L2B6D ADD HL,DE JR L2B4F L2B57: INC HL LD A,(HL) INC HL LD H,(HL) LD L,A L2B5C: LD A,(HL) OR A RET Z CP (IX+$01) INC HL JR Z,L2B6A JR NC,L2B6D INC HL JR L2B5C L2B6A: LD A,(HL) OR A RET L2B6D: XOR A RET L2B6F: LD A,($42F7) INC A LD ($431E),A CALL L2C01 LD HL,$431E LD BC,$0108 SYSTEM DISNUM ; UPI DISplay NUMber ; CALL L2C01 LD HL,($42A6) LD A,$04 CALL L2C32 INC D LD A,$0C ADD A,E LD E,A LD IX,$020D LD BC,$4108 SYSTEM DISNUM ; UPI DISplay NUMber ; CALL L2BE6 DEC HL DEC HL PUSH HL CALL L2C01 LD A,$10 ADD A,D LD D,A XOR A CALL L2E20 LD HL,$4000 ADD HL,DE PUSH HL CALL L2C8D POP DE INC DE INC DE POP HL LD B,(HL) DEC HL LD C,(HL) PUSH BC POP IY EX DE,HL CALL L2C8D L2BC1: CALL L2C01 LD A,$09 ADD A,D LD D,A LD A,E SUB $08 LD E,A LD HL,($42A6) LD IX,$020D LD BC,$C609 LD A,($427F) AND $02 JR Z,L2BDF LD C,$08 l2bdf: SYSTEM DISNUM ; UPI DISplay NUMber ; XOR A LD ($427F),A RET L2BE6: LD IY,($42A6) LD A,(IY+$03) CP $0D JR C,L2BF3 LD A,$0D L2BF3: LD HL,$3C3D ADD A,A CALL L2C32 LD E,(HL) INC HL LD D,(HL) PUSH DE POP IY RET L2C01: LD HL,$3C27 LD A,($42F7) ADD A,A CALL L2C32 LD E,(HL) INC HL LD D,(HL) RET L2C0F: LD A,(IX+$0A) OR (IX+$09) JR Z,L2C21 LD A,$04 BIT 7,(IX+$0A) RET NZ LD A,$08 RET L2C21: LD A,(IX+$0C) OR (IX+$0B) RET Z LD A,$01 BIT 7,(IX+$0C) RET NZ LD A,$02 RET L2C32: ADD A,L LD L,A RET NC INC H RET L2C37: LD A,$10 CALL L2E1A EX DE,HL PUSH HL LD E,(IX+$02) LD D,(IX+$03) PUSH DE POP IY LD DE,$4000 ADD HL,DE LD (IX+$04),H LD (IX+$05),L LD B,$06 PUSH IX AND $03 LD E,A ADD A,A ADD A,E LD E,A LD D,$00 LD IX,$3B29 ADD IX,DE LD DE,$0026 L2C66: LD A,(HL) LD (IY+$00),A AND (IX+$00) LD (HL),A INC HL INC IY LD A,(HL) LD (IY+$00),A AND (IX+$01) LD (HL),A INC HL INC IY LD A,(HL) LD (IY+$00),A AND (IX+$02) LD (HL),A ADD HL,DE ADD IY,DE DJNZ L2C66 POP IX POP HL RET L2C8D: LD B,$06 LD DE,$0026 L2C92: LD A,(IY+$00) LD (HL),A INC HL INC IY LD A,(IY+$00) LD (HL),A INC HL INC IY LD (HL),$00 ADD HL,DE DJNZ L2C92 RET L2CA6: LD H,(IX+$04) LD L,(IX+$05) LD A,H OR L RET Z LD E,(IX+$02) LD D,(IX+$03) PUSH DE POP IY LD B,$06 LD DE,$0025 L2CBD: LD C,$03 L2CBF: LD A,(IY+$00) LD (HL),A INC HL INC IY DEC C JR NZ,L2CBF ADD HL,DE ADD IY,DE DJNZ L2CBD XOR A LD (IX+$04),A LD (IX+$05),A RET ; ?? The pdf disassembly has an entire line of questions marks here. ; I guess that this is because I couldn't find this routine called ; at all. SYSSUK FILL ; UPI FILL memory with data DW $4F00 ; ... Memory Address = 20224 DW $0061 ; ... Byte Count = 97 DB $00 ; ... Data = 0 ; RET L2CDE: LD HL,$4EFF L2CE1: LD B,$28 L2CE3: LD A,B CP $24 JR NC,L2CEA LD (HL),$00 L2CEA: DEC HL LD A,H CP $3F RET Z DJNZ L2CE3 JR L2CE1 ; Draw a Black rectangle on far-right side of the screen L2CF3: SYSSUK RECTAN ; UPI paint a RECTANgle DB 140 ; ... X coordinate DB 0 ; ... Y coordinate DB 20 ; ... Width DB 96 ; ... Height DB $00 ; ... Color = 0 ; L2CFA: SYSSUK FILL ; UPI FILL memory with data DW $4F00 ; ... Memory Address = 20224 DW $0061 ; ... Byte Count = 97 DB $00 ; ... Data = 0 ; RET L2D02: LD A,$EC LD IY,($42A6) LD (IY+$29),$0F LD HL,($42CE) LD B,$05 LD DE,$0023 L2D14: LD (HL),$FF INC HL DEC B JR NZ,L2D1D ADD HL,DE LD B,$05 L2D1D: SUB $08 JR NC,L2D14 LD (IY+$28),$EA LD HL,($42CE) LD DE,$0078 ADD HL,DE LD (HL),$CF RET L2D2F: LD IX,($42CE) LD A,$05 LD ($41DF),A LD A,$80 LD ($4206),A LD IY,$350A LD A,$EC L2D43: SUB (IY+$01) LD ($4486),A LD A,(IY+$01) LD L,(IY+$02) LD H,(IY+$03) L2D52: LD D,(IY+$00) LD E,(HL) INC HL SUB (HL) LD ($445F),A LD B,(HL) INC HL PUSH IY CALL L2E20 LD IY,$4000 ADD IY,DE LD A,($4206) L2D6B: AND (IX+$00) JR Z,L2D7A LD (IY+$00),$50 LD (IY+$28),$50 JR L2D82 L2D7A: LD (IY+$00),$00 LD (IY+$28),$00 L2D82: INC IY LD A,($4206) SRL A JR NZ,L2D9F INC IX LD A,($41DF) DEC A JR NZ,L2D9A LD DE,$0023 ADD IX,DE LD A,$05 L2D9A: LD ($41DF),A LD A,$80 L2D9F: LD ($4206),A DJNZ L2D6B POP IY LD A,($445F) OR A JR NZ,L2D52 LD DE,$0004 ADD IY,DE LD A,($4486) OR A JR NZ,L2D43 LD ($4487),A L2DBA: LD HL,$4487 DEC (HL) JP P,L2DC7 LD (HL),$0E LD A,$18 JR L2DCD L2DC7: LD A,(HL) CP $07 RET NZ LD A,$28 L2DCD: OUT (MAGIC),A ; write MAGIC register LD A,$44 OUT (XPAND),A ; eXPANDer pixel definition port LD IX,($42A6) LD A,(IX+$29) LD IX,$3B19 L2DDE: SRL A JR NC,L2DFE PUSH AF LD L,(IX+$02) LD H,(IX+$03) LD IY,$3DD3 LD DE,$0027 LD B,$04 L2DF2: LD A,(IY+$00) LD (HL),A INC HL LD (HL),A INC IY ADD HL,DE DJNZ L2DF2 POP AF L2DFE: LD DE,$0004 ADD IX,DE OR A JR NZ,L2DDE RET L2E07: LD IX,$4F4C LD B,$04 L2E0D: PUSH BC CALL L2CA6 POP BC LD DE,$FFEB ADD IX,DE DJNZ L2E0D RET L2E1A: LD D,(IX+$01) LD E,(IX+$00) L2E20: PUSH HL LD L,A LD A,E AND $03 OR L OUT (MAGIC),A ; write MAGIC register LD A,E LD L,D LD H,$00 ADD HL,HL ADD HL,HL ADD HL,HL LD D,H LD E,L ADD HL,HL ADD HL,HL ADD HL,DE LD D,$00 LD E,A SRL E SRL E ADD HL,DE EX DE,HL POP HL RET L2E3F: LD A,($459E) OR A JR Z,L2E8C CP $FF JR Z,L2E8C LD A,(IX+$01) CP $35 JR NZ,L2E8C LD A,(IX+$00) CP $51 JR NZ,L2E8C LD A,$01 LD ($459E),A LD IY,($42A6) LD A,(IY+$03) CP $0D JR C,L2E69 LD A,$0D L2E69: CP $01 JR Z,L2E6E INC A L2E6E: AND $FE LD HL,$3A83 CALL L2C32 CALL L3016 LD A,($454E) CP $04 RET NC LD HL,$3269 LD A,$1E LD C,$03 LD DE,$3098 JP L3004 L2E8C: LD A,(IX+$00) ADD A,$02 LD ($422F),A AND $03 RET NZ LD A,(IX+$01) ADD A,$02 LD B,A LD ($4256),A AND $03 CP $03 RET NZ LD A,(IX+$01) CP $29 JR NZ,L2EB5 LD A,($422F) CP $34 RET C CP $71 RET NC L2EB5: LD IY,$350A LD DE,$0004 LD C,$00 L2EBE: LD A,B CP (IY+$00) JR Z,L2ECD LD A,(IY+$01) ADD A,C LD C,A ADD IY,DE JR L2EBE L2ECD: LD L,(IY+$02) LD H,(IY+$03) LD A,($422F) LD B,A L2ED7: LD A,B CP (HL) RET C INC HL LD A,(HL) DEC HL DEC A ADD A,A ADD A,A ADD A,(HL) CP B JR NC,L2EEB INC HL LD A,(HL) ADD A,C LD C,A INC HL JR L2ED7 L2EEB: LD A,B SUB (HL) SRL A SRL A ADD A,C LD C,A SRL A SRL A SRL A LD HL,($42CE) LD DE,$0028 L2EFF: CP $05 JR C,L2F08 SUB $05 ADD HL,DE JR L2EFF L2F08: CALL L2C32 LD A,C AND $07 LD B,A LD A,$80 JR Z,L2F17 L2F13: SRL A DJNZ L2F13 L2F17: AND (HL) RET Z XOR (HL) LD (HL),A LD IY,($42A6) DEC (IY+$28) LD A,(IY+$28) CP $9C JR Z,L2F2D CP $4C JR NZ,L2F32 L2F2D: LD A,$FF LD ($459E),A L2F32: LD IY,$3B19 LD DE,$0004 LD B,$04 LD C,$01 L2F3D: LD A,($422F) CP (IY+$00) JR NZ,L2F4D LD A,($4256) CP (IY+$01) JR Z,L2F6A L2F4D: SLA C ADD IY,DE DJNZ L2F3D LD A,($422F) LD E,A LD A,($4256) LD D,A XOR A CALL L2E20 LD A,$80 CALL L3052 LD HL,$3DCF JP L2FF1 L2F6A: PUSH BC LD E,(IY+$02) LD D,(IY+$03) LD A,$40 CALL L3052 LD IY,$4F0D LD B,$04 LD DE,$0015 L2F7F: LD A,(IY+$0D) AND $02 JR NZ,L2FC0 SET 2,(IY+$0D) LD A,(IY+$0D) AND $60 JR Z,L2FC0 LD HL,$3C1D LD A,(IX+$13) L2F97: CP (HL) INC HL JR Z,L2F9E INC HL JR L2F97 L2F9E: LD A,(HL) LD (IY+$13),A LD L,(IY+$09) LD H,(IY+$0A) CALL L2AFF LD (IY+$09),L LD (IY+$0A),H LD L,(IY+$0B) LD H,(IY+$0C) CALL L2AFF LD (IY+$0B),L LD (IY+$0C),H L2FC0: ADD IY,DE DJNZ L2F7F XOR A LD ($4257),A POP BC LD IY,($42A6) LD A,C XOR (IY+$29) LD (IY+$29),A LD A,B DEC A ADD A,A LD HL,$3817 CALL L2C32 LD E,(HL) INC HL LD D,(HL) LD ($43BE),DE LD IY,($4396) LD A,(IY+$00) LD ($42F6),A LD HL,$3DD1 L2FF1: CALL L3016 LD A,($454E) CP $03 RET NC LD HL,$3281 LD A,$00 LD C,$02 LD DE,$318E L3004: LD ($44D7),A LD A,C LD ($454E),A LD ($4576),DE LD B,$08 LD C,$18 OTIR RET L3016: LD A,$01 LD ($427F),A LD DE,($42A6) LD B,$02 OR A L3022: LD A,(DE) ADC A,(HL) DAA LD (DE),A INC HL INC DE DJNZ L3022 RET NC LD A,(DE) ADC A,$00 DAA LD (DE),A CP $01 RET NZ LD IY,($42A6) INC (IY+$04) LD A,($454E) CP $04 RET NC LD A,$04 LD ($454F),A LD C,$05 LD HL,$3271 LD A,$4A LD DE,$31E3 JP L3004 L3052: LD HL,($4526) LD (HL),A INC HL LD (HL),E INC HL LD (HL),D LD DE,$0026 ADD HL,DE LD (HL),$00 LD ($4526),HL RET L3064: XOR A LD ($4346),A LD DE,$3AF3 L306B: LD HL,$452F PUSH DE POP IY LD B,$05 LD DE,$0024 L3076: LD C,$04 L3078: LD A,(IY+$00) LD (HL),A INC IY INC HL DEC C JR NZ,L3078 ADD HL,DE DJNZ L3076 RET L3086: LD HL,$3289 LD A,$08 LD C,$01 LD DE,$3157 JP L3004 L3093: LD HL,($4576) JP (HL) RET LD A,($44D7) SUB $02 CP $0E JR NC,L30D6 LD A,$02 LD ($454F),A LD HL,$30B3 LD ($4576),HL LD A,$00 OUT (VOLAB),A ; write VOLumes of tones A & B OUT (VOLC),A ; write VOLume of tone C RET LD HL,$454F DEC (HL) RET NZ LD A,$AA OUT (VOLAB),A ; write VOLumes of tones A & B LD A,$0A OUT (VOLC),A ; write VOLume of tone C LD HL,$30C7 LD ($4576),HL RET LD A,($44D7) ADD A,$02 CP $1F JR C,L30D6 JP L3086 L30D3: LD ($4576),HL L30D6: LD ($44D7),A CALL L3212 OUT (TONEA),A ; write TONe A oscillator OUT (TONEB),A ; write TONe B oscillator OUT (TONEC),A ; write TONe C oscillator RET LD HL,$454F DEC (HL) JR Z,L30EF LD A,($44D7) INC A JR L30D6 L30EF: LD (HL),$05 LD HL,$30FB LD A,($44D7) SUB $03 JR L30D3 LD HL,$454F DEC (HL) JR Z,L3107 LD A,($44D7) DEC A JR L30D6 L3107: LD A,($44D7) CP $0F JR Z,L3119 LD HL,$454F LD (HL),$07 DEC A LD HL,$30E3 JR L30D3 L3119: LD HL,$311F DEC A JR L30D3 LD A,($44D7) INC A CP $15 JR C,L30D6 LD A,$02 LD ($454F),A LD HL,$3133 LD A,$10 JR L30D3 LD A,($44D7) ADD A,$08 CP $61 JR C,L30D6 LD HL,$454F DEC (HL) JR Z,L3146 LD A,$10 JR L30D6 L3146: LD A,$00 OUT (VOLAB),A ; write VOLumes of tones A & B OUT (VOLC),A ; write VOLume of tone C LD HL,$3097 LD ($4576),HL XOR A LD ($454E),A RET LD HL,$44D7 DEC (HL) RET NZ LD A,$AA OUT (VOLAB),A ; write VOLumes of tones A & B LD A,$0A OUT (VOLC),A ; write VOLume of tone C LD A,$18 LD HL,$316C JP L30D3 LD A,($44D7) ADD A,$02 CP $31 JP C,L30D6 LD HL,$317E LD A,$2E JP L30D3 LD A,($44D7) SUB $02 CP $18 JP NZ,L30D6 LD HL,$316C JP L30D3 LD A,($44D7) ADD A,$02 CP $0D JR NC,L31AE LD ($44D7),A CALL L3212 OUT (TONEA),A ; write TONe A oscillator LD A,($44D7) CP $02 JR NZ,L31A9 DEC HL JR L31AA L31A9: INC HL L31AA: LD A,(HL) OUT (TONEB),A ; write TONe B oscillator RET L31AE: XOR A OUT (VOLAB),A ; write VOLumes of tones A & B LD A,$0A LD ($44D7),A LD HL,$31BD LD ($4576),HL RET LD HL,$31C4 LD A,$B8 OUT (VOLAB),A ; write VOLumes of tones A & B LD A,($44D7) SUB $02 JP M,L31D9 LD ($44D7),A CALL L3212 OUT (TONEA),A ; write TONe A oscillator INC HL LD A,(HL) OUT (TONEB),A ; write TONe B oscillator RET L31D9: XOR A OUT (VOLAB),A ; write VOLumes of tones A & B LD HL,L3086 LD ($4576),HL RET LD HL,$454F DEC (HL) RET NZ LD (HL),$04 LD HL,$44D7 LD A,(HL) AND $F0 LD C,A LD A,(HL) AND $0F DEC A JP P,L3201 LD A,C SUB $10 JP Z,L3086 LD C,A LD A,$0A L3201: OUT (VOLC),A ; write VOLume of tone C LD B,A OR C LD (HL),A SLA A SLA A SLA A SLA A OR B OUT (VOLAB),A ; write VOLumes of tones A & B RET L3212: CP $2C JR C,L3222 LD HL,$3255 L3219: CP (HL) INC HL JR Z,L3220 INC HL JR L3219 L3220: LD A,(HL) RET L3222: LD HL,$322A CALL L2C32 LD A,(HL) RET DB $7E DB $FC DB $4B DB $97 DB $35 DB $6C DB $29 DB $53 DB $22 DB $44 DB $1C DB $39 DB $18 DB $32 DB $F8 DB $D7 DB $BD DB $A8 DB $96 DB $84 DB $7E DB $73 DB $67 DB $61 DB $5E DB $57 DB $53 DB $4E DB $4A DB $47 DB $44 DB $41 DB $3E DB $3B DB $39 DB $37 DB $35 DB $33 DB $31 DB $30 DB $2E DB $2D DB $2B DB $2C DB $29 DB $2E DB $27 DB $30 DB $25 DB $34 DB $21 DB $38 DB $1E DB $40 DB $1A DB $48 DB $17 DB $50 DB $14 DB $58 DB $12 DB $60 DB $10 DB $00 DB $AA DB $0A DB $00 DB $44 DB $44 DB $44 DB $19 DB $00 DB $AA DB $0A DB $00 DB $35 DB $1E DB $10 DB $19 DB $00 DB $FF DB $0F DB $00 DB $39 DB $39 DB $39 DB $19 DB $00 DB $B8 DB $00 DB $00 DB $00 DB $FC DB $7E DB $29 DB $00 DB $00 DB $00 DB $00 DB $5E DB $5E DB $5E DB $19 ; ; Opening Music Score ; L3291: OUTPUT SNDBX,$35,$1F,$FC,$00,$00,$00,$AA,$00 CALL L3328 VOLUME $99,$00 ; VA = 9, VB = 9, VC= 0, NM = 0 NOTE2 $01,GS3,GS0 VOLUME $90,$00 ; VA = 0, VB = 9, VC= 0, NM = 0 NOTE2 $01,GS3,GS0 VOLUME $99,$00 ; VA = 9, VB = 9, VC= 0, NM = 0 NOTE2 $01,GS4,GS0 VOLUME $90,$00 ; VA = 0, VB = 9, VC= 0, NM = 0 NOTE2 $01,GS4,GS0 VOLUME $09,$00 ; VA = 9, VB = 0, VC= 0, NM = 0 NOTE2 $01,DS4,GS0 VOLUME $00,$00 ; VA = 0, VB = 0, VC= 0, NM = 0 NOTE2 $01,DS4,GS0 VOLUME $99,$00 ; VA = 9, VB = 9, VC= 0, NM = 0 NOTE2 $01, C4,$9E VOLUME $90,$00 ; VA = 0, VB = 9, VC= 0, NM = 0 NOTE2 $01, C4,$9E VOLUME $99,$00 ; VA = 9, VB = 9, VC= 0, NM = 0 NOTE2 $01,GS4,GS0 NOTE2 $01,DS4,GS0 VOLUME $90,$00 ; VA = 0, VB = 9, VC= 0, NM = 0 NOTE2 $02,DS4,GS0 VOLUME $09,$00 ; VA = 9, VB = 0, VC= 0, NM = 0 NOTE2 $02, C4,GS0 VOLUME $90,$00 ; VA = 0, VB = 9, VC= 0, NM = 0 NOTE2 $02, C4, D1 CALL L3328 VOLUME $99,$00 ; VA = 9, VB = 9, VC= 0, NM = 0 NOTE2 $01,AS3, D1 NOTE2 $01, B3, D1 NOTE2 $01, C4, D1 VOLUME $90,$00 ; VA = 0, VB = 9, VC= 0, NM = 0 NOTE2 $01, C4, D1 VOLUME $99,$00 ; VA = 9, VB = 9, VC= 0, NM = 0 NOTE2 $01, C4, E1 NOTE2 $01,CS4, E1 NOTE2 $01, D4, E1 VOLUME $90,$00 ; VA = 0, VB = 9, VC= 0, NM = 0 NOTE2 $01, D4,FS1 NOTE2 $01,DS4,FS1 NOTE2 $01, E4,FS1 VOLUME $90,$00 ; VA = 0, VB = 9, VC= 0, NM = 0 NOTE2 $01, E4,FS1 VOLUME $99,$00 ; VA = 9, VB = 9, VC= 0, NM = 0 NOTE2 $02, G4, G1 VOLUME $90,$00 ; VA = 0, VB = 9, VC= 0, NM = 0 NOTE2 $02, G4, G1 QUIET L3328: VOLUME $99,$00 ; VA = 9, VB = 9, VC= 0, NM = 0 NOTE2 $01, G3,$FC VOLUME $90,$00 ; VA = 0, VB = 9, VC= 0, NM = 0 NOTE2 $01, G3,$FC VOLUME $99,$00 ; VA = 9, VB = 9, VC= 0, NM = 0 NOTE2 $01, G4,$FC VOLUME $90,$00 ; VA = 0, VB = 9, VC= 0, NM = 0 NOTE2 $01, G4,$FC VOLUME $09,$00 ; VA = 9, VB = 0, VC= 0, NM = 0 NOTE2 $01, D4,$FC VOLUME $00,$00 ; VA = 0, VB = 0, VC= 0, NM = 0 NOTE2 $01, D4,$FC VOLUME $99,$00 ; VA = 9, VB = 9, VC= 0, NM = 0 NOTE2 $01, B3, D1 VOLUME $90,$00 ; VA = 0, VB = 9, VC= 0, NM = 0 NOTE2 $01, B3, D1 VOLUME $99,$00 ; VA = 9, VB = 9, VC= 0, NM = 0 NOTE2 $01, G4,$FC NOTE2 $01, D4,$FC VOLUME $90,$00 ; VA = 0, VB = 9, VC= 0, NM = 0 NOTE2 $02, D4,$FC VOLUME $09,$00 ; VA = 9, VB = 0, VC= 0, NM = 0 NOTE2 $02, B3,$FC VOLUME $90,$00 ; VA = 0, VB = 9, VC= 0, NM = 0 NOTE2 $02, B3, D1 RET DB $1E DB $00 DB $32 DB $11 DB $56 DB $00 DB $32 DB $11 DB $25 DB $07 DB $0C DB $11 DB $39 DB $07 DB $10 DB $11 DB $5D DB $07 DB $10 DB $11 DB $75 DB $07 DB $0C DB $11 DB $25 DB $0C DB $0C DB $FF DB $39 DB $0C DB $10 DB $FF DB $51 DB $0C DB $04 DB $FF DB $5D DB $0C DB $10 DB $FF DB $75 DB $0C DB $0C DB $FF DB $25 DB $13 DB $0C DB $11 DB $39 DB $13 DB $04 DB $11 DB $45 DB $13 DB $1C DB $11 DB $69 DB $13 DB $04 DB $11 DB $75 DB $13 DB $0C DB $11 DB $25 DB $18 DB $0C DB $FF DB $45 DB $18 DB $0B DB $F1 DB $56 DB $18 DB $0B DB $1F DB $75 DB $18 DB $0C DB $FF DB $1E DB $1F DB $13 DB $F1 DB $3E DB $1F DB $0B DB $F1 DB $5D DB $1F DB $0B DB $1F DB $75 DB $1F DB $13 DB $1F DB $3E DB $24 DB $0B DB $1F DB $51 DB $24 DB $04 DB $FF DB $5D DB $24 DB $0B DB $F1 DB $1D DB $28 DB $14 DB $0F DB $39 DB $28 DB $04 DB $FF DB $69 DB $28 DB $04 DB $FF DB $75 DB $28 DB $14 DB $F0 DB $44 DB $2B DB $0C DB $00 DB $56 DB $2B DB $0C DB $00 DB $1D DB $2F DB $14 DB $01 DB $39 DB $2F DB $04 DB $11 DB $69 DB $2F DB $04 DB $11 DB $75 DB $2F DB $14 DB $10 DB $1E DB $34 DB $13 DB $1F DB $39 DB $34 DB $04 DB $FF DB $44 DB $34 DB $1E DB $00 DB $69 DB $34 DB $04 DB $FF DB $75 DB $34 DB $13 DB $F1 DB $25 DB $3B DB $0C DB $11 DB $39 DB $3B DB $10 DB $11 DB $51 DB $3B DB $04 DB $11 DB $5D DB $3B DB $10 DB $11 DB $75 DB $3B DB $0C DB $11 DB $25 DB $40 DB $07 DB $F1 DB $39 DB $40 DB $10 DB $FF DB $51 DB $40 DB $04 DB $FF DB $5D DB $40 DB $10 DB $FF DB $7A DB $40 DB $07 DB $1F DB $1E DB $47 DB $07 DB $F1 DB $39 DB $47 DB $04 DB $11 DB $45 DB $47 DB $1C DB $11 DB $69 DB $47 DB $04 DB $11 DB $81 DB $47 DB $07 DB $1F DB $1E DB $4C DB $07 DB $1F DB $2D DB $4C DB $04 DB $FF DB $45 DB $4C DB $0B DB $F1 DB $56 DB $4C DB $0B DB $1F DB $75 DB $4C DB $04 DB $FF DB $81 DB $4C DB $07 DB $F1 DB $25 DB $53 DB $13 DB $1F DB $3E DB $53 DB $0B DB $F1 DB $5D DB $53 DB $0B DB $1F DB $6E DB $53 DB $13 DB $F1 DB $25 DB $58 DB $24 DB $FF DB $51 DB $58 DB $04 DB $FF DB $5D DB $58 DB $24 DB $FF DB $1E DB $5F DB $6A DB $FF DB $00 DB $1D DB $88 DB $BA DB $34 DB $24 DB $81 DB $C1 DB $34 DB $25 DB $80 DB $CC DB $34 DB $2C DB $79 DB $CF DB $34 DB $31 DB $74 DB $D2 DB $34 DB $38 DB $6D DB $DD DB $34 DB $3D DB $68 DB $E8 DB $34 DB $44 DB $61 DB $F1 DB $34 DB $49 DB $5C DB $F8 DB $34 DB $50 DB $55 DB $01 DB $35 DB $00 DB $02 DB $1C DB $36 DB $10 DB $4E DB $10 DB $00 DB $09 DB $02 DB $15 DB $03 DB $3D DB $02 DB $49 DB $02 DB $55 DB $02 DB $00 DB $49 DB $02 DB $00 DB $42 DB $09 DB $00 DB $09 DB $02 DB $15 DB $03 DB $21 DB $06 DB $31 DB $02 DB $3D DB $0E DB $00 DB $09 DB $02 DB $15 DB $12 DB $31 DB $02 DB $3D DB $02 DB $49 DB $09 DB $00 DB $15 DB $09 DB $26 DB $01 DB $31 DB $02 DB $49 DB $09 DB $00 DB $15 DB $02 DB $2C DB $08 DB $49 DB $02 DB $00 DB $09 DB $02 DB $21 DB $02 DB $3D DB $02 DB $55 DB $02 DB $00 DB $02 DB $09 DB $1A DB $09 DB $3D DB $02 DB $4E DB $09 DB $00 DB $03 DB $18 DB $66 DB $35 DB $07 DB $06 DB $6A DB $35 DB $0B DB $06 DB $6A DB $35 DB $0F DB $1A DB $76 DB $35 DB $13 DB $06 DB $78 DB $35 DB $17 DB $06 DB $78 DB $35 DB $1B DB $14 DB $84 DB $35 DB $1F DB $04 DB $8C DB $35 DB $23 DB $04 DB $8C DB $35 DB $27 DB $02 DB $94 DB $35 DB $2B DB $02 DB $94 DB $35 DB $2F DB $02 DB $94 DB $35 DB $33 DB $02 DB $94 DB $35 DB $37 DB $1A DB $76 DB $35 DB $3B DB $06 DB $6A DB $35 DB $3F DB $06 DB $6A DB $35 DB $43 DB $16 DB $98 DB $35 DB $47 DB $06 DB $9E DB $35 DB $4B DB $06 DB $9E DB $35 DB $4F DB $14 DB $84 DB $35 DB $53 DB $04 DB $AA DB $35 DB $57 DB $04 DB $AA DB $35 DB $5B DB $1A DB $76 DB $35 DB $20 DB $0C DB $58 DB $0C DB $20 DB $01 DB $34 DB $01 DB $4C DB $01 DB $58 DB $01 DB $70 DB $01 DB $84 DB $01 DB $20 DB $1A DB $20 DB $01 DB $34 DB $01 DB $40 DB $01 DB $64 DB $01 DB $70 DB $01 DB $84 DB $01 DB $20 DB $06 DB $40 DB $04 DB $58 DB $04 DB $70 DB $06 DB $34 DB $01 DB $4C DB $01 DB $58 DB $01 DB $70 DB $01 DB $34 DB $01 DB $70 DB $01 DB $20 DB $03 DB $34 DB $10 DB $7C DB $03 DB $28 DB $01 DB $34 DB $01 DB $40 DB $01 DB $64 DB $01 DB $70 DB $01 DB $7C DB $01 DB $20 DB $01 DB $4C DB $01 DB $58 DB $01 DB $84 DB $01 DB $1E DB $D0 DB $35 DB $26 DB $DF DB $35 DB $32 DB $E4 DB $35 DB $3E DB $F3 DB $35 DB $4A DB $02 DB $36 DB $56 DB $13 DB $36 DB $62 DB $24 DB $36 DB $6E DB $33 DB $36 DB $7A DB $42 DB $36 DB $82 DB $47 DB $36 DB $01 DB $0A DB $0D DB $0B DB $19 DB $09 DB $35 DB $0A DB $41 DB $09 DB $4D DB $0A DB $59 DB $09 DB $00 DB $41 DB $06 DB $4D DB $0D DB $00 DB $01 DB $0E DB $0D DB $0F DB $19 DB $07 DB $29 DB $0F DB $35 DB $0F DB $41 DB $0B DB $4D DB $05 DB $00 DB $0D DB $0E DB $19 DB $09 DB $25 DB $0A DB $29 DB $07 DB $35 DB $0D DB $41 DB $0E DB $4D DB $09 DB $00 DB $01 DB $06 DB $0D DB $0D DB $19 DB $06 DB $25 DB $0D DB $35 DB $0E DB $41 DB $0D DB $4D DB $06 DB $59 DB $0D DB $00 DB $01 DB $0A DB $0D DB $0D DB $19 DB $0A DB $25 DB $0D DB $35 DB $0E DB $41 DB $0D DB $4D DB $0A DB $59 DB $0D DB $00 DB $0D DB $0E DB $19 DB $05 DB $25 DB $06 DB $29 DB $0B DB $35 DB $0D DB $41 DB $0E DB $4D DB $05 DB $00 DB $01 DB $0E DB $0D DB $0F DB $19 DB $0B DB $29 DB $0F DB $35 DB $0F DB $41 DB $07 DB $4D DB $09 DB $00 DB $41 DB $0A DB $4D DB $0D DB $00 DB $01 DB $06 DB $0D DB $07 DB $19 DB $05 DB $35 DB $06 DB $41 DB $05 DB $4D DB $06 DB $59 DB $05 DB $00 DB $50 DB $2D DB $50 DB $25 DB $50 DB $25 DB $50 DB $2D DB $46 DB $2D DB $5A DB $2D DB $0F DB $74 DB $36 DB $1F DB $80 DB $36 DB $33 DB $86 DB $36 DB $3B DB $94 DB $36 DB $53 DB $9E DB $36 DB $5F DB $A8 DB $36 DB $29 DB $01 DB $35 DB $02 DB $53 DB $03 DB $71 DB $04 DB $79 DB $05 DB $88 DB $06 DB $35 DB $07 DB $71 DB $08 DB $88 DB $09 DB $29 DB $0A DB $31 DB $0B DB $3C DB $0C DB $68 DB $0D DB $74 DB $0E DB $7D DB $0F DB $88 DB $10 DB $29 DB $11 DB $38 DB $12 DB $6D DB $13 DB $7D DB $14 DB $88 DB $15 DB $29 DB $16 DB $38 DB $17 DB $6D DB $18 DB $7D DB $19 DB $88 DB $1A DB $53 DB $1B DB $88 DB $1C DB $01 DB $01 DB $01 DB $02 DB $02 DB $02 DB $01 DB $03 DB $02 DB $03 DB $03 DB $03 DB $03 DB $03 DB $03 DB $03 DB $04 DB $04 DB $05 DB $06 DB $06 DB $04 DB $04 DB $05 DB $06 DB $06 DB $04 DB $06 DB $A8 DB $37 DB $A8 DB $37 DB $02 DB $38 DB $0A DB $38 DB $A8 DB $37 DB $A9 DB $37 DB $02 DB $38 DB $0C DB $38 DB $A9 DB $37 DB $A9 DB $37 DB $AC DB $37 DB $D2 DB $37 DB $AA DB $37 DB $A9 DB $37 DB $04 DB $38 DB $08 DB $38 DB $AB DB $37 DB $AA DB $37 DB $06 DB $38 DB $0E DB $38 DB $AB DB $37 DB $AB DB $37 DB $04 DB $38 DB $10 DB $38 DB $AC DB $37 DB $A8 DB $37 DB $D2 DB $37 DB $A8 DB $37 DB $AD DB $37 DB $D2 DB $37 DB $D1 DB $37 DB $08 DB $38 DB $AE DB $37 DB $AB DB $37 DB $08 DB $38 DB $08 DB $38 DB $AF DB $37 DB $D3 DB $37 DB $09 DB $38 DB $12 DB $38 DB $B4 DB $37 DB $D8 DB $37 DB $09 DB $38 DB $12 DB $38 DB $B9 DB $37 DB $DD DB $37 DB $09 DB $38 DB $D2 DB $37 DB $BD DB $37 DB $AD DB $37 DB $08 DB $38 DB $08 DB $38 DB $BE DB $37 DB $EA DB $37 DB $09 DB $38 DB $08 DB $38 DB $C2 DB $37 DB $F6 DB $37 DB $09 DB $38 DB $12 DB $38 DB $C7 DB $37 DB $FB DB $37 DB $09 DB $38 DB $12 DB $38 DB $CC DB $37 DB $CC DB $37 DB $CC DB $37 DB $D0 DB $37 DB $CC DB $37 DB $CD DB $37 DB $CC DB $37 DB $D0 DB $37 DB $CD DB $37 DB $CF DB $37 DB $01 DB $38 DB $01 DB $38 DB $CE DB $37 DB $01 DB $38 DB $CE DB $37 DB $D1 DB $37 DB $CE DB $37 DB $CE DB $37 DB $CE DB $37 DB $D1 DB $37 DB $CC DB $37 DB $D0 DB $37 DB $D0 DB $37 DB $13 DB $38 DB $CC DB $37 DB $D0 DB $37 DB $D0 DB $37 DB $13 DB $38 DB $CF DB $37 DB $CF DB $37 DB $CD DB $37 DB $01 DB $38 DB $CE DB $37 DB $D1 DB $37 DB $D1 DB $37 DB $15 DB $38 DB $CE DB $37 DB $CE DB $37 DB $D1 DB $37 DB $15 DB $38 DB $D0 DB $37 DB $CF DB $37 DB $D0 DB $37 DB $D0 DB $37 DB $D1 DB $37 DB $CF DB $37 DB $D1 DB $37 DB $D1 DB $37 DB $01 DB $03 DB $04 DB $05 DB $02 DB $07 DB $09 DB $4A DB $0B DB $10 DB $00 DB $0C DB $4B DB $0C DB $10 DB $00 DB $0C DB $4A DB $13 DB $00 DB $0E DB $0C DB $49 DB $13 DB $00 DB $0F DB $4B DB $0E DB $0A DB $00 DB $0C DB $4B DB $0F DB $0A DB $00 DB $0C DB $0D DB $0E DB $10 DB $12 DB $11 DB $13 DB $06 DB $4A DB $0B DB $10 DB $00 DB $0D DB $4B DB $0C DB $10 DB $00 DB $06 DB $4B DB $0C DB $0E DB $0F DB $05 DB $06 DB $09 DB $14 DB $15 DB $19 DB $1A DB $00 DB $0A DB $4B DB $01 DB $02 DB $07 DB $0B DB $10 DB $11 DB $12 DB $16 DB $17 DB $00 DB $0A DB $4B DB $0E DB $0A DB $00 DB $08 DB $4B DB $0F DB $0A DB $0B DB $00 DB $0D DB $0F DB $91 DB $02 DB $87 DB $04 DB $93 DB $09 DB $08 DB $0A DB $92 DB $06 DB $92 DB $03 DB $93 DB $08 DB $93 DB $09 DB $0B DB $91 DB $0D DB $93 DB $10 DB $37 DB $38 DB $55 DB $38 DB $59 DB $38 DB $5B DB $38 DB $3F DB $38 DB $56 DB $38 DB $55 DB $38 DB $5C DB $38 DB $47 DB $38 DB $57 DB $38 DB $5A DB $38 DB $56 DB $38 DB $4E DB $38 DB $58 DB $38 DB $5A DB $38 DB $59 DB $38 DB $8C DB $11 DB $12 DB $16 DB $17 DB $1B DB $00 DB $14 DB $8C DB $14 DB $15 DB $19 DB $1A DB $1C DB $00 DB $16 DB $94 DB $01 DB $02 DB $03 DB $07 DB $00 DB $0C DB $95 DB $04 DB $05 DB $06 DB $09 DB $00 DB $0C DB $15 DB $16 DB $11 DB $13 DB $14 DB $0C DB $0D DB $10 DB $65 DB $38 DB $66 DB $38 DB $67 DB $38 DB $68 DB $38 DB $17 DB $18 DB $19 DB $1A DB $04 DB $29 DB $01 DB $1F DB $39 DB $23 DB $39 DB $04 DB $29 DB $19 DB $27 DB $39 DB $2B DB $39 DB $05 DB $41 DB $01 DB $79 DB $3A DB $7E DB $3A DB $05 DB $65 DB $01 DB $79 DB $3A DB $7E DB $3A DB $04 DB $7D DB $01 DB $1F DB $39 DB $23 DB $39 DB $09 DB $46 DB $25 DB $2F DB $39 DB $38 DB $39 DB $0D DB $50 DB $0D DB $41 DB $39 DB $4E DB $39 DB $09 DB $5E DB $25 DB $5B DB $39 DB $64 DB $39 DB $04 DB $7D DB $19 DB $27 DB $39 DB $2B DB $39 DB $08 DB $22 DB $29 DB $6D DB $39 DB $75 DB $39 DB $08 DB $7E DB $29 DB $6D DB $39 DB $75 DB $39 DB $0A DB $50 DB $35 DB $7D DB $39 DB $87 DB $39 DB $07 DB $28 DB $35 DB $91 DB $39 DB $98 DB $39 DB $06 DB $44 DB $35 DB $9F DB $39 DB $A5 DB $39 DB $06 DB $68 DB $35 DB $9F DB $39 DB $A5 DB $39 DB $07 DB $78 DB $35 DB $AB DB $39 DB $B2 DB $39 DB $09 DB $38 DB $59 DB $B9 DB $39 DB $C2 DB $39 DB $0A DB $50 DB $59 DB $CB DB $39 DB $D5 DB $39 DB $09 DB $6E DB $59 DB $DF DB $39 DB $E8 DB $39 DB $0B DB $28 DB $19 DB $F1 DB $39 DB $FC DB $39 DB $0C DB $38 DB $0D DB $07 DB $3A DB $13 DB $3A DB $0B DB $7D DB $19 DB $1F DB $3A DB $2A DB $3A DB $06 DB $7D DB $01 DB $35 DB $3A DB $3B DB $3A DB $09 DB $40 DB $01 DB $41 DB $3A DB $4A DB $3A DB $0A DB $50 DB $41 DB $53 DB $3A DB $5D DB $3A DB $09 DB $2C DB $4D DB $67 DB $3A DB $70 DB $3A DB $08 DB $02 DB $04 DB $01 DB $04 DB $02 DB $08 DB $01 DB $08 DB $01 DB $04 DB $02 DB $04 DB $01 DB $08 DB $02 DB $08 DB $01 DB $04 DB $01 DB $04 DB $02 DB $02 DB $08 DB $01 DB $04 DB $02 DB $04 DB $01 DB $01 DB $08 DB $02 DB $08 DB $02 DB $08 DB $08 DB $02 DB $04 DB $02 DB $04 DB $04 DB $02 DB $04 DB $01 DB $01 DB $08 DB $08 DB $04 DB $04 DB $02 DB $08 DB $02 DB $08 DB $08 DB $02 DB $08 DB $01 DB $01 DB $04 DB $04 DB $08 DB $02 DB $08 DB $01 DB $01 DB $04 DB $02 DB $04 DB $02 DB $04 DB $01 DB $08 DB $01 DB $08 DB $02 DB $02 DB $04 DB $01 DB $08 DB $02 DB $08 DB $08 DB $08 DB $08 DB $08 DB $01 DB $04 DB $02 DB $04 DB $04 DB $04 DB $04 DB $04 DB $01 DB $08 DB $08 DB $01 DB $01 DB $04 DB $04 DB $04 DB $02 DB $02 DB $08 DB $04 DB $04 DB $01 DB $01 DB $08 DB $08 DB $08 DB $02 DB $02 DB $04 DB $08 DB $02 DB $02 DB $04 DB $01 DB $04 DB $01 DB $04 DB $02 DB $08 DB $02 DB $08 DB $01 DB $01 DB $08 DB $02 DB $04 DB $04 DB $01 DB $08 DB $04 DB $04 DB $02 DB $08 DB $08 DB $01 DB $08 DB $02 DB $04 DB $02 DB $04 DB $01 DB $01 DB $04 DB $02 DB $02 DB $08 DB $01 DB $08 DB $01 DB $08 DB $01 DB $04 DB $01 DB $04 DB $02 DB $04 DB $04 DB $02 DB $04 DB $01 DB $08 DB $08 DB $01 DB $08 DB $02 DB $08 DB $02 DB $08 DB $01 DB $08 DB $01 DB $04 DB $04 DB $04 DB $02 DB $08 DB $02 DB $04 DB $01 DB $04 DB $01 DB $08 DB $08 DB $08 DB $02 DB $04 DB $02 DB $08 DB $01 DB $04 DB $04 DB $01 DB $04 DB $02 DB $04 DB $02 DB $04 DB $01 DB $08 DB $01 DB $08 DB $02 DB $08 DB $08 DB $02 DB $08 DB $02 DB $08 DB $01 DB $08 DB $01 DB $04 DB $01 DB $04 DB $04 DB $02 DB $04 DB $01 DB $08 DB $08 DB $02 DB $08 DB $02 DB $04 DB $02 DB $04 DB $01 DB $08 DB $08 DB $08 DB $08 DB $08 DB $01 DB $04 DB $02 DB $04 DB $01 DB $04 DB $02 DB $04 DB $01 DB $08 DB $02 DB $08 DB $01 DB $08 DB $02 DB $04 DB $04 DB $04 DB $04 DB $08 DB $01 DB $04 DB $04 DB $02 DB $04 DB $02 DB $08 DB $02 DB $08 DB $01 DB $04 DB $02 DB $04 DB $01 DB $04 DB $01 DB $08 DB $01 DB $08 DB $08 DB $02 DB $08 DB $02 DB $02 DB $04 DB $01 DB $01 DB $04 DB $02 DB $02 DB $08 DB $01 DB $01 DB $08 DB $02 DB $04 DB $04 DB $01 DB $04 DB $02 DB $08 DB $01 DB $04 DB $02 DB $04 DB $01 DB $08 DB $02 DB $08 DB $08 DB $01 DB $08 DB $08 DB $02 DB $04 DB $02 DB $04 DB $01 DB $04 DB $01 DB $08 DB $04 DB $04 DB $02 DB $08 DB $02 DB $08 DB $01 DB $08 DB $01 DB $04 DB $08 DB $01 DB $08 DB $02 DB $08 DB $02 DB $04 DB $01 DB $08 DB $04 DB $04 DB $02 DB $08 DB $01 DB $04 DB $01 DB $04 DB $02 DB $08 DB $02 DB $04 DB $04 DB $01 DB $04 DB $02 DB $08 DB $08 DB $01 DB $00 DB $01 DB $00 DB $03 DB $00 DB $05 DB $00 DB $07 DB $00 DB $10 DB $00 DB $20 DB $00 DB $30 DB $00 DB $50 DB $00 DB $02 DB $A3 DB $3A DB $00 DB $04 DB $B7 DB $3A DB $00 DB $08 DB $CB DB $3A DB $00 DB $16 DB $DF DB $3A DB $05 DB $45 DB $45 DB $40 DB $04 DB $44 DB $44 DB $40 DB $00 DB $44 DB $44 DB $40 DB $01 DB $44 DB $44 DB $40 DB $05 DB $45 DB $45 DB $40 DB $04 DB $45 DB $45 DB $40 DB $04 DB $44 DB $44 DB $40 DB $05 DB $44 DB $44 DB $40 DB $00 DB $44 DB $44 DB $40 DB $00 DB $45 DB $45 DB $40 DB $05 DB $45 DB $45 DB $40 DB $04 DB $44 DB $44 DB $40 DB $05 DB $44 DB $44 DB $40 DB $04 DB $44 DB $44 DB $40 DB $05 DB $45 DB $45 DB $40 DB $11 DB $51 DB $51 DB $50 DB $11 DB $01 DB $11 DB $10 DB $11 DB $51 DB $11 DB $10 DB $11 DB $11 DB $11 DB $10 DB $11 DB $51 DB $51 DB $50 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $80 DB $FF DB $FF DB $40 DB $40 DB $80 DB $40 DB $40 DB $80 DB $40 DB $40 DB $80 DB $20 DB $20 DB $01 DB $FF DB $FF DB $FF DB $20 DB $07 DB $F7 DB $00 DB $84 DB $07 DB $10 DB $01 DB $20 DB $43 DB $57 DB $0A DB $84 DB $43 DB $70 DB $0A DB $00 DB $0F DB $FF DB $C0 DB $03 DB $FF DB $F0 DB $00 DB $FF DB $FC DB $00 DB $3F DB $90 DB $40 DB $70 DB $60 DB $00 DB $02 DB $C0 DB $00 DB $80 DB $38 DB $80 DB $78 DB $00 DB $02 DB $C0 DB $00 DB $70 DB $30 DB $80 DB $80 DB $00 DB $02 DB $C0 DB $00 DB $60 DB $28 DB $80 DB $88 DB $00 DB $02 DB $C0 DB $00 DB $50 DB $28 DB $B0 DB $BC DB $00 DB $02 DB $C0 DB $00 DB $70 DB $28 DB $B0 DB $BC DB $00 DB $02 DB $C0 DB $00 DB $28 DB $0A DB $E0 DB $F8 DB $FA DB $00 DB $5A DB $00 DB $28 DB $0A DB $E0 DB $F8 DB $FA DB $00 DB $5A DB $00 DB $28 DB $00 DB $E0 DB $F8 DB $FA DB $00 DB $5A DB $00 DB $50 DB $00 DB $E0 DB $F8 DB $FA DB $00 DB $5A DB $00 DB $1E DB $00 DB $E0 DB $F8 DB $FA DB $00 DB $5A DB $00 DB $1C DB $00 DB $E0 DB $F8 DB $FA DB $00 DB $50 DB $00 DB $14 DB $00 DB $E0 DB $F8 DB $FA DB $00 DB $50 DB $00 DB $0A DB $00 DB $E0 DB $F8 DB $FA DB $00 DB $50 DB $00 DB $0A DB $00 DB $E0 DB $F8 DB $FA DB $00 DB $46 DB $00 DB $08 DB $00 DB $E0 DB $F8 DB $FA DB $00 DB $46 DB $00 DB $08 DB $00 DB $E0 DB $F8 DB $FA DB $00 DB $46 DB $00 DB $08 DB $00 DB $E0 DB $F8 DB $FA DB $00 DB $3C DB $00 DB $08 DB $00 DB $E0 DB $F8 DB $FA DB $00 DB $3C DB $00 DB $08 DB $00 DB $E0 DB $F8 DB $FA DB $00 DB $3C DB $00 DB $08 DB $00 DB $D0 DB $E8 DB $FA DB $00 DB $5A DB $00 DB $08 DB $00 DB $D0 DB $E8 DB $FA DB $00 DB $5A DB $00 ; ; Game Colors ; L3BE5: DB $F6 ; COL3L - Light Blue DB $52 ; COL2L - Red DB $7F ; COL1L - Yellow DB $00 ; COL0L - Black DB $00 ; COL3R - Black DB $00 ; COL2R - Black DB $00 ; COL1R - Black DB $00 ; COL0R - Black DB $00 DB $00 DB $00 DB $00 DB $FF DB $01 DB $00 DB $01 DB $02 DB $00 DB $01 DB $02 DB $FF DB $00 DB $04 DB $FF DB $00 DB $04 DB $FF DB $00 DB $04 DB $00 DB $FF DB $01 DB $01 DB $00 DB $08 DB $01 DB $00 DB $08 DB $01 DB $00 DB $08 DB $00 DB $FF DB $01 DB $FF DB $00 DB $04 DB $00 DB $FF DB $01 DB $00 DB $01 DB $02 DB $00 DB $01 DB $02 DB $01 DB $02 DB $02 DB $01 DB $04 DB $08 DB $08 DB $04 DB $00 DB $00 DB $08 DB $00 DB $08 DB $18 DB $08 DB $30 DB $08 DB $48 DB $50 DB $25 DB $20 DB $50 DB $2D DB $01 DB $47 DB $2D DB $01 DB $59 DB $2D DB $01 DB $B9 DB $3C DB $59 DB $3C DB $65 DB $3C DB $71 DB $3C DB $71 DB $3C DB $7D DB $3C DB $7D DB $3C DB $89 DB $3C DB $89 DB $3C DB $95 DB $3C DB $95 DB $3C DB $A1 DB $3C DB $A1 DB $3C DB $AD DB $3C DB $AD DB $3C DB $01 DB $00 DB $00 DB $50 DB $00 DB $10 DB $00 DB $44 DB $02 DB $8A DB $02 DB $8A DB $00 DB $88 DB $02 DB $AA DB $02 DB $AA DB $02 DB $AA DB $00 DB $A8 DB $00 DB $20 DB $00 DB $30 DB $00 DB $74 DB $01 DB $55 DB $01 DB $55 DB $01 DB $55 DB $00 DB $54 DB $00 DB $30 DB $00 DB $B8 DB $02 DB $AA DB $02 DB $AA DB $02 DB $AA DB $00 DB $A8 DB $00 DB $3C DB $00 DB $FF DB $00 DB $FF DB $00 DB $FF DB $00 DB $FF DB $00 DB $3C DB $03 DB $23 DB $03 DB $67 DB $03 DB $67 DB $03 DB $67 DB $00 DB $EC DB $00 DB $30 DB $00 DB $10 DB $00 DB $54 DB $01 DB $55 DB $01 DB $55 DB $01 DB $55 DB $00 DB $54 DB $00 DB $30 DB $00 DB $CC DB $00 DB $10 DB $00 DB $15 DB $00 DB $10 DB $00 DB $15 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $E5 DB $3C DB $F1 DB $3C DB $E5 DB $3C DB $F1 DB $3C DB $FD DB $3C DB $09 DB $3D DB $FD DB $3C DB $09 DB $3D DB $15 DB $3D DB $21 DB $3D DB $15 DB $3D DB $21 DB $3D DB $2D DB $3D DB $39 DB $3D DB $2D DB $3D DB $39 DB $3D DB $00 DB $00 DB $2A DB $80 DB $AA DB $A0 DB $AA DB $A0 DB $AA DB $A0 DB $88 DB $80 DB $00 DB $00 DB $2A DB $80 DB $AA DB $A0 DB $AA DB $A0 DB $AA DB $A0 DB $22 DB $20 DB $00 DB $00 DB $3F DB $C0 DB $EA DB $B0 DB $EA DB $B0 DB $EA DB $B0 DB $CC DB $C0 DB $00 DB $00 DB $3F DB $C0 DB $EA DB $B0 DB $EA DB $B0 DB $EA DB $B0 DB $33 DB $30 DB $00 DB $00 DB $15 DB $40 DB $55 DB $50 DB $55 DB $50 DB $55 DB $50 DB $44 DB $40 DB $00 DB $00 DB $15 DB $40 DB $55 DB $50 DB $55 DB $50 DB $55 DB $50 DB $11 DB $10 DB $00 DB $00 DB $3F DB $C0 DB $FF DB $F0 DB $FF DB $F0 DB $FF DB $F0 DB $CC DB $C0 DB $00 DB $00 DB $3F DB $C0 DB $FF DB $F0 DB $FF DB $F0 DB $FF DB $F0 DB $33 DB $30 DB $00 DB $00 DB $3F DB $C0 DB $C8 DB $B0 DB $C8 DB $B0 DB $C0 DB $30 DB $FF DB $C0 DB $00 DB $00 DB $00 DB $00 DB $28 DB $A0 DB $28 DB $A0 DB $00 DB $00 DB $00 DB $00 DB $02 DB $6D DB $3D DB $02 DB $79 DB $3D DB $02 DB $85 DB $3D DB $02 DB $91 DB $3D DB $80 DB $9D DB $3D DB $00 DB $05 DB $00 DB $15 DB $40 DB $55 DB $50 DB $55 DB $50 DB $15 DB $40 DB $05 DB $00 DB $00 DB $00 DB $10 DB $40 DB $55 DB $50 DB $55 DB $50 DB $15 DB $40 DB $05 DB $00 DB $00 DB $00 DB $00 DB $00 DB $50 DB $50 DB $55 DB $50 DB $15 DB $40 DB $05 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $05 DB $00 DB $15 DB $40 DB $05 DB $00 DB $00 DB $00 DB $10 DB $10 DB $04 DB $40 DB $00 DB $00 DB $04 DB $40 DB $10 DB $10 L3DA9: DB "# OF PLAYERS",$00 L3DB6: DB "MUNCHER",$00 L3DBE: DB "GAME OVER",$00 L3DC8: DB "PLAYER",$00 DB $10 DB $00 DB $50 DB $00 DB $0C DB $1E DB $1E DB $0C DB $0F DB $3E DB $03 DB $3E DB $F7 DB $3D DB $03 DB $3E DB $27 DB $3E DB $1B DB $3E DB $F7 DB $3D DB $1B DB $3E DB $3F DB $3E DB $33 DB $3E DB $F7 DB $3D DB $33 DB $3E DB $57 DB $3E DB $4B DB $3E DB $F7 DB $3D DB $4B DB $3E DB $05 DB $00 DB $15 DB $40 DB $55 DB $50 DB $55 DB $50 DB $15 DB $40 DB $05 DB $00 DB $00 DB $00 DB $10 DB $40 DB $50 DB $50 DB $55 DB $50 DB $15 DB $40 DB $05 DB $00 DB $00 DB $00 DB $00 DB $00 DB $40 DB $10 DB $50 DB $50 DB $15 DB $40 DB $05 DB $00 DB $05 DB $00 DB $15 DB $40 DB $55 DB $50 DB $50 DB $50 DB $10 DB $40 DB $00 DB $00 DB $05 DB $00 DB $15 DB $40 DB $50 DB $50 DB $40 DB $10 DB $00 DB $00 DB $00 DB $00 DB $05 DB $00 DB $15 DB $40 DB $01 DB $50 DB $01 DB $50 DB $15 DB $40 DB $05 DB $00 DB $05 DB $00 DB $01 DB $40 DB $00 DB $50 DB $00 DB $50 DB $01 DB $40 DB $05 DB $00 DB $05 DB $00 DB $15 DB $40 DB $54 DB $00 DB $54 DB $00 DB $15 DB $40 DB $05 DB $00 DB $05 DB $00 DB $14 DB $00 DB $50 DB $00 DB $50 DB $00 DB $14 DB $00 DB $05 DB $00 DB $04 DB $04 DB $01 DB $01 DB $08 DB $08 DB $08 DB $02 DB $02 DB $04 DB $08 DB $02 DB $02 DB $04 DB $01 DB $04 DB $01 DB $15 DB $00 DB $98 DB $39 DB $04 DB $02 DB $08 DB $02 DB $08 DB $01 DB $01 DB $08 DB $02 DB $04 DB $04 DB $01 DB $08 DB $04 DB $04 DB $02 DB $08 DB $08 DB $01 DB $08 DB $02 DB $15 DB $00 DB $AD DB $39 DB $04 DB $02 DB $04 DB $01 DB $01 DB $04 DB $02 DB $02 DB $08 DB $01 DB $08 DB $01 DB $08 DB $01 DB $04 DB $01 DB $04 DB $02 DB $04 DB $04 DB $02 DB $15 DB $00 DB $C2 DB $39 DB $04 DB $01 DB $08 DB $08 DB $01 DB $08 DB $02 DB $08 DB $02 DB $08 DB $01 DB $08 DB $01 DB $04 DB $04 DB $04 DB $02 DB $08 DB $02 DB $04 DB $01 DB $15 DB $00 DB $D7 DB $39 DB $04 DB $01 DB $08 DB $08 DB $08 DB $02 DB $04 DB $02 DB $08 DB $01 DB $04 DB $04 DB $01 DB $04 DB $02 DB $04 DB $02 DB $04 DB $01 DB $08 DB $01 DB $15 DB $00 DB $EC DB $39 DB $08 DB $02 DB $08 DB $08 DB $02 DB $08 DB $02 DB $08 DB $01 DB $08 DB $01 DB $04 DB $01 DB $04 DB $04 DB $02 DB $04 DB $01 DB $08 DB $08 DB $02 DB $15 DB $00 DB $01 DB $3A DB $08 DB $02 DB $04 DB $02 DB $04 DB $01 DB $08 DB $08 DB $08 DB $08 DB $08 DB $01 DB $04 DB $02 DB $04 DB $01 DB $04 DB $02 DB $04 DB $01 DB $08 DB $15 DB $00 DB $16 DB $3A DB $02 DB $08 DB $01 DB $08 DB $02 DB $04 DB $04 DB $04 DB $04 DB $08 DB $01 DB $04 DB $04 DB $02 DB $04 DB $02 DB $08 DB $02 DB $08 DB $01 DB $04 DB $15 DB $00 DB $2B DB $3A DB $02 DB $04 DB $01 DB $04 DB $01 DB $08 DB $01 DB $08 DB $08 DB $02 DB $08 DB $02 DB $02 DB $04 DB $01 DB $01 DB $04 DB $02 DB $02 DB $08 DB $01 DB $15 DB $00 DB $40 DB $3A DB $01 DB $08 DB $02 DB $04 DB $04 DB $01 DB $04 DB $02 DB $08 DB $01 DB $04 DB $02 DB $04 DB $01 DB $08 DB $02 DB $08 DB $08 DB $01 DB $08 DB $08 DB $15 DB $00 DB $55 DB $3A DB $02 DB $04 DB $02 DB $04 DB $01 DB $04 DB $01 DB $08 DB $04 DB $04 DB $02 DB $08 DB $02 DB $08 DB $01 DB $08 DB $01 DB $04 DB $08 DB $01 DB $08 DB $15 DB $00 DB $6A DB $3A DB $02 DB $08 DB $02 DB $04 DB $01 DB $08 DB $04 DB $04 DB $02 DB $08 DB $01 DB $04 DB $01 DB $04 DB $02 DB $08 DB $02 DB $04 DB $04 DB $01 DB $04 DB $15 DB $00 DB $7F DB $3A DB $02 DB $08 DB $08 DB $01 DB $00 DB $01 DB $00 DB $03 DB $00 DB $05 DB $00 DB $07 DB $00 DB $10 DB $00 DB $20 DB $00 DB $30 DB $00 DB $50 DB $00 DB $15 DB $00 DB $94 DB $3A DB $02 DB $A3 DB $3A DB $00 DB $04 DB $B7 DB $3A DB $00 DB $08 DB $CB DB $3A DB $00 DB $16 DB $DF DB $3A DB $05 DB $45 DB $45 DB $40 DB $04 DB $44 DB $15 DB $00 DB $A9 DB $3A DB $44 DB $40 DB $00 DB $44 DB $44 DB $40 DB $01 DB $44 DB $44 DB $40 DB $05 DB $45 DB $45 DB $40 DB $04 DB $45 DB $45 DB $40 DB $04 DB $44 DB $44 DB $15 DB $00 DB $BE DB $3A DB $40 DB $05 DB $44 DB $44 DB $40 DB $00 DB $44 DB $44 DB $40 DB $00 DB $45 DB $45 DB $40 DB $05 DB $45 DB $45 DB $40 DB $04 DB $44 DB $44 DB $40 DB $15 DB $00 DB $D3 DB $3A DB $05 DB $44 DB $44 DB $40 DB $04 DB $44 DB $44 DB $40 DB $05 DB $45 DB $45 DB $40 DB $11 DB $51 DB $51 DB $50 DB $11 End ; End of Program