======= Slot0: 214 B
-------------------------------------------------
1) WCH80 demo (212 B)
To use: LOAD, RUN
10 REM
20 REM HELLO FROM WCH80
30 REM PRESS RUN TO RUN
40 REM
50 PRINT ," WCH80 DEMO"
60 PRINT
70 LET N=0
80 PRINT "CHARACTER SET:"
90 FOR I=0 TO 255
100 PRINT CHR$(I);
110 NEXT I
120 POKE -5,17
130 POKE -4,0
140 PRINT "SOUND TEST: ";N
150 BEEP 100000,200
160 WAIT 800
170 LET N=N+1
180 IF INKEY$="" THEN GOTO 120
======= Slot1: 1001 B, free 23 B
-------------------------------------------------
2) PRINT CHARSET (57 B)
To use: LOAD 1, RUN
10 REM
20 REM PRINT CHARSET
30 REM
40 FOR I=0 TO 255
50 PRINT CHR$(I);
60 NEXT I
70 STOP
-------------------------------------------------
3) PRECISE DIVISION (197 B)
To use: LOAD 1, RUN 100
110 REM
120 REM PRECISE DIVISION
130 REM
140 PRINT "HOW MANY DECIMAL PLACES?"
150 INPUT D
160 PRINT "DIVIDEND?"
170 INPUT R
180 PRINT "DIVISOR?"
190 INPUT Y
200 LET Z=R/Y
210 LET R=R-Z*Y
220 PRINT "QUOTIENT IS ";Z;".";
230 FOR J=1 TO D
240 LET Z=10*R/Y
250 LET R=10*R-Z*Y
260 PRINT Z;
270 NEXT J
280 STOP
-------------------------------------------------
4) SQUARE ROOT (188 B)
To use: LOAD 1, RUN 300
310 REM
320 REM SQUARE ROOT
330 REM
340 PRINT "ENTER THE NUMBER"
350 INPUT X
360 LET J=0
370 LET K=J*J
380 LET D=X-K
390 IF D=0 THEN GOTO 430
400 IF D<0 THEN GOTO 450
410 LET J=J+1
420 GOTO 370
430 PRINT "THE ROOT IS ";J
440 GOTO 460
450 PRINT "THE ROOT LIES BETWEEN ";J-1;" AND ";J
460 STOP
-------------------------------------------------
5) DIE THROWING (440 B)
To use: LOAD 1, RUN 500
"\A" means: press SHIFT and A
510 REM
520 REM DIE THROWING
530 REM
540 LET A$="\A \A"
550 LET B$=" \A"
560 LET C$="\A"
570 LET D$=" \A"
580 RANDOMISE
590 LET X=RND(6)
600 PRINT "YOUR THREW IS ";X
610 GOTO X*60+560
620 PRINT ""
630 PRINT ""
640 PRINT B$
650 PRINT ""
660 PRINT ""
670 GOTO 970
680 PRINT C$
690 PRINT ""
700 PRINT ""
710 PRINT ""
720 PRINT D$
730 GOTO 970
740 PRINT D$
750 PRINT ""
760 PRINT B$
770 PRINT ""
780 PRINT C$
790 GOTO 970
800 PRINT A$
810 PRINT ""
820 PRINT ""
830 PRINT ""
840 PRINT A$
850 GOTO 970
860 PRINT A$
870 PRINT ""
880 PRINT B$
890 PRINT ""
900 PRINT A$
910 GOTO 970
920 PRINT A$
930 PRINT ""
940 PRINT A$
950 PRINT ""
960 PRINT A$
970 PRINT "HIT NEWLINE TO THROW AGAIN"
980 PRINT "OR ANY CHAR+NEWLINE TO QUIT"
990 INPUT X$
1000 CLS
1010 WAIT(99)
1020 IF X$="" THEN GOTO 590
1030 STOP
-------------------------------------------------
6) SNOWFALL (117 B)
To use: LOAD 1, RUN 1100
Break with SPACE
1110 REM
1120 REM SNOWFALL
1130 REM
1140 RANDOMISE
1150 FOR I=0 TO 735
1160 POKE 767-I,PEEK(735-I)
1170 NEXT I
1180 FOR I=0 TO 31
1190 LET C=0
1200 IF RND(10)=1 THEN LET C=20
1210 POKE I,C
1220 NEXT I
1230 GOTO 1150
======= Slot2: 872 B, free 152 B
-------------------------------------------------
7) REACTION TIMER (153 B)
To use: LOAD 2, RUN
10 REM
20 REM REACTION TIMER
30 REM
40 PRINT "PREPARE..."
50 WAIT(1000+RND(4000))
60 POKE -3,0
70 PRINT "HIT NEWLINE"
80 INPUT C$
90 LET A=PEEK(-3)
100 PRINT "YOUR REACTION TIME IS ";A/50000;" MS"
110 STOP
-------------------------------------------------
8) RND HISTOGRAM (230 B)
To use: LOAD 2, RUN 200
"\A" means: press SHIFT and A
210 REM
220 REM RND HISTOGRAM
230 REM
240 DIM A(20)
250 RANDOMISE
260 PRINT "CALCULATING..."
270 FOR K=1 TO 5000
280 LET N=RND(20)
290 LET A(N)=A(N)+1
300 NEXT K
310 CLS
320 FOR K=1 TO 20
330 LET A(K)=A(K)/20
340 IF K<10 THEN PRINT " ";
350 PRINT K;" ";
360 IF A(K)<1 THEN GOTO 410
370 IF A(K)>29 THEN LET A(K)=29
380 FOR P=1 TO A(K)
390 PRINT "\A";
400 NEXT P
410 PRINT
420 NEXT K
430 STOP
-------------------------------------------------
9) LEAP FROGS (487 B)
To use: LOAD 2, RUN 500
The goal is to swap the frogs between the left and right sides.
510 REM
520 REM LEAP FROGS
530 REM
540 DIM P(9)
550 LET P(5)=0
560 FOR I=1 TO 4
570 LET P(I)=129
580 LET P(I+5)=128
590 NEXT I
600 LET C=0
610 CLS
620 FOR I=1 TO 9
630 PRINT CHR$(P(I));" ";
640 NEXT I
650 PRINT
660 FOR I=1 TO 9
670 PRINT I;" ";
680 NEXT I
690 PRINT "ENTER MOVE"
700 INPUT A
710 IF A=0 THEN GOTO 930
720 LET F=A/10
730 IF F=0 THEN GOTO 700
740 IF P(F)=0 THEN GOTO 700
750 LET T=A-10*F
760 IF T=0 THEN GOTO 700
770 IF P(T)>0 THEN GOTO 700
780 IF ABS(T-F)>2 THEN GOTO 700
790 LET C=C+1
800 LET P(T)=P(F)
810 LET P(F)=0
820 LET X=0
830 FOR I=1 TO 9
840 IF I=5 THEN GOTO 860
850 IF NOT P(I)=128-(I>5) THEN LET X=1
860 NEXT I
870 LET X=X+P(5)
880 IF X>0 THEN GOTO 610
890 PRINT "YOU DID IT IN ";C;" MOVES"
900 PRINT "ANOTHER GO? (Y)"
910 INPUT A$
920 IF CODE(A$)=62 THEN GOTO 550
930 PRINT "BYEBYE"
940 STOP
======= Slot3: 979 B, free 45 B
-------------------------------------------------
10) ENCODING MESSAGE (375 B)
To use: LOAD 3, RUN
Encode with number 1.., decode with negative number.
Message can contain only alphabetic characters or digits or space.
10 REM
20 REM ENCODING MESSAGE
30 REM
40 PRINT "ENTER MESSAGE:"
50 INPUT A$
60 PRINT A$
70 PRINT "ENTER >0 CODE, <0 DECODE: ";
80 INPUT T
90 PRINT T
100 RANDOMISE ABS(T)
110 IF T<0 THEN PRINT "DE";
120 PRINT "CODED MESSAGE IS:"
130 LET R=RND(36)
140 IF T<0 THEN LET R=36-R
150 IF A$="" THEN GOTO 240
160 LET B=CODE(A$)
170 LET A$=TL$(A$)
180 IF B=0 THEN GOTO 220
190 LET B=B+R-28
200 LET B=B-36*(B/36)
210 LET B=B+28
220 PRINT CHR$(B);
230 GOTO 130
240 PRINT
250 PRINT "ANOTHER MESSAGE? (Y)"
260 INPUT A$
270 IF NOT CODE(A$)=62 THEN GOTO 300
280 CLS
290 GOTO 40
300 PRINT "BYEBYE"
310 STOP
-------------------------------------------------
11) HORSE RACE (602 B)
To use: LOAD 3, RUN 400
"\letter" means: press SHIFT and letter
410 REM
420 REM HORSE RACE
430 REM
440 DIM O(4)
450 DIM D(4)
460 LET A$="\F\T\S"
470 LET B$=" \S\G\Q"
480 LET C$="\R \E"
490 LET M=100
500 GOTO 580
510 FOR C=1 TO D
520 PRINT " ";
530 NEXT C
540 RETURN
550 FOR I=0 TO 4
560 LET D(I)=0
570 NEXT I
580 PRINT "BANK$";M
590 PRINT "BET? (0=QUIT)"
600 PRINT
610 PRINT "ODDS"
620 FOR I=1 TO 4
630 LET O(I)=RND(9)+1
640 PRINT CHR$(I+37),O(I);"/1"
650 NEXT I
660 INPUT B
670 IF B=0 THEN GOTO 990
680 PRINT "HORSE?"
690 INPUT H$
700 FOR L=1 TO 4
710 CLS
720 PRINT "LAP ";L
730 FOR I=1 TO 4
740 LET D(I)=D(I)+5+7/O(I)+RND(2*O(I)/3)
750 IF D(I)>D(0) THEN LET D(0)=D(I)
760 IF D(0)=D(I) THEN LET J=I
770 NEXT I
780 FOR I=1 TO 4
790 PRINT CHR$(I+37)
800 LET D=D(I)-D(0)+15
810 GOSUB 510
820 PRINT A$
830 GOSUB 510
840 PRINT B$
850 GOSUB 510
860 PRINT C$
870 PRINT
880 NEXT I
890 PRINT "N/L"
900 INPUT D$
910 NEXT L
920 CLS
930 PRINT "WINNER ";CHR$(J+37)
940 LET S=0
950 IF CODE(H$)=J+37 THEN LET S=1
960 LET M=M-B+S*B*O(J)
970 IF M<1 THEN GOTO 990
980 GOTO 550
990 STOP
======= Slot4: 979 B, free 45 B
-------------------------------------------------
12) LUNAR LANDER (617 B)
To use: LOAD 4, RUN
"\letter" means: press SHIFT and letter
- do not add another program with DATA/READ
10 REM
20 REM LUNAR LANDER
30 REM
40 DIM A(19)
50 FOR I=0 TO 19
60 LET A(I)=READ
70 NEXT I
80 LET V=-50
90 LET H=1500
100 LET R=7000
110 GOTO 300
120 FOR I=0 TO 3
130 FOR X=0 TO 4
140 PRINT CHR$(A(X+5*I));
150 NEXT X
160 PRINT
170 NEXT I
180 RETURN
190 PRINT "THRUST (0-99)?",
200 INPUT F
210 PRINT F
220 PRINT "DURATION (1-10)?",
230 INPUT T
240 CLS
250 IF F*T>R/10 THEN LET F=R/10*T
260 LET R=R-F*T*10
270 LET A=F-32
280 LET H=A*T**2+V*T+H
290 LET V=2*A*T+V
300 LET L=H/100
310 IF L<0 THEN LET L=0
320 IF L>12 THEN LET L=12
330 FOR I=L TO 12
340 PRINT
350 NEXT I
360 IF L>8 THEN GOSUB 120
370 PRINT ,"VELOC","HEIGHT","FUEL"
380 PRINT ,V,H,R
390 IF L<9 THEN GOSUB 120
400 IF L=0 THEN GOTO 440
410 FOR I=1 TO L-1
420 PRINT
430 NEXT I
440 IF H<0 THEN PRINT "**CRASH**"
450 FOR I=1 TO 16
460 PRINT "\A\T";
470 NEXT I
480 IF L>0 THEN GOTO 190
490 IF H<0 OR V<-99 THEN GOTO 520
500 PRINT 100+V;" PERCENT OK"
510 STOP
520 PRINT "TERRIBLE"
530 DATA 0,0,156,0,0,0,8,3,136,0,0,2,3,130,0,134,131,3,131,135
540 STOP
-------------------------------------------------
13) MAZE GENERATOR (360 B)
To use: LOAD 4, RUN 600
610 REM
620 REM MAZE GENERATOR
630 REM
640 DIM W(32)
650 PRINT
660 LET W(1)=2
670 LET W(32)=130
680 FOR I=2 TO 31
690 LET W(I)=3
700 NEXT I
710 LET X=RND(20)
720 LET W(X)=2
730 LET W(X+6)=130
740 FOR I=2 TO 5
750 LET W(X+I)=0
760 NEXT I
770 FOR L=1 TO 15
780 FOR I=1 TO 32
790 PRINT CHR$(W(I));
800 IF I=1 OR I=32 THEN GOTO 920
810 IF W(I)<3 THEN GOTO 890
820 IF W(I)>3 THEN GOTO 870
830 LET X=RND(8)
840 IF X<3 THEN LET W(I)=2
850 IF X=8 THEN LET W(I)=7
860 GOTO 920
870 LET W(I)=1+RND(2)
880 GOTO 920
890 LET X=RND(5)
900 LET W(I)=1+X/2
910 IF X=1 THEN LET W(I)=7
920 NEXT I
930 NEXT L
940 STOP
======= Slot5: 1017 B, free 7 B
-------------------------------------------------
14) TIC-TAC-TOE (618 B)
To use: LOAD 5, RUN
10 REM
20 REM TIC-TAC-TOE
30 REM
40 DIM A(9)
50 FOR J=0 TO 2
60 FOR I=1 TO 3
70 LET A(I+3*J)=28+I+4*J+2*I*(J>1)
80 NEXT I
90 NEXT J
100 LET A(4)=36
110 LET A(5)=61
120 LET A(6)=32
130 GOTO 260
140 FOR I=1 TO 9
150 IF A(I)=M+28 THEN LET A(I)=V
160 NEXT I
170 FOR I=0 TO 2
180 FOR J=1 TO 3
190 PRINT CHR$(A(J+3*I));" ";
200 NEXT J
210 PRINT
220 PRINT
230 NEXT I
240 PRINT
250 RETURN
260 LET A=0
270 LET E=0
280 PRINT "I WENT FIRST"
290 GOSUB 170
300 PRINT "ENTER MOVE"
310 INPUT R
320 CLS
330 IF R=2*(R/2) THEN LET E=-1
340 LET M=R
350 LET V=28
360 GOSUB 140
370 LET P=R
380 FOR T=1 TO 4
390 PRINT "I MOVED"
400 LET V=61
410 LET A=A+1
420 IF T=1 OR R=P+4 OR R=P-4 THEN GOTO 480
430 LET P=P+4
440 IF P>8 THEN LET P=P-8
450 LET M=P
460 GOSUB 140
470 GOTO 650
480 IF A=3 AND E THEN LET A=7
490 IF A=4 THEN LET A=6
500 LET P=P+A
510 IF P>8 THEN LET P=P-8
520 LET M=P
530 GOSUB 140
540 IF A=7 THEN GOTO 650
550 IF T=4 THEN GOTO 630
560 PRINT "YOUR MOVE"
570 INPUT R
580 CLS
590 LET M=R
600 LET V=28
610 GOSUB 140
620 NEXT T
630 PRINT "DRAW"
640 STOP
650 PRINT "I WON"
660 STOP
-------------------------------------------
15) DRAWING (403 B)
To use: LOAD 5, RUN 700
How to prepare your own image: Create a black and white image with
a resolution of 32x24 pixels in a graphics editor. Save it to
a Windows BMP file in "1-bit bitmap" format, with switch "Flip row order".
Display the image in a HEX editor - you can use the F3 function in
FAR Manager, switching to HEX mode. Read the bytes in HEX format
sequentially, starting from offset 0x003E, and write them 4 bytes
at a time to the Windows calculator in HEX format. Switch the mode to
decimal format to obtain the number in decimal format for DATA. For
example, rewrite the sequence 0F 80 03 E0 to the calculator as the HEX
number 0F8003E0. Switch to decimal format to obtain the number 260047840.
700 REM
710 REM DRAWING
720 REM
730 FOR I=0 TO 23
740 LET C=READ
750 IF C<0 THEN PRINT CHR$(128);
760 IF NOT C<0 THEN PRINT " ";
770 LET M=2**30
780 FOR J=0 TO 30
790 IF C AND M THEN PRINT CHR$(128);
800 IF (C AND M)=0 THEN PRINT " ";
810 LET M=M/2
820 NEXT J
830 PRINT
840 NEXT I
850 IF INKEY$="" THEN GOTO 850
860 STOP
870 DATA 0, 260047840, 533719024, 536362992, 532678640, 520094192, 503316720, 201326688
880 DATA 410000432, 284704272, 837578520, 569143048, 569143048, 553369096, 537100296, 537100296
890 DATA 805904408, 269033488, 403095600, 201326688, 100663744, 62916352, 8387584, 0
======= Slot6: 901 B, free 123 B
-------------------------------------------------
16) MASTERMIND (442 B)
To use: LOAD 6, RUN
10 REM
20 REM MASTERMIND
30 REM
40 PRINT "ENTER NUMBER OF DIGITS (3-7)"
50 INPUT N
60 LET N=N-1
70 DIM A(N)
80 FOR I=0 TO N
90 LET X=RND(10)-1
100 FOR J=0 TO I
110 IF X=A(J) THEN GOTO 90
120 NEXT J
130 LET A(I)=X
140 NEXT I
150 LET G=0
160 GOTO 360
170 INPUT B$
180 IF B$="" THEN STOP
190 CLS
200 PRINT B$
210 LET R=0
220 LET C=0
230 LET G=G+1
240 FOR I=0 TO N
250 LET X=CODE(B$)-28
260 IF X=A(I) THEN LET C=C+1
270 FOR J=0 TO N
280 IF X=A(J) THEN LET R=R+1
290 NEXT J
300 LET B$=TL$(B$)
310 NEXT I
320 IF C=N+1 THEN GOTO 380
330 PRINT "NUMBERS RIGHT=";R
340 PRINT "CORRECT POSITIONS=";C
350 PRINT
360 PRINT "ENTER ";N+1;"-DIGIT GUESS"
370 GOTO 170
380 PRINT "YOU DID IT IN ";G;" GUESSES"
390 STOP
-------------------------------------------------
17) DAY OF WEEK (457 B)
To use: LOAD 6, RUN 500
500 REM
510 REM DAY OF WEEK
520 REM
530 LET D$=" SUNMONTUEWEDTHUFRISAT"
540 PRINT "ENTER DATE:"
550 PRINT "DAY",
560 INPUT D
570 IF D<1 OR D>31 THEN GOTO 560
580 PRINT D
590 PRINT "MONTH",
600 INPUT M
610 IF M<1 OR M>12 THEN GOTO 600
620 PRINT M
630 PRINT "YEAR",
640 INPUT Y
650 IF Y<1700 THEN GOTO 640
660 PRINT Y
670 LET K=0
680 IF M=1 OR M=2 THEN LET K=1
690 LET L=Y-K
700 LET O=M+12*K
710 LET P=L/100
720 LET Z=(13*(O+1))/5+(5*L)/4-P+P/4+D-1
730 LET Z=Z-7*(Z/7)+1
740 FOR I=1 TO Z*3
750 LET D$=TL$(D$)
760 NEXT I
770 PRINT "IT IS ";CHR$(CODE+(D$));
780 LET D$=TL$(D$)
790 PRINT CHR$(CODE(D$));CHR$(CODE(TL$(D$)))
800 PRINT
810 PRINT "AGAIN? (Y)"
820 INPUT A$
830 CLS
840 IF CODE(A$)=62 THEN GOTO 530
850 STOP
======= Slot7: 870 B, free 154 B
-------------------------------------------------
18) SQUARE ROOT (425 B)
To use: LOAD 7, RUN
10 REM
20 REM SQUARE ROOT
30 REM
40 PRINT "INPUT NUMBER"
50 INPUT A
60 CLS
70 PRINT "SQUARE ROOT OF ";A;" IS"
80 LET U=174
90 LET L=0
100 LET F=0
110 LET D=0
120 LET N=(U+L)/2
130 IF (N-1)**2A THEN GOTO 170
140 IF N**2>A THEN LET U=N
150 IF N**2A THEN LET N=N-1
180 LET E=100*(A-N**2)
190 IF E<2 THEN GOTO 350
200 LET F=(E/N)/2
210 LET Q=F**2
220 LET E=E-2*N*F
230 IF E>0 THEN GOTO 270
240 LET F=F-1
250 LET E=100*(A-N**2)
260 GOTO 210
270 LET E=10*E-Q/10
280 IF E<0 THEN GOTO 240
290 LET D=(E/N)/2
300 LET H=E-(2*F*D)/2
310 IF H>0 THEN GOTO 340
320 LET D=D-1
330 GOTO 300
340 LET D=(H/N)/2
350 PRINT N;".";F;D
360 STOP
-------------------------------------------------
19) SIMPLE SIMON (443 B)
To use: LOAD 7, RUN 400
410 REM
420 REM SIMPLE SIMON
430 REM
440 DIM A(30)
450 LET J=-1
460 RANDOMISE
470 DIM P(7)
480 FOR I=0 TO 7
490 LET P(I)=2**(7-I)
500 NEXT I
510 LET X=RND(26)+37
520 CLS
530 PRINT "NEXT CHAR IS"
540 FOR L=0 TO 7
550 LET V=PEEK(3584+L+8*X)
560 FOR K=0 TO 7
570 LET G=(V AND P(K))=0
580 PRINT CHR$(-128*G);
590 NEXT K
600 PRINT
610 NEXT L
620 IF X=15 THEN GOTO 770
630 LET J=J+1
640 IF J=31 THEN GOTO 820
650 LET A(J)=X
660 PRINT "PRINT ENTIRE SEQUENCE"
670 INPUT A$
680 PRINT A$
690 FOR I=0 TO J
700 LET X=CODE(A$)
710 IF NOT A(I)=X THEN GOTO 750
720 LET A$=TL$(A$)
730 NEXT I
740 GOTO 510
750 LET X=15
760 GOTO 540
770 PRINT "SORRY IT WAS:"
780 FOR I=0 TO J
790 PRINT CHR$(A(I));
800 NEXT I
810 STOP
820 PRINT "I GIVE UP"
830 STOP
======= Slot8: 1002 B, free 22 B
-------------------------------------------------
20) KING HAMMURABI (831 B)
To use: LOAD 8, RUN
10 REM
20 REM KING HAMMURABI
30 REM
40 LET A$="ACRES "
50 LET B$="BUSHELS "
60 LET M$="HOW MANY "
70 RANDOMISE
80 LET H=100
90 LET S=3000
100 LET A=1000
110 LET Y=0
120 PRINT "YOUR POPULATION: ";H
130 PRINT B$;"OF GRAIN: ";S
140 PRINT A$;"OF LAND: ";A
150 PRINT
160 LET L=5+RND(20)
170 PRINT "PRICE IS ";L;" ";B$;"PER ACRE"
180 PRINT M$;A$;"TO BUY? ";
190 INPUT V
200 IF V*L>S THEN LET V=S/L
210 PRINT V
220 IF V>0 THEN GOTO 280
230 PRINT M$;A$;"TO SELL? ";
240 INPUT V
250 IF V>A THEN LET V=A
260 PRINT V
270 LET V=-V
280 LET A=A+V
290 LET S=S-L*V
300 PRINT M$;B$;"FOR FOOD? ";
310 INPUT F
320 IF F>S THEN LET F=S
330 PRINT F
340 LET S=S-F
350 PRINT M$;B$;"FOR SEED? ";
360 INPUT P
370 IF P>S THEN LET P=S
380 LET S=S-P
390 IF P>2*A THEN LET P=2*A
400 IF P>25*H THEN LET P=25*H
410 LET R=RND(S/2)-1
420 LET C=RND(10*P)
430 LET S=S+C-R
440 LET D=H-F/10
450 IF D<1 THEN LET D=0
460 LET N=H/10+RND(H/10)-1
470 LET H=H-D+N
480 LET T=0
490 IF RND(6)=3 THEN LET T=H/8+RND(H/5)
500 LET H=H-T
510 CLS
520 LET Y=Y+1
530 PRINT "YEAR ";Y;" OF YOUR REIGN"
540 IF R>0 THEN PRINT "RATS ATE ";R;" ";B$
550 IF N>0 THEN PRINT N;" BABIES BORN"
560 IF D>0 THEN PRINT D;" PEOPLE STARVED"
570 IF T>0 THEN PRINT T;" DIED OF PLAGUE"
580 IF H>0 THEN GOTO 120
590 PRINT "GAME OVER"
600 STOP
-------------------------------------------------
21) PRIME NUMBERS (169 B)
To use: LOAD 8, RUN 700
710 REM
720 REM PRIME NUMBERS
730 REM
740 DIM A(90)
750 LET R=1
760 LET A(1)=2
770 PRINT 2,
780 FOR X=3 TO 460
790 FOR Y=1 TO R
800 IF X/A(R)>A(R) THEN GOTO 830
810 IF X=(X/A(Y))*A(Y) THEN GOTO 860
820 NEXT Y
830 LET R=R+1
840 LET A(R)=X
850 PRINT X,
860 LET X=X+1
870 NEXT X
880 STOP
======= Slot9: 1020 B, free 4 B
-------------------------------------------------
22) CASTLE DOORS (1018 B)
To use: LOAD 9, RUN
10 REM
20 REM CASTLE DOORS
30 REM
40 RANDOMISE
50 LET B=RND(300)
60 LET C=RND(50)
70 GOSUB 730
80 IF C<1 THEN GOTO 650
90 PRINT "4=OPEN DOOR 5=FIGHT WIZARD"
100 LET A=0
110 LET D=RND(8)
120 LET E=RND(30)
130 LET G=RND(60)
140 LET H=RND(10)
150 INPUT O
160 CLS
170 IF O=5 THEN GOTO 650
180 IF D=1 THEN LET A=RND(10)
190 IF D=1 THEN LET A$="ZOMBIE"
200 IF D=2 THEN LET A=RND(20)
210 IF D=2 THEN LET A$="WITCH"
220 IF D=3 THEN LET A=RND(30)
230 IF D=3 THEN LET A$="CYCLOP"
240 IF D=4 THEN LET A=RND(40)
250 IF D=4 THEN LET A$="GARGOYLE"
260 IF D=5 THEN LET A=RND(50)
270 IF D=5 THEN LET A$="DRAGON"
280 IF D>5 THEN GOTO 590
290 PRINT "YOU SEE ";A$
300 GOSUB 730
310 PRINT "1=FIGHT 2=BRIBE 3=RUN"
320 INPUT N
330 CLS
340 IF N=2 THEN GOTO 480
350 IF N=3 THEN GOTO 560
360 IF CC THEN LET Q=C
420 IF QB OR C=B THEN PRINT "WIZARD DEFEATED-YOU WIN"
670 IF C0 THEN GOTO 190
140 PRINT "YOU ARE TAPPED OUT."
150 PRINT "PLAY AGAIN? (Y)"
160 INPUT A$
170 IF CODE(A$)=62 THEN GOTO 50
180 STOP
190 PRINT "HERE ARE 2 CARDS:"
200 LET A=RND(13)+1
210 LET B=RND(13)+1
220 IF AQ THEN LET M=Q
340 IF A+1=B THEN GOTO 450
350 PRINT "YOUR BET? (1-";Q;")"
360 INPUT M
370 IF M<1 THEN LET M=1
380 IF M>Q THEN LET M=Q
390 PRINT "NEXT CARD IS ";
400 LET D=RND(13)+1
410 LET C=D
420 GOSUB 500
430 PRINT
440 IF D>A AND D0 AND A$="" THEN GOTO 650
830 STOP
======= Slot11: 1021 B, free 3 B
-------------------------------------------------
25) RPN CALCULATOR (734 B)
To use: LOAD 11, RUN
10 REM
20 REM RPN CALCULATOR
30 REM
40 DIM R(5)
50 CLS
60 PRINT "V ";R(5)
70 PRINT "U ";R(4)
80 PRINT "T ";R(3)
90 PRINT "Z ";R(2)
100 PRINT "Y ";R(1)
110 PRINT "X ";R(0)
120 PRINT "ENTER INTEGER OR - + * / ** X"
130 LET X=0
140 INPUT A$
150 IF A$="" THEN STOP
160 LET C=CODE(A$)
170 LET A$=TL$(A$)
180 IF C=220 THEN GOTO 320
190 IF C=221 THEN GOTO 430
200 IF C=222 THEN GOTO 490
210 IF C=223 THEN GOTO 510
220 IF C=226 THEN GOTO 530
230 IF C=61 THEN GOTO 550
240 IF C<28 OR C>37 THEN GOTO 140
250 LET X=C-28
260 GOSUB 590
270 FOR I=0 TO 4
280 LET R(5-I)=R(4-I)
290 NEXT I
300 LET R(0)=X
310 GOTO 50
320 LET C=CODE(A$)
330 IF C<28 OR C>37 THEN GOTO 370
340 GOSUB 590
350 LET X=-X
360 GOTO 270
370 LET R(0)=R(1)-R(0)
380 FOR I=1 TO 4
390 LET R(I)=R(I+1)
400 NEXT I
410 LET R(5)=0
420 GOTO 50
430 LET C=CODE(A$)
440 IF C<28 OR C>37 THEN GOTO 470
450 GOSUB 590
460 GOTO 270
470 LET R(0)=R(1)+R(0)
480 GOTO 380
490 LET R(0)=R(1)*R(0)
500 GOTO 380
510 LET R(0)=R(1)/R(0)
520 GOTO 380
530 LET R(0)=R(1)**R(0)
540 GOTO 380
550 LET X=R(0)
560 LET R(0)=R(1)
570 LET R(1)=X
580 GOTO 50
590 LET C=CODE(A$)
600 IF C<28 OR C>37 THEN RETURN
610 LET A$=TL$(A$)
620 LET X=X*10+C-28
630 GOTO 590
-------------------------------------------------
26) HEX MANDELBROT (285 B)
To use: LOAD 11, RUN 700
710 REM
720 REM HEX MANDELBROT
730 REM
740 LET S=1024
750 LET U=100
760 LET V=85
770 LET H=4*S
780 FOR Y=-11 TO 12
790 LET D=Y*V
800 FOR X=-20 TO 11
810 LET C=X*U
820 LET A=C
830 LET B=D
840 FOR I=0 TO 15
850 LET E=A*A/S
860 LET F=B*B/S
870 LET T=E-F+C
880 LET G=A*B/S
890 LET B=G+G+D
900 LET A=T
910 IF (A*A/S+B*B/S)>H THEN GOTO 950
920 NEXT I
930 PRINT " ";
940 GOTO 960
950 PRINT CHR$(28+I);
960 NEXT X
970 PRINT
980 NEXT Y
990 IF INKEY$="" THEN GOTO 990
1000 STOP
======= Slot12: 924 B, free 100 B
-------------------------------------------------
27) FLAPPYS SONG (922 B)
To use: LOAD 12, RUN
10 REM
20 REM FLAPPYS SONG
30 REM
40 PRINT "PLAYING FLAPPYS SONG..."
50 LET G4=39200
60 LET B4=49388
70 LET C5=52325
80 LET D5=58733
90 LET E5=65926
100 LET F5=69846
110 LET FS5=73999
120 LET G5=78399
130 LET A5=88000
140 LET B5=98777
150 LET C6=104650
160 LET D6=117466
170 LET R=0
180 LET L2=533
190 LET L2D=800
200 LET L4=267
210 LET L4D=400
220 LET L8=133
230 LET N=READ
240 LET L=READ
250 BEEP N,L
260 GOTO 230
270 DATA R,L2,E5,L8,R,L8,C5,L4
280 DATA R,L4,E5,L8,R,L8,C5,L4
290 DATA R,L4,E5,L8,R,L8,G5,L8
300 DATA R,L8,G5,L8,E5,L8,C5,L8
310 DATA E5,L8,D5,L4D,R,L8,F5,L8
320 DATA R,L8,B4,L4,R,L4,D5,L8
330 DATA R,L8,G4,L4,R,L4,D5,L8
340 DATA R,L8,F5,L8,R,L8,F5,L8
350 DATA D5,L8,B4,L8,D5,L8,C5,L4D
360 DATA R,L4D,A5,L2D,R,L4,F5,L8
370 DATA R,L8,F5,L8,R,L8,R,L8
380 DATA A5,L8,F5,L8,A5,L8,F5,L8
390 DATA A5,L8,D6,L8,C6,L8,B5,L8
400 DATA D6,L8,C6,L8,A5,L8,G5,L4
410 DATA E5,L4,C5,L4,R,L4,E5,L4
420 DATA C5,L4,R,L4,E5,L4,C5,L4
430 DATA G5,L8,FS5,L8,A5,L8,G5,L8
440 DATA F5,L8,E5,L8,D5,L4,B4,L8
450 DATA G5,L8,F5,L4,D5,L4,B4,L8
460 DATA G5,L8,F5,L4,D5,L4,B4,L8
470 DATA G5,L8,F5,L4,B5,L8,A5,L8
480 DATA G5,L8,F5,L8,E5,L8,D5,L8
490 DATA C5,L4,R,L4,B4,L4,C5,L4
500 DATA R,L4,B4,L4,C5,L4,R,L2
======= Slot13: 501 B, free 11 B
28) MATCHES (499 B)
To use: LOAD 13, RUN
"\letter" means: press SHIFT and letter
10 REM
20 REM MATCHES
30 REM
40 RANDOMISE
50 LET M=18+RND(12)
60 PRINT "WHO TAKES LAST ONE LOSES."
70 PRINT
80 FOR L=1 TO 4
90 FOR K=1 TO M
100 IF L=1 THEN PRINT "\E";
110 IF L>1 THEN PRINT "\Q";
120 NEXT K
130 PRINT
140 NEXT L
150 PRINT
160 PRINT M;" MATCHES, YOUR TURN"
170 IF M=1 THEN GOTO 380
180 PRINT "HOW MUCH? (1-3, 0=QUIT)"
190 INPUT T
200 IF T=M THEN GOTO 380
210 IF T<1 THEN STOP
220 IF T>3 OR T>M THEN GOTO 190
230 LET M=M-T
240 IF M=1 THEN GOTO 360
250 LET C=RND(3)
260 IF RND(6)=1 THEN GOTO 290
270 LET R=M-4*(M/4)
280 IF NOT R=1 THEN LET C=R+3-4*((R+3)/4)
290 IF C>M THEN LET C=M
300 LET M=M-C
310 IF M=0 THEN GOTO 360
320 CLS
330 PRINT "YOU TOOK ";T
340 PRINT "I TOOK ";C
350 GOTO 70
360 PRINT "YOU WON"
370 GOTO 390
380 PRINT "I WON"
390 PRINT "PLAY AGAIN? (Y)"
400 INPUT A$
410 IF NOT CODE(A$)=62 THEN STOP
420 CLS
430 GOTO 50