This commit is contained in:
Antoine Vignau 2023-08-30 16:42:20 +02:00
parent 3abf70a292
commit e25f1b7de4
7 changed files with 4013 additions and 2777 deletions

Binary file not shown.

View File

@ -78,6 +78,7 @@ PROCEDURE vigil(max_x%,max_y%,max_xx%,max_yy%,sauvegarde!)
HIDEM !ON REFAIT DISPARAITRE LE CURSEUR HIDEM !ON REFAIT DISPARAITRE LE CURSEUR
' '
RETURN RETURN
'
PROCEDURE teste_fin PROCEDURE teste_fin
' '
IF paragraphes_lus%=pointeur_paragraphes%-1 IF paragraphes_lus%=pointeur_paragraphes%-1
@ -85,6 +86,7 @@ PROCEDURE teste_fin
ENDIF ENDIF
' '
RETURN RETURN
'
PROCEDURE demande_objet PROCEDURE demande_objet
ARRAYFILL icone_objets!(),FALSE !RAZ DE CHAQUE INDICATEUR D'AFFICHAGE ARRAYFILL icone_objets!(),FALSE !RAZ DE CHAQUE INDICATEUR D'AFFICHAGE
' '
@ -123,6 +125,7 @@ PROCEDURE demande_objet
UNTIL objet%<>0 !ON CONTINUE JUSQU'A TEMPS QUE LA SOURIS DESIGNE UNE ICONE UNTIL objet%<>0 !ON CONTINUE JUSQU'A TEMPS QUE LA SOURIS DESIGNE UNE ICONE
' '
RETURN RETURN
'
PROCEDURE demande_peche PROCEDURE demande_peche
' '
ARRAYFILL icone_peches!(),FALSE !RAZ DE CHAQUE INDICATEUR D'AFFICHAGE ARRAYFILL icone_peches!(),FALSE !RAZ DE CHAQUE INDICATEUR D'AFFICHAGE
@ -171,6 +174,7 @@ PROCEDURE demande_peche
ENDIF ENDIF
' '
RETURN RETURN
'
PROCEDURE recherche_references PROCEDURE recherche_references
' '
CLR i% CLR i%
@ -185,6 +189,7 @@ PROCEDURE recherche_references
paragraphe%=i% !SINON C'EST CE TEXTE QU'ON LIRA paragraphe%=i% !SINON C'EST CE TEXTE QU'ON LIRA
' '
RETURN RETURN
'
PROCEDURE affiche_image PROCEDURE affiche_image
IF ancien_objet%=objet% !SI L'OBJET CHOISI EST LE MEME QU'AVANT IF ancien_objet%=objet% !SI L'OBJET CHOISI EST LE MEME QU'AVANT
palette(palette_image$) palette(palette_image$)
@ -232,6 +237,7 @@ PROCEDURE sauvegarde
fin fin
' '
RETURN RETURN
'
PROCEDURE chargement PROCEDURE chargement
' '
LOCAL a$,b$,fichier$ LOCAL a$,b$,fichier$
@ -265,6 +271,7 @@ PROCEDURE chargement
ENDIF ENDIF
' '
RETURN RETURN
'
PROCEDURE the_end PROCEDURE the_end
CLS CLS
fichier$="textes\page.sav" fichier$="textes\page.sav"
@ -296,6 +303,7 @@ PROCEDURE pre_scrolling
' '
scrolling scrolling
RETURN RETURN
'
PROCEDURE scrolling PROCEDURE scrolling
LOCAL a$,mouvement%,souris_motif% LOCAL a$,mouvement%,souris_motif%
' '
@ -405,6 +413,7 @@ PROCEDURE init
init_routines !ON CHARGE LES ROUTINES SON ET TINY init_routines !ON CHARGE LES ROUTINES SON ET TINY
xb2%=XBIOS(2) !ADRESSE INVARIABLE DE L'ECRAN (POUR LE SCROLLING...) xb2%=XBIOS(2) !ADRESSE INVARIABLE DE L'ECRAN (POUR LE SCROLLING...)
RETURN RETURN
'
PROCEDURE init2 PROCEDURE init2
init_objets init_objets
init_peches init_peches
@ -417,12 +426,14 @@ PROCEDURE init2
chargement chargement
mouse_on mouse_on
RETURN RETURN
'
PROCEDURE init_resolution PROCEDURE init_resolution
IF XBIOS(4)<>0 !SI ON EST PAS EN BASSE RESOLUTION... IF XBIOS(4)<>0 !SI ON EST PAS EN BASSE RESOLUTION...
ALERT 3,"basse rsolution,| scrogneugneu!!",1,"fichtre!",a% ALERT 3,"basse rsolution,| scrogneugneu!!",1,"fichtre!",a%
END END
ENDIF ENDIF
RETURN RETURN
'
PROCEDURE init_indicateurs PROCEDURE init_indicateurs
nombre_indicateurs%=30 !NOMBRE MAXI D'INDICATEURS nombre_indicateurs%=30 !NOMBRE MAXI D'INDICATEURS
pointeur_indicateurs%=0 !CLEAR DU NOMBRE D'INDICATEURS pointeur_indicateurs%=0 !CLEAR DU NOMBRE D'INDICATEURS
@ -439,6 +450,7 @@ PROCEDURE init_indicateurs
indicateur!(0)=TRUE !INDICATEUR VIRTUEL TOUJOURS POSITIF indicateur!(0)=TRUE !INDICATEUR VIRTUEL TOUJOURS POSITIF
' '
RETURN RETURN
'
PROCEDURE init_objets PROCEDURE init_objets
nombre_objets%=8 !NOMBRE D'OBJETS nombre_objets%=8 !NOMBRE D'OBJETS
DIM objet$(nombre_objets%) !NOM DE CHAQUE OBJET DIM objet$(nombre_objets%) !NOM DE CHAQUE OBJET
@ -448,6 +460,7 @@ PROCEDURE init_objets
NEXT i% NEXT i%
CLR ancien_objet% CLR ancien_objet%
RETURN RETURN
'
PROCEDURE init_peches PROCEDURE init_peches
nombre_peches%=7 !NOMBRE DE PECHES nombre_peches%=7 !NOMBRE DE PECHES
DIM peche$(nombre_peches%+1) !NOM DE CHAQUE PECHE (+1 POUR L'INDIC SUITE...) DIM peche$(nombre_peches%+1) !NOM DE CHAQUE PECHE (+1 POUR L'INDIC SUITE...)
@ -456,6 +469,7 @@ PROCEDURE init_peches
READ peche$(i%) READ peche$(i%)
NEXT i% NEXT i%
RETURN RETURN
'
PROCEDURE init_icones PROCEDURE init_icones
' '
DIM icone_objets!(nombre_objets%) !ICONES ALLUM<55>ES OU ETEINTES DIM icone_objets!(nombre_objets%) !ICONES ALLUM<55>ES OU ETEINTES
@ -511,9 +525,11 @@ PROCEDURE init_icones
palette_bureau$=palette$ !ON MEMORISE LA PALETTE DE L'IMAGE... palette_bureau$=palette$ !ON MEMORISE LA PALETTE DE L'IMAGE...
' '
RETURN RETURN
'
PROCEDURE init_routines PROCEDURE init_routines
INLINE routine_decomp%,5000 INLINE routine_decomp%,5000
RETURN RETURN
'
PROCEDURE init_fenetres PROCEDURE init_fenetres
INC nombre_objets% INC nombre_objets%
' !COORDONN<4E>ES DES FENETRES DE TEXTE (UNE PAR IMAGE) ' !COORDONN<4E>ES DES FENETRES DE TEXTE (UNE PAR IMAGE)
@ -528,12 +544,14 @@ PROCEDURE init_fenetres
' '
DEC nombre_objets% !ON RAMENE LE NOMBRE D'OBJETS A 8 (9=FIN) DEC nombre_objets% !ON RAMENE LE NOMBRE D'OBJETS A 8 (9=FIN)
RETURN RETURN
'
PROCEDURE init_souris PROCEDURE init_souris
INLINE souris%,74 INLINE souris%,74
FOR i%=0 TO 73 FOR i%=0 TO 73
souris$=souris$+CHR$(PEEK(souris%+i%)) souris$=souris$+CHR$(PEEK(souris%+i%))
NEXT i% NEXT i%
RETURN RETURN
'
PROCEDURE datas_init PROCEDURE datas_init
fenetres: fenetres:
DATA 10,100,310,190 DATA 10,100,310,190
@ -606,6 +624,7 @@ PROCEDURE init_texte
init_indicateurs_texte !ET ON PASSE A LA SUITE init_indicateurs_texte !ET ON PASSE A LA SUITE
' '
RETURN RETURN
'
PROCEDURE init_indicateurs_texte PROCEDURE init_indicateurs_texte
' '
LOCAL i% LOCAL i%
@ -684,6 +703,7 @@ PROCEDURE init_indicateurs_texte
NEXT i% NEXT i%
' '
RETURN RETURN
'
PROCEDURE lookindex PROCEDURE lookindex
j1%=INSTR(index$,"œ",j%) !ON CHERCHE LE PROCHAIN PSEUDO RETURN ("œ") j1%=INSTR(index$,"œ",j%) !ON CHERCHE LE PROCHAIN PSEUDO RETURN ("œ")
IF j1%<>0 AND j1%<>LEN(index$) !SI ON EST PAS A LA FIN DE LA CHAINE IF j1%<>0 AND j1%<>LEN(index$) !SI ON EST PAS A LA FIN DE LA CHAINE
@ -815,6 +835,7 @@ PROCEDURE shoot_text
UNTIL TIMER>temps+200 UNTIL TIMER>temps+200
' '
RETURN RETURN
'
PROCEDURE shoot_ligne PROCEDURE shoot_ligne
LOCAL i% LOCAL i%
FOR i%=0 TO 8 !on scanne toute la hauteur de la ligne FOR i%=0 TO 8 !on scanne toute la hauteur de la ligne
@ -823,6 +844,7 @@ PROCEDURE shoot_ligne
NEXT i% NEXT i%
CLS !puis on efface l'cran CLS !puis on efface l'cran
RETURN RETURN
'
PROCEDURE cree_fenetre(objet%,paragraphe%) PROCEDURE cree_fenetre(objet%,paragraphe%)
LOCAL i% LOCAL i%
x%=fenetre_x%(objet%) !ON PREND LES COORDONNEES CORRESPONDANT A L'OBJET CHOISI x%=fenetre_x%(objet%) !ON PREND LES COORDONNEES CORRESPONDANT A L'OBJET CHOISI
@ -846,6 +868,7 @@ PROCEDURE cree_fenetre(objet%,paragraphe%)
display_text(i%,y%+1+i%) !ET ON AFFICHE LES PREMIERES LIGNES DU TEXTE display_text(i%,y%+1+i%) !ET ON AFFICHE LES PREMIERES LIGNES DU TEXTE
NEXT i% NEXT i%
RETURN RETURN
'
PROCEDURE display_text(ligne%,niveau%) PROCEDURE display_text(ligne%,niveau%)
PUT x%+10,niveau%,bloc_text$(ligne%),12 !on l'affiche … l'endroit voulu PUT x%+10,niveau%,bloc_text$(ligne%),12 !on l'affiche … l'endroit voulu
RETURN RETURN
@ -860,10 +883,12 @@ PROCEDURE ice_load(fichier$)
palette$=SPACE$(32) palette$=SPACE$(32)
BMOVE adresse_image%+2,VARPTR(palette$),32 BMOVE adresse_image%+2,VARPTR(palette$),32
RETURN RETURN
'
PROCEDURE ice_disp(adresse_image%) PROCEDURE ice_disp(adresse_image%)
BMOVE adresse_image%+34,XBIOS(3),32000 BMOVE adresse_image%+34,XBIOS(3),32000
~MFREE(adresse_image%) ~MFREE(adresse_image%)
RETURN RETURN
'
PROCEDURE palette(palette$) PROCEDURE palette(palette$)
~XBIOS(6,L:VARPTR(palette$)) ~XBIOS(6,L:VARPTR(palette$))
RETURN RETURN
@ -874,24 +899,29 @@ PROCEDURE hide_screen
~XBIOS(5,L:ecran%,L:-1,L:-1)!ON CACHE CE QUI SE PASSE ¶ L'<27>CRAN ~XBIOS(5,L:ecran%,L:-1,L:-1)!ON CACHE CE QUI SE PASSE ¶ L'<27>CRAN
VSYNC VSYNC
RETURN RETURN
'
PROCEDURE show_screen PROCEDURE show_screen
~XBIOS(5,L:XBIOS(2),L:XBIOS(2),W:-1) !ON R<>TABLIT L'AFFICHAGE NORMAL ~XBIOS(5,L:XBIOS(2),L:XBIOS(2),W:-1) !ON R<>TABLIT L'AFFICHAGE NORMAL
~MFREE(ecran%) !ON FERME LE BUFFER ~MFREE(ecran%) !ON FERME LE BUFFER
RETURN RETURN
'
PROCEDURE hide_screen2 PROCEDURE hide_screen2
ecran2%=MALLOC(32000) !on ouvre un buffer de la taille de l'cran ecran2%=MALLOC(32000) !on ouvre un buffer de la taille de l'cran
BMOVE XBIOS(3),ecran2%,32000 !on copie l'cran dedans BMOVE XBIOS(3),ecran2%,32000 !on copie l'cran dedans
~XBIOS(5,L:-1,L:ecran2%,L:-1)!on cache ce qui se passe … l'cran ~XBIOS(5,L:-1,L:ecran2%,L:-1)!on cache ce qui se passe … l'cran
VSYNC VSYNC
RETURN RETURN
'
PROCEDURE show_screen2 PROCEDURE show_screen2
~XBIOS(5,L:xb2%,L:xb2%,W:-1) !on rtablit l'affiche normal ~XBIOS(5,L:xb2%,L:xb2%,W:-1) !on rtablit l'affiche normal
~MFREE(ecran2%) !on ferme le buffer ~MFREE(ecran2%) !on ferme le buffer
RETURN RETURN
'
PROCEDURE mouse_on PROCEDURE mouse_on
OUT 4,8 OUT 4,8
DEFMOUSE souris$ DEFMOUSE souris$
RETURN RETURN
'
PROCEDURE mouse_off PROCEDURE mouse_off
OUT 4,18 OUT 4,18
HIDEM HIDEM
@ -911,6 +941,7 @@ PROCEDURE musique
@fin_musique @fin_musique
' '
RETURN RETURN
'
PROCEDURE init_musique PROCEDURE init_musique
son%=10 !NOMBRE MAXI DE SAMPLES son%=10 !NOMBRE MAXI DE SAMPLES
SPOKE &H484,PEEK(&H484) AND &HFE !PAS DE BIP CLAVIER SPOKE &H484,PEEK(&H484) AND &HFE !PAS DE BIP CLAVIER
@ -924,6 +955,7 @@ PROCEDURE init_musique
SETCOLOR 0,0,0,0 SETCOLOR 0,0,0,0
' '
RETURN RETURN
'
PROCEDURE rythme(rythme%) PROCEDURE rythme(rythme%)
' '
FOR i%=10 DOWNTO 1 !RAZ DES BUFFERS CONTENANT LES SAMPLES FOR i%=10 DOWNTO 1 !RAZ DES BUFFERS CONTENANT LES SAMPLES
@ -949,6 +981,7 @@ PROCEDURE rythme(rythme%)
~MFREE(ancienne_adresse%) ~MFREE(ancienne_adresse%)
' '
RETURN RETURN
'
PROCEDURE charge_son PROCEDURE charge_son
REPEAT REPEAT
READ nom_son$,frequence_son%(son%+1),sous_titre1$(son%+1),sous_titre2$(son%+1) READ nom_son$,frequence_son%(son%+1),sous_titre1$(son%+1),sous_titre2$(son%+1)
@ -965,6 +998,7 @@ PROCEDURE charge_son
UNTIL nom_son$="FIN" UNTIL nom_son$="FIN"
' '
RETURN RETURN
'
PROCEDURE clavier_sonore PROCEDURE clavier_sonore
REPEAT REPEAT
UNTIL INKEY$="" UNTIL INKEY$=""
@ -999,12 +1033,15 @@ PROCEDURE clavier_sonore
REPEAT !ON VIDE LE BUFFER CLAVIER REPEAT !ON VIDE LE BUFFER CLAVIER
UNTIL INKEY$="" UNTIL INKEY$=""
RETURN RETURN
'
PROCEDURE mix(numero_son%) PROCEDURE mix(numero_son%)
~C:routine_decomp%(L:-VARPTR(son$(numero_son%)),L:LEN(son$(numero_son%)),W:frequence_son%(numero_son%),W:100) ~C:routine_decomp%(L:-VARPTR(son$(numero_son%)),L:LEN(son$(numero_son%)),W:frequence_son%(numero_son%),W:100)
RETURN RETURN
'
PROCEDURE stop_sample PROCEDURE stop_sample
~C:routine_decomp%(L:-1) !FORCAGE DE LA FIN DU SAMPLE ~C:routine_decomp%(L:-1) !FORCAGE DE LA FIN DU SAMPLE
RETURN RETURN
'
PROCEDURE fin_musique PROCEDURE fin_musique
@stop_sample @stop_sample
~MFREE(adresse_rythme%) ~MFREE(adresse_rythme%)
@ -1012,6 +1049,7 @@ PROCEDURE fin_musique
ERASE frequence_son%() ERASE frequence_son%()
ERASE sous_titre$() ERASE sous_titre$()
RETURN RETURN
'
PROCEDURE data_fichiers_musique PROCEDURE data_fichiers_musique
musique: musique:
DATA 1cemonsi,7500,"ce monsieur!","" DATA 1cemonsi,7500,"ce monsieur!",""

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -71,110 +71,99 @@ tblUPPER hex 000102030405060708090A0B0C0D0E0F
DEBUT_DATA = * DEBUT_DATA = *
*--- Mes variables
fgTHEEND ds 2 ; LOGO
i ds 2
index ds 2
theX ds 2
theY ds 2
*--- Variables du jeu
nombre_indicateurs = 30 ; NOMBRE MAXI D'INDICATEURS nombre_indicateurs = 30 ; NOMBRE MAXI D'INDICATEURS
pointeur_indicateurs = 0 ; CLEAR DU NOMBRE D'INDICATEURS pointeur_indicateurs = 0 ; CLEAR DU NOMBRE D'INDICATEURS
nombre_paragraphes = 110 ; NOMBRE MAXI DE TEXTES nombre_paragraphes = 110 ; NOMBRE MAXI DE TEXTES
indicateur$ ds nombre_indicateurs ; NOM DES INDICATEURS UTILISES PAR MOI
indicateur! ds nombre_indicateurs ; INDICATEUR EN LUI-MEME indicateurTEXT ds nombre_indicateurs ; NOM DES INDICATEURS UTILISES PAR MOI
indicateur ds nombre_indicateurs ; INDICATEUR EN LUI-MEME
paragraphe_lu ds nombre_paragraphes paragraphe_lu ds nombre_paragraphes
indicateur_paragraphes ds nombre_paragraphes ; NUMERO DE L'INDIC CR<43>E A CHAQUE TEXTE
indicateur_paragraphes% ds nombre_paragraphes ; NUMERO DE L'INDIC CR<43>E A CHAQUE TEXTE indicateur_paragraphes_prealables ds nombre_paragraphes ; NUMERO DE L'INDIC NECESSAIRE POUR LIRE CE TEXTE
indicateur_paragraphes_prealables% ds nombre_paragraphes ; NUMERO DE L'INDIC NECESSAIRE POUR LIRE CE TEXTE
* LOGO indicateur!(0)=TRUE !INDICATEUR VIRTUEL TOUJOURS POSITIF
*--- *---
nombre_objets = 8 ; NOMBRE D'OBJETS icone_objets ds nombre_objets ; ICONES ALLUM<55>ES OU ETEINTES
objet$ ds nombre_objets ; !NOM DE CHAQUE OBJET icone_peches ds nombre_peches+1 ; (+1 POUR L'INDICATEUR DE SUITE...)
*--- *---
nombre_peches = 7 ; NOMBRE DE PECHES fenetre_x dw 10,10,10,120,10,10,10,10,10
peche$ ds nombre_peches+1 ; NOM DE CHAQUE PECHE (+1 POUR L'INDIC SUITE...) fenetre_y dw 100,100,100,10,100,100,100,10,100
fenetre_xx dw 310,310,310,310,310,310,310,200,310
fenetre_yy dw 190,190,190,190,190,190,190,190,190
*--- *---
icone_objets! ds nombre_objets ; ICONES ALLUM<55>ES OU ETEINTES nombre_objets = 8 ; NOMBRE D'OBJETS
icone_peches! ds nombre_peches+1 ; (+1 POUR L'INDICATEUR DE SUITE...)
icone_objets ds nombre_objets ; BLOCS GRAPHIQUES DES ICONES objetTEXT da objetSTR1 ; !NOM DE CHAQUE OBJET
icone_peches ds nombre_peches da objetSTR2
da objetSTR3
da objetSTR4
da objetSTR5
da objetSTR6
da objetSTR7
da objetSTR8
da objetSTR9
objet_x ds nombre_objets ; COORDONN<4E>ES DES ICONES DES OBJETS objetSTR1 asc "LUNETTES"
objet_y ds nombre_objets objetSTR2 asc "CUILLERE"
objet_xx ds nombre_objets objetSTR3 asc "FLEUR"
objet_yy ds nombre_objets objetSTR4 asc "CARNET"
objetSTR5 asc "DICO"
objetSTR6 asc "BIJOUX"
objetSTR7 asc "CLES"
objetSTR8 asc "ARGENT"
objetSTR9 asc "FIN"
peche_x ds nombre_peches ; COORDONN<4E>E DES ICONES DES PECHES ancien_objet ds 2
peche_y ds nombre_peches
peche_xx ds nombre_peches objet_x dw 238,222,195,0,27,131,276,133
peche_yy ds nombre_peches objet_y dw 51,110,0,17,55,32,19,69
objet_xx dw 283,268,266,57,106,178,319,188
objet_yy dw 88,151,39,54,103,64,50,101
*--- *---
nombre_peches = 7 ; NOMBRE DE PECHES
fenetre_x ds nombre_objets pecheTEXT da pecheSTR1 ; NOM DE CHAQUE PECHE (+1 POUR L'INDIC SUITE...)
fenetre_y ds nombre_objets da pecheSTR2
fenetre_xx ds nombre_objets da pecheSTR3
fenetre_yy ds nombre_objets da pecheSTR4
da pecheSTR5
da pecheSTR6
da pecheSTR7
da pecheSTR8
*--- pecheSTR1 asc "ORGUEIL"
pecheSTR2 asc "AVARICE"
pecheSTR3 asc "GOURMANDISE"
pecheSTR4 asc "ENVIE"
pecheSTR5 asc "LUXURE"
pecheSTR6 asc "COLERE"
pecheSTR7 asc "PARESSE"
pecheSTR8 asc "suite"
fenetres peche_x dw 184,0,46,276,92,138,230
dw 10,100,310,190 peche_y dw 162,162,162,162,162,162,162
dw 10,100,310,190 peche_xx dw 227,43,89,319,135,181,273
dw 10,100,310,190 peche_yy dw 199,199,199,199,199,199,199
dw 120,10,310,190
dw 10,100,310,190
dw 10,100,310,190
dw 10,100,310,190
dw 10,10,200,190
dw 10,100,310,190
objets
asc "LUNETTES"
asc "CUILLERE"
asc "FLEUR"
asc "CARNET"
asc "DICO"
asc "BIJOUX"
asc "CLES"
asc "ARGENT"
asc "FIN"
peches
asc "ORGUEIL"
asc "AVARICE"
asc "GOURMANDISE"
asc "ENVIE"
asc "LUXURE"
asc "COLERE"
asc "PARESSE"
asc "suite"
coordonnees_objets
dw 238,51,283,88
dw 222,110,268,151
dw 195,0,266,39
dw 0,17,57,54
dw 27,55,106,103
dw 131,32,178,64
dw 276,19,319,50
dw 133,69,188,101
coordonnees_peches
dw 184,162,227,199
dw 0,162,43,199
dw 46,162,89,199
dw 276,162,319,199
dw 92,162,135,199
dw 138,162,181,199
dw 230,162,273,199
*--- *---
bloc_texte ds 2000 bloc_texte ds 2000
*texte ds 110000
mot ds 128 mot ds 128
*--- *---

View File

@ -19,6 +19,183 @@
jsr carre jsr carre
eom eom
@t mac
lda ]1
ldy ]2
jsr t
eom
@cree_fenetre mac
lda ]1
ldx ]2
jsr cree_fenetre
eom
*-----------------------
* DATA_ERROR - OK
*-----------------------
* data_error
data_error pha
PushLong #pgmSTR1
PushLong #pgmSTR2
PushLong #errSTR3
PushLong #errSTR2
_TLTextMountVolume
pla
sec
rts
*-----------------------
* LOAD_TEXTE - OK
*-----------------------
* load_texte
load_texte
cmp #nombre_objets+1
bcc lt_1
rts
lt_1 cmp #0
bne lt_2
brl data_error
lt_2 sep #$20
ora #'0'
sta pTXT+22
rep #$20
*---
lda #pTXT
sta proOPEN+4 ; filename
jsl GSOS
dw $2010
adrl proOPEN
bcs lt_err2
lda proOPEN+2
sta proREAD+2
sta proCLOSE+2
ldy proEOF
sty proREAD+8
ldx proEOF+2
stx proREAD+10
pha
pha
phx
phy
PushWord myID
PushWord #%11000000_00001100
PushLong #0
_NewHandle
phd
tsc
tcd
lda index
dec
asl
asl
tax
lda [3]
sta ptrTXT1,x
sta proREAD+4
ldy #2
lda [3],y
sta ptrTXT1+2,x
sta proREAD+6
pld
pla
pla
bcs lt_err1
jsl GSOS
dw $2012
adrl proREAD
lt_err1 jsl GSOS
dw $2014
adrl proCLOSE
clc
lt_err2 rts
*-----------------------
* LOAD_REFERENCE - OK
*-----------------------
* load_reference
load_reference
cmp #nombre_objets+1
bcc lr_1
rts
lr_1 cmp #0
bne lr_2
brl data_error
lr_2 sep #$20
ora #'0'
sta pREF+22
rep #$20
*---
lda #pREF
sta proOPEN+4 ; filename
jsl GSOS
dw $2010
adrl proOPEN
bcs lr_err2
lda proOPEN+2
sta proREAD+2
sta proCLOSE+2
ldy proEOF
sty proREAD+8
ldx proEOF+2
stx proREAD+10
pha
pha
phx
phy
PushWord myID
PushWord #%11000000_00001100
PushLong #0
_NewHandle
phd
tsc
tcd
lda index
dec
asl
asl
tax
lda [3]
sta ptrREF1,x
sta proREAD+4
ldy #2
lda [3],y
sta ptrREF1+2,x
sta proREAD+6
pld
pla
pla
bcs lr_err1
jsl GSOS
dw $2012
adrl proREAD
lr_err1 jsl GSOS
dw $2014
adrl proCLOSE
clc
lr_err2 rts
*----------------------- *-----------------------
* GESTION DES ICONES * GESTION DES ICONES
*----------------------- *-----------------------
@ -31,16 +208,16 @@ test_icone
asl asl
tax tax
lda taskWHERE+2 ; compare le X lda taskWHERE+2 ; compare le X
cmp coordonnees_peches,x cmp peche_x,x
bcc icone_ko bcc icone_ko
lda coordonnees_peches+4,x lda peche_xx,x
cmp taskWHERE+2 cmp taskWHERE+2
bcc icone_ko bcc icone_ko
lda taskWHERE ; et le Y lda taskWHERE ; et le Y
cmp coordonnees_peches+2,x cmp peche_y,x
bcc icone_ko bcc icone_ko
lda coordonnees_peches+6,x lda peche_yy,x
cmp taskWHERE cmp taskWHERE
bcc icone_ko bcc icone_ko
@ -90,15 +267,15 @@ set_icone txa
asl asl
asl ; because we are 16-bit asl ; because we are 16-bit
tax tax
lda coordonnees_peches+2,x lda peche_y,x
sta iconToSourceRect sta iconToSourceRect
sta iconToDestPoint sta iconToDestPoint
lda coordonnees_peches,x lda peche_x,x
sta iconToSourceRect+2 sta iconToSourceRect+2
sta iconToDestPoint+2 sta iconToDestPoint+2
lda coordonnees_peches+6,x lda peche_yy,x
sta iconToSourceRect+4 sta iconToSourceRect+4
lda coordonnees_peches+4,x lda peche_xx,x
sta iconToSourceRect+6 sta iconToSourceRect+6
rts rts
@ -177,7 +354,7 @@ st_setit sta saveLANGUAGE
tax tax
lda tblLANG,x lda tblLANG,x
sta pREF+16 sta pREF+16
sta pTEXTES+16 sta pTXT+16
lda #pREF ; check file exists lda #pREF ; check file exists
sta proOPEN+4 sta proOPEN+4
@ -284,31 +461,53 @@ affiche_image
rts rts
*----------------------- *-----------------------
* * SAUVEGARDE - OK
*----------------------- *-----------------------
* sauvegarde
sauvegarde sauvegarde
rts rts
*----------------------- *-----------------------
* * CHARGEMENT - OK
*----------------------- *-----------------------
* chargement
chargement chargement
rts rts
*----------------------- *-----------------------
* * THE_END - OK
*----------------------- *-----------------------
* the_end
the_end the_end
@cree_fenetre #9;pointeur_paragraphes
jsr pre_scrolling
PushWord #0
_ClearScreen
lda #TRUE
sta fgTHEEND
rts rts
*----------------------- *-----------------------
* * PRE_SCROLLING
*----------------------- *-----------------------
* pre_scrolling
pre_scrolling pre_scrolling
sep #$20
ldx paragraphe
lda #TRUE
sta paragraphe_lu,x
rep #$20
inc paragraphes_lus
* LOGO
rts rts
*----------------------- *-----------------------
@ -326,94 +525,174 @@ verif
rts rts
*----------------------- *-----------------------
* * INIT - OK
*----------------------- *-----------------------
* init
init init PushWord #0
rts _ClearScreen
jsr init_resolution
jsr mouse_off
jmp init_routines
*----------------------- *-----------------------
* * INIT2 - OK
*----------------------- *-----------------------
init2 init2 jsr init_objets
rts jsr init_peches
jsr init_icones
jsr init_indicateurs
jsr init_fenetres
jsr init_souris
jsr init_texte
jsr chargement
jmp mouse_on
*----------------------- *-----------------------
* * INIT_RESOLUTION - OK
*----------------------- *-----------------------
init_resolution init_resolution
rts rts
*----------------------- *-----------------------
* * INIT_INDICATEURS - OK
*----------------------- *-----------------------
* init_indicateurs
init_indicateurs init_indicateurs
sep #$20
ldx #0
]lp stz indicateurTEXT,x
stz indicateur,x
inx
cpx #nombre_indicateurs
bcc ]lp
ldx #0
]lp stz paragraphe_lu,x
stz indicateur_paragraphes,x
stz indicateur_paragraphes_prealables,x
inx
cpx #nombre_paragraphes
bcc ]lp
ldx #0
lda #TRUE
sta indicateur,x
rep #$20
rts rts
*----------------------- *-----------------------
* * INIT_OBJETS - OK
*----------------------- *-----------------------
* init_objets
init_objets init_objets
stz ancien_objet
rts rts
*----------------------- *-----------------------
* * INIT_PECHES - OK
*----------------------- *-----------------------
* init_peches
init_peches init_peches
rts rts
*----------------------- *-----------------------
* * INIT_ICONES - OK
*----------------------- *-----------------------
* init_icones
init_icones init_icones
PushWord #0
_ClearScreen
@loadfile #pFOND;ptrFOND
@loadfile #pICONES;ptrICONES
rts rts
*----------------------- *-----------------------
* * INIT_ROUTINES - OK
*----------------------- *-----------------------
* init_routines
init_routines init_routines
rts rts
*----------------------- *-----------------------
* * INIT_FENETRES - OK
*----------------------- *-----------------------
* init_fenetres
init_fenetres init_fenetres
rts rts
*----------------------- *-----------------------
* * INIT_SOURIS - OK
*----------------------- *-----------------------
* init_souris
init_souris init_souris
PushLong #monCURSEUR
_SetCursor
rts rts
*----------------------- *-----------------------
* * DATAS_INIT - OK
*----------------------- *-----------------------
* datas_init
datas_init datas_init
rts rts
*----------------------- *-----------------------
* * INIT_TEXTE - OK
*----------------------- *-----------------------
* init_texte
init_texte init_texte
lda #1
]lp sta index
lda index ; fait patienter
jsr presentation
lda index ; charge le texte
jsr load_texte
lda index ; charge la rŽfŽrence
jsr load_reference
lda #4
jsr nowWAIT
lda index
inc
cmp #nombre_objets+1
bcc ]lp
rts rts
*----------------------- *-----------------------
* * INIT_INDICATEURS_TEXTE
*----------------------- *-----------------------
* init_indicateurs_texte
init_indicateurs_texte init_indicateurs_texte
sep #$20
ldx #0
]lp stz paragraphe,x
inx
cpx #nombre_paragraphes
bcc ]lp
rep #$20
stz pointeur_paragraphes
stz paragraphes_lus
* LOGO
rts rts
*----------------------- *-----------------------
@ -430,7 +709,7 @@ lookindex
* A: numŽro du texte * A: numŽro du texte
presentation presentation
cmp #9 ; 1..8 cmp #nombre_objets+1
bcc pr_1 bcc pr_1
rts rts
pr_1 cmp #0 pr_1 cmp #0
@ -460,40 +739,51 @@ tbl_pres da pr_case_1
*--- *---
pr_case_1 pr_case_1 @carre #prSTR11;#100;#80;#$0771
@carre #prSTR11;#100;#80;#$0771
@carre #prSTR12;#100;#120;#$0774 @carre #prSTR12;#100;#120;#$0774
PushWord #15
_SetForeColor
PushWord #0
_SetBackColor
@t #prSTR13;#21
@t #prSTR14;#22
@t #prSTR15;#23
rts rts
pr_case_2 pr_case_2 @carre #prSTR21;#25;#20;#$0437
@carre #prSTR21;#25;#20;#$0437
rts rts
pr_case_3 pr_case_3 @carre #prSTR31;#25;#180;#$0275
@carre #prSTR31;#25;#180;#$0275
rts rts
pr_case_4 pr_case_4 @carre #prSTR41;#100;#0;#$0743
@carre #prSTR41;#100;#0;#$0743
rts rts
pr_case_5 pr_case_5 @carre #prSTR51;#150;#20;#$0743
@carre #prSTR51;#150;#20;#$0743
@carre #prSTR52;#50;#100;#$0743 @carre #prSTR52;#50;#100;#$0743
@carre #prSTR53;#70;#180;#$0177 @carre #prSTR53;#70;#180;#$0177
rts rts
pr_case_6 pr_case_6 @carre #prSTR61;#0;#100;#$0607
@carre #prSTR61;#0;#100;#$0607
@carre #prSTR62;#20;#150;#$0607 @carre #prSTR62;#20;#150;#$0607
rts rts
pr_case_7 pr_case_7 @carre #prSTR71;#0;#99;#$0073
@carre #prSTR71;#0;#99;#$0073
PushWord #15
_SetForeColor
PushWord #0
_SetBackColor
@t #prSTR72;#20
@t #prSTR73;#21
@t #prSTR74;#22
@t #prSTR75;#23
rts rts
pr_case_8 pr_case_8 @carre #prSTR81;#100;#180;#$0555
@carre #prSTR81;#100;#180;#$0555
rts rts
*--- *---
@ -501,16 +791,21 @@ pr_case_8
prSTR11 str 'la belle zohra' prSTR11 str 'la belle zohra'
prSTR12 str '(morceaux de bravoure)' prSTR12 str '(morceaux de bravoure)'
prSTR13 str 'fran'8d'ois coulon' prSTR13 str 'fran'8d'ois coulon'
prSTR14 str 'les logiciels d'27'en face 1992.reproduction interdite' prSTR14 str 'les logiciels d'27'en face 1992'
prSTR15 str 'reproduction interdite'
prSTR21 str 'graphismes faustino ribeiro' prSTR21 str 'graphismes faustino ribeiro'
prSTR31 str 'programmation pascal piat' prSTR31 str 'programmation pascal piat'
prSTR41 str 'musique erik ecqier' prSTR41 str 'musique erik ecqier'
prSTR51 str 'un grand merci '88':' prSTR51 str 'un grand merci '88':'
prSTR52 str 'emmanuel talmy' prSTR52 str 'emmanuel talmy'
prSTR53 str 'sans qui ce logiciel... etc.' prSTR53 str 'sans qui ce logiciel... etc.'
prSTR61 str 'miss zohra c'8e'lestibus est habill'8e'...' prSTR61 str 'miss zohra c'8e'lestibus est habill'8e'e...'
prSTR62 str '...par aristide aristibus' prSTR62 str '...par aristide aristibus'
prSTR71 str 8e'crit et r'8e'alis'8e' par fran'8d'ois coulon' prSTR71 str 8e'crit et r'8e'alis'8e' par fran'8d'ois coulon'
prSTR72 str 'Version Apple IIgs'
prSTR73 str 'par'
prSTR74 str 'Brutal Deluxe Software'
prSTR75 str 'Antoine Vignau & Olivier Zardini'
prSTR81 str 88' la famille paspire...' prSTR81 str 88' la famille paspire...'
*----------------------- *-----------------------
@ -525,9 +820,7 @@ prSTR81 str 88' la famille paspire...'
* couleur$ est pour le carrŽ * couleur$ est pour le carrŽ
* le texte est toujours en jaune * le texte est toujours en jaune
carre lda 3,s carre lda 5,s
sta carreRGB
lda 5,s
sta carreRECT sta carreRECT
clc clc
adc #12 adc #12
@ -541,7 +834,82 @@ carre lda 3,s
sta dpFROM sta dpFROM
lda 11,s lda 11,s
sta dpFROM+2 sta dpFROM+2
*--- la couleur du GS
lda 3,s ; R
and #$0f00
asl
sta carreRGB
lda 3,s ; G
and #$00f0
asl
ora carreRGB
sta carreRGB
lda 3,s ; B
and #$000f
asl
ora carreRGB
sta carreRGB
*--- draw square
PushWord #0 ; on met du RGB
PushWord index
PushWord carreRGB
_SetColorEntry
ldx index
lda carreRECT ; la couleur si > 100
cmp #100+1
bcs carre_1
ldx #8 ; le rose sinon
carre_1 phx
_SetSolidPenPat
lda carreRECT+2
pha
lda carreRECT
pha
_MoveTo
PushLong #carreRECT
_PaintRect
*--- print text in bold typeface
pha
_GetTextFace
pha
_GetForeColor
pha
_GetBackColor
PushWord #%00000000_00000001 ; bold
_SetTextFace
PushWord #15
_SetForeColor
PushWord #0
_SetBackColor
lda carreRECT+2
clc
adc #15
pha
lda carreRECT
clc
adc #8
pha
_MoveTo
PushLong dpFROM
_DrawString
_SetBackColor
_SetForeColor
_SetTextFace ; restore
carreEXIT lda 1,s carreEXIT lda 1,s
plx plx
plx plx
@ -553,13 +921,13 @@ carreEXIT lda 1,s
*--- *---
carreRGB ds 2 ; couleur du carre carreRGB ds 2 ; couleur du carre (4 bits)
carreRECT ds 2 ; y0 carreRECT ds 2 ; y0
ds 2 ; x0 ds 2 ; x0
ds 2 ; y0+12 ds 2 ; y0+12
ds 2 ; y0+12 ds 2 ; y0+12
*----------------------- *-----------------------
* RAMDISK - OK * RAMDISK - OK
*----------------------- *-----------------------
@ -582,9 +950,11 @@ shoot_ligne
rts rts
*----------------------- *-----------------------
* * CREE_FENETRE
*----------------------- *-----------------------
* cree_fenetre(objet%,paragraphe%) * cree_fenetre(objet%,paragraphe%)
* A : objet
* X : paragraphe
cree_fenetre cree_fenetre
rts rts
@ -598,7 +968,7 @@ display_text
rts rts
*----------------------- *-----------------------
* * ICE_LOAD - OK
*----------------------- *-----------------------
* ice_load(fichier$) * ice_load(fichier$)
@ -606,7 +976,7 @@ ice_load
rts rts
*----------------------- *-----------------------
* * ICE_DISP - OK
*----------------------- *-----------------------
* ice_disp(adresse_image%) * ice_disp(adresse_image%)
@ -614,7 +984,7 @@ ice_disp
rts rts
*----------------------- *-----------------------
* * PALETTE - OK
*----------------------- *-----------------------
* palette(palette$) * palette(palette$)
@ -650,17 +1020,21 @@ show_screen2
rts rts
*----------------------- *-----------------------
* * MOUSE_ON - OK
*----------------------- *-----------------------
* mouse_on
mouse_on mouse_on
_ShowCursor
rts rts
*----------------------- *-----------------------
* * MOUSE_OFF - OK
*----------------------- *-----------------------
* mouse_off
mouse_off mouse_off
_HideCursor
rts rts
*----------------------- *-----------------------
@ -735,26 +1109,29 @@ data_fichiers_musique
* A: @texte$ * A: @texte$
* Y: ligne% * Y: ligne%
t PushWord #^t ; pointer to string t sty theY
PushWord #^t ; pointer to string
pha pha
tya ; pour MoveTo
asl
asl
asl
pha ; Y
PushWord #0 ; get string length PushWord #0 ; get string length
PushWord #^t PushWord #^t
pha pha
_StringWidth ; return left on stack _StringWidth ; return left on stack
lda #160 lda #320 ; why 160?
sec sec
sbc 1,s sbc 1,s
bpl t1 bpl t1
lda #0 lda #0
t1 sta 1,s ; X t1 lsr
sta 1,s ; X
lda theY ; pour MoveTo
asl
asl
asl
pha ; Y
_MoveTo _MoveTo
_DrawString _DrawString
rts rts
@ -765,3 +1142,45 @@ t1 sta 1,s ; X
fin fin
rts rts
*-----------------------
* MON BEAU CURSEUR
*-----------------------
monCURSEUR
dw 16,4
hex 0000000000000000 ; data
hex 00000000000000F0
hex 000000000000FFF0
hex 000000000000F0F0
hex 0000000000FFF0F0
hex 00000000FFF00FF0
hex 000000FFF0000F00
hex 0000FFF00000FF00
hex 000FF0000000F000
hex 00FF0000000FF000
hex 00F00000000F0000
hex 00F0000000FF0000
hex 00F0000000F00000
hex 00F000000FF00000
hex 00000000FF000000
hex 0000FFFFF0000000
hex 0000000000000000 ; mask
hex 0000000000000FF0
hex 00000000000FFFF0
hex 000000000FFF0F00
hex 0000000FFF00FF00
hex 00000FFF0000F000
hex 000FFF00000FF000
hex 00FF0000000F0000
hex 0FF0000000FF0000
hex 0F00000000F00000
hex 0F0000000FF00000
hex 0F0000000F000000
hex 0F000000FF000000
hex 0FF0000FF0000000
hex 00FFFFFF00000000
hex 0000000000000000
dw 2,14
*--- The end

