home *** CD-ROM | disk | FTP | other *** search
- SHORT BOB BY PSYCHO OF DOMINATORS
-
- start:
- MOVE.L #$DFF000,A5
- jsr INITIALIZE(pc)
- jsr setcolors(pc)
- jsr setup_copperlist(pc)
- jsr setupscreen(pc)
- jsr show_background(pc)
- jsr calc_cursorpos(pc)
- jsr movebrush(pc)
- main_loop:
- jsr movebrush(pc)
- BTST #6,$BFE001
- bne main_loop
- jsr RESTORE(pc)
- rts
-
- picx=320 ; pixels
- picy=256 ; pixels
- antal_farver=32
- antal_bpl=5
- antal_bobbpl=3
- brushx=32 ; pixels
- brushy=16 ; pixels
-
- picxword=picx/16
- picxbyte=picx/8
- bplsize=picxbyte*picy
- picsize=bplsize*antal_bpl
-
- brushxword=brushx/16
- brushxbyte=brushx/8
- brushsize=brushxbyte*brushy
-
-
- CloseLib=-414
- ExecBase=4
- OpenLib=-408
-
- BLTCPTH=$048
- BLTBPTH=$04c
- BLTAPTH=$050
- BLTDPTH=$054
- BLTCMOD=$060
- BLTBMOD=$062
- BLTAMOD=$064
- BLTDMOD=$066
- BLTCON0=$040
- BLTCON1=$042
- BLTSIZE=$058
- BPL1MOD=$108
- BPLCON0=$100
- BPLCON1=$102
- COP1LCH=$080
- COPJMP1=$088
- DDFSTRT=$092
- DDFSTOP=$094
- DIWSTRT=$08e
- DIWSTOP=$090
- DMACON= $096
- DMACONR=$002
-
-
- setcolors:
- move.l #collist,a0
- move.l #colour1+2,a1
- move.w #antal_farver-1,d0
- fill2: move.w (a0)+,(a1)
- adda.l #4,a1
- dbf d0,fill2
- rts
-
-
- setup_copperlist:
- move.l #bpl1,d0
- move.w d0,LO1+2
- lsr.l #8,d0
- lsr.l #8,d0
- move.w d0,HI1+2
- move.l #bpl2,d0
- move.w d0,LO2+2
- lsr.l #8,d0
- lsr.l #8,d0
- move.w d0,HI2+2
- move.l #bpl3,d0
- move.w d0,LO3+2
- lsr.l #8,d0
- lsr.l #8,d0
- move.w d0,HI3+2
- move.l #bpl4,d0
- move.w d0,LO4+2
- lsr.l #8,d0
- lsr.l #8,d0
- move.w d0,HI4+2
- move.l #bpl5,d0
- move.w d0,LO5+2
- lsr.l #8,d0
- lsr.l #8,d0
- move.w d0,HI5+2
- rts
-
- show_background:
- move.b #antal_bpl,d0
- move.w #picxword,d1
- move.w #picy,d2
- move.w #0,d3
- move.w #0,d4
- move.l #picbuffer,a0
- move.l #screenbuffer,a1
- jsr SHOWSCREEN(pc)
- rts
-
- calc_cursorpos:
- move.l #0,a0
- move.w xpos(pc),d2
- divu #8,d2
- move.w xpos(pc),d3
- andi.w #$000f,d3
- lsr.l #8,d3
- lsr.l #8,d3
- lsr.l #8,d3
- adda.w d2,a0
- move.w d3,smoothxpos
- move.w ypos(pc),d2
- mulu #40,d2
- adda.l d2,a0
- move.l a0,cursor_position
- rts
-
- restorebehind_brush1:
- move.b #antal_bobbpl,d0
- move.w #brushxword,d1
- move.w #brushy,d2
- move.w #picxbyte-brushxbyte,d3
- move.w #picxbyte-brushxbyte,d4
- move.l #picbuffer1,a0
- addi.l cursor_position(pc),a0
- move.l cursor_position(pc),a1
- addi.l #bpl1,a1
- jsr SHOWSCREEN(pc)
- rts
-
-
- show_brush1:
- move.b #antal_bobbpl,d0
- move.w #brushxword,d1
- move.w #brushy,d2
- move.w #0,d3
- move.w #picxbyte-brushxbyte,d4
- move.w smoothxpos(pc),d5
- move.l #brush1,a0
- move.l cursor_position(pc),a1
- addi.l #bpl1,a1
- move.l #brushmask1,a2
- jsr SHOWBRUSH(pc)
- rts
- movebrush:
- movebrush_wait:
- cmp.b #$D0,$006(a5)
- bne movebrush_wait
- move.w #$8400,DMACON(A5)
- jsr restorebehind_brush1(pc)
- jsr calc_cursorpos(pc)
- jsr show_brush1(pc)
- move.w #$0400,DMACON(A5)
- move.b $006(a5),$100
- rts
-
- setupscreen:
- move.w #$8100,DMACON(A5)
- move.w #$8040,DMACON(A5)
- move.w #$0020,DMACON(A5)
-
- move.w #antal_bpl,d0
- mulu #$1000,d0
- ori.w #$0280,d0
- move.w d0,BPLCON0(A5)
- move.w #0,BPLCON1(A5)
- move.w #0,BPL1MOD(A5)
- move.w #$0080,DMACON(A5)
- move.l #copperlist,COP1LCH(A5)
- move.w COPJMP1(A5),d0
- move.w #$8080,DMACON(A5)
- rts
-
- startlist=38
-
- INITIALIZE:
- move.l execbase.w,a6
- MOVE.W #$7FFF,$09A(A5)
- rts
-
- RESTORE:
- move.l execbase.W,a6
- move.w #$000f,DMACON(A5)
- lea graphics_library(pc),a1
- clr.l d0
- jsr openlib(a6)
- move.l d0,a1
- move.l startlist(a1),COP1LCH(A5)
- clr.w COPJMP1(A5)
- move.w #$83e0,DMACON(A5)
- jsr closelib(a6)
- MOVE.W #$4000,$09A(A5)
- MOVE.W #$E02C,$09A(A5)
- rts
-
- graphics_library: dc.b 'graphics.library',0
- even
-
- SHOWBRUSH:
- move.w d1,d7
- mulu d2,d7
- mulu #2,d7
- move.w d2,d6
- mulu #64,d6
- addi.w d1,d6
- showbrush_wait:
- btst #14,DMACONR(A5)
- bne showbrush_wait
- move.l a2,BLTAPTH(A5)
- move.l a0,BLTBPTH(A5)
- move.l a1,BLTCPTH(A5)
- move.l a1,BLTDPTH(A5)
- move.w d3,BLTAMOD(A5)
- move.w d3,BLTBMOD(A5)
- move.w d4,BLTCMOD(A5)
- move.w d4,BLTDMOD(A5)
- andi.w #$f000,d5
- move.w d5,BLTCON1(A5)
- ori.w #$0fca,d5
- move.w d5,BLTCON0(A5)
- move.w d6,BLTSIZE(A5)
- MOVE.L #$FFFFFFFF,$044(a5)
- addi.l d7,a0 ; HUSK
- addi.l #bplsize,a1 ; HUSK
- subi.b #1,d0
- bne showbrush_wait
- rts
-
- SHOWSCREEN:
- move.w d1,d7
- mulu d2,d7
- mulu #2,d7
- move.w d2,d6
- mulu #64,d6
- addi.w d1,d6
- showscreen_wait:
- btst #14,DMACONR(A5)
- bne showscreen_wait
- move.l a0,BLTAPTH(A5)
- move.l a1,BLTDPTH(A5)
- move.w d3,BLTAMOD(A5)
- move.w d4,BLTDMOD(A5)
- move.w #$0000,BLTCON1(A5)
- move.w #$09f0,BLTCON0(A5)
- move.w d6,BLTSIZE(A5)
- addi.l #bplsize,a0
- addi.l #bplsize,a1
- subi.b #1,d0
- bne showscreen_wait
- rts
-
- cursor_position: dc.l picxbyte*16
- shadow_position: dc.l 0
- xpos: dc.w 160
- ypos: dc.w 100
- smoothxpos: dc.w 0
-
- copperlist:
- dc.w $008e,$2c81
- dc.w $0090,$f9c1
- dc.w $0092,$0038
- dc.w $0094,$00d0
- dc.w $0100,$5200
- HI1: dc.w $00e0,0
- LO1: dc.w $00e2,0
- HI2: dc.w $00e4,0
- LO2: dc.w $00e6,0
- HI3: dc.w $00e8,0
- LO3: dc.w $00ea,0
- HI4: dc.w $00ec,0
- LO4: dc.w $00ee,0
- HI5: dc.w $00f0,0
- LO5: dc.w $00f2,0
- colour1:
- dc.w $0180,$0000
- dc.w $0182,$0000
- dc.w $0184,$0000
- dc.w $0186,$0000
- dc.w $0188,$0000
- dc.w $018a,$0000
- dc.w $018c,$0000
- dc.w $018e,$0000
- dc.w $0190,$0000
- dc.w $0192,$0000
- dc.w $0194,$0000
- dc.w $0196,$0000
- dc.w $0198,$0000
- dc.w $019a,$0000
- dc.w $019c,$0000
- dc.w $019e,$0000
- dc.w $01a0,$0000
- dc.w $01a2,$0000
- dc.w $01a4,$0000
- dc.w $01a6,$0000
- dc.w $01a8,$0000
- dc.w $01aa,$0000
- dc.w $01ac,$0000
- dc.w $01ae,$0000
- dc.w $01b0,$0000
- dc.w $01b2,$0000
- dc.w $01b4,$0000
- dc.w $01b6,$0000
- dc.w $01b8,$0000
- dc.w $01ba,$0000
- dc.w $01bc,$0000
- dc.w $01be,$0000
- dc.w $ffff,$fffe ;end copper list
-
- brush1: blk.b brushsize*antal_bobbpl,$ff
- brushmask1: blk.b brushsize,$ff
-
- picbuffer:
- picbuffer1: blk.b bplsize,0
- picbuffer2: blk.b bplsize,0
- picbuffer3: blk.b bplsize,0
- picbuffer4: blk.b bplsize,0
- picbuffer5: blk.b bplsize,0
- collist: blk.b 64,0
- screenbuffer:
- bpl1: blk.b bplsize,0
- bpl2: blk.b bplsize,0
- bpl3: blk.b bplsize,0
- bpl4: blk.b bplsize,0
- bpl5: blk.b bplsize,0
- END: