home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 4: Demo 1
/
almathera_demo1.bin
/
sourcecode
/
intro4.s
< prev
next >
Wrap
Text File
|
1995-03-17
|
24KB
|
1,186 lines
;
; Share and Enjoy multipurpose intro. Release V1.0
;
; Written on 23/24/25 October by Comrade J.
;
; NOTE: This sourcecode is ONLY for SAE members,
; and members of affiliated groups (presently
; BSS and NCB)
;
; Hi Phil of BSS! I hope you can understand this, I didn't
; have time to put any comments in it.
;
opt c-
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 ; turn off multitasking
jsr copsetup ; for double height scrolly
move.w #$8010,$dff09a ;
move.l $6c,old ; Start interupt.
move.l #new,$6c ;
WAIT ANDI.B #$40,$BFE001 ; wait for left mousebutton
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 ; turn off sound and return to home
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,$000,$0182,$0ffc
DC.W $0184,$0e00,$0186,$0e20
DC.W $0188,$0e40,$018A,$0e70
DC.W $018C,$0e80,$018E,$0eb0
DC.W $0190,$0888,$0192,$0777
DC.W $0194,$0666,$0196,$0555
DC.W $0198,$0333,$019A,$0222
DC.W $019C,$0111,$019E,$0666
dc.w $01a0,$777,$1a2,$888
dc.w $1a4,$999,$1a6,$aaa
dc.w $1a8,$ccc,$1aa,$ddd
dc.w $1ac,$eee,$1ae,$fff
dc.w $1b0,$0,$1b2,$20,$1b4,$40
dc.w $1b6,$60,$1b8,$90,$1ba,$b0
dc.w $1bc,$d0,$1be,$f0
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,0
DC.W $FFFF,$FFFE
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 "Hi Grey! I've done your group a little intro for you to "
dc.b "put on your disks. Hope you like it. The instructions for "
dc.b "changing the message are on this disk, and the FULL source "
dc.b "code is on the disk if Phil wants to look at how it works. "
dc.b " Have fun and see you soon. Comrade J. P.S. Chr$ 255 "
dc.b "makes the scrolly wrap . . . ."
dc.b 255
dc.l 1000
dc.b "YOUR SCROLLY MUST NOT GO PAST HERE!"
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)
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)
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)
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)
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)
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
dc.l 0
mypiccy dc.b "fog "
ds.b 58876