mirror of
https://github.com/antoinevignau/source.git
synced 2025-01-01 15:30:02 +00:00
presque la fin
This commit is contained in:
parent
69898d223c
commit
3a4380e5e6
@ -1 +1 @@
|
||||
drgenius=Type(00),AuxType(0000),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)
|
||||
drgenius=Type(06),AuxType(4000),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)
|
||||
|
Binary file not shown.
@ -28,6 +28,13 @@ HPAG = $e6
|
||||
dpFROM = $fc
|
||||
dpTO = $fe
|
||||
|
||||
chrRET = $0d
|
||||
chrSPC = $20
|
||||
chrRET2 = $8d
|
||||
chrSPC2 = $a0
|
||||
|
||||
TEXTBUFFER = $200
|
||||
|
||||
KBD = $c000
|
||||
CLR80COL = $c000
|
||||
SET80COL = $c001
|
||||
@ -249,17 +256,76 @@ REPLAY
|
||||
sta N
|
||||
jmp :1000
|
||||
|
||||
:530
|
||||
:530 ldx #7
|
||||
lda C,x
|
||||
cmp #1+1
|
||||
bcc :540
|
||||
lda P,x
|
||||
cmp #1
|
||||
bne :540
|
||||
lda C,x
|
||||
sec
|
||||
sbc #1
|
||||
sta C,x
|
||||
|
||||
:540 ldx #3
|
||||
lda C,x
|
||||
cmp #1+1
|
||||
bcc :545
|
||||
lda P,x
|
||||
cmp #1
|
||||
bne :545
|
||||
lda C,x
|
||||
sec
|
||||
sbc #1
|
||||
sta C,x
|
||||
|
||||
:545 ldx #4
|
||||
lda C,x
|
||||
cmp #1+1
|
||||
bcc :547
|
||||
lda P,x
|
||||
cmp #1
|
||||
bne :547
|
||||
lda C,x
|
||||
sec
|
||||
sbc #1
|
||||
sta C,x
|
||||
|
||||
:547 ldx #5
|
||||
lda C,x
|
||||
cmp #1+1
|
||||
bcc :550
|
||||
lda C,x
|
||||
sec
|
||||
sbc #1
|
||||
sta C,x
|
||||
|
||||
:550 @print #strCOMMANDE
|
||||
|
||||
*--------
|
||||
* lda #cursorCHAR
|
||||
* sta PROMPT
|
||||
jsr GETLN
|
||||
|
||||
lda TEXTBUFFER
|
||||
cmp #chrRET2
|
||||
bne :570
|
||||
jsr switchVIDEO
|
||||
jmp :550
|
||||
|
||||
strILFAITNOIR
|
||||
asc "IL FAIT NOIR COMME DANS UN FOUR, IL"8D
|
||||
asc "FAUDRAIT PEUT-ETRE ALLUMER"00
|
||||
|
||||
strILYA asc 8D"IL Y A DANS LA SALLE :"00
|
||||
strSPACE asc " "00
|
||||
strRETURN asc 8D
|
||||
:570 stx lenSTRING ; longueur de la chaine saisie
|
||||
jsr :6000
|
||||
|
||||
lda MO$1
|
||||
cmp #"0"
|
||||
bne :900
|
||||
lda MO$1+1
|
||||
cmp #"0"
|
||||
bne :900
|
||||
|
||||
@print #strJENECOMPRENDS
|
||||
@wait #200
|
||||
jmp :100
|
||||
|
||||
*-----------------------------------
|
||||
* 900 - CONTROLE MVT
|
||||
@ -340,7 +406,22 @@ strRETURN asc 8D
|
||||
cmp #0
|
||||
beq :1150
|
||||
|
||||
* make :1120
|
||||
lda NL ; E$=C$(NL)
|
||||
asl
|
||||
tax
|
||||
lda tblC$,x
|
||||
sta LINNUM
|
||||
lda tblC$+1,x
|
||||
sta LINNUM+1
|
||||
|
||||
ldy #0
|
||||
lda (LINNUM),y
|
||||
tax
|
||||
]lp lda (LINNUM),y
|
||||
sta E$,y
|
||||
iny
|
||||
dex
|
||||
bpl ]lp
|
||||
jmp :1400
|
||||
|
||||
:1150 lda NL
|
||||
@ -360,17 +441,20 @@ strRETURN asc 8D
|
||||
|
||||
:1170 @print #strIMPOSSIBLE
|
||||
|
||||
lda MO$1
|
||||
cmp #"0"
|
||||
bne :1190
|
||||
lda MO$1+1
|
||||
cmp #"9"+1
|
||||
bcs :1190
|
||||
|
||||
@print #strCECHEMIN
|
||||
|
||||
:1190 @print #strEXCLAM
|
||||
jmp :100
|
||||
|
||||
:1200
|
||||
|
||||
*--------
|
||||
|
||||
strIMPOSSIBLE
|
||||
asc 8D"IMPOSSIBLE "00
|
||||
strCECHEMIN
|
||||
asc "DE PRENDRE CE CHEMIN"00
|
||||
strEXCLAM
|
||||
asc "!"00
|
||||
|
||||
*-----------------------------------
|
||||
* 1400 - CONDITIONS
|
||||
*-----------------------------------
|
||||
@ -604,6 +688,8 @@ tbl1500 da :1500,:1510,:1520,:1530,:1540
|
||||
tblBRKV dfb 10,30,50,53
|
||||
tblBRKA da :100,:300,:500,:530
|
||||
|
||||
hex BDBDBD
|
||||
|
||||
*-----------------------------------
|
||||
* 1800
|
||||
*-----------------------------------
|
||||
@ -1023,7 +1109,89 @@ str4640 asc "LE PLACARD ETAIT PIEGE, VOUS N"A7"AURIEZ"8D
|
||||
* 6000 - ANALYSE DU MOT
|
||||
*-----------------------------------
|
||||
|
||||
:6000
|
||||
nbCAR = 100 ; on ne depasse pas 100 caracteres
|
||||
|
||||
:6000 lda #0
|
||||
sta N
|
||||
sta GN
|
||||
|
||||
lda #"0" ; initialise les mots
|
||||
sta MO$1
|
||||
sta MO$1+1
|
||||
sta MO$2
|
||||
sta MO$2+1
|
||||
|
||||
* 1. cherche l'index du premier mot
|
||||
|
||||
ldx #0 ; cherche le premier caractere
|
||||
]lp lda TEXTBUFFER,x
|
||||
cmp #chrRET2
|
||||
beq :6021
|
||||
cmp #" "
|
||||
bne :6022
|
||||
inx
|
||||
cpx lenSTRING
|
||||
bcs :6021
|
||||
cpx #nbCAR
|
||||
bcc ]lp
|
||||
:6021 rts ; retourne sans avoir trouve
|
||||
|
||||
* 2. recopie le mot
|
||||
|
||||
:6022 ldy #1
|
||||
lda TEXTBUFFER,x
|
||||
cmp #chrSPC2
|
||||
beq :6023
|
||||
cmp #chrRET2
|
||||
beq :6023
|
||||
sta X$1,y
|
||||
inx
|
||||
cpx lenSTRING
|
||||
bcs :6023
|
||||
iny
|
||||
cpy #4
|
||||
bcc ]lp
|
||||
:6023 sty X$1 ; sauve la longueur
|
||||
|
||||
* 3. cherche l'index du second mot
|
||||
|
||||
inx
|
||||
]lp lda TEXTBUFFER,x
|
||||
cmp #chrRET2
|
||||
beq :6021
|
||||
cmp #" "
|
||||
bne :6032
|
||||
inx
|
||||
cpx lenSTRING
|
||||
bcs :6031
|
||||
cpx #nbCAR
|
||||
bcc ]lp
|
||||
:6031 rts ; retourne sans avoir trouve
|
||||
|
||||
* 4. recopie le mot
|
||||
|
||||
:6032 ldy #1
|
||||
lda TEXTBUFFER,x
|
||||
cmp #chrSPC2
|
||||
beq :6033
|
||||
cmp #chrRET2
|
||||
beq :6033
|
||||
sta X$2,y
|
||||
inx
|
||||
cpx lenSTRING
|
||||
bcs :6033
|
||||
iny
|
||||
cpy #4
|
||||
bcc ]lp
|
||||
:6033 sty X$2 ; sauve la longueur
|
||||
|
||||
|
||||
*--------
|
||||
|
||||
:6160 brk $bd
|
||||
|
||||
X$1 ds 4+1 ; premier mot saisi
|
||||
X$2 ds 4+1 ; second mot saisi
|
||||
|
||||
*-----------------------------------
|
||||
* 7000 - DESCRIPTION DES PIECES
|
||||
@ -1629,12 +1797,21 @@ setHGR ; HGR
|
||||
sta HIRES
|
||||
rts
|
||||
|
||||
*----------------------
|
||||
* switchVIDEO
|
||||
*----------------------
|
||||
|
||||
switchVIDEO
|
||||
lda #0
|
||||
eor #1
|
||||
sta switchVIDEO+1
|
||||
beq setMIXEDOFF
|
||||
|
||||
*----------------------
|
||||
* setMIXEDON
|
||||
*----------------------
|
||||
|
||||
setMIXEDON ; HGR + 4 LINES OF TEXT
|
||||
sta TXTCLR
|
||||
sta MIXSET
|
||||
|
||||
lda #20 ; et c'est fen<65>trŽ en plus !
|
||||
@ -1647,8 +1824,7 @@ setMIXEDON ; HGR + 4 LINES OF TEXT
|
||||
* setMIXEDOFF
|
||||
*----------------------
|
||||
|
||||
setMIXEDOFF ; TEXT ONLNY
|
||||
sta TXTSET
|
||||
setMIXEDOFF ; FULL HGR
|
||||
sta MIXCLR
|
||||
rts
|
||||
|
||||
@ -2218,13 +2394,14 @@ E ds 1
|
||||
E$ ds 32 ; the longest string
|
||||
F1 ds 1
|
||||
G ds 1
|
||||
GN ds 1
|
||||
H ds 1
|
||||
HH ds 1
|
||||
L ds 1
|
||||
LI ds 1
|
||||
LX ds 1
|
||||
MO$1 ds 2 ; "00"
|
||||
MO$2 ds 2 ; "00"
|
||||
MO$1 ds 2 ; "00" (une chaine raccourcie)
|
||||
MO$2 ds 2 ; "00" (une chaine raccourcie)
|
||||
N ds 1
|
||||
NL ds 1
|
||||
OK ds 1
|
||||
@ -2241,6 +2418,32 @@ Z ds 1
|
||||
*--- The lazy decimal to hexadecimal conversion
|
||||
|
||||
tblD2H dfb 0,10,20,30,40,50,60,70,80,90
|
||||
lenSTRING ds 1
|
||||
|
||||
*-----------------------------------
|
||||
* STRINGS
|
||||
*-----------------------------------
|
||||
|
||||
strILFAITNOIR
|
||||
asc "IL FAIT NOIR COMME DANS UN FOUR, IL"8D
|
||||
asc "FAUDRAIT PEUT-ETRE ALLUMER"00
|
||||
|
||||
strILYA asc 8D"IL Y A DANS LA SALLE :"00
|
||||
strSPACE asc " "00
|
||||
strRETURN asc 8D
|
||||
|
||||
strCOMMANDE
|
||||
asc 8D"QUE FAITES-VOUS ? "
|
||||
|
||||
strJENECOMPRENDS
|
||||
asc 8D"JE NE COMPRENDS PAS..."00
|
||||
|
||||
strIMPOSSIBLE
|
||||
asc 8D"IMPOSSIBLE "00
|
||||
strCECHEMIN
|
||||
asc "DE PRENDRE CE CHEMIN"00
|
||||
strEXCLAM
|
||||
asc " !"00
|
||||
|
||||
*-----------------------------------
|
||||
* LES AUTRES FICHIERS
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,41 +1,3 @@
|
||||
200 REM DESCRIPTION SALLE
|
||||
210 PRINT
|
||||
220 GOSUB(7000+SALLE*10)-10
|
||||
300 H=0:N=1
|
||||
310 IF O(N)<>SALLE THEN 400
|
||||
320 IF H=1 THEN GOTO 350
|
||||
330 PRINT"Il y a dans la salle:":WAIT 100
|
||||
340 H=1
|
||||
350 PRINT" ";O$(N);
|
||||
360 WAIT 150
|
||||
400 N=N+1
|
||||
410 IF N<=O THEN 310
|
||||
420 PRINT""
|
||||
|
||||
500 REM ACCEPTATION COMMANDE
|
||||
510 T=1:Y$(1) ="":Y$(2)="":N=0
|
||||
520 GOTO 1000
|
||||
530 IF C(7)>1 AND P(7)=1 THEN C(7)=C(7)-1
|
||||
540 IF C(3)>1 AND P(3)=1 THEN C(3)=C(3)-1
|
||||
545 IF C(4)>1 AND P(4)=1 THEN C(4)=C(4)-1
|
||||
547 IF C(5)>1 THEN C(5)=C(5)-1
|
||||
550 INPUT"Que faites vous";X$
|
||||
560 CLS:PRINTX$
|
||||
570 GOSUB 6000
|
||||
580 IF MO$(1)="00" THEN PRINT"Je ne comprends pas...":WAIT 200:GOTO100
|
||||
|
||||
1000 REM CONTROLE
|
||||
1010 NL=0
|
||||
1100 NL=NL+1
|
||||
1110 IF T=0 THEN GOTO 1150
|
||||
1120 E$=C$(NL)
|
||||
1130 GOTO 1400
|
||||
1150 IF NL<=A THEN 1200
|
||||
1159 PY=23:CO=12
|
||||
1160 IF A1=1 THEN GOTO 500
|
||||
1170 PRINT"Impossible ";
|
||||
1180 IF VAL(MO$(1))<10 THEN PRINT"de prendre ce chemin";
|
||||
1190 PRINT"!":GOTO 100
|
||||
1200 IF MID$(A$(NL),1,2)<>MO$(1) THEN 1100
|
||||
1210 Y$=MID$(A$(NL),3,2)
|
||||
1220 IF Y$<>"00" AND Y$<>MO$(2) THEN 1100
|
||||
|
Loading…
Reference in New Issue
Block a user