*** empty log message ***

This commit is contained in:
em 1985-01-24 11:27:36 +00:00
parent 1732114593
commit 410800127c
51 changed files with 863 additions and 0 deletions

10
lang/basic/test/Makefile Normal file
View file

@ -0,0 +1,10 @@
SRC= bull.b buzzword.b checker.b creator.b grafiek.b gunner.b learn.b\
opg1.b opg2.b opg3.b opg4.b opg5.b opg6.b som4.b test01.b test02.b\
test03.b test04.b test05.b test06.b test07.b test08.b test09.b\
test10.b test11.b test12.b test13.b test14.b test15.b test16.b\
test17.b test18.b test19.b test20.b test21.b test22.b test23.b\
test24.b test25.b test26.b test27.b test28.b test29.b test30.b\
test31.b test32.b test33.b test34.b test35.b
head:
for i in $(SRC) ; do runcmp $$i ; done

37
lang/basic/test/bull.b Normal file
View file

@ -0,0 +1,37 @@
10 rem *** bullseye
20 print "game of bullseye":print:randomize
30 print "in this game, up to 20 players throw darts at a target"
40 print "with 10,20,30, and 40 point zones. The objective is"
50 print "toget 200 point.":print
60 print "throw","description",,"probable score"
70 print " 1","fast overarm",,"bullseye or complete miss"
80 print " 2","controlled overarm","10,20,30 points"
90 print " 3","underarm",,"anything":print
100 dim a$(20),s(20),w(10):r=0:m=0: for i=1 to 20:s(i)=0:nexti
110 input ;"how many players";n:print
120 for i=1 to n
130 print "name of player" i; : input a$(i)
140 nexti
150 r=r+1:print:print "round" r
160 for i=1 to n
170 print:print a$(i)"'s throw";:input t
180if t<1 or t>3 then print "input 1, 2, or 3":goto 170
190 on t goto 200,210,220
200 p1=.65:p2=.55:p3=.5:p4=.5:goto 230
210p1=.99:p2=.77:p3=.43:p4=.01:goto 230
220 p1=.95:p2=.75:p3=.45:p4=.05
230 u=rnd(0):print "rnd="u
240 if u>=p1 then print "BULLSEYE!! 40 points":b=40:goto 290
250 if u>=p2 then print "30-point zone":b=30:goto 290
260 if u>=p3 then print "20-point zone":b=20:goto 290
270 if u>=p4 then print "WHEH! 10 points":b=10:goto 290
280 print "missed the target. too bad!":b=0
290 s(i)=s(i)+b:print "total score="s(i):next i
300 fori=1 to n
310 if s(i)>=200 then m=m+1:w(m)=i
320 nexti
330 if m=0 then150
340 print :print "We have a winner!!":print
350 print a$(w(m))" scored"s(w(m))"points."
360 for i=1 to m
370 print:print "thanks for the game!":nexti:end

View file

@ -0,0 +1,66 @@
100 print "This computer program demonstration us a new aid for"
110 print "preparing speeches and briefings. It's a buzzword"
120 print "generator which provides you with a set of three higly"
130 print "acceptablewords to work into your material. The words"
140 print "don't actually mean anything, but they sound great."
150 print
160 print "the procedure:"
170 print ,"Think of any three numbers between 0 and 9, enter"
180 print , "them after the '?' separated by commas. your"
190 print ,"buzzword will be printed out. Typing "100" for"
200 print ,"each of your choices stops this program."
210 print "What are your three numbers";
220 goto 260
230 print
240 print
250 print "Three more numbers";
260 input n,m,p
265 if n= 100 then 1290
267 print "continue"
270 if n<0 then 1240
280 if p<0 then 1240
290 if m<0 then 1240
300 if m>9 then 1240
310 if p>9 then 1240
320 if n>9 then 1240
330 print
340 on n+1 goto 640,660,680,700,720,740,760,780,800,820
440 on m+1 goto 840,860,880,900,920,940,960,980,1000,1020
540 on p+1 goto 1040,1060,1080,1100,1120,1140,1160,1180,1200,1220
640 print " integrated";: goto 440
660 print " total";: goto 440
680 print " systematized";: goto 440
700 print " parallel";: goto 440
720 print " functional";: goto 440
740 print " responsive";: goto 440
760 print " optimal";: goto 440
780 print " synchronized";: goto 440
800 print " compatible";: goto 440
820 print " balanced";: goto 440
840 print " management"; : goto 540
860 print " organizational"; : goto 540
880 print " monitored"; : goto 540
900 print " reciprocal"; : goto 540
920 print " digital"; : goto 540
940 print " logistical"; : goto 540
960 print " transitional"; : goto 540
980 print " incremental"; : goto 540
1000 print " fifth-generation"; : goto 540
1020 print " policy"; : goto 540
1040 print " options";: goto 230
1060 print " flexibility";: goto 230
1080 print " capability";: goto 230
1100 print " mobility";: goto 230
1120 print " programming";: goto 230
1140 print " concept";: goto 230
1160 print " time-phase";: goto 230
1180 print " projection";: goto 230
1200 print " hardware";: goto 230
1220 print " contingency";: goto 230
1240 print
1260 print
1270 print "numbers must be between 0 and 9, please select three more."
1280 goto 260
1290 print "Goodbye for now."
1300 print:print:print
1310 end

192
lang/basic/test/checker.b Normal file
View file

@ -0,0 +1,192 @@
100 print "This program will play checkers. The computer us X,"
110 print "and you are 0. The computer will go first, -note: squares"
120 print "are printed in the form-(X,Y) and sq. 1.1 is the bottom left!"
130 print "do not attempt a double jump or your piece might just"
140 print "disappear (same for triple!)"
150 print " Wait for the computer to move!!!!!!"
700 g=-1
800 dim r(50)
900 let l=-1
1000 dim s(10,10)
1100 data 1,0,1,0,0,0,-1,0,0,1,0,0,0,-1,0,-1,15
1200 for x=1to8
1300 fory=1to8
1400 read j
1500 if j=15 then 1800
1600 s(x,y)=j
1700 goto 2000
1800 restore
1900 reads(x,y)
2000 nexty
2100 nextx
2200 rem
2300 l=-1*l
2400 for x=1to 8
2500 for y=-1to8
2600 if s(x,y)=0 then 3500
2700 if g>0 then 3000
2800 if s(x,y)>0 then 3500
2900 goto 3100
3000 if s(x,y)<0 then 3500
3100 if abs(s(x,y))<>1 then 3300
3200 gosub 4300
3300 if abs(s(x,y))<>2 then 3500
3400 gosub 6500
3500 if x<>8 then 3800
3600 if l=1 then 3800
3700 rem return
3800 nexty
3900 nextx
4000 print
4100 gosub 11400
4200 goto 2300
4300 for a=-1 to 1 step2
4400 let u=x+a
4500 let v=y+g
4600 if u<1 then 6300
4700 if u>8 then 6300
4800 if v<1 then 6300
4900 if v>8 then 6300
5000 if s(u,v) <> 0 then 5300
5100 gosub 9100
5200 goto 6300
5300 if s(u,v)=g then 6300
5400 if s(u,v)=2*g then 6300
5500 u=u+a
5600 v=v+g
5700 if u<1 then 6300
5800 if u>8 then 6300
5900 if v<1 then 6300
6000 if v>8 then 6300
6100 if s(u,v)<>0 then 6300
6200 gosub 9100
6300 next a
6400 return
6500 rem king moves
6600 for a=-1 to 1 step2
6700 forb=-1to 1step2
6800 u=x+a
6900 v=y+b
7000 if u<1 then 8700
7100 if u>8 then 8700
7200 if v<1 then 8700
7300 if v.8 then 8700
7400 if s(u,v)<>0 then 7700
7500 gosub 9100
7600 goto 8700
7700 if s(umv)=g then 8700
7800 if s(u,v)=2*g then 8700
7900 u=u+a
8000 v=v+b
8100 if u<1 then 8700
8200 if u>8 then 8700
8300 if v<1 then 8700
8400 if v>8 then 8700
8500 if s(u,v)<>0 then 8700
8600 gosub 9100
8700 next b
8800 next a
8900return
9000 goto 14200
9100 rem
9200 p=p+1
9300 if p=k then 12300
9400 if v<>(4.5+(3.5*g)) then 9600
9500 q=q+2
9600 if x<>(4.5-(3.5*g)) then9800
9700 q=q-2
9800 rem
9900 if u<>1 then 10100
10000 q=q+1
10100 if u<> 8 then 10300
10200 q=q+1
10300 for c=-1 to 1 step 2
10400 if s(u+c,v+g)<1 then 10800
10500 q=q-1
10600 if s(u-c,v-g) <> 0 then 10800
10700 q=q-1
10800 rem this was the evaluation section
10900 rem
11000 next c
11100 r(p)=q
11200 q=0
11300 return
11400 if p=0 then 18800
11500 for j=10to-10step -1
11600for f=1to p
11700 if r(f)=j then 12000
11800 next f
11900 next j
12000 let k=f+p
12100 print "retry": gosub 2300
12200 return
12300 print " I move from ("X Y") to("U;V")"
12400 letf=0
12500 p=0
12600 k=0
12700 if v<>(4.5+(3.5*g)) then 13000
12800 s(u,v)=s*g
12900 goto 13100
13000 let s(u,v)=s(x,y)
13100 let s(x,y)=0
13200 if(abs(x-u))<>2 then 13400
13300 s((x+u)/2,(y+v)/2)=0
13400 print "board";
13500 input d$
13600 if d$<>"yes" then 13900
13700 gosub 14100
13800 return
13900 gosub 15800
14000 return
14100 print
14200 for y=8to1step -1
14300 for x=1to8
14400 i=2*x
14500 if s(x,y)<>0 then14700
14600 print tab(i)".";
14700 if s(x,y)<>1 then 14900
14800 print tab(i)"0"
14900 if s(x,y)<>-1then 15100
15000 print tab(i)"X"
15100 if s(x,y)<>-2 then 15300
15200 print tab(i)"X";tab(I)"*"
15300 if s(x,y)<>2 then 15500
15400 print tab(i)"O";tab(I)"*"
15500 next x
15600 print
15700 next y
15800 print
15900 print "from";
16000 input e,h
16100 x=e
16200 y=h
16300 if s(x,y)<>0 then 16700
16400 print "there is no one occupying that space"
16500 print
16600 goto 15900
16700 print "to";
16800 input a,b
16900 x=a
17000 y=b
17100 if s(x,y)=0 then 17500
17200 print "that space is already occupied"
17300 print
17500 rem
17400 goto 16700
17600 s(a,b)=s(e.h)
17700 s(e,h)=0
17800 t=(4.5-(3.5*g))
17900 if abs(e-a)<>2 then 18100
18000 s((e+a)/2,(h+b)/2)=0
18100 if b<>t then 18300
18200 s(a,b)= -2*g
18300 for x=8to8
18400 for y=8to8
18500 return
18600 nexty
18700 next x
18800 print " very good, you win"
18900 print:print
19100 print " chuck out"
19200 end

