antoine-source/toutadisparu/sources/toutadisparu.s

1335 lines
21 KiB
ArmAsm
Raw Normal View History

2023-07-03 08:58:40 +00:00
*
* Tout a disparu
*
* (c) 1992, François Coulon
* (c) 2022, Antoine Vignau & Olivier Zardini
*
lst off
rel
typ $B3
dsk ToutADisparu.l
mx %00
xc
xc
*----------------------------------- Macros
use 4/Ctl.Macs
use 4/Desk.Macs
use 4/Event.Macs
use 4/Font.Macs
use 4/Int.Macs
use 4/Line.Macs
use 4/Locator.Macs
use 4/Mem.Macs
use 4/Menu.Macs
use 4/Misc.Macs
use 4/Print.Macs
use 4/Qd.Macs
use 4/QdAux.Macs
use 4/Resource.Macs
use 4/Scrap.Macs
use 4/Std.Macs
use 4/TextEdit.Macs
use 4/Tool222.Macs
use 4/Util.Macs
use 4/Window.Macs
*-----------------------
* macros
*-----------------------
@cprint mac
lda #]1
ldy #]2
jsr cprint
eom
*@print mac
* lda #]1
* ldx #]2
* ldy #]3
* jsr print
* eom
2023-07-03 08:58:40 +00:00
@val mac
PushWord ]2
PushWord ]1
jsr val
eom
@left mac
PushWord ]3
PushWord ]2
PushWord ]1
jsr left
eom
@charcmp mac
PushWord #]2
PushWord #]1
jsr charcmp
eom
@copystring mac
PushWord #]3
PushWord #]2
PushWord #]1
jsr copy_string
eom
@instr mac
PushWord #]3
PushWord #]2
PushWord #]1
jsr instr
eom
*----------------------------------- Constantes
*-------------- Softswitches
KBD = $e0c000
KBDSTROBE = $e0c010
RDVBLBAR = $e0c019
GSOS = $e100a8
*-------------- GUI
alertQUIT = $0100
alertRESTART = $0200
refIsPointer = $0
refIsHandle = $1
refIsResource = $2
appleKey = $0100
mouseUpEvt = $0002
keyDownEvt = $0003
*--------------
dpFROM = $80
dpTO = dpFROM+4
dpINDEX = $90 ; pointeur vers les INDEX
dpTEXTES = dpINDEX+4 ; pointeur vers les TEXTES
Debut = $a0
Arrivee = Debut+4
Second = Arrivee+4
mode_320 = $00
mode_640 = $80
screen_320 = 320
screen_640 = 640
ptr012000 = $012000
ptrE12000 = $e12000
2023-07-03 08:58:40 +00:00
*---
TRUE = 1
FALSE = 0
*----------------------------------- Entry point
phk
plb
clc
xce
rep #$30
_TLStartUp
pha
_MMStartUp
pla
sta myID
tdc
sta myDP
*---
lda #main
stal $310
lda #^main
stal $312
*--- Version du systeme
jsl GSOS
dw $202a
adrl proVERS
lda proVERS+2
and #%01111111_11111111
cmp #$0402
bcs okVERS
pha
PushLong #verSTR1
PushLong #verSTR2
PushLong #errSTR1
PushLong #errSTR2
_TLTextMountVolume
pla
brl meQUIT1
*--- 64K pour les images des scènes
okVERS jsr make64KB
bcc okMEM1
koMEM pha
PushLong #memSTR1
PushLong #errSTR2
PushLong #errSTR1
PushLong #errSTR2
_TLTextMountVolume
pla
brl meQUIT1
okMEM1
sty ptrIMAGE
stx ptrIMAGE+2
stx ptrMENU+2 ; l'image de menu
*--- 64K pour la sauvegarde de l'écran
jsr make64KB
bcs koMEM
sep #$10 ; save pointer+2
stx saveBACK1+3 ; for interactions
stx loadBACK1+3 ; with the toolbox
stx ptrFOND+2 ; l'image de fond
rep #$10
*--- 64K pour les images compressees
2023-07-03 08:58:40 +00:00
jsr make64KB
bcs koMEM
sty ptrUNPACK
stx ptrUNPACK+2
*--- 64K pour les INDEX des textes
jsr make64KB
bcs koMEM
sty ptrINDEX
stx ptrINDEX+2
*--- 64K pour les TEXTES
jsr make64KB
bcs koMEM
sty ptrTEXTES
stx ptrTEXTES+2
*--- Chargement des outils
pha
pha
PushWord myID
PushWord #refIsResource
PushLong #1
_StartUpTools
PullLong SStopREC
bcc okTOOL
pha
PushLong #tolSTR1
PushLong #errSTR2
PushLong #errSTR1
PushLong #errSTR2
_TLTextMountVolume
pla
brl meQUIT0
*--- Et la musique...
okTOOL _HideMenuBar
_InitCursor
PushLong #0
_GetPort
PullLong mainPORT
*----------------------------------------
* INITIALISATIONS
*----------------------------------------
* jsr loadFONT ; charge l'image de la police
jsr load_font ; charge courier.10
2023-07-03 08:58:40 +00:00
jsr initNTP
jsr randomNTP ; select a sequence 0-7
jsr set_language
jsr doSOUNDON ; NTP on
jsr initialisation_absolue
jsr generique
2023-08-11 15:59:57 +00:00
*-----------------------
* MAIN - OK
*-----------------------
* main
main
jsr choix_aventure
jsr initialisation_relative
jsr fadeOUT
mainLOOP
lda scene_actuelle
jsr nouvelle_scene
lda scene_actuelle
jsr image
* jsr affiche_texte
2023-07-03 08:58:40 +00:00
*----------------------------------------
* TASK MASTER
*----------------------------------------
taskLOOP
PushWord #0
PushWord #0
PushWord #$c000
PushWord #0
_HandleDiskInsert
pla
pla
inc VBLCounter0
PushWord #0
PushWord #%11111111_11111111
PushLong #taskREC
_TaskMaster
pla
beq taskLOOP
asl
tax
jsr (taskTBL,x)
bra taskLOOP
*----------------------------------- Gestion du keyDown
* on gère les open-apple-qqch
doKEYDOWN
lda taskMODIFIERS
and #appleKey
cmp #appleKey
beq doOPENAPPLE
rts
*--- gère les open-apple-qqch
doOPENAPPLE
ldx #-1
sep #$20
]lp inx
lda tblKEYVALUE,x ; get key
cmp #$ff ; end of table
beq doOPENAPPLE99 ; so exit
cmp taskMESSAGE ; same as pressed key?
bne ]lp ; no, loop
rep #$20
txa
asl
tax
jmp (tblKEYADDRESS,x)
doOPENAPPLE99
doNOT
rep #$20
rts
*---
tblKEYVALUE
asc 'QqOoSs'
asc 'Rr'
asc 'Zz'
2023-08-11 15:59:57 +00:00
asc '?'
2023-07-03 08:58:40 +00:00
hex ff
tblKEYADDRESS
da doQUIT,doQUIT,doLOAD,doLOAD,doSAVE,doSAVE
da doRESTART,doRESTART
da doMUSIK,doMUSIK
2023-08-11 15:59:57 +00:00
da help
2023-07-03 08:58:40 +00:00
*----------------------------------- Gestion des contrôles (ça veut dire boutons ou lineedit)
doCONTROL
lda taskREC+38
rts
*----------------------------------- Gestion du mouseUp
* on compare les coordonnées avec celles du incontent
* si dans le même rectangle, on traite
doMOUSEUP
rts
*-----------------------------------
* AUTRES ROUTINES
*-----------------------------------
*----------------------------------- Switch to 320 mode
switch_320
lda #0
ldy #screen_320
bra switch_res
*----------------------------------- Switch to 640 mode
switch_640
lda #$80
ldy #screen_640
*-----------
switch_res
sty mainWIDTH
pha
pha
_SetMasterSCB
_SetAllSCBs
PushLong #$e19e00
_InitColorTable
_InitCursor
PushLong mainPORT
_InitPort
_HideCursor
PushWord #0
PushWord mainWIDTH
PushWord #0
PushWord #200
_ClampMouse
_HomeMouse
_ShowCursor
_WindNewRes
_MenuNewRes
_CtlNewRes
rts
*-----------
mainWIDTH ds 2
2023-08-11 15:59:57 +00:00
oldWIDTH ds 2
2023-07-03 08:58:40 +00:00
mainPORT ds 4
*----------------------------------- Open
doLOAD
jsr suspendMUSIC ; NTP off
jsr saveBACK
PushWord #30
PushWord #43
PushLong #strLOADFILE
PushLong #0
PushLong #typeLIST
PushLong #replyPTR
_SFGetFile
jsr loadBACK
jsr resumeMUSIC ; NTP on
lda replyPTR
bne doLOAD1
rts
doLOAD1
jsr copyPATH
jmp loadALL
*----------------------------------- Save
doSAVE
jsr suspendMUSIC ; NTP off
jsr saveBACK
PushWord #25
PushWord #36
PushLong #strSAVEFILE
PushLong #namePATH
PushWord #15
PushLong #replyPTR
_SFPutFile
jsr loadBACK
jsr resumeMUSIC ; NTP on
lda replyPTR
bne doSAVE1
rts
doSAVE1
jsr copyPATH
jmp saveALL
*--- Recopie le filename du fichier de sauvegarde
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 #NB_INDICATEURS
ldy #C1
jsr loadIT
ldx #2
ldy #P
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 #NB_INDICATEURS
ldy #C1
jsr saveIT
ldx #2
ldy #P
saveIT
stx proWRITEGAME+8
sty proWRITEGAME+4
jsl GSOS
dw $2013
adrl proWRITEGAME
rts
*----------------------------------- Restart
doRESTART
jsr saveBACK
PushWord #0
PushWord #5
PushLong #0
* PushLong #alertRESTART
pea $0000
lda #alertRESTART
ora saveLANGUAGE
pha
_AlertWindow
jsr loadBACK
pla
beq re1
rts
re1
jmp initialisation_relative
*----------------------------------- Quit
doQUIT
jsr saveBACK
PushWord #0
PushWord #5
PushLong #0
* PushLong #alertQUIT
pea $0000
lda #alertQUIT
ora saveLANGUAGE
pha
_AlertWindow
jsr loadBACK
pla
beq meQUIT
rts
*----------------------------------- Quit
meQUIT
jsr stopNTP
meQUIT0
PushWord #refIsHandle
PushLong SStopREC
_ShutDownTools
meQUIT1
PushWord myID
_DisposeAll
PushWord myID
_MMShutDown
_TLShutDown
jsl GSOS
dw $2029
adrl proQUIT
brk $bd
*----------------------------------------
* MEMOIRE
*----------------------------------------
make64KB
pha
pha
PushLong #$010000
PushWord myID
PushWord #%11000000_00011100
PushLong #0
_NewHandle
phd
tsc
tcd
lda [3]
tax ; low in X
ldy #2
lda [3],y
txy ; low in Y
tax ; high in X
pld
pla ; we do not keep track of the handle
pla
rts
*----------------------------------------
* GFX
*----------------------------------------
*--------------------------------------
nextVBL lda #75
pha
]lp ldal $e0c02e
and #$7f
cmp 1,s
blt ]lp
cmp #100
bge ]lp
pla
waitVBL ldal RDVBLBAR-1
bpl waitVBL
rts
waitKEY ldal KBD-1
bpl waitKEY
stal KBDSTROBE-1
rts
waitEVENT inc VBLCounter0
PushWord #0 ; wait for a mouse-up event
PushWord #4
PushLong #taskREC
_GetNextEvent
pla
beq waitEVENT
rts
*--------------------------------------
fadeIN sty Debut
stx Debut+2
_HideCursor
ldy #$2000
sty Arrivee
ldx #$00e1
stx Arrivee+2
ldy #$7e00
lda #0
]lp sta [Arrivee],y
iny
iny
bpl ]lp
ldy #$7dfe
]lp lda [Debut],y
sta [Arrivee],y
dey
dey
bpl ]lp
fadeIN1 lda Debut
clc
adc #$7e00
sta Debut
lda Debut+2
adc #0
sta Debut+2
lda Arrivee
clc
adc #$7e00
sta Arrivee
lda Arrivee+2
adc #0
sta Arrivee+2
ldx #$000f
fadeIN2 ldy #$01fe
fadeIN3 lda [Arrivee],y
and #$000f
sta temp
lda [Debut],y
and #$000f
cmp temp
beq fadeIN4
lda [Arrivee],y
clc
adc #$0001
sta [Arrivee],y
fadeIN4 lda [Arrivee],y
and #$00f0
sta temp
lda [Debut],y
and #$00f0
cmp temp
beq fadeIN5
lda [Arrivee],y
clc
adc #$0010
sta [Arrivee],y
fadeIN5 lda [Arrivee],y
and #$0f00
sta temp
lda [Debut],y
and #$0f00
cmp temp
beq fadeIN6
lda [Arrivee],y
clc
adc #$0100
sta [Arrivee],y
fadeIN6 dey
dey
bpl fadeIN3
jsr nextVBL
dex
bpl fadeIN2
_ShowCursor
rts
*---
fadeOUT lda #$9e00
sta Debut
lda #$00e1
sta Debut+2
_HideCursor
ldx #$000f
fadeOUT1 ldy #$01fe
fadeOUT2 lda [Debut],y
and #$000f
beq fadeOUT3
lda [Debut],y
sec
sbc #$0001
sta [Debut],y
fadeOUT3 lda [Debut],y
and #$00f0
beq fadeOUT4
lda [Debut],y
sec
sbc #$0010
sta [Debut],y
fadeOUT4 lda [Debut],y
and #$0f00
beq fadeOUT5
lda [Debut],y
sec
sbc #$0100
sta [Debut],y
fadeOUT5 dey
dey
bpl fadeOUT2
jsr nextVBL
dex
bpl fadeOUT1
_ShowCursor
jmp noircit_ecran
*----------------------------
* unpackLZ4
* Unpacks a LZ4 file
* Uses the two pointers:
* - ptrUNPACK: packed img (MUST BE AT $0000)
* - ptrIMAGE: temp unpack zone
*
* Entry:
* A: packed data size
*
* Exit:
* A: unpacked data size
*
*----------------------------
unpackLZ4
sta LZ4_Limit+1
jsr suspendMUSIC
sep #$20
*--- Source
lda ptrUNPACK+2
sta LZ4_Literal_3+2
sta LZ4_ReadToken+3
sta LZ4_Match_1+3
sta LZ4_GetLength_1+3
*--- Destination
lda ptrIMAGE+2
sta LZ4_Literal_3+1
sta LZ4_Match_5+1
sta LZ4_Match_5+2
rep #$20
* REP #$30
* STY LZ4_Limit+1
*--
ldy #0 ; Init Target unpacked Data offset
ldx #16 ; Offset after header
LZ4_ReadToken LDAL $AA0000,X ; Read Token Byte
INX
STA LZ4_Match_2+1
*----------------
LZ4_Literal AND #$00F0 ; >>> Process Literal Bytes <<<
BEQ LZ4_Limit ; No Literal
CMP #$00F0
BNE LZ4_Literal_1
JSR LZ4_GetLengthLit ; Compute Literal Length with next bytes
BRA LZ4_Literal_2
LZ4_Literal_1 LSR ; Literal Length use the 4 bit
LSR
LSR
LSR
LZ4_Literal_2 DEC ; Copy A+1 Bytes
LZ4_Literal_3 MVN $AA,$BB ; Copy Literal Bytes from packed data buffer
PHK ; X and Y are auto incremented
PLB
*----------------
LZ4_Limit CPX #$AAAA ; End Of Packed Data buffer ?
BEQ LZ4_End
*----------------
LZ4_Match TYA ; >>> Process Match Bytes <<<
SEC
LZ4_Match_1 SBCL $AA0000,X ; Match Offset
INX
INX
STA LZ4_Match_4+1
LZ4_Match_2 LDA #$0000 ; Current Token Value
AND #$000F
CMP #$000F
BNE LZ4_Match_3
JSR LZ4_GetLengthMat ; Compute Match Length with next bytes
LZ4_Match_3 CLC
ADC #$0003 ; Minimum Match Length is 4 (-1 for the MVN)
PHX
LZ4_Match_4 LDX #$AAAA ; Match Byte Offset
LZ4_Match_5 MVN $BB,$BB ; Copy Match Bytes from unpacked data buffer
PHK ; X and Y are auto incremented
PLB
PLX
BRA LZ4_ReadToken
*----------------
LZ4_GetLengthLit LDA #$000F ; Compute Variable Length (Literal or Match)
LZ4_GetLengthMat STA LZ4_GetLength_2+1
LZ4_GetLength_1 LDAL $AA0000,X ; Read Length Byte
INX
AND #$00FF
CMP #$00FF
BNE LZ4_GetLength_3
CLC
LZ4_GetLength_2 ADC #$000F
STA LZ4_GetLength_2+1
BRA LZ4_GetLength_1
LZ4_GetLength_3 ADC LZ4_GetLength_2+1
RTS
*----------------
LZ4_End sty lenDATA ; Y = length of unpacked data
jmp resumeMUSIC
*---
lenDATA ds 4
*-----------------------------------
* SAVE THE SHR SCREEN
*-----------------------------------
saveBACK
_HideCursor
ldx #$8000-2
]lp ldal $e12000,x
saveBACK1 stal $000000,x
dex
dex
bpl ]lp
exitBACK _ShowCursor
rts
*-----------------------------------
* RESTORE THE SHR SCREEN
*-----------------------------------
loadBACK
_HideCursor
ldx #$8000-2
loadBACK1 ldal $000000,x
stal $012000,x
stal $e12000,x
dex
dex
bpl loadBACK1
bmi exitBACK
*--- Genere un nombre aleatoire
Random
ldal $e0c02e
xba
clc
adc VBLCounter0
sta VBLCounter0
and #$ff
rts
VBLCounter0 ds 2
*----------------------------
* nowWAIT
* Wait A seconds
*
* Entry:
* A: nb of seconds to wait
*
* Exit:
* A/X: scrambled
*
*----------------------------
nowWAIT
dec
tax
lda #0
]lp clc
adc #60
cpx #0
beq nowWAIT1
dex
bra ]lp
nowWAIT1 pha
]lp ldal RDVBLBAR-1
bpl ]lp
]lp ldal RDVBLBAR-1
bmi ]lp
pla
dec
bne nowWAIT1
sec
rts
*----------------------------------------
* DATA
*----------------------------------------
*----------------------- Memory manager
myID ds 2
myDP ds 2
SStopREC ds 4
* même 64k
ptrIMAGE ds 4 ; $0000: where a scene image is loaded
ptrMENU adrl $8000 ; $8000: the menu picture
ptrFOND adrl $8000 ; $0000: copy/paste du desktop, $8000: the fond picture
ptrUNPACK ds 4 ; $0000: where the background picture is laoded
ptrINDEX ds 4 ; les index des textes
ptrTEXTES ds 4 ; les textes
fgSND ds 2 ; set if sound file not loaded
haSND ds 4 ; the handle to the sound pointer
temp ds 2
saveLANGUAGE ds 2
*----------------------- Tool locator
verSTR1 str 'System 6.0.1 Required!'
verSTR2 str 'Press a key to quit'
fntSTR1 str 'Courier.10 font missing'
fntSTR2 str 'Please install it!'
2023-07-03 08:58:40 +00:00
tolSTR1 str 'Error while loading tools'
memSTR1 str 'Cannot allocate memory'
filSTR1 str 'Cannot load file'
errSTR1 str 'Quit'
errSTR2 str ''
errSTR3 str 'Continue'
*----------------------- Window manager
taskREC ds 2 ; wmWhat +0
taskMESSAGE ds 4 ; wmMessage +2
taskWHEN ds 4 ; wmWhen +6
taskWHERE ds 4 ; wmWhere +10
taskMODIFIERS ds 2 ; wmModifiers +14
taskDATA ds 4 ; wmTaskData +16
adrl $001fffff ; wmTaskMask +20
ds 4 ; wmLastClickTick +24
ds 2 ; wmClickCount +28
ds 4 ; wmTaskData2 +30
ds 4 ; wmTaskData3 +34
ds 4 ; wmTaskData4 +38
ds 4 ; wmLastClickPt +42
taskTBL da doNOT ; Null
da doNOT ; mouseDownEvt
da doMOUSEUP ; mouseUpEvt
da doKEYDOWN ; keyDownEvt
da doNOT
da doNOT ; autoKeyEvt
da doNOT ; updateEvt
da doNOT
da doNOT ; activateEvt
da doNOT ; switchEvt
da doNOT ; deskAccEvt
da doNOT ; driverEvt
da doNOT ; app1Evt
da doNOT ; app2Evt
da doNOT ; app3Evt
da doNOT ; app4Evt
da doNOT ; wInDesk
da doNOT ; wInMenuBar
da doNOT ; wCLickCalled
da doNOT ; wInContent - was doCONTENT
da doNOT ; wInDrag
da doNOT ; wInGrow
da doNOT ; wInGoAway
da doNOT ; wInZoom
da doNOT ; wInInfo
da doNOT ; wInSpecial
da doNOT ; wInDeskItem
da doNOT ; wInFrame
da doNOT ; wInactMenu
da doNOT ; wInClosedNDA
da doNOT ; wInCalledSysEdit
da doNOT ; wInTrackZoom
da doNOT ; wInHitFrame
da doCONTROL ; wInControl
da doNOT ; wInControlMenu
*----------------------------------------
* STD FILE
*----------------------------------------
*---
strLOADFILE str 'Charger quel jeu ?'
strSAVEFILE str 'Enregistrer sous...'
typeLIST hex 01
hex 5d ; Game/Edu files
replyPTR ds 2 ; 0 good
ds 2 ; 2 fileType
ds 2 ; 4 auxFileType
namePATH
hex 06 ; 6 fileName
namePATH1
asc 'Partie' ; 7 fileName (16 normally)
ds 9
loadPATH
ds 1 ; 22 fullPathname (string length)
loadPATH1
ds 129 ; 23 fullPathname (128 normally)
*----------------------------------------
* GS/OS
*----------------------------------------
loadFILE
sta proOPEN+4 ; filename
sty proREAD+4 ; RAM pointer low
stx proREAD+6 ; RAM pointer high
loadFILE1
stz proERR
jsl GSOS
dw $2010
adrl proOPEN
bcs loadERR
lda proOPEN+2
sta proREAD+2
sta proCLOSE+2
lda proEOF
sta proREAD+8
lda proEOF+2
sta proREAD+10
jsl GSOS
dw $2012
adrl proREAD
bcs loadERR
loadFILE2
jsl GSOS
dw $2014
adrl proCLOSE
ldy proREAD+12 ; length read
ldx proREAD+14
rts
loadERR jsr loadFILE2
ldy #0
tyx
sec
rts
*--- GS/OS data
proERR ds 2
2023-07-03 08:58:40 +00:00
*--- For the game party
proCREATEGAME
dw 7 ; pcount
adrl pGAME ; pathname
dw $c3 ; access_code
dw $5d ; file_type
adrl $801f ; 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
*--- For the game images
proSETPFX dw 2
dw 7
adrl pathIMAGES
proOPEN
dw 12
ds 2
adrl pMENU
ds 2
ds 2
ds 2
ds 2
ds 4
ds 2
ds 8
ds 8
ds 4
proEOF ds 4
proREAD
dw 4 ; 0 - nb parms
ds 2 ; 2 - file id
ds 4 ; 4 - pointer
ds 4 ; 8 - length
ds 4 ; C - length read
proCLOSE
dw 1
ds 2
proQUIT
dw 2 ; pcount
ds 4 ; pathname
ds 2 ; flags
proVERS
dw 1 ; pcount
ds 2 ; version
*--- offset to image number is +16
pMENU strl '1/data/images/general/menu.lz4'
pFOND strl '1/data/images/general/fond.lz4'
pFONT strl '1/data/images/general/font.lz4'
pINDEX strl '1/data/textes/fr/TEXTES1.IND'
pTEXTES strl '1/data/textes/fr/TEXTES1.TEX'
*--- offset to aventure number is +25
pathIMAGES strl '1/data/images/aventure.x'
pIMAGE strl '7/x1234567.lz4'
pGAME strl '0/ '
*----------------------------------------
* LES AUTRES FICHIERS
*----------------------------------------
put game.s
2023-08-11 15:59:57 +00:00
put data.s
2023-07-03 08:58:40 +00:00
put ecr.s
put ntp.s
*---
asc 0d
asc "----------------"0d
asc " "0d
asc " TOUT A DISPARU "0d
asc " "0d
asc " Antoine Vignau "0d
asc "Olivier Zardini"0d
asc " "0d
asc " Noel 2022 "0d
asc " "0d
asc "----------------"0d