home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 4: Demo 1
/
almathera_demo1.bin
/
sourcecode
/
intro5.s
< prev
next >
Wrap
Text File
|
1995-03-17
|
25KB
|
1,180 lines
opt c-,d+
incdir "df0:include/"
include graphics/gfx.i
include graphics/rastport.i
include graphics/graphics_lib.i
include exec/memory.i
include exec/exec_lib.i
include hardware/custom.i
custom equ $dff000
memory equ MEMF_CHIP+MEMF_CLEAR
lea GFXLIB,a1
MOVEQ #0,D0
CALLEXEC OPENLIBRARY
TST D0
BEQ ERROR
MOVE.L D0,_GFXBASE
MOVE.L #MYPICCY,MEMORY_POINTER
LEA MYBITMAP,A0
MOVE.L #$05,D0
MOVE.L #368,D1
MOVE.L #256,D2
CALLGRAF INITBITMAP
LEA MYRASTPORT,A1
CALLGRAF INITRASTPORT
LEA MYRASTPORT,A1
MOVE.L #MYBITMAP,RP_BITMAP(A1)
MOVE.L MEMORY_POINTER,D0
MOVE.L D0,D1
ADD.L #11776,D1
MOVE.L D1,D2
ADD.L #11776,D2
MOVE.L D2,D3
add.l #11776,D3
move.l d3,d4
add.l #11776,d4
LEA MYBITMAP,A0
MOVE.L D0,BM_PLANES(a0)
MOVE.L D1,BM_PLANES+4(a0)
MOVE.L D2,BM_PLANES+8(a0)
MOVE.L D3,BM_PLANES+12(A0)
move.l d4,BM_PLANES+16(a0)
MOVE.W D0,PL0L
MOVE.W D1,PL1L
MOVE.W D2,PL2L
MOVE.W D3,PL3L
move.w d4,pl4l
SWAP D0
SWAP D1
SWAP D2
SWAP D3
swap d4
MOVE.W D0,PL0H
MOVE.W D1,PL1H
MOVE.W D2,PL2H
MOVE.W D3,PL3H
move.w d4,pl4h
bsr mt_init
move.l #mytext,read
move.l #wavedata,wavepos
MOVE.L _GFXBASE,A6
ADD.L #$32,A6
MOVE.W #$80,DMACON
MOVE.L (A6),OLDCOPPER
MOVE.L #NEWCOPPER,(A6)
MOVE.W #$8080,DMACON
callexec forbid
jsr copsetup
move.w #$8010,$dff09a
move.l $6c,old
move.l #new,$6c
WAIT ANDI.B #$40,$BFE001
BNE WAIT
move.l old,$6c
callexec permit
MOVE.L _GFXBASE,A6
ADD.L #$32,A6
MOVE.W #$80,DMACON
MOVE.L OLDCOPPER,(A6)
MOVE.W #$8080,DMACON
move.w #$8020,$dff096
ERROR clr.l d0
move.w #$f,$dff096
move.w #$0,$dff0a8
move.w #$0,$dff0b8
move.w #$0,$dff0c8
move.w #$0,$dff0d8
RTS
new: movem.l d0-d7/a0-a6,-(sp)
and #$10,$dff01e
beq out
move.w #$10,$dff09c
bsr colcop1
bsr mt_music
bsr textit
BSR WAVEIT
out movem.l (sp)+,d0-d7/a0-a6
dc.w $4ef9
old dc.l 0
copsetup move.l #mypiccy,d1
move.l #cblock2,a1
move.l #15,d0
add.l #14,a1
add.l #8556,d1
move.l d1,d2
add.l #952,d2
russloop swap d1
move.w d1,(a1)
add.l #4,a1
swap d1
move.w d1,(a1)
add.l #20,a1
swap d2
move.w d2,(a1)
add.l #4,a1
swap d2
move.w d2,(a1)
add.l #20,a1
add.l #46,d1
subi.w #1,d0
cmp.w #0,d0
bne russloop
rts
waveit move.l #cblock2,a0
add.l #23,a0
moveq #23,d0
move.l wavepos,a1
waveloop move.b 24(a0),(a0)
add.l #24,a0
subi.w #1,d0
cmp.w #0,d0
bne waveloop
move.b (a1),(a0)
add.l #1,WAvepos
move.l wavepos,a5
cmp.b #$fe,(a5)
bne waveok
move.l #wavedata,wavepos
waveok rts
colcop1: move.l #90,d0
lea cblock1,a0
add.l #6,a0
scrollc move.w 24(a0),(a0)
add.l #24,a0
subi.l #1,d0
cmp #0,d0
bne scrollc
cjin1 clr.l d0
move.l coppos,a2
move.w (a2),d0
add.l #2,coppos
cmp.w #$ffff,d0
bne cok
move.l #copdata,coppos
bra cjin1
cok
move.w d0,(a0)
rts
textit lea myrastport,a1
MOVEQ #1,d0
callgraf setapen
lea myrastport,a1
move.l #0,d1
move.l #2,d0
move.l #0,d2
move.l #186,d3
move.l #368,d4
move.l #199,d5
callgraf scrollraster
; store bit of screen to be zapped
; lets say 16 rows starting at 185
; = mypiccy+185*46
move.l #mypiccy,a0
add.l #185*46,a0
moveq #16,d0
move.l #buffy,a1
inbuff move.w (a0),(a1)+
add.l #46,a0
subi.w #1,d0
cmp.w #0,d0
bne inbuff
move.b count,d0
addi.b #1,d0
move.b d0,count
cmpi.b #4,d0
bne EEE
move.b #0,count
EEE lea myrastport,a1
move.l #366,d0
clr.l d3
move.b count,d3
sub.l d3,d0
sub.l d3,d0
move.l #196,d1
callgraf move
move.l read,a0
lea myrastport,a1
move.l #1,d0
callgraf text
move.l #mypiccy,a0
add.l #185*46,a0
moveq #16,d0
move.l #buffy,a1
oubuff move.w (a1)+,(a0)
add.l #46,a0
subi.w #1,d0
cmp.w #0,d0
bne oubuff
cmp.b #0,count
bne zzz
move.l read,d0
addi.l #1,d0
move.l d0,read
moveq #0,d4
move.l read,a5
cmp.b #255,(a5)
bne zzz
move.l #mytext,read
on1
zzz rts
count dc.b 0
read dc.l 0
buffy ds.w 30
falagz dc.b 0
coppos dc.l copdata
copdata
dc.w $000,$010,$020,$030,$040,$050,$060,$070,$080,$090,$0a0,$0b0,$0c0,$0d0,$0e0
dc.w $0f0,$1f0,$2f0,$3f0,$4f0,$5f0,$6f0,$7f0,$8f0,$9f0,$af0,$bf0,$cf0,$df0,$ef0
dc.w $ff0,$ee0,$dd0,$cc0,$bb0,$aa0,$990,$880,$770,$660,$550,$440,$330,$220,$110
dc.w $000,$110,$220,$330,$440,$550,$660,$770,$880,$990,$aa0,$bb0,$cc0,$dd0,$ee0
dc.w $ff0,$fe0,$fd0,$fc0,$fb0,$fa0,$f90,$f80,$f70,$f60,$f50,$f40,$f30,$f20,$f10
dc.w $f00,$e00,$d00,$c00,$b00,$a00,$900,$800,$700,$600,$500,$400,$300,$200,$100
dc.w $000,$100,$200,$300,$400,$500,$600,$700,$800,$900,$a00,$b00,$c00,$d00,$e00
dc.w $f00,$f01,$f02,$f03,$f04,$f05,$f06,$f07,$f08,$f09,$f0a,$f0b,$f0c,$f0d,$f0e
dc.w $f0f,$e0e,$d0d,$c0c,$b0b,$a0a,$909,$808,$707,$606,$505,$404,$303,$202,$101
dc.w 0,$101,$202,$303,$404,$505,$606,$707,$808,$909,$a0a,$b0b,$c0c,$d0d,$e0e
dc.w $f0f,$e0f,$d0f,$c0f,$b0f,$a0f,$90f,$80f,$70f,$60f,$50f,$40f,$30f,$20f,$10f
dc.w $f,$e,$d,$c,$b,$a,$9,$8,$7,$6,$5,$4,$3,$2,$1,$0
dc.w 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
dc.w $00f,$01f,$02f,$03f,$04f,$05f,$06f,$07f,$08f,$09f,$0af,$0bf,$0cf,$0df,$0ef
dc.w $ff,$ee,$dd,$cc,$bb,$aa,$99,$88,$77,$66,$55,$44,$33,$22,$11
dc.w 0,$11,$22,$33,$44,$55,$66,$77,$88,$99,$aa,$bb,$cc,$dd,$ee
dc.w $0ff,$0fe,$0fd,$0fc,$0fb,$0fa,$0f9,$0f8,$0f7,$0f6,$0f5,$0f4,$0f3,$0f2,$0f1
dc.w $f0,$e0,$d0,$c0,$b0,$a0,$90,$80,$70,$60,$50,$40,$30,$20,$10
dc.w $ffff
OLDCOPPER DC.L 0
NEWCOPPER DC.W $0100,$5200,$0102,$0000,$0104,$000A
DC.W $0108,$0000,$010A,$0000
DC.W $0092,$0028,$0094,$00e0
DC.W $008E,$2c69,$0090,$2cd9
dc.w $0096,$0020
DC.W $00E0
PL0H DC.W $0000,$00E2
PL0L DC.W $0000,$00E4
PL1H DC.W $0000,$00E6
PL1L DC.W $0000,$00E8
PL2H DC.W $0000,$00EA
PL2L DC.W $0000,$00EC
PL3H DC.W $0000,$00EE
PL3L DC.W $0000,$00F0
PL4H DC.W $0000,$00F2
PL4L DC.W $0000
DC.W $009c,$8010
DC.W $0180
topcol dc.w $0000,$0182,$0eca
DC.W $0184,$0fff,$0186,$0eee
DC.W $0188,$0ddd,$018A,$0bbb
DC.W $018C,$0aaa,$018E,$0999
DC.W $0190,$0888,$0192,$0777
DC.W $0194,$0666,$0196,$0555
DC.W $0198,$0333,$019A,$0222
DC.W $019C,$0111,$019E,$0000
cblock1:
dc.w 11273,$fffe,$180,0,$102,0
dc.w 11529,$fffe,$180,0,$102,0
dc.w 11785,$fffe,$180,0,$102,0
dc.w 12041,$fffe,$180,0,$102,0
dc.w 12297,$fffe,$180,0,$102,0
dc.w 12553,$fffe,$180,0,$102,0
dc.w 12809,$fffe,$180,0,$102,0
dc.w 13065,$fffe,$180,0,$102,0
dc.w 13321,$fffe,$180,0,$102,0
dc.w 13577,$fffe,$180,0,$102,0
dc.w 13833,$fffe,$180,0,$102,0
dc.w 14089,$fffe,$180,0,$102,0
dc.w 14345,$fffe,$180,0,$102,0
dc.w 14601,$fffe,$180,0,$102,0
dc.w 14857,$fffe,$180,0,$102,0
dc.w 15113,$fffe,$180,0,$102,0
dc.w 15369,$fffe,$180,0,$102,0
dc.w 15625,$fffe,$180,0,$102,0
dc.w 15881,$fffe,$180,0,$102,0
dc.w 16137,$fffe,$180,0,$102,0
dc.w 16393,$fffe,$180,0,$102,0
dc.w 16649,$fffe,$180,0,$102,0
dc.w 16905,$fffe,$180,0,$102,0
dc.w 17161,$fffe,$180,0,$102,0
dc.w 17417,$fffe,$180,0,$102,0
dc.w 17673,$fffe,$180,0,$102,0
dc.w 17929,$fffe,$180,0,$102,0
dc.w 18185,$fffe,$180,0,$102,0
dc.w 18441,$fffe,$180,0,$102,0
dc.w 18697,$fffe,$180,0,$102,0
dc.w 18953,$fffe,$180,0,$102,0
dc.w 19209,$fffe,$180,0,$102,0
dc.w 19465,$fffe,$180,0,$102,0
dc.w 19721,$fffe,$180,0,$102,0
dc.w 19977,$fffe,$180,0,$102,0
dc.w 20233,$fffe,$180,0,$102,0
dc.w 20489,$fffe,$180,0,$102,0
dc.w 20745,$fffe,$180,0,$102,0
dc.w 21001,$fffe,$180,0,$102,0
dc.w 21257,$fffe,$180,0,$102,0
dc.w 21513,$fffe,$180,0,$102,0
dc.w 21769,$fffe,$180,0,$102,0
dc.w 22025,$fffe,$180,0,$102,0
dc.w 22281,$fffe,$180,0,$102,0
dc.w 22537,$fffe,$180,0,$102,0
dc.w 22793,$fffe,$180,0,$102,0
dc.w 23049,$fffe,$180,0,$102,0
dc.w 23305,$fffe,$180,0,$102,0
dc.w 23561,$fffe,$180,0,$102,0
dc.w 23817,$fffe,$180,0,$102,0
dc.w 24073,$fffe,$180,0,$102,0
dc.w 24329,$fffe,$180,0,$102,0
dc.w 24585,$fffe,$180,0,$102,0
dc.w 24841,$fffe,$180,0,$102,0
dc.w 25097,$fffe,$180,0,$102,0
dc.w 25353,$fffe,$180,0,$102,0
dc.w 25609,$fffe,$180,0,$102,0
dc.w 25865,$fffe,$180,0,$102,0
dc.w 26121,$fffe,$180,0,$102,0
dc.w 26377,$fffe,$180,0,$102,0
dc.w 26633,$fffe,$180,0,$102,0
dc.w 26889,$fffe,$180,0,$102,0
dc.w 27145,$fffe,$180,0,$102,0
dc.w 27401,$fffe,$180,0,$102,0
dc.w 27657,$fffe,$180,0,$102,0
dc.w 27913,$fffe,$180,0,$102,0
dc.w 28169,$fffe,$180,0,$102,0
dc.w 28425,$fffe,$180,0,$102,0
dc.w 28681,$fffe,$180,0,$102,0
dc.w 28937,$fffe,$180,0,$102,0
dc.w 29193,$fffe,$180,0,$102,0
dc.w 29449,$fffe,$180,0,$102,0
dc.w 29705,$fffe,$180,0,$102,0
dc.w 29961,$fffe,$180,0,$102,0
dc.w 30217,$fffe,$180,0,$102,0
dc.w 30473,$fffe,$180,0,$102,0
dc.w 30729,$fffe,$180,0,$102,0
dc.w 30985,$fffe,$180,0,$102,0
dc.w 31241,$fffe,$180,0,$102,0
dc.w 31497,$fffe,$180,0,$102,0
dc.w 31753,$fffe,$180,0,$102,0
dc.w 32009,$fffe,$180,0,$102,0
dc.w 32265,$fffe,$180,0,$102,0
dc.w 32521,$fffe,$180,0,$102,0
dc.w 32777,$fffe,$180,0,$102,0
dc.w 33033,$fffe,$180,0,$102,0
dc.w 33289,$fffe,$180,0,$102,0
dc.w 33545,$fffe,$180,0,$102,0
dc.w 33801,$fffe,$180,0,$102,0
dc.w 34057,$fffe,$180,0,$102,0
dc.w 34313,$fffe,$180,0,$102,0
dc.w 34569,$fffe,$180,0,$102,0
dc.w 34825,$fffe,$180,0,$102,0
dc.w 35081,$fffe,$180,0,$102,0
dc.w 35337,$fffe,$180,0,$102,0
dc.w 35593,$fffe,$180,0,$102,0
dc.w 35849,$fffe,$180,0,$102,0
dc.w 36105,$fffe,$180,0,$102,0
dc.w 36361,$fffe,$180,0,$102,0
dc.w 36617,$fffe,$180,0,$102,0
dc.w 36873,$fffe,$180,0,$102,0
dc.w 37129,$fffe,$180,0,$102,0
dc.w 37385,$fffe,$180,0,$102,0
dc.w 37641,$fffe,$180,0,$102,0
dc.w 37897,$fffe,$180,0,$102,0
dc.w 38153,$fffe,$180,0,$102,0
dc.w 38409,$fffe,$180,0,$102,0
dc.w 38665,$fffe,$180,0,$102,0
dc.w 38921,$fffe,$180,0,$102,0
dc.w 39177,$fffe,$180,0,$102,0
dc.w 39433,$fffe,$180,0,$102,0
dc.w 39689,$fffe,$180,0,$102,0
dc.w 39945,$fffe,$180,0,$102,0
dc.w 40201,$fffe,$180,0,$102,0
dc.w 40457,$fffe,$180,0,$102,0
dc.w 40713,$fffe,$180,0,$102,0
dc.w 40969,$fffe,$180,0,$102,0
dc.w 41225,$fffe,$180,0,$102,0
dc.w 41481,$fffe,$180,0,$102,0
dc.w 41737,$fffe,$180,0,$102,0
dc.w 41993,$fffe,$180,0,$102,0
dc.w 42249,$fffe,$180,0,$102,0
dc.w 42505,$fffe,$180,0,$102,0
dc.w 42761,$fffe,$180,0,$102,0
dc.w 43017,$fffe,$180,0,$102,0
dc.w 43273,$fffe,$180,0,$102,0
dc.w 43529,$fffe,$180,0,$102,0
dc.w 43785,$fffe,$180,0,$102,0
dc.w 44041,$fffe,$180,0,$102,0
dc.w 44297,$fffe,$180,0,$102,0
dc.w 44553,$fffe,$180,0,$102,0
dc.w 44809,$fffe,$180,0,$102,0
dc.w 45065,$fffe,$180,0,$102,0
dc.w 45321,$fffe,$180,0,$102,0
dc.w 45577,$fffe,$180,0,$102,0
dc.w 45833,$fffe,$180,0,$102,0
dc.w 46089,$fffe,$180,0,$102,0
dc.w 46345,$fffe,$180,0,$102,0
dc.w 46601,$fffe,$180,0,$102,0
dc.w 46857,$fffe,$180,0,$102,0
dc.w 47113,$fffe,$180,0,$102,0
dc.w 47369,$fffe,$180,0,$102,0
dc.w 47625,$fffe,$180,0,$102,0
dc.w 47881,$fffe,$180,0,$102,0
dc.w 48137,$fffe,$180,0,$102,0
dc.w 48393,$fffe,$180,0,$102,0
dc.w 48649,$fffe,$180,0,$102,0
dc.w 48905,$fffe,$180,0,$102,0
dc.w 49161,$fffe,$180,0,$102,0
dc.w 49417,$fffe,$180,0,$102,0
dc.w 49673,$fffe,$180,0,$102,0
dc.w 49929,$fffe,$180,0,$102,0
dc.w 50185,$fffe,$180,0,$102,0
dc.w 50441,$fffe,$180,0,$102,0
dc.w 50697,$fffe,$180,0,$102,0
dc.w 50953,$fffe,$180,0,$102,0
dc.w 51209,$fffe,$180,0,$102,0
dc.w 51465,$fffe,$180,0,$102,0
dc.w 51721,$fffe,$180,0,$102,0
dc.w 51977,$fffe,$180,0,$102,0
dc.w 52233,$fffe,$180,0,$102,0
dc.w 52489,$fffe,$180,0,$102,0
dc.w 52745,$fffe,$180,0,$102,0
dc.w 53001,$fffe,$180,0,$102,0
dc.w 53257,$fffe,$180,0,$102,0
dc.w 53513,$fffe,$180,0,$102,0
dc.w 53769,$fffe,$180,0,$102,0
dc.w 54025,$fffe,$180,0,$102,0
dc.w 54281,$fffe,$180,0,$102,0
dc.w 54537,$fffe,$180,0,$102,0
dc.w 54793,$fffe,$180,0,$102,0
dc.w 55049,$fffe,$180,0,$102,0
dc.w 55305,$fffe,$180,0,$102,0
dc.w 55561,$fffe,$180,0,$102,0
dc.w 55817,$fffe,$180,0,$102,0
dc.w 56073,$fffe,$180,0,$102,0
dc.w 56329,$fffe,$180,0,$102,0
dc.w 56585,$fffe,$180,0,$102,0
dc.w 56841,$fffe,$180,0,$102,0
dc.w 57097,$fffe,$180,0,$102,0
dc.w 57353,$fffe,$180,0,$102,0,$182,$200
cblock2:
dc.w $e109,$fffe,$180,$000,$102,$ff,$e0,0,$e2,0,386,$f00
dc.w $e209,$fffe,$180,$111,$102,$ff,$e0,0,$e2,0,386,$e00
dc.w $e309,$fffe,$180,$222,$102,$ee,$e0,0,$e2,0,386,$d00
dc.w $e409,$fffe,$180,$333,$102,$ee,$e0,0,$e2,0,386,$c01
dc.w $e509,$fffe,$180,$444,$102,$dd,$e0,0,$e2,0,386,$b02
dc.w $e609,$fffe,$180,$555,$102,$dd,224,0,226,0,386,$a03
dc.w $e709,$fffe,$180,$666,$102,$cc,224,0,226,0,386,$904
dc.w $e809,$fffe,$180,$777,$102,$cc,224,0,226,0,386,$805
dc.w $e909,$fffe,$180,$888,$102,$bb,224,0,226,0,386,$706
dc.w $ea09,$fffe,$180,$999,$102,$bb,224,0,226,0,386,$607
dc.w $eb09,$fffe,$180,$aaa,$102,$aa,224,0,226,0,386,$508
dc.w $ec09,$fffe,$180,$bbb,$102,$aa,224,0,226,0,386,$409
dc.w $ed09,$fffe,$180,$ccc,$102,$99,224,0,226,0,386,$30a
dc.w $ee09,$fffe,$180,$ddd,$102,$99,224,0,226,0,386,$20b
dc.w $ef09,$fffe,$180,$eee,$102,$88,224,0,226,0,386,$10c
dc.w $f009,$fffe,$180,$fff,$102,$88,224,0,226,0,386,$00d
dc.w $f109,$fffe,$180,$eee,$102,$77,224,0,226,0,386,$10e
dc.w $f209,$fffe,$180,$ddd,$102,$77,224,0,226,0,386,$20f
dc.w $f309,$fffe,$180,$ccc,$102,$66,224,0,226,0,386,$30e
dc.w $f409,$fffe,$180,$bbb,$102,$66,224,0,226,0,386,$40d
dc.w $f509,$fffe,$180,$aaa,$102,$55,224,0,226,0,386,$50c
dc.w $f609,$fffe,$180,$999,$102,$55,224,0,226,0,386,$60b
dc.w $f709,$fffe,$180,$888,$102,$44,224,0,226,0,386,$70a
dc.w $f809,$fffe,$180,$777,$102,$44,224,0,226,0,386,$809
dc.w $f909,$fffe,$180,$666,$102,$33,224,0,226,0,386,$908
dc.w $fa09,$fffe,$180,$555,$102,$33,224,0,226,0,386,$a07
dc.w $fb09,$fffe,$180,$444,$102,$22,224,0,226,0,386,$b06
dc.w $fc09,$fffe,$180,$333,$102,$22,224,0,226,0,386,$c05
dc.w $fd09,$fffe,$180,$222,$102,$11,224,0,226,0,386,$d04
dc.w $fe09,$fffe,$180,$111,$102,$11,224,0,226,0,386,$e03
dc.w $ff09,$fffe,$180
botcol dc.w 0
DC.W $FFFF,$FFFE
ds.w 20
wavedata
dc.b 0,0,0,0,1,1,1,1,2,2,2,3,3,3,4,4,5,5,6,7
dc.b 8,9,$a,$a,$b,$b,$c,$c,$c,$d,$d,$d,$e,$e,$e,$e,$f,$f
dc.b $f,$f
dc.b $e,$e,$e,$e,$d,$d,$d,$c,$c,$c,$b,$b,$a,$a,9,8,7,6
dc.b 5,5,4,4,3,3,3,2,2,2,1,1,1
dc.b 1
dc.b $fe
wavepos dc.l wavedata
gfxlib dc.b "graphics.library",0
EVEN
_gfxbase dc.l 0
MEMORY_POINTER dc.l 0
MYRASTPORT ds.b RP_Sizeof
MYBITMAP ds.b BM_Sizeof
colour dc.w 0
flagz dc.b 0
mytext dc.b "Hello Leyla!!! Hi it's Comrade J here. We're listening to some"
dc.b " really COOOOOOOL muzaxs at da momento. (well pretty old"
dc.b "stuff really, such as HISTORY by MAI TAI and AXEL F by old HAROLD F. "
dc.b "Yep, it's really COOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOL (Totaly frozen)."
dc.b "All about 2000 million years old, the tapes are fossilised! "
dc.b "TIW is sitting next to me at the moment. He is eating a pizza and"
dc.b " watchi...."
dc.b "sorry boring scrolltexts strike again! Yeah, wat's next. it's a"
dc.b " record called "
dc.b "OBSESSION by someone we can't remember (lamers no doubt). Let's"
dc.b " fast forward this one, TIW"
dc.b " Yeah, now we have: Crazy for U by Mad Donna. It's shit so we"
dc.b " swap the tapes. OK It's TIW"
dc.b " here. Now I want to listen to Public Enemy,but Comrade J"
dc.b " doesn't want me to. Oh well. "
dc.b 255
dc.l 0
;***********************************
;***********************************
;** **
;** SoundTracker V4.0 Playroutine **
;** **
;** Coder 1 : Karsten Obarski **
;** **
;** Coder 2 : The Exterminator **
;** **
;** Coder 3 : Il Scuro **
;** **
;** Coder 4 : AFL 1970 **
;** **
;** Translator (to DEVPAC) **
;** Comrade J of **
;** Share and Enjoy **
;***********************************
;***********************************
mt_speed equ $1f4
mt_init:
move.l #s1,mt_sample1
move.l #s2,mt_sample2
move.l #s3,mt_sample3
move.l #s4,mt_sample4
move.l #s5,mt_sample5
move.l #s6,mt_sample6
move.l #s7,mt_sample7
move.l #s8,mt_sample8
move.l #s9,mt_sample9
move.l #sa,mt_sample10
move.l #sb,mt_sample11
move.l #sc,mt_sample12
move.l #sd,mt_sample13
move.l #se,mt_sample14
move.l #sf,mt_sample15
move.l #mt_sample1,a0
clr.l d0
mt_clear:
move.l (a0,d0),a1
clr.l (a1)
addq #4,d0
cmp.l #$3c,d0
bne.s mt_clear
move.w #0,$dff0a8
move.w #0,$dff0b8
move.w #0,$dff0c8
move.w #0,$dff0d8
eor.w #$c000,mt_voice0+12
clr.l mt_partnrplay
clr.l mt_partnote
clr.l mt_partpoint
move.b mt_sampleinfo+$1d6,mt_maxpart+1
move.b mt_sampleinfo+$1d7,mt_kn1+1
rts
mt_newirq:
movem.l d0-d7/a0-a6,-(a7)
bsr mt_music
movem.l (a7)+,d0-d7/a0-a6
dc.w $4ef9
mt_oldirq:
dc.l 0
mt_music:
addq.l #1,mt_counter
move.l mt_tempo,d0
cmp.l mt_counter,d0
bne.s mt_notsix
clr.l mt_counter
bra mt_rout2
mt_notsix:
lea mt_aud1temp,a6
tst.b 3(a6)
beq.s mt_arp1
move.l #$dff0a0,a5
bsr.s mt_arprout
mt_arp1:
lea mt_aud2temp,a6
tst.b 3(a6)
beq.s mt_arp2
move.l #$dff0b0,a5
bsr.s mt_arprout
mt_arp2:
lea mt_aud3temp,a6
tst.b 3(a6)
beq.s mt_arp3
move.l #$dff0c0,a5
bsr.s mt_arprout
mt_arp3:
lea mt_aud4temp,a6
tst.b 3(a6)
beq.s mt_arp4
move.l #$dff0d0,a5
bsr.s mt_arprout
mt_arp4:
bra mt_stop
mt_arprout:
tst.w 24(a6)
beq.s mt_noslide
clr.w d0
move.b 25(a6),d0
lsr.b #4,d0
tst.b d0
beq.s mt_voldwn2
bsr mt_pushvol1
bra.s mt_noslide
mt_voldwn2:
clr.w d0
move.b 25(a6),d0
bsr mt_pushvol2
mt_noslide:
move.b 2(a6),d0
and.b #$0f,d0
tst.b d0
beq.L mt_arpegrt
cmp.b #3,d0
beq.L mt_arpegrt
cmp.b #4,d0
beq.L mt_arpegrt
cmp.b #5,d0
beq.L mt_arpegrt
cmp.b #1,d0
beq.s mt_portup
cmp.b #6,d0
beq.s mt_portup
cmp.b #7,d0
beq.s mt_portup
cmp.b #8,d0
beq.s mt_portup
cmp.b #2,d0
beq.s mt_portdwn
cmp.b #9,d0
beq.s mt_portdwn
cmp.b #10,d0
beq.s mt_portdwn
cmp.b #11,d0
beq.s mt_portdwn
cmp.b #13,d0
beq.s mt_volup
rts
mt_portup:
clr.w d0
move.b 3(a6),d0
sub.w d0,22(a6)
cmp.w #$71,22(a6)
bpl.s mt_ok1
move.w #$71,22(a6)
mt_ok1:
move.w 22(a6),6(a5)
rts
mt_portdwn:
clr.w d0
move.b 3(a6),d0
add.w d0,22(a6)
cmp.w #$358,22(a6)
bmi.s mt_ok2
move.w #$358,22(a6)
mt_ok2:
move.w 22(a6),6(a5)
rts
mt_volup:
clr.w d0
move.b 3(a6),d0
lsr.b #4,d0
tst.b d0
beq.s mt_voldwn
mt_pushvol1:
add.w d0,$12(a6)
cmp.w #$40,$12(a6)
bmi.s mt_ok3
move.w #$40,$12(a6)
mt_ok3:
move.w $12(a6),8(a5)
move.w $12(a6),botcol
rts
mt_voldwn:
clr.w d0
move.b 3(a6),d0
mt_pushvol2:
and.b #$0f,d0
sub.w d0,$12(a6)
bpl.s mt_ok4
clr.w $12(a6)
mt_ok4:
move.w $12(a6),8(a5)
move.w $12(a6),topcol
rts
mt_arpegrt:
cmp.l #1,mt_counter
beq.s mt_loop2
cmp.l #2,mt_counter
beq.s mt_loop3
cmp.l #3,mt_counter
beq.s mt_loop4
cmp.l #4,mt_counter
beq.s mt_loop2
cmp.l #5,mt_counter
beq.s mt_loop3
rts
mt_loop2:
clr.l d0
move.b 3(a6),d0
lsr.b #4,d0
bra.s mt_cont
mt_loop3:
clr.l d0
move.b 3(a6),d0
and.b #$0f,d0
bra.s mt_cont
mt_loop4:
move.w 16(a6),d2
bra.s mt_endpart
mt_cont:
lsl.w #1,d0
clr.l d1
move.w 16(a6),d1
lea mt_arpeggio,a0
mt_loop5:
move.w (a0,d0),d2
cmp.w (a0),d1
beq.s mt_endpart
addq.l #2,a0
bra.s mt_loop5
mt_endpart:
move.w d2,6(a5)
rts
mt_rout2:
lea mt_sampleinfo,a0
move.l a0,a3
add.l #$0c,a3
move.l a0,a2
add.l #$1d8,a2
add.l #$258,a0
move.l mt_partnrplay,d0
clr.l d1
move.b (a2,d0),d1
mulu #$0400,d1
add.l mt_partnote,d1
move.l d1,mt_partpoint
clr.w mt_dmacon
move.l #$dff0a0,a5
lea mt_aud1temp,a6
bsr mt_playit
move.l #$dff0b0,a5
lea mt_aud2temp,a6
bsr mt_playit
move.l #$dff0c0,a5
lea mt_aud3temp,a6
bsr mt_playit
move.l #$dff0d0,a5
lea mt_aud4temp,a6
bsr mt_playit
move.l #mt_speed,d0
mt_rls:
dbf d0,mt_rls
move.l #$8000,d0
add.w mt_dmacon,d0
move.w d0,$dff096
move.l #mt_aud4temp,a6
cmp.w #1,14(a6)
bne.s mt_voice3
move.l 10(a6),$dff0d0
move.w #1,$dff0d4
mt_voice3:
move.l #mt_aud3temp,a6
cmp.w #1,14(a6)
bne.s mt_voice2
move.l 10(a6),$dff0c0
move.w #1,$dff0c4
mt_voice2:
move.l #mt_aud2temp,a6
cmp.w #1,14(a6)
bne.s mt_voice1
move.l 10(a6),$dff0b0
move.w #1,$dff0b4
mt_voice1:
move.l #mt_aud1temp,a6
cmp.w #1,14(a6)
bne.s mt_voice0
move.l 10(a6),$dff0a0
move.w #1,$dff0a4
mt_voice0:
lea mt_modulate,a0
move.l mt_partnote,d0
lsl.b #7,d0
add.l #$10,d0
move.l d0,mt_partnote
cmp.l #$400,d0
bne.s mt_stop
clr.l mt_partnote
addq.l #1,mt_partnrplay
clr.l d0
move.w mt_maxpart,d0
move.l mt_partnrplay,d1
cmp.l d0,d1
bne.s mt_stop
clr.l mt_partnrplay
mt_stop:
rts
mt_playit:
move.l (a0,d1),(a6)
addq.l #4,d1
clr.l d2
move.b 2(a6),d2
and.b #$f0,d2
lsr.b #4,d2
tst.b d2
beq.s mt_nosamplechange
clr.l d3
lea mt_samples,a1
move.l d2,d4
mulu #4,d2
mulu #$1e,d4
move.l (a1,d2),4(a6)
move.w (a3,d4),8(a6)
move.w 2(a3,d4),18(a6)
move.w 4(a3,d4),d3
tst.w d3
beq.s mt_displace
move.l 4(a6),d2
add.l d3,d2
move.l d2,4(a6)
move.l d2,10(a6)
move.w 6(a3,d4),8(a6)
move.w 6(a3,d4),14(a6)
move.w 18(a6),8(a5)
move.w 18(a6),botcol
bra.s mt_nosamplechange
mt_displace:
move.l 4(a6),d2
add.l d3,d2
move.l d2,10(a6)
move.w 6(a3,d4),14(a6)
move.w 18(a6),8(a5)
move.w 18(a6),topcol
mt_nosamplechange:
tst.w (a6)
beq.s mt_retrout
move.w (a6),16(a6)
move.w 20(a6),$dff096
move.l 4(a6),(a5)
move.w 8(a6),4(a5)
move.w (a6),6(a5)
move.w 20(a6),d0
or.w d0,mt_dmacon
mt_retrout:
move.w 20(a6),d0
lsl.w #4,d0
add.w 20(a6),d0
move.w d0,$dff09e
tst.w (a6)
beq.s mt_nonewper
move.w (a6),22(a6)
mt_nonewper:
move.b 2(a6),d0
and.b #$0f,d0
cmp.b #14,d0
beq.s mt_zx1
cmp.b #15,d0
bne.s mt_noset
move.w 2(a6),d0
and.l #$f,d0
move.l d0,mt_tempo
rts
mt_zx1:
move.w 2(a6),24(a6)
rts
mt_noset:
tst.b 3(a6)
bne.s mt_noclr
clr.w 24(a6)
mt_noclr:
cmp.b #3,d0
beq.s mt_modvol
cmp.b #6,d0
beq.s mt_modvol
cmp.b #9,d0
beq.s mt_modvol
cmp.b #4,d0
beq.s mt_modper
cmp.b #7,d0
beq.s mt_modper
cmp.b #10,d0
beq.s mt_modper
cmp.b #5,d0
beq.s mt_modvolper
cmp.b #8,d0
beq.s mt_modvolper
cmp.b #11,d0
beq.s mt_modvolper
cmp.b #12,d0
bne.s mt_nochnge
move.b 3(a6),8(a5)
move.b 3(a6),topcol+1
mt_nochnge:
rts
mt_modvol:
move.w 20(a6),d0
bra.s mt_push
mt_modper:
move.w 20(a6),d0
lsl.w #4,d0
bra.s mt_push
mt_modvolper:
move.w 20(a6),d0
lsl.w #4,d0
add.w 20(a6),d0
mt_push:
add.w #$8000,d0
move.w d0,$dff09e
rts
dc.l 0
dc.b "fofg"
mt_aud1temp:
dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
dc.w $0000,$0000,$0001,$0000,$0000
mt_aud2temp:
dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
dc.w $0000,$0000,$0002,$0000,$0000
mt_aud3temp:
dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
dc.w $0000,$0000,$0004,$0000,$0000
mt_aud4temp:
dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
dc.w $0000,$0000,$0008,$0000,$0000
mt_partnote:
dc.l 0
mt_partnrplay:
dc.l 0
mt_counter:
dc.l 0
mt_tempo:
dc.l 6
mt_partpoint:
dc.l 0
mt_samples:
dc.w $0000,$0000
mt_sample1:
dc.l 0
mt_sample2:
dc.l 0
mt_sample3:
dc.l 0
mt_sample4:
dc.l 0
mt_sample5:
dc.l 0
mt_sample6:
dc.l 0
mt_sample7:
dc.l 0
mt_sample8:
dc.l 0
mt_sample9:
dc.l 0
mt_sample10:
dc.l 0
mt_sample11:
dc.l 0
mt_sample12:
dc.l 0
mt_sample13:
dc.l 0
mt_sample14:
dc.l 0
mt_sample15:
dc.l 0
mt_maxpart:
dc.w $0000
mt_kn1:
dc.w $0000
mt_dmacon:
dc.w $0000
mt_modulate:
dc.w $0c39,$0039,$00bf,$ec01,$6630,$0839,$0007,$00bf
dc.w $e001,$6626,$2c79,$0000,$0004,$43fa,$0020,$4eae
dc.w $fe68,$2c40,$4280,$41fa,$0026,$223c,$0000,$0032
dc.w $4eae,$ffa6,$60ee,$0000,$0000,$4e75,$696e,$7475
dc.w $6974,$696f,$6e2e,$6c69,$6272,$6172,$7900,$0104
dc.w $1753,$6f75,$6e64,$5472,$6163,$6b65,$7220,$5632
dc.w $0063,$00f0,$20a9,$2054,$6865,$204a,$756e,$676c
dc.w $6520,$436f,$6d6d,$616e,$6400,$0000
mt_arpeggio:
dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c
dc.w $023a,$021a,$01fc,$01e0,$01c5,$01ac,$0194,$017d
dc.w $0168,$0153,$0140,$012e,$011d,$010d,$00fe,$00f0
dc.w $00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097
dc.w $008f,$0087,$007f,$0078,$0071,$0000,$0000,$0000
mt_sampleinfo: dc.b "gof "
ds.b 5716
s1: ds.b 1300
s2: ds.b 4000
s3: ds.b 9000
s4: ds.b 8800
s5: ds.b 2000
s6: ds.b 2700
s7: ds.b 3400
s8: ds.b 6200
s9: ds.b 0
sa: ds.b 0
sb: ds.b 0
sc: ds.b 0
sd: ds.b 0
se: ds.b 0
sf: ds.b 0
mypiccy dc.b "fog "
ds.b 58876
endmess dc.b "Yupp, its over. Do not try and newzap"
dc.b "this message, cause it does nothing anyway."
dc.b "it's just the hidden message."
dc.b "You seem to be pretty cool at getting into demos."
dc.b "there's a prize to the first person who writes to us"
dc.b "and says - Big Al is a total lamer mateys -"
dc.b "See you soon!"