30
lang/basic/test/creator.b Normal file
View file

@ -0,0 +1,30 @@
10 rem The Creator
20 rem 80 micro jan 1983
70 clear 3000
80 print"This is the Creator. It will allow you to generate"
90 print"a progam which will create and access a data file."
100 print"For later use. Please type the proposed program name."
110 print"You are limited to 8 alphabetic characters."
120 print" program name=";:lineinputpn$
130 fori=1tolen(pn$):a$=mid$(pn$,i,1):ifa$>"z"ora$<"A"thenprint"alpha characters only!":goto 120
140 nexti
150 iflen(pn$)>8thenprint"too long":goto 120
160 print"when the proposed program is run, which drive contains the"
170 print"data file(0-3)?";
180 an$=inkey$:ifan$="" then 180 elseif(an$>"3"oran$<"0")then170
190 printan$
200 print"which drive do you want the program written on? (0-3)";
210 dn$=inkey$:ifdn$="" then 210 elseif(dn$>"3"ordn$<"0")then200
240 print#1," 1 rem*******Program name:";pn$;"*******"
250 print#1," 2 rem*******Data File name:";df$;"*****"
260 print#1," 3 rem*******Data File is on drive";ans$;"******"
270 input"What is the maximum data file size, in # of records";ms
280 input"What is the record length(1-255)";rr:ifrr<0orrr>255then280 else r%=256/rr
290 ifms*256/r%>85760thenprint"not enough room on a single disk for this.":goto 270
300 print#1,"4 rem ******maximum file size is";ms;"records******"
310 print#1,"5 rem****** record length is";rr;"packed";r%;"per sector"
320 q$=chr$(34)
330 print"please type in a title for your generated program.":lineinputti$
340 ln=ln+10:print#1,ln;"rem change disks reinitialize here"
350 ln=ln+10

