snd zik load save
This commit is contained in:
parent
ae90d28849
commit
de09429b67
|
@ -0,0 +1,503 @@
|
|||
*
|
||||
* Midi routines
|
||||
*
|
||||
* (c) 2020, Brutal Deluxe Software
|
||||
* Antoine Vignau & Olivier Zardini
|
||||
*
|
||||
|
||||
dpSEQ = $f8
|
||||
|
||||
seqOFFSET = $006
|
||||
seqTEMPO = $18A
|
||||
seqTPB = $190
|
||||
|
||||
*--------------------------------------
|
||||
|
||||
mx %00
|
||||
|
||||
stopMIDI lda fgMIDI
|
||||
bne stopMIDI99
|
||||
|
||||
_KillAllNotes ; Stop MidiSynth
|
||||
_MSShutDown
|
||||
|
||||
PushWord #35 ; unload MidiSynth
|
||||
_UnloadOneTool
|
||||
|
||||
stopMIDI99 rts
|
||||
|
||||
*--------------------------------------
|
||||
|
||||
initMIDI pha ; Check for AppleTalk
|
||||
_GetIRQEnable
|
||||
pla
|
||||
and #$20
|
||||
beq initMIDI1
|
||||
|
||||
inc fgMIDI
|
||||
rts
|
||||
|
||||
initMIDI1 PushWord #35 ; Load MidiSynth
|
||||
PushWord #0
|
||||
_LoadOneTool
|
||||
bcc initMIDI2
|
||||
|
||||
inc fgMIDI
|
||||
rts
|
||||
|
||||
initMIDI2 _MSStartUp ; Start MidiSynth
|
||||
bcc musicMEMORY
|
||||
|
||||
inc fgMIDI
|
||||
rts
|
||||
|
||||
*-------------------------------------- Now, get RAM
|
||||
|
||||
musicMEMORY
|
||||
PushLong #0
|
||||
PushLong #$10000
|
||||
PushWord myID
|
||||
PushWord #%11000000_00011100
|
||||
PushLong #0
|
||||
_NewHandle
|
||||
phd
|
||||
tsc
|
||||
tcd
|
||||
lda [3]
|
||||
sta ptrSEQ
|
||||
ldy #2
|
||||
lda [3],y
|
||||
sta ptrSEQ+2
|
||||
pld
|
||||
pla
|
||||
pla
|
||||
bcc musicMEMORY1
|
||||
|
||||
inc fgMIDI ; cannot assign memory for MIDI sequences
|
||||
rts
|
||||
|
||||
musicMEMORY1
|
||||
PushLong #0
|
||||
PushLong #$10000
|
||||
PushWord myID
|
||||
PushWord #%11000000_00011100
|
||||
PushLong #0
|
||||
_NewHandle
|
||||
phd
|
||||
tsc
|
||||
tcd
|
||||
lda [3]
|
||||
sta ptrBNK
|
||||
ldy #2
|
||||
lda [3],y
|
||||
sta ptrBNK+2
|
||||
pld
|
||||
pla
|
||||
pla
|
||||
bcc musicMEMORY2
|
||||
|
||||
inc fgMIDI ; cannot assign memory for MIDI sequences
|
||||
rts
|
||||
|
||||
musicMEMORY2
|
||||
PushLong #0
|
||||
PushLong #$10000
|
||||
PushWord myID
|
||||
PushWord #%11000000_00011100
|
||||
PushLong #0
|
||||
_NewHandle
|
||||
phd
|
||||
tsc
|
||||
tcd
|
||||
lda [3]
|
||||
sta ptrWAV
|
||||
ldy #2
|
||||
lda [3],y
|
||||
sta ptrWAV+2
|
||||
pld
|
||||
pla
|
||||
pla
|
||||
bcc loadWAV
|
||||
|
||||
inc fgMIDI ; cannot assign memory for MIDI sequences
|
||||
rts
|
||||
|
||||
*-------------------------------------- Load WAV
|
||||
|
||||
loadWAV
|
||||
lda #pWAV
|
||||
sta midiOPEN+4
|
||||
|
||||
jsl GSOS
|
||||
dw $2010
|
||||
adrl midiOPEN
|
||||
sta midiERR
|
||||
|
||||
lda midiOPEN+2
|
||||
sta midiSETMARK+2
|
||||
sta midiREAD+2
|
||||
sta midiCLOSE+2
|
||||
|
||||
jsl GSOS
|
||||
dw $2016
|
||||
adrl midiSETMARK
|
||||
|
||||
lda ptrWAV
|
||||
sta midiREAD+4
|
||||
lda ptrWAV+2
|
||||
sta midiREAD+6
|
||||
|
||||
stz midiREAD+8
|
||||
lda #1
|
||||
sta midiREAD+10
|
||||
|
||||
jsl GSOS
|
||||
dw $2012
|
||||
adrl midiREAD
|
||||
sta midiERR
|
||||
|
||||
jsl GSOS
|
||||
dw $2014
|
||||
adrl midiCLOSE
|
||||
|
||||
lda midiERR ; check err
|
||||
beq loadBNK
|
||||
|
||||
inc fgMIDI ; exit
|
||||
rts
|
||||
|
||||
*-------------------------------------- Load BNK
|
||||
|
||||
loadBNK
|
||||
lda #pBNK ; load the MIDI bank
|
||||
ldx ptrBNK+2
|
||||
ldy ptrBNK
|
||||
jsr loadGSOS
|
||||
|
||||
lda midiERR ; check err
|
||||
beq loadSEQUENCE
|
||||
|
||||
inc fgMIDI
|
||||
rts
|
||||
|
||||
*-------------------------------------- Load Sequence
|
||||
|
||||
loadSEQUENCE
|
||||
lda #pSEQ
|
||||
ldx ptrSEQ+2
|
||||
ldy ptrSEQ
|
||||
jsr loadGSOS
|
||||
|
||||
lda midiERR ; check err
|
||||
beq initMUSIC
|
||||
|
||||
inc fgMIDI
|
||||
rts
|
||||
|
||||
*-------------------------------------- Play sequence
|
||||
|
||||
initMUSIC
|
||||
lda ptrSEQ
|
||||
sta playMUSIC5+1 ; save pointers
|
||||
sta playMUSIC55+1
|
||||
lda ptrSEQ+2
|
||||
sta playMUSIC6+1
|
||||
sta playMUSIC66+1
|
||||
|
||||
_KillAllNotes
|
||||
|
||||
lda myDP
|
||||
tcd
|
||||
|
||||
playMUSIC5 lda #$bdbd ; patched
|
||||
sta dpSEQ
|
||||
playMUSIC6 lda #$bdbd ; patched
|
||||
sta dpSEQ+2
|
||||
|
||||
ldy #seqOFFSET
|
||||
lda [dpSEQ],y
|
||||
clc
|
||||
playMUSIC55 adc #$bdbd ; patched
|
||||
sta seqPlayRec
|
||||
lda #0
|
||||
playMUSIC66 adc #$bdbd ; patched
|
||||
sta seqPlayRec+2
|
||||
|
||||
ldy #seqTEMPO
|
||||
lda [dpSEQ],y
|
||||
asl
|
||||
sec
|
||||
sbc #10
|
||||
pha
|
||||
_SetTempo
|
||||
|
||||
ldy #seqTPB
|
||||
lda [dpSEQ],y
|
||||
pha
|
||||
_SetBeat
|
||||
|
||||
*--- Toutes les pistes sont actives
|
||||
|
||||
lda ptrBNK
|
||||
clc
|
||||
adc #$400
|
||||
sta ptrINST
|
||||
lda ptrBNK+2
|
||||
adc #0
|
||||
sta ptrINST+2
|
||||
|
||||
stz myINDEX
|
||||
|
||||
]lp PushWord myINDEX
|
||||
PushWord #$8000
|
||||
_SetPlayTrack
|
||||
|
||||
PushWord myINDEX
|
||||
PushWord #-1
|
||||
_TrackToChannel
|
||||
|
||||
PushWord myINDEX
|
||||
PushWord #2
|
||||
_SetTrackOut
|
||||
|
||||
PushLong ptrINST
|
||||
PushWord myINDEX
|
||||
_SetInstrument
|
||||
|
||||
lda ptrINST
|
||||
clc
|
||||
adc #$120
|
||||
sta ptrINST
|
||||
lda ptrINST+2
|
||||
adc #0
|
||||
sta ptrINST+2
|
||||
|
||||
inc myINDEX
|
||||
lda myINDEX
|
||||
cmp #16
|
||||
bne ]lp
|
||||
|
||||
*---
|
||||
|
||||
sei
|
||||
|
||||
PushLong ptrWAV
|
||||
PushWord #0 ; docStart
|
||||
PushWord #0 ; byteCount (=64ko)
|
||||
_WriteRamBlock
|
||||
|
||||
PushLong #callBackRec
|
||||
_SetCallBack
|
||||
|
||||
PushWord #0
|
||||
PushWord #0
|
||||
PushLong seqClock
|
||||
PushLong seqPlayRec
|
||||
_Locate
|
||||
PullLong seqPlayRec
|
||||
|
||||
cli ; end of the long init!
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
|
||||
doMUSIK lda fgMIDI ; can we play?
|
||||
bne nozik99
|
||||
|
||||
lda fgMIDIPLAY
|
||||
eor #1
|
||||
sta fgMIDIPLAY
|
||||
beq doSOUNDON
|
||||
bne doSOUNDOFF
|
||||
|
||||
nozik99 rts
|
||||
|
||||
fgMIDIPLAY ds 2
|
||||
|
||||
*--------------------------------------
|
||||
|
||||
doSOUNDON lda fgMIDI ; can we play?
|
||||
bne playMUSIC99
|
||||
|
||||
lda #$0100 ; no, let's start playing!
|
||||
sta seqPlay
|
||||
PushLong #seqPlayRec
|
||||
_SeqPlayer
|
||||
stz fgLOOP
|
||||
|
||||
playMUSIC99
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
|
||||
doSOUNDOFF lda fgMIDI
|
||||
bne stopMUSIC99
|
||||
|
||||
stz seqPlay
|
||||
PushLong #seqPlayRec
|
||||
_SeqPlayer
|
||||
_KillAllNotes
|
||||
|
||||
stopMUSIC99 rts
|
||||
|
||||
*-------------------------------------- Suspend music
|
||||
|
||||
suspendMUSIC
|
||||
lda fgMIDI
|
||||
ora fgMIDIPLAY
|
||||
bne suspendMUSIC9
|
||||
|
||||
_MSSuspend
|
||||
|
||||
suspendMUSIC9
|
||||
rts
|
||||
|
||||
*-------------------------------------- Resume music
|
||||
|
||||
resumeMUSIC
|
||||
lda fgMIDI
|
||||
ora fgMIDIPLAY
|
||||
bne resumeMUSIC9
|
||||
|
||||
_MSResume
|
||||
|
||||
resumeMUSIC9
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
|
||||
checkREPLAY
|
||||
lda fgMIDI
|
||||
bne checkREPLAY99
|
||||
|
||||
lda fgLOOP
|
||||
beq checkREPLAY99
|
||||
jsr doSOUNDON
|
||||
|
||||
checkREPLAY99
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
|
||||
replayMUSIC
|
||||
lda #-1
|
||||
stal fgLOOP
|
||||
rtl
|
||||
|
||||
fgLOOP dw -1
|
||||
|
||||
*-------------------------------------- Load a file
|
||||
|
||||
loadGSOS sta midiOPEN+4
|
||||
sty midiREAD+4
|
||||
stx midiREAD+6
|
||||
stz midiERR
|
||||
|
||||
jsl GSOS
|
||||
dw $2010
|
||||
adrl midiOPEN
|
||||
bcs loadGSOSERR
|
||||
|
||||
lda midiOPEN+2
|
||||
sta midiREAD+2
|
||||
sta midiCLOSE+2
|
||||
|
||||
lda midiEOF
|
||||
sta midiREAD+8
|
||||
lda midiEOF+2
|
||||
sta midiREAD+10
|
||||
|
||||
jsl GSOS
|
||||
dw $2012
|
||||
adrl midiREAD
|
||||
bcs loadGSOSERR
|
||||
|
||||
loadGSOS2 jsl GSOS
|
||||
dw $2014
|
||||
adrl midiCLOSE
|
||||
rts
|
||||
|
||||
loadGSOSERR jsr loadGSOS2
|
||||
inc fgMIDI
|
||||
rts
|
||||
|
||||
*-------------------------------------- DATA
|
||||
|
||||
myINDEX ds 2
|
||||
|
||||
*--- GS/OS
|
||||
|
||||
midiERR ds 2
|
||||
|
||||
midiOPEN dw 12
|
||||
ds 2
|
||||
adrl pSEQ
|
||||
ds 2
|
||||
ds 2
|
||||
ds 2
|
||||
ds 2
|
||||
ds 4
|
||||
ds 2
|
||||
ds 8
|
||||
ds 8
|
||||
ds 4
|
||||
midiEOF ds 4
|
||||
|
||||
midiREAD dw 4
|
||||
ds 2
|
||||
ds 4
|
||||
ds 4
|
||||
ds 4
|
||||
|
||||
midiCLOSE dw 1
|
||||
ds 2
|
||||
|
||||
midiSETMARK dw 3
|
||||
ds 2
|
||||
ds 2
|
||||
adrl $900 ; +$900 pour WAV
|
||||
|
||||
*--- GS/OS Strings
|
||||
|
||||
pSEQ strl '1/Data/Sequence'
|
||||
pWAV strl '1/Data/Piano.Wav'
|
||||
pBNK strl '1/Data/Piano.Bnk'
|
||||
|
||||
*--- Memory
|
||||
|
||||
ptrSEQ ds 4
|
||||
ptrWAV ds 4
|
||||
ptrBNK ds 4
|
||||
|
||||
*--- Flags
|
||||
|
||||
fgMIDI ds 2 ; can play MIDI if 0
|
||||
|
||||
*--- Instruments
|
||||
|
||||
ptrINST ds 4
|
||||
|
||||
*--- MidiSynth
|
||||
|
||||
seqPlayRec
|
||||
ds 4
|
||||
ds 4
|
||||
ds 4
|
||||
ds 4
|
||||
seqPlay ds 2 ; Play
|
||||
seqClock ds 4
|
||||
|
||||
callBackRec adrl replayMUSIC ; When sequence ends !
|
||||
ds 4
|
||||
ds 4
|
||||
ds 4
|
||||
ds 4
|
||||
ds 4
|
||||
ds 4
|
||||
ds 4
|
||||
ds 4
|
||||
ds 4
|
||||
ds 4
|
||||
ds 4
|
||||
ds 4
|
||||
ds 4
|
|
@ -14,15 +14,6 @@
|
|||
|
||||
mx %11
|
||||
|
||||
BORDER ldal $c034
|
||||
inc
|
||||
stal $c034
|
||||
rts
|
||||
|
||||
*-----------------------------------
|
||||
|
||||
mx %11
|
||||
|
||||
printNIVEAU ora #'0'
|
||||
sta strNIVEAU+9
|
||||
|
||||
|
@ -372,22 +363,10 @@ COUT2 rep #$20
|
|||
text2shr dw 9,19,29,39,49,59,69,79,89,99
|
||||
dw 109,119,129,139,149,159,169,179,189,199
|
||||
|
||||
*text2shr dw 8,16,24,32,40,48,56,64
|
||||
* dw 72,80,88,96,104,112,120,128
|
||||
* dw 136,144,152,160,168,176,184,192
|
||||
* dw 200
|
||||
|
||||
*-----------------------------------
|
||||
|
||||
mx %11
|
||||
|
||||
*RND rep #$30
|
||||
* PushWord #0
|
||||
* _Random
|
||||
* pla
|
||||
* sep #$30
|
||||
* rts
|
||||
|
||||
RND rep #$30
|
||||
ldal VERTCNT
|
||||
xba
|
||||
|
@ -422,14 +401,22 @@ playSOUND sty waveSTART
|
|||
stx waveSTART+2
|
||||
sta waveSIZE
|
||||
|
||||
PushWord #%0000_0000_1000_0000
|
||||
lda seqPlay ; midi playing
|
||||
beq playSOUND1 ; nope
|
||||
_MSSuspend
|
||||
|
||||
playSOUND1 PushWord #%0000_0000_1000_0000
|
||||
_FFStopSound
|
||||
|
||||
PushWord #$0701
|
||||
PushLong #waveSTART
|
||||
_FFStartSound
|
||||
|
||||
sep #$30
|
||||
lda seqPlay ; midi playing
|
||||
beq playSOUND2 ; nope
|
||||
_MSResume
|
||||
|
||||
playSOUND2 sep #$30
|
||||
rts
|
||||
|
||||
*--- Donnees Sound Tool Set
|
||||
|
|
|
@ -201,7 +201,7 @@ newA$ hex 0100411246012E4931394DFF
|
|||
hex 5A11440444052E4330344330354830344830354231394AFF
|
||||
|
||||
hex 502144072E4330374830374230364AFF
|
||||
hex 3F002E443438FF
|
||||
hex 3F002E443438FF ; QUIT - D48
|
||||
hex 40002E4434394EFF
|
||||
hex 14182E4435304BFF
|
||||
hex 14424122450C2E4435314BFF
|
||||
|
@ -218,8 +218,8 @@ newA$ hex 0100411246012E4931394DFF
|
|||
hex 564A41152E4435334BFF
|
||||
hex 5758451041152E4631364435374BFF
|
||||
hex 575841152E4436364BFF
|
||||
hex 54002E443539FF
|
||||
hex 55002E443630FF
|
||||
hex 54002E443539FF ; SAVE - D59
|
||||
hex 55002E443630FF ; LOAD - D60
|
||||
hex 2526411D4410460C2E443631FF
|
||||
hex 2526411D460C2E4438364EFF
|
||||
hex 2526411D2E4436324EFF
|
||||
|
@ -359,7 +359,6 @@ M$53 dfb 2,29,0
|
|||
|
||||
tblMP$ da MP$1,MP$2,MP$3,MP$4,MP$5
|
||||
|
||||
MP$ ds 6 ; le mot de passe <20> trouver (5 + 00)
|
||||
MP$1 asc 'ORIC1'
|
||||
MP$2 asc 'ATMOS'
|
||||
MP$3 asc 'GENIS'
|
||||
|
@ -403,24 +402,24 @@ tblVH$ dfb $bd
|
|||
dfb >V$91,>V$92,>V$93,>V$94,>V$95,>V$96,>V$97,>V$98,>V$99,>V$100
|
||||
dfb >V$101,>V$102,>V$103,>V$104,>V$105,>V$106,>V$107,>V$108,>V$109,>V$110
|
||||
dfb >V$111,>V$112,>V$113,>V$114,>V$115,>V$116,>V$117,>V$118,>V$119,>V$120
|
||||
dfb <V$121,<V$122,<V$123,<V$124,<V$125,<V$126,<V$127,<V$128,<V$129,<V$130
|
||||
dfb >V$121,>V$122,>V$123,>V$124,>V$125,>V$126,>V$127,>V$128,>V$129,>V$130
|
||||
dfb >V$131,>V$132,>V$133,>V$134,>V$135,>V$136,>V$137,>V$138,>V$139
|
||||
dfb >V$200
|
||||
|
||||
tblV dfb $bd
|
||||
dfb 01,01,02,02,03,03,04,04,05,05
|
||||
dfb 01,01,02,02,03,03,04,04,05,05 ; 1
|
||||
dfb 05,05,06,06,10,10,10,11,12,12
|
||||
dfb 13,13,14,15,16,17,17,17,18,19
|
||||
dfb 13,13,14,15,16,17,17,17,18,19 ; 21
|
||||
dfb 19,20,20,21,22,23,24,25,25,25
|
||||
dfb 26,27,28,29,30,31,32,33,34,35
|
||||
dfb 26,27,28,29,30,31,32,33,34,35 ; 41
|
||||
dfb 35,36,37,37,38,38,38,39,39,39
|
||||
dfb 40,41,42,43,43,44,45,46,47,48
|
||||
dfb 40,41,42,43,43,44,45,46,47,48 ; 61
|
||||
dfb 49,50,50,50,51,51,52,52,52,53
|
||||
dfb 54,54,55,55,56,56,57,58,58,59
|
||||
dfb 60,61,62,62,63,63,64,65,66,67
|
||||
dfb 68,69,69,70,70,71,72,73,73,74
|
||||
dfb 54,54,55,55,56,56,57,58,58,59 ; 81
|
||||
dfb 60,61,62,62,63,63,64,65,66,67 ; 91
|
||||
dfb 68,69,69,70,70,71,72,73,73,74 ; 101
|
||||
dfb 75,76,77,77,78,78,79,80,80,80
|
||||
dfb 81,81,82,83,83,84,84,84,85,85
|
||||
dfb 81,81,82,83,83,84,84,84,85,85 ; 121
|
||||
dfb 85,86,87,87,88,88,89,89,90 ; last was 00, now 90
|
||||
dfb 200
|
||||
|
||||
|
@ -518,7 +517,7 @@ V$91 str 'DEMA'
|
|||
V$92 str 'ECOU'
|
||||
V$93 str 'CHRO'
|
||||
V$94 str 'TEMP'
|
||||
V$95 str 'QUIT'
|
||||
V$95 str 'QUIT' ; 63 (3F)
|
||||
V$96 str 'ABAN'
|
||||
V$97 str 'SUIC'
|
||||
V$98 str 'MANU'
|
||||
|
@ -537,7 +536,7 @@ V$110 str 'ORDI'
|
|||
V$111 str 'ESSA'
|
||||
V$112 str 'FLAQ'
|
||||
V$113 str 'PORT'
|
||||
V$114 str 'SAS'
|
||||
V$114 str 'SAS '
|
||||
V$115 str 'LIST'
|
||||
V$116 str 'INVE'
|
||||
V$117 str 'ESCA'
|
||||
|
@ -549,12 +548,12 @@ V$122 str 'ENER'
|
|||
V$123 str 'TOUR'
|
||||
V$124 str 'PAGE'
|
||||
V$125 str 'FEUI'
|
||||
V$126 str 'SAVE'
|
||||
V$126 str 'SAVE' ; 84 (54)
|
||||
V$127 str 'SAUV'
|
||||
V$128 str 'CSAV'
|
||||
V$129 str 'LOAD'
|
||||
V$130 str 'CLOA'
|
||||
V$131 str 'ENRE'
|
||||
V$129 str 'LOAD' ; 85 (55)
|
||||
V$130 str 'ENRE'
|
||||
V$131 str 'CLOA'
|
||||
V$132 str 'ETEI'
|
||||
V$133 str 'RETA'
|
||||
V$134 str 'CORR'
|
||||
|
|
Binary file not shown.
|
@ -21,10 +21,12 @@
|
|||
use 4/Locator.Macs
|
||||
use 4/Mem.Macs
|
||||
use 4/Menu.Macs
|
||||
use 4/MidiSyn.Macs
|
||||
use 4/Misc.Macs
|
||||
use 4/QD.Macs
|
||||
use 4/QDAux.Macs
|
||||
use 4/Sound.Macs
|
||||
use 4/Std.Macs
|
||||
use 4/Util.Macs
|
||||
use 4/Window.Macs
|
||||
|
||||
|
@ -89,9 +91,9 @@ ICI phk
|
|||
tdc
|
||||
sta myDP
|
||||
|
||||
lda #tblMP$
|
||||
lda #fgMIDI
|
||||
stal $300
|
||||
lda #^tblMP$
|
||||
lda #^fgMIDI
|
||||
stal $302
|
||||
|
||||
_TLStartUp
|
||||
|
@ -206,6 +208,8 @@ okTOOL _HideMenuBar
|
|||
sta ptrSCREEN+2
|
||||
|
||||
okSHADOW
|
||||
jsr initMIDI
|
||||
jsr doSOUNDON
|
||||
|
||||
*-----------------------------------
|
||||
* IL FAUT JOUER MAINTENANT
|
||||
|
@ -213,40 +217,13 @@ okSHADOW
|
|||
|
||||
jmp PLAY
|
||||
|
||||
*-----------------------------------
|
||||
|
||||
lda #1
|
||||
sta myINDEX
|
||||
|
||||
loop rep #$30
|
||||
|
||||
PushWord #0
|
||||
_ClearScreen
|
||||
|
||||
lda myINDEX
|
||||
jsr showPIC
|
||||
|
||||
mx %11
|
||||
|
||||
]lp ldal $c000
|
||||
bpl ]lp
|
||||
stal $c010
|
||||
cmp #$9b
|
||||
beq QUIT
|
||||
|
||||
inc myINDEX
|
||||
lda myINDEX
|
||||
cmp #58
|
||||
bne loop
|
||||
|
||||
mx %00
|
||||
|
||||
*-----------------------------------
|
||||
* AU REVOIR LE IIGS
|
||||
*-----------------------------------
|
||||
|
||||
QUIT rep #$30
|
||||
|
||||
jsr stopMIDI
|
||||
|
||||
meQUIT PushWord #refIsPointer
|
||||
PushLong ssREC
|
||||
_ShutDownTools
|
||||
|
@ -321,10 +298,197 @@ loadBACK _HideCursor
|
|||
rts
|
||||
|
||||
*-----------------------------------
|
||||
* DES DONNES 16-BITS
|
||||
* LOAD/SAVE
|
||||
*-----------------------------------
|
||||
|
||||
myINDEX ds 2
|
||||
*----------------------------------- Open
|
||||
|
||||
doLOAD rep #$30
|
||||
jsr doSOUNDOFF
|
||||
rep #$30
|
||||
jsr saveBACK
|
||||
|
||||
PushWord #30
|
||||
PushWord #43
|
||||
PushLong #strLOADFILE
|
||||
PushLong #0
|
||||
PushLong #typeLIST
|
||||
PushLong #replyPTR
|
||||
_SFGetFile
|
||||
|
||||
jsr loadBACK
|
||||
jsr doSOUNDON
|
||||
rep #$30
|
||||
|
||||
lda replyPTR
|
||||
bne doLOAD1
|
||||
rts
|
||||
|
||||
doLOAD1 jsr copyPATH
|
||||
jsr loadALL
|
||||
sep #$30
|
||||
rts
|
||||
|
||||
mx %
|
||||
|
||||
*----------------------------------- Save
|
||||
|
||||
doSAVE rep #$30
|
||||
jsr doSOUNDOFF
|
||||
rep #$30
|
||||
jsr saveBACK
|
||||
|
||||
PushWord #25
|
||||
PushWord #36
|
||||
PushLong #strSAVEFILE
|
||||
PushLong #namePATH
|
||||
PushWord #15
|
||||
PushLong #replyPTR
|
||||
_SFPutFile
|
||||
|
||||
jsr loadBACK
|
||||
jsr doSOUNDON
|
||||
rep #$30
|
||||
|
||||
lda replyPTR
|
||||
bne doSAVE1
|
||||
rts
|
||||
|
||||
doSAVE1 jsr copyPATH
|
||||
jsr saveALL
|
||||
sep #$30
|
||||
rts
|
||||
|
||||
*--- Recopie le filename du fichier de sauvegarde
|
||||
|
||||
mx %00
|
||||
|
||||
copyPATH sep #$20
|
||||
ldx #16-1
|
||||
]lp lda namePATH1,x
|
||||
sta pGAME+4,x
|
||||
dex
|
||||
bpl ]lp
|
||||
|
||||
lda namePATH
|
||||
inc
|
||||
inc
|
||||
sta pGAME
|
||||
rep #$20
|
||||
rts
|
||||
|
||||
*--- Charge le fichier de sauvegarde en mŽmoire
|
||||
|
||||
loadALL jsl GSOS
|
||||
dw $2010
|
||||
adrl proOPENGAME
|
||||
bcs loadKO99
|
||||
|
||||
lda proOPENGAME+2
|
||||
sta proREADGAME+2
|
||||
sta proCLOSE+2
|
||||
|
||||
jsr loadPART
|
||||
|
||||
jsl GSOS
|
||||
dw $2014
|
||||
adrl proCLOSE
|
||||
|
||||
loadKO99 rts
|
||||
|
||||
*---
|
||||
|
||||
loadPART ldx #FIN_DATA-DEBUT_DATA
|
||||
ldy #A1
|
||||
|
||||
loadIT stx proREADGAME+8
|
||||
sty proREADGAME+4
|
||||
jsl GSOS
|
||||
dw $2012
|
||||
adrl proREADGAME
|
||||
rts
|
||||
|
||||
*--- Enregistre le fichier de sauvegarde
|
||||
|
||||
saveALL jsl GSOS
|
||||
dw $2002
|
||||
adrl proDESTROYGAME
|
||||
|
||||
jsl GSOS
|
||||
dw $2001
|
||||
adrl proCREATEGAME
|
||||
bcs saveKO99
|
||||
|
||||
jsl GSOS
|
||||
dw $2010
|
||||
adrl proOPENGAME
|
||||
bcs saveKO99
|
||||
|
||||
lda proOPENGAME+2
|
||||
sta proWRITEGAME+2
|
||||
sta proCLOSE+2
|
||||
|
||||
jsr savePART
|
||||
|
||||
jsl GSOS
|
||||
dw $2014
|
||||
adrl proCLOSE
|
||||
|
||||
saveKO99 rts
|
||||
|
||||
*---
|
||||
|
||||
savePART ldx #FIN_DATA-DEBUT_DATA
|
||||
ldy #A1
|
||||
|
||||
saveIT stx proWRITEGAME+8
|
||||
sty proWRITEGAME+4
|
||||
jsl GSOS
|
||||
dw $2013
|
||||
adrl proWRITEGAME
|
||||
rts
|
||||
|
||||
*--- For the game party
|
||||
|
||||
proCREATEGAME
|
||||
dw 7 ; pcount
|
||||
adrl pGAME ; pathname
|
||||
dw $c3 ; access_code
|
||||
dw $5d ; file_type
|
||||
adrl $8020 ; aux_type
|
||||
ds 2 ; storage_type
|
||||
ds 4 ; eof
|
||||
ds 4 ; resource_eof
|
||||
|
||||
proDESTROYGAME
|
||||
dw 1 ; pcount
|
||||
adrl pGAME ; pathname
|
||||
|
||||
proOPENGAME
|
||||
dw 2
|
||||
ds 2
|
||||
adrl pGAME
|
||||
|
||||
proREADGAME
|
||||
dw 4 ; 0 - pcount
|
||||
ds 2 ; 2 - ref_num
|
||||
adrl pGAME ; 4 - data_buffer
|
||||
ds 4 ; 8 - request_count
|
||||
ds 4 ; C - transfer_count
|
||||
|
||||
proWRITEGAME
|
||||
dw 5 ; 0 - pcount
|
||||
ds 2 ; 2 - ref_num
|
||||
adrl pGAME ; 4 - data_buffer (we are in same bank)
|
||||
ds 4 ; 8 - request_count
|
||||
ds 4 ; C - transfer_count
|
||||
dw 1 ; cache_priority
|
||||
|
||||
pGAME strl '0/ '
|
||||
|
||||
*-----------------------------------
|
||||
* DES DONNES 16-BITS
|
||||
*-----------------------------------
|
||||
|
||||
*----------------------------------- Memory Manager
|
||||
|
||||
|
@ -422,6 +586,9 @@ toolTBL dw $0000 ; flags
|
|||
|
||||
proERR ds 2 ; GS/OS error code
|
||||
|
||||
proCLOSE dw 1 ; pcount
|
||||
ds 2 ; ID
|
||||
|
||||
proQUIT dw 2 ; pcount
|
||||
ds 4 ; pathname
|
||||
ds 2 ; flags
|
||||
|
@ -462,6 +629,7 @@ loadPATH1 ds 129 ; 23 fullPathname (128 normally)
|
|||
put leretour.s
|
||||
put engine.s
|
||||
put fr.s
|
||||
put ../common/midi.s
|
||||
put ../common/images.s
|
||||
|
||||
*--- It's the end
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -13,7 +13,7 @@
|
|||
*-----------------------------------
|
||||
|
||||
CH = $24 ; cursor horizontal position
|
||||
CV = $25 ; cursor vertical position
|
||||
CV = CH+2 ; cursor vertical position
|
||||
LINNUM = $50 ; result from GETADR
|
||||
|
||||
textX = $30 ; les X/Y pour afficher les
|
||||
|
@ -26,7 +26,6 @@ chrRA = $15
|
|||
chrDEL = $7f
|
||||
chrRET = $0d
|
||||
chrSPC = $20
|
||||
*TEXTBUFFER = $200
|
||||
maxLEN = 40
|
||||
|
||||
chrOUI = 'O'
|
||||
|
@ -80,8 +79,8 @@ idxTIMER = 200
|
|||
*-----------------------------------
|
||||
|
||||
PLAY sep #$30
|
||||
|
||||
jsr initALL
|
||||
REPLAY sep #$30
|
||||
jsr HGR
|
||||
|
||||
jsr HOME ; clear text screen
|
||||
|
@ -978,7 +977,7 @@ tbl4000 da $bdbd,:4010,:4020,:4030,:4040,:4050,:4060,:4070,:4080,:4090
|
|||
:4470 @print #str4470
|
||||
rts
|
||||
|
||||
:4480 jsr :5500
|
||||
:4480 jsr :5500 ; QUITTER
|
||||
cmp #chrNON
|
||||
bne :4481
|
||||
jmp :500
|
||||
|
@ -1080,13 +1079,12 @@ MDP$ asc 'MANOIR'
|
|||
|
||||
*----------- SAVE - LOGO
|
||||
|
||||
:4590 @print #str4590
|
||||
rts
|
||||
:4590 jmp doSAVE
|
||||
|
||||
*----------- LOAD - LOGO
|
||||
|
||||
:4600 @print #str4600
|
||||
rts
|
||||
:4600 jsr doLOAD
|
||||
jmp REPLAY
|
||||
|
||||
*----------- LE MOT DE PASSE FINAL
|
||||
|
||||
|
@ -1521,12 +1519,6 @@ initALL
|
|||
sta O,x
|
||||
dex
|
||||
bpl ]lp
|
||||
|
||||
* ldx #nbO*2 ; reset object table
|
||||
*]lp lda refO$,x
|
||||
* sta tblO$,x
|
||||
* dex
|
||||
* bpl ]lp
|
||||
rts
|
||||
|
||||
*-----------------------------------
|
||||
|
@ -1794,7 +1786,6 @@ H ds 1
|
|||
HH ds 1
|
||||
MO$1 ds 1 ; mot 1
|
||||
MO$2 ds 1 ; mot 2
|
||||
MO$3 ds 1 ; mot 3
|
||||
N ds 1
|
||||
NL ds 1
|
||||
OK ds 1
|
||||
|
@ -1807,12 +1798,13 @@ lenSTRING ds 1
|
|||
MINUTES ds 2 ; 0..20 en dŽcimal
|
||||
SECONDES ds 2 ; 0..59
|
||||
|
||||
MP$ ds 6 ; le mot de passe ˆ trouver (5 + 00)
|
||||
|
||||
C ds 32+1
|
||||
E$ ds 32 ; the longest string
|
||||
P ds 32+1
|
||||
X$1 ds 1+4 ; premier mot saisi
|
||||
X$2 ds 1+4 ; deuxi<78>me mot saisi
|
||||
X$3 ds 1+4 ; troisi<73>me mot saisi
|
||||
|
||||
FIN_DATA
|
||||
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue