mirror of
https://github.com/curioustorvald/tsvm.git
synced 2026-06-09 06:34:04 +09:00
basicdoc: major doc update
This commit is contained in:
@@ -1,26 +1,14 @@
|
||||
1 OPTIONBASE 1
|
||||
10 PRINT SPC(28);"AMAZING PROGRAM"
|
||||
20 PRINT SPC(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
30 PRINT
|
||||
31 PRINT
|
||||
32 PRINT
|
||||
33 PRINT
|
||||
100 PRINT "WHAT ARE YOUR WIDTH";
|
||||
101 INPUT H
|
||||
102 PRINT "WHAT ARE YOUR LENGTH";
|
||||
103 INPUT V
|
||||
30 PRINT:PRINT:PRINT
|
||||
100 PRINT "WHAT ARE YOUR WIDTH";:INPUT H
|
||||
102 PRINT "WHAT ARE YOUR LENGTH";:INPUT V
|
||||
105 IF H<>1 AND V<>1 THEN GOTO 110
|
||||
106 PRINT "MEANINGLESS DIMENSIONS. TRY AGAIN."
|
||||
107 GOTO 100
|
||||
110 WS=DIM(H,V)
|
||||
111 VS=DIM(H,V)
|
||||
120 PRINT
|
||||
130 PRINT
|
||||
140 PRINT
|
||||
150 PRINT
|
||||
160 Q=0
|
||||
161 Z=0
|
||||
162 X=INT(RND(1)*H+1)
|
||||
106 PRINT "MEANINGLESS DIMENSIONS. TRY AGAIN.":GOTO 100
|
||||
110 WS=DIM(H,V):VS=DIM(H,V)
|
||||
120 PRINT:PRINT:PRINT:PRINT
|
||||
160 Q=0:Z=0:X=INT(RND(1)*H+1)
|
||||
165 FOR I=1 TO H
|
||||
170 IF I==X THEN GOTO 173
|
||||
171 PRINT ".--";
|
||||
@@ -28,20 +16,13 @@
|
||||
173 PRINT ". ";
|
||||
180 NEXT
|
||||
190 PRINT "."
|
||||
195 C=1
|
||||
196 WS(X,1)=C
|
||||
197 C=C+1
|
||||
200 R=X
|
||||
201 S=1
|
||||
202 GOTO 260
|
||||
195 C=1:WS(X,1)=C:C=C+1
|
||||
200 R=X:S=1:GOTO 260
|
||||
210 IF R<>H THEN GOTO 240
|
||||
215 IF S<>V THEN GOTO 230
|
||||
220 R=1
|
||||
221 S=1
|
||||
220 R=1:S=1
|
||||
222 GOTO 250
|
||||
230 R=1
|
||||
231 S=S+1
|
||||
232 GOTO 250
|
||||
230 R=1:S=S+1:GOTO 250
|
||||
240 R=R+1
|
||||
250 IF WS(R,S)==0 THEN GOTO 210
|
||||
260 IF R-1==0 THEN GOTO 530
|
||||
@@ -51,45 +32,30 @@
|
||||
290 IF R==H THEN GOTO 330
|
||||
300 IF WS(R+1,S)<>0 THEN GOTO 330
|
||||
310 X=INT(RND(1)*3+1)
|
||||
320 REM ON X GOTO 790,820,860
|
||||
321 IF X==1 THEN GOTO 790
|
||||
322 IF X==2 THEN GOTO 820
|
||||
323 IF X==3 THEN GOTO 860
|
||||
330 IF S<>V THEN GOTO 340
|
||||
320 ON X GOTO 790,820,860
|
||||
334 IF Z==1 THEN GOTO 370
|
||||
338 Q=1
|
||||
339 GOTO 350
|
||||
338 Q=1:GOTO 350
|
||||
340 IF WS(R,S+1)<>0 THEN GOTO 370
|
||||
350 X=INT(RND(1)*3+1)
|
||||
360 REM ON X GOTO 790,820,910
|
||||
361 IF X==1 THEN GOTO 790
|
||||
362 IF X==2 THEN GOTO 820
|
||||
363 IF X==3 THEN GOTO 910
|
||||
360 ON X GOTO 790,820,910
|
||||
370 X=INT(RND(1)*2+1)
|
||||
380 REM ON X GOTO 790,820
|
||||
380 ON X GOTO 790,820
|
||||
390 IF R==H THEN GOTO 470
|
||||
400 IF WS(R+1,S)<>0 THEN GOTO 470
|
||||
405 IF S<>V THEN GOTO 420
|
||||
410 IF Z==1 THEN GOTO 450
|
||||
415 Q=1
|
||||
416 GOTO 430
|
||||
415 Q=1:GOTO 430
|
||||
420 IF WS(R,S+1)<>0 THEN GOTO 450
|
||||
430 X=INT(RND(1)*3+1)
|
||||
440 REM ON X GOTO 790,860,910
|
||||
441 IF X==1 THEN GOTO 790
|
||||
442 IF X==2 THEN GOTO 860
|
||||
443 IF X==3 THEN GOTO 910
|
||||
440 ON X GOTO 790,860,910
|
||||
450 X=INT(RND(1)*2+1)
|
||||
460 REM ON X GOTO 790,860
|
||||
460 ON X GOTO 790,860
|
||||
470 IF S<>V THEN GOTO 490
|
||||
480 IF Z==1 THEN GOTO 520
|
||||
485 Q=1
|
||||
486 GOTO 500
|
||||
485 Q=1:GOTO 500
|
||||
490 IF WS(R,S+1)<>0 THEN GOTO 520
|
||||
500 X=INT(RND(1)*2+1)
|
||||
510 REM ON X GOTO 790,910
|
||||
511 IF X==1 THEN GOTO 790
|
||||
512 IF X==2 THEN GOTO 910
|
||||
510 ON X GOTO 790,910
|
||||
520 GOTO 790
|
||||
530 IF S-1==0 THEN GOTO 670
|
||||
540 IF WS(R,S-1)<>0 THEN GOTO 670
|
||||
@@ -97,98 +63,67 @@
|
||||
547 IF WS(R+1,S)<>0 THEN GOTO 610
|
||||
550 IF S<>V THEN GOTO 560
|
||||
552 IF Z==1 THEN GOTO 590
|
||||
554 Q=1
|
||||
555 GOTO 570
|
||||
554 Q=1:GOTO 570
|
||||
560 IF WS(R,S+1)<>0 THEN GOTO 590
|
||||
570 X=INT(RND(1)*3+1)
|
||||
580 REM ON X GOTO 820,860,910
|
||||
581 IF X==0 THEN GOTO 820
|
||||
582 IF X==1 THEN GOTO 860
|
||||
583 IF X==2 THEN GOTO 910
|
||||
580 ON X GOTO 820,860,910
|
||||
590 X=INT(RND(1)*2+1)
|
||||
600 REM ON X GOTO 820,860
|
||||
601 IF X==1 THEN GOTO 820
|
||||
602 IF X==2 THEN GOTO 860
|
||||
600 ON X GOTO 820,860
|
||||
610 IF S<>V THEN GOTO 630
|
||||
620 IF Z==1 THEN GOTO 660
|
||||
625 Q=1
|
||||
626 GOTO 640
|
||||
625 Q=1:GOTO 640
|
||||
630 IF WS(R,S+1)<>0 THEN GOTO 660
|
||||
640 X=INT(RND(1)*2+1)
|
||||
650 REM ON X GOTO 820,910
|
||||
651 IF X==0 THEN GOTO 820
|
||||
652 IF X==1 THEN GOTO 910
|
||||
650 ON X GOTO 820,910
|
||||
660 GOTO 820
|
||||
670 IF R==H THEN GOTO 740
|
||||
680 IF WS(R+1,S)<>0 THEN GOTO 740
|
||||
685 IF S<>V THEN GOTO 700
|
||||
690 IF Z==1 THEN GOTO 730
|
||||
695 Q=1
|
||||
696 GOTO 830
|
||||
695 Q=1:GOTO 830
|
||||
700 IF WS(R,S+1)<>0 THEN GOTO 730
|
||||
710 X=INT(RND(1)*2+1)
|
||||
720 REM ON X GOTO 860,910
|
||||
721 IF X==0 THEN GOTO 860
|
||||
722 IF X==1 THEN GOTO 910
|
||||
720 ON X GOTO 860,910
|
||||
730 GOTO 860
|
||||
740 IF S<>V THEN GOTO 760
|
||||
750 IF Z==1 THEN GOTO 780
|
||||
755 Q=1
|
||||
756 GOTO 770
|
||||
755 Q=1:GOTO 770
|
||||
760 IF WS(R,S+1)<>0 THEN GOTO 780
|
||||
770 GOTO 910
|
||||
780 GOTO 1000
|
||||
790 WS(R-1,S)=C
|
||||
800 C=C+1
|
||||
801 VS(R-1,S)=2
|
||||
802 R=R-1
|
||||
800 C=C+1:VS(R-1,S)=2:R=R-1
|
||||
810 IF C==H*V+1 THEN GOTO 1010
|
||||
815 Q=0
|
||||
816 GOTO 260
|
||||
815 Q=0:GOTO 260
|
||||
820 WS(R,S-1)=C
|
||||
830 C=C+1
|
||||
840 VS(R,S-1)=1
|
||||
841 S=S-1
|
||||
842 IF C==H*V+1 THEN GOTO 1010
|
||||
850 Q=0
|
||||
851 GOTO 260
|
||||
840 VS(R,S-1)=1:S=S-1:IF C==H*V+1 THEN GOTO 1010
|
||||
850 Q=0:GOTO 260
|
||||
860 WS(R+1,S)=C
|
||||
870 C=C+1
|
||||
871 IF VS(R,S)==0 THEN GOTO 880
|
||||
875 VS(R,S)=3
|
||||
876 GOTO 890
|
||||
870 C=C+1:IF VS(R,S)==0 THEN GOTO 880
|
||||
875 VS(R,S)=3:GOTO 890
|
||||
880 VS(R,S)=2
|
||||
890 R=R+1
|
||||
900 IF C==H*V+1 THEN GOTO 1010
|
||||
905 GOTO 530
|
||||
910 IF Q==1 THEN GOTO 960
|
||||
920 WS(R,S+1)=C
|
||||
921 C=C+1
|
||||
922 IF VS(R,S)==0 THEN GOTO 940
|
||||
930 VS(R,S)=3
|
||||
931 GOTO 950
|
||||
920 WS(R,S+1)=C:C=C+1:IF VS(R,S)==0 THEN GOTO 940
|
||||
930 VS(R,S)=3:GOTO 950
|
||||
940 VS(R,S)=1
|
||||
950 S=S+1
|
||||
951 IF C==H*V+1 THEN GOTO 1010
|
||||
950 S=S+1:IF C==H*V+1 THEN GOTO 1010
|
||||
955 GOTO 260
|
||||
960 Z=1
|
||||
970 IF VS(R,S)==0 THEN GOTO 980
|
||||
975 VS(R,S)=3
|
||||
976 Q=0
|
||||
977 GOTO 1000
|
||||
980 VS(R,S)=1
|
||||
981 Q=0
|
||||
982 R=1
|
||||
983 S=1
|
||||
984 GOTO 250
|
||||
975 VS(R,S)=3:Q=0:GOTO 1000
|
||||
980 VS(R,S)=1:Q=0:R=1:S=1:GOTO 250
|
||||
1000 GOTO 210
|
||||
1010 FOR J=1 TO V
|
||||
1011 PRINT "I";
|
||||
1011 PRINT "|";
|
||||
1012 FOR I=1 TO H
|
||||
1013 IF VS(I,J)<2 THEN GOTO 1030
|
||||
1020 PRINT " ";
|
||||
1021 GOTO 1040
|
||||
1030 PRINT " I";
|
||||
1030 PRINT " |";
|
||||
1040 NEXT
|
||||
1041 PRINT
|
||||
1043 FOR I=1 TO H
|
||||
|
||||
9
assets/disk0/home/basic/fn.bas
Normal file
9
assets/disk0/home/basic/fn.bas
Normal file
@@ -0,0 +1,9 @@
|
||||
10 DEFUN POW2(N)=2^N
|
||||
20 DEFUN DCOS(N)=COS(PI*N/180)
|
||||
30 FOR X=0 TO 8
|
||||
40 PRINT X,POW2(X)
|
||||
50 NEXT
|
||||
60 PRINT "----------------"
|
||||
70 FOREACH A=0!45!90!135!180!NIL
|
||||
80 PRINT A,DCOS(A)
|
||||
90 NEXT
|
||||
@@ -1,28 +1,14 @@
|
||||
10 PRINT SPC(32);"HAMURABI"
|
||||
20 PRINT SPC(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
||||
30 PRINT
|
||||
31 PRINT
|
||||
32 PRINT
|
||||
30 PRINT:PRINT:PRINT
|
||||
80 PRINT "TRY YOUR HAND AT GOVERNING ANCIENT SUMERIA"
|
||||
90 PRINT "FOR A TEN-YEAR TERM OF OFFICE."
|
||||
91 PRINT
|
||||
95 D1=0
|
||||
96 P1=0
|
||||
100 Z=0
|
||||
101 P=95
|
||||
102 S=2800
|
||||
103 H=3000
|
||||
104 E=H-S
|
||||
110 Y=3
|
||||
111 A=H/Y
|
||||
112 I=5
|
||||
113 Q=1
|
||||
90 PRINT "FOR A TEN-YEAR TERM OF OFFICE.":PRINT
|
||||
95 D1=0:P1=0
|
||||
100 Z=0:P=95:S=2800:H=3000:E=H-S
|
||||
110 Y=3:A=H/Y:I=5:Q=1
|
||||
210 D=0
|
||||
215 PRINT
|
||||
216 PRINT
|
||||
217 PRINT "HAMURABI: I BEG TO REPORT TO YOU,"
|
||||
218 Z=Z+1
|
||||
219 PRINT "IN YEAR ";Z;", ";D;" PEOPLE STARVED, ";I;" CAME TO THE CITY,"
|
||||
215 PRINT:PRINT:PRINT "HAMURABI: I BEG TO REPORT TO YOU,":Z=Z+1
|
||||
217 PRINT "IN YEAR ";Z;", ";D;" PEOPLE STARVED, ";I;" CAME TO THE CITY,"
|
||||
220 P=P+I
|
||||
227 IF Q>0 THEN GOTO 230
|
||||
228 P=INT(P/2)
|
||||
@@ -44,9 +30,7 @@
|
||||
324 GOSUB 710
|
||||
325 GOTO 320
|
||||
330 IF Q==0 THEN GOTO 340
|
||||
331 A=A+Q
|
||||
332 S=S-Y*Q
|
||||
333 C=0
|
||||
331 A=A+Q:S=S-Y*Q:C=0
|
||||
334 GOTO 400
|
||||
340 PRINT "HOW MANY ACRES DO YOU WISH TO SELL";
|
||||
341 INPUT Q
|
||||
@@ -54,9 +38,7 @@
|
||||
343 IF Q<A THEN GOTO 350
|
||||
344 GOSUB 720
|
||||
345 GOTO 340
|
||||
350 A=A-Q
|
||||
351 S=S+Y*Q
|
||||
352 C=0
|
||||
350 A=A-Q:S=S+Y*Q:C=0
|
||||
400 PRINT
|
||||
410 PRINT "HOW MANY BUSHELS DO YOU WISH TO FEED YOUR PEOPLE";
|
||||
411 INPUT Q
|
||||
@@ -65,9 +47,7 @@
|
||||
420 IF Q<=S THEN GOTO 430
|
||||
421 GOSUB 710
|
||||
422 GOTO 410
|
||||
430 S=S-Q
|
||||
431 C=1
|
||||
432 PRINT
|
||||
430 S=S-Q:C=1:PRINT
|
||||
440 PRINT "HOW MANY ACRES DO YOU WISH TO PLANT WITH SEED";
|
||||
441 INPUT D
|
||||
442 IF D==0 THEN GOTO 511
|
||||
@@ -87,9 +67,7 @@
|
||||
510 S=S-INT(D/2)
|
||||
511 GOSUB 800
|
||||
512 REM *** A BOUNTIFUL HARVEST!
|
||||
515 Y=C
|
||||
516 H=D*Y
|
||||
517 E=0
|
||||
515 Y=C:H=D*Y:E=0
|
||||
521 GOSUB 800
|
||||
522 IF INT(C/2)<>C/2 THEN GOTO 530
|
||||
523 REM *** RATS ARE RUNNING WILD!!
|
||||
|
||||
4
assets/disk0/home/basic/rallycomposition.bas
Normal file
4
assets/disk0/home/basic/rallycomposition.bas
Normal file
@@ -0,0 +1,4 @@
|
||||
10 DEFUN SINC(X)=IF X==0 THEN 1 ELSE SIN(X)/X
|
||||
20 DEFUN THREEDIGITS(X)=ROUND(X*1000)/1000
|
||||
100 K=MAP(THREEDIGITS<~SINC,1 TO 10)
|
||||
110 PRINT K
|
||||
@@ -1,10 +1,6 @@
|
||||
1 REM Calculates a square root using newtonian method
|
||||
10 INPUT X
|
||||
11 IF TYPEOF(X)=="num" THEN GOTO 20
|
||||
12 PRINT "Please type in a number, please";
|
||||
13 GOTO 10
|
||||
20 Y = 0.5 * X
|
||||
30 Z = Y
|
||||
40 Y = Y-(((Y^2)-X)/(2*Y))
|
||||
50 IF Z <> Y THEN GOTO 30
|
||||
10 X=1337
|
||||
20 Y=0.5*X
|
||||
30 Z=Y
|
||||
40 Y=Y-((Y^2)-X)/(2*Y)
|
||||
50 IF NOT(Z==Y) THEN GOTO 30 : REM 'NOT(Z==Y)' can be rewritten to 'Z<>Y'
|
||||
100 PRINT "Square root of ";X;" is approximately ";Y
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
10 FOR I = 1 TO 20
|
||||
20 PRINT SPC(20-I);
|
||||
30 FOR J = 1 TO I*2-1
|
||||
40 PRINT "*";
|
||||
50 NEXT:PRINT
|
||||
60 NEXT
|
||||
10 GOTO 1000
|
||||
100 REM subroutine to draw a segment. Size is stored to 'Q'
|
||||
110 PRINT SPC(20-Q);
|
||||
120 FOR Q1=1 TO Q*2-1
|
||||
130 PRINT "*";
|
||||
140 NEXT : PRINT
|
||||
150 RETURN
|
||||
1000 FOR Q=1 TO 20
|
||||
1010 GOSUB 100
|
||||
1020 NEXT
|
||||
|
||||
12
assets/disk0/home/basic/tri2.bas
Normal file
12
assets/disk0/home/basic/tri2.bas
Normal file
@@ -0,0 +1,12 @@
|
||||
10 GOTO 1000
|
||||
100 REM subroutine to draw a segment. Size is stored to 'Q'
|
||||
110 PRINT SPC(20-Q);
|
||||
120 Q1=1 : REM loop counter for this subroutine
|
||||
130 PRINT "*";
|
||||
140 Q1=Q1+1
|
||||
150 IF Q1<=Q*2-1 THEN GOTO 130
|
||||
160 PRINT : RETURN : REM this line will take us back from the jump
|
||||
1000 Q=1 : REM this is our loop counter
|
||||
1010 GOSUB 100
|
||||
1020 Q=Q+1
|
||||
1030 IF Q<=20 THEN GOTO 1010
|
||||
Reference in New Issue
Block a user