55
lang/basic/test/grafiek.b Normal file
View file

@ -0,0 +1,55 @@
0015 print
0020 for f =2 to 72 step 2
0030 print tab (f) "-" ;
0040 next f
0043 print
0045 c= 30
0050 for x=6 to 360 step 12
0060 a=30 +25*sin(x*0.01745329)
0070 b=30+25*cos(x*0.01745329)
0080 if a=c then 0130
0090 if b=c then 0190
0100 if a=b then 0230
0110 if a>c then 0290
0120 if c>a then 0380
0130 if a>b then 0360
0140 ifb>a then 0170
0150 print tab(b) "." tab(a) "*"
0160 goto 0460
0170 print tab(a) "*" tab(b) "."
0180 goto 0460
0190 if a>b then 0210
0200 if b>a then 0220
0210 goto 0150
0220 goto 0170
0230 if a>c then 0250
0240 if c>a then 0270
0250 print tab(c) "I" tab(a) "*"
0260 goto 0460
0270 print tab(a) "*" tab(c) "I"
0280 goto 0460
0290 if b>a then 0340
0300 if a>b then 0302
0302 if c>b then 0320
0305 if b<a then 0360
0310 if b>c then 0360
0320 print tab(b) "." tab(c) "I" tab(a) "*"
0330 goto 0460
0340 print tab(c) "I" tab(a) "*" tab(b) "."
0350 goto 0460
0360 print tab(c) "I" tab(b) "." tab(a) "*"
0370 goto 0460
0380 if a>b then 0430
0385 if c>b then 0410
0387 if b>c then 0450
0395 if a>b then 0410
0400 if b>a then 0450
0410 print tab(a) "*" tab(b) "." tab(c) "I"
0420 goto 0460
0430 print tab(b) "." tab(a) "*" tab(c) "I"
0440 goto 0460
0450 print tab(a) "*" tab(c) "I" tab(b) "."
0460 next x
0470 end

58
lang/basic/test/gunner.b Normal file
View file

@ -0,0 +1,58 @@
10 rem gunner program
90 randomize
100 print "this program simulates the results "
110 print "of firing a field artillery weapon"
120 print
130 print "you are the officer-in-charge, giving orders to the gun"
140 print "crew, telling them the degrees of elevation you estimate"
150 print "will place the projectile on target. A hit within 100 yards"
160 print "of the target will destroy it. Take more than 5 shots,"
170 print "end the enemy will destroy you!":print
180 print "maximum range of your gun is 46500 yards."
185 z=0
190 print
195 s1=0
200 t= 43000-30000*rnd(x)
210 s=0
220 goto 370
230 print"minimum elevation of the gun is one degree."
240 goto 390
250 print "maximum elevation of gun is 89 degrees."
260 goto 390
270 print "over target by";abs(e);"yards"
280 goto 390
290 print "short of target by";abs(e);"yards"
300 goto 390
310 goto 320
320 print "*****target destroyed ****";s;"rounds of ammunition expended"
322 gosub 600
325 s1=s1+s
330 if z=4 then 490
340 z=z+1
345 print
350 print "the forward observer has sighted more enemy activity."
360 goto 200
370 print " distance to the target is";int(t);"yards...."
380 print
390 print
400 print "elevation";
410 input b
420 if b>89 then 250
430 if b<1 then 230
440 s=s+1
442 if s<6 then 450
444 print:print "BOOM !!! You have been destroyed";
445 gosub 600
446 print "by the enemy":print:print:goto 495
450 b2=2*b/57.3:let i=46500*sin(b2):x=t-i:e=int(x)
460 if abs(e)<100 then 310
470 if e>100 then 290
480 if e<-100 then 270
490 print:print:print "total rounds expended were";s1
491 if s1>15 then 495:print "nice shooting!!":gosub 600:goto 500
495 print "better go back to fort silly for refresher training!"
500 print:print "thank you for playing!"
505 print:print "try again....":print:goto 180
600 rem for n=1 to 10 print chr$(7): rem next n
610 return
999 end

25
lang/basic/test/learn.b Normal file
View file

@ -0,0 +1,25 @@
10 REM Learning program I
15 dim variable(10), rank(10), varname$(10)
20 input "how many variable have you";v
30 for i=1to v :variable(i)=0:rank(i)=0:next i
40 print "please name these variable"
50 for i=1to v: input "variable name";varname$(i):next i
60 print "Please name the outcomes"
70 input "outcome 1";q1$
80 input "outcome 2"; q2$
90 for i=1 to v:variable(i)=0
100 print "variable ";varname(i);
110 input "is this variable the case";a$
120 if a$="y" then variable(i)=1
130 next i
140 d=0
150 for i=1 to v
160 d=d+variable(i)* rank(i)
170 next i
175 print "conclusion: ";d;
180 if d>=0 then print q1$
190 if d<0 then print q2$
195 input "is this right";a$:if a$="y" then:goto 90
200 if d>=0 and a$="n" then: for i=1 to v:rank(i)=rank(i)-variable(i):next i
210 if d<0 and a$="n" then: for i=1 to v:rank(i)=rank(i)+variable(i):next i
220 goto 90

6
lang/basic/test/opg1.b Normal file
View file

@ -0,0 +1,6 @@
100 rem interest rate program page 33
110 read m,d,p,n
300 let r= m * d /(p*(n+1)) * 200
400 print "percent interest is",r
500 data 12, 320, 3000, 36
600 end

16
lang/basic/test/opg2.b Normal file
View file

@ -0,0 +1,16 @@
100 rem Square root program (47)
110 rem this program uses the newton raphson
120 rem technique to calculate the square root
130 read a,e
140 let x =(a+2)/3
150 let x1= (x+a/x)*.5
160 rem determine absolute value of x1-x
170 let n= x1-x
180 if n>= 0 then 200
19 let n= 0-n
200 if n<e then 230
210 let x=x1
220 goto 150
230 print "square root of",a,"equals",x1
240 end
250 data 81, .01

12
lang/basic/test/opg3.b Normal file
View file

@ -0,0 +1,12 @@
010 rem values of n using if-then loop
020 print "n","n2","n3","1/n","square root"
030 let n=1
040 let n2= n*n
050 let n3= n*n*n
060 let r= 1/n
070 let s= n^ .5
080 print n,n2,n3,r,s
090 if n>= 20 then 120
100 let n= n+1
110 goto 40
120 end

10
lang/basic/test/opg4.b Normal file
View file

@ -0,0 +1,10 @@
010 rem values of n using for loop (52)
020 print "n","n2","n3","1/n","square root"
030 for n=1 to 20
040 let n2= n*n
050 let n3= n*n*n
060 let r= 1/n
070 let s= n^ .5
080 print n,n2,n3,r,s
090 next n
120 end

13
lang/basic/test/opg5.b Normal file
View file

@ -0,0 +1,13 @@
10 rem find largest number (57)
20 read l
30 let r=0
40 for z=1 to l
50 read a
60 if a<=r then 80
70 let r=a
80 next z
90 print "largest number is",r
100 data 10
110 data 106, 42,-12,111,88,91,3,263,-1042,7
120 end

14
lang/basic/test/opg6.b Normal file
View file

@ -0,0 +1,14 @@
1000 rem Temperature conversion
1010 print "fahrenheit","centrigrade","kelvin","rankin"
1020 for s= 1 to 5
1030 print
1040 next s
1050 for i= 1 to 12
1060 read f
1070 let c= 5/9 *(f-32)
1080 let k = c+273
1090 let r= f+ 460
1100 print f,c,k,r
1110 next i
1120 data 144, 36,110,98,63,26,14,78,66,51,107,2
1130 end

23
lang/basic/test/runcmp Executable file
View file

@ -0,0 +1,23 @@
echo -n $1 " "
if abc - -o $1.x $1
then
if $1.x >$1.r
then :; else
echo -n "------- execution error(s)"
fi
if diff $1.g $1.r >$1.d 2>/dev/null
then
echo -*- Ok
else
if test -r $1.g
then
echo ------- differences in executing $1
cat $1.d
else
mv $1.r $1.g
fi
fi
rm $1.[rd]
else
echo "------- compilation error(s)"
fi

17
lang/basic/test/som4.b Normal file
View file

@ -0,0 +1,17 @@
0010 print " beginwaarde =a"
0020 input a
0030 print "eindwaarde =b"
0040 input b
0050 if b<a then 0130
0060 n=a
0070 if n<0 then 0200
0080 print "n=",n;" wortel uit n=",sqr(n)
0090 if n=b then 0120
0100 n=n+1
0110 goto 0070
0120 end
0130 print "b moet groter zijn dan a"
0140 end
0200 print "n=",n,"n is negatief, de oplossing is leeg"
0210 goto 0100

5
lang/basic/test/test01.b Normal file
View file

@ -0,0 +1,5 @@
100 print "hello world"
110 let s$="a happy 1984"
120 print s
130 s= s+" !! "
140 print s

2
lang/basic/test/test02.b Normal file
View file

@ -0,0 +1,2 @@
110 print 1:print 2
120 print 1+2 ' This is nice

2
lang/basic/test/test03.b Normal file
View file

@ -0,0 +1,2 @@
100 rem this is comment
110 print 1: rem this is skipped : print 2

5
lang/basic/test/test04.b Normal file
View file

@ -0,0 +1,5 @@
100 let a=1:print a
110 let b%=2:print b
120 let c!= 1.0:print c
125 let d#= 12.0:print d
130 let s$= "hello":prints

7
lang/basic/test/test05.b Normal file
View file

@ -0,0 +1,7 @@
100 defint a-c,d
110 defstr s,t
120 defdbl f
125 a=1.13
127 s="hello"
128 print a,s
130 stop

5
lang/basic/test/test06.b Normal file
View file

@ -0,0 +1,5 @@
5 print 1<2
10 while i<12
12 print i
14 i= i+1
15 wend

6
lang/basic/test/test07.b Normal file
View file

@ -0,0 +1,6 @@
100 print "whiletest"
105 i%=1
110 while i
120 print "a happy 1984"
123 input i
124 wend

8
lang/basic/test/test08.b Normal file
View file

@ -0,0 +1,8 @@
100 print "start"
110 goto 130
115 print "fail 115"
120 print "line 120"
125 goto 140
127 print "fail 127"
130 goto 120
140 print "end"

18
lang/basic/test/test09.b Normal file
View file

@ -0,0 +1,18 @@
100 if -1 then print "ok" else print "error1"
110 if 1>0 then print "ok2" elseprint "error2"
120 if 1<2 then print "1<2" else print "error 1<2"
130 if 1<0 then print "error 1<0" else print "1<0 "
220 if 1<=2 then print "1<=2" else print "error 1<=2"
230 if 1<=0 then print "error 1<=0" else print "1<=0 "
320 if 1>2 then print "error 1>2" else print "1>2"
330 if 1>0 then print "1>0" else print "error 1>0 "
420 if 1>=2 then print "error 1>=2" else print "1>=2"
430 if 1>=0 then print "1>=0" else print "error 1>=0 "
500 if -1 and -1 then print "-1 and -1" else print "error -1 and -1"
510 if -1 and 0 then print "error -1 and 0" else print "-1 and 0"
520 if -1 or -1 then print "-1 or -1" else print "error -1 and -1"
530 if -1 or 0 then print "-1 or 0" else print"error -1 or 0"
540 if 0 or 0 then print "error 0 or 0" else print "0 or 0"
600 if 1<1 then print "error 1<1" else print "1<1"
605 i=100
610 if i=100 then print "i=100" else print "error i=100"

7
lang/basic/test/test10.b Normal file
View file

@ -0,0 +1,7 @@
100 rem compound goto
110 leti=1:print i
120 on i goto 130, 140, 150
121 printi"end":stop
130 print "line130":i=i+1:goto120
140 print "line140":i=i+1:goto120
150 print "line150":i=i+1:goto120

4
lang/basic/test/test11.b Normal file
View file

@ -0,0 +1,4 @@
100 rem the first forloop
110 for i=1 to 4 step2
120 print i
130 nexti

6
lang/basic/test/test12.b Normal file
View file

@ -0,0 +1,6 @@
100 gosub 200
110 print "succeeded"
120 stop
200 print "subroutine"
210 return

7
lang/basic/test/test13.b Normal file
View file

@ -0,0 +1,7 @@
100 rem compound goto
110 leti=1:print i
120 on i gosub 130, 140, 150
121 printi"end":stop
130 print "line130":i=i+1:return
140 print "line140":i=i+1:return
150 print "line150":i=i+1:return

