home *** CD-ROM | disk | FTP | other *** search
- ;******************************
- ;* " BOBS " BY INFECTION *
- ;* ....MOVE.... *
- ;******************************
- BLTWAIT: MACRO
- BLTBUSY?0: BTST #6,$02(A5)
- BNE.S BLTBUSY?0
- ENDM
-
- OPENLIB: EQU -408
- ALLOCMEM: EQU -198
- FREEMEM: EQU -210
- MEMF_CHIP: EQU $10002
-
- BEGIN: MOVEM.L D0-D7/A0-A6,-(SP)
- MOVE.L $4.W,A6
- MOVE.L #COPSIZE+PICSIZE,D0
- MOVE.L #MEMF_CHIP,D1
- JSR ALLOCMEM(A6)
- MOVE.L D0,NEWCOPPER
- BEQ.L ALLOCERROR
- ADD.L #COPSIZE,D0
- MOVE.L D0,BPLPTR
-
- INITBPL: SWAP D0
- MOVE.W D0,BPL1H
- SWAP D0
- MOVE.W D0,BPL1L
- ADD.L #BPLSIZE,D0
- SWAP D0
- MOVE.W D0,BPL2H
- SWAP D0
- MOVE.W D0,BPL2L
-
- MOVE.L NEWCOPPER(PC),A0
- LEA.L COPPERLIST(PC),A1
- MOVE.W #COPSIZE/4-1,D7
- MOVETOCHIP: MOVE.L (A1)+,(A0)+
- DBF D7,MOVETOCHIP
-
- LEA.L GFXNAME(PC),A1
- JSR OPENLIB(A6)
- TST.L D0
- BEQ.L GFXERROR
- MOVE.L D0,A0
- MOVE.L $26(A0),OLDCOPPER
- LEA.L $DFF000,A5
- DISABLE: TST.B $06(A5)
- BNE.S DISABLE
- MOVE.W #$4000,$9A(A5)
- MOVE.W $02(A5),DMABITS
- BSET #7,DMABITS
- MOVE.W #$7FFF,$96(A5)
- MOVE.W #$83C0,$96(A5)
-
- MOVE.L NEWCOPPER(PC),$80(A5)
- MOVE.L #$FFFFFFFF,$44(A5)
- MOVE.L #$00240008,$60(A5)
- MOVE.W #$0008,$64(A5)
-
- MAIN: BTST #6,$BFE001
- BEQ.L EXIT
-
- SYNC: cmp.b #$C8,$06(A5)
- bne.s SYNC
- move.l #$01000000,$40(A5)
- CLR.W $66(A5)
- MOVE.L BPLPTR(PC),$54(A5)
- MOVE.W #$40*2*200+20,$58(A5)
- BLT WAIT
- MOVE.W #$0024,$66(A5)
- LEA.L BOBDATA(PC),A0
- LEA.L SINTBL(PC),A1
- MOVEQ #31,D7
- PUTBOBS:MOVE.L #BOBBPL1,D5
- MOVE.W 6(A0),D0
- ADDQ.B #1,7(A0)
- cmp.w #128,D0
- BLS.S BELOW90
- NEG.W D0
- ADD.W #256,D0
- BELOW90:ADD.W D0,D0
- MOVEQ #0,D2
- MOVE.W (A0),D2
- ADD.W 2(A0),D2
- BPL.S NOTLEFT
- NEG.W 2(A0)
- CLR.W D2
- NOTLEFT:CMP.W #304,D2
- BLS.S NOTRIGHT
- NEG.W 2(A0)
- MOVE.W #304,D2
- NOTRIGHT: MOVE.W D2,(A0)
- MOVE.W 4(A0),D3
- MULU $00(A1,D0.W),D3
- CMP.L #$3FFF,D3
- BHI.S NOBOUNCE
- CMP.L #$1FFF,D3
- BHI.S BOUNCE1
- BOUNCE2: MOVE.L #BOBBPL1+8,D5
- BRA.S NOBOUNCE
- BOUNCE1: MOVE.L #BOBBPL1+4,D5
- NOBOUNCE: MOVE.L D5,D6
- ADD.L #144,D6
- ASL.L #2,D3
- SWAP D3
- SUB.W #188,D3
- NEG.W D3
- MULU #40,D3
- MOVE.W D2,D4
- ROR.L #4,D2
- ADD.W D2,D2
- ADD.W D2,D3
- ADD.L BPLPTR(PC),D3
- SWAP D2
- MOVE.W D2,$42(A5)
- OR.W #$0FF2,D2
- MOVE.W D2,$40(A5)
- MOVE.L D3,$48(A5)
- MOVE.L D6,$4C(A5)
- MOVE.L D5,$50(A5)
- MOVE.L D3,$54(A5)
- MOVE.W #$40*12+2,$58(A5)
- BLT WAIT
- AND.W #$F000,D2
- OR.W #$0FCE,D2
- MOVE.W D2,$40(A5)
- ADD.L #BPLSIZE,D3
- MOVE.L D6,$4C(A5)
- MOVE.L D5,$50(A5)
- MOVE.L D3,$48(A5)
- MOVE.L D3,$54(A5)
- MOVE.W #$40*12+2,$58(A5)
- BLT WAIT
- ADDQ.L #8,A0
- DBF D7,PUTBOBS
- BRA.L MAIN
-
- EXIT: MOVE.L OLDCOPPER(PC),$80(A5)
- MOVE.W DMABITS(PC),$96(A5)
- MOVE.W #$C000,$9A(A5)
- GFXERROR: MOVE.L NEWCOPPER(PC),A1
- MOVE.L #COPSIZE+PICSIZE,D0
- JSR FREEMEM(A6)
- ALLOCERROR: MOVEM.L (SP)+,D0-D7/A0-A6
- RTS
-
- OLDCOPPER: DC.L 0
- NEWCOPPER: DC.L 0
- BPLPTR: DC.L 0
- DMABITS: DC.W 0
- GFXNAME: DC.B 'GRAPHICS.LIBRARY',0
- EVEN
-
- COPPERLIST: DC.W $008E,$2C81
- DC.W $0090,$F4C1
- DC.W $0092,$0038
- DC.W $0094,$00D0
- DC.W $0100,$2000
- DC.W $0102,$0000
- DC.W $0104,$0000
- DC.W $0108,$0000
- DC.W $010A,$0000
- DC.W $00E0
-
- BPL1H: DC.W $0000
- DC.W $00E2
- BPL1L: DC.W $0000
- DC.W $00E4
- BPL2H: DC.W $0000
- DC.W $00E6
- BPL2L: DC.W $0000
- COLORS: DC.W $0180,$000
- DC.W $0182,$009
- DC.W $0184,$22C
- DC.W $0186,$44F
- DC.W $F407,$FFFE,$0180,$F00
- DC.W $F507,$FFFE,$0180,$000
- DC.W $FFFF,$FFFE
- COPEND:
- COPSIZE: EQU COPEND-COPPERLIST
- BPLSIZE: EQU 320/8*200
- PICSIZE: EQU 2*BPLSIZE
-
- BOBDATA: DC.W 0,1,100,0
- DC.W 10,3,40,5
- DC.W 20,0,20,10
- DC.W 30,-2,50,15
- DC.W 40,-1,150,20
- DC.W 50,0,80,25
- DC.W 60,4,120,30
- DC.W 70,-3,60,35
- DC.W 80,-1,70,40
- DC.W 90,0,50,45
- DC.W 100,2,180,50
- DC.W 110,-2,20,55
- DC.W 120,-4,130,60
- DC.W 130,1,160,65
- DC.W 140,5,170,70
- DC.W 150,0,140,75
- DC.W 160,-4,30,80
- DC.W 170,-1,60,85
- DC.W 180,-3,130,90
- DC.W 190,2,50,95
- DC.W 200,4,80,100
- DC.W 210,-1,90,105
- DC.W 220,-3,120,110
- DC.W 230,0,110,115
- DC.W 240,2,40,120
- DC.W 250,-2,10,125
- DC.W 260,0,40,130
- DC.W 270,-4,50,135
- DC.W 280,-2,120,140
- DC.W 290,4,140,145
- DC.W 300,1,90,150
- DC.W 300,3,170,155
-
- SINTBL: DC.W $0000,$00C9,$0192,$025B,$0324,$03ED,$04B5,$057E
- DC.W $0646,$070E,$07D6,$089D,$0964,$0A2B,$0AF1,$0BB7
- DC.W $0C7C,$0D41,$0E06,$0ECA,$0F8D,$1050,$1112,$11D3
- DC.W $1294,$1354,$1413,$14D2,$1590,$164C,$1709,$17C4
- DC.W $187E,$1937,$19EF,$1AA7,$1B5D,$1C12,$1CC6,$1D79
- DC.W $1E2B,$1EDC,$1F8C,$203A,$20E7,$2193,$223D,$22E7
- DC.W $238E,$2435,$24DA,$257E,$2620,$26C1,$2760,$27FE
- DC.W $289A,$2935,$29CE,$2A65,$2AFB,$2B8F,$2C21,$2CB2
- DC.W $2D41,$2DCF,$2E5A,$2EE4,$2F6C,$2FF2,$3076,$3078
- DC.W $3179,$31F8,$3274,$32EF,$3368,$33DF,$3453,$34C6
- DC.W $3537,$35A5,$3612,$367D,$36E5,$374B,$37B0,$3812
- DC.W $3871,$38CF,$392B,$3984,$39DB,$3A30,$3A82,$3AD3
- DC.W $3B21,$3B6D,$3BB6,$3BFD,$3C42,$3C85,$3CC5,$3D03
- DC.W $3D3F,$3D78,$3DAF,$3DE3,$3E15,$3E45,$3E72,$3E9D
- DC.W $3EC5,$3EEB,$3F0F,$3F30,$3F4F,$3F6B,$3F85,$3F9C
- DC.W $3FB1,$3FC4,$3FD4,$3FE1,$3FEC,$3FF5,$3FFB,$3FFF
- DC.W $4000
-
- BOBBPL1: DC.L $00000000,$00000000,$00000000
- DC.L $03C00000,$00000000,$00000000
- DC.L $0FF00000,$07E00000,$00000000
- DC.L $0FF00000,$1FF80000,$0FF00000
- DC.L $1FF80000,$1FF80000,$3FFC0000
- DC.L $1FF80000,$3FFC0000,$7FFE0000
- DC.L $1FF80000,$3FFC0000,$7FFE0000
- DC.L $1FF80000,$3FFC0000,$7FFE0000
- DC.L $0FF00000,$1FF80000,$7FFE0000
- DC.L $0FF00000,$1FF80000,$3FFC0000
- DC.L $03C00000,$07E00000,$0FF00000
- DC.L $00000000,$00000000,$00000000
- BOBBPL2: DC.L $03C00000,$00000000,$00000000
- DC.L $0C300000,$07E00000,$00000000
- DC.L $16080000,$18180000,$0FF00000
- DC.L $1E080000,$2C040000,$300C0000
- DC.L $2C0C0000,$3C040000,$58020000
- DC.L $200C0000,$58060000,$B0030000
- DC.L $201C0000,$40060000,$B0030000
- DC.L $201C0000,$400E0000,$80070000
- DC.L $10380000,$201C0000,$800F0000
- DC.L $10F80000,$207C0000,$403E0000
- DC.L $0FF00000,$1FF80000,$3FFC0000
- DC.L $03C00000,$07E00000,$0FF00000
-
-