home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 1
/
GoldFishApril1994_CD2.img
/
d4xx
/
d421
/
ezasm
/
scroll.asm
< prev
next >
Wrap
Assembly Source File
|
1990-12-29
|
2KB
|
146 lines
* scroll example
* hit left mouse button to quit
INTREQR equ $01e
INTREQ equ $09c
INTENAR equ $01c
INTENA equ $09a
DMACONR equ $002
DMACON equ $096
BPLCON0 equ $100
BPLCON1 equ $102
BPLCON2 equ $104
BPL1MOD equ $108
BPL2MOD equ $10a
DDFSTRT equ $092
DDFSTOP equ $094
DIWSTRT equ $08e
DIWSTOP equ $090
BPL1PTH equ $0e0
BPL2PTH equ $0e4
CLEAR_CHIP equ $10002
* CSEG (Manx)
SECTION CODE
DispMem equ -4
Count equ -8
IntSave equ -12
DmaSave equ -14
Color equ -16
XREF _LVOAllocMem
XREF _LVOFreeMem
link a5,#-18
movea.l $4,a6
move.l #16000,d0
move.l #CLEAR_CHIP,d1
jsr _LVOAllocMem(a6)
move.l d0,DispMem(a5)
beq Quit
lea 14675968,a3
move.w INTENAR(a3),IntSave(a5) ;save DMA and interrupt states
move.w DMACONR(a3),DmaSave(a5)
* set up display regs
move.w #$1200,BPLCON0(a3) ; (LORES) 1BPL COLOR
clr.w BPLCON1(a3)
clr.w BPLCON2(a3)
clr.w BPL1MOD(a3)
clr.w BPL2MOD(a3)
move.w #$2c81,DIWSTRT(a3)
move.w #$f4c1,DIWSTOP(a3)
move.w #$0038,DDFSTRT(a3)
move.w #$00d0,DDFSTOP(a3)
move.w #$7fff,INTENA(a3)
move.w #$7fff,DMACON(a3)
move.w #$8020,INTENA(a3) ;SET VERTB
move.w #$8300,DMACON(a3) ;SET DMAEN BPLEN
* Make bands for effect
moveq #7,d1
move.l #$ffffffff,d2
movea.l DispMem(a5),a1
1$ move.l #249,d0
2$ move.l d2,(a1)+
dbf d0,2$
lea 1000(a1),a1 ;start of next band
dbf d1,1$
move.l DispMem(a5),d2
move.l d2,d3
addi.l #7960,d3
VBloop move.w INTREQR(a3),d1
btst.l #5,d1
beq .laaa
move.w #$0020,INTREQ(a3)
cmp.l d3,d2
bls .laab
move.l DispMem(a5),d2
jmp .laac
.laab
moveq #50,d7
add.l d7,d2
.laac
move.l d2,BPL1PTH(a3)
.laaa
btst.b #6,$bfe001
bne VBloop
Quit
tst.l DispMem(a5)
beq .laad
movea.l $4,a6
movea.l DispMem(a5),a1
move.l #16000,d0
jsr _LVOFreeMem(a6)
.laad
* restore DMACON & INTENA
lea 14675968,a3
move.w #$7fff,INTENA(a3)
move.w #$7fff,DMACON(a3)
move.w IntSave(a5),d0
bset.l #15,d0
move.w d0,INTENA(a3)
move.w DmaSave(a5),d0
bset.l #15,d0
move.w d0,DMACON(a3)
unlk a5
moveq #0,d0
rts
END