11
lang/basic/test/test14.b Normal file
View file

@ -0,0 +1,11 @@
100 dim a(13)
101 print "help",a(1)
102 a(1)=3: print "ok"
103 print a(1)
107 for i=0 to 13
108 a(i)=i*i
109 nexti
112 for i=0 to 13
113 print i, a(i)
114 nexti
115 a(-4)= 3

6
lang/basic/test/test15.b Normal file
View file

@ -0,0 +1,6 @@
100 rem non-declared array test
110 s$(1)= "menu"
120 s(2)= "enter date"
130 print s(1)
140 print s(2)
150 print s(3)

11
lang/basic/test/test16.b Normal file
View file

@ -0,0 +1,11 @@
100 rem two dimensional array
110 dim table(3,3)
120 for i=0 to 3
130 for j=0 to 3
135 print i,j
140 table(i,j)= i*j
150 next j,i
160 print "filled"
170 for i=0 to 3
180 print table(i,i)
190 nexti

3
lang/basic/test/test17.b Normal file
View file

@ -0,0 +1,3 @@
100 rem first trap handling test
110 print 1/0
120 print "divide error not catched"

11
lang/basic/test/test18.b Normal file
View file

@ -0,0 +1,11 @@
110 rem second trap test
120 on error goto 200
130 print 1/o
140 print "division error not catched"
200 print "division error catched", err, erl
210 on error goto 500
220 print "waiting for interrupt"
230 goto 230
500 print "interrupt catched"
510 print "generate error 352"
520 error 352

15
lang/basic/test/test19.b Normal file
View file

@ -0,0 +1,15 @@
100 read a
110 print a
120 restore
130 read b
140 print b
142 restore
143 restore 170
144 read b,c
145 print b,c
146 print "try to read beyond eof"
147 read d
148 print d
150 data 6
170 data 8,9
180 end

9
lang/basic/test/test20.b Normal file
View file

@ -0,0 +1,9 @@
100 read a
110 read b
120 read c,d, e
130 let x=a+b+c+d
140 print a,b,c,d,e,x
150 data 6
160 data 7,3
170 data 142, 0
180 end

10
lang/basic/test/test21.b Normal file
View file

@ -0,0 +1,10 @@
80 open "i",#3,"tst/data"
100 input #3, a
105 print a
110 input #3, b
115 print b
120 input #3, c,d
125 print c,d
130 let x=a+b+c+d
140 print a,b,c,d,x
180 end

9
lang/basic/test/test22.b Normal file
View file

@ -0,0 +1,9 @@
10 open "i", #6, "tst/data1"
20 input #6, s$
30 print s$
40 input #6, s1$
50 print s1$
60 print "try to read beyond"
70 input #6, s$
80 print s$
90 end

11
lang/basic/test/test23.b Normal file
View file

@ -0,0 +1,11 @@
100 print "testing input from terminal"
130 input "integer"; a
140 print a
220 input "float:", a
240 print a
330 input b$
340 print b$
350 input ; "c and d "; c,d
360 print c,d
400 end

8
lang/basic/test/test24.b Normal file
View file

@ -0,0 +1,8 @@
100 rem float arithmetic
110 print "1.0+3.14=" 1.0+3.14
115 a= 1.0+3.14: print a
120 print "3.19*23.6=", 3.19*23.6
125 b= 3.19*23.6: print b
220 print "3.19*(23.6+23)=", 3.19*(23.6+23)
225 b= 3.19*(23.6+23): print b
230 end

7
lang/basic/test/test25.b Normal file
View file

@ -0,0 +1,7 @@
100 rem declare parameterless functions
120 def fnpi= 3.14
130 print fnpi, fnpi+2
140 def fnsqr(x)= x*x
150 print fnsqr(2.0)
240 def fnpow(x,k)= x-k
250 print fnpow(2.0,3.0)

17
lang/basic/test/test26.b Normal file
View file

