home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
ste
/
ste_ctrl
/
stectrl.s
< prev
next >
Wrap
Text File
|
1990-09-03
|
13KB
|
734 lines
opt o+,l+
* Sorry no comments - I threw this program together in about an hour,
* so it isn't exactly the best code ever!!
*
* This should be fairly obvious if you want to get the info for the
* Microwire interface (Mode/Tone control) from it, but the programmers
* docs should be available by now anyway.
include 'c:\assembly\gemmacro.s'
AUDIO equ 0 * form/dialog
BEEPYES equ 9 * BUTTON in tree AUDIO
BEEPNO equ 10 * BUTTON in tree AUDIO
SAVE equ 12 * BUTTON in tree AUDIO
EXIT equ 13 * BUTTON in tree AUDIO
TEST equ 26 * BUTTON in tree AUDIO
MVCOVER equ 27 * IBOX in tree AUDIO
MVBOX equ 28 * IBOX in tree AUDIO
MVSLIDER equ 29 * BOXTEXT in tree AUDIO
LVCOVER equ 30 * IBOX in tree AUDIO
LVBOX equ 31 * IBOX in tree AUDIO
LVSLIDER equ 32 * BOXTEXT in tree AUDIO
RVCOVER equ 33 * IBOX in tree AUDIO
RVBOX equ 34 * IBOX in tree AUDIO
RVSLIDER equ 35 * BOXTEXT in tree AUDIO
TCOVER equ 36 * IBOX in tree AUDIO
TBOX equ 37 * IBOX in tree AUDIO
TSLIDER equ 38 * BOXTEXT in tree AUDIO
BCOVER equ 39 * IBOX in tree AUDIO
BBOX equ 40 * IBOX in tree AUDIO
BSLIDER equ 41 * BOXTEXT in tree AUDIO
clr.l -(sp)
move.w #32,-(sp)
trap #1
addq #6,sp
move.w #$07ff,$ff8924
move.l d0,-(sp)
move.w #32,-(sp)
trap #1
addq #6,sp
clr.w -(sp)
pea.l SetupFile
move.w #61,-(sp)
trap #1
addq #8,sp
tst.l d0
bmi NoFile
move.w d0,-(sp)
pea.l LeftVolume
pea.l 6
move.w d0,-(sp)
move.w #63,-(sp)
trap #1
lea.l 12(sp),sp
move.w #62,-(sp)
trap #1
addq #2,sp
NoFile: clr.w -(sp)
pea.l SampleFile
move.w #61,-(sp)
trap #1
addq #8,sp
tst.l d0
bmi NoSamp
move.w d0,-(sp)
pea.l Buffer
pea.l $400000
move.w d0,-(sp)
move.w #63,-(sp)
trap #1
lea.l 12(sp),sp
move.l d0,SampleLen
move.w #62,-(sp)
trap #1
addq #2,sp
lea.l Buffer,a0
move.l SampleLen,d0
ConvertSample: eor.b #$80,(a0)+
sub.l #1,d0
bne ConvertSample
NoSamp: appl_init
graf_mouse #0,#0
clr.w d7
InitLoop: rsrc_obfix #Audio,d7
addq.w #1,d7
cmp.w #rsrc_length,d7
ble InitLoop
move.b MasterVolume,d0
bsr SetMV
move.b LeftVolume,d0
bsr SetLV
move.b RightVolume,d0
bsr SetRV
move.b Treble,d0
bsr SetT
move.b Bass,d0
bsr SetB
bsr SetBeeper
move.b BeeperFlag,d0
move.b d0,BeepYesFlag
eor.b #1,d0
move.b d0,BeepNoFlag
form_center #Audio
move.w int_out+2,WinX
move.w int_out+4,WinY
move.w int_out+6,WinW
move.w int_out+8,WinH
form_dial #0,WinX,WinY,WinW,WinH,WinX,WinY,WinW,WinH
objc_draw #Audio,#0,#50,WinX,WinY,WinW,WinH
clr.b TestFlag
clr.b OKFlag
clr.b CancelFlag
ReDo: form_do #Audio,#0
move.w int_out,d0
cmp.w #SAVE,d0
beq FiniSave
cmp.w #EXIT,d0
beq FiniExit
cmp.w #TEST,d0
beq MakeNoise
cmp.w #MVSLIDER,d0
beq MVSlide
cmp.w #LVSLIDER,d0
beq LVSlide
cmp.w #RVSLIDER,d0
beq RVSlide
cmp.w #TSLIDER,d0
beq TSlide
cmp.w #BSLIDER,d0
beq BSlide
cmp.w #BEEPYES,d0
beq BeeperOn
cmp.w #BEEPNO,d0
beq BeeperOff
bra ReDo
MVSlide: graf_slidebox #Audio,#MVBOX,#MVSLIDER,#0
clr.l d0
move.w int_out,d0
divu #25,d0 * 0..40
bsr SetMV
objc_draw #Audio,#MVCOVER,#3,WinX,WinY,WinW,WinH
bra ReDo
LVSlide: graf_slidebox #Audio,#LVBOX,#LVSLIDER,#0
clr.l d0
move.w int_out,d0
divu #50,d0 * 0..20
bsr SetLV
objc_draw #Audio,#LVCOVER,#3,WinX,WinY,WinW,WinH
bra ReDo
RVSlide: graf_slidebox #Audio,#RVBOX,#RVSLIDER,#0
clr.l d0
move.w int_out,d0
divu #50,d0 * 0..20
bsr SetRV
objc_draw #Audio,#RVCOVER,#3,WinX,WinY,WinW,WinH
bra ReDo
TSlide: graf_slidebox #Audio,#TBOX,#TSLIDER,#0
clr.l d0
move.w int_out,d0
divu #83,d0 * 0..12
bsr SetT
objc_draw #Audio,#TCOVER,#3,WinX,WinY,WinW,WinH
bra ReDo
BSlide: graf_slidebox #Audio,#BBOX,#BSLIDER,#0
clr.l d0
move.w int_out,d0
divu #83,d0 * 0..12
bsr SetB
objc_draw #Audio,#BCOVER,#3,WinX,WinY,WinW,WinH
bra ReDo
BeeperOn: move.b #1,BeeperFlag
bsr SetBeeper
bra ReDo
BeeperOff: clr.b BeeperFlag
bsr SetBeeper
bra ReDo
MakeNoise: objc_change #Audio,#TEST,WinX,WinY,WinW,WinH,#0,#1
clr.l -(sp)
move.w #32,-(sp)
trap #1
addq #2,sp
move.l d0,(sp)
move.b #0,$ff8901 * Sound off
move.l #Buffer,BufferPtr
move.b BufferPtr+1,$ff8903
move.b BufferPtr+2,$ff8905
move.b BufferPtr+3,$ff8907
move.l SampleLen,d0
add.l d0,BufferPtr
move.b BufferPtr+1,$ff890f
move.b BufferPtr+2,$ff8911
move.b BufferPtr+3,$ff8913
move.b #$81,$ff8921 * 12Khz, Mono
move.b #1,$ff8901 * Sound On, once
move.w #32,-(sp)
trap #1
addq #6,sp
bra ReDo
FiniSave: clr.w -(sp)
pea.l SetupFile
move.w #60,-(sp)
trap #1
addq #8,sp
tst.l d0
bmi ReDo
move.w d0,-(sp)
pea.l LeftVolume
pea.l 6
move.w d0,-(sp)
move.w #64,-(sp)
trap #1
lea.l 12(sp),sp
move.w #62,-(sp)
trap #1
addq #2,sp
FiniExit: form_dial #3,WinX,WinY,WinW,WinH,WinX,WinY,WinW,WinH
appl_exit
clr.w -(sp)
trap #1
MakeNumber: move.b #'+',d1
btst.l #7,d0
beq MakeNum2
move.b #'-',d1
neg.b d0
MakeNum2: move.b d1,(a0)+
clr.l d1
move.b d0,d1
divu #10,d1
tst.b d1
beq MakeNum3
add.b #$30,d1
move.b d1,(a0)+
MakeNum3: swap.w d1
add.b #$30,d1
move.b d1,(a0)+
tst.b (a0)
beq MakeNum4
move.b #$20,(a0)+
MakeNum4: rts
SetMV: move.b d0,MasterVolume
move.w #%10011000000,d1
bsr HardSet
sub.b #40,d0
lsl.b #1,d0
lea.l text27,a0
bsr MakeNumber
clr.l d0
move.b MasterVolume,d0
mulu MVWidth,d0
divu #44,d0
move.w d0,MVSliderPos
rts
SetLV: move.b d0,LeftVolume
move.w #%10101000000,d1
bsr HardSet
sub.b #20,d0
lsl.b #1,d0
lea.l text28,a0
bsr MakeNumber
clr.l d0
move.b LeftVolume,d0
mulu LVWidth,d0
divu #22,d0
move.w d0,LVSliderPos
rts
SetRV: move.b d0,RightVolume
move.w #%10100000000,d1
bsr HardSet
sub.b #20,d0
lsl.b #1,d0
lea.l text29,a0
bsr MakeNumber
clr.l d0
move.b RightVolume,d0
mulu RVWidth,d0
divu #22,d0
move.w d0,RVSliderPos
rts
SetT: move.b d0,Treble
move.w #%10010000000,d1
bsr HardSet
sub.b #6,d0
lea.l text30,a0
lsl.b #1,d0
bsr MakeNumber
clr.l d0
move.b Treble,d0
mulu TWidth,d0
divu #13,d0
move.w d0,TSliderPos
rts
SetB: move.b d0,Bass
move.w #%10001000000,d1
bsr HardSet
sub.b #6,d0
lsl.b #1,d0
lea.l text31,a0
bsr MakeNumber
clr.l d0
move.b Bass,d0
mulu BWidth,d0
divu #13,d0
move.w d0,BSliderPos
rts
SetBeeper: move.b BeeperFlag,d0
eor.b #1,d0
move.w #%10000000001,d1
bsr HardSet
rts
HardSet: move.w d0,-(sp)
ext.w d0
add.w d0,d1
move.w d1,d7
clr.l -(sp)
move.w #32,-(sp)
trap #1
addq #6,sp
MWWrite: cmp.w #$07ff,$ff8924
bne MWWrite
move.w d7,$ff8922
move.l d0,-(sp)
move.w #32,-(sp)
trap #1
addq #6,sp
move.w (sp)+,d0
rts
section data
rsrc_length: equ 41
Audio: dc.w -1,1,39
dc.w 20,0,16 *0*
dc.l $21101
dc.w 2,0,48,18
dc.w 2,-1,-1
dc.w 21,0,0 *1*
dc.l ted1
dc.w 1,1,13,1
dc.w 3,-1,-1
dc.w 21,0,0 *2*
dc.l ted2
dc.w 12,$302,$202,1
dc.w 4,-1,-1
dc.w 21,0,0 *3*
dc.l ted4
dc.w 22,$302,3,1
dc.w 5,-1,-1
dc.w 21,0,0 *4*
dc.l ted3
dc.w 33,$302,$600,1
dc.w 6,-1,-1
dc.w 21,0,0 *5*
dc.l ted5
dc.w 1,4,11,1
dc.w 7,-1,-1
dc.w 21,0,0 *6*
dc.l ted6
dc.w 1,7,12,1
dc.w 8,-1,-1
dc.w 21,0,0 *7*
dc.l ted7
dc.w 1,10,6,1
dc.w 9,-1,-1
dc.w 21,0,0 *8*
dc.l ted8
dc.w 1,13,3,1
dc.w 10,-1,-1
dc.w 26,81
dc.b 0
BeepYesFlag: dc.b 0 *9*
dc.l text1
dc.w 12,16,4,1
dc.w 11,-1,-1
dc.w 26,81
dc.b 0
BeepNoFlag: dc.b 0 *10*
dc.l text2
dc.w 16,16,4,1
dc.w 12,-1,-1
dc.w 21,0,0 *11*
dc.l ted9
dc.w 1,16,$407,1
dc.w 13,-1,-1
dc.w 26,7
dc.b 0
OKFlag: dc.b 0 *12*
dc.l text3
dc.w 37,12,8,1
dc.w 14,-1,-1
dc.w 26,5
dc.b 0
CancelFlag: dc.b 0 *13*
dc.l text4
dc.w 37,15,8,1
dc.w 15,-1,-1
dc.w 21,0,0 *14*
dc.l ted10
dc.w 12,$305,$202,1
dc.w 16,-1,-1
dc.w 21,0,0 *15*
dc.l ted11
dc.w 22,$305,$202,1
dc.w 17,-1,-1
dc.w 21,0,0 *16*
dc.l ted12
dc.w 33,$305,1,1
dc.w 18,-1,-1
dc.w 21,0,0 *17*
dc.l ted13
dc.w 12,$308,$202,1
dc.w 19,-1,-1
dc.w 21,0,0 *18*
dc.l ted14
dc.w 22,$308,$202,1
dc.w 20,-1,-1
dc.w 21,0,0 *19*
dc.l ted15
dc.w 33,$308,1,1
dc.w 21,-1,-1
dc.w 21,0,0 *20*
dc.l ted16
dc.w 12,$30B,$202,1
dc.w 22,-1,-1
dc.w 21,0,0 *21*
dc.l ted17
dc.w 23,$30B,$600,1
dc.w 23,-1,-1
dc.w 21,0,0 *22*
dc.l ted18
dc.w 32,$30B,$202,1
dc.w 24,-1,-1
dc.w 21,0,0 *23*
dc.l ted19
dc.w 12,$30E,$202,1
dc.w 25,-1,-1
dc.w 21,0,0 *24*
dc.l ted20
dc.w 23,$30E,1,1
dc.w 26,-1,-1
dc.w 21,0,0 *25*
dc.l ted21
dc.w 32,$30E,$202,1
dc.w 27,-1,-1
dc.w 26,65
dc.b 0
TestFlag: dc.b 0 *26*
dc.l text5
dc.w 37,6,8,2
dc.w 30,28,28
dc.w 20,0,0 *27*
dc.l $1180
dc.w 11,$400,$118,$601
dc.w 27,29,29
dc.w 25,0,0 *28*
dc.l $11100
dc.w 1,$400
MVWidth: dc.w 22,1
dc.w 28,-1,-1
dc.w 22,64,0 *29*
dc.l ted22
MVSliderPos: dc.w 5,0,$202,1
dc.w 33,31,31
dc.w 20,0,0 *30*
dc.l $1180
dc.w $10B,$403,$118,$601
dc.w 30,32,32
dc.w 25,0,0 *31*
dc.l $11100
dc.w $700,$400
LVWidth: dc.w 22,1
dc.w 31,-1,-1
dc.w 22,64,0 *32*
dc.l ted23
LVSliderPos: dc.w 15,0,$202,1
dc.w 36,34,34
dc.w 20,0,0 *33*
dc.l $1180
dc.w $20B,$606,$118,$601
dc.w 33,35,35
dc.w 25,0,0 *34*
dc.l $11100
dc.w $600,$200
RVWidth: dc.w 22,1
dc.w 34,-1,-1
dc.w 22,64,0 *35*
dc.l ted24
RVSliderPos: dc.w 15,0,$202,1
dc.w 39,37,37
dc.w 20,0,0 *36*
dc.l $1180
dc.w 11,$509,$118,$601
dc.w 36,38,38
dc.w 25,0,0 *37*
dc.l $11100
dc.w 1,$300
TWidth: dc.w 22,1
dc.w 37,-1,-1
dc.w 22,64,0 *38*
dc.l ted25
TSliderPos: dc.w 3,0,$202,1
dc.w 0,40,40
dc.w 20,0,0 *39*
dc.l $1180
dc.w $20B,$50C,$118,$601
dc.w 39,41,41
dc.w 25,0,0 *40*
dc.l $11100
dc.w $600,$300
BWidth: dc.w 22,1
dc.w 40,-1,-1
dc.w 22,96,0 *41*
dc.l ted26
BSliderPos: dc.w 17,0,$202,1
* Tedinfo blocks *
ted1 dc.l text6,null,null
dc.w 5,6,0,$1180
dc.w 0,-1,14,1
ted2 dc.l text7,null,null
dc.w 5,6,0,$1180
dc.w 0,-1,4,1
ted3 dc.l text8,null,null
dc.w 5,6,0,$1180
dc.w 0,-1,2,1
ted4 dc.l text9,null,null
dc.w 5,6,0,$1180
dc.w 0,-1,4,1
ted5 dc.l text10,null,null
dc.w 5,6,0,$1180
dc.w 0,-1,12,1
ted6 dc.l text11,null,null
dc.w 5,6,0,$1180
dc.w 0,-1,13,1
ted7 dc.l text12,null,null
dc.w 5,6,0,$1180
dc.w 0,-1,7,1
ted8 dc.l text13,null,null
dc.w 5,6,0,$1180
dc.w 0,-1,5,1
ted9 dc.l text14,null,null
dc.w 5,6,2,$1180
dc.w 0,-1,11,1
ted10 dc.l text15,null,null
dc.w 5,6,0,$1180
dc.w 0,-1,4,1
ted11 dc.l text16,null,null
dc.w 5,6,0,$1180
dc.w 0,-1,4,1
ted12 dc.l text17,null,null
dc.w 5,6,0,$1180
dc.w 0,-1,2,1
ted13 dc.l text18,null,null
dc.w 5,6,0,$1180
dc.w 0,-1,4,1
ted14 dc.l text19,null,null
dc.w 5,6,0,$1180
dc.w 0,-1,4,1
ted15 dc.l text20,null,null
dc.w 5,6,0,$1180
dc.w 0,-1,2,1
ted16 dc.l text21,null,null
dc.w 5,6,0,$1180
dc.w 0,-1,4,1
ted17 dc.l text22,null,null
dc.w 5,6,0,$1180
dc.w 0,-1,2,1
ted18 dc.l text23,null,null
dc.w 5,6,0,$1180
dc.w 0,-1,4,1
ted19 dc.l text24,null,null
dc.w 5,6,0,$1180
dc.w 0,-1,4,1
ted20 dc.l text25,null,null
dc.w 5,6,0,$1180
dc.w 0,-1,2,1
ted21 dc.l text26,null,null
dc.w 5,6,0,$1180
dc.w 0,-1,4,1
ted22 dc.l text27,null,null
dc.w 5,6,2,$3180
dc.w 0,65534,4,1
ted23 dc.l text28,null,null
dc.w 5,6,0,$3180
dc.w 0,65534,4,1
ted24 dc.l text29,null,null
dc.w 5,6,0,$3180
dc.w 0,65534,4,1
ted25 dc.l text30,null,null
dc.w 5,6,0,$3180
dc.w 0,65534,4,1
ted26 dc.l text31,null,null
dc.w 5,6,0,$3180
dc.w 0,65534,4,1
* Text data *
text1 dc.b 'Yes',0
text2 dc.b 'No',0
text3 dc.b 'Save',0
text4 dc.b 'Exit',0
text5 dc.b 'Hear',0
text6 dc.b 'Master Volume',0
text7 dc.b '-80',0
text8 dc.b '0',0
text9 dc.b '-40',0
text10 dc.b 'Left Volume',0
text11 dc.b 'Right Volume',0
text12 dc.b 'Treble',0
text13 dc.b 'Bass',0
text14 dc.b 'Use Beeper',0
text15 dc.b '-40',0
text16 dc.b '-20',0
text17 dc.b '0',0
text18 dc.b '-40',0
text19 dc.b '-20',0
text20 dc.b '0',0
text21 dc.b '-12',0
text22 dc.b '0',0
text23 dc.b '+12',0
text24 dc.b '-12',0
text25 dc.b '0',0
text26 dc.b '+12',0
text27 dc.b '-50',0
text28 dc.b '-15',0
text29 dc.b '-15',0
text30 dc.b '-10',0
text31 dc.b '+10',0
null dc.b 0,0
LeftVolume: dc.b 20
RightVolume: dc.b 20
MasterVolume: dc.b 40
Treble: dc.b 6
Bass: dc.b 6
BeeperFlag: dc.b 1
SetupFile: dc.b 'SOUND.SET',0
SampleFile: dc.b 'STECTRL.SAM',0
section bss
even
WinX: ds.w 1
WinY: ds.w 1
WinW: ds.w 1
WinH: ds.w 1
SampleLen: ds.l 1
BufferPtr: ds.l 1
even
Buffer: equ *