SHOP move.l #$00060006,ShpSel lea Shop,a5 jsr CUTBOX SMAIN move.w #1,d0 jsr WAIT jsr UPBOT move.w $DFF00C,d2 Read Joystick moveq #1,d1 move.w d2,d3 and.w #$0001,d3 move.w d2,d4 and.w #$0002,d4 lsr.w #1,d4 eor.w d4,d3 btst #0,d3 bne tjm move.w d2,d4 lsr.w #1,d4 eor.w d4,d2 btst #8,d2 bne j5 eor d1,d1 j5 neg.w d1 tjm move.w SJOld,d0 Update Selection cmp.w d1,d0 beq njm move.w d1,SJOld tst.w d1 beq njm move.w #$4,$DFF096 * Tink Sound move.l AudTink,Aud2Snd | move.l #$05D00125,$DFF0C4 | move.w #15,Aud2Del * move.w ShpSel,d0 add.w d1,d0 cmp.w #-1,d0 beq njm cmp.w #7,d0 beq njm move.w ShpSel,d1 move.w d1,SSelOld move.w d0,ShpSel njm jsr DRAWBOX move.w $BFE000,d0 btst #7,d0 beq bd move.w #0,Reload jmp SMAIN bd cmp.b #1,Reload beq SMAIN move.b #1,Reload move.w #$4,$DFF096 * Tink Sound move.l AudTink,Aud2Snd | move.l #$05D00125,$DFF0C4 | move.w #15,Aud2Del * move.w ShpSel,d0 lsl.w #1,d0 lea Price,a0 move.w Money,d1 move.w (a0,d0),d0 move.w #1,d7 cmp.w d1,d0 ble SZero sback cmp.w #0,d7 beq SMAIN move.w #$4,$DFF096 * Tink Sound move.l AudTink,Aud2Snd | move.l #$05D00180,$DFF0C4 | move.w #18,Aud2Del * jmp SMAIN SZero cmp.w #0,ShpSel bgt SOne cmp.w #9,ResFix beq sback add.w #1,ResFix sub.w #50,Money move.w #0,d7 jmp sback SOne cmp.w #1,ShpSel bgt STwo cmp.w #9,ResPow beq sback add.w #1,ResPow sub.w #50,Money move.w #0,d7 jmp sback STwo cmp.w #2,ShpSel bgt SThree add.w #1,PlayerL sub.w #250,Money move.w #0,d7 jmp sback SThree cmp.w #3,ShpSel bgt SFour jmp sback SFour cmp.w #4,ShpSel bgt SFive cmp.w #8,MaxPow beq sback sub.w #500,Money add.w #1,MaxPow tg jsr INCPOW move.w BulPow,d0 move.w MaxPow,d1 cmp.w d0,d1 bne tg move.w #0,d7 jmp sback SFive cmp.w #5,ShpSel bgt SExit cmp.w #200,PlayerHM beq sback sub.w #500,Money add.w #25,PlayerHM move.w PlayerHM,d0 move.w d0,PlayerH move.w #0,d7 jmp sback SExit move.l _BitMapY,a0 move.l _Buffer,a1 add.w #2414,a0 add.w Distance,a0 move.w #4,d5 sp6 move.w #124,d6 sp5 move.w #9,d7 sp4 move.w (a1)+,(a0)+ dbf d7,sp4 add.w #28,a0 dbf d6,sp5 add.w #5232,a0 dbf d5,sp6 rts ************************************************************************** PAUSE move.b #0,Key lea Stat,a5 jsr CUTBOX move.w Level,d0 Print Level add.w #1,d0 move.w #1,d1 move.w #10,d7 moveq.l #7,d6 move.l _BitMapY,a2 add.l #3038,a2 jsr NUMBERS move.w Section,d0 Print Section add.w #1,d0 moveq.l #3,d6 move.w #10,d7 move.w #1,d1 move.l _BitMapY,a2 add.l #3041,a2 jsr NUMBERS move.w Money,d0 Print Money move.w #3,d1 move.l #1,d6 move.w #1000,d7 move.l _BitMapY,a2 add.l #3046,a2 jsr NUMBERS move.w PlayerL,d0 Print Lives cmp.w #0,d0 bge lok move.w #0,d0 lok move.w #2,d1 moveq.l #3,d6 move.w #100,d7 move.l _BitMapY,a2 add.l #3053,a2 jsr NUMBERS move.w PlayerH,d0 Print Sheilds cmp.w #0,d0 bge sok move.w #0,d0 sok move.w #2,d1 moveq.l #6,d6 move.w #100,d7 move.l _BitMapY,a2 add.l #4144,a2 jsr NUMBERS move.w PlayerHM,d0 Print Sheild Max move.w #2,d1 moveq.l #3,d6 move.w #100,d7 move.l _BitMapY,a2 add.l #4156,a2 jsr NUMBERS moveq.l #4,d6 Print PassWord move.l _BitMapY,a2 add.l #7123,a2 jsr HEX jsr POWER jsr RESPOW jsr RESFIX PMAIN move.w #0,d0 jsr WAIT move.w $BFE000,d0 btst #7,d0 beq pdone jsr KYBOARD cmp.b #$0,Key Parse Keyboard beq PMAIN pdone move.b #0,Key move.l _BitMapY,a0 move.l _Buffer,a1 add.w #2414,a0 add.w Distance,a0 move.w #4,d5 pm6 move.w #124,d6 pm5 move.w #9,d7 pm4 move.w (a1)+,(a0)+ dbf d7,pm4 add.w #28,a0 dbf d6,pm5 add.w #5232,a0 dbf d5,pm6 jmp ABOBGN *************************************************************************** CUTBOX move.l _BitMapY,a0 move.l _Buffer,a1 add.w #2414,a0 add.w Distance,a0 move.w #4,d5 pm3 move.w #124,d6 pm2 move.w #9,d7 pm1 move.w (a0),(a1)+ move.w #0,(a0)+ dbf d7,pm1 add.w #28,a0 dbf d6,pm2 add.w #5232,a0 dbf d5,pm3 move.l a5,a0 move.l _BitMapY,a1 add.w #2414,a1 add.w Distance,a1 move.w #11232,d5 move.w #124,d0 move.w #20,d6 move.w #48,d7 jsr SEEIFF rts *************************************************************************** UPBOT move.w #10,d5 Erase Numbers movem.l _BitMapY,a0 add.w Distance,a0 move.l a0,a1 move.l a1,a2 move.l a2,a3 add.l #7700,a0 add.l #18932,a1 add.l #30164,a2 add.l #41396,a3 move.w #12,d5 el2 move.l #$FFFFFFFF,(a0) move.l #0,(a1) move.l #0,(a2) move.l #0,(a3) move.l #$FFFFFFFF,4(a0) move.l #0,4(a1) move.l #0,4(a2) move.l #0,4(a3) move.l #$FFFFFFFF,8(a0) move.l #0,8(a1) move.l #0,8(a2) move.l #0,8(a3) move.b #$FF,12(a0) move.b #0,12(a1) move.b #0,12(a2) move.b #0,12(a3) add.l #48,a0 add.l #48,a1 add.l #48,a2 add.l #48,a3 dbf d5,el2 move.w Money,d0 Print Money move.w #3,d1 move.l #6,d6 move.w #1000,d7 move.l _BitMapY,a2 add.l #7756,a2 jsr NUMBERS ^^^ cmp.w #3,ShpSel beq SSX pnum cmp.w #0,ShpSel bne SS1 move.w ResFix,d0 jmp SS7 SS1 cmp.w #1,ShpSel bne SS2 move.w ResPow,d0 jmp SS7 SS2 cmp.w #2,ShpSel bne SS4 move.w PlayerL,d0 jmp SS7 SS4 cmp.w #4,ShpSel bne SS5 move.w MaxPow,d0 jmp SS7 SS5 cmp.w #5,ShpSel bne SSX move.w PlayerHM,d0 jmp SS7 SS7 move.w #2,d1 move.l #6,d6 move.w #100,d7 move.l _BitMapY,a2 add.l #7750,a2 jsr NUMBERS SSX rts ************************************************************************** DRAWBOX lea SelDat,a3 move.l _BitMapY,a5 move.w Distance,d0 lea (a5,d0),a5 add.l #33696,a5 move.w #3,d5 move.w #1,d0 SBox move.w SSelOld,d6 mulu.w #32,d6 move.w (a3,d6),d0 move.w 2(a3,d6),d1 move.w 4(a3,d6),d2 move.w 6(a3,d6),d3 move.l a5,a0 move.w #$B0A,d6 jsr LINE move.w ShpSel,d6 mulu.w #32,d6 move.w (a3,d6),d0 move.w 2(a3,d6),d1 move.w 4(a3,d6),d2 move.w 6(a3,d6),d3 move.l a5,a0 move.w #$BFA,d6 jsr LINE add.l #8,a3 dbf d5,SBox rts *************************************************************************** HEX move.l _ShipMap,a0 A0 - Source => A3 add.l #7640,a0 A1 - Mask => A4 move.l a0,a1 A2 - Destination => D2 add.l #40000,a1 move.w Distance,d2 lea (a2,d2),a2 lea PassWord,a5 move.w #15,d3 move.l #0,d7 h4 move.b (a5),d0 and.l #$FF,d0 bchg.l #0,d7 beq h2 and.l #$F,d0 lsl.w #1,d0 add.w #1,a5 jmp h1 h2 lsr.w #4,d0 lsl.w #1,d0 h1 lea (a0,d0),a3 lea (a1,d0),a4 move.l a2,d2 move.l d6,d1 btst #0,d2 beq h3 add.w #8,d1 h3 swap d1 lsr.l #4,d1 move.w #$0FCA,d4 or.w d1,d4 move.w #4,d5 h5 btst.b #6,$DFF002 bne h5 move.l #$FF000000,$DFF044 BLTAFWM move.l #$002C0024,$DFF060 BLTxMOD move.l #$0024002C,$DFF064 BLTxMOD move.w d1,$DFF042 BLTCON1 move.w d4,$DFF040 BLTCON0 move.l a4,$DFF050 BLTAPT move.l a3,$DFF04C BLTBPT move.l d2,$DFF048 BLTCPT move.l d2,$DFF054 BLTDPT move.w #$0242,$DFF058 BLTSIZE add.l #8000,a3 add.l #11232,d2 dbf d5,h5 add.l #1,a2 cmp.w #4,d3 beq h7 cmp.w #12,d3 bne h8 h7 add.w #1,a2 h8 cmp.w #8,d3 bne h9 add.l #471,a2 h9 dbf d3,h4 rts *************************************************************************** NUMBERS move.l _ShipMap,a0 A0 - Source => A3 add.l #7640,a0 A1 - Mask => A4 move.l a0,a1 A2 - Destination => D2 add.l #40000,a1 move.w Distance,d2 lea (a2,d2),a2 nm0 move.l a1,a4 move.l a0,a3 move.l a2,d2 move.l d6,d3 btst #0,d2 beq nm3 add.w #8,d3 nm3 swap d3 lsr.l #4,d3 move.w #$0FCA,d4 or.w d3,d4 and.l #$0000FFFF,d0 and.l #$0000FFFF,d7 divu d7,d0 divu #10,d7 lsl.w #1,d0 add.w d0,a4 add.w d0,a3 swap d0 move.w #4,d5 nm1 btst.b #6,$DFF002 bne nm1 move.l #$FF000000,$DFF044 BLTAFWM move.l #$002C0024,$DFF060 BLTxMOD move.l #$0024002C,$DFF064 BLTxMOD move.w d3,$DFF042 BLTCON1 move.w d4,$DFF040 BLTCON0 move.l a4,$DFF050 BLTAPT move.l a3,$DFF04C BLTBPT move.l d2,$DFF048 BLTCPT move.l d2,$DFF054 BLTDPT move.w #$0242,$DFF058 BLTSIZE add.l #8000,a3 add.l #11232,d2 dbf d5,nm1 add.l #1,a2 nm2 dbf d1,nm0 rts *************************************************************************** POWER move.l _ShipMap,a0 add.l #7040,a0 move.l a0,a1 add.l #40000,a1 move.l _BitMapY,a2 add.l #3710,a2 move.w Distance,d0 add.w d0,a2 move.w BulPow,d0 move.w MaxPow,d1 sub.w #1,d1 pw1 move.l a0,a3 move.l a1,a4 move.l a2,a5 move.w #4,d5 sub.w #1,d0 bmi pw5 add.w #2,a3 add.w #2,a4 pw5 btst.b #6,$DFF002 bne pw5 move.l #$FFFF0000,$DFF044 BLTAFWM move.l #$002C0024,$DFF060 BLTxMOD move.l #$0024002C,$DFF064 BLTxMOD move.w #$A000,$DFF042 BLTCON1 move.w #$AFCA,$DFF040 BLTCON0 move.l a4,$DFF050 BLTAPT move.l a3,$DFF04C BLTBPT move.l a5,$DFF048 BLTCPT move.l a5,$DFF054 BLTDPT move.w #$0202,$DFF058 BLTSIZE add.w #8000,a3 add.w #11232,a5 dbf d5,pw5 add.w #2,a2 dbf d1,pw1 rts *************************************************************************** RESPOW move.l _ShipMap,a0 add.l #7046,a0 move.l a0,a1 add.l #40000,a1 move.l _BitMapY,a2 add.l #5966,a2 move.w Distance,d0 add.w d0,a2 move.w ResPow,d0 rpw0 dbf d0,rpw1 bbye rts rpw1 move.l a0,a3 move.l a1,a4 move.l a2,a5 move.w #4,d5 rpw5 btst.b #6,$DFF002 bne rpw5 move.l #$FFFF0000,$DFF044 BLTAFWM move.l #$002C0024,$DFF060 BLTxMOD move.l #$0024002C,$DFF064 BLTxMOD move.w #$7000,$DFF042 BLTCON1 move.w #$7FCA,$DFF040 BLTCON0 move.l a4,$DFF050 BLTAPT move.l a3,$DFF04C BLTBPT move.l a5,$DFF048 BLTCPT move.l a5,$DFF054 BLTDPT move.w #$0402,$DFF058 BLTSIZE add.w #8000,a3 add.w #11232,a5 dbf d5,rpw5 add.w #2,a2 jmp rpw0 *************************************************************************** RESFIX move.l _ShipMap,a0 add.l #7044,a0 move.l a0,a1 add.l #40000,a1 move.l _BitMapY,a2 add.l #5150,a2 move.w Distance,d0 add.w d0,a2 move.w ResFix,d0 rfx0 dbf d0,rfx1 rts rfx1 move.l a0,a3 move.l a1,a4 move.l a2,a5 move.w #4,d5 rfx5 btst.b #6,$DFF002 bne rfx5 move.l #$FFFF0000,$DFF044 BLTAFWM move.l #$002C0024,$DFF060 BLTxMOD move.l #$0024002C,$DFF064 BLTxMOD move.w #$7000,$DFF042 BLTCON1 move.w #$7FCA,$DFF040 BLTCON0 move.l a4,$DFF050 BLTAPT move.l a3,$DFF04C BLTBPT move.l a5,$DFF048 BLTCPT move.l a5,$DFF054 BLTDPT move.w #$0402,$DFF058 BLTSIZE add.w #8000,a3 add.w #11232,a5 dbf d5,rfx5 add.w #2,a2 jmp rfx0 ***************************************************************************