(c) 1998 by Enrico Bauermeister
;Datei : listing13.asm ;Beschreibung: Ein Sprite wird angezeigt. ;Autor : Enrico Bauermeister ;Datum : 12.02.1998 ;Assembler : TFA AsmOne v1.30 ;======================================== ;Interrupts sperren - Betriebssystem ausschalten ;----------------------------------------------- move.w #$4000,$dff09a ;Bitplanepointer in Copperliste eintragen ;---------------------------------------- move.l #bitplane,d0 lea bitplanepointer,a1 move.w d0,6(a1) swap d0 move.w d0,2(a1) ;Spritepointer in Copperliste eintragen ;-------------------------------------- move.l #sprite,d0 lea spritepointer,a1 move.w d0,6(a1) swap d0 move.w d0,2(a1) ;Copperliste aktivieren ;---------------------- move.l #Copperliste,$dff084 ;Warten auf Rasterstrahl (eine 1/50 Sekunde) ;------------------------------------------- wait: move.l $dff004,d0 and.l #$fff00,d0 cmp.l #$00003000,d0 bne.s wait ;Linke Maustaste gedrückt ? ;-------------------------- btst #6,$bfe001 bne.s wait ;Interrupts wieder erlauben ;-------------------------- move.w #$c000,$dff09a ;Programmende ;------------ moveq #0,d0 rts ;Copperliste definieren ;---------------------- SECTION Cl,CODE_C Copperliste: dc.w $008e,$2c81 ;DIWSTRT dc.w $0090,$2cc1 ;DIWSTOP dc.w $0092,$0038 ;DDFSTRT dc.w $0094,$00d0 ;DDFSTOP dc.w $0100,$1200 ;BPLCON0 dc.w $0108,$0000 ;BPL1MOD dc.w $010a,$0000 ;BPL2MOD bitplanepointer: dc.w $00e0,$0000 ;BPL1PTH dc.w $00e2,$0000 ;BPL1PTL spritepointer: dc.w $0120,$0000 ;SPR0PTH dc.w $0122,$0000 ;SPR0PTL dc.w $0124,$0000 ;SPR1PTH dc.w $0126,$0000 ;SPR1PTL dc.w $0128,$0000 ;SPR2PTH dc.w $012a,$0000 ;SPR2PTL dc.w $012c,$0000 ;SPR3PTH dc.w $012e,$0000 ;SPR3PTL dc.w $0130,$0000 ;SPR4PTH dc.w $0132,$0000 ;SPR4PTL dc.w $0134,$0000 ;SPR5PTH dc.w $0136,$0000 ;SPR5PTL dc.w $0138,$0000 ;SPR6PTH dc.w $013a,$0000 ;SPR6PTL dc.w $013c,$0000 ;SPR7PTH dc.w $013e,$0000 ;SPR7PTL dc.w $0180,$0000 ;COLOR00 dc.w $0182,$0000 ;COLOR01 dc.w $0102,$0000 ;COLOR16 dc.w $01a2,$0fed ;COLOR17 dc.w $01a4,$0fa0 ;COLOR18 dc.w $01a6,$0820 ;COLOR19 dc.w $ffff,$fffe ;Ende der Copperliste ;Spritedefinition ;---------------- sprite: ; ;Sprite hat eine Höhe von 15 Punkten ; dc.b $64 ;VSTART - von $2c bis $f2 dc.b $87 ;HSTART - von $40 bis $d8 dc.b $73 ;VSTOP - $64+15=$73 dc.b $00 ;control bits ; ;Spritedaten aus ArtPRO ; dc.w $0820,$0FE0 dc.w $2FC8,$3038 dc.w $5304,$609C dc.w $2C60,$410C dc.w $E822,$810E dc.w $6820,$810E dc.w $6000,$939E dc.w $6000,$9FFE dc.w $4000,$AFEE dc.w $4000,$B39E dc.w $C002,$B83E dc.w $0000,$7C7C dc.w $4004,$7FFC dc.w $2008,$3FF8 dc.w $0830,$0FF0 dc.w $0000,$0000 ;Ende des Sprites ;Bitplane definieren ;------------------- SECTION ZielBitplane,BSS_C bitplane: ds.b 40*256 END In diesem Listing wird das Sprite "sprite.iff" angezeigt. Für eigene Sprites brauch ihr nur die Spritedaten austauschen, und VSTOP korrigieren (wegen der Höhe des Sprites). Die Farben müßt ihr dann auch ändern. Achtet aber dadrauf, daß ihr die Farben für die Sprites ab COLOR16 setzt, und nicht ab COLOR00.
-eb-