mirror of
https://github.com/antoinevignau/source.git
synced 2025-02-19 01:30:47 +00:00
v1
"It's the end"
This commit is contained in:
parent
729e3d4afd
commit
f4dc12d669
@ -1041,8 +1041,7 @@ PROCEDURE mots_clicables(texte$)
|
||||
ENDIF
|
||||
'
|
||||
ENDIF
|
||||
INC pointeur_mot% !SI LE MOT N'EST PAS ISOLE (EX="CLIC" et "CLICABLE") ON
|
||||
CONTINUE LA RECHERCHE
|
||||
INC pointeur_mot% !SI LE MOT N'EST PAS ISOLE (EX="CLIC" et "CLICABLE") ON CONTINUE LA RECHERCHE
|
||||
UNTIL affichage!=TRUE !SI LE MOT A ETE SURLIGNE (OU DU MOINS QU'IL EXISTE)
|
||||
CLR pointeur_mot%,affichage! !ON SORT...
|
||||
NEXT i%
|
||||
|
Binary file not shown.
Binary file not shown.
@ -1 +0,0 @@
|
||||
ToutADisparu=Type(B3),AuxType(DB00),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)
|
File diff suppressed because it is too large
Load Diff
@ -20,7 +20,6 @@ tblTEXTES ds 4*NB_TEXTES
|
||||
*--- Variables Atari ST
|
||||
|
||||
nbTEXTES ds 2
|
||||
nbTEXTES2 ds 2 ; nombre de textes indiquŽ dans le fichier .TEX
|
||||
i ds 2 ; un index
|
||||
nb_lignes ds 2 ; nombre de lignes de texte (c'est pour centrer)
|
||||
localOFFSET ds 2 ; offset de chaque rangŽe
|
||||
@ -32,8 +31,7 @@ rvb1 ds 2 ; index 1/5/9/D
|
||||
rvb2 ds 2 ; index 2/6/A/E
|
||||
index_mot ds 2 ; un autre index qui pointe
|
||||
nb_mots ds 2 ; nombre de mots dans la scene
|
||||
mot_clique ds 2 ; index du mot cliquŽ
|
||||
mot_ancien ds 2 ; index du mot prŽcŽdemment cliquŽ
|
||||
numero_mot ds 2 ; index du mot cliquŽ apr<70>s condition
|
||||
valeur_condition ds 2 ; valeur condition 2B xx ou 2D yy
|
||||
aventure ds 2
|
||||
nombre_scenes ds 2
|
||||
@ -45,6 +43,8 @@ escape ds 2 ; BOOL - TRUE or FALSE
|
||||
fgSUITEFORCEE ds 2 ; BOOL - TRUE or FALSE
|
||||
|
||||
mot ds 128 ; le mot ˆ chercher (jusqu'au caract<63>re espace)
|
||||
mot_upper ds 128 ; le m<>me mot mais en IIgs majusculanisŽ
|
||||
option_mot ds 128 ; la copie du premier mot cherchŽ
|
||||
ligne_commentaire ; la phrase de commentaire "mot" : explication
|
||||
ds 128
|
||||
|
||||
@ -52,8 +52,7 @@ ligne_commentaire ; la phrase de commentaire "mot" : explication
|
||||
|
||||
ligne_max ds max_colonnes ; une ligne du texte
|
||||
texte ds max_colonnes*max_lignes ; the text from the .TXT file
|
||||
texte_liens ds max_colonnes*max_lignes ; FALSE: not a link, TRUE est un mot cliquable
|
||||
texte_index ds max_colonnes*max_lignes ; numŽro du mot
|
||||
texte_color ds max_colonnes*max_lignes ; FALSE: not a link, TRUE est un mot cliquable
|
||||
texte_final ds max_colonnes*max_lignes ; the final text - known as b$ in Atari ST
|
||||
ds 2
|
||||
|
||||
|
@ -25,8 +25,7 @@ colorWHITE = 15
|
||||
* load_font
|
||||
*-----------------------
|
||||
|
||||
load_font
|
||||
jsr font_it
|
||||
load_font jsr font_it
|
||||
bcc lf_ok
|
||||
|
||||
pha
|
||||
@ -41,8 +40,7 @@ lf_ok rts
|
||||
|
||||
*--- Really load the font
|
||||
|
||||
font_it
|
||||
PushWord #$0A00 ; Taille 10
|
||||
font_it PushWord #$0A00 ; Taille 10
|
||||
PushWord #$0016 ; Courier
|
||||
PushWord #0
|
||||
_InstallFont
|
||||
@ -185,6 +183,11 @@ load_textes
|
||||
tya
|
||||
jsr unpackLZ4
|
||||
|
||||
lda lenDATA
|
||||
sta proEOF
|
||||
lda lenDATA+2
|
||||
sta proEOF+2
|
||||
|
||||
PushLong ptrIMAGE
|
||||
PushLong ptrTEXTES
|
||||
PushLong lenDATA
|
||||
@ -224,11 +227,7 @@ it1 lda ptrTEXTES
|
||||
adc proEOF+2
|
||||
sta dpTO+2
|
||||
|
||||
*--- Nombre de textes en little endian
|
||||
|
||||
lda [dpFROM] ; le premier word est le nombre de textes
|
||||
xba
|
||||
sta nbTEXTES2 ; pour comparer avec notre valeur
|
||||
*--- Saute le nombre de textes (en little endian)
|
||||
|
||||
lda dpFROM ; += 2
|
||||
clc
|
||||
@ -281,11 +280,20 @@ it5 lda dpFROM+2 ; did we reach the end of the file?
|
||||
* get_textes(textes%)
|
||||
*-----------------------
|
||||
|
||||
get_textes cmp #0
|
||||
get_textes lda scene_actuelle
|
||||
beq get_textes1
|
||||
cmp nbTEXTES
|
||||
bcc get_textes2
|
||||
beq get_textes2
|
||||
|
||||
pha
|
||||
PushLong #pgmSTR1
|
||||
PushLong #pgmSTR2
|
||||
PushLong #errSTR3
|
||||
PushLong #errSTR2
|
||||
_TLTextMountVolume
|
||||
pla
|
||||
|
||||
get_textes1 sec
|
||||
rts
|
||||
|
||||
@ -333,7 +341,7 @@ generique jsr switch_640
|
||||
@cprint #gen_str5;17
|
||||
@cprint #gen_str6;18
|
||||
|
||||
jsr waitEVENT
|
||||
jsr attente
|
||||
|
||||
_SetBackColor
|
||||
_SetForeColor
|
||||
@ -356,8 +364,7 @@ gen_str8 asc 'Antoine Vignau & Olivier Zardini'00
|
||||
*-----------------------
|
||||
* tag
|
||||
|
||||
tag
|
||||
PushLong #old_pattern
|
||||
tag PushLong #old_pattern
|
||||
_GetPenPat
|
||||
|
||||
PushLong #the_pattern ; blue pattern
|
||||
@ -446,6 +453,7 @@ ca_restart lda escape
|
||||
|
||||
jsr switch_320
|
||||
|
||||
lda #TRUE
|
||||
ldx ptrMENU+2
|
||||
ldy ptrMENU
|
||||
jsr fadeIN
|
||||
@ -491,7 +499,7 @@ ca_exit PushLong #old_pattern
|
||||
|
||||
*----------- Wait for a click
|
||||
|
||||
ca_choice jsr waitEVENT
|
||||
ca_choice jsr attente
|
||||
cmp #mouseDownEvt
|
||||
bne ca_choice
|
||||
|
||||
@ -915,8 +923,8 @@ prepare_texte
|
||||
]lp lda #texteSPACE
|
||||
sta texte_final,x
|
||||
lda #colorBLACK
|
||||
sta texte_liens,x
|
||||
stz texte_index,x
|
||||
sta texte_color,x
|
||||
* stz texte_index,x
|
||||
inx
|
||||
cpx #max_colonnes*max_lignes
|
||||
bcc ]lp
|
||||
@ -1175,6 +1183,7 @@ affiche_texte
|
||||
|
||||
* et on affiche enfin
|
||||
|
||||
lda #TRUE
|
||||
ldx ptrFOND+2
|
||||
ldy ptrFOND
|
||||
jsr fadeIN
|
||||
@ -1185,7 +1194,7 @@ affiche_texte
|
||||
PushWord #modeForeCopy
|
||||
_SetTextMode
|
||||
|
||||
PushLong #texte_liens
|
||||
PushLong #texte_color
|
||||
PushLong #texte_final
|
||||
PushWord #3 ; x
|
||||
PushWord printY ; y
|
||||
@ -1203,7 +1212,7 @@ affiche_texte
|
||||
debut_aventure
|
||||
lda #-1
|
||||
sta scene_ancienne
|
||||
sta mot_ancien
|
||||
* sta mot_ancien
|
||||
|
||||
lda #$d2 ; initialise la cha”ne de commentaire
|
||||
sta ligne_commentaire
|
||||
@ -1259,19 +1268,18 @@ fin rts
|
||||
* nouvelle_scene(scene ˆ charger)
|
||||
|
||||
nouvelle_scene
|
||||
cmp #0 ; not 0
|
||||
lda scene_actuelle
|
||||
beq ns_99
|
||||
cmp scene_ancienne
|
||||
beq ns_98
|
||||
* cmp scene_ancienne
|
||||
* beq ns_98
|
||||
|
||||
ldx scene_actuelle
|
||||
stx scene_ancienne
|
||||
* ldx scene_actuelle
|
||||
* stx scene_ancienne
|
||||
|
||||
dec
|
||||
tax
|
||||
lda #TRUE
|
||||
sep #$20
|
||||
sta scene_visitee,x
|
||||
sta scene_visitee-1,x
|
||||
rep #$20
|
||||
|
||||
ns_98 lda #FALSE
|
||||
@ -1279,224 +1287,7 @@ ns_98 lda #FALSE
|
||||
|
||||
ns_99 rts
|
||||
|
||||
*-----------------------
|
||||
* CLIC_MOT - OK
|
||||
*-----------------------
|
||||
* clic_mot
|
||||
* on regarde sur quel mot on a cliquŽ
|
||||
|
||||
clic_mot
|
||||
lda taskWHERE+2 ; X
|
||||
cmp #marge_gauche*largeur_caractere
|
||||
bcc tc_ko
|
||||
cmp #640-{2*largeur_caractere}
|
||||
bcs tc_ko
|
||||
|
||||
sec
|
||||
sbc #marge_gauche*largeur_caractere
|
||||
clc
|
||||
adc #7
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
sta motX
|
||||
pha
|
||||
|
||||
lda taskWHERE ; Y
|
||||
sec
|
||||
sbc offsetY ; dŽcalage liŽ au centrage du texte
|
||||
clc
|
||||
adc #9
|
||||
asl
|
||||
tax
|
||||
lda y_text2,x
|
||||
clc
|
||||
adc motY
|
||||
sta motY2 ; la ligne
|
||||
lda y_text,x
|
||||
sta motOFFSET ; l'offset dans le texte
|
||||
clc
|
||||
adc 1,s
|
||||
tax
|
||||
pla
|
||||
|
||||
lda texte_index,x
|
||||
and #$ff
|
||||
bne tc_2
|
||||
tc_ko sec ; pas de mot
|
||||
rts
|
||||
|
||||
*--- on a un mot
|
||||
|
||||
tc_2 ldx mot_clique ; on sauvegarde l'ancien mot
|
||||
stx mot_ancien
|
||||
sta mot_clique ; et le nouveau
|
||||
|
||||
lda motOFFSET ; on en a encore besoin
|
||||
clc
|
||||
adc #texte_final
|
||||
sta dpFROM
|
||||
|
||||
*- on cherche le dŽbut
|
||||
|
||||
ldy motX
|
||||
]lp cpy #0 ; condition de sortie : on est ˆ gauche
|
||||
beq tc_debut
|
||||
lda (dpFROM),y
|
||||
and #$ff
|
||||
cmp #'A'-1 ; instrSPACE
|
||||
bcc tc_debutok ; beq
|
||||
dey
|
||||
bra ]lp
|
||||
|
||||
tc_debutok iny
|
||||
tc_debut sty motX ; on a le debut
|
||||
|
||||
ldx #0
|
||||
sep #$20
|
||||
]lp cpy #max_colonnes
|
||||
bcs tc_fin
|
||||
lda (dpFROM),y
|
||||
cmp #'A'-1 ; #instrSPACE
|
||||
bcc tc_fin ; beq
|
||||
sta mot,x
|
||||
iny
|
||||
inx
|
||||
bne ]lp ; on a recopiŽ le mot
|
||||
|
||||
tc_fin stz mot,x ; fin de cha”ne
|
||||
rep #$20
|
||||
|
||||
lda motX ; corrige la marge
|
||||
clc
|
||||
adc #marge_gauche
|
||||
sta motX
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
*-----------------------
|
||||
* AFFICHE_COMMENTAIRE
|
||||
*-----------------------
|
||||
* affiche_commentaire
|
||||
|
||||
affiche_commentaire
|
||||
cmp #0
|
||||
bne ac_1
|
||||
rts
|
||||
|
||||
ac_1 dec ; prend la scene
|
||||
pha ; calcul l'index dans la dimension NB_MOTS
|
||||
pha
|
||||
pha ; index de sc<73>ne
|
||||
PushWord #NB_MOTS ; taille d'une dimension
|
||||
_Multiply
|
||||
|
||||
lda 1,s ; calcule l'offset pour les deux tableaux utiles
|
||||
asl
|
||||
sta 1,s
|
||||
|
||||
lda mot_clique
|
||||
dec
|
||||
asl
|
||||
clc
|
||||
adc 1,s
|
||||
sta localOFFSET
|
||||
pla
|
||||
pla
|
||||
|
||||
*--- on construit la cha”ne
|
||||
|
||||
* 1- le mot
|
||||
|
||||
lda localOFFSET
|
||||
clc
|
||||
adc #fonction_mots
|
||||
sta dpFROM
|
||||
lda (dpFROM)
|
||||
sta dpINDEX
|
||||
lda ptrINDEX+2
|
||||
sta dpINDEX+2
|
||||
|
||||
sep #$20
|
||||
ldy #0
|
||||
]lp lda [dpINDEX],y
|
||||
cmp #instrSPACE
|
||||
beq ac_2
|
||||
sta ligne_commentaire+1,y
|
||||
iny
|
||||
bne ]lp
|
||||
|
||||
* 2- la sŽparation
|
||||
|
||||
ac_2 tyx
|
||||
rep #$20
|
||||
lda #$20d3 ; double quote fermant + espace "-" -"
|
||||
sta ligne_commentaire+1,x
|
||||
lda #$203a ; deux-points + espace "-: -"
|
||||
sta ligne_commentaire+3,x
|
||||
|
||||
* 3- le commentaire
|
||||
|
||||
lda localOFFSET
|
||||
clc
|
||||
adc #phrase
|
||||
sta dpFROM
|
||||
lda (dpFROM)
|
||||
sta dpINDEX
|
||||
lda ptrINDEX+2
|
||||
sta dpINDEX+2
|
||||
|
||||
sep #$20
|
||||
ldy #0
|
||||
]lp lda [dpINDEX],y
|
||||
beq ac_3
|
||||
sta ligne_commentaire+5,x
|
||||
iny
|
||||
inx
|
||||
cpx #126 ; len max
|
||||
bcc ]lp
|
||||
|
||||
ac_3 stz ligne_commentaire+5,x ; pour finir
|
||||
|
||||
rep #$20
|
||||
|
||||
*--- PrŽpare l'Žcran
|
||||
|
||||
PushLong #old_pattern
|
||||
_GetPenPat
|
||||
|
||||
pha
|
||||
_GetForeColor
|
||||
|
||||
pha
|
||||
_GetTextMode
|
||||
|
||||
PushLong #black_pattern ; black pattern
|
||||
_SetPenPat
|
||||
|
||||
PushLong #commentRECT
|
||||
_PaintRect
|
||||
|
||||
PushWord #15
|
||||
_SetForeColor
|
||||
|
||||
PushWord #modeForeCopy
|
||||
_SetTextMode
|
||||
|
||||
ldx #^ligne_commentaire
|
||||
ldy #ligne_commentaire
|
||||
lda #19
|
||||
jsr cprint
|
||||
|
||||
_SetTextMode
|
||||
_SetForeColor
|
||||
_SetPenPat
|
||||
rts
|
||||
|
||||
*---
|
||||
|
||||
commentRECT dw 182,16,192,623
|
||||
mx %00
|
||||
|
||||
*-----------------------
|
||||
* SURLIGNER_MOT
|
||||
@ -1914,7 +1705,7 @@ attente jmp waitEVENT ; LoGo - check if we support keypresses as well
|
||||
*-----------------------
|
||||
* image(scene ˆ charger)
|
||||
|
||||
image cmp #0 ; not 0
|
||||
image lda scene_actuelle ; not 0
|
||||
beq image_ko
|
||||
dec
|
||||
asl
|
||||
@ -1994,10 +1785,13 @@ affiche_image
|
||||
|
||||
ai_1 jsr switch_320
|
||||
jsr noircit_ecran
|
||||
|
||||
lda #TRUE
|
||||
ldx ptrIMAGE+2
|
||||
ldy ptrIMAGE
|
||||
jsr fadeIN
|
||||
jsr waitEVENT
|
||||
|
||||
jsr attente
|
||||
jsr fadeOUT ; noircit_ecran
|
||||
jmp switch_640
|
||||
|
||||
@ -2007,7 +1801,7 @@ ai_1 jsr switch_320
|
||||
* suite_forcee(scene)
|
||||
|
||||
suite_forcee
|
||||
cmp #0
|
||||
lda scene_actuelle
|
||||
beq sf_false
|
||||
|
||||
dec ; prend la scene
|
||||
@ -2029,14 +1823,33 @@ suite_forcee
|
||||
lda ptrINDEX+2
|
||||
sta dpINDEX+2 ; et met son pointeur 32-bits
|
||||
|
||||
ldy #6-2 ; len('suite ') sur 16-bits
|
||||
* ldy #6-2 ; len('suite ') sur 16-bits
|
||||
*]lp lda [dpINDEX],y
|
||||
* sta mot,y
|
||||
* cmp strSUITE,y
|
||||
* bne sf_false
|
||||
* dey
|
||||
* dey
|
||||
* bpl ]lp
|
||||
|
||||
lda #0
|
||||
tax
|
||||
txy
|
||||
|
||||
sep #$20 ; mot_upper$=UPPER$(mot$)
|
||||
ldy #6-1
|
||||
]lp lda [dpINDEX],y
|
||||
tax
|
||||
lda tblATARI,x
|
||||
tax
|
||||
lda tblUPPER,x
|
||||
cmp strSUITE,y
|
||||
bne sf_false
|
||||
dey
|
||||
dey
|
||||
bpl ]lp
|
||||
|
||||
rep #$20
|
||||
|
||||
lda #aiguillage
|
||||
clc
|
||||
adc localOFFSET
|
||||
@ -2045,40 +1858,266 @@ suite_forcee
|
||||
lda (dpFROM) ; la prochaine sc<73>ne
|
||||
and #$ff
|
||||
sta scene_actuelle
|
||||
|
||||
|
||||
lda #TRUE
|
||||
bra sf_99
|
||||
sf_false lda #FALSE
|
||||
sf_false rep #$20
|
||||
lda #FALSE
|
||||
sf_99 sta fgSUITEFORCEE
|
||||
rts
|
||||
|
||||
strSUITE asc 'suite '
|
||||
strSUITE asc 'SUITE '
|
||||
|
||||
*-----------------------
|
||||
* CLIC_MOT - OK
|
||||
*-----------------------
|
||||
* clic_mot
|
||||
* on regarde sur quel mot on a cliquŽ
|
||||
|
||||
clic_mot lda taskWHERE+2 ; X
|
||||
cmp #marge_gauche*largeur_caractere
|
||||
bcc tc_ko
|
||||
cmp #640-{2*largeur_caractere}
|
||||
bcs tc_ko
|
||||
|
||||
sec
|
||||
sbc #marge_gauche*largeur_caractere
|
||||
clc
|
||||
adc #7
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
sta motX
|
||||
pha
|
||||
|
||||
lda taskWHERE ; Y
|
||||
sec
|
||||
sbc offsetY ; dŽcalage liŽ au centrage du texte
|
||||
clc
|
||||
adc #9
|
||||
asl
|
||||
tax
|
||||
lda y_text2,x
|
||||
clc
|
||||
adc motY
|
||||
sta motY2 ; la ligne
|
||||
lda y_text,x
|
||||
sta motOFFSET ; l'offset dans le texte
|
||||
clc
|
||||
adc 1,s
|
||||
tax
|
||||
pla
|
||||
|
||||
* on a un mot mais on ne sait pas lequel
|
||||
|
||||
* lda texte_index,x
|
||||
lda texte_color,x
|
||||
and #$ff
|
||||
bne tc_2
|
||||
|
||||
tc_ko sec ; pas de mot
|
||||
rts
|
||||
|
||||
*--- on a un mot
|
||||
|
||||
tc_2
|
||||
* ldx mot_clique ; on sauvegarde l'ancien mot
|
||||
* stx mot_ancien
|
||||
* sta mot_clique ; et le nouveau
|
||||
|
||||
lda motOFFSET ; on en a encore besoin
|
||||
clc
|
||||
adc #texte_final
|
||||
sta dpFROM
|
||||
|
||||
*- on cherche le dŽbut
|
||||
|
||||
ldy motX
|
||||
]lp cpy #0 ; condition de sortie : on est ˆ gauche
|
||||
beq tc_debut
|
||||
lda (dpFROM),y
|
||||
and #$ff
|
||||
cmp #'A'-1 ; instrSPACE
|
||||
bcc tc_debutok ; beq
|
||||
dey
|
||||
bra ]lp
|
||||
|
||||
tc_debutok iny
|
||||
tc_debut sty motX ; on a le debut
|
||||
|
||||
ldx #0
|
||||
sep #$20
|
||||
]lp cpy #max_colonnes
|
||||
bcs tc_fin
|
||||
lda (dpFROM),y
|
||||
cmp #'A'-1 ; #instrSPACE
|
||||
bcc tc_fin ; beq
|
||||
sta mot,x
|
||||
iny
|
||||
inx
|
||||
bne ]lp ; on a recopiŽ le mot
|
||||
|
||||
tc_fin stz mot,x ; fin de cha”ne
|
||||
rep #$20
|
||||
|
||||
lda motX ; corrige la marge
|
||||
clc
|
||||
adc #marge_gauche
|
||||
sta motX
|
||||
|
||||
clc ; on a un mot
|
||||
rts
|
||||
|
||||
*-----------------------
|
||||
* AIGUILLAGE
|
||||
*-----------------------
|
||||
* aiguille(scene)
|
||||
* parce que le tableau aiguillag existe
|
||||
* parce que le tableau aiguillage existe
|
||||
* si on est ici, on sait qu'on a un mot
|
||||
|
||||
aiguille ldx mot_clique ; a-t-on cliquŽ de nouveau sur le m<>me mot ?
|
||||
cpx mot_ancien
|
||||
beq ai_entry
|
||||
aiguille
|
||||
* lda scene_actuelle
|
||||
* sta scene_ancienne
|
||||
stz numero_mot ; l'index du mot en sortie, le vrai !
|
||||
|
||||
*--- mot_upper$=UPPER$(mot$)
|
||||
|
||||
lda #0 ; on init les registres (mais pourquoi ?)
|
||||
tax
|
||||
tay
|
||||
|
||||
sep #$20 ; mot_upper$=UPPER$(mot$)
|
||||
ldx #0
|
||||
]lp lda mot,x
|
||||
tay
|
||||
lda tblATARI,y
|
||||
tay
|
||||
lda tblUPPER,y
|
||||
sta mot_upper,x
|
||||
inx
|
||||
cpx #128
|
||||
bcc ]lp
|
||||
rep #$20
|
||||
|
||||
*--- pointeur_mots|(scene_actuelle|)
|
||||
|
||||
pha ; calcul l'index dans la dimension NB_MOTS
|
||||
pha
|
||||
lda scene_actuelle
|
||||
dec
|
||||
pha
|
||||
PushWord #NB_MOTS ; taille d'une dimension
|
||||
_Multiply
|
||||
pla
|
||||
asl
|
||||
sta localOFFSET
|
||||
clc
|
||||
adc #fonction_mots
|
||||
sta dpFROM ; on pointe sur fonction_mots(scene_actuelle)
|
||||
pla
|
||||
|
||||
lda #1
|
||||
sta i
|
||||
|
||||
*--- FOR i|=1 TO pointeur_mots|(scene_actuelle|)
|
||||
|
||||
aig_fori rep #$20
|
||||
|
||||
lda i ; prend l'adresse du mot
|
||||
dec
|
||||
asl ; dans ptrINDEX
|
||||
tay
|
||||
lda (dpFROM),y
|
||||
sta dpINDEX
|
||||
lda ptrINDEX+2
|
||||
sta dpINDEX+2
|
||||
|
||||
lda #0 ; on initialise les registres
|
||||
tax
|
||||
tay
|
||||
sep #$20 ; on majusculinise le mot
|
||||
]lp lda [dpINDEX],y
|
||||
cmp #instrSPACE
|
||||
beq aig_finmot
|
||||
tax
|
||||
lda tblATARI,x ; from Atari to IIgs
|
||||
tax
|
||||
lda tblUPPER,x ; to upper case
|
||||
cmp mot_upper,y
|
||||
bne aig_nexti
|
||||
iny
|
||||
cpy #128
|
||||
bcc ]lp
|
||||
|
||||
aig_finmot lda #0 ; on met un zero final
|
||||
sta mot_upper,y
|
||||
|
||||
jsr aiguille_condition ; on teste la condition
|
||||
bcs aig_nexti ; non satisfaite
|
||||
|
||||
lda i ; satisfaite
|
||||
sta numero_mot
|
||||
|
||||
*--- NEXT i%
|
||||
|
||||
aig_nexti inc i
|
||||
lda i
|
||||
cmp nb_mots
|
||||
bcc aig_fori
|
||||
beq aig_fori
|
||||
|
||||
*-----------------------
|
||||
|
||||
*--- IF numero_mot|<>0
|
||||
|
||||
aig_suite rep #$20 ; on sort
|
||||
|
||||
lda numero_mot
|
||||
bne ai_onaunmot
|
||||
|
||||
* lda scene_ancienne
|
||||
* sta scene_actuelle
|
||||
rts
|
||||
|
||||
*--- IF option_mot$=mot$
|
||||
|
||||
ai_onaunmot sep #$20
|
||||
ldx #0
|
||||
]lp lda mot_upper,x
|
||||
cmp option_mot,x
|
||||
bne ai_diff
|
||||
cmp #0 ; fin de cha”ne
|
||||
beq ai_entry
|
||||
inx
|
||||
cpx #128
|
||||
bcc ]lp
|
||||
|
||||
*--- ELSE
|
||||
|
||||
ai_diff ldx #0 ; option_mot$=mot$
|
||||
]lp lda mot_upper,x
|
||||
sta option_mot,x
|
||||
inx
|
||||
cpx #128
|
||||
bcc ]lp
|
||||
|
||||
rep #$20
|
||||
|
||||
lda #1 ; fait clignoter
|
||||
jsr surligner_mot
|
||||
|
||||
pla
|
||||
jsr affiche_commentaire
|
||||
|
||||
lda #FALSE
|
||||
ai_false lda #FALSE
|
||||
sta deplacement
|
||||
rts
|
||||
|
||||
*---
|
||||
mx %10
|
||||
|
||||
ai_entry cmp #0
|
||||
beq ai_false
|
||||
|
||||
ai_entry rep #$20 ; m<>me mot
|
||||
|
||||
lda scene_actuelle
|
||||
dec ; prend la scene
|
||||
pha ; calcul l'index dans la dimension NB_MOTS
|
||||
pha
|
||||
@ -2095,19 +2134,198 @@ ai_entry cmp #0
|
||||
sta dpFROM ; on pointe sur l'index du premier mot
|
||||
pla
|
||||
|
||||
ldy mot_clique ; 1..+
|
||||
ldy numero_mot ; 1..+
|
||||
dey
|
||||
lda (dpFROM),y ; la prochaine sc<73>ne
|
||||
and #$ff
|
||||
sta scene_actuelle
|
||||
|
||||
lda #TRUE
|
||||
sta deplacement
|
||||
rts
|
||||
|
||||
ai_false lda #FALSE
|
||||
sta deplacement
|
||||
mx %00
|
||||
|
||||
*-----------------------
|
||||
* AIGUILLE_CONDITION
|
||||
*-----------------------
|
||||
* aiguille_condition
|
||||
* test de la condition pour
|
||||
* la routine aiguille
|
||||
|
||||
* test_condition
|
||||
* on entre en A=8-bits
|
||||
* on doit ressortir en A=8-bits
|
||||
* si le mot est cliquable on remplit texte_color
|
||||
|
||||
mx %00
|
||||
|
||||
aiguille_condition
|
||||
rep #$20
|
||||
|
||||
* condition&=condition&(scene_actuelle|,i%)
|
||||
|
||||
lda i
|
||||
dec
|
||||
asl
|
||||
clc
|
||||
adc localOFFSET
|
||||
tax
|
||||
lda condition,x ; xx2B ou yy2D
|
||||
pha
|
||||
and #$ff00 ; index dans scene_visitee
|
||||
xba
|
||||
tax
|
||||
lda scene_visitee-1,x
|
||||
and #$ff
|
||||
tax ; true ou false
|
||||
pla
|
||||
and #$00ff ; 2B ou 2D
|
||||
|
||||
* IF (condition&>0 AND scene_visitee!(ABS(condition&))=TRUE) OR (condition&<0 AND scene_visitee!(ABS(-condition&))=FALSE)
|
||||
|
||||
cmp #'+'
|
||||
bne ac_moins
|
||||
cpx #TRUE
|
||||
beq ac_oui
|
||||
bne ac_non
|
||||
|
||||
ac_moins cpx #FALSE
|
||||
bne ac_non
|
||||
|
||||
ac_oui sep #$20
|
||||
clc
|
||||
rts
|
||||
|
||||
ac_non sep #$20
|
||||
sec
|
||||
rts
|
||||
|
||||
mx %00
|
||||
|
||||
*-----------------------
|
||||
* AFFICHE_COMMENTAIRE
|
||||
*-----------------------
|
||||
* affiche_commentaire
|
||||
|
||||
affiche_commentaire
|
||||
lda scene_actuelle
|
||||
bne ac_1
|
||||
rts
|
||||
|
||||
ac_1 dec ; prend la scene
|
||||
pha ; calcul l'index dans la dimension NB_MOTS
|
||||
pha
|
||||
pha ; index de sc<73>ne
|
||||
PushWord #NB_MOTS ; taille d'une dimension
|
||||
_Multiply
|
||||
|
||||
lda 1,s ; calcule l'offset pour les deux tableaux utiles
|
||||
asl
|
||||
sta 1,s
|
||||
|
||||
lda numero_mot
|
||||
dec
|
||||
asl
|
||||
clc
|
||||
adc 1,s
|
||||
sta localOFFSET
|
||||
pla
|
||||
pla
|
||||
|
||||
*--- on construit la cha”ne
|
||||
|
||||
* 1- le mot
|
||||
|
||||
lda localOFFSET
|
||||
clc
|
||||
adc #fonction_mots
|
||||
sta dpFROM
|
||||
lda (dpFROM)
|
||||
sta dpINDEX
|
||||
lda ptrINDEX+2
|
||||
sta dpINDEX+2
|
||||
|
||||
sep #$20
|
||||
ldy #0
|
||||
]lp lda [dpINDEX],y
|
||||
cmp #instrSPACE
|
||||
beq ac_2
|
||||
sta ligne_commentaire+1,y
|
||||
iny
|
||||
bne ]lp
|
||||
|
||||
* 2- la sŽparation
|
||||
|
||||
ac_2 tyx
|
||||
rep #$20
|
||||
lda #$20d3 ; double quote fermant + espace "-" -"
|
||||
sta ligne_commentaire+1,x
|
||||
lda #$203a ; deux-points + espace "-: -"
|
||||
sta ligne_commentaire+3,x
|
||||
|
||||
* 3- le commentaire
|
||||
|
||||
lda localOFFSET
|
||||
clc
|
||||
adc #phrase
|
||||
sta dpFROM
|
||||
lda (dpFROM)
|
||||
sta dpINDEX
|
||||
lda ptrINDEX+2
|
||||
sta dpINDEX+2
|
||||
|
||||
sep #$20
|
||||
ldy #0
|
||||
]lp lda [dpINDEX],y
|
||||
beq ac_3
|
||||
sta ligne_commentaire+5,x
|
||||
iny
|
||||
inx
|
||||
cpx #126 ; len max
|
||||
bcc ]lp
|
||||
|
||||
ac_3 stz ligne_commentaire+5,x ; pour finir
|
||||
|
||||
rep #$20
|
||||
|
||||
*--- PrŽpare l'Žcran
|
||||
|
||||
PushLong #old_pattern
|
||||
_GetPenPat
|
||||
|
||||
pha
|
||||
_GetForeColor
|
||||
|
||||
pha
|
||||
_GetTextMode
|
||||
|
||||
PushLong #black_pattern ; black pattern
|
||||
_SetPenPat
|
||||
|
||||
PushLong #commentRECT
|
||||
_PaintRect
|
||||
|
||||
PushWord #15
|
||||
_SetForeColor
|
||||
|
||||
PushWord #modeForeCopy
|
||||
_SetTextMode
|
||||
|
||||
ldx #^ligne_commentaire
|
||||
ldy #ligne_commentaire
|
||||
lda #19
|
||||
jsr cprint
|
||||
|
||||
_SetTextMode
|
||||
_SetForeColor
|
||||
_SetPenPat
|
||||
rts
|
||||
|
||||
*---
|
||||
|
||||
commentRECT dw 182,16,192,623
|
||||
|
||||
*-----------------------
|
||||
* CHARGE_IMAGE - OK
|
||||
*-----------------------
|
||||
@ -2191,11 +2409,12 @@ help lda mainWIDTH ; save current width
|
||||
sta oldWIDTH
|
||||
jsr saveBACK ; save background
|
||||
jsr switch_640 ; switch to 640
|
||||
|
||||
|
||||
lda #TRUE
|
||||
ldx ptrFOND+2
|
||||
ldy ptrFOND
|
||||
jsr fadeIN
|
||||
|
||||
|
||||
PushLong #old_pattern ; save current pattern
|
||||
_GetPenPat
|
||||
|
||||
@ -2241,8 +2460,8 @@ help4
|
||||
@cprint #help_str12;12
|
||||
@cprint #help_str14;14
|
||||
@cprint #help_str16;16
|
||||
|
||||
help9 jsr waitEVENT
|
||||
|
||||
jsr attente
|
||||
|
||||
*--- Restore all
|
||||
|
||||
@ -2285,8 +2504,8 @@ help_str16 asc 'OA-Q : quitter le jeu'00
|
||||
* mots_clicables(texte$)
|
||||
|
||||
mots_clicables
|
||||
lda #-1 ; force un mot diffŽrent en entrŽe de sc<73>ne
|
||||
sta mot_ancien
|
||||
* lda #-1 ; force un mot diffŽrent en entrŽe de sc<73>ne
|
||||
* sta mot_ancien
|
||||
|
||||
lda #0 ; on init les registres (mais pourquoi ?)
|
||||
tax
|
||||
@ -2395,7 +2614,7 @@ mc_99 rep #$20 ; on sort
|
||||
* test_condition
|
||||
* on entre en A=8-bits
|
||||
* on doit ressortir en A=8-bits
|
||||
* si le mot est cliquable on remplit texte_liens
|
||||
* si le mot est cliquable on remplit texte_color
|
||||
|
||||
|
||||
mx %00
|
||||
@ -2441,10 +2660,10 @@ tc_addmot ply ; marque le mot dans les buffers
|
||||
dey
|
||||
bmi tc_ok ; on sort sans dŽpiler
|
||||
lda #colorWHITE
|
||||
sta texte_liens,x
|
||||
lda index_mot
|
||||
inc
|
||||
sta texte_index,x
|
||||
sta texte_color,x
|
||||
* lda index_mot
|
||||
* inc
|
||||
* sta texte_index,x
|
||||
bra ]lp
|
||||
|
||||
tc_prendpas ply
|
||||
@ -2454,7 +2673,7 @@ tc_ok sep #$20
|
||||
rts
|
||||
|
||||
mx %00
|
||||
|
||||
|
||||
*-----------------------
|
||||
* MUSIQUE - OK
|
||||
*-----------------------
|
||||
@ -2475,10 +2694,11 @@ fin_musique
|
||||
* MON BEAU CURSEUR
|
||||
*-----------------------
|
||||
|
||||
monCURSEUR dw 16,4
|
||||
monCURSEUR
|
||||
dw 16,4
|
||||
hex 0000000000000000 ; data
|
||||
hex 00000000000000F0
|
||||
hex 0000000000000000
|
||||
hex 000000000000FFF0
|
||||
hex 000000000000F0F0
|
||||
hex 0000000000FFF0F0
|
||||
hex 00000000FFF00FF0
|
||||
|
@ -114,7 +114,7 @@ fgRESTART = 2
|
||||
|
||||
tdc
|
||||
sta myDP
|
||||
|
||||
|
||||
*--- Version du systeme
|
||||
|
||||
jsl GSOS
|
||||
@ -254,15 +254,16 @@ main jsr fadeOUT
|
||||
|
||||
*---
|
||||
|
||||
mainLOOP lda scene_actuelle
|
||||
jsr nouvelle_scene ; on initialise la scène
|
||||
lda scene_actuelle
|
||||
mainLOOP jsr nouvelle_scene ; on initialise la scène
|
||||
jsr image ; on charge une image éventuelle
|
||||
lda scene_actuelle
|
||||
jsr get_textes ; on détermine le texte
|
||||
jsr prepare_texte ; que l'on prepare le texte
|
||||
jsr suite_forcee ; a-t-on des mots cliquables ?
|
||||
lda fgSUITEFORCEE
|
||||
cmp #TRUE
|
||||
beq noMOTS
|
||||
jsr mots_clicables ; on y ajoute les mots cliquables
|
||||
jsr affiche_texte ; et on l'affiche
|
||||
noMOTS jsr affiche_texte ; et on l'affiche
|
||||
|
||||
*----------------------------------------
|
||||
* TASK MASTER (no more)
|
||||
@ -294,11 +295,8 @@ taskLOOP inc VBLCounter0
|
||||
cmp #FALSE
|
||||
bne main
|
||||
|
||||
lda fgSUITEFORCEE
|
||||
cmp #TRUE
|
||||
beq mainLOOP
|
||||
|
||||
lda deplacement ; si on doit bouger, on fait un...
|
||||
ora fgSUITEFORCEE
|
||||
cmp #TRUE
|
||||
beq mainLOOP ; ...grand saut
|
||||
bne taskLOOP ; ...sinon on attend
|
||||
@ -356,10 +354,7 @@ tblKEYADDRESS
|
||||
|
||||
doMOUSEDOWN
|
||||
|
||||
doMOUSEUP lda scene_actuelle ; a-t-on des mots cliquables ?
|
||||
jsr suite_forcee
|
||||
|
||||
lda fgSUITEFORCEE
|
||||
doMOUSEUP lda fgSUITEFORCEE
|
||||
cmp #FALSE
|
||||
beq mup1
|
||||
rts ; non, on sort
|
||||
@ -367,8 +362,7 @@ doMOUSEUP lda scene_actuelle ; a-t-on des mots cliquables ?
|
||||
mup1 jsr clic_mot ; oui, on vérifie si on a cliqué sur un mot => mot$
|
||||
bcc mup2 ; oui
|
||||
rts
|
||||
mup2 lda scene_actuelle
|
||||
jsr aiguille ; on aiguille le joueur si c'est le second clic
|
||||
mup2 jsr aiguille ; on aiguille le joueur (1 ou 2 clics)
|
||||
rts
|
||||
|
||||
*-----------------------------------
|
||||
@ -639,13 +633,11 @@ doQUIT jsr suspendMUSIC ; NTP off
|
||||
|
||||
meQUIT jsr stopNTP
|
||||
|
||||
meQUIT0
|
||||
PushWord #refIsHandle
|
||||
meQUIT0 PushWord #refIsHandle
|
||||
PushLong SStopREC
|
||||
_ShutDownTools
|
||||
|
||||
meQUIT1
|
||||
PushWord myID
|
||||
meQUIT1 PushWord myID
|
||||
_DisposeAll
|
||||
|
||||
PushWord mainID
|
||||
@ -741,15 +733,16 @@ we_1 inc VBLCounter0
|
||||
|
||||
*--------------------------------------
|
||||
|
||||
fadeIN sty Debut
|
||||
stx Debut+2
|
||||
fadeIN pha
|
||||
sty Debut
|
||||
stx Debut+2
|
||||
|
||||
_HideCursor
|
||||
|
||||
ldy #$2000
|
||||
sty Arrivee
|
||||
ldx #$00e1
|
||||
stx Arrivee+2
|
||||
ldy #$2000
|
||||
sty Arrivee
|
||||
ldx #$00e1
|
||||
stx Arrivee+2
|
||||
|
||||
ldy #$7e00
|
||||
lda #0
|
||||
@ -758,12 +751,16 @@ fadeIN sty Debut
|
||||
iny
|
||||
bpl ]lp
|
||||
|
||||
ldy #$7dfe
|
||||
]lp lda [Debut],y
|
||||
sta [Arrivee],y
|
||||
dey
|
||||
dey
|
||||
bpl ]lp
|
||||
pla ; ne copie pas les données
|
||||
cmp #FALSE ; si à FALSE
|
||||
beq fadeIN1
|
||||
|
||||
ldy #$7dfe
|
||||
]lp lda [Debut],y
|
||||
sta [Arrivee],y
|
||||
dey
|
||||
dey
|
||||
bpl ]lp
|
||||
|
||||
fadeIN1 lda Debut
|
||||
clc
|
||||
@ -1108,6 +1105,8 @@ 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!'
|
||||
pgmSTR1 str 'Data parsing error'
|
||||
pgmSTR2 str 'Please report!'
|
||||
tolSTR1 str 'Error while loading tools'
|
||||
memSTR1 str 'Cannot allocate memory'
|
||||
filSTR1 str 'Cannot load file'
|
||||
@ -1126,7 +1125,7 @@ taskDATA ds 4 ; wmTaskData +16
|
||||
|
||||
taskTBL da doNOT ; 0 Null
|
||||
da doMOUSEDOWN ; 1 mouseDownEvt
|
||||
da doMOUSEUP ; 2 mouseUpEvt
|
||||
da doNOT ; 2 mouseUpEvt
|
||||
da doKEYDOWN ; 3 keyDownEvt
|
||||
da doNOT
|
||||
da doNOT ; 5 autoKeyEvt
|
||||
|
@ -10,7 +10,7 @@ Fran
|
||||
|
||||
Ces histoires sont accompagnŽes d'une musique choisie alŽatoirement par le programme, ainsi que d'images pour renforcer l'immersion dans les lieux visitŽs. Chaque sc<73>ne peut comporter des liens cliquables lorsque le texte est Žcrit en caract<63>res blancs Un clic vous permet de choisir le mot, deux clics de confirmer votre choix, votre dŽcision et ainsi de conditionner la suite du jeu. Toute l'interactivitŽ du jeu se trouve dans vos choix.
|
||||
|
||||
Nous retrouvons un fonctionnement en "point & click" plus ŽvoluŽ que celui utilisŽ pour "L'ŽgŽrie" deux annŽes plus t™t. La fiction numŽrique associŽe au th<74>me de la perte de l'<27>tre cher reste prŽsente dans les trois Žpisodes sous des formes distinctes que nous vous invitons ˆ dŽcouvrir en jouant.
|
||||
La navigation se fait par liens hypertexte, c'est ainsi plus ŽvoluŽ que celle utilisŽe pour "L'ŽgŽrie". La fiction numŽrique associŽe au th<74>me de la perte de l'<27>tre cher reste prŽsente dans les trois Žpisodes sous des formes distinctes que nous vous invitons ˆ dŽcouvrir en jouant.
|
||||
|
||||
Pour jouer, rien de plus simple : une souris pour dŽcider. Nous avons intŽgrŽ quelques raccourcis clavier :
|
||||
- pomme-ouverte-O pour charger une partie prŽcŽdemment sauvegardŽe,
|
||||
|
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user