home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-09-13 | 50.0 KB | 1,734 lines |
- section skdfj,code_C
- bplasize = (40*380*2)
- bpla1 = $60000
- bpla2 = bpla1+40
- bplbsize = (40*290)
- bplb1 = bpla1+bplasize
- bplb2 = bplb1+bplbsize
-
- bplcsize = (40*40*4)
- bplc1 = bplb2+bplbsize
- bplc2 = bplc1+40
- bplc3 = bplc2+40
- bplc4 = bplc3+40
-
- intena= $9a
- intenar= $1c
- intreq= $9c
- dmacon= $96
- cop1lc= $80
- copjmp1= $88
-
- bltamod= $64
- bltbmod= $62
- bltcmod= $60
- bltdmod= $66
- bltafwm= $44
- bltcpth= $48
- bltcptl= $4a
- bltbpth= $4c
- bltbptl= $4e
- bltapth= $50
- bltaptl= $52
- bltdpth= $54
- bltdptl= $56
- bltadat= $74
- bltbdat= $72
- bltcon1= $42
- bltalwm= $46
- bltcon0= $40
- blitsize= $58
- dmaconr= $2
- forbid= -30-102
- permit= -30-108
- openlib = -408
- closelib= -414
- execute = -222
- *************************************************************************
- waitblit:macro
- btst #14,$dff002
- bne.s *-8
- endm
- *************************************************************************
- lea $dff000,a5 ;customchips basic adr.
- move.w #$7fff,intena(a5) ;int.s sperren
-
- lea bpla1,a0
- clrpl: clr.l (a0)+
- cmp.l #bplc1+bplcsize,a0
- bne.s clrpl
-
- bsr.l init
- bsr.w mt_init
- ******************************************************************************
- ;type routine 53 chars in a row
- ;d5 - nr. of lines
- ;a0 - text address
- ;a1 - dest. bpl address
- ******************************************************************************
- lea text(pc),a0
- lea bpla1+(80*90),a1
- moveq #allsize-1,d5
- tloop_0:moveq #0,d2 ;start x
- tloop_1:move.b (a0)+,d0 ;get ascii of wanted char
- lea ascii(pc),a3 ;get ascii table
- moveq #-4,d1 ;reset char counter
- tloop_2:addq.l #04,d1 ;increase char counter
- cmp.b (a3)+,d0 ;get pos in ascii table
- bne.s tloop_2
- lea chartab(pc),a3 ;get chartableadress
- move.l (a3,d1.l),a3 ;get wanted charadr. from chartable
- moveq #05-1,d1 ;y-size of char
- move.w d2,d3 ;get x
- move.w d3,d4 ;double x
- lsr.w #03,d3 ;x/8
- andi.w #$07,d4 ;bits to shift soft (last 3)
- lea (a1,d3.w),a4
- tloop_3:move.b (a3),d3 ;Get source byte
- ext.w d3 ;expand to wordsize
- asl.w #08,d3 ;shift to begin of word
- lsr.w d4,d3 ;shift xxx bit right
- or.b d3,1(a4) ;merge with bpl. bits
- lsr.w #08,d3 ;for first bpl. byte
- or.b d3,(a4) ;merge with bpl. bits
- adda.l #40,a3 ;next source line
- adda.l #40*2,a4 ;next dest. line
- dbf d1,tloop_3
- add.w #06,d2
- cmp.w #(06*53),d2
- bne.s tloop_1
- move.w #65,d2 ;reset x-start
- adda.l #80*06,a1
- adda.l #80*06,a2 ;next dest. lines
- dbf d5,tloop_0
-
- move.b $00a(a5),oldy ;store mouse y-pos
-
- move.l #cop,$080(a5)
- clr.w $088(a5)
-
- move.l $6c,oldint ;
- move.l #irq,$6c ;new Interrupt LEVEL 3
- move.w #$c010,intena(a5) ;allow int from clist
- wait: btst #06,$bfe001
- bne wait
-
- cmp.w #filenum,ypos ;no file selected
- bge.s wait
-
- quit: waitblit
- move.l $04,a6 ;execbase address
- lea gfxname,a1
- jsr openlib(a6)
- move.l d0,a1
- move.l 38(a1),cop1lc(a5) ;restore old copperlist
- clr.w copjmp1(a5)
- jsr closelib(a6)
- move.w #$83e0,dmacon(a5)
- move.l oldint,$6c ;restore old level 3 int.
- move.w #$e03c,intena(a5) ;allow int.s
- bsr.w mt_end
-
- lea dosname(pc),a1
- jsr openlib(a6) ;try to open dos library
- move.l d0,dosbase
- beq.s error
-
- move.w ypos(pc),d0 ;use y-pos as offset
- lsl.w #02,d0 ;*4 for longword addressing
- ext.l d0
- lea filetab(pc),a0
- move.l (a0,d0.l),d1 ;pointer on file name
- moveq #0,d2 ;standart input
- moveq #0,d3 ;standart output
- move.l dosbase,a0
- jsr execute(a0) ;try to execute file
- move.l dosbase,a1
- jsr closelib(a6) ;close dos library
- error: rts
- *******************************************************************************
- irq: bsr.w stars
- bsr.w vectord
- bsr.w typer
- bsr.w flash
- bsr.w chooser
- bsr.w muzax
- move.w #$0010,intreq(a5) ;erase int . enabling bit
- rte
- **************************************************************************
- chooser:move.b $00a(a5),d0 ;get mouse y-pos
- move.b oldy(pc),d1 ;get old mouse y-pos
- move.b d0,oldy ;store actual y-pos as old
- sub.b d0,d1 ;get difference
- ext.w d1
- move.w ypos(pc),d0 ;get pointer y-pos
- sub.w d1,d0
- tst.w d0 ;over upper border y ?
- bgt.w plab_0
- move.w #0,d0 ;set pointer on upper border
-
- plab_0: cmp.w #allsize-tophsize-1,d0 ;over bottom border y ?
- blt.s plab_1
- move.w #allsize-tophsize-1,d0 ;set pointer on bottom border
- plab_1: move.w d0,ypos ;refresh pointer y-pos
- mulu #80*6,d0
- move.l #bpla1+(80*60),d1 ;text part start address
- ext.l d0
- add.l d0,d1 ;change address
- move.w d1,hia1+6
- swap d1
- move.w d1,hia1+2
- swap d1
- addi.l #40,d1
- move.w d1,hia2+6
- swap d1
- move.w d1,hia2+2
- rts
- **************************************************************************
- oldy: dc.w 0
- ypos: dc.w 0
- **************************************************************************
- flash: move.l ftabaddr(pc),a0 ;get fade table address
- move.w (a0),col1+2
- move.w (a0)+,col2+2 ;insert colors
- cmp.l #ftabend,a0 ;correct address
- bne.s flab_0
- suba.l #ftabend-ftab,a0
- flab_0: move.l a0,ftabaddr ;refresh address
- rts
- **************************************************************************
- ftabaddr:dc.l ftab
- ftab: dc.w $001,$011,$111,$112,$122,$222,$223,$233,$333,$334,$344
- dc.w $444,$445,$455,$555,$556,$566,$666,$667,$677,$777,$778
- dc.w $788,$888,$889,$899,$999,$99a,$9aa,$aaa,$aab,$abb,$bbb
- dc.w $bbc,$bcc,$ccc,$ccd,$cdd,$ddd,$dde,$dee,$eee,$eef,$eff
- dc.w $fff,$fff,$eff,$eef,$eee,$dee,$dde,$ddd,$cdd,$ccd,$ccc
- dc.w $bcc,$bbc,$bbb,$abb,$aab,$aaa,$9aa,$99a,$999,$899,$889
- dc.w $888,$788,$778,$777,$677,$667,$666,$566,$556,$555,$455
- dc.w $445,$444,$344,$334,$333,$233,$223,$222,$122,$112,$111
- dc.w $011,$000
- ftabend:even
- **************************************************************************
- stars: lea stlevel1+1(pc),a0
- lea stlevel2+1(pc),a1
- lea stlevel3+1(pc),a2
- lea stlevel4+1(pc),a3
- move.w #stnum-1,d0
-
- stloop: addq.b #01,(a0) ;move st. level 1
- addq.b #02,(a1) ;move st. level 2
- addq.b #03,(a2) ;move st. level 3
- addq.b #04,(a3) ;move st. level 4
- adda.w #02*4,a0
- adda.w #02*4,a1
- adda.w #02*4,a2
- adda.w #02*4,a3 ;next st. startposition
- dbf d0,stloop
- rts
- **************************************************************************
- showbpl:dc.l bplb1
- workbpl:dc.l bplb2
- **************************************************************************
- vectord:lea sintab(pc),a0 ;sintable
- lea sintab+180(pc),a1 ;costable
-
- move.l xtabaddr(pc),a2
- speed1: addq.l #02*1,a2 ;shift start of x-middle table
- cmp.l #xtabend,a2
- blt.s sptok1
- suba.l #xtabend-xtab,a2 ;correct address if nessesary
- sptok1: move.l a2,xtabaddr ;refresh address
- move.w (a2),xmiddle+2 ;new x-middle point
-
- move.l ztabaddr(pc),a2
- speed2: addq.l #02*3,a2 ;shift start of z-coord table
- cmp.l #ztabend,a2
- blt.s zptok1
- suba.l #ztabend-ztab,a2 ;correct address if nessesary
- zptok1: move.l a2,ztabaddr ;refresh address
- move.w (a2),zcoord1+2 ;modify code part 1
- move.w (a2),zcoord2+2 ;modify code part 2 (2 divs)
-
- move.l angxtabaddr(pc),a2
- speed3: addq.l #02*1,a2 ;shift start of x-angle table
- cmp.l #angtabend,a2
- blt.s axptok1
- suba.l #angtabend-angtab,a2 ;correct address if nessesary
- axptok1:move.l a2,angxtabaddr ;refresh address
- move.w (a2),d1 ;get angle x
-
- move.l angytabaddr(pc),a2
- speed4: addq.l #02*2,a2 ;shift start of y-angle table
- cmp.l #angtabend,a2
- blt.s ayptok1
- suba.l #angtabend-angtab,a2 ;correct address if nessesary
- ayptok1:move.l a2,angytabaddr ;refresh address
- move.w (a2),d2 ;get angle y
-
- move.l angztabaddr(pc),a2
- speed5: addq.l #02*1,a2 ;shift start of z-angle table
- cmp.l #angtabend,a2
- blt.s azptok1
- suba.l #angtabend-angtab,a2 ;correct address if nessesary
- azptok1:move.l a2,angztabaddr ;refresh address
- move.w (a2),d3 ;get angle z
-
-
- move.w #360*2,d0 ;maximal angle
- tst.w d1 ;angle positive ?
- bgt.s axp
- add.w d0,d1 ;correct angle
- axp: cmp.w d0,d1 ;angle over maximal
- blt.s refanx
- sub.w d0,d1 ;correct angle
- refanx: move.w (a0,d1.w),mul1+2 ;sinus of angle x
- move.w (a1,d1.w),mul2+2 ;cosinus of angle x
- tst.w d2 ;angle positive ?
- bgt.s ayp
- add.w d0,d2 ;correct angle
- ayp: cmp.w d0,d2 ;angle over maximal
- blt.s refany
- sub.w d0,d2 ;correct angle
- refany: move.w (a1,d2.w),mul3+2 ;cosinus of angle y
- move.w (a0,d2.w),mul4+2 ;sinus of angle y
- tst.w d3 ;angle positive ?
- bgt.s azp
- add.w d0,d3 ;correct angle
- azp: cmp.w d0,d3 ;angle over maximal
- blt.s refanz
- sub.w d0,d3 ;correct angle
- refanz: move.w (a0,d3.w),mul5+2 ;sinus of angle z
- move.w (a1,d3.w),mul6+2 ;cosinus of angle z
- move.w (a0,d3.w),mul7+2 ;sinus of angle z
- move.w (a1,d3.w),mul8+2 ;cosinus of angle z
- ;------------------------------------------------------------------------------
-
- lea showbpl(pc),a1 ;do double buffering
- movem.l (a1)+,d0-d1
- exg d0,d1
- movem.l d0-d1,-(a1) ;refresh adresses
-
- move.w d0,hib1+6
- swap d0
- move.w d0,hib1+2 ;init bpl. pointer bpl 0
-
- move.l d1,a0
- swap d1
- waitblit
- move.w d1,bltcpth(a5) ;init dest. adress hi-word
- clr.w bltdmod(a5)
- move.l #$01000000,bltcon0(a5)
- swap d1
- addi.l #40*40,d1
- move.l d1,bltdpth(a5)
- move.w #170*64+(320/16),blitsize(a5) ;clear wanted page
- ;------------------------------------------------------------------------------
- lea points(pc),a1 ;coord table
- lea xybuff(pc),a2 ;buffer for calculated 2d coords
- moveq #pnum-1,d5 ;nr. of points
- moveq #10,d6 ;2^2 = 1024 as eye z-coord.
- ;a1 - coord table x,y,z
- ;a2 - buffer for rotated x,y,z coords
- ;a3 - sin&costable
- ;d5 - number of points
- ;d6 - zoom
- ;d7 - number of surfaces
-
- loop_1: movem.w (a1)+,d0-d1 ;get x,y coords (z-not used)
- asl.w #04,d0
- asl.w #04,d1 ;*16 for smoother calculations
-
- move.l a3,a4 ;get save sinecostab adress
- ;d0 - x-coord
- ;d1 - y-coord
- ;d2 - z-coord
- ;d3 - used
- ;d4 - used
-
- rotate: move.w d1,d3 ;d3 = y
- mul1: muls #00,d1 ;y*sin(anglex)
- mul2: muls #00,d3 ;y*cos(anglex)
- add.l d3,d3 ;*2
- swap d3 ;y`=y*cos(anglex)-(z*sin(anglex)=0)
- add.l d1,d1 ;*2
- swap d1 ;z`=y*sin(anglex)+(z*cos(anglex)=0)
- rotangy:move.w d0,d2 ;d2 = x
-
- mul3: muls #00,d2 ;x*cos(angley)
- move.w d1,d4 ;d3 = z
- mul4: muls #00,d1 ;z*sin(angley)
-
-
- add.l d1,d2
- add.l d2,d2 ;*2
- swap d2 ;x`=x*cos(angley)+z*sin(angley)
-
-
- rotangz:move.w d2,d1 ;d1=x
- mul5: muls #00,d2 ;x*sin(anglez)
- mul6: muls #00,d1 ;x*cos(anglez)
- move.w d3,d4 ;d4=y
- mul7: muls #00,d3 ;y*sin(anglez)
- mul8: muls #00,d4 ;y*cos(anglez)
- sub.l d3,d1
- add.l d1,d1 ;*2
- swap d1 ;x`=x*cos(anglez)-y*sin(anglez)
- add.l d4,d2
- add.l d2,d2 ;*2
- swap d2 ;y`=x*sin(anglez)+y*cos(anglez)
- asr.w #04,d1
- asr.w #04,d2
-
- centrp: tst.w d0
- beq.s nocentr ;avoid division by zero
- ext.l d1
- ext.l d2
- asl.l d6,d1
- asl.l d6,d2 ;*1024
-
- zcoord1:divs #-1024,d1 ;(x`* viewerz)/z`
- zcoord2:divs #-1024,d2 ;(y`* viewerz)/z`
-
- neg.w d1 ;d1=-x`
- xmiddle:addi.w #320/2,d1 ;add x-middle
- ymiddle:addi.w #256/2,d2 ;add y-middle
- nocentr:move.w d1,(a2)+ ;insert x in table
- move.w d2,(a2)+ ;insert y in table
- dbf d5,loop_1
-
- ;-----------------------------------------------------------------------------
- move.l #$ffff8000,bltbdat(a5) ;init bltadat&bltbdat
- move.l #-1,bltafwm(a5)
- move.w #40,bltcmod(a5) ;init fixed reg. for line draw
- move.w #40,bltdmod(a5)
- move.w #bplb1/$10000,bltdpth(a5) ;hi-word dest. address
-
- lea xybuff(pc),a1 ;get 2d-coord table address
- lea multab40(pc),a2 ;get multable
-
- move.w #pnum-2,d4 ;nr. of lines to draw
- bloop: movem.w (a1)+,d0-d3 ;get x1,y1,x2,y2
- subq.l #04,a1 ;go back one coord pair
- cmp.w d1,d3
- beq.w noline
- bgt.s goon
- exg d0,d2
- exg d1,d3
-
- goon: movem.l d4,-(a7)
- move.w d0,d7
- move.w d1,d5
-
- lsr.w #04,d7
- add.w d7,d7
- lea (a0,d7.w),a3
- add.w d5,d5 ;y*2
- add.w (a2,d5.w),a3 ;add y-offset
- sub.w d0,d2
- sub.w d1,d3
- moveq #15,d5
- and.l d5,d0
- move.w d0,d7
- ror.l #04,d0
- eor.w d5,d7
- moveq #00,d5
- bset d7,d5
- move.w #04,d0 ;*** fill new word
- tst.w d2
- bpl.s l1
- addq.w #01,d0
- neg.w d2
- l1: cmp.w d2,d3
- ble.s l2
- exg d2,d3
- subq.w #04,d0
- add.w d0,d0
- l2: move.w d3,d7
- sub.w d2,d7
- lsl.w #02,d7
- add.w d3,d3
- moveq #00,d6
- move.w d3,d6
- sub.w d2,d6
- bpl.s l3
- ori.w #16,d0
- l3: add.w d3,d3
- lsl.w #02,d0
- addq.w #01,d2
- lsl.w #06,d2
- addq.w #02,d2
- swap d3
- move.w d7,d3
- or.l #$0b5a0003,d0
-
- wb: btst #14,$002(a5)
- bne.s wb
- eor d5,(a3)
- move.l d3,bltbmod(a5)
- move.w d6,bltaptl(a5)
- move.w a3,bltcptl(a5)
- move.w a3,bltdptl(a5)
- move.l d0,bltcon0(a5)
- move.w d2,blitsize(a5)
- movem.l (a7)+,d4
- noline: dbf d4,bloop ;build one surface
- waitblit
- adda.w #(40*210)-2,a0 ;go to end of bpl
- move.l #$09f00012,bltcon0(a5)
- move.l #$00000000,bltamod(a5) ;init bltamod & bltdmod
- move.l a0,bltapth(a5)
- move.l a0,bltdpth(a5)
- move.w #170*64+(320/16),blitsize(a5) ;blitter fill
- rts
- **************************************************************************
- stlevels= 4 ;number of star-levels (max 4)
- stnum = 8 ;number of stars per level
- *************************************************************************
- init: waitblit
- clr.l bltamod(a5)
- move.l #$09f00000,bltcon0(a5)
- move.l #-1,bltafwm(a5)
- move.l #logo,bltapth(a5)
- move.l #bpla1,bltdpth(a5)
- move.w #(56*2)*64+20,blitsize(a5)
- waitblit
-
- lea multab40(pc),a0
- move.w #256-1,d0
- moveq #00,d1
- fill40: move.w d1,(a0)+
- addi.w #40,d1
- dbf d0,fill40
- lea points(pc),a0
- move.w #pnum-1,d0
- iloop_1:subi.w #160,(a0)+
- subi.w #128,(a0) ;correct coords
- not.w (a0)+
- dbf d0,iloop_1
-
- lea angtab(pc),a0
- move.w #(angtabend-angtab)/2-1,d0
- iloop_2:move.w (a0),d1
- add.w d1,d1 ;*2 for word addressing
- move.w d1,(a0)+
- dbf d0,iloop_2
-
- lea stlevel1(pc),a0 ;first stlevel buffer
- lea sprite(pc),a1 ;sprite data
- lea spr0(pc),a2 ;sprite register in copperlist
- moveq #stlevels-1,d0 ;nr. of star levels
-
- bloop1: move.l a0,d6
- move.w d6,6(a2) ;sprite lo-word
- swap d6
- move.w d6,2(a2) ;spr. hi-word -init sprite data table
- adda.w #02*4,a2 ;go to next sprite registers in coplist
- moveq #stnum-1,d1 ;nr. of stars per level
- moveq #$71,d2 ;startpos x (for randomize)
- move #$29+202,d3 ;vertical start
- move #$2a+202,d4 ;vertical end
- moveq #00,d5 ;for 2nd byte in second controllword
-
- blevel: mulu $006(a5),d2
- eor.b #$ed,d2
- mulu $006(a5),d2 ;random horizontal start
- move.b d3,(a0)+ ;insert y-startposition (1. word)
- move.b d2,(a0)+ ;insert x-startposition
- move.b d4,(a0)+ ;insert y-endposition (2. word)
- move.b d5,(a0)+ ;insert 9. bit of vert. start & end
- move.l (a1),(a0)+ ;insert sprite data
- addq.w #05,d3 ;next vertical startpos
- cmp.w #$ff,d3 ;over 256 ?
- ble.s noov1
- bset #02,d5 ;set 9. bit of vertical start
-
- noov1: addq.w #05,d4 ;next vertical endpos
- cmp.w #$ff,d4 ;over 256 ?
- ble.s noov2
- bset #01,d5 ;set 9. bit of vertical end
-
- noov2: dbf d1,blevel ;build up level
- move.l #00,(a0)+ ;insert end mark of sprite table
- dbf d0,bloop1 ;build up next level
-
- bsr.w tinit ;init typer structure table
-
- waitvb: tst.b $006(a5) ;wait for vertical blank
- bne.s waitvb
- move.w #$8020,dmacon(a5) ;turn on sprites
- rts
- *************************************************************************
- ;init typer structure table
- *************************************************************************
- tinit: lea strtab(pc),a0 ;insert text (char addr.) in structure
- move.w #tnum-1,d0 ;nr. of char addresses needed
- move.l #masks+(tnum*8)-8,d1 ;first mask address
- moveq #-tnum*2,d2 ;first x-offset
- tiloop0:move.l d1,(a0)+ ;insert mask address
- move.l d2,(a0)+ ;insert x-offset
- move.l #char,(a0)+
- subq.l #08,d1
- addq.l #02,d2
- dbf d0,tiloop0
- rts
- **************************************************************************
- sprite: dc.w %0000000000000101,%0000000000000011
- **************************************************************************
- multab40: dcb.w 256,0
- **************************************************************************
- stlevel1: dcb.w (4*stnum)+2,0
- stlevel2: dcb.w (4*stnum)+2,0
- stlevel3: dcb.w (4*stnum)+2,0
- stlevel4: dcb.w (4*stnum)+2,0
- *************************************************************************
- tnum = 5
- *************************************************************************
- typer: tst.b dowait ;waiter enabled ?
- beq.s tlab_0
- addq.b #01,dowait+1 ;increase waiter
- cmp.b #40,dowait+1
- bne.w tlab_6
- clr.w dowait ;reset waitflag
- bsr.w tinit ;init structuretable
- tlab_0: waitblit
- move.w #(688-16)/8,bltamod(a5) ;modulo source A
- move.w #(320-16)/8,bltbmod(a5) ;modulo source B (mask)
- move.w #(320-16)/8,bltdmod(a5) ;modulo dest. D (dest. bpl)
- move.l #$0dc00000,bltcon0(a5) ;D=A*B & ascending mode (and)
- move.w #-1,bltafwm(a5) ;full word mask source A
- ;init register for blitter op.
- lea bplc1+160*13,a0 ;dest. bpl address
- lea strtab(pc),a1 ;get structure table address
- moveq #tnum-1,d0 ;get number of chars to work
- moveq #0,d3 ;reset char finished counter
-
- tyloop0:move.l (a1),d1 ;get mask address
- move.l 4(a1),d2 ;get x-byte offset
- cmp.l #masks+38,d1 ;final mask ?
- bne.s tlab_4
- cmp.l #30,d2 ;maximal offset -8 ?
- blt.w tlab_2
- lea 12(a1),a1 ;next structure start
- addq.b #01,d3 ;char finished
- cmp.b #tnum,d3 ;last char finished ?
- bne.s tlab_1
- move.b #01,dowait
- tlab_1: bra.s tlab_5
-
- tlab_2: addi.l #2*tnum,d2 ;increase x-offset
- move.l #masks,d1 ;reset mask address
-
- move.l text2addr(pc),a2 ;get text address
- move.b (a2)+,d4 ;get ascii of wanted char
- cmp.l #text2end,a2 ;over end of text ?
- bne.w tlab_3
- suba.l #text2end-text2,a2 ;reset textaddress
- tlab_3:move.l a2,text2addr ;go on in text
-
- lea ascii2(pc),a2 ;get ascii table address
- moveq #-2,d5 ;reset char pos counter
- tyloop1:addq.l #02,d5 ;increase offset
- cmp.b (a2)+,d4 ;get char offset
- bne.s tyloop1
-
- lea char(pc),a2 ;get char address
- lea (a2,d5.l),a2 ;get char addr. & offset
- move.l a2,8(a1) ;insert new char address
-
- tlab_4: addq.l #02,d1 ;increase mask address
- move.l d1,(a1)+ ;refresh mask address
- move.l d2,(a1)+ ;refresh x-byte offset
-
- tst.l d2 ;offset positive of 0 ?
- bge.s ok
- addq.l #04,a1 ;correct str. address
- bra.s tlab_5
- ok: waitblit
- move.l (a1)+,bltapth(a5) ;source A (char)
- move.l d1,bltbpth(a5) ;source B (mask)
- lea (a0,d2.l),a2 ;dest. address & offset
- move.l a2,bltdpth(a5) ;dest. D (dest. bpl)
- move.w #(19*4)*64+1,blitsize(a5) ;insert new char
- tlab_5: dbf d0,tyloop0
- tlab_6:rts
- *************************************************************************
- dowait: dc.b 0,0
- *************************************************************************
- ;maskaddress,x-byte offset,charaddress
- *************************************************************************
- strtab: dcb.l 3*tnum
- *************************************************************************
- ascii2: dc.b "ABCDEFGHIJKLMNOPQRSTUVWXYZ!?.-()1234567890 "
- even
- *************************************************************************
- text2addr:dc.l text2
- *************************************************************************
- ;20 chars per message followed by zero value
- *************************************************************************
- text2: dc.b " MOIN MOIN !!!! "
- DC.B "HMM DIS IS DOOM WITH"
- DC.B "DA CRAP HOUSE NO.14!"
- DC.B " HEY HAVE A LOOK AT "
- DC.B " THE TDD MEETRO COZ "
- DC.B " OUR STAR-GFXMAN "
- DC.B " D - S I G N "
- DC.B "DID THE GFX FOR IT !"
- DC.B "SO NOW I HAVE TO DO "
- DC.B "MY FUCKING SENDINGS "
- DC.B " FOR TODAY ...... "
- DC.B " HOPE 2 C U ALL "
- DC.B "AT THE CULT-PADDY !!"
- DC.B "FRIENDLY HANDSHAKES "
- DC.B " FROM DOOM WALK TO "
- dc.b " SARON AND ERROR "
- DC.B " AND DR.DRE OF TSB "
- dc.b " WOTW-EUROFRONT "
- dc.b " MAC-TEK "
- dc.b " MAC AND BOB "
- dc.b " OF BYTE BUSTERS "
- dc.b "SLICER AND POWERSWAP"
- dc.b "LINCOLN AND HEDGEHOG"
- dc.b " OF HARDLINE "
- dc.b " MERCY-HYPNOTIC "
- dc.b "JOKER AND SLAUGHTER "
- dc.b " OF TECH "
- dc.b " S-SEX-DIGITAL "
- dc.b " DR.KADAVER-ABJECT "
- dc.b " RIBALD-PIRATES "
- dc.b " CRUSH-CIRCLE "
- dc.b " RONNY-ACUME "
- dc.b "GHOSTRIDER AND CIBI "
- DC.B " OF SHINING 8 "
- dc.b " SCOOTER-RISK "
- dc.b "STRATEGO AND XENIATO"
- DC.B " OF PARANOID "
- DC.B "PLAUZE AND EXECUTOR "
- DC.B " OF ALPHAFLIGHT "
- DC.B " TOXIC-SPLASH "
- DC.B " MASSIVE-VANISH "
- DC.B "SHIRKHAN-INDEPENDENT"
- DC.B " TIGER-SCOOPEX "
- DC.B " JUGGER-PANIC "
- DC.B "PRIEST AND BACKLASH "
- DC.B " OF AGNOSTIC FRONT "
- DC.B " HIJACK-SPLASH "
- DC.B " MOGUL-PARADISE "
- DC.B " ARMIN-SUPPLEX "
- DC.B " SPY-MEXX "
- DC.B " MASQUE-DELIGHT "
- DC.B " DECCA OF PRECISE "
- DC.B " SARACEN AND "
- DC.B " DARKWALKER OF "
- DC.B " VISUAL BYTES "
- DC.B " CROWN-AGONY "
- DC.B " LORD CHAOS-XZESS "
- DC.B " THOR-EREMATION "
- DC.B "NEPUMUK AND GAMEBIT "
- DC.B " INDEPENDENT "
- dc.b " ZIG ZAG-SYMBIOSIS "
- DC.B " POLARIS-DELIGHT "
- DC.B " HOOVER-BRAINSTORM "
- DC.B " DEATH ANGEL-AMAZE "
- DC.B " DARYL AND RAVE "
- DC.B " OF SILENTS "
- DC.B " CRANE-SUBZERO "
- DC.B " PATS-ANALOG "
- DC.B " AXEL-TREACL "
- DC.B " COOPER-CULT "
- DC.B "KILLRAVEN-DEFFPACERS"
- DC.B " EQUILIZER-CHROME "
- DC.B "ARISTOTELES-AVATARS "
- DC.B " CRUSIFIX-ZENITH "
- DC.B " AND TO "
- DC.B " HURRICANE-NOXIOUS "
- DC.B " L8R "
- DC.B " DOOM OF DESIGN !!! "
- DC.B " TEXT RESTARTS ! "
- DC.B " TEXT RESTARTS !! "
- DC.B " TEXT RESTARTS !!! "
- DC.B " TEXT RESTARTS !!!! "
- text2end:even
-
- *************************************************************************
- mt_init:lea mdata,a0
- move.l a0,a1
- add.l #$3b8,a1
- moveq #$7f,d0
- moveq #0,d1
- mt_loop:move.l d1,d2
- subq.w #1,d0
- mt_lop2:move.b (a1)+,d1
- cmp.b d2,d1
- bgt.s mt_loop
- dbf d0,mt_lop2
- addq.b #1,d2
-
- lea mt_samplestarts(pc),a1
- asl.l #8,d2
- asl.l #2,d2
- add.l #$43c,d2
- add.l a0,d2
- move.l d2,a2
- moveq #$1e,d0
- mt_lop3:clr.l (a2)
- move.l a2,(a1)+
- moveq #0,d1
- move.w 42(a0),d1
- asl.l #1,d1
- add.l d1,a2
- add.l #$1e,a0
- dbf d0,mt_lop3
-
- or.b #$2,$bfe001
- move.b #$6,mt_speed
- clr.w $dff0a8
- clr.w $dff0b8
- clr.w $dff0c8
- clr.w $dff0d8
- clr.b mt_songpos
- clr.b mt_counter
- clr.w mt_pattpos
- rts
-
- mt_end: clr.w $dff0a8
- clr.w $dff0b8
- clr.w $dff0c8
- clr.w $dff0d8
- move.w #$f,$dff096
- rts
-
- muzax: movem.l d0-d4/a0-a3/a5-a6,-(a7)
- lea mdata,a0
- addq.b #$1,mt_counter
- move.b mt_counter,D0
- cmp.b mt_speed,D0
- blt.s mt_nonew
- clr.b mt_counter
- bra mt_getnew
-
- mt_nonew:
- lea mt_voice1(pc),a6
- lea $dff0a0,a5
- bsr mt_checkcom
- lea mt_voice2(pc),a6
- lea $dff0b0,a5
- bsr mt_checkcom
- lea mt_voice3(pc),a6
- lea $dff0c0,a5
- bsr mt_checkcom
- lea mt_voice4(pc),a6
- lea $dff0d0,a5
- bsr mt_checkcom
- bra mt_endr
-
- mt_arpeggio:
- moveq #0,d0
- move.b mt_counter,d0
- divs #$3,d0
- swap d0
- cmp.w #$0,d0
- beq.s mt_arp2
- cmp.w #$2,d0
- beq.s mt_arp1
-
- moveq #0,d0
- move.b $3(a6),d0
- lsr.b #4,d0
- bra.s mt_arp3
- mt_arp1:moveq #0,d0
- move.b $3(a6),d0
- and.b #$f,d0
- bra.s mt_arp3
- mt_arp2:move.w $10(a6),d2
- bra.s mt_arp4
- mt_arp3:asl.w #1,d0
- moveq #0,d1
- move.w $10(a6),d1
- lea mt_periods(pc),a0
- moveq #$24,d7
- mt_arploop:
- move.w (a0,d0.w),d2
- cmp.w (a0),d1
- bge.s mt_arp4
- addq.l #2,a0
- dbf d7,mt_arploop
- rts
- mt_arp4:move.w d2,$6(a5)
- rts
-
- mt_getnew:
- lea mdata,a0
- move.l a0,a3
- move.l a0,a2
- add.l #$c,a3
- add.l #$3b8,a2
- add.l #$43c,a0
-
- moveq #0,d0
- move.l d0,d1
- move.b mt_songpos,d0
- move.b (a2,d0.w),d1
- asl.l #8,d1
- asl.l #2,d1
- add.w mt_pattpos,d1
- clr.w mt_dmacon
-
- lea $dff0a0,a5
- lea mt_voice1(pc),a6
- bsr.s mt_playvoice
- lea $dff0b0,a5
- lea mt_voice2(pc),a6
- bsr.s mt_playvoice
- lea $dff0c0,a5
- lea mt_voice3(pc),a6
- bsr.s mt_playvoice
- lea $dff0d0,a5
- lea mt_voice4(pc),a6
- bsr.s mt_playvoice
- bra mt_setdma
-
- mt_playvoice:
- move.l (a0,d1.l),(a6)
- addq.l #4,d1
- moveq #0,d2
- move.b $2(a6),d2
- and.b #$f0,d2
- lsr.b #4,d2
- move.b (a6),d0
- and.b #$f0,d0
- or.b d0,d2
- tst.b d2
- beq.s mt_setregs
- moveq #0,d3
- lea mt_samplestarts(pc),a1
- move.l d2,d4
- subq.l #$1,d2
- asl.l #2,d2
- mulu #$1e,d4
- move.l (a1,d2.l),$4(a6)
- move.w (a3,d4.l),$8(a6)
- move.w $2(a3,d4.l),$12(a6)
- move.w $4(a3,d4.l),d3
- tst.w d3
- beq.s mt_noloop
- move.l $4(a6),d2
- asl.w #1,d3
- add.l d3,d2
- move.l d2,$a(a6)
- move.w $4(a3,d4.l),d0
- add.w $6(a3,d4.l),d0
- move.w d0,8(a6)
- move.w $6(a3,d4.l),$e(a6)
- move.w $12(a6),$8(a5)
- bra.s mt_setregs
- mt_noloop:
- move.l $4(a6),d2
- add.l d3,d2
- move.l d2,$a(a6)
- move.w $6(a3,d4.l),$e(a6)
- move.w $12(a6),$8(a5)
- mt_setregs:
- move.w (a6),d0
- and.w #$fff,d0
- beq mt_checkcom2
- move.b $2(a6),d0
- and.b #$F,d0
- cmp.b #$3,d0
- bne.s mt_setperiod
- bsr mt_setmyport
- bra mt_checkcom2
- mt_setperiod:
- move.w (a6),$10(a6)
- and.w #$fff,$10(a6)
- move.w $14(a6),d0
- move.w d0,$dff096
- clr.b $1b(a6)
-
- move.l $4(a6),(a5)
- move.w $8(a6),$4(a5)
- move.w $10(a6),d0
- and.w #$fff,d0
- move.w d0,$6(a5)
- move.w $14(a6),d0
- or.w d0,mt_dmacon
- bra mt_checkcom2
-
- mt_setdma:
- move.w #$12c,d0
- mt_wait:dbf d0,mt_wait
- move.w mt_dmacon,d0
- or.w #$8000,d0
- move.w d0,$dff096
- move.w #$12c,d0
- mt_wai2:dbf d0,mt_wai2
- lea $dff000,a5
- lea mt_voice4(pc),a6
- move.l $a(a6),$d0(a5)
- move.w $e(a6),$d4(a5)
- lea mt_voice3(pc),a6
- move.l $a(a6),$c0(a5)
- move.w $e(a6),$c4(a5)
- lea mt_voice2(pc),a6
- move.l $a(a6),$b0(a5)
- move.w $e(a6),$b4(a5)
- lea mt_voice1(pc),a6
- move.l $a(a6),$a0(a5)
- move.w $e(a6),$a4(a5)
-
- add.w #$10,mt_pattpos
- cmp.w #$400,mt_pattpos
- bne.s mt_endr
- mt_nex: clr.w mt_pattpos
- clr.b mt_break
- addq.b #1,mt_songpos
- and.b #$7f,mt_songpos
- move.b mt_songpos,d1
- cmp.b mdata+$3b6,d1
- bne.s mt_endr
- move.b mdata+$3b7,mt_songpos
- mt_endr:tst.b mt_break
- bne.s mt_nex
- movem.l (a7)+,d0-d4/a0-a3/a5-a6
- rts
-
- mt_setmyport:
- move.w (a6),d2
- and.w #$fff,d2
- move.w d2,$18(a6)
- move.w $10(a6),d0
- clr.b $16(a6)
- cmp.w d0,d2
- beq.s mt_clrport
- bge.s mt_rt
- move.b #$1,$16(a6)
- rts
- mt_clrport:
- clr.w $18(a6)
- mt_rt: rts
-
- mt_myport:
- move.b $3(a6),d0
- beq.s mt_myslide
- move.b d0,$17(a6)
- clr.b $3(a6)
- mt_myslide:
- tst.w $18(a6)
- beq.s mt_rt
- moveq #0,d0
- move.b $17(a6),d0
- tst.b $16(a6)
- bne.s mt_mysub
- add.w d0,$10(a6)
- move.w $18(a6),d0
- cmp.w $10(a6),d0
- bgt.s mt_myok
- move.w $18(a6),$10(a6)
- clr.w $18(a6)
- mt_myok:move.w $10(a6),$6(a5)
- rts
- mt_mysub:
- sub.w d0,$10(a6)
- move.w $18(a6),d0
- cmp.w $10(a6),d0
- blt.s mt_myok
- move.w $18(a6),$10(a6)
- clr.w $18(a6)
- move.w $10(a6),$6(a5)
- rts
-
- mt_vib: move.b $3(a6),d0
- beq.s mt_vi
- move.b d0,$1a(a6)
-
- mt_vi: move.b $1b(a6),d0
- lea mt_sin(pc),a4
- lsr.w #$2,d0
- and.w #$1f,d0
- moveq #0,d2
- move.b (a4,d0.w),d2
- move.b $1a(a6),d0
- and.w #$f,d0
- mulu d0,d2
- lsr.w #$6,d2
- move.w $10(a6),d0
- tst.b $1b(a6)
- bmi.s mt_vibmin
- add.w d2,d0
- bra.s mt_vib2
- mt_vibmin:
- sub.w d2,d0
- mt_vib2:move.w d0,$6(a5)
- move.b $1a(a6),d0
- lsr.w #$2,d0
- and.w #$3c,d0
- add.b d0,$1b(a6)
- rts
-
- mt_nop: move.w $10(a6),$6(a5)
- rts
-
- mt_checkcom:
- move.w $2(a6),d0
- and.w #$fff,d0
- beq.s mt_nop
- move.b $2(a6),d0
- and.b #$f,d0
- tst.b d0
- beq mt_arpeggio
- cmp.b #$1,d0
- beq.s mt_portup
- cmp.b #$2,d0
- beq mt_portdown
- cmp.b #$3,d0
- beq mt_myport
- cmp.b #$4,d0
- beq mt_vib
- move.w $10(a6),$6(a5)
- cmp.b #$a,d0
- beq.s mt_volslide
- rts
-
- mt_volslide:
- moveq #0,d0
- move.b $3(a6),d0
- lsr.b #4,d0
- tst.b d0
- beq.s mt_voldown
- add.w d0,$12(a6)
- cmp.w #$40,$12(a6)
- bmi.s mt_vol2
- move.w #$40,$12(a6)
- mt_vol2:move.w $12(a6),$8(a5)
- rts
-
- mt_voldown:
- moveq #0,d0
- move.b $3(a6),d0
- and.b #$f,d0
- sub.w d0,$12(a6)
- bpl.s mt_vol3
- clr.w $12(a6)
- mt_vol3:move.w $12(a6),$8(a5)
- rts
-
- mt_portup:
- moveq #0,d0
- move.b $3(a6),d0
- sub.w d0,$10(a6)
- move.w $10(a6),d0
- and.w #$fff,d0
- cmp.w #$71,d0
- bpl.s mt_por2
- and.w #$f000,$10(a6)
- or.w #$71,$10(a6)
- mt_por2:move.w $10(a6),d0
- and.w #$fff,d0
- move.w d0,$6(a5)
- rts
-
- mt_portdown:
- clr.w d0
- move.b $3(a6),d0
- add.w d0,$10(a6)
- move.w $10(a6),d0
- and.w #$fff,d0
- cmp.w #$358,d0
- bmi.s mt_por3
- and.w #$f000,$10(a6)
- or.w #$358,$10(a6)
- mt_por3:move.w $10(a6),d0
- and.w #$fff,d0
- move.w d0,$6(a5)
- rts
-
- mt_checkcom2:
- move.b $2(a6),d0
- and.b #$f,d0
- cmp.b #$e,d0
- beq.s mt_setfilt
- cmp.b #$d,d0
- beq.s mt_pattbreak
- cmp.b #$b,d0
- beq.s mt_posjmp
- cmp.b #$c,d0
- beq.s mt_setvol
- cmp.b #$f,d0
- beq.s mt_setspeed
- rts
-
- mt_setfilt:
- move.b $3(a6),d0
- and.b #$1,d0
- asl.b #$1,d0
- and.b #$fd,$bfe001
- or.b d0,$bfe001
- rts
- mt_pattbreak:
- not.b mt_break
- rts
- mt_posjmp:
- move.b $3(a6),d0
- subq.b #$1,d0
- move.b d0,mt_songpos
- not.b mt_break
- rts
- mt_setvol:
- cmp.b #$40,$3(a6)
- ble.s mt_vol4
- move.b #$40,$3(a6)
- mt_vol4:move.b $3(a6),$8(a5)
- rts
- mt_setspeed:
- cmp.b #$1f,$3(a6)
- ble.s mt_sets
- move.b #$1f,$3(a6)
- mt_sets:move.b $3(a6),d0
- beq.s mt_rts2
- move.b d0,mt_speed
- clr.b mt_counter
- mt_rts2:rts
-
- mt_sin: dc.b $00,$18,$31,$4a,$61,$78,$8d,$a1,$b4,$c5,$d4,$e0,$eb,$f4,$fa,$fd
- dc.b $ff,$fd,$fa,$f4,$eb,$e0,$d4,$c5,$b4,$a1,$8d,$78,$61,$4a,$31,$18
-
- mt_periods:
- dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c,$023a,$021a,$01fc,$01e0
- dc.w $01c5,$01ac,$0194,$017d,$0168,$0153,$0140,$012e,$011d,$010d,$00fe
- dc.w $00f0,$00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097,$008f,$0087
- dc.w $007f,$0078,$0071,$0000,$0000
-
- mt_speed: dc.b $6
- mt_songpos: dc.b $0
- mt_pattpos: dc.w $0
- mt_counter: dc.b $0
-
- mt_break: dc.b $0
- mt_dmacon: dc.w $0
-
- mt_samplestarts: dcb.l $1f,0
-
- mt_voice1: dcb.w 10,0
- dc.w $1
- dcb.w 3,0
- mt_voice2: dcb.w 10,0
- dc.w $2
- dcb.w 3,0
- mt_voice3: dcb.w 10,0
- dc.w $4
- dcb.w 3,0
- mt_voice4: dcb.w 10,0
- dc.w $8
- dcb.w 3,0
- ******************************************************************************
- pnum = 43
- ;x,y,z - coord
- points: dc.w 73,160
- dc.w 88,145
- dc.w 88,110
- dc.w 74,96
- dc.w 124,96
- dc.w 134,106
- dc.w 134,133
- dc.w 124,143
- dc.w 105,143
- dc.w 105,129
- dc.w 116,129
- dc.w 120,125
- dc.w 120,114
- dc.w 116,110
- dc.w 102,110
- dc.w 102,146
- dc.w 165,146
- dc.w 169,142
- dc.w 169,132
- dc.w 165,128
- dc.w 147,128
- dc.w 137,118
- dc.w 137,106
- dc.w 147,96
- dc.w 247,96
- dc.w 232,111
- dc.w 232,145
- dc.w 247,160
- dc.w 218,160
- dc.w 218,114
- dc.w 214,110
- dc.w 200,110
- dc.w 200,160
- dc.w 186,160
- dc.w 186,110
- dc.w 155,110
- dc.w 153,112
- dc.w 155,114
- dc.w 173,114
- dc.w 183,124
- dc.w 183,150
- dc.w 173,160
- dc.w 73,160
- pend:
- *******************************************************************************
- xybuff: dcb.w pnum*2 ;buffer for 2d coords
- *******************************************************************************
- sintab: dc.w 0,572,1144,1715,2286,2856,3425,3993
- dc.w 4560,5126,5690,6252,6813,7371,7927,8481
- dc.w 9032,9580,10126,10668,11207,11743,12275,12803
- dc.w 13328,13848,14364,14876,15383,15886,16383,16876
- dc.w 17364,17846,18323,18794,19260,19720,20173,20621
- dc.w 21062,21497,21925,22347,22762,23170,23571,23964
- dc.w 24351,24730,25101,25465,25821,26169,26509,26841
- dc.w 27165,27481,27788,28087,28377,28659,28932,29196
- dc.w 29451,29697,29934,30162,30381,30591,30791,30982
- dc.w 31163,31335,31498,31650,31794,31927,32051,32165
- dc.w 32269,32364,32448,32523,32588,32642,32687,32722
- dc.w 32747,32762,32767,32762,32747,32722,32687,32642
- dc.w 32587,32523,32448,32364,32269,32165,32051,31927
- dc.w 31794,31650,31498,31335,31163,30982,30791,30591
- dc.w 30381,30162,29934,29697,29451,29196,28932,28659
- dc.w 28377,28087,27788,27481,27165,26841,26509,26169
- dc.w 25821,25465,25101,24730,24351,23964,23571,23170
- dc.w 22762,22347,21925,21497,21062,20621,20173,19720
- dc.w 19260,18794,18323,17846,17364,16876,16384,15886
- dc.w 15383,14876,14364,13848,13328,12803,12275,11743
- dc.w 11207,10668,10126,9580,9032,8481,7927,7371
- dc.w 6813,6252,5690,5126,4560,3993,3425,2856
- dc.w 2286,1715,1144,572,0,-571,-1143,-1714
- dc.w -2285,-2855,-3424,-3993,-4560,-5125,-5689,-6252
- dc.w -6812,-7370,-7926,-8480,-9031,-9579,-10125,-10667
- dc.w -11206,-11742,-12274,-12802,-13327,-13847,-14363,-14875
- dc.w -15382,-15885,-16383,-16876,-17363,-17845,-18322,-18794
- dc.w -19259,-19719,-20173,-20620,-21061,-21496,-21925,-22346
- dc.w -22761,-23169,-23570,-23964,-24350,-24729,-25100,-25464
- dc.w -25820,-26168,-26508,-26840,-27164,-27480,-27787,-28086
- dc.w -28376,-28658,-28931,-29195,-29450,-29696,-29933,-30162
- dc.w -30380,-30590,-30790,-30981,-31163,-31335,-31497,-31650
- dc.w -31793,-31927,-32050,-32164,-32269,-32363,-32448,-32522
- dc.w -32587,-32642,-32687,-32722,-32747,-32762,-32767,-32762
- dc.w -32747,-32722,-32687,-32642,-32587,-32522,-32448,-32363
- dc.w -32269,-32165,-32051,-31927,-31793,-31650,-31497,-31335
- dc.w -31163,-30981,-30791,-30590,-30381,-30162,-29934,-29697
- dc.w -29451,-29195,-28931,-28658,-28377,-28087,-27788,-27481
- dc.w -27165,-26841,-26509,-26169,-25821,-25465,-25101,-24729
- dc.w -24351,-23964,-23571,-23170,-22762,-22347,-21925,-21497
- dc.w -21062,-20621,-20173,-19720,-19260,-18794,-18323,-17846
- dc.w -17364,-16876,-16384,-15886,-15383,-14876,-14364,-13848
- dc.w -13328,-12803,-12275,-11743,-11207,-10668,-10126,-9580
- dc.w -9032,-8481,-7927,-7371,-6813,-6252,-5690,-5126
- dc.w -4560,-3994,-3425,-2856,-2286,-1715,-1144,-572
- dc.w 0,572,1144,1715,2286,2856,3425,3993
- dc.w 4560,5126,5690,6252,6813,7371,7927,8481
- dc.w 9032,9580,10126,10668,11207,11743,12275,12803
- dc.w 13328,13848,14364,14876,15383,15886,16383,16876
- dc.w 17364,17846,18323,18794,19260,19720,20173,20621
- dc.w 21062,21497,21925,22347,22762,23170,23571,23964
- dc.w 24351,24730,25101,25465,25821,26169,26509,26841
- dc.w 27165,27481,27788,28087,28377,28659,28932,29196
- dc.w 29451,29697,29934,30162,30381,30591,30791,30982
- dc.w 31163,31335,31498,31650,31794,31927,32051,32165
- dc.w 32269,32364,32448,32523,32588,32642,32687,32722
- dc.w 32747,32762,32767,32762,32747,32722,32687,32642
- **************************************************************************
- xtabaddr:dc.l xtab
- xtab: dc.w 212,212,212,212,212,212,212,211
- dc.w 211,211,211,211,210,210,210,209
- dc.w 209,209,208,208,208,207,207,206
- dc.w 206,205,204,204,203,203,202,201
- dc.w 201,200,199,199,198,197,196,196
- dc.w 195,194,193,192,191,191,190,189
- dc.w 188,187,186,185,184,183,182,181
- dc.w 180,179,178,177,176,175,174,173
- dc.w 172,171,170,169,168,167,165,164
- dc.w 163,162,161,160,159,158,157,156
- dc.w 155,153,152,151,150,149,148,147
- dc.w 146,145,144,143,142,141,140,139
- dc.w 138,137,136,135,134,133,132,131
- dc.w 130,129,129,128,127,126,125,124
- dc.w 124,123,122,121,121,120,119,119
- dc.w 118,117,117,116,116,115,114,114
- dc.w 113,113,112,112,112,111,111,111
- dc.w 110,110,110,109,109,109,109,109
- dc.w 108,108,108,108,108,108,108,108
- dc.w 108,108,108,108,108,109,109,109
- dc.w 109,109,110,110,110,111,111,111
- dc.w 112,112,112,113,113,114,114,115
- dc.w 116,116,117,117,118,119,119,120
- dc.w 121,121,122,123,124,124,125,126
- dc.w 127,128,129,129,130,131,132,133
- dc.w 134,135,136,137,138,139,140,141
- dc.w 142,143,144,145,146,147,148,149
- dc.w 150,151,152,153,155,156,157,158
- dc.w 159,160,161,162,163,164,165,167
- dc.w 168,169,170,171,172,173,174,175
- dc.w 176,177,178,179,180,181,182,183
- dc.w 184,185,186,187,188,189,190,191
- dc.w 191,192,193,194,195,196,196,197
- dc.w 198,199,199,200,201,201,202,203
- dc.w 203,204,204,205,206,206,207,207
- dc.w 208,208,208,209,209,209,210,210
- dc.w 210,211,211,211,211,211,212,212
- dc.w 212,212,212,212
- xtabend:
- **************************************************************************
- ztabaddr:dc.l ztab
- ztab: dc.w -3023,-3023,-3023,-3022,-3022,-3021,-3020,-3019
- dc.w -3018,-3017,-3015,-3013,-3012,-3010,-3008,-3005
- dc.w -3003,-3000,-2998,-2995,-2992,-2988,-2985,-2982
- dc.w -2978,-2974,-2970,-2966,-2962,-2957,-2953,-2948
- dc.w -2943,-2938,-2933,-2928,-2922,-2917,-2911,-2905
- dc.w -2899,-2893,-2887,-2881,-2874,-2867,-2861,-2854
- dc.w -2847,-2839,-2832,-2825,-2817,-2809,-2801,-2794
- dc.w -2785,-2777,-2769,-2761,-2752,-2743,-2735,-2726
- dc.w -2717,-2708,-2698,-2689,-2680,-2670,-2660,-2651
- dc.w -2641,-2631,-2621,-2611,-2601,-2590,-2580,-2569
- dc.w -2559,-2548,-2537,-2527,-2516,-2505,-2494,-2483
- dc.w -2471,-2460,-2449,-2437,-2426,-2414,-2403,-2391
- dc.w -2379,-2368,-2356,-2344,-2332,-2320,-2308,-2296
- dc.w -2284,-2272,-2260,-2247,-2235,-2223,-2210,-2198
- dc.w -2186,-2173,-2161,-2148,-2136,-2123,-2111,-2098
- dc.w -2086,-2073,-2061,-2048,-2036,-2023,-2010,-1998
- dc.w -1985,-1973,-1960,-1948,-1935,-1923,-1910,-1898
- dc.w -1885,-1873,-1860,-1848,-1836,-1823,-1811,-1799
- dc.w -1787,-1774,-1762,-1750,-1738,-1726,-1714,-1702
- dc.w -1690,-1678,-1667,-1655,-1643,-1632,-1620,-1609
- dc.w -1597,-1586,-1575,-1563,-1552,-1541,-1530,-1519
- dc.w -1509,-1498,-1487,-1477,-1466,-1456,-1445,-1435
- dc.w -1425,-1415,-1405,-1395,-1386,-1376,-1366,-1357
- dc.w -1348,-1338,-1329,-1320,-1311,-1303,-1294,-1285
- dc.w -1277,-1269,-1261,-1252,-1245,-1237,-1229,-1221
- dc.w -1214,-1207,-1199,-1192,-1185,-1179,-1172,-1165
- dc.w -1159,-1153,-1147,-1141,-1135,-1129,-1124,-1118
- dc.w -1113,-1108,-1103,-1098,-1093,-1089,-1084,-1080
- dc.w -1076,-1072,-1068,-1064,-1061,-1058,-1054,-1051
- dc.w -1048,-1046,-1043,-1041,-1038,-1036,-1034,-1033
- dc.w -1031,-1029,-1028,-1027,-1026,-1025,-1024,-1024
- dc.w -1023,-1023,-1023,-1023,-1023,-1024,-1024,-1025
- dc.w -1026,-1027,-1028,-1029,-1031,-1033,-1034,-1036
- dc.w -1038,-1041,-1043,-1046,-1048,-1051,-1054,-1058
- dc.w -1061,-1064,-1068,-1072,-1076,-1080,-1084,-1089
- dc.w -1093,-1098,-1103,-1108,-1113,-1118,-1124,-1129
- dc.w -1135,-1141,-1147,-1153,-1159,-1165,-1172,-1179
- dc.w -1185,-1192,-1199,-1207,-1214,-1221,-1229,-1237
- dc.w -1245,-1252,-1261,-1269,-1277,-1285,-1294,-1303
- dc.w -1311,-1320,-1329,-1338,-1348,-1357,-1366,-1376
- dc.w -1386,-1395,-1405,-1415,-1425,-1435,-1445,-1456
- dc.w -1466,-1477,-1487,-1498,-1509,-1519,-1530,-1541
- dc.w -1552,-1563,-1575,-1586,-1597,-1609,-1620,-1632
- dc.w -1643,-1655,-1667,-1678,-1690,-1702,-1714,-1726
- dc.w -1738,-1750,-1762,-1774,-1786,-1799,-1811,-1823
- dc.w -1836,-1848,-1860,-1873,-1885,-1898,-1910,-1923
- dc.w -1935,-1948,-1960,-1973,-1985,-1998,-2010,-2023
- dc.w -2036,-2048,-2061,-2073,-2086,-2098,-2111,-2123
- dc.w -2136,-2148,-2161,-2173,-2186,-2198,-2210,-2223
- dc.w -2235,-2247,-2259,-2272,-2284,-2296,-2308,-2320
- dc.w -2332,-2344,-2356,-2368,-2379,-2391,-2403,-2414
- dc.w -2426,-2437,-2449,-2460,-2471,-2483,-2494,-2505
- dc.w -2516,-2527,-2537,-2548,-2559,-2569,-2580,-2590
- dc.w -2601,-2611,-2621,-2631,-2641,-2651,-2660,-2670
- dc.w -2680,-2689,-2698,-2708,-2717,-2726,-2735,-2743
- dc.w -2752,-2761,-2769,-2777,-2785,-2794,-2801,-2809
- dc.w -2817,-2825,-2832,-2839,-2847,-2854,-2861,-2867
- dc.w -2874,-2881,-2887,-2893,-2899,-2905,-2911,-2917
- dc.w -2922,-2928,-2933,-2938,-2943,-2948,-2953,-2957
- dc.w -2962,-2966,-2970,-2974,-2978,-2982,-2985,-2988
- dc.w -2992,-2995,-2998,-3000,-3003,-3005,-3008,-3010
- dc.w -3012,-3013,-3015,-3017,-3018,-3019,-3020,-3021
- dc.w -3022,-3022,-3023,-3023
- ztabend:
- **************************************************************************
- angxtabaddr:dc.l angtab
- angytabaddr:dc.l angtab+250
- angztabaddr:dc.l angtab
- **************************************************************************
- angtab: dc.w 360,360,360,360,360,360,360,360
- dc.w 359,359,359,359,359,358,358,358
- dc.w 357,357,357,356,356,356,355,355
- dc.w 354,354,353,353,352,352,351,351
- dc.w 350,349,349,348,347,347,346,345
- dc.w 344,344,343,342,341,340,340,339
- dc.w 338,337,336,335,334,333,332,331
- dc.w 330,329,328,327,326,325,323,322
- dc.w 321,320,319,317,316,315,314,312
- dc.w 311,310,309,307,306,305,303,302
- dc.w 300,299,298,296,295,293,292,290
- dc.w 289,287,286,284,283,281,280,278
- dc.w 276,275,273,272,270,268,267,265
- dc.w 263,262,260,258,257,255,253,251
- dc.w 250,248,246,245,243,241,239,237
- dc.w 236,234,232,230,228,227,225,223
- dc.w 221,219,217,216,214,212,210,208
- dc.w 206,204,203,201,199,197,195,193
- dc.w 191,189,188,186,184,182,180,178
- dc.w 176,174,172,171,169,167,165,163
- dc.w 161,159,157,156,154,152,150,148
- dc.w 146,144,143,141,139,137,135,133
- dc.w 132,130,128,126,124,123,121,119
- dc.w 117,115,114,112,110,109,107,105
- dc.w 103,102,100,98,97,95,93,92
- dc.w 90,88,87,85,84,82,80,79
- dc.w 77,76,74,73,71,70,68,67
- dc.w 65,64,62,61,60,58,57,55
- dc.w 54,53,51,50,49,48,46,45
- dc.w 44,43,41,40,39,38,37,35
- dc.w 34,33,32,31,30,29,28,27
- dc.w 26,25,24,23,22,21,20,20
- dc.w 19,18,17,16,16,15,14,13
- dc.w 13,12,11,11,10,9,9,8
- dc.w 8,7,7,6,6,5,5,4
- dc.w 4,4,3,3,3,2,2,2
- dc.w 1,1,1,1,1,0,0,0
- dc.w 0,0,0,0,0,0,0,0
- dc.w 0,0,0,0,1,1,1,1
- dc.w 1,2,2,2,3,3,3,4
- dc.w 4,4,5,5,6,6,7,7
- dc.w 8,8,9,9,10,11,11,12
- dc.w 13,13,14,15,16,16,17,18
- dc.w 19,20,20,21,22,23,24,25
- dc.w 26,27,28,29,30,31,32,33
- dc.w 34,35,37,38,39,40,41,43
- dc.w 44,45,46,48,49,50,51,53
- dc.w 54,55,57,58,60,61,62,64
- dc.w 65,67,68,70,71,73,74,76
- dc.w 77,79,80,82,84,85,87,88
- dc.w 90,92,93,95,97,98,100,102
- dc.w 103,105,107,109,110,112,114,115
- dc.w 117,119,121,123,124,126,128,130
- dc.w 132,133,135,137,139,141,143,144
- dc.w 146,148,150,152,154,156,157,159
- dc.w 161,163,165,167,169,171,172,174
- dc.w 176,178,180,182,184,186,188,189
- dc.w 191,193,195,197,199,201,203,204
- dc.w 206,208,210,212,214,216,217,219
- dc.w 221,223,225,227,228,230,232,234
- dc.w 236,237,239,241,243,245,246,248
- dc.w 250,251,253,255,257,258,260,262
- dc.w 263,265,267,268,270,272,273,275
- dc.w 276,278,280,281,283,284,286,287
- dc.w 289,290,292,293,295,296,298,299
- dc.w 300,302,303,305,306,307,309,310
- dc.w 311,312,314,315,316,317,319,320
- dc.w 321,322,323,325,326,327,328,329
- dc.w 330,331,332,333,334,335,336,337
- dc.w 338,339,340,340,341,342,343,344
- dc.w 344,345,346,347,347,348,349,349
- dc.w 350,351,351,352,352,353,353,354
- dc.w 354,355,355,356,356,356,357,357
- dc.w 357,358,358,358,359,359,359,359
- dc.w 359,360,360,360,360,360,360,360
- angtabend:
- **************************************************************************
- chartab:dc.l char2+00,char2+01,char2+02,char2+03,char2+04,char2+05
- dc.l char2+06,char2+07,char2+08,char2+09,char2+10,char2+11
- dc.l char2+12,char2+13,char2+14,char2+15,char2+16,char2+17
- dc.l char2+18,char2+19,char2+20,char2+21,char2+22,char2+23
- dc.l char2+24,char2+25,char2+26,char2+27,char2+28,char2+29
- dc.l char2+30,char2+31,char2+32,char2+33,char2+34,char2+35
- dc.l char2+36,char2+37,char2+38,char2+39
- dc.l char2+(40*5)+00,char2+(40*5)+01,char2+(40*5)+02
- dc.l char2+(40*5)+03,char2+(40*5)+04,char2+(40*5)+05
- dc.l char2+(40*5)+06,char2+(40*5)+07,char2+(40*5)+08
- dc.l char2+(40*5)+09,char2+(40*5)+10,char2+(40*5)+11
- dc.l char2+(40*5)+12 ;space
- **************************************************************************
- ascii: dc.b "abcdefghijklmnopqrstuvwxyz!?:.1234567890(),@$#%-+*`= "
- even
- **************************************************************************
- tophsize = 6 ;nr. of lines over filenames
- filenum = 5 ;number of chooseable files
- bothsize = 24 ;nr. of lines under filenames
- allsize = tophsize+filenum+bothsize
- **************************************************************************
- text: dc.b " --------------------------------------------------- " ;t
- dc.b " hello and welcome to a pack series from design " ;o
- dc.b " called : " ;p
- dc.b " crap house no.14 !! " ;t
- dc.b " released at the very end of week 10 of 1992 !!! " ;x
- dc.b " --------------------------------------------------- " ;t
- dc.b " jointro.................................rawhide "
- dc.b " the evil eye..........................symbiosis "
- dc.b " party invitation..............trsi and majic 12 "
- dc.b " meeretro.........................the dark demon "
- dc.b " circle madness...........................origin "
- dc.b " --------------------------------------------------- "
- dc.b " please vote for our pax in every chart you can get! "
- dc.b " --------------------------------------------------- "
- dc.b " "
- dc.b " contact me for swapping the latest under: "
- dc.b " (also for membership !!!!) "
- dc.b " "
- dc.b " plk 158051 e "
- dc.b " 2914 barssel "
- dc.b " west germany "
- dc.b " "
- dc.b " --------------------------------------------------- "
- dc.b " coding done by...............................wigwam "
- dc.b " artwork done by...............................flite "
- dc.b " music by...................................lonestar "
- dc.b " --------------------------------------------------- "
- DC.B " "
- DC.B " for membership or just for fun call : "
- dc.b " "
- dc.b " doom +49(0)44991318 -gordon- "
- dc.b " or "
- dc.b " einstein +49(0)524134865 -florian- "
- dc.b " or "
- dc.b " agressor +49(0)60635111 -daniel- "
-
-
-
- textend:even
- **************************************************************************
- filetab:dc.l file01,file02,file03,file04,file05,file06,file07,file08
- dc.l file09,file10,file11,file12,file13,file14,file15,file16
- dc.l file17,file18,file19,file20,file21,file22,file23,file24
- dc.l file25,file26,file27,file28,file29,file30
- **************************************************************************
- ;insert file names here ascii + end mark (0)
- **************************************************************************
- file01: dc.b "design01",0
- file02: dc.b "design02",0
- file03: dc.b "design03",0
- file04: dc.b "design04",0
- file05: dc.b "design05",0
- file06: dc.b "design06",0
- file07: dc.b 0,0
- file08: dc.b 0,0
- file09: dc.b 0,0
- file10: dc.b 0,0
- file11: dc.b 0,0
- file12: dc.b 0,0
- file13: dc.b 0,0
- file14: dc.b 0,0
- file15: dc.b 0,0
- file16: dc.b 0,0
- file17: dc.b 0,0
- file18: dc.b 0,0
- file19: dc.b 0,0
- file20: dc.b 0,0
- file21: dc.b 0,0
- file22: dc.b 0,0
- file23: dc.b 0,0
- file24: dc.b 0,0
- file25: dc.b 0,0
- file26: dc.b 0,0
- file27: dc.b 0,0
- file28: dc.b 0,0
- file29: dc.b 0,0
- file30: dc.b 0,0
- even
- **************************************************************************
- oldint: dc.l 0
- gfxname:dc.b "graphics.library",0,0
- dosname:dc.b "dos.library",0
- dosbase:dc.l 0
- *************************************************************************
- *************************************************************************
- cop: dc.w $e0,bpla1/$10000,$e2,bpla1&$ffff
- hib1: dc.w $e4,bplb1/$10000,$e6,bplb2&$ffff
- dc.w $e8,bpla2/$10000,$ea,bpla2&$ffff
- dc.w $008e,$2420,$0090,$30c1,$0092,$0038,$0094,$00d0
- dc.w $0100,$3200,$108,40*1,$10a,0
- *************************************************************************
- spr0: dc.w $0120,0,$0122,0 ;spr 0
- dc.w $0128,0,$012a,0 ;spr 2
- dc.w $0130,0,$0132,0 ;spr 4
- dc.w $0138,0,$013a,0 ;spr 6 ;needed for 4 levels
- dc.w $0124,0,$0126,0 ;spr 1
- dc.w $012c,0,$012e,0 ;spr 3
- dc.w $0134,0,$0136,0 ;spr 5
- dc.w $013c,0,$013e,0 ;spr 7
- dc.l $01040000 ;playfield before sprites
- *************************************************************************
- dc.l $01a20012 ;Ebene 1
- dc.l $01a40025
- dc.l $01a60129
- dc.l $01aa0012 ;Ebene 2
- dc.l $01ac0125
- dc.l $01ae0229
- dc.l $01b20134 ;Ebene 3
- dc.l $01b40238
- dc.l $01b6033c
- dc.l $01ba0159 ;Ebene 4
- dc.l $01bc025c
- dc.l $01be035f
- *************************************************************************
- dc.l $01800759 ;background color
- dc.l $0182097b ;logo color01
- dc.l $01840648 ;vector color
- dc.l $0186097b ;logo & vector mixed 1
- dc.l $01880759 ;logo color 02
- dc.l $018a0436 ;logo color 03
- dc.l $018c0759 ;logo & vector mixed 02
- dc.l $018e0436 ;logo & vector mixed 03
- *************************************************************************
- dc.l $600ffffe
- *************************************************************************
- hia1: dc.w $e0,(bpla1+80*60)/$10000,$e2,(bpla1+80*60)&$ffff
- hia2: dc.w $e8,(bpla2+80*60)/$10000,$ea,(bpla2+80*60)&$ffff
- *************************************************************************
- dc.l $01820759,$01860759
- dc.l $610ffffe,$01820759,$01860759
- dc.l $620ffffe,$0182086a,$0186086a
- dc.l $630ffffe,$0182097b,$0186097b
- dc.l $640ffffe,$01820a8c,$01860a8c
- dc.l $650ffffe,$01820b9d,$01860b9d
- dc.l $660ffffe,$01820cae,$01860cae
- dc.l $670ffffe,$01820dbf,$01860dbf
- dc.l $680ffffe,$01820ecf,$01860ecf
- dc.l $690ffffe,$01820fdf,$01860fdf
- dc.l $6a0ffffe,$01820fef,$01860fef
- dc.l $6a0ffffe,$01820fff,$01860fff
- dc.l $a10ffffe,$01800325,$01840214
- dc.l $a20ffffe,$01840103
- *************************************************************************
- col1: dc.l $01820fff ;text color
- dc.l $01800102
- col2: dc.l $01860fff ;text & vector mixed 1
- dc.l $a70ffffe
- dc.l $0180078c,$0184056a
- dc.l $01820fff
- dc.l $01860fff ;restore colors
- *************************************************************************
- dc.l $a80ffffe,$0180056a,$01840459
- dc.l $e50ffffe,$01820fff,$01860fff
- dc.l $e60ffffe,$01820eff,$01860eff
- dc.l $e70ffffe,$01820def,$01860def
- dc.l $e80ffffe,$01820cdf,$01860cdf
- dc.l $e90ffffe,$01820bcf,$01860bcf
- dc.l $ea0ffffe,$01820abf,$01860abf
- dc.l $eb0ffffe,$018209ae,$018609ae
- dc.l $ec0ffffe,$0182089d,$0186089d
- dc.l $ed0ffffe,$0182078c,$0186078c
- dc.l $ee0ffffe,$0182067b,$0186067b
- dc.l $ef0ffffe,$0182056a,$0186056a
- dc.l $f00ffffe,$01800237,$01840126,$01820237,$01860237
- dc.l $f10ffffe,$01800000,$01840000,$01820000,$01860000
- *************************************************************************
- dc.w $e0,bplc1/$10000,$e2,bplc1&$ffff
- dc.w $e4,bplc2/$10000,$e6,bplc2&$ffff
- dc.w $e8,bplc3/$10000,$ea,bplc3&$ffff
- dc.w $ec,bplc4/$10000,$ee,(bplc4+4)&$ffff ;4 bpls raw/blit
- dc.w $0100,$4200,$0108,40*3,$010a,40*3 ;typer bpls
- *************************************************************************
- dc.w $0182,$0fff,$0184,$0dff,$0186,$0def
- dc.w $0188,$0cce,$018a,$0abd,$018c,$099c,$018e,$088b
- dc.w $0190,$077a,$0192,$0668,$0194,$0657,$0196,$0546
- dc.w $0198,$0435,$019a,$0424,$019c,$0323,$019e,$0212 ;char colors
- *************************************************************************
- dc.l $ffdffffe
- *************************************************************************
- dc.l $1d0ffffe,$01000000,$0180078c
- dc.l $1e0ffffe,$0180056a
- dc.l $2d0ffffe,$01800237
- dc.l $2e0ffffe,$01800000
- dc.l $01000000
- dc.l $009c8010 ;enable copper int.
- clend: dc.l $fffffffe
- *************************************************************************
-
- logo: incbin "ram:dsn-logo.blt"
- char: incbin "ram:char688*19.blt"
- masks: incbin "ram:masks.blt"
- char2: incbin "ram:font2.raw"
- mdata: ;incbin "ram:mod.module"
-
- *************************************************************************
-