@ -0,0 +1,17 @@
70 print "cint" cint(45.67), cint(-45.67)
80 print "fix" fix(58.75), fix(-58.75)
90 print "int" int(99.98), int(-12.11)
100 print "abs" abs(-1), abs(-3.14), abs(1), abs(1.0), abs(-0)
110 print "sgn" sgn(-1), sgn(-3.14), sgn(1), sgn(1.0), sgn(-0)
120 print "asc" asc("a"), asc("0")
130 print "atn" atn(0), atn(3.14/2), atn(3.14), atn(0.5)
140 print "chr" chr$(97), chr$(48)
150 print "cos" cos(0), cos(3.14/2), cos(3.14), cos(-1)
160 print "sin" sin(0), sin(3.14/2), sin(3.14), sin(-1)
170 print "exp" exp(0), exp(3.14/2), exp(3.14), exp(-1)
180 print "hex" hex(0), hex(16), hex(-1)
190 print "oct" oct(0), oct(16), oct(-1)
200 print "len" len(""), len("abc"), len("a")
270 print "tan" tan(0), tan(3.14/2), tan(3.14), tan(-1)
280 print "sqr" sqr(0), sqr(3.14/2), sqr(3.14)
290 print "log" log(3.14/2), log(3.14)

12
lang/basic/test/test27.b Normal file
View file

@ -0,0 +1,12 @@
0 rem string test
110 yes$= "yes"
120 no$="no"
130 if "yes"="no" then print "130 true" else print "130 f"
140 if "yes"="yes" then print "140 true" else print "140 f"
150 if "yes"="" then print "150 true" else print "150 f"
160 if "yes"=yes then print "160 true" else print "160 f"
170 if yes="yes" then print "170 true" else print "170 f"
180 print "yes or no"
190 input answer$
200 print answer$="yes"
210 print answer$=no

7
lang/basic/test/test28.b Normal file
View file

@ -0,0 +1,7 @@
10 rem reading beyond eof
11 open "r",#1,"tst/test01"
13 print eof(#1)
20 while eof(#1) <> -1
22 line #1, l$
23 print eof(#1), l
24 wend

14
lang/basic/test/test29.b Normal file
View file

@ -0,0 +1,14 @@
5 print not 1, not 0
10 print 1 and 1, 1 and 0, 0 and 1, 0 and 0
13 print 1 or 1, 1 or 0, 0 or 1, 0 or 0
15 print 1 xor 1, 1 xor 0, 0 xor 1, 0 xor 0
20 print 1 eqv 1, 1 eqv 0, 0 eqv 1, 0 eqv 0
30 print 1 imp 1, 1 imp 0, 0 imp 1, 0 imp 0
40 print 63 and 16, "=16?"
50 print 15 and 14, "=14?"
60 print -1 and 8, "=8?"
70 print 4 or 2, "=6?"
80 print 10 or 10 , "is 10?"
90 print -1 or -2 "=-1?"
100 print not 13
110 print -(13+1)

8
lang/basic/test/test30.b Normal file
View file

@ -0,0 +1,8 @@
100 rem writing to a file
110 open "o", #2, "tst/output"
113 open "i", #3, "tst/output"
120 a$="CAMERA": b$="93604-1"
130 write a$,b$
140 write #2, a$, b$
145 input #3, b$: print b$
150 write #3, a$, b$

11
lang/basic/test/test31.b Normal file
View file

@ -0,0 +1,11 @@
10 a$(0)= "fbc"
11 a$(1)= "fcc"
12 a$(2)= "abb"
90 'bubble sort array
100 j=2: flips=1 'one more pass
110 while flips
115 flips=0
120 for i=0 to j-1
130 if a$(i)>a$(i+1) then swap a$(i),a$(i+1): flips=1
140 nexti
150 wend

5
lang/basic/test/test32.b Normal file
View file

@ -0,0 +1,5 @@
10 rem mid statement and function
20 a$= "kansas city, mo"
25 print mid$(a$,14)
45 print mid$(a$,3,3)
55 print mid$(a$,33)

6
lang/basic/test/test33.b Normal file
View file

@ -0,0 +1,6 @@
10 rem function parameters
20 def fnf1(x%,s$)= 3123
30 print fnf1(1,"help")
40 print fnf1(3.12,"xx")
50 rem doet i goed print fnf1("help",3)
60 rem GOED print fnf1(4)

4
lang/basic/test/test34.b Normal file
View file

@ -0,0 +1,4 @@
10 rem multidimensional arrays
20 t(3,4)= 4
30 print t(0,0)
40 print t(3,4)

2
lang/basic/test/test35.b Normal file
View file

@ -0,0 +1,2 @@
10 rem call external routine
20 call time(v)