EasyManua.ls Logo

Commodore Amiga A2000 - Page 70

Commodore Amiga A2000
380 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
; Start DMA
;
MOVE.W #(DMAF_SETCLR!DMAF_RASTER!DMAF_MASTER),DMACON(a0)
; Enable bit-plane DMA only, no Copper
; Because this example has no Copper list, it sits in a
; loop waiting for the vertical blanking interval. When it
; comes, you check the LOF ( long frame bit in VPOSR. If
; LOF = 0, this is a short frame and the bit-plane pointers
; are set to point to S20050. If LOF = 1, then this is a
; long frame and the bit-plane pointers are set to point to
; $20000. This keeps the long and short frames in the
; right relationship to each other.
VLOOP:
MOVE.W INTREQR(a0),d0 ; Read interrupt requests
AND.W #$0020,d0 ; Mask off all but vertical blank
BEQ VLOOP ; Loop until vertical blank comes
MOVE.W #$0020,INTREQ(a0) ; Reset vertical interrupt
MOVE.W VPOSR(a0),d0 ; Read LOF bit into d0 bit 15
BPL VL1 ; If LOF = 0, jump
MOVE.L #$20000,BPL1PTH(a0) ; LOF = 1, point to $20000
BRA VLOOP ; Back to top
VL1:
MOVE.L #$20050,BPL1PTH(a0) ; LOF = 0, point to $20050
BRA VLOOP ; Back to top
;
; Character list
;
CHARLIST:
DC.L $18FC3DF0,$3C6666D8,$3C66C0CC,$667CC0CC
DC.L $7E66C0CC,$C36666D8,$C3FC3DF0,$00000000
DC.L $FFFFFFFF
- 61 Playfield Hardware -

Table of Contents

Other manuals for Commodore Amiga A2000

Related product manuals