PUTBMAP swap d0 + move.w d0,6(a2) | swap d0 | Modify the Copper Lists Bit move.w d0,10(a2) | Memory Reserved for Bit Map add.l #30000,d0 | swap d0 | move.w d0,14(a2) | swap d0 | move.w d0,18(a2) | add.l #30000,d0 | swap d0 | move.w d0,22(a2) | swap d0 | move.w d0,26(a2) | add.l #30000,d0 | swap d0 | move.w d0,30(a2) | swap d0 | move.w d0,34(a2) | add.l #30000,d0 | move.w d0,42(a2) | swap d0 | move.w d0,38(a2) + rts *************************************************************************** SEEIFF moveq #0,d3 A1-A4 Data Pointer move.l a1,a2 add.l d5,a2 move.l a2,a3 add.l d5,a3 move.l a3,a4 add.l d5,a4 move.l a4,a6 add.l d5,a6 YLines move.l a1,a5 jsr DoLine add.w d7,a1 move.l a2,a5 jsr DoLine add.w d7,a2 move.l a3,a5 jsr DoLine add.w d7,a3 move.l a4,a5 jsr DoLine add.w d7,a4 move.l a6,a5 jsr DoLine add.w d7,a6 dbf d0,YLines rts DoLine moveq #0,d1 moveq #0,d4 NewData jsr GetData XLines cmp.b #0,d2 bmi rpx jsr Copy jmp erp rpx jsr Repeat erp cmp.w d6,d1 bmi NewData rts Copy addq.w #1,d1 add.w d2,d1 move.w d2,d5 cmore btst #0,d4 bne codd jsr GetData or.b d2,(a5) * jmp ecod codd jsr GetData or.w d2,(a5)+ * ecod addq.w #1,d4 dbf d5,cmore rts Repeat neg.b d2 addq.w #1,d1 add.w d2,d1 move.w d2,d5 jsr GetData rmore btst #0,d4 bne rodd or.b d2,(a5) * jmp erod rodd or.w d2,(a5)+ * erod addq.w #1,d4 dbf d5,rmore rts GetData move.w (a0),d2 btst #0,d3 bne OddData lsr.w #8,d2 and.w #$00FF,d2 addq.b #1,d3 rts OddData and.w #$00FF,d2 addq.b #1,d3 addq.l #2,a0 rts ************************************************************************** MAKEMAP move.l CurMap,a0 move.l _BckGrnd1,a1 lea BackMap,a2 jsr mp1 move.l CurMap,a0 move.l _BckGrnd2,a1 mp1 moveq #0,d7 mp2 moveq #0,d6 mp3 move.l a1,a3 a3 = PutMap Pointer move.l a2,a4 a4 = GetMap Pointer move.b (a0)+,d0 This section computes GetMap location and.w #$00FF,d0 * divu #20,d0 * swap d0 * add.w d0,a4 * add.w d0,a4 * swap d0 * mulu #720,d0 * add.w d0,a4 a4 = Now GetMap ChunkN Pointer move.w d7,d0 This section computes PutMap Location mulu.w #2304,d0 * add.w d0,a3 * add.w d6,a3 * add.w d6,a3 a3 = Now PutMap Pointer moveq #4,d5 mp4 moveq #17,d4 mp5 move.w (a4),(a3) add.w #128,a3 add.w #40,a4 dbf d4,mp5 add.w #27696,a3 add.w #7280,a4 dbf d5,mp4 add.w #1,d6 cmp.w #63,d6 ble mp3 add.w #64,a0 move.w #63,d6 sub.w #63,d6 add.w d6,a0 add.w #1,d7 cmp.w #12,d7 ble mp2 rts *************************************************************************** BLTDUDE moveq #4,d4 pm1 jsr BLTWAIT move.l #$FFFFFFFF,$DFF044 BLTAFWM move.l #$09F00000,$DFF040 BLTCON0&1 move.l #$00790000,$DFF064 BLTxMOD move.l a0,$DFF050 BLTAPT move.l a5,$DFF054 BLTDPT move.w #$0B04,$DFF058 BLTSIZE add.w #352,a5 jsr BLTWAIT move.l #$FFFF0000,$DFF044 BLTAFWM move.w d0,$DFF042 BLTCON1 move.w d1,$DFF040 BLTCON0 move.l #$00790020,$DFF060 BLTxMOD move.l #$00200079,$DFF064 BLTxMOD move.l a2,$DFF050 BLTAPT move.l a1,$DFF04C BLTBPT move.l a0,$DFF048 BLTCPT move.l a0,$DFF054 BLTDPT move.w #$0B04,$DFF058 BLTSIZE add.l #30000,a0 add.l #16000,a1 dbf d4,pm1 rts *************************************************************************** BLTDEAD moveq #4,d4 tm1 jsr BLTWAIT move.l #$FFFFFFFF,$DFF044 BLTAFWM move.l #$09F00000,$DFF040 BLTCON0&1 move.l #$00790000,$DFF064 BLTxMOD move.l a0,$DFF050 BLTAPT move.l a5,$DFF054 BLTDPT move.w #$0B04,$DFF058 BLTSIZE add.w #352,a5 jsr BLTWAIT move.l #$FFFF0000,$DFF044 BLTAFWM move.w d0,$DFF042 BLTCON1 move.w d1,$DFF040 BLTCON0 move.l #$007B0022,$DFF060 BLTxMOD move.l #$0022007B,$DFF064 BLTxMOD move.l a2,$DFF050 BLTAPT move.l a1,$DFF04C BLTBPT move.l a0,$DFF048 BLTCPT move.l a0,$DFF054 BLTDPT move.w #$0B03,$DFF058 BLTSIZE add.l #30000,a0 add.l #16000,a1 dbf d4,tm1 rts **************************************************************************** CLNDUDE cmp.l #0,a0 beq cu moveq #4,d4 jsr BLTWAIT move.l #$FFFFFFFF,$DFF044 BLTAFWM move.l #$09F00000,$DFF040 BLTCON0&1 move.l #$00000079,$DFF064 BLTxMOD cu1 jsr BLTWAIT move.l a5,$DFF050 BLTAPT move.l a0,$DFF054 BLTDPT move.w #$0B04,$DFF058 BLTSIZE add.l #30000,a0 add.w #352,a5 dbf d4,cu1 cu rts *************************************************************************** LIGHT lea CList1,a1 move.l #$0180000F,44(a1) lea ColLev1,a1 jsr NEWPAL rts *************************************************************************** DARK lea CList1,a1 move.l #0,44(a1) lea ColBlck,a1 jsr NEWPAL rts *************************************************************************** DOMAIN jsr MVPERV jsr DRWBERV jsr DRWPERV jsr DRWSHOT jsr DRWBABE jsr MVBACK jsr CLEANUP rts *************************************************************************** MVSONG move.w #$4020,$DFF09A jsr mt_end move.w #20643,d2 ~~~ 20643 lea TMusic,a0 lea BMusic,a1 mmsc move.l (a0),d0 move.l (a1),d1 move.l d0,(a1)+ move.l d1,(a0)+ dbf d2,mmsc jsr mt_init move.w #$C020,$DFF09A rts *************************************************************************** CLRBACK move.l #39990,d0 move.l _BckGrnd1,a1 move.l _BckGrnd2,a2 clr1 move.l #0,(a1)+ move.l #0,(a2)+ sub.l #1,d0 bpl clr1 rts *************************************************************************** NEWPAL lea $DFF180,a2 moveq #31,d0 npl1 move.w (a1)+,(a2)+ dbf d0,npl1 rts ************************************************************************** BLTWAIT btst.b #6,$DFF002 BWait btst.b #6,$DFF002 bne BWait rts ************************************************************************** WAIT move.b $DFF006,d1 cmp.b #$FF,d1 beq WAIT jsr DELAY dbf d0,WAIT rts DELAY move.b $DFF006,d1 cmp.b #$FF,d1 bne DELAY rts **************************************************************************