home *** CD-ROM | disk | FTP | other *** search
- ;---------------------------------------------------------------
- ;- FIRST INTRO FOR MASTERS WRITTEN BY
- ;- \X/ CADDY - MASTERS \X/
- ;- ON 1st OF JANUARY 1991!!!!
- ;-
- ;- MASTERS MEMBERS ONLY... TEXT IS AT LINE 830-860...
- ;-
- ;- LOWMEM = $40000 <--- FOR USE IN DEFPACK
- ;- HIGHMEM= $78000
- ;-
- ;---------------------------------------------------------------
-
- jmp $40000
- org $40000
- load $40000
-
- ;---------------------------------------------------------------
- BEGINish:
- movem.l d0-d7/a0-a6,-(a7)
- bsr setup
- TestButton:
- btst #6,$bfe001
- beq.s Exit
- cmp.b #$fe,6(a6)
- bne.s TestBUtton
-
- ; move.w #$888,$180(a6)
- bsr copperfuck
- bsr Texta
- bsr Bitch
- ; move.w #$808,$180(a6)
-
- bra.s TestButton
- Exit:
- move.l 4,a0
- move.l 156(a0),a1
- move.l 38(a1),$80(a6)
- move.w #$7fff,$9a(a6)
- move.l Cold1,$6c
- move.w cold2,d0
- or.w #$8000,d0
- move.w d0,$9a(a6)
- move.w #$000f,$96(a6)
-
- bsr Mt_end
-
- movem.l (a7)+,d0-d7/a0-a6
- rts
-
- cold1: dc.l 0
- Cold2: dc.w 0
- ;---------------------------------------------------------------
- int1:
- movem.l d0-d7/a0-a5,-(a7)
-
- bsr Mt_music
-
- movem.l (a7)+,d0-d7/a0-a5
- move.w #$0020,$9c(a6)
- rte
- ;---------------------------------------------------------------
- setup:
- lea $dff000,a6
-
- lea $7fff4,a0
- move.l #$00000100,(a0)+
- clr.l (a0)+
- clr.l (a0)+
-
- bsr FixSineList
-
- bsr Copperinit
-
- lea screen,a0
- move.w #$d00,d0
- bsr blitclear
-
- BSR Mt_init
-
- move.l $6c,Cold1
- move.w $1c(a6),Cold2
- move.w #$7fff,$9a(a6)
- move.l #int1,$6c
- move.w #$c020,$9a(a6)
-
- move.l #copper,$80(a6)
- move.w #$8020,$96(a6)
-
- rts
- Bitch:
- lea Screen+[141*40]+34,a0
- lea intVector(pc),a1
- move.l (a1)+,(a0)
- move.l (a1)+,40(a0)
- move.l (a1)+,80(a0)
- move.l (a1)+,120(a0)
- move.l (a1)+,160(a0)
- rts
- ;---------------------------------------------------------------
- clear: clr.b (a0)+
- cmp.l a0,a1
- bne.s clear
- rts
- ;---------------------------------------------------------------
- blitclear:
- bsr.L blitwait
- move.l a0,$54(a6)
- move.w #$100,$40(a6)
- clr.w $42(a6)
- clr.l $44(a6)
- move.l #-1,$64(a6)
- move.w d0,$58(a6)
- rts
- ;---------------------------------------------------------------
- blitwait:
- btst #14,$2(a6)
- bne.s blitwait
- rts
- ;---------------------------------------------------------------
- Xpos: dc.w 0
- Ypos: dc.w 0
- Wait: dc.w 1
- TEXTA:
- cmp.w #1,Wait
- bne.s Noclear
- lea screen,a0
- move.w #$b00,d0
- bsr blitclear
- Noclear:
- tst.w Wait
- beq.s NoHalt
- subq.w #1,Wait
- rts
- NoHalt:
- move.l TextP,a0
- tst.b (a0)
- bne.s NoEndLine
- move.w #0,Xpos
- addq.w #1,Ypos
- addq.l #1,TextP
- rts
- NoEndLine:
- cmp.b #$1,(a0)
- bne.s NoEnd
- move.w #0,Xpos
- move.w #0,Ypos
- move.w #400,Wait
-
- addq.l #1,Textp
- move.l textp,a0
- cmp.b #2,(a0)
- bne.s MorePages
- move.l #text,TextP
- MorePages:
- rts
- NoEnd:
- moveq #0,d0
- moveq #0,d1
- move.b (a0),d0
- sub.b #32,d0
- lsl.w #1,d0
- move.w d0,d1
- divu #40,d0
- mulu #11*40,d0
- add.l d0,d1
- lea font,a0
- lea (a0,d1.w),a0
-
- lea Screen,a1
- move.w Xpos,d0
- lea (a1,d0.w),a1
- move.w Ypos,d0
- mulu #12*40,d0
- lea (a1,d0.w),a1
-
- moveq #11,d7
- CopyChar:
- move.w (a0),(a1)
- lea 40(a0),a0
- lea 40(a1),a1
- dbf d7,Copychar
-
- addq.l #1,TextP
- add.w #2,Xpos
-
- rts
- even
- ;---------------------------------------------------------------
- CopLines=126
- CopInst=48
-
- copperfuck:
- cmp.l #sineEnd,SinePos
- blt.s MoreList
- sub.l #sinesize/2,sinepos
- MoreList:
- cmp.l #colsEnd,ColsPos
- blt.s Morecollist
- sub.l #collistsize,colspos
- MoreColList:
- lea CopperBlock+6(pc),a0
- move.l ColsPos(pc),a1
- move.l SinePos(pc),a2
- move.w #copLines-1,d7
- DoDisplay:
- move.w (a2)+,d1
- lea (a1,d1.w),a3
- WaitCrap:
- btst #$e,$2(a6)
- bne.s WaitCrap
- move.l a3,$50(a6)
- move.l a0,$54(a6)
- move.l #$09f00000,$40(a6)
- move.l #$00000002,$64(a6)
- move.l #-1,$44(a6)
- move.w #copinst-2*64+1,$58(a6)
-
- add.l #copinst-2*2,a3
- ; addq.l #2,a1
- lea CopInst*4(a0),a0
- dbf d7,DoDisplay
-
- tst.w ChangeWait
- beq.s NextPattern
- move.l sineadd,d0
- move.l colsadd,d1
- add.l d0,SinePos
- add.l d1,ColsPos
- subq.w #1,changewait
- rts
- NextPattern:
- move.l ChangeAdr(pc),a0
- cmp.b #-1,(a0)
- bne.L Morechg
-
- tst.w Op1
- beq.s NoAdd
- addq.l #2,a1
- Noadd:
- move.l #changelist,Changeadr
- bra.s NextPattern
- Morechg:
- moveq #0,d0
- moveq #0,d1
- moveq #0,d2
- move.b (a0)+,d0
- move.b (a0)+,d1
- move.b (a0)+,d2
- move.w d2,Op1
- move.l d0,sineadd
- move.l d1,colsadd
- move.w #300,Changewait
- addq.l #3,changeadr
- rts
-
- SineAdd:dc.l 0
- Colsadd:dc.l 0
- Op1: dc.w 0
-
- ChangeWait:dc.w 0
- ChangeAdr:dc.l Changelist
- ChangeList:
- dc.b 2,2,0,4,2,0,6,2,0,8,2,0
- dc.b 2,4,0,4,4,0,6,4,0,8,4,0
- dc.b 2,2,1,4,2,1,6,2,1,8,2,1
- dc.b 2,4,1,4,4,1,6,4,1,8,4,1
- dc.b -1
- even
- ;---------------------------------------------------------------
- copperinit:
- lea CopperBlock(pc),a0
- move.w #copLines-1,d7
- move.w #$772f,d0
- DoDisplay2:
- move.w d0,(a0)+
- move.w #$fffe,(a0)+
-
- moveq #Copinst-3,d6
- DoLine2:
- move.w #$0180,(a0)+
- move.w #$0000,(a0)+
- dbf d6,DoLine2
- add.w #$0100,d0
-
- move.l #$01800000,(a0)+
- dbf d7,DoDisplay2
-
- rts
- ;----------------------------------------------------------------
- FixSineList:
- lea SineList(pc),a0
- move.w #sineSize/2-1,d7
- FixPos:
- moveq #0,d0
- move.w (a0),d0
- sub.b #$69,d0
- lsl.w #1,d0
- move.w d0,(a0)+
- dbf d7,FixPos
- rts
- ;----------------------------------------------------------------
- SinePos:dc.l SineList
- SineList:
- dc.w $69,$69,$69,$69,$69,$69,$69,$69,$6a,$6a,$6a,$6b,$6b,$6b,$6c,$6c
- dc.w $6d,$6d,$6e,$6e,$6f,$70,$70,$71,$71,$72,$73,$74,$74,$75,$76,$77
- dc.w $77,$78,$79,$7a,$7b,$7c,$7c,$7d,$7e,$7f,$80,$81,$82,$82,$83,$84
- dc.w $85,$86,$86,$87,$88,$89,$8a,$8b,$8b,$8c,$8d,$8e,$8f,$8f,$90,$91
- dc.w $92,$92,$93,$94,$94,$95,$96,$96,$97,$97,$98,$98,$99,$99,$9a,$9a
- dc.w $9a,$9b,$9b,$9b,$9b,$9b,$9c,$9c,$9c,$9c,$9c,$9c,$9c,$9c,$9c,$9b
- dc.w $9b,$9b,$9b,$9b,$9a,$9a,$9a,$99,$99,$98,$98,$97,$97,$96,$96,$95
- dc.w $94,$94,$93,$92,$92,$91,$90,$8f,$8f,$8e,$8d,$8c,$8b,$8b,$8a,$89
- dc.w $88,$87,$86,$86,$85,$84,$83,$82,$82,$81,$80,$7f,$7e,$7d,$7c,$7c
- dc.w $7b,$7a,$79,$78,$77,$77,$76,$75,$74,$74,$73,$72,$71,$71,$70,$70
- dc.w $6f,$6e,$6e,$6d,$6d,$6c,$6c,$6b,$6b,$6b,$6a,$6a,$6a,$69,$69,$69
- dc.w $69,$69,$69,$69,$69
- SineEnd:
- dc.w $69,$69,$69,$69,$69,$69,$69,$69,$6a,$6a,$6a,$6b,$6b,$6b,$6c,$6c
- dc.w $6d,$6d,$6e,$6e,$6f,$70,$70,$71,$71,$72,$73,$74,$74,$75,$76,$77
- dc.w $77,$78,$79,$7a,$7b,$7c,$7c,$7d,$7e,$7f,$80,$81,$82,$82,$83,$84
- dc.w $85,$86,$86,$87,$88,$89,$8a,$8b,$8b,$8c,$8d,$8e,$8f,$8f,$90,$91
- dc.w $92,$92,$93,$94,$94,$95,$96,$96,$97,$97,$98,$98,$99,$99,$9a,$9a
- dc.w $9a,$9b,$9b,$9b,$9b,$9b,$9c,$9c,$9c,$9c,$9c,$9c,$9c,$9c,$9c,$9b
- dc.w $9b,$9b,$9b,$9b,$9a,$9a,$9a,$99,$99,$98,$98,$97,$97,$96,$96,$95
- dc.w $94,$94,$93,$92,$92,$91,$90,$8f,$8f,$8e,$8d,$8c,$8b,$8b,$8a,$89
- dc.w $88,$87,$86,$86,$85,$84,$83,$82,$82,$81,$80,$7f,$7e,$7d,$7c,$7c
- dc.w $7b,$7a,$79,$78,$77,$77,$76,$75,$74,$74,$73,$72,$71,$71,$70,$70
- dc.w $6f,$6e,$6e,$6d,$6d,$6c,$6c,$6b,$6b,$6b,$6a,$6a,$6a,$69,$69,$69
- dc.w $69,$69,$69,$69,$69
- SineSize=*-SineList
- ;----------------------------------------------------------------
- ;dc.w 000,010,020,030,040,050,060,070,080,090,0a0,0b0,0c0,0d0,0e0,0f0
- ;dc.w 0f0,1f0,2f0,3f0,4f0,5f0,6f0,7f0,8f0,9f0,af0,bf0,cf0,df0,ef0,ff0
- ;dc.w ff0,fe1,fd2,fc3,fb4,fa5,f96,f87,f78,f69,f5a,f4b,f3c,f2d,f1e,f0f
- ;dc.w f0f,e0e,d0d,c0c,b0b,a0a,909,808,707,606,505,404,303,202,101,000
- ;----------------------------------------------------------------
- ColsPos:dc.l CopperCols
- CopperCols:
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
-
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
-
- CollistSize=*-coppercols
- ColsEnd:
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
-
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
-
- ;---------------------------------------------------------------
- textp: dc.l text
- ;---------------------------------------------------------------
- ;
- ; NoisetrackerV1.0 replayroutine
- ; Mahoney & Kaktus - HALLONSOFT 1989
- ;
- mt_init:lea MT_DATA,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
- mt_music:
- movem.l d0-d4/a0-a3/a5-a6,-(a7)
- lea mt_data,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 mt_data,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 mt_data+$3b6,d1
- bne.s mt_endr
- move.b mt_data+$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:blk.l $1f,0
- mt_voice1: blk.w 10,0
- dc.w $1,0,0,0
- mt_voice2: blk.w 10,0
- dc.w $2,0,0,0
- mt_voice3: blk.w 10,0
- dc.w $4,0,0,0
- mt_voice4: blk.w 10,0
- dc.w $8,0,0,0
- IntVector:
- dc.l $0739e791,$08451451,$087d144a
- dc.l $08451444,$0745e784
- ;---------------------------------------------------------------
- ;- EACH LINE MUST END WITH A ZERO, PAGE ENDS WITH 1,0
- ;- END OF TEXT ENDS WITH 1,2 - EACH LINE CAN BE ANYLENGTH...
- ;- PAGES ARE 10 LINES LONG
- Text:
- dc 0
- dc "** M A S T E R S **",0
- dc 0
- dc 0
- dc " ARE HERE WITH",0
- dc 0
- dc " ANOTHER RELEASE",0
- dc 0
- dc 0
- dc 0
- dc "FIRST WITH THE BEST",1,0
-
- dc " CALL THESE BOARDS ",0
- dc " ----------------- ",0
- dc "MASTER'S WHQ ",0
- dc " XXXXXXXX",0,0
- dc "CRYPTIC DEAD ",0
- dc " BLA BLA",0,0
- dc "TEMPEST BBS: ",0
- dc " -----------",1,0
-
- dc "OPTICAL ILLUSION",0
- dc " DEPARTED ",0,0
- dc "PRIME TIME",0
- dc " ----------",0,0
- dc "CHERNOBYL BBS",0
- dc " +++++++++++++",0
- dc " ",0
- dc " ALL BOARDS R 9600+ ",1,0
-
- dc " MINI CREDITS: ",0
- dc " ------------- ",0
- dc " CODING- CADDY ",0
- dc " ",0
- dc " LOGO- METALLIKAT ",0
- dc " ",0
- dc " FONT- DIGIT/PNS ",0
- dc " ",0
- dc " MUSIC- DIGIT/PNS ",0
- dc " SAY GOODNIGHT BILL",1,2
- ;---------------------------------------------------------------
- even
- copper:
- dc.l $01200007,$0122fff4,$01240007,$0126fff4,$01280007,$012afff4
- dc.l $012c0007,$012efff4,$01300007,$0132fff4,$01340007,$0136fff4
- dc.l $01380007,$013afff4,$013c0007,$013efff4
-
- dc.l $008e2071,$009030c8
- dc.l $00920038,$009400d0
- dc.l $01020000,$01800000,$01040003
- dc.l $01080000,$010a0000,$01000000
-
- dc.l $00e00005,$00e21000
- dc.l $00e40005,$00e61be0
- dc.l $00e80005,$00ea27c0
- dc.l $00ec0005,$00ee33a0
- dc.l $00f00005,$00f23f80
-
- dc.w $0180,$0000 ,$0182,$0fff ,$0184,$0fc6 ,$0186,$0e94
- dc.w $0188,$0d96 ,$018a,$0fca ,$018c,$0fea ,$018e,$0731
- dc.w $0190,$0a36 ,$0192,$0814 ,$0194,$0c05 ,$0196,$0c26
- dc.w $0198,$0d48 ,$019a,$0d79 ,$019c,$0e9b ,$019e,$0a15
- dc.w $01a0,$0620 ,$01a2,$0e52 ,$01a4,$0a52 ,$01a6,$0a53
- dc.w $01a8,$000d ,$01aa,$011d ,$01ac,$023d ,$01ae,$044d
- dc.w $01b0,$0226 ,$01b2,$066e ,$01b4,$088e ,$01b6,$099e
- dc.w $01b8,$0aae ,$01ba,$0ccf ,$01bc,$0ddf ,$01be,$044b
-
- dc.l $260ffffe,$01005000
- dc.l $720ffffe,$01000000
-
- dc.l $00e00006,$00e20190
- dc.l $00e40006,$00e601b8
-
- dc.l $01820000,$01840fff,$01860fff
-
- dc.l $730ffffe,$01800000
- dc.l $740ffffe,$01800099
- dc.l $750ffffe,$018000cc
- dc.l $760ffffe,$018000ff
- dc.l $770ffffe,$01002000,$01020089,$01800000
-
- CopperBlock:
- blk.l Coplines*copInst,-1
- endblock:
-
- dc.l $f50ffffe,$018000ff
- dc.l $f60ffffe,$018000cc
- dc.l $f70ffffe,$01800099
- dc.l $f80ffffe,$01800000,$01001000
-
- dc.l $fa0ffffe,$01820fff
- dc.l $fb0ffffe,$01820eee
- dc.l $fc0ffffe,$01820ddd
- dc.l $fd0ffffe,$01820ccc
- dc.l $fe0ffffe,$01820bbb
-
- dc.l $ff0ffffe,$01000000
-
- dc.l $fffffffe
- ;---------------------------------------------------------------
- Endish:
-
- Font=$55000
- screen=$60000
- MT_DATA=$70000
-
- ;>EXTERN "katlogo.b",$51000
- ;>EXTERN "digfont.b",$55000
- ;>EXTERN "MOD.HAPPY",$70000
-
- org $51000
- incbin "df1:masters/katlogo.b"
-
- org $55000
- incbin "df1:masters/digfont.b"
-
- org $70000
- incbin "df1:masters/MOD.HAPPY"
- ;---------------------------------------------------------------
-