New tool for OSDK : "Labelized BASIC"

Questions, bug reports, features requests, ... about the Oric Software Development Kit. Please indicate clearly in the title the related element (OSDK for generic questions, PictConv, FilePack, XA, Euphoric, etc...) to make it easy to locate messages.

User avatar
waskol
Flight Lieutenant
Posts: 414
Joined: Wed Jun 13, 2007 8:20 pm
Location: FRANCE, Paris

New tool for OSDK : "Labelized BASIC"

Post by waskol »

Edit 4/septembre/207 at 18:17 : The Link provided in this post is the last version of the files v1.1

@DBug : You should have it in your e-mail ;)

@other people :
This is a command line tool (for Windows, I don't know if it works with wine under LINUX) is intended to be used with the OSDK.
May be DBUG will developped its own one in order to have something fully integrated in the OSDK, but for the moment, you can find it very usefull.

This small utily will transform this kind of code (A kind of ORIC BASIC, without line numbers, but with labels :

Code: Select all

&start
PRINT "Are you a (b)oy or a (g)irl ?"
GET A$
IF A$="B" THEN GOSUB &boy ELSE GOSUB &girl
PRINT "Hello ";B$
GOTO &start
&boy
B$="boy":RETURN
&girl
B$="girl":RETURN

Into this kind of code :

Code: Select all

   10 PRINT "Are you a (b)oy or a (g)irl ?"
   20 GET A$
   30 IF A$="B" THEN GOSUB 60 ELSE GOSUB 70
   40 PRINT "Hello";B$
   50 GOTO 10
   60 B$="boy":RETURN
   70 B$="girl":RETURN


you can download it here
(Edit : Link corrected)
You'll find in the zip : the utility, a demo and the source code (Delphi)


:wink:
Last edited by waskol on Tue Sep 04, 2007 1:17 am, edited 2 times in total.
User avatar
waskol
Flight Lieutenant
Posts: 414
Joined: Wed Jun 13, 2007 8:20 pm
Location: FRANCE, Paris

Post by waskol »

OK I just put in the link a new version.
Here is the bug that was corrected :
imagine you had two labels, one called &A and the other called &AB
The one called &A was processed before the one called &AB.

For instance, this little piece of code :

Code: Select all

&A
REM MENU
PRINT "1) Action 1"
PRINT "2) Action 2"
PRINT "3) Action 3"
INUT "    Choose an action",A
ON A GOSUB &A1,&A2,&A3
END
&A1
PRINT "You have choosen Action 1":RETURN
&A2
PRINT "You have choosen Action 2":RETURN
&A3
PRINT "You have choosen Action 3":RETURN
Would have been translated into :

Code: Select all

10 REM MENU
20 PRINT "1) Action 1"
30 PRINT "2) Action 2"
40 PRINT "3) Action 3"
50 INUT "    Choose an action",A
60 ON A GOSUB 101,102,103
70 END
80 PRINT "You have choosen Action 1":RETURN
90 PRINT "You have choosen Action 2":RETURN
100 PRINT "You have choosen Action 3":RETURN
(all the "&A" are replaced with 10 )

Instead of :

Code: Select all

10 REM MENU
20 PRINT "1) Action 1"
30 PRINT "2) Action 2"
40 PRINT "3) Action 3"
50 INUT "    Choose an action",A
60 ON A GOSUB 80,90,100
70 END
80 PRINT "You have choosen Action 1":RETURN
90 PRINT "You have choosen Action 2":RETURN
100 PRINT "You have choosen Action 3":RETURN
Know, it works as expected. :P
The link in the previous post was updated with the new file.

Please, do not hesitate to leave a feedback, new ideas about this,etc...
User avatar
Dbug
Site Admin
Posts: 4444
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Post by Dbug »

I'm currently trying to fix a lot of bugs in the version 0.017.

I was preparing in the few last month a more portable, and clean version, converted a lot of legacy C to C++, replaced windows only calls by easier to port ones, but in the process I broke a number of features, and unfortunately it seems that my regression tests were incomplete...

So anway, I'm working on it :)

You will have a new version with lot's of nice things for BASIC programmers :)
User avatar
waskol
Flight Lieutenant
Posts: 414
Joined: Wed Jun 13, 2007 8:20 pm
Location: FRANCE, Paris

Post by waskol »

Yep, with a lot of things for BASIC programmers and also for the others.

For my "Le Héros de San José", I am currently working with a graphic tool (for Windows, sorry) that permit a few things.
- The first is to build up some "text screens" with all the attributes you want (Paper and Ink colors, Double Heigth, alternate charset, Blinking, set of accentuated chars used in Sedoric 3 when accent is set to On)....
Then you just have to save the block of memory you need and you can load it back from your program. Very, very usefull for design of complex adventure games.
- The other feature wich is planned, is to re-design the standard or the alternate charset in order to achieve some "outstanding" graphics in text mode. Just tell me why I have almost never seen anybody redefining the alternate charset in order to have some graphics in text mode and then keeping the standard charset untouched instead of redefining the small caps ???

Anyway, I have also for you a small example of what can be achieve with labelized BASIC, it is a part of the "Hero of San José" I left aside, so that you can see how you can develop some complex things with this tool (I love the "labels" in DATA and the call of each sub-program with the use of an array ( GOSUB RR%(EV-GG) ) :P

Labelized (the unlabelized version is after this piece of code):

Code: Select all

&init
GRAB:CLEAR:R=0 
SC$="SAVED.DAT"
POKE #26A,10:POKE #20C,#7F:RESTORE
DIM T(35,47),O%(16),O$(16),T$(8),L$(10),RR%(60)
FORI=1TO10:READ L$(I):NEXT
FORI=0TO14:READ O$(I):NEXT
FORI=1TO60:READ RR%(I):NEXT
DATA "VULTURE CITY","ROCKPOINT","SOMETHING GULCH","SAN JOSE"
DATA "GRANDE VALLEE","SANTA MARIA","SAN MIGUEL","TORTILLAS CITY"
DATA "CINARON CITY","LOS DEMONOS"
DATA "Message pour le Ranch Monanza"
DATA "{chelle(s) de corde","corde(s)","torche(s)","lampe(s)"
DATA "lanterne(s)","selle(s)","bouteille de Tequila"
DATA "portrait(s) de Carlos 1er","Parchemin {crit en espagnol"
DATA "des infos sur la Hacienda Monasterio"
DATA "Potion(s) de soin pour cheval"
DATA "Hors-la-loi recherch{"
DATA "p{pite(s) d'or","lot(s) de peaux"
DATA &t1,&t2,&t3,&t4,&t5,&t6,&t7
DATA &t8,&t9,&t10,&t11,&t12,&t13,&t14
DATA &t15,&t16,&t17,&t18,&t19,&t20,&t21
DATA &t22,&t23,&t24,&t25,&t26,&t27,&t28
DATA &t29,&t30,&t31,&t32,&t33,&t34,&t35
DATA &t36,&t37,&t38,&t39,&t40,&t41,&t42
DATA &t43,&t51,&t52,&t53,&t54,&t55,&t56
DATA &t82,&t83,&t84,&t85,&t86,&t87,&t88
DATA &t89,&t90,&t91,&t92
V$="Vous ~tes "
GOSUB &Charge_scenario

&debut_boucle

GOSUB &status
IF EV=0 THEN &Retour_terrain
IF EV<=43 THEN GG=0
IF EV>=51 AND EV<=56 THEN GG=17
IF EV>=82 THEN GG=32
GOSUB RR%(EV-GG)
GOSUB &status
&Retour_terrain
T(X,Y)=T(X,Y) OR 8192
&press_key
LOAD"rt.bin"
GET A$:A=ASC(A$)
IF (A$="q") THEN &fin
IF (A$="i") THEN GOSUB &Inventaire:GOTO &debut_boucle
IF (A$="s") THEN GOSUB &Sauve_scenario:GOTO &debut_boucle
IF (A$="c") THEN GOSUB &Charge_scenario:GOTO &debut_boucle
IF (A$="r") THEN R=1:GOTO &debut_boucle
IF (A<8) OR (A>11) THEN GOTO &press_key
XT=X:YT=Y
IF A=8 AND X>0 THEN XT=X-1:GOTO &deplacement
IF A=9 AND X<35 THEN XT=X+1:GOTO &deplacement
IF A=11 AND Y>0 THEN YT=Y-1:GOTO &deplacement
IF A=10 AND Y<47 THEN YT=Y+1:GOTO &deplacement
GOTO &press_key
&deplacement
OK=T(XT,YT) AND 4096
IF OK=0 GOTO &case_autorisee
POKE49081,1:PLOT 7,26,"d{placement interdit !!"
WAIT 200:GOTO &press_key
&case_autorisee
IF X=14 AND Y=25 THEN T(15,22)=T(15,22) AND #5FFF
IF X=14 AND Y=27 THEN T(15,22)=T(15,22) OR 4096
IF X=17 AND Y=21 THEN T(15,22)=T(15,22) AND #5FFF
IF X=17 AND Y=19 THEN T(15,22)=T(15,22) OR 4096
IF X<28 THEN T(29,6)=T(29,6) OR 4096:T(27,6)=T(27,6) AND #5FFF 
IF X<28 THEN T(27,6)=T(27,6) OR 4096:T(29,6)=T(29,6) AND #5FFF
X=XT:Y=YT
IF R=0 THEN &debut_boucle
&Retour_San_Jose
LOAD"RETOUR"

&Charge_scenario
SEARCH SC$
IF EF=1 THEN &charge_scenario_OK
PRINT"Vous n'avez pas de sc{nario !!!"
PRINT"Veuillez commencer par l'introduction"
PRINT"SVP, merci":GET A$:CLEAR:RELEASE:LOAD"DEBUT":END

&charge_scenario_OK
PLOT 2,26,"Chargement sc{nario :   0%"
OPEN S,SC$,1:REWIND 1
TAKE 1,X,Y,TT,MERC,MM
FORI=0TO16:TAKE 1,O%(I):NEXT I
CO=4:P$=STR$(CO):PLOT 27-LEN(P$),26,P$ 
FORJ=0TO47
CO=CO+2:P$=STR$(CO):PLOT 27-LEN(P$),26,P$
FORI=0TO35
TAKE 1,TTT%:T(I,J)=TTT%
NEXT I
NEXT J
CLOSE 1
RETURN

&Sauve_scenario
PLOT 2,26,"Sauvegarde sc{nario :   0%"
OPEN S,SC$,1:REWIND 1
PUT 1,X,Y,TT,MERC,MM
FORI=0TO16:PUT 1,O%(I):NEXT
CO=4:P$=STR$(CO):PLOT 27-LEN(P$),26,P$
FORJ=0TO47
CO=CO+2:P$=STR$(CO):PLOT 27-LEN(P$),26,P$
FORI=0TO35
TTT%=T(I,J):PUT 1,TTT%
NEXT
NEXT
CLOSE 1
RETURN

&null_screen
LOAD"null.bin":RETURN

&Appui_touche
GET T$:SHOOT:RETURN

&ter0
L1$=V$+"dans":L2$="la pampa"
IF EV<>0 THEN RETURN
N%=RND(1)*3:IF N%<>0 THEN RETURN
N%=RND(1)*6+RND(1)*6+22:EV=N%:RETURN
&ter1
L1$=V$+"sur":L2$="la route"
IF EV<>0 THEN RETURN
N%=RND(1)*2:IF N%=0 THEN RETURN
N%=RND(1)*6+51:EV=N%:RETURN
&ter2
L1$=V$+"en ville @":L2$=L$(K3)
IF EV<>0 THEN RETURN
N%=RND(1)*3
IF N%<>0 THEN N%=RND(1)*6+RND(1)*6+82:EV=N%:RETURN
IF O%(12)=0 AND O%(13)=0 AND O%(14)=0 THEN RETURN
GOSUB &null_screen
INK 3:PRINT@2,6;"Vous faites quelques affaires en ville..."
&enville1
IF O%(12)=0 THEN &enville2
PRINT:PRINT "Vous passez voir le sh{riff  et touchez"
PRINT "la prime pour";CHR$(134);O%(12);CHR$(131);
PRINT "Hors-la-loi :";CHR$(130);O%(12)*100;"$"
&enville2
IF O%(13)=0 THEN &enville3
PRINT:PRINT CHR$(134);O%(13);CHR$(131);
PRINT "p}pite(s) vendue(s). Celà vous rapporte :";
PRINT CHR$(130);O%(13)*50;"$"
&enville3 
IF O%(14)=0 THEN &enville4
PRINT:PRINT "Vous vendez vos peaux : ";CHR$(134);O%(14);CHR$(131);
PRINT "lot(s) pour";CHR$(130);O%(14)*80;"$"
&enville4
MM:=MM+O%(12)*100+O%(13)*50+O%(14)*80
FORI=12TO14:O%(I)=0:NEXTI
GET B$
RETURN
&ter3
L1$="Vous traversez":L2$="la rivi}re":RETURN
&ter4
L1$=V$+"dans":L2$="une for~t":RETURN
&ter5
L1$=V$+"dans le":L2$="CANYON DE LA MORT":RETURN
&ter6
L1$=V$+"sur":L2$="GUNS HILL":RETURN

&Inventaire
GOSUB &null_screen
INK 3:PRINT@2,6;"INVENTAIRE :"
FOR I=0TO15
IF O%(I)<>0 THEN PRINT CHR$(134);O%(I);CHR$(131);O$(I)
NEXT
GOSUB &Appui_touche
RETURN

&t1
LOAD"t1.bin"
GET A$:RETURN

&t2
IF (T(8,1) AND 8192)=8192 THEN RETURN
IF O%(0)=0 THEN LOAD"t50.bin" ELSE LOAD"t50b.bin"
O%(0)=1:TT=TT+1
GET A$:RETURN

&t3
LOAD"t3.bin":GET A$
IF A$<"1" OR A$>"3" THEN &t3
ON VAL(A$) GOTO &t63,&t97,&t64
&t63
IF O%(0)=0 THEN &t98b
&t98
LOAD"t98.bin":GET A$
IF A$<"0" OR A$>"3" THEN &t98
TT=TT+2
N%=VAL(A$):MERC=MERC+N%:MM=MM-N%*30
GOSUB &status
RETURN
&t98b
LOAD"t98b.bin":GET A$
T(8,1)=T(8,1) AND #5FFF
RETURN
&t97
LOAD"t97.bin":GET A$
IF A$<"1" OR A$>"2" THEN &t97
IF A$="2" THEN RETURN
TT=TT+1
GOSUB &Status
&t65
LOAD"t65.bin":GET A$
IF A$<>"o" OR A$<>"n" THEN &t65
IF A$="n" THEN RETURN
MERC=MERC+1:MM=MM-35
RETURN
&t64
LOAD"t64.bin":GET A$
IF A$<"1" OR A$>"2" THEN &t64
IF A$="2" THEN RETURN
&t99
N%=RND(1)*3
IF N%=0 THEN &t66
TT=TT+1
LOAD"t99.bin"
FOR I=1TO10:N%=RND(1)*100+10:WAIT N%:NEXT
GET A$:RETURN
&t66
LOAD"t66.bin"
GET A$:RETURN

'//////////////////////
&t4
RETURN

&t5
RETURN

&t6
RETURN

&t7
RETURN

&t8
RETURN

&t9
RETURN

&t10
RETURN

&t11
RETURN

&t12
RETURN

&t13
RETURN

&t14
RETURN

&t15
RETURN

&t16
RETURN

&t17
RETURN

&t18
RETURN

&t19
RETURN

&t20
RETURN

&t21
RETURN

&t22
RETURN

&t23
RETURN

&t24
RETURN

&t25
RETURN

&t26
RETURN

&t27
RETURN

&t28
RETURN

&t29
RETURN

&t30
RETURN

&t31
RETURN

&t32
RETURN

&t33
RETURN

&t34
RETURN

&t35
RETURN

&t36
RETURN

&t37
RETURN

&t38

RETURN

&t39
RETURN

&t40
RETURN

&t41
RETURN

&t42
RETURN

&t43
RETURN

&t51
RETURN

&t52
RETURN

&t53
RETURN

&t54
RETURN

&t55
RETURN

&t56
RETURN

&t82
RETURN

&t83
RETURN

&t84
RETURN

&t85
RETURN

&t86
RETURN

&t87
RETURN

&t88
RETURN

&t89
RETURN

&t90
RETURN

&t91
RETURN

&t92
RETURN

&status
CLS:PAPER0:INK7
LOAD"status.bin"
FORI=48000TO48039:POKEI,32:NEXT
POKE48000,22:POKE48001,4
FOR I=1 TO 20:A=ASC(MID$("Le H{ros de San Jos{",I,1))
POKE48010+I,A:NEXT
P$=STR$(MM)+"$"
PLOT 11,0,STR$(TT):PLOT 11,1,P$:PLOT 11,2,STR$(MERC)
P$=MID$(STR$(X),2)+"/"+MID$(STR$(Y),2)
PLOT 29,0,P$
K=T(X,Y)
K5=(K AND 8192)/8192:K4=(K AND 4096)/4096
K3=(K AND 3840)/256:K2=(K AND 224)/32+1
K1=K AND 31:L1$="":L2$="":EV=K1
ON K2 GOSUB &ter0,&ter1,&ter2,&ter3,&ter4,&ter5,&ter6 
PLOT 19,1,L1$:PLOT 19,2,L2$:RETURN

&fin
POKE #26A,35:POKE #20C,#FF
CLEAR:RELEASE:END
Unlabelized (regular Oric BASIC) :

Code: Select all

10 GRAB:CLEAR:R=0 
20 SC$="SAVED.DAT"
30 POKE #26A,10:POKE #20C,#7F:RESTORE
40 DIM T(35,47),O%(16),O$(16),T$(8),L$(10),RR%(60)
50 FORI=1TO10:READ L$(I):NEXT
60 FORI=0TO14:READ O$(I):NEXT
70 FORI=1TO60:READ RR%(I):NEXT
80 DATA "VULTURE CITY","ROCKPOINT","SOMETHING GULCH","SAN JOSE"
90 DATA "GRANDE VALLEE","SANTA MARIA","SAN MIGUEL","TORTILLAS CITY"
100 DATA "CINARON CITY","LOS DEMONOS"
110 DATA "Message pour le Ranch Monanza"
120 DATA "{chelle(s) de corde","corde(s)","torche(s)","lampe(s)"
130 DATA "lanterne(s)","selle(s)","bouteille de Tequila"
140 DATA "portrait(s) de Carlos 1er","Parchemin {crit en espagnol"
150 DATA "des infos sur la Hacienda Monasterio"
160 DATA "Potion(s) de soin pour cheval"
170 DATA "Hors-la-loi recherch{"
180 DATA "p{pite(s) d'or","lot(s) de peaux"
190 DATA 1540,1560,1610,1620,1630,1640,1650
200 DATA 1660,1670,1680,1690,1700,1710,1720
210 DATA 1730,1740,1750,1760,1770,1780,1790
220 DATA 1800,1810,1820,1830,1840,1850,1860
230 DATA 1870,1880,1890,1900,1910,1920,1930
240 DATA 1940,1950,1960,1970,1980,1990,2000
250 DATA 2010,2020,2030,2040,2050,2060,2070
260 DATA 2080,2090,2100,2110,2120,2130,2140
270 DATA 2150,2160,2170,2180
280 V$="Vous ~tes "
290 GOSUB 800
300 CLS:PAPER0:INK7
310 LOAD"status.bin"
320 FORI=48000TO48039:POKEI,32:NEXT
330 POKE48000,22:POKE48001,4
340 FOR I=1 TO 20:A=ASC(MID$("Le H{ros de San Jos{",I,1))
350 POKE48010+I,A:NEXT
360 P$=STR$(MM)+"$"
370 PLOT 11,0,STR$(TT):PLOT 11,1,P$:PLOT 11,2,STR$(MERC)
380 P$=MID$(STR$(X),2)+"/"+MID$(STR$(Y),2)
390 PLOT 29,0,P$
400 K=T(X,Y)
410 K5=(K AND 8192)/8192:K4=(K AND 4096)/4096
420 K3=(K AND 3840)/256:K2=(K AND 224)/32+1
430 K1=K AND 31:L1$="":L2$="":EV=K1
440 ON K2 GOSUB 1130,1170,1210,1430,1440,1450,1460 
450 PLOT 19,1,L1$:PLOT 19,2,L2$
460 'EVENEMENTS
470 IF EV=0 THEN 520
480 IF EV<=43 THEN GG=0
490 IF EV>=51 AND EV<=56 THEN GG=17
500 IF EV>=82 THEN GG=32
510 GOSUB RR%(EV-GG)
520 T(X,Y)=T(X,Y) OR 8192
530 LOAD"rt.bin"
540 GET A$:A=ASC(A$)
550 IF (A$="Q") THEN 2190
560 IF (A$="I") THEN GOSUB 1470:GOTO 300
570 IF (A$="S") THEN GOSUB 980:GOTO 300
580 IF (A$="C") THEN GOSUB 800:GOTO 300
590 IF (A$="R") THEN R=1:GOTO 300
600 IF (A<8) OR (A>11) THEN GOTO 530
610 XT=X:YT=Y
620 IF A=8 AND X>0 THEN XT=X-1:GOTO 670
630 IF A=9 AND X<35 THEN XT=X+1:GOTO 670
640 IF A=11 AND Y>0 THEN YT=Y-1:GOTO 670
650 IF A=10 AND Y<47 THEN YT=Y+1:GOTO 670
660 GOTO 530
670 OK=T(XT,YT) AND 4096
680 IF OK=0 GOTO 710
690 POKE49081,1:PLOT 7,26,"d{placement interdit !!"
700 WAIT 200:GOTO 530
710 IF X=14 AND Y=25 THEN T(15,22)=T(15,22) AND #5FFF
720 IF X=14 AND Y=27 THEN T(15,22)=T(15,22) OR 4096
730 IF X=17 AND Y=21 THEN T(15,22)=T(15,22) AND #5FFF
740 IF X=17 AND Y=19 THEN T(15,22)=T(15,22) OR 4096
750 IF X<28 THEN T(29,6)=T(29,6) OR 4096:T(27,6)=T(27,6) AND #5FFF 
760 IF X<28 THEN T(27,6)=T(27,6) OR 4096:T(29,6)=T(29,6) AND #5FFF
770 X=XT:Y=YT
780 IF R=0 THEN 300
790 LOAD"RETOUR"
800 SEARCH SC$
810 IF EF=1 THEN 850
820 PRINT"Vous n'avez pas de sc{nario !!!"
830 PRINT"Veuillez commencer par l'introduction"
840 PRINT"SVP, merci":GET A$:CLEAR:RELEASE:LOAD"DEBUT":END
850 PLOT 2,26,"Chargement sc{nario :   0%"
860 OPEN S,SC$,1:REWIND 1
870 TAKE 1,X,Y,TT,MERC,MM
880 FORI=0TO16:TAKE 1,O%(I):NEXT I
890 CO=4:P$=STR$(CO):PLOT 27-LEN(P$),26,P$ 
900 FORJ=0TO47
910 CO=CO+2:P$=STR$(CO):PLOT 27-LEN(P$),26,P$
920 FORI=0TO35
930 TAKE 1,TTT%:T(I,J)=TTT%
940 NEXT I
950 NEXT J
960 CLOSE 1
970 RETURN
980 PLOT 2,26,"Sauvegarde sc{nario :   0%"
990 OPEN S,SC$,1:REWIND 1
1000 PUT 1,X,Y,TT,MERC,MM
1010 FORI=0TO16:PUT 1,O%(I):NEXT
1020 CO=4:P$=STR$(CO):PLOT 27-LEN(P$),26,P$
1030 FORJ=0TO47
1040 CO=CO+2:P$=STR$(CO):PLOT 27-LEN(P$),26,P$
1050 FORI=0TO35
1060 TTT%=T(I,J):PUT 1,TTT%
1070 NEXT
1080 NEXT
1090 CLOSE 1
1100 RETURN
1110 LOAD"null.bin":RETURN
1120 GET T$:SHOOT:RETURN
1130 L1$=V$+"dans":L2$="la pampa"
1140 IF EV<>0 THEN RETURN
1150 N%=RND(1)*3:IF N%<>0 THEN RETURN
1160 N%=RND(1)*6+RND(1)*6+22:EV=N%:RETURN
1170 L1$=V$+"sur":L2$="la route"
1180 IF EV<>0 THEN RETURN
1190 N%=RND(1)*2:IF N%=0 THEN RETURN
1200 N%=RND(1)*6+51:EV=N%:RETURN
1210 L1$=V$+"en ville @":L2$=L$(K3)
1220 IF EV<>0 THEN RETURN
1230 N%=RND(1)*3
1240 IF N%<>0 THEN N%=RND(1)*6+RND(1)*6+82:EV=N%:RETURN
1250 IF O%(12)=0 AND O%(13)=0 AND O%(14)=0 THEN RETURN
1260 GOSUB 1110
1270 INK 3:PRINT@2,6;"Vous faites quelques affaires en ville..."
1280 IF O%(12)=0 THEN 1320
1290 PRINT:PRINT "Vous passez voir le sh{riff  et touchez"
1300 PRINT "la prime pour";CHR$(134);O%(12);CHR$(131);
1310 PRINT "Hors-la-loi :";CHR$(130);O%(12)*100;"$"
1320 IF O%(13)=0 THEN 1360
1330 PRINT:PRINT CHR$(134);O%(13);CHR$(131);
1340 PRINT "p}pite(s) vendue(s). Celà vous rapporte :";
1350 PRINT CHR$(130);O%(13)*50;"$"
1360 IF O%(14)=0 THEN 1390
1370 PRINT:PRINT "Vous vendez vos peaux : ";CHR$(134);O%(14);CHR$(131);
1380 PRINT "lot pour";CHR$(130);O%(14)*80;"$"
1390 MM:=MM+O%(12)*100+O%(13)*50+O%(14)*80
1400 FORI=12TO14:O%(I)=0:NEXTI
1410 GET B$
1420 RETURN
1430 L1$="Vous traversez":L2$="la rivi}re":RETURN
1440 L1$=V$+"dans":L2$="une for~t":RETURN
1450 L1$=V$+"dans le":L2$="CANYON DE LA MORT":RETURN
1460 L1$=V$+"sur":L2$="GUNS HILL":RETURN
1470 GOSUB 1110
1480 INK 3:PRINT@2,6;"INVENTAIRE :"
1490 FOR I=0TO15
1500 IF O%(I)<>0 THEN PRINT CHR$(134);O%(I);CHR$(131);O$(I)
1510 NEXT
1520 GOSUB 1120
1530 RETURN
1540 LOAD"t1.bin"
1550 GET A$:RETURN
1560 PRINT@2,6;T%(8,1)
1570 IF (T%(8,1) AND 8192)=8192 THEN RETURN
1580 IF O%(0)=0 THEN LOAD"t50.bin" ELSE LOAD"t50b.bin"
1590 O%(0)=1:TT=TT+1
1600 GET A$:RETURN
1610 RETURN
1620 RETURN
1630 RETURN
1640 RETURN
1650 RETURN
1660 RETURN
1670 RETURN
1680 RETURN
1690 RETURN
1700 RETURN
1710 RETURN
1720 RETURN
1730 RETURN
1740 RETURN
1750 RETURN
1760 RETURN
1770 RETURN
1780 RETURN
1790 RETURN
1800 RETURN
1810 RETURN
1820 RETURN
1830 RETURN
1840 RETURN
1850 RETURN
1860 RETURN
1870 RETURN
1880 RETURN
1890 RETURN
1900 RETURN
1910 RETURN
1920 RETURN
1930 RETURN
1940 RETURN
1950 RETURN
1960 RETURN
1970 RETURN
1980 RETURN
1990 RETURN
2000 RETURN
2010 RETURN
2020 RETURN
2030 RETURN
2040 RETURN
2050 RETURN
2060 RETURN
2070 RETURN
2080 RETURN
2090 RETURN
2100 RETURN
2110 RETURN
2120 RETURN
2130 RETURN
2140 RETURN
2150 RETURN
2160 RETURN
2170 RETURN
2180 RETURN
2190 POKE #26A,35:POKE #20C,#FF
2200 CLEAR:RELEASE:END
User avatar
waskol
Flight Lieutenant
Posts: 414
Joined: Wed Jun 13, 2007 8:20 pm
Location: FRANCE, Paris

Post by waskol »

With the advice of DBUG, this tools was updated again.
Now you can comment lines. More over a "Bonus Demo" was added and the help file improved.

In order to download, please follow the link given in the first post.
Post Reply