home *** CD-ROM | disk | FTP | other *** search
- jmp start
-
- intena= $9a
- dmacon= $96
- color00= $180
- cop1lc= $80
- cop2lc= $84
- copjmp1= $88
- copjmp2= $8a
- ciaapra= $bfe001
- openlibrary= -30-522
- forbid= -30-102
- permit= -30-108
- allocmem= -30-168
- freemem= -30-180
- startlist= 38
- execbase= 4
- chip= 2
-
- sl: dc.l 0
- cladr: dc.l 0
- grname: dc.b "graphics.library",0
- p: dc.b 7
- dp: dc.b 1
- dx: dc.b -1
- even
-
- clstart:
- dc.w color00,$0000
- dc.w $800f,$fffe
- dc.w color00,$0508
- dc.w $810f,$fffe
- dc.w color00,$0908
- dc.w $820f,$fffe
- dc.w color00,$0f08
- dc.w $850f,$fffe
- dc.w color00,$0908
- dc.w $860f,$fffe
- dc.w color00,$0508
- dc.w $870f,$fffe
- dc.w color00,$0000
- dc.w $ffff,$fffe
- clend:
- clsize= clend - clstart
-
- start:
- jsr initialize
- s1: btst #6,ciaapra
- beq end
- move.b p,d0
- s2: move.l $dff004,d2
- and.l #$0001ff00,d2
- cmp.l #$00001000,d2
- bne s2
- sub.b #1,d0
- bne s2
- jsr calc_offset
- jsr new_cop
- jmp s1
-
- calc_offset:
- move.b dp,d0
- add.b d0,p
- cmp.b #1,p
- bne c1
- move.b #1,dp
- c1: cmp.b #11,p
- bne c2
- move.b #-1,dp
- cmp.b #1,dx
- bne c3
- move.b #-1,dx
- jmp c2
- c3: cmp.b #-1,dx
- bne c2
- move.b #1,dx
- c2: rts
-
- new_cop:
- move.l cladr,a6
- move.b dx,d0
- sub.b d0,04(a6)
- sub.b d0,12(a6)
- sub.b d0,20(a6)
- add.b d0,28(a6)
- add.b d0,36(a6)
- add.b d0,44(a6)
- rts
-
- initialize:
- move.l execbase,a6
- moveq #clsize,d0
- moveq #chip,d1
- jsr allocmem(a6)
- move.l d0,cladr
- beq.s ende
- lea clstart,a0
- move.l cladr,a1
- moveq #clsize-1,d0
- clcopy: move.b (a0)+,(a1)+
- dbf d0,clcopy
- jsr forbid(a6)
- lea $dff000,a5
- move.w #$03a0,dmacon(a5)
- move.l cladr,cop1lc(a5)
- clr.w copjmp1(a5)
- move.w #$8280,dmacon(a5)
- move.l #grname,a1
- clr.l d0
- jsr openlibrary(a6)
- move.l d0,a4
- move.l startlist(a4),sl
- rts
-
- end:
- move.l execbase,a6
- move.l #$dff000,a5
- move.l sl,cop1lc(a5)
- clr.w copjmp1(a5)
- move.w #$8310,dmacon(a5)
- jsr permit(a6)
- move.l cladr,a1
- moveq #clsize,d0
- jsr freemem(a6)
- ende: clr.l d0
- rts
-
-
-