* UFO / Sea Monsters / Break It Down / Rebuild / Shoot (with variations) * APF MP1000 Cartridge * Disassembly Version .003 * ------------------------ * * Disassembly and comments by Adam Trionfo * * Revisions * --------- * Version .003 (October 2, 2010) * - Separated more graphic characters * - Figured out that $8855-$887A is program code (not data) * - Used DAMX to convert $8FEA-$8FFF to program code, but * I'm not sure if this is valid since the code has no way * to return to the main program. * * Version .002 (October 1, 2010) * - Separated many graphic characters * - Added additional comments to the graphics area * * Version .001 (September 9, 2010) * - Full disassembly using DASMX * - Added comments on how the Menu Choice is made * - Broke-up UFO Graphic into four parts * - Commented Cartridge Menu String * Misc Equates EOS EQU $FF ; End of String BIOSSTART EQU $4053 ; Start of APF System ROM Setup ORG $8000 FCB $BB ; Tell BIOS a cart is present FDB MENUSTR ; Points to Menu string on cartridge FCB '8' ; Eight Choices for Start-Up Menu FCB $00 ; Must be $00 L8005 LDAA $0000 ; Get User's Choice as Stored by System ROM CMPA #$05 ; Is the User's Choice 5 or Less? BLS L8012 ; Yes, it is, so branch SUBA #$05 ; Update User's Choice of "Shoot" version 6-8 STAA $0000 ; Store update of User's Choice JMP L8CB7 ; L8012 CMPA #$02 ; Is the User's Choice 1 or 2? BHI L8017 ; No, the User's Choice is NOT a UFO Game DECA ; L8017 CMPA #$05 ; Is the game Choice 4 or 5? BLS L801E ; Yes, it is "Shoot It Down" or "Rebuild" JMP BIOSSTART ; User Choice not on Menu, redisplay choices L801E STAA $01C4 LDAA $2002 ANDA #$3F ORAA #$80 STAA $2002 LDAA $2001 ANDA #$C7 ORAA #$38 STAA $2001 CLR $01C7 LDX #$0181 CLR $00,X STX $01E6 INX LDAB #$42 JSR $42F0 INC $0194 CLR $01F9 LDAA #$0E STAA $018B LDAA #$08 STAA $018C STAA $01AD STAA $01B5 LDX #$887B STX $01E6 LDX #$0200 LDAB #$E0 BSR L80CD LDX #$895B STX $01E6 LDAB #$90 LDX #$02E0 BSR L80CD LDX #$89EB STX $01AA STX $01A8 STX $01E6 LDAB #$10 LDX #$0370 BSR L80CD LDX #$89EB STX $01BD STX $01BF STX $01E6 LDAB #$10 LDX #$0210 BSR L80CD CLRA CLRB LDX #$0000 L80A1 STAA $00,X INX INCB BNE L80A1 LDAB #$80 L80A9 STAA $00,X INX DECB BNE L80A9 LDAA #$01 STAA $0001 STAA $0002 LDAA #$17 STAA $001D STAA $001E LDX #$896B LDAA $01C4 BEQ L80D3 CMPA #$01 BEQ L80D0 CMPA #$03 BHI L80D8 BRA L80D5 L80CD JMP $42F0 L80D0 LDX #$8ACB L80D3 BSR L811D L80D5 JMP L813A L80D8 LDAB #$55 LDX #$0230 STAB $00,X STX $01E6 INX LDAB #$0F BSR L80CD LDAB #$12 CMPA #$05 BNE L80EF LDAB #$0D L80EF LDX #$8B8B BSR L80F7 JMP L81A9 L80F7 STX $0188 LDAA $00,X CMPA #$FF BEQ L811C LDX #$00A0 JSR $411D STAB $00,X LDX $0188 INX CPX #$8BA4 BNE L80F7 LDAA $01C4 CMPA #$05 BEQ L80F7 LDAB #$03 BRA L80F7 L811C RTS L811D STX $0188 STX $01E6 LDAB #$30 LDX #$0250 JSR $42F0 LDX $0188 STX $01E6 LDAB #$30 LDX #$02F0 JSR $42F0 RTS L813A LDAA $01C4 CMPA #$03 BEQ L8146 BSR L8190 JMP L81BA L8146 LDX #$8AFB LDAB #$30 BSR L8186 BSR L8190 LDX #$0020 BSR L8166 LDX #$002C BSR L8166 LDX #$0038 BSR L8166 LDAA #$00 L8160 STAA $002B STAA $0037 BRA L81BA L8166 LDAB #$08 L8168 STX $0188 STAB $0195 LDAA #$13 L8170 STAA $00,X INX DECB BNE L8170 LDX $0188 LDAA #$21 JSR $411D LDAB $0195 SUBB #$02 BNE L8168 RTS L8186 STX $01E6 LDX #$0290 JSR $42F0 RTS L8190 LDAA #$09 LDX #$0028 BSR L819F LDAA #$09 LDX #$0034 BSR L819F RTS L819F LDAB #$05 L81A1 STAA $00,X INCA INX DECB BNE L81A1 RTS L81A9 LDX #$888B LDAB #$20 BSR L8186 BSR L8190 LDAA #$00 STAA $002A STAA $0036 BRA L8160 L81BA LDAA $001F ANDA #$BF STAA $001F LDAA $003F ANDA #$BF STAA $003F LDX #$820A STX $01C5 LDAA #$90 STAA $01FC L81D1 SEI LDX $01C7 TST $01C7 CLI BEQ L81D1 CLR $01C7 STX $01C2 TST $0181 BNE L81D1 L81E6 LDAB $00,X BEQ L81D1 LDX $01,X BSR L81F9 LDX $01C2 INX INX INX STX $01C2 BRA L81E6 L81F9 STX $01C9 L81FC LDX $01C9 JSR $428C L8202 DEX BNE L8202 INCA DECB BNE L81FC RTS L820A LDAA $0181 BNE L8257 LDAA $01AD CMPA #$14 BLS L8224 CMPA #$78 BNE L821F LDAA #$15 STAA $01AD L821F JSR $41BE BCS L8248 L8224 LDAA $01B5 CMPA #$14 BLS L8257 CMPA #$78 BNE L8234 LDAA #$15 STAA $01B5 L8234 JSR $41D9 BCC L8257 LDAA $01F2 CMPA #$21 BNE L8257 INC $01B4 CLR $01B5 BRA L8257 L8248 LDAA $01F2 CMPA #$21 BNE L8224 INC $01AC CLR $01AD BRA L8224 L8257 INC $01AD INC $01B5 INC $01A7 LDAB $01A7 LDAA $01C4 CMPA #$03 BHI L8299 ANDB #$3F BEQ L8271 L826E JMP L82E0 L8271 CMPA #$01 BHI L826E LDAA $004C CMPA #$04 BEQ L827F CMPA #$44 BNE L8283 L827F CLRB CLRA BRA L8287 L8283 LDAA #$04 LDAB #$03 L8287 STAA $004C STAA $006D STAA $0058 STAA $0079 STAB $0047 STAB $0066 STAB $0053 STAB $0072 BRA L82E0 L8299 ANDB #$07 BEQ L82A0 L829D JMP L857A L82A0 LDX #$8B8B LDAB #$19 BSR L82B0 LDX #$8BA4 LDAB #$19 BSR L82B0 BRA L829D L82B0 STAB $018A L82B3 STX $0188 LDAA $00,X LDX #$00A0 JSR $411D LDAA $00,X LDAB $0195 STAB $00,X CMPA #$0D BEQ L82D3 CMPA #$03 BEQ L82D3 CMPA #$12 BEQ L82D3 LDAA #$00 L82D3 STAA $0195 LDX $0188 INX DEC $018A BNE L82B3 RTS L82E0 INC $018A LDX #$02E0 LDAB #$20 L82E8 CLC ROL $30,X ROL $20,X ROL $10,X ROL $00,X BCC L82F9 LDAA $30,X ORAA #$01 STAA $30,X L82F9 INX DECB CMPB #$10 BNE L8302 LDX #$02E0 L8302 TSTB BNE L82E8 LDX #$0250 LDAB #$20 L830A CLC ROR $00,X ROR $10,X ROR $20,X ROR $30,X BCC L831B LDAA $00,X ORAA #$80 STAA $00,X L831B INX DECB CMPB #$10 BNE L8324 LDX #$0250 L8324 TSTB BNE L830A LDAA $018A CMPA #$04 BEQ L8331 JMP L839A L8331 CLR $018A INC $0197 LDAA $018B DECA CMPA #$0D BNE L8341 LDAA #$11 L8341 STAA $018B LDAA $018C INCA CMPA #$09 BNE L834E LDAA #$05 L834E STAA $018C LDX #$0140 TST $0190 BEQ L835C LDX #$015F L835C STX $0186 LDX #$018D BSR L839D LDX #$00C0 TST $0194 BEQ L836F LDX #$00DF L836F STX $0186 LDX #$0191 BSR L839D LDAA $0181 BNE L8390 LDAB $0182 LDAA $01C4 CMPA #$01 BNE L8393 CMPB #$31 BLS L8390 L838A INC $0181 CLR $01F9 L8390 JMP L84D8 L8393 CMPB #$62 BHI L838A BRA L8390 RTS L839A JMP L857A L839D LDAA $02,X BEQ L83BA CMPA #$08 BHI L83BB CMPA #$04 BHI L8416 BEQ L83C8 INC $02,X TST $03,X BNE L83BE DEC $01,X LDX $00,X LDAA $018B STAA $00,X L83BA RTS L83BB CLR $02,X RTS L83BE INC $01,X LDX $00,X LDAA $018C STAA $00,X RTS L83C8 STX $0188 TST $03,X BNE L83FC LDX $00,X DEX L83D2 STX $0195 LDX $0188 LDAA $0195 STAA $00,X LDAA $0196 STAA $01,X TST $03,X BNE L8401 LDX $00,X LDAA $018B STAA $00,X LDAA #$00 STAA $04,X L83F1 CPX $0186 BNE L83BA LDX $0188 INC $02,X RTS L83FC LDX $00,X INX BRA L83D2 L8401 LDX $00,X LDAA $018C STAA $00,X DEX DEX DEX DEX LDAA #$00 STAA $00,X INX INX INX INX BRA L83F1 L8416 INC $02,X LDAA $02,X SUBA #$05 TST $03,X BNE L842B LDX $00,X L8422 DEX DECA BNE L8422 LDAA #$00 STAA $04,X RTS L842B LDX $00,X L842D INX DECA BNE L842D DEX DEX DEX DEX LDAA #$00 STAA $00,X RTS L843A CMPB $00,X BEQ L8450 CMPB $01,X BNE L8445 JMP L84A3 L8445 CMPB $02,X BEQ L8490 CMPB $03,X BEQ L8472 JMP L857A L8450 BSR L84C9 LDX #$0191 STX $0188 CLR $03,X LDX #$00C0 STX $0183 LDX #$8B2B L8463 STX $01E6 LDX #$0250 L8469 LDAB #$30 BRA L8487 L846D LDX #$88CB BRA L8463 L8472 LDX #$018D STX $0188 CLR $03,X LDX #$0140 STX $0183 BRA L846D LDX #$0260 L8485 LDAB #$08 L8487 JSR $42F0 LDX $0188 JMP L8542 L8490 LDX #$018D STX $0188 INC $03,X LDX #$015F STX $0183 LDX #$88CB BRA L84BC L84A3 BSR L84C9 CLR $0197 INC $0185 LDX #$0191 STX $0188 INC $03,X LDX #$00DF STX $0183 LDX #$8B5B L84BC STX $01E6 LDX #$02F0 BRA L8469 L84C4 LDX #$0300 BRA L8485 L84C9 TST $01C7 BNE L84D4 LDX #$8C08 STX $01C7 L84D4 RTS L84D5 JMP L843A L84D8 LDAB $0197 LDX #$8BBE LDAA $0185 ANDA #$01 BEQ L84E8 LDX #$8BC2 L84E8 LDAA $01C4 CMPA #$02 BHI L84D5 TST $01AE BNE L8544 TST $01B6 BNE L8544 LDX #$015F TST $0190 BNE L8504 LDX #$0140 L8504 STX $0183 LDX #$018D CMPA #$01 BNE L851D LDAB $01C1 INCB STAB $01C1 CMPB #$64 BEQ L851D CMPB #$C8 BNE L851F L851D BSR L8546 L851F LDX #$00DF TST $0194 BNE L852A LDX #$00C0 L852A STX $0183 LDX #$0191 TST $02,X BNE L8544 LDX #$8C15 LDAA $01C7 BNE L853F STX $01C7 L853F LDX #$0191 L8542 BSR L8546 L8544 BRA L857A L8546 TST $02,X BEQ L854B RTS L854B INC $0182 INC $02,X LDAA $0183 STAA $00,X LDAA $0184 STAA $01,X TST $03,X BEQ L8571 CLR $03,X LDX $00,X LDAA $018B L8565 LDAB $0181 CMPB #$0F BNE L856E ORAA #$40 L856E STAA $00,X RTS L8571 INC $03,X LDX $00,X LDAA $018C BRA L8565 L857A LDAA $01A7 ANDA #$03 CMPA #$01 BEQ L8594 CMPA #$02 BEQ L85A1 BRA L85C1 L8589 STX $01E6 LDX #$0199 L858F LDAB #$08 JMP $42F0 L8594 LDX #$01AC BSR L8589 CLR $01BC LDX #$0029 BRA L85EB L85A1 LDX #$01B4 STAA $01BC BSR L8589 LDX #$0035 BRA L85EB L85AE LDX #$0199 STX $01E6 LDX #$01AC TST $01BC BEQ L85BF LDX #$01B4 L85BF BSR L858F L85C1 LDAA $0181 BEQ L85EA LDAB $01F9 LDX #$0000 BITB #$10 BNE L85DE L85D0 LDAA $00,X ANDA #$BF STAA $00,X INX CPX #$0181 BNE L85D0 BRA L85EA L85DE LDAA $00,X ORAA #$40 STAA $00,X INX CPX #$0181 BNE L85DE L85EA RTS L85EB TST $019B BEQ L85F3 JMP L8817 L85F3 TST $0199 BEQ L85AE BRA L85FA L85FA LDAA $0199 CMPA #$01 BNE L8627 INC $0199 LDAA $01C7 BNE L8615 STX $0188 LDX #$8BE5 STX $01C7 LDX $0188 L8615 BSR L8688 STX $019C CLR $019E LDAA #$14 STAA $00,X LDAA #$16 STAA $20,X BRA L85AE L8627 LDX $019C TST $019E BEQ L8679 CLR $019E BSR L8688 LDAA #$14 LDAB $00,X CMPB #$15 BNE L863E STAA $00,X L863E STX $019C LDAB #$16 L8643 BSR L8688 STX $0188 TST $0188 BEQ L8657 LDAA $0189 ANDA #$80 BEQ L8657 JMP L86FE L8657 LDX $019C LDAA $20,X CMPA #$12 BEQ L86A4 CMPA #$03 BEQ L86A4 CMPA #$0D BEQ L868D CMPA #$16 BEQ L8674 CMPA #$17 BEQ L8674 CMPA #$00 BNE L86BD L8674 STAB $20,X JMP L85AE L8679 INC $019E LDAA $00,X CMPA #$14 BNE L8684 CLR $00,X L8684 LDAB #$15 BRA L8643 L8688 LDAA #$20 JMP $411D L868D STX $0188 LDX #$8C3F STX $01C7 LDX $0188 LDAA #$12 TST $01BC BEQ L86B9 LDAA #$03 BRA L86B9 L86A4 LDAA $01C4 STX $0188 LDX #$8C38 STX $01C7 LDX $0188 CMPA #$05 BEQ L86BB LDAA #$00 L86B9 STAA $20,X L86BB BRA L8707 L86BD BSR L8688 STX $019F INC $019B LDAA $01C4 CMPA #$01 BEQ L86DF CMPA #$03 BNE L86F8 LDAA $019F BNE L86EB LDX #$8BF5 STX $01C7 LDAA #$FF BRA L86F3 L86DF LDAA $019F BEQ L86F8 LDAA #$05 STAA $0198 BRA L86F8 L86EB LDAA #$05 LDX #$8C19 STX $01C7 L86F3 STAA $0198 BRA L86FE L86F8 LDX #$8BC6 STX $01C7 L86FE LDX $019C LDAA $00,X CMPA #$14 BNE L8709 L8707 CLR $00,X L8709 CLR $0199 LDAA $01C4 CMPA #$03 BHI L871E TST $019B BNE L871E CLR $01C7 JMP L85AE L871E TST $0198 BNE L8726 INC $0198 L8726 TST $01BC BEQ L8788 LDAA $0198 CMPA #$FF BNE L8739 BSR L876C STX $01A8 BRA L874B L8739 LDX $01A8 BSR L877A STX $01A8 CPX #$89EB BNE L8756 LDX $01AA BSR L877A L874B STX $01AA STX $01E6 LDX #$0370 BSR L8775 L8756 DEC $0198 BNE L8739 LDX $01A8 STX $01E6 LDX #$03F0 BSR L8775 LDAA #$1F STAA $001E BRA L87C7 L876C LDAA #$01 STAA $0198 LDX #$89EB RTS L8775 LDAB #$10 JMP $42F0 L877A LDAA #$10 JSR $411D CPX #$8A8B BNE L8787 LDX #$89EB L8787 RTS L8788 LDAA $0198 CMPA #$FF BNE L8796 BSR L876C STX $01BF BRA L87A8 L8796 LDX $01BF BSR L877A STX $01BF CPX #$89EB BNE L87B3 LDX $01BD BSR L877A L87A8 STX $01BD STX $01E6 LDX #$0210 BSR L8775 L87B3 DEC $0198 BNE L8788 LDX $01BF STX $01E6 LDX #$0220 BSR L8775 LDAA #$02 STAA $0002 L87C7 LDAA $01C4 CMPA #$03 BLS L87D0 BRA L8829 L87D0 INC $019B LDX #$8A8B STX $01E6 LDX #$0390 LDAB #$40 JSR $42F0 LDAA $01A0 CMPA #$6F BHI L87EA BRA L87F5 L87EA CLR $0193 LDX $0191 LDAA $0194 BRA L87FE L87F5 CLR $018F LDX $018D LDAA $0190 L87FE TSTA BEQ L8804 DEX DEX DEX L8804 STX $019F LDAA #$19 L8809 STAA $00,X INX INCA CMPA #$1D BNE L8809 LDAA #$00 STAA $00,X BRA L8829 L8817 LDAA $019B INC $019B CMPA #$0A BEQ L8843 LDAB #$40 DECA LDX #$0390 BSR L882C L8829 JMP L85AE L882C STX $01A3 LDX #$8855 L8832 DECA BEQ L8840 DECA BEQ L8840 INX INX INX INX INX INX BRA L8832 L8840 JSR $00,X ;INFO: INDEX JUMP RTS L8843 CLR $019B LDX $019F LDAA #$00 STAA $00,X STAA $01,X STAA $02,X STAA $03,X BRA L8829 L8855 LDAA #$FE BSR L886E BEQ L886D LDAA #$BF BSR L886E BEQ L886D LDAA #$FB BSR L886E BEQ L886D LDAA #$EF BSR L886E BNE L8855 L886D RTS L886E LDX $01A3 ANDA $00,X STAA $00,X INX STX $01A3 DECB RTS * Graphics Area * -------------- * * UFO-1, UFO-2 and Sea Monsters uses Graphics Mode 1. * For more information about this mode, see the book * "APF Programming Technical Assistance Manual." * Chapter 8 is called "High Resolution Graphics." * * A quick summary: "In graphics mode 1 each byte of a * definition is interpreted as 4 bit pairs. Each bit pair * selects 1 of 4 colors as follows: * * Bit Pair Color Set 0 Color Set 1 * ---------+-------------+------------ * 0 0 | Green | White * 0 1 | Yellow | Green * 1 0 | Blue | Purple * 1 1 | Red | Orange * Border | Green | White * Blue Background (from Brick It Down) FCB $AA, $AA, $AA, $AA FCB $AA, $AA, $AA, $AA FCB $AA, $AA, $AA, $AA FCB $AA, $AA, $AA, $AA * Player, Right Half (from Brick It Down) FCB $00, $00, $3F, $3F FCB $3F, $3F, $00, $00 FCB $AA, $AA, $AA, $AA FCB $AA, $AA, $AA, $AA * Player, Left Half (from Brick It Down) FCB $00, $00, $FC, $FC FCB $FC, $FC, $3C, $3C FCB $3C, $3C, $3C, $3C FCB $3C, $3C, $3C, $3C * Blinking "Spotlight" on Right Side of Player's UFO FCB $A9, $A9, $A9, $A9 FCB $A6, $A6, $A6, $A6 FCB $9A, $9A, $9A, $9A FCB $6A, $6A, $6A, $6A * Blinking "Spotlight" on Left Side of Player's UFO FCB $6A, $6A, $6A, $6A FCB $9A, $9A, $9A, $9A FCB $A6, $A6, $A6, $A6 FCB $A9, $A9, $A9, $A9 * Sea Monster - From "Sea Monsters," Menu Choice 3 * This Sea Monster is made of three objects * * Sea Monster, Left:   $88CB - $88DA * Sea Monster, Middle: $88DB - $88EA * Sea Monster, Right:  $88EB - $88FA * SEA-MON-L FCB $6A, $6A, $9A, $98 FCB $A4, $A8, $A8, $AA FCB $AA, $AA, $00, $2A FCB $20, $22, $A2, $82 SEA-MON-M FCB $82, $00, $00, $00 FCB $FF, $FF, $3C, $3C FCB $00, $00, $00, $00 FCB $00, $88, $88, $08 SEA-MON-R FCB $A9, $A9, $A6, $26 FCB $1A, $2A, $2A, $AA FCB $AA, $AA, $00, $A8 FCB $08, $88, $A8, $2A * Blue Object (Sky or Water) FCB $AA, $AA, $AA, $AA FCB $AA, $AA, $AA, $AA FCB $AA, $AA, $AA, $AA FCB $AA, $AA, $AA, $AA * UFO Player Graphic * ------------------ * The player's UFO is made up of 4 objects in Graphic * Mode 1 (128x192). Color set 0 is used allowing for * green, yellow, blue and red. * * Left 1/4 - $890B - $891A * Left 2/4 - $891B - $892A * Right 3/4 - $892B - $893A * Right 4/4 - $893B - $894A UFO-Part1 FCB $AA, $AA, $AA, $AA FCB $AB, $AF, $FF, $FF FCB $5A, $5A, $FF, $FF FCB $AF, $AB, $AA, $AA UFO-PART2 FCB $A9, $A5, $A5, $95 FCB $95, $FF, $FF, $FF FCB $5A, $5A, $FF, $FF FCB $FF, $FF, $BF, $AF UFO-PART3 FCB $6A, $5A, $5A, $57 FCB $57, $FF, $FF, $FF FCB $5A, $5A, $FF, $FF FCB $FF, $FF, $FE, $FA UFO-PART4 FCB $AA, $AA, $AA, $AA FCB $EA, $FA, $FF, $FF FCB $5A, $5A, $FF, $FF FCB $FA, $EA, $AA, $AA * Blue Object (Sky or Water) FCB $AA, $AA, $AA, $AA FCB $AA, $AA, $AA, $AA FCB $AA, $AA, $AA, $AA FCB $AA, $AA, $AA, $AA * Blue Object (Sky or Water) FCB $AA, $AA, $AA, $AA FCB $AA, $AA, $AA, $AA FCB $AA, $AA, $AA, $AA FCB $AA, $AA, $AA, $AA * UFO-1 - From Menu Choice 1 Game * This UFO is made of three objects * * UFO-1, Left:   $896B - $897A * UFO-1, Middle: $897B - $898A * UFO-1, Right:  $898B - $899A * UFO-1L FCB $9A, $A6, $A6, $A9 FCB $A9, $AA, $22, $A8 FCB $AA, $A8, $A0, $80 FCB $02, $82, $A0, $A8 UFO-1M FCB $AA, $AA, $AA, $AA FCB $AA, $29, $68, $86 FCB $A8, $00, $2A, $2A FCB $A0, $A0, $00, $00 UFO-1R FCB $A6, $9A, $9A, $6A FCB $6A, $AA, $88, $2A FCB $AA, $2A, $0A, $02 FCB $00, $02, $0A, $2A * Red Object - This is a Red Block used in * "Break It Down" FCB $FF, $FF, $FF, $FF FCB $FF, $FF, $FF, $FF FCB $FF, $FF, $FF, $FF FCB $FF, $FF, $FF, $FF * Wave - Blue Background with a green "wave." * This is used in "Sea Monsters" beside and * below the player's ship. FCB $AA, $AA, $AA, $AA FCB $AA, $AA, $AA, $AA FCB $AA, $AA, $AA, $A2 FCB $88, $2A, $AA, $AA * Player's Missile * This is the missile that the player shoots * * Player's Missile, Half on Bottom: $89BB - $89CA * Player's Missile, Complete: $89CB - $89DA * Player's Missile, Half on Top:  $89DB - $89EA * * Unlike the enemies in this game that move from left to * right, or right to left, the player's missile animation * is NOT smooth. The missile is made up of one object, but * it takes three objects to animate it. The missile is 16 * pixels high, and it moves down the screen eight pixels * at a time. * MISSILE-B FCB $AA, $AA, $AA, $AA FCB $AA, $AA, $AA, $AA FCB $96, $96, $96, $96 FCB $96, $96, $96, $96 MISSILE-C FCB $96, $96, $96, $96 FCB $96, $96, $96, $96 FCB $96, $96, $96, $96 FCB $96, $96, $96, $96 MISSILE-T FCB $96, $96, $96, $96 FCB $96, $96, $96, $96 FCB $AA, $AA, $AA, $AA FCB $AA, $AA, $AA, $AA * Character Set, Numbers 0-9 * -------------------------- * The games that use Graphics Mode 1 have their * own set of numbers 0-9. These numbers are green on * a blue background. * Character, Number 0 FCB $AA, $AA, $AA, $AA FCB $02, $02, $22, $22 FCB $22, $22, $22, $22 FCB $22, $22, $02, $02 * Character, Number 1 FCB $AA, $AA, $AA, $AA FCB $8A, $0A, $0A, $8A FCB $8A, $8A, $8A, $8A FCB $8A, $8A, $02, $02 * Character, Number 2 FCB $AA, $AA, $AA, $AA FCB $02, $02, $22, $A2 FCB $A2, $A2, $8A, $8A FCB $2A, $2A, $02, $02 * Character, Number 3 FCB $AA, $AA, $AA, $AA FCB $02, $02, $22, $A2 FCB $A2, $82, $82, $A2 FCB $A2, $22, $02, $02 * Character, Number 4 FCB $AA, $AA, $AA, $AA FCB $22, $22, $22, $22 FCB $22, $02, $02, $A2 FCB $A2, $A2, $A2, $A2 * Character, Number 5 FCB $AA, $AA, $AA, $AA FCB $02, $02, $2A, $2A FCB $2A, $02, $02, $A2 FCB $A2, $22, $02, $02 * Character, Number 6 FCB $AA, $AA, $AA, $AA FCB $02, $02, $22, $2A FCB $2A, $02, $02, $22 FCB $22, $22, $02, $02 * Character, Number 7 FCB $AA, $AA, $AA, $AA FCB $02, $02, $22, $A2 FCB $A2, $A2, $A2, $A2 FCB $A2, $A2, $A2, $A2 * Number 8 FCB $AA, $AA, $AA, $AA FCB $02, $02, $22, $22 FCB $22, $02, $02, $22 FCB $22, $22, $02, $02 * Character, Number 9 FCB $AA, $AA, $AA, $AA FCB $02, $02, $22, $22 FCB $02, $02, $A2, $A2 FCB $A2, $A2, $02, $02 * Enemy Explosion * This is a frame of the enemies explosion * An Explosion is made up of four objects * * Enemy Explosion, Left (1):  $8A8B - $8A9A * Enemy Explosion, Middle-Left (2):  $8A9B - $8AAA * Enemy Explosion, Middle-Right (3): $8AAB - $8ABA * Enemy Explosion, Right (4):  $8ABB - $8ACA * EXPLODE-1 FCB $EA, $E8, $B8, $B3 FCB $A3, $85, $8F, $0F FCB $B7, $B7, $81, $81 FCB $FF, $FF, $D8, $D8 EXPLODE-2 FCB $AD, $AD, $FE, $FC FCB $FC, $F5, $5F, $5F FCB $37, $3F, $FF, $F7 FCB $4E, $4E, $EB, $EB EXPLODE-3 FCB $BA, $BA, $9F, $DF FCB $DF, $FF, $F5, $F5 FCB $BF, $BF, $BF, $FE FCB $FE, $EF, $EF, $AF EXPLODE-4 FCB $AB, $D3, $DE, $5E FCB $F7, $F7, $7A, $7F FCB $FA, $F6, $FE, $BE FCB $16, $16, $AE, $AE * UFO-2 - From Menu Choice 2 Game * This UFO is made of three objects * * UFO-2, Left:   $8ACB - $8ADA * UFO-2, Middle: $8ADB - $8AEA * UFO-2, Right:  $8AEB - $8AFA * UFO-2L FCB $AA, $AA, $A5, $A5 FCB $55, $6A, $55, $95 FCB $8A, $8A, $AA, $AA FCB $AA, $AA, $AA, $AA UFO-2M FCB $96, $96, $55, $AA FCB $55, $AA, $55, $69 FCB $55, $28, $28, $AA FCB $AA, $AA, $AA, $AA UFO-2R FCB $AA, $AA, $5A, $5A FCB $55, $A9, $55, $56 FCB $A2, $A2, $AA, $AA FCB $AA, $AA, $AA, $AA * Player's Boat - From "Sea Monsters," Menu Choice 3 * This Boat is made of three objects * * Boat, Left:   $8AFB - $8B0A * Boat, Middle: $8B0B - $8B1A * Boat, Right:  $8B1B - $8B2A * BOAT-L FCB $AA, $AA, $AA, $AA FCB $AA, $AA, $AA, $69 FCB $5A, $5A, $FF, $FF FCB $BF, $BD, $AF, $AF BOAT-M FCB $AA, $AA, $AA, $A9 FCB $A9, $59, $59, $59 FCB $59, $FF, $FF, $FF FCB $FF, $DD, $FF, $FF BOAT-R FCB $AA, $AA, $AA, $AA FCB $AA, $AA, $AA, $A5 FCB $96, $96, $FF, $FF FCB $FE, $DE, $FA, $FA * Yellow Fish - From "Sea Monsters," Menu Choice 3 * This Yellow Fish faces right. * * Yellow Fish (Fish-Y), Left:   $8B2B - $8B3A * Yellow Fish (Fish-Y), Middle: $8B3B - $8B4A * Yellow Fish (Fish-Y), Right:  $8B4B - $8B5A * FISH-Y-L FCB $AA, $AA, $AA, $6A FCB $59, $95, $95, $A6 FCB $A5, $A5, $95, $96 FCB $59, $6A, $AA, $AA FISH-Y-M FCB $AA, $AA, $95, $55 FCB $55, $57, $57, $55 FCB $95, $65, $95, $55 FCB $55, $96, $AA, $AA FISH-Y-R FCB $AA, $AA, $6A, $5A FCB $5A, $56, $5A, $6A FCB $5A, $56, $5A, $6A FCB $AA, $AA, $AA, $AA * Red Fish - From "Sea Monsters," Menu Choice 3 * This Red Fish faces Left. * * Red Fish (Fish-R), Left:   $8B5B - $8B6A * Red Fish (Fish-R), Middle: $8B6B - $8B7A * Red Fish (Fish-R), Right:  $8B7B - $8B8A * FISH-R-L FCB $AF, $BF, $B3, $F3 FCB $FF, $BF, $BF, $AF FCB $AA, $AB, $AF, $AC FCB $BC, $AF, $AF, $AB FISH-R-M FCB $EA, $FA, $FE, $FD FCB $FD, $FE, $FA, $EA FCB $AA, $FA, $FE, $FF FCB $FF, $FF, $FE, $FA FISH-R-R FCB $A6, $96, $5A, $6A FCB $6A, $5A, $96, $A6 FCB $AA, $A9, $A5, $A6 FCB $5A, $56, $A5, $A9 * Graphics Area? * -------------- * * I thought that these were explosions, but when I * draw them on graph paper, these "graphics" (if * that's what they are) don't match anything that * I can find in the games. * FCB $45, $46, $47, $48 FCB $49, $4A, $4B, $4C FCB $4D, $6D, $8D, $AD FCB $CD, $CC, $CB, $CA FCB $C9, $C8, $C7, $C6 FCB $C5, $A5, $85, $65 FCB $45, $51, $52, $53 FCB $54, $55, $56, $57 FCB $58, $59, $79, $99 FCB $B9, $D9, $D8, $D7 FCB $D6, $D5, $D4, $D3 FCB $D2, $D1, $B1, $91 FCB $71, $51, $FF, $30 FCB $60, $2C, $5C, $38 FCB $84, $34, $78, $04 FCB $03, $20, $04, $02 FCB $EE, $1E, $00, $12 FCB $04, $00, $64, $28 FCB $00, $10, $04, $00 FCB $64, $28, $00, $0E FCB $28, $00, $0C, $04 FCB $00, $64, $28, $00 FCB $0A, $00, $2C, $00 FCB $34, $2C, $00, $38 FCB $2C, $00, $3C, $2C FCB $00, $40, $2C, $00 FCB $44, $00, $38, $00 FCB $2D, $4E, $00, $59 FCB $38, $00, $17, $FE FCB $00, $12, $FE, $00 FCB $16, $FE, $00, $12 FCB $00, $32, $00, $14 FCB $32, $00, $1E, $32 FCB $00, $28, $32, $00 FCB $32, $00, $C8, $00 FCB $32, $00, $08, $03 FCB $E6, $08, $03, $78 FCB $08, $03, $50, $08 FCB $03, $08, $08, $02 FCB $9A, $08, $02, $78 FCB $08, $00, $58, $2C FCB $00, $2C, $20, $00 FCB $20, $0A, $00, $0A FCB $00, $32, $00, $7E FCB $32, $00, $4C, $00 FCB $32, $00, $64, $32 FCB $00, $B0, $00 * Cartridge Menu String * --------------------- * *MENUSTR FCB $EC ; Control Byte - Write 12 spaces with Dark Green * * FCB $F8 ; Control Byte - Write 24 spaces with Dark Green * FCB $F6 ; Control Byte - Write 22 spaces with Dark Green * FCC "1. TWO PLAYER" * FCB $D3 ; Control Byte - Fill 19 spaces with next byte * FCB $D3 ; Control Byte - Fill 19 spaces with next byte * FCB $60 ; Fill-Byte - ASCII $8F, (Light Green) MENUSTR FCC "1. UFO-1" FCB $D8 ; Control Byte - Fill 24 spaces with next byte FCB $8F ; Fill-Byte - ASCII $8F, (Light Green) FCC "2. UFO-2" FCB $D8 ; Control Byte - Fill 24 spaces with next byte FCB $8F ; Fill-Byte - ASCII $8F, (Light Green) FCC "3. SEA MONSTERS" FCB $D1 ; Control Byte - Fill 17 spaces with next byte FCB $8F ; Fill-Byte - ASCII $8F, (Light Green) FCC "4. BREAK IT DOWN" FCB $D0 ; Control Byte - Fill 16 spaces with next byte FCB $8F ; Fill-Byte - ASCII $8F, (Light Green) FCC "5. REBUILD" FCB $D6 ; Control Byte - Fill 22 spaces with next byte FCB $8F ; Fill-Byte - ASCII $8F, (Light Green) FCC "6. SHOOT A LITTLE" FCB $CF ; Control Byte - Fill spaces 15 with next byte FCB $8F ; Fill-Byte - ASCII $8F, (Light Green) FCC "7. SHOOT" FCB $D8 ; Control Byte - Fill 24 spaces with next byte FCB $8F ; Fill-Byte - ASCII $8F, (Light Green) FCC "8. SHOOT A LOT" FCB $D2 ; Control Byte - Fill 18 spaces with next byte FCB $8F ; Fill-Byte - ASCII $8F, (Light Green) FCB EOS L8CB7 LDX #$8FED STX $0006 LDX #$03E0 JSR $4144 LDX #$03E6 LDAA #$70 STAA $00,X STAA $01,X STAA $03,X STAA $02,X STAA $0F,X STAA $10,X STAA $11,X STAA $12,X CLRA STAA $002D LDAA #$15 LDAB $0000 CMPB #$01 BEQ L8CEA LDAA #$33 CMPB #$02 BEQ L8CEA LDAA #$64 L8CEA STAA $002A CLR $0019 JSR L8EBD INC $0019 LDAA $0026 INCA STAA $002A JSR L8EBD LDX #$8FEA STX $01E6 LDAA #$01 LDX #$0200 JSR $40CB LDX #$8FEA STX $01E6 LDAA #$01 LDX #$021F JSR $40CB LDX #$8FF0 STX $01E6 LDAA #$04 LDX #$0366 JSR $40CB LDX #$8FF0 STX $01E6 LDAA #$04 LDX #$0375 JSR $40CB LDX #$03C0 LDAA #$AF STAA $01,X STAA $1E,X LDAB $0000 CMPB #$02 BNE L8D48 STAA $3E,X STAA $3F,X L8D48 CLRA STAA $004E STAA $0045 STAA $0046 STAA $0048 STAA $0049 LDX #$0221 STX $0039 LDX #$025E STX $003B LDAA $01F8 ORAA #$8F STAA $003F LDAA $01F9 ORAA #$8F STAA $0041 LDX #$8F21 STX $01C5 STAA $01FC L8D74 LDAA $0026 BNE L8D7C LDAA $0027 BEQ L8D99 L8D7C LDAA $004E BEQ L8D74 LDX $004E CLR $004E STX $0050 L8D87 LDAB $00,X BEQ L8D74 LDX $01,X JSR L81F9 LDX $0050 INX INX INX STX $0050 BRA L8D87 L8D99 JSR $40AB CMPA #$3F BNE L8D99 CLR $01FC JSR $4296 JMP L8CB7 L8DA9 LDAA $0027 BEQ L8DCC JSR $41D9 BCC L8DCC LDX #$0235 STX $001C LDAA $004C STAA $004D LDAA $0027 STAA $002A CLR $002D INC $0019 JSR L8E07 LDAA $004D STAA $004C L8DCC LDAA $004C BEQ L8DD8 DEC $004C BNE L8DD8 JSR L8E8B L8DD8 LDAA $0026 BEQ L8DFA JSR $41BE BCC L8DFA LDX #$0226 STX $001C LDAA $0026 STAA $002A CLR $002D CLR $0019 LDAA $004B STAA $004D BSR L8E07 LDAA $004D STAA $004B L8DFA LDAA $004B BEQ L8E06 DEC $004B BNE L8E06 JSR L8E90 L8E06 RTS L8E07 LDAA $004D BNE L8E12 LDAA $01F2 CMPA #$21 BEQ L8E13 L8E12 RTS L8E13 LDAA #$14 STAA $004D LDX #$8BE5 STX $004E LDX $001C LDAA #$40 JSR $411D LDAA #$F5 STAA $01,X STAA $21,X STAA $41,X STAA $61,X STAA $81,X STAA $A1,X STAA $C1,X STAA $E1,X CLR $0052 LDX $001C LDAA $21,X STAA $01EA LDAB #$F5 STAB $21,X CMPA #$80 BEQ L8E51 LDAA #$20 JSR $411D STX $01EE BRA L8E67 L8E51 INC $0052 STX $01EE LDAA $01,X STAA $01EA LDAB #$F5 STAB $01,X CMPA #$80 BNE L8E67 BSR L8EBD RTS L8E67 LDAA $01EA LSRA LSRA LSRA LSRA ANDA #$07 EORA #$07 INCA STAA $002D LDX #$8C38 STX $004E BSR L8EBD LDAA $01F8 ORAA #$8F LDAB $0052 BNE L8E88 STAA $0041 RTS L8E88 STAA $003F RTS L8E8B LDX #$0275 BRA L8E93 L8E90 LDX #$0266 L8E93 LDAA #$80 STAA $01,X STAA $21,X STAA $41,X STAA $61,X STAA $81,X STAA $A1,X STAA $C1,X STAA $E1,X LDAB #$40 JSR $412F LDAA #$80 LDAB $01,X CMPB #$F5 BNE L8EB4 STAA $01,X L8EB4 LDAB $21,X CMPB #$F5 BNE L8EBC STAA $21,X L8EBC RTS L8EBD LDAA $002A DECA LDAB $0019 BEQ L8EC8 STAA $0027 BRA L8ECA L8EC8 STAA $0026 L8ECA LDX #$03E0 LDAA $0026 BSR L8F0E LDX #$03FE LDAA $0027 BSR L8F0E LDAA $0019 BNE L8EE2 LDX #$03E8 BSR L8EE8 RTS L8EE2 LDX #$03F7 BSR L8EE8 RTS L8EE8 LDAA $00,X LDAB $002D BEQ L8EF9 L8EEE INCA DECB L8EF0 CMPA #$7A BEQ L8EFA STAA $00,X TSTB BNE L8EEE L8EF9 RTS L8EFA STX $0033 L8EFC LDAA #$70 STAA $00,X DEX LDAA $00,X INCA CMPA #$7A BEQ L8EFC STAA $00,X LDX $0033 BRA L8EF0 L8F0E LDAB #$70 STAB $00,X L8F12 CMPA #$09 BLS L8F1C SUBA #$0A INC $00,X BRA L8F12 L8F1C ORAA #$70 STAA $01,X RTS L8F21 INC $0035 JSR L8F2E JSR L8FBB JSR L8DA9 RTS L8F2E LDX $003F STX $0043 JSR L8FD9 BEQ L8F4B LDX $0039 STX $003D LDAA $0045 STAA $0047 LDAB $0048 STAB $004A BSR L8F4C STX $0039 STAA $0045 STAB $0048 L8F4B RTS L8F4C LDX $003D LDAA #$80 STAA $00,X TST $0047 BNE L8F67 CPX #$0221 BEQ L8F61 CPX #$0241 BNE L8F6B L8F61 LDAB #$01 STAB $004A BRA L8F78 L8F67 STAA $01,X BRA L8F78 L8F6B CPX #$023E BEQ L8F75 CPX #$025E BNE L8F78 L8F75 CLR $004A L8F78 LDAA $0047 BNE L8F83 LDAA $004A BNE L8F88 DEX BRA L8F88 L8F83 LDAA $004A BEQ L8F88 INX L8F88 STX $003D LDAA $0047 BEQ L8F99 CLR $0047 LDAA $0043 ORAA #$0F STAA $0043 BRA L8FA8 L8F99 INC $0047 LDAA $0043 ANDA #$F0 ORAA #$05 STAA $0043 EORA #$0F STAA $0044 L8FA8 LDX $003D LDAA $0043 STAA $00,X LDAA $0047 BEQ L8FB6 LDAA $0044 STAA $01,X L8FB6 LDAA $0047 LDAB $004A RTS L8FBB LDX $0041 STX $0043 BSR L8FD9 BEQ L8FD8 LDX $003B STX $003D LDAA $0046 STAA $0047 LDAB $0049 STAB $004A JSR L8F4C STX $003B STAA $0046 STAB $0049 L8FD8 RTS L8FD9 LDAA $0035 LDAB $0043 ANDB #$30 BEQ L8FE5 BITA #$01 BEQ L8FE8 L8FE5 LDAA #$01 RTS L8FE8 CLRA RTS * I'm not sure WHAT this does. It's valid code, but it doesn't * end with a RTS, so I'm not sure how this could be used in * the program. So, for now, the data bytes for this section of * the program follow these statements. If this code isn't valid * then the databytes can be added back into the program. * L8FEA SEI STS $FF,X LDX $00AF STX $0180 BITA #$80 SUBA #$02 SUBA #$8F ORAA #$80 NOP STS $BFBF ORAA $FF00 * Data Bytes for the above code. Uncomment these if the code * is meaningless. * FCB $0F, $AF, $FF, $DE * FCB $AF, $FF, $01, $80 * FCB $85, $80, $80, $02 * FCB $80, $8F, $8A, $80 * FCB $01, $BF, $BF, $BF * FCB $BA, $FF