fichier des dialogues : dial.s
%DIAL%%%%%%%%%%%%%%%%% % % %%%%%%%%%%%%%%%%%%%%%%
**OPEN.DIAL ST=0.13 D0= 00182 A=DAT0.B LC 20 ?A>C.B { ST=1.0 } ELSE { ST=0.0 }
D0= 0018E A=DAT0.A D1= 001B1 B=0.A
?ST=0.0 { LC 00550 A=A+C.A B=B+C.A } LC 00176 A=A+C.A R0=A D0= 00193 A=DAT0.A
?ST=0.0 { LC 00550 A=A+C.A } LC 00176 A=A+C.A R1=A
C=B.A DAT1=C.A LC 17 CSRB.B B=C.B LC 01 D=C.B DO {
C=D.B A=R0 D0=A A=0.W A=-A-1.W GOSUBL DISP.LINE C=D.B A=R1 D0=A A=0.W A=-A-1.W GOSUBL DISP.LINE LC B00 DO { C--.X } WHILENC
D=D+2.B LC 00022 A=R0 A=A-C.A R0=A A=R1 A=A-C.A R1=A
B--.B } WHILENC RTN
**KILL.DIAL ST=1.13 RTN
**FNT1 GOSUBL FNT1 $FFFFFFFFFFFF5D5DFFFFFFFFFFFFFFFFFF7F7F7F7F7FFF7FFFBEBEBEFFFFFFFFFFBEBE1CBE1CBEBEFF7F3C5F3E7D1E7FFF9F9DFE7FBFDCFCFFBF5F5FBF5DDE3DFF7F7F7FFFFFFFFFFFFE7FBFBFBF7FFEFFBF7FFEFEFE7FBFFFFFBE7F1C7FBEFFFFFF7F7F1C7F7FFFFFFFFFFF3F3F7FBFFFFFFFFF1CFFFFFFFFFFFFFFFFFF3F3FFFFFFDFE7FBFDFFFFF3EDDDC5D9DDD3EFF7F3F7F7F7F7F3EFF3EDDFD7EBFDF1CFF3EDDFD3EFDDD3EFFFE7EBEDE1CFEFEFF1CDF1EFDFDDD3EFF7EBFDF1EDDDD3EFF1CFDFE7FBFBFBFFF3EDDDD3EDDDD3EFF3EDDDD3CFDFE3FFFFF3F3FFF3F3FFFFFFF3F3FFF3F3F7FBFFE7FBFDFBF7FFEFFFFFF1CFF1CFFFFFFDFBF7FFE7FBFDFFF3EDDFDFE7FFF7FFF3EDD5D5C5FDF3CFFFBF9FA7B38DBEBFF3CBBBB1CDDED0EFF7CBBDFDFEFED1EFF3CBBBBDBDBED0EFF38BFBF1CDFEF0CFF38BFBF1CDFEFEFFF7CBBDFDFE8ED1EFFBBBBDD1CDDEEEEFF7CFE7F7FBFBF1FFFFBFBFDFDEEEE1FFFBDBE3F9F9F6FEEFFBFBFDFDFDFEF0EFF7B393A5BDDEDEDFFBBBB1B5DDCEDEDFF3CDBDBEBEDED1EFF3CBBDB1CDFEFEFFF3CDBDBEB6CED1AFF3CBBDB1CDEEEEEFF3CDBDF3EFDED1EFF187F7FBFBFDFDFFFBBBBDDDDEEEE1FFFEBEDEE6FAFCFEFFFDBDBDD6D2D4EEEFFBBBD7E7F3FDEEEFFDBDC3FBFBFDFDFFF18FDFE7FBFDF0CFF3EBFBFBFBFBF3EFFFFDFBF7FFEFDFFFF3EFEFEFEFEFE3EFF7FBEDDFFFFFFFFFFFFFFFFFFFFFF1CFFBFBF7FFFFFFFFFFFFFFF7EBDDDDE3DFF7F7FBF3EBDDD1EFFFFFF7EBFDFDF3EFFFBFBFD3CDEDE3EFFFFFF7EBD1CDF3EFFF9FE187F7FBFBFFFFF7EBDBD7CDE1FFF7F7FBFBF3EDEDEFFFCFFFF7F7FBFBFFCFFFFFEFE7F6F9FFF7F7FBDBE3FDEDDFFFEFE7F7F7FBFBFFFFFFF3DBABA5D5DFFFFFFBE3DBDDEDEFFFFFF7EBDDDDE3FFFFF7EBDBD3EDFDFFFFF7EBDDD3EFE7FFFFFFF7D7E7FBFBFFFFFFF7EBD7FDE3FFFFFFE3C7F7FBFBFFFFFFFBDBDDEDE3DFFFFFFDDDE5F9FDFFFFFFFBABA5D5DBEFFFFFFBD7E7FBEDEFFFFFFBB7D7E7FBFFFFFFF3CFE7FBF1EFF7EBFBFDFBFBF7EFF7F7F7F7F7F7F7FFF3FFEFEFDFEFE3FFFFFFFBF5DFEFFFFFF5DBE5DBE5DBE5DFF *FNT1 C=RSTK RTN
**WRITE GOSUBL MARIO_1 R1=C % TXT
GOSUBL WRT_LINE D0= 001B1 A=DAT0.A LC 00132 A=A+C.A DAT0=A.A C=R1 C=C+2.A R1=C GOSUBL WRT_LINE GOSUBL STOP.DIAL GOSUBL NEXT_TXT
*DEFIL C=R1 C=C+2.A R1=C GOSUBL STOP.DIAL GOSUBL NEXT_TXT
GOSUBL SCR.DIAL LC 05000 DO { C--.A } WHILENC GOSUBL SCR.DIAL
GOSUBL WRT_LINE GOSUBL STOP.DIAL GOSUBL NEXT_TXT
GOTO DEFIL
**WRT_LINE D0= 0018E A=DAT0.A D0= 001B1 C=DAT0.A A=A+C.A LC 00066 A=A+C.A A++.A R0=A % @DIAL LC F R2=C % <==> X 15
*<X> GOSUBL FNT1 D1=C C=R1 D0=C LC 1F B=C.B
*READ.TXT A=DAT0.B ?A=B.B { GOTO DISP.L } LC 80 ?BC.B { B++.B D1=D1+ 16 GOTO READ.TXT } ELSE { A=DAT0.B LC 40 ?A=C.B { RTN } A=DAT0.B LC 2A ?A=C.B { RTN } A=DAT0.B LC 0A ?A=C.B { RTN }
GOTO ZAP.L }
*DISP.L A=R0 D0=A LC 7 DO { A=DAT1.B DAT0=A.B D0=D0+ 34 D1=D1+ 2 C--.P } WHILENC
A=R0 D0= 0018E C=DAT0.A A=A-C.A D0= 00193 C=DAT0.A C=C+A.A D0=C A=R0 D1=A LC 7 DO { A=DAT1.B DAT0=A.B D0=D0+ 34 D1=D1+ 34 C--.P } WHILENC
LC 01400 DO { C--.A } WHILENC
*ZAP.L A=R0 A=A+2.A R0=A %@EC C=R1 C=C+2.A R1=C %TXT C=R2 C--.P R2=C ?C0.P { GOTO <X> } RTN
*SCR.DIAL LC 4 R3=C.P
*SCR.D D0= 0018E A=DAT0.A D0= 001B1 C=DAT0.A A=A+C.A LC 00132 A=A-C.A D0=A D1=A D1=D1+ 34 LC 15 DO { A=DAT1.W DAT0=A.W D0=D0+ 16 D1=D1+ 16 A=DAT1.W DAT0=A.W D0=D0+ 18 D1=D1+ 18 C--.B } WHILENC
D0= 00193 A=DAT0.A D0= 001B1 C=DAT0.A A=A+C.A LC 00110 A=A-C.A D0=A D1=A D1=D1+ 34 LC 15 DO { A=DAT1.W DAT0=A.W D0=D0+ 16 D1=D1+ 16 A=DAT1.W DAT0=A.W D0=D0+ 18 D1=D1+ 18 C--.B } WHILENC C=R3 ?C=0.P RTNYES C--.P R3=C GOTO SCR.D
*STOP.DIAL C=R1 D0=C A=DAT0.B LC 40 ?A=C.B { C=RSTK RTN } C=R1 D0=C A=DAT0.B LC 2A ?A=C.B { D0= 00193 A=DAT0.A LC 00280 A=A+C.A
?ST=0.0 { LC 00550 A=A+C.A } B=A.A GOSUBL F_ON D=0.X ST=0.9
*NEXT LC 800 ?D=C.X { D=0.X ?ST=0.9 { ST=1.9 GOSUBL F_OFF } ELSE { ST=0.9 GOSUBL F_ON } } ELSE { D++.X }
LC 008 GOSBVL [INKEY] ?CBIT=1.3 { C=RSTK GOLONG KILL.DIAL }
LC 008 GOSBVL [INKEY] ?CBIT=0.1 GOYES NEXT C=R1 C=C+2.B R1=C GOSUBL F_OFF } RTN
*F_OFF A=B.A D0=A D0=D0+ 2 LC 4
DO { LA FF DAT0=A.B D0=D0+ 34 C--.P } WHILENC RTN
*F_ON GOSUB FLECHE $3E3E1C3E7F *FLECHE C=RSTK D1=C A=B.A D0=A D0=D0+ 2 LC 4
DO { A=DAT1.B A=A+A.B ABIT=1.0 DAT0=A.B D0=D0+ 34 D1=D1+ 2 C--.P } WHILENC RTN
*NEXT_TXT C=R1 D0=C A=DAT0.B LC D8 ?A=C.B { D0= 001C9 A=DAT0.A D0=A D0=D0+ 1 ?ST=1.10 { D0=D0+ 8 } D0=D0+ 6 A=DAT0.P A++.P DAT0=A.P C=R1 C=C+2.A R1=C } RTN
*DISP.LINE DO { DAT0=A.W D0=D0+ 16 DAT0=A.W D0=D0+ 18 C--.B } WHILENC RTN
@