View File

@ -187,22 +187,6 @@ okMEM1 sty ptrIMAGE
sty ptrUNPACK sty ptrUNPACK
stx ptrUNPACK+2 stx ptrUNPACK+2
*--- 64K pour les REFERENCES des textes
jsr make64KB
bcs koMEM
sty ptrREF
stx ptrREF+2
*--- 64K pour les TEXTES
jsr make64KB
bcs koMEM
sty ptrTEXTES
stx ptrTEXTES+2
*--- Chargement des outils *--- Chargement des outils
pha pha
@ -254,18 +238,17 @@ okTOOL _HideMenuBar
* INITIALISATIONS * INITIALISATIONS
*---------------------------------------- *----------------------------------------
entryPOINT
jsr set_language jsr set_language
jsr init jsr init
jsr musique jsr musique
jsr init2 jsr init2
jsr TWILIGHToff
*----------------------- *-----------------------
* MAIN * MAIN
*----------------------- *-----------------------
entryPOINT
@loadfile #pFOND;ptrFOND
@loadfile #pICONES;ptrICONES
@fadein ptrFOND;#TRUE @fadein ptrFOND;#TRUE
jsr waitEVENT jsr waitEVENT
@fadein ptrICONES;#TRUE @fadein ptrICONES;#TRUE
@ -592,6 +575,7 @@ doQUIT
meQUIT meQUIT
* jsr stopNTP * jsr stopNTP
jsr TWILIGHTon
meQUIT0 PushWord #refIsHandle meQUIT0 PushWord #refIsHandle
PushLong SStopREC PushLong SStopREC
@ -614,6 +598,113 @@ meQUIT1 PushWord myID
monitor brk $bd monitor brk $bd
*----------------------------------------
* TWILIGHT
*----------------------------------------
*----------------------------
* TWILIGHToff
* Turns Twilight II off
*
* Entry:
* n/a
*
* Exit:
* n/a
*
*----------------------------
lenV1 = $49bf
lenV2 = $539a
offV1 = $117a
offV2 = $154c
TWILIGHToff
ldal $e11600
sta Debut
ldal $e11602
sta Debut+2
TWILIGHToff1
ldy #8
lda [Debut],y
ldx #offV1
cmp #lenV1
beq TWILIGHToff2
ldx #offV2
cmp #lenV2
bne TWILIGHToff3
TWILIGHToff2
stx offTWILIGHT
lda [Debut]
sta Arrivee
sta ptrTWILIGHT
ldy #2
lda [Debut],y
sta Arrivee+2
sta ptrTWILIGHT+2
txy
lda [Arrivee],y
cmp #$0ef0
bne TWILIGHToff3
lda #$0e80
sta [Arrivee],y
inc fgTWILIGHT
rts
TWILIGHToff3
ldy #16
lda [Debut],y
tax
iny
iny
lda [Debut],y
sta Debut+2
txa
sta Debut
lda Debut
ora Debut+2
bne TWILIGHToff1
rts
*----------------------------
* TWILIGHTon
* Turns Twilight II on
*
* Entry:
* n/a
*
* Exit:
* n/a
*
*----------------------------
TWILIGHTon
lda fgTWILIGHT
bne TWILIGHTon1
rts
TWILIGHTon1
lda ptrTWILIGHT
sta Arrivee
lda ptrTWILIGHT+2
sta Arrivee+2
ldy offTWILIGHT
lda #$0ef0
sta [Arrivee],y
rts
*--- Twilight II
ptrTWILIGHT ds 4
fgTWILIGHT ds 2
offTWILIGHT ds 2
*---------------------------------------- *----------------------------------------
* MEMOIRE * MEMOIRE
*---------------------------------------- *----------------------------------------
@ -1048,8 +1139,23 @@ ptrIMAGE ds 4 ; $0000: where a scene image is loaded
ptrFOND ds 4 ; $0000: fond de jeu ptrFOND ds 4 ; $0000: fond de jeu
ptrICONES adrl $8000 ; $0000: fond d'icônes du jeu ptrICONES adrl $8000 ; $0000: fond d'icônes du jeu
ptrUNPACK ds 4 ; $0000: where the background picture is laoded ptrUNPACK ds 4 ; $0000: where the background picture is laoded
ptrREF ds 4 ; les index des textes
ptrTEXTES ds 4 ; les textes ptrREF1 ds 4 ; les pointeurs des references
ptrREF2 ds 4
ptrREF3 ds 4
ptrREF4 ds 4
ptrREF5 ds 4
ptrREF6 ds 4
ptrREF7 ds 4
ptrREF8 ds 4
ptrTXT1 ds 4 ; les pointeurs des textes
ptrTXT2 ds 4
ptrTXT3 ds 4
ptrTXT4 ds 4
ptrTXT5 ds 4
ptrTXT6 ds 4
ptrTXT7 ds 4
ptrTXT8 ds 4
temp ds 2 temp ds 2
@ -1245,7 +1351,7 @@ pIMAGE strl '1/data/images/PIC1.PIC'
pFOND strl '1/data/images/PIC10.PIC' pFOND strl '1/data/images/PIC10.PIC'
pICONES strl '1/data/images/PIC11.PIC' pICONES strl '1/data/images/PIC11.PIC'
pREF strl '1/data/textes/fr/REF1.TXT' pREF strl '1/data/textes/fr/REF1.TXT'
pTEXTES strl '1/data/textes/fr/TXT1.TXT' pTXT strl '1/data/textes/fr/TXT1.TXT'
*--- offset to aventure number is +25 *--- offset to aventure number is +25