home *** CD-ROM | disk | FTP | other *** search
- dmacon= $96
- vposr= $4
- cop1lc= $80
- cop2lc= $84
- copjmp1= $88
- bplcon0= $100
- bplcon1= $102
- bplcon2= $104
- bpl1pth= $0e0
- bpl1ptl= $0e2
- bpl1mod= $108
- bpl2mod= $10a
- diwstrt= $08e
- diwstop= $090
- ddfstrt= $092
- ddfstop= $094
- openlibrary= -30-522
- forbid= -30-102
- permit= -30-108
- allocmem= -30-168
- freemem= -30-180
- startlist= 38
- execbase= 4
- numplanes= 5
- planewith= 40
- planehigh= 224
- planesize= planewith*planehigh
- allocsize= planesize*numplanes
- CLsize= 11*4 ;(numplns*8)+4
- chip= 2
- clear= chip+$10000
-
- initialize:
- move.l execbase,a6
- move.l #allocsize,d0
- move.l #clear,d1
- jsr allocmem(a6) ;alloc mem for bplane
- move.l d0,planeadr
- move.l #clsize,d0
- moveq #chip,d1
- jsr allocmem(a6) ;alloc mem for CL
- move.l d0,CLadr
- ;Make the CopperList
- move.l #numplanes,d4 ;no of bitplanes -1
- sub.l #1,d4
- move.l d0,a0
- move.l planeadr,d1
- move.w #bpl1pth,d3
- mCL: move.w d3,(a0)+
- addq.w #2,d3
- swap d1
- move.w d1,(a0)+
- move.w d3,(a0)+
- addq.w #2,d3
- swap d1
- move.w d1,(a0)+
- add.l #planesize,d1
- dbf d4,mCL
- move.l #$fffffffe,(a0)
-
- jsr forbid(a6) ;DMA&tasksw off
- lea $dff000,a5
- move.w #$01e0,dmacon(a5)
- move.l CLadr,cop1lc(a5) ;init CL
- clr.w copjmp1(a5)
- move.w #$3081,diwstrt(a5) ;init PlayField
- move.w #$10c1,diwstop(a5)
- move.w #$0038,ddfstrt(a5)
- move.w #$00d0,ddfstop(a5)
- move.w #%0101000000000000,bplcon0(a5) ;12-14=bplanes
- clr.w bplcon1(a5)
- clr.w bplcon2(a5)
- move.w #0,bpl1mod(a5)
- move.w #0,bpl2mod(a5)
- move.w #$8180,dmacon(a5)
- rts
-
- shut_down:
- move.l #grname,a1
- clr.l d0
- jsr openlibrary(a6)
- move.l d0,a4
- move.l startlist(a4),cop1lc(a5)
- clr copjmp1(a5)
- move.w #$83e0,dmacon(a5)
- jsr permit(a6)
- move.l CLadr,a1
- move.l #CLsize,d0
- jsr freemem(a6)
- move.l planeadr,a1
- move.l #allocsize,d0
- jsr freemem(a6)
- rts
-
- CLadr: dc.l 0
- planeadr: dc.l 0
- test: dc.l 0
- GRname: dc.b 'graphics.library',0