mirror of
https://frontier.innolan.net/github/AmigaExamples.git
synced 2026-09-12 21:02:39 +00:00
A4000 compatibility
This commit is contained in:
@@ -57,12 +57,12 @@ SetupImage:
|
||||
if INTERLACE==1
|
||||
;; poke the bitplane pointers for the two copper lists.
|
||||
move.l #SCREEN_WIDTH_BYTES*SCREEN_BIT_DEPTH,d0
|
||||
lea copperListAlternate,a0
|
||||
lea copperListAlternateBplPtr,a0
|
||||
jsr PokeBitplanePointers
|
||||
endif
|
||||
|
||||
moveq.l #0,d0
|
||||
lea copperList,a0
|
||||
lea copperListBplPtr,a0
|
||||
jsr PokeBitplanePointers
|
||||
movem.l (sp)+,d0-a6
|
||||
rts
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
xdef bitplanes2
|
||||
xdef bitplanes3
|
||||
xdef Module
|
||||
xdef copperListBplPtr
|
||||
xdef copperListAlternateBplPtr
|
||||
|
||||
byteMap:
|
||||
dc.l Entry
|
||||
@@ -84,16 +86,17 @@ Level3InterruptHandler:
|
||||
|
||||
.verticalBlank:
|
||||
move.w #INTF_VERTB,INTREQ(a6) ; clear interrupt bit
|
||||
|
||||
if INTERLACE==1
|
||||
btst #VPOSRLOFBIT,VPOSR(a6)
|
||||
beq.s .lof
|
||||
lea copperListAlternate,a0
|
||||
move.l a0,COP1LC(a6)
|
||||
move.w COPJMP1(a6),d0
|
||||
bra .done
|
||||
.lof:
|
||||
lea copperList,a0
|
||||
move.l a0,COP1LC(a6)
|
||||
move.w COPJMP1(a6),d0
|
||||
.done
|
||||
endif ; INTERLACE==1
|
||||
|
||||
@@ -134,7 +137,7 @@ Playrtn:
|
||||
|
||||
if INTERLACE==1
|
||||
copperListAlternate:
|
||||
;; bitplane pointers must be first else poking addresses will be incorrect
|
||||
copperListAlternateBplPtr:
|
||||
dc.w BPL1PTL,0
|
||||
dc.w BPL1PTH,0
|
||||
dc.w BPL2PTL,0
|
||||
@@ -147,11 +150,14 @@ copperListAlternate:
|
||||
dc.w BPL5PTH,0
|
||||
dc.w BPL6PTL,0
|
||||
dc.w BPL6PTH,0
|
||||
dc.w $106,$c00 ;AGA sprites, palette and dual playfield reset
|
||||
dc.w $1FC,0 ;AGA sprites and burst reset
|
||||
dc.l $fffffffe
|
||||
dc.l $fffffffe
|
||||
endif; INTERLACE==1
|
||||
|
||||
copperList:
|
||||
;; bitplane pointers must be first else poking addresses will be incorrect
|
||||
copperListBplPtr:
|
||||
dc.w BPL1PTL,0
|
||||
dc.w BPL1PTH,0
|
||||
dc.w BPL2PTL,0
|
||||
@@ -164,7 +170,10 @@ copperList:
|
||||
dc.w BPL5PTH,0
|
||||
dc.w BPL6PTL,0
|
||||
dc.w BPL6PTH,0
|
||||
dc.l $fffffffe
|
||||
dc.w $106,$c00 ;AGA sprites, palette and dual playfield reset
|
||||
dc.w $1FC,0 ;AGA sprites and burst reset
|
||||
dc.l $fffffffe
|
||||
dc.l $fffffffe
|
||||
|
||||
align 4
|
||||
|
||||
|
||||
@@ -2,14 +2,17 @@
|
||||
xdef WaitRaster
|
||||
xdef Depack
|
||||
|
||||
|
||||
WaitVerticalBlank:
|
||||
movem.l d0-a6,-(sp)
|
||||
.loop move.l $dff004,d0
|
||||
movem.l d0,-(sp)
|
||||
.loop: move.l $dff004,d0
|
||||
and.l #$1ff00,d0
|
||||
cmp.l #303<<8,d0
|
||||
cmp.l #303<<8,d0 ; wait for the scan line
|
||||
bne.b .loop
|
||||
movem.l (sp)+,d0-a6
|
||||
.loop2 move.l $dff004,d0
|
||||
and.l #$1ff00,d0
|
||||
cmp.l #303<<8,d0 ; wait for the scal line to pass (A4000 is fast!)
|
||||
beq.b .loop2
|
||||
movem.l (sp)+,d0
|
||||
rts
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user