home *** CD-ROM | disk | FTP | other *** search
- SPRITE:
- OPENLIB: EQU -408
- ALLOCMEM: EQU -198
- FREEMEM: EQU -210
- MEMF_CHIP: EQU $150002
- SPRGFX: MACRO
- DC.L $908CA000
- DC.W $0000,$07E0
- DC.W $0000,$1FF8
- DC.W $0000,$3FFC
- DC.W $0C00,$7FFE
- DC.W $1C00,$7FFE
- DC.W $1801,$FFFE
- DC.W $0001,$FFFE
- DC.W $0001,$FFFE
- DC.W $0003,$FFFC
- DC.W $0003,$FFFC
- DC.W $0007,$FFF8
- DC.W $0006,$7FF8
- DC.W $000E,$7FF0
- DC.W $003C,$3FC0
- DC.W $00F8,$1F00
- DC.W $07E0,$0000
- DC.L $00000000
- ENDM
- BEGIN: MOVEM.L D0-D7/A0-A6,-(SP)
- MOVE.L $4.W,A6
- MOVE.L #COPSIZE+SPRSIZE,D0
- MOVE.L #MEMF_CHIP,D1
- JSR ALLOCMEM(A6)
- MOVE.L D0,NEWCOPPER
- BEQ.l ALLOCERROR
- ADD.L #COPSIZE,D0
- MOVE.L D0,SPRPTR
- LEA.L SPR0PTR+2(PC),A0
- MOVE.L D0,D7
- MOVEQ #7,D6
- INITSPR: SWAP D7
- MOVE.W D7,(A0)
- SWAP D7
- MOVE.W D7,4(A0)
- ADDQ.L #8,A0
- ADD.L #4+64+4,D7
- DBF D6,INITSPR
- MOVE.L NEWCOPPER(PC),A0
- LEA.L COPPERLIST(PC),A1
- MOVE.W #COPSIZE+SPRSIZE-1,D7
- MOVETOCHIP: MOVE.B (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
- MOVE.W #$4000,$DFF09A
- DISABLE: TST.B $DFF006
- BNE.S DISABLE
- MOVE.W $DFF002,DMABITS
- BSET #7,DMABITS
- MOVE.W #$7FFF,$DFF096
- MOVE.W #$83A0,$DFF096
-
- MOVE.L NEWCOPPER(PC),$DFF080
- MOVE.W $DFF00A,OLDMOUSE
- MAIN2: BTST #6,$BFE001
- BEQ.l EXIT
- SYNC: CMP.B #$FF,$DFF006
- BNE.S SYNC
- MOVE.W $DFF00A,NEWMOUSE
- MOVE.B NEWMOUSE(PC),D0
- SUB.B OLDMOUSE(PC),D0
- ADD.B D0,NEWPOS
- MOVE.B NEWMOUSE+1(PC),D0
- SUB.B OLDMOUSE+1(PC),D0
- ADD.B D0,NEWPOS+1
- MOVE.W NEWMOUSE(PC),OLDMOUSE
-
- CMP.B #$30,NEWPOS
- BCC.S TOPOK
- MOVE.B #$30,NEWPOS
- TOPOK: CMP.B #$F0,NEWPOS
- BCS.S BOTTOMOK
- MOVE.B #$F0,NEWPOS
- BOTTOMOK: CMP.B #$50,NEWPOS+1
- BCC.S LEFTOK
- MOVE.B #$50,NEWPOS+1
- LEFTOK: CMP.B #$C8,NEWPOS+1
- BCS.S RIGHTOK
- MOVE.B #$C8,NEWPOS+1
- RIGHTOK:
- LEA.L POSTBL(PC),A0
- MOVEQ #31,D7
- SCROLLTBL: MOVE.W 2(A0),(A0)+
- DBF D7,SCROLLTBL
- LEA.L NEWPOS(PC),A0
- MOVE.L SPRPTR(PC),A1
- MOVEQ #7,D7
- REFRESHPOS: MOVE.W (A0),(A1)
- MOVE.B (A1),2(A1)
- ADD.B #16,2(A1)
- SUBQ.L #8,A0
- ADD.L #4+64+4,A1
- DBF D7,REFRESHPOS
- BRA.l MAIN2
- EXIT: MOVE.L OLDCOPPER(PC),$DFF080
- MOVE.W #$7FFF,$DFF096
- MOVE.W DMABITS(PC),$DFF096
- MOVE.W #$C000,$DFF09A
- GFXERROR: MOVE.L NEWCOPPER(PC),A1
- MOVE.L #COPSIZE+SPRSIZE,D0
- JSR FREEMEM(A6)
- ALLOCERROR: MOVEM.L (SP)+,D0-D7/A0-A6
- RTS
- OLDCOPPER: DC.L 0
- NEWCOPPER: DC.L 0
- SPRPTR: DC.L 0
- DMABITS: DC.W 0
- OLDMOUSE: DC.W 0
- NEWMOUSE: DC.W 0
- POSTBL: DC.W $908C,$908C,$908C,$908C
- DC.W $908C,$908C,$908C,$908C
- DC.W $908C,$908C,$908C,$908C
- DC.W $908C,$908C,$908C,$908C
- DC.W $908C,$908C,$908C,$908C
- DC.W $908C,$908C,$908C,$908C
- DC.W $908C,$908C,$908C,$908C
- DC.W $908C,$908C,$908C,$908C
- NEWPOS: DC.W $908C
- GFXNAME: DC.B 'graphics.library',0
- EVEN
- COPPERLIST: DC.W $008E,$30A1
- DC.W $0090,$00A1
- DC.W $0092,$0048
- DC.W $0094,$00C0
- DC.W $0100,$1000
- DC.W $0102,$0000
- DC.W $0104,$003F
- DC.W $0108,$0000
- DC.W $010A,$0000
- SPR0PTR: DC.W $0120,$0000
- DC.W $0122,$0000
- SPR1PTR: DC.W $0124,$0000
- DC.W $0126,$0000
- SPR2PTR: DC.W $0128,$0000
- DC.W $012A,$0000
- SPR3PTR: DC.W $012C,$0000
- DC.W $012E,$0000
- SPR4PTR: DC.W $0130,$0000
- DC.W $0132,$0000
- SPR5PTR: DC.W $0134,$0000
- DC.W $0136,$0000
- SPR6PTR: DC.W $0138,$0000
- DC.W $013A,$0000
- SPR7PTR: DC.W $013C,$0000
- DC.W $013E,$0000
- DC.W $0180,$000
- DC.W $0182,$000
- DC.W $01A2,$900
- DC.W $01A4,$C00
- DC.W $01A6,$F00
- DC.W $01AA,$770
- DC.W $01AC,$AA0
- DC.W $01AE,$DD0
- DC.W $01B2,$050
- DC.W $01B4,$080
- DC.W $01B6,$0B0
- DC.W $01BA,$003
- DC.W $01BC,$006
- DC.W $01BE,$009
- DC.W $FFFF,$FFFE
- COPEND:
- COPSIZE: EQU COPEND-COPPERLIST
- SPRSIZE: EQU 8*[4+64+4]
- SPRITES: SPRGFX
- SPRGFX
- SPRGFX
- SPRGFX
- SPRGFX
- SPRGFX
- SPRGFX
- SPRGFX
-