ZX81 Programs


Read about, play, run, or list games, animations, and more. These are my programs from the ’80s to today.

ZX81 Program Listing

**FLYWHEEL**SLR/1985*** (fw.p)


SYSTEM VARIABLES

PROG  : 16509
D-FILE: 24028
VARS  : 24821
E-LINE: 24822
STKBOT: 24822
STKEND: 24822


LEGEND

A means INVERSE A
A means GRAPHICS A
PRINT means treat as KEYWORD P


PROGRAM LISTING

  10 REM **FLYWHEEL**SLR/1985***
  20 LET S=0
  30 PRINT AT 2,15;"DAD";AT 3,0;
"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
H HHHHHHHH HHHHH HHHHHHHH HH HHH
H  HH HH H  HHH  H HHH H  HH  H 
H"
  40 FOR A=8 TO 21
  50 PRINT AT A,0;"             
                   "
  60 NEXT A
  70 GOSUB 1000
  80 FOR A=10 TO 20 STEP 2
  90 PRINT AT A,15-(A-10)+(A-(5+
A/2));"5";AT A,A/2+11;"8"
 100 PRINT AT A+1,15-(A-10)+(A-(
5+A/2));"8";AT A+1,A/2+11;"5"
 110 NEXT A
 120 PRINT AT 20,14;A$;AT 21,14;
B$(P)
 130 PRINT AT 16,10;"HHHSTART*HH
H"
 140 FOR A=15 TO 21
 150 PRINT AT A,10;"H";TAB 21;"H
"
 160 NEXT A
 170 FOR G=13 TO 17
 180 PRINT AT 16,G;"*"
 190 FOR A=1 TO 20
 200 NEXT A
 210 NEXT G
 220 FOR G=1 TO R1
 230 GOSUB 1000*Z(G)+1000
 240 NEXT G
 260 PRINT AT 16,10;"HHHFINISHHH
H"
 270 FOR A=15 TO 21
 280 PRINT AT A,10;"H";TAB 21;"H
"
 290 NEXT A
 300 LET S=S+500+INT (500*RND+1)
 310 PRINT AT 0,0;"SCORE:";S;"  
  KEEP IT UP**"
 320 FOR A=1 TO 300
 330 NEXT A
 340 GOTO 30
 400 PRINT AT 0,0;"SCORE:";S;"  
  YOU CRASHED**";AT 20,C;D$;AT 2
0,X;"TYTW";AT 21,C;D$;AT 21,C;"E
1YE"
 410 PRINT AT 2,0;"PRESS ENTER T
O BEGIN AGAIN..."
 420 PAUSE 4E4
 430 CLS
 440 RUN
 500 FOR A=10 TO 20 STEP 2
 510 PRINT AT A,0;"             
                                
                   "
 520 PRINT AT A,15-(A-10)+(A-(5+
A/2));"5";AT A,A/2+11;"8"
 530 PRINT AT A+1,15-(A-10)+(A-(
5+A/2));"8";AT A+1,A/2+11;"5"
 540 NEXT A
 550 RETURN
 600 FOR A=10 TO 20 STEP 2
 610 PRINT AT A,0;"             
                                
                   "
 620 PRINT AT A,7;"5T7" AND A=10
;AT A+1,7;"5  T" AND A=10;AT A,8
;"8  T" AND A=12;AT A+1,8;"8   T
" AND A=12;AT A,8;"5    T" AND A
=14;AT A+1,8;"5     T" AND A=14
 630 PRINT AT A,9;"8     67"
AND A=16;AT A+1,9;"8       T"
AND A=16;AT A,9;"5        T"
AND A=18;AT A+1,9;"5         T"
AND A=18;AT A,10;"8         T"
AND A=20;AT A+1,10;"8          
T" AND A=20
 640 NEXT A
 650 RETURN
 700 FOR A=10 TO 20 STEP 2
 710 PRINT AT A,0;"             
                                
                   "
 720 PRINT AT A,22;"7Y8" AND A=1
0;AT A+1,21;"Y  8" AND A=10;AT A
,20;"Y  5" AND A=12;AT A+1,19;"Y
   5" AND A=12;AT A,18;"Y    8"
AND A=14;AT A+1,17;"Y     8"
AND A=14
 730 PRINT AT A,15;"76     5"
AND A=16;AT A+1,14;"Y       5"
AND A=16;AT A,13;"Y        8"
AND A=18;AT A+1,12;"Y         8
" AND A=18;AT A,11;"Y         5"
AND A=20;AT A+1,10;"Y          
5" AND A=20
 740 NEXT A
 750 RETURN
1000 LET X=14
1010 LET A$="6216"
1020 DIM B$(2,4)
1030 LET R1=10+INT (RND*10+1)
1040 DIM Z(R1)
1050 FOR A=1 TO R1
1060 LET Z(A)=INT (RND*3+1)
1070 NEXT A
1080 LET B$(1)="A66A"
1090 LET B$(2)="H66H"
1100 LET P=1
1110 LET C=X
1120 LET D$="    "
1130 LET Z(1)=1
1140 RETURN
2000 IF Z(G-(G>1))<>1 OR G=1
THEN GOSUB 500
2010 FOR A=1 TO 2+INT (RND*4)
2020 PRINT AT 20,X;A$;AT 21,X;B$
(P+1)
2030 LET R2=INT (RND*2)
2040 FOR V=14 TO 22
2050 PRINT AT 20,C;D$;AT 20,X;A$
;AT 21,C;D$;AT 21,X;B$(P+1)
2060 LET C=X
2070 LET P=NOT P
2080 LET X=X-(INKEY$="Z" AND X>1
1)+(INKEY$="." AND X<17)
2090 GOSUB 2400+200*R2+20*(V-14)
2100 NEXT V
2120 IF (R2=0 AND X+3<19) OR (R2
=1 AND X>12) THEN GOTO 400
2130 LET S=S+10
2140 NEXT A
2150 RETURN
2400 PRINT AT V,15;"E"
2410 RETURN
2420 PRINT AT V,15;"7";AT V-1,15
;" "
2430 RETURN
2440 PRINT AT V,14;"E7";AT V-1,1
5;" "
2450 RETURN
2460 PRINT AT V,14;"77";AT V-1,1
4;"  "
2470 RETURN
2480 PRINT AT V,13;"ER7";AT V-1,
14;"  "
2490 RETURN
2500 PRINT AT V,13;"   ";AT V-1,
13;"   "
2510 RETURN
2520 PRINT AT V,12;"58  ";AT V-1
,13;"   "
2530 RETURN
2540 PRINT AT V,12;"    ";AT V-1
,12;"    "
2550 RETURN
2560 PRINT AT V-1,12;"    "
2570 RETURN
2600 PRINT AT V,16;"R"
2610 RETURN
2620 PRINT AT V,16;"7";AT V-1,16
;" "
2630 RETURN
2640 PRINT AT V,16;"7R";AT V-1,1
6;" "
2650 RETURN
2660 PRINT AT V,16;"77";AT V-1,1
6;"  "
2670 RETURN
2680 PRINT AT V,16;"7ER";AT V-1,
16;"  "
2690 RETURN
2700 PRINT AT V,16;"   ";AT V-1,
16;"   "
2710 RETURN
2720 PRINT AT V,16;"  58";AT V-1
,16;"   "
2730 RETURN
2740 PRINT AT V,16;"    ";AT V-1
,16;"    "
2750 RETURN
2760 PRINT AT V-1,16;"    "
2770 RETURN
3000 IF Z(G-1)<>2 THEN GOSUB 600
3005 LET X=X-(X=17)
3008 LET C=X
3010 FOR A=1 TO 2+INT (RND*4)
3020 PRINT AT 20,X;A$;AT 21,X;B$
(P+1)
3030 LET R2=INT (RND*2)
3040 FOR V=14 TO 22
3050 PRINT AT 20,C;D$;AT 20,X;A$
;AT 21,C;D$;AT 21,X;B$(P+1)
3060 LET C=X
3070 LET P=NOT P
3080 LET X=X-(INKEY$="Z" AND X>1
1)+(INKEY$="." AND X<16)
3090 GOSUB 3400+200*R2+20*(V-14)
3100 LET S=S+1
3110 NEXT V
3120 IF (R2=0 AND X+3<18) OR (R2
=1 AND X>12) THEN GOTO 400
3130 LET S=S+10
3140 NEXT A
3150 RETURN
3400 PRINT AT V,9;"E"
3410 RETURN
3420 PRINT AT V,10;"7";AT V-1,9;
" "
3430 RETURN
3440 PRINT AT V,10;"E7";AT V-1,1
0;" "
3450 RETURN
3460 PRINT AT V,10;"E7R";AT V-1,
10;"  "
3470 RETURN
3480 PRINT AT V,11;"7ER";AT V-1,
10;"   "
3490 RETURN
3500 PRINT AT V,11;"   ";AT V-1,
11;"   "
3510 RETURN
3520 PRINT AT V,11;"  58";AT V-1
,11;"   "
3530 RETURN
3540 PRINT AT V,11;"    ";AT V-1
,11;"    "
3550 RETURN
3560 PRINT AT V-1,11;"    "
3570 RETURN
3600 PRINT AT V,11;"R"
3610 RETURN
3620 PRINT AT V,12;"7";AT V-1,11
;" "
3630 RETURN
3640 PRINT AT V,13;"7R";AT V-1,1
2;" "
3650 RETURN
3660 PRINT AT V,14;"77";AT V-1,1
3;"  "
3670 RETURN
3680 PRINT AT V,14;"ER7";AT V-1,
14;"  "
3690 RETURN
3700 PRINT AT V,15;"   ";AT V-1,
14;"   "
3710 RETURN
3720 PRINT AT V,15;"58  ";AT V-1
,15;"   "
3730 RETURN
3740 PRINT AT V,16;"    ";AT V-1
,15;"    "
3750 RETURN
3760 PRINT AT V-1,16;"    "
3770 RETURN
4000 IF Z(G-1)<>3 THEN GOSUB 700
4005 LET X=X+(X=11)
4008 LET C=X
4010 FOR A=1 TO 2+INT (RND*4)
4020 PRINT AT 20,X;A$;AT 21,X;B$
(P+1)
4030 LET R2=INT (RND*2)
4040 FOR V=14 TO 22
4050 PRINT AT 20,C;D$;AT 20,X;A$
;AT 21,C;D$;AT 21,X;B$(P+1)
4060 LET C=X
4070 LET P=NOT P
4080 LET X=X-(INKEY$="Z" AND X>1
2)+(INKEY$="." AND X<17)
4090 GOSUB 4400+200*R2+20*(V-14)
4100 LET S=S+1
4110 NEXT V
4120 IF (R2=0 AND X+3<19) OR (R2
=1 AND X>13) THEN GOTO 400
4130 LET S=S+10
4140 NEXT A
4150 RETURN
4400 PRINT AT V,20;"E"
4410 RETURN
4420 PRINT AT V,19;"7";AT V-1,20
;" "
4430 RETURN
4440 PRINT AT V,17;"E7";AT V-1,1
9;" "
4450 RETURN
4460 PRINT AT V,16;"77";AT V-1,1
7;"  "
4470 RETURN
4480 PRINT AT V,15;"7ER";AT V-1,
16;"  "
4490 RETURN
4500 PRINT AT V,14;"   ";AT V-1,
15;"   "
4510 RETURN
4520 PRINT AT V,13;"  58";AT V-1
,14;"   "
4530 RETURN
4540 PRINT AT V,12;"    ";AT V-1
,13;"    "
4550 RETURN
4560 PRINT AT V-1,12;"    "
4570 RETURN
4600 PRINT AT V,22;"R"
4610 RETURN
4620 PRINT AT V,21;"7";AT V-1,22
;" "
4630 RETURN
4640 PRINT AT V,20;"7R";AT V-1,2
1;" "
4650 RETURN
4660 PRINT AT V,19;"E7R";AT V-1,
20;"  "
4670 RETURN
4680 PRINT AT V,18;"ER7";AT V-1,
19;"   "
4690 RETURN
4700 PRINT AT V,18;"   ";AT V-1,
18;"   "
4710 RETURN
4720 PRINT AT V,17;"58  ";AT V-1
,18;"   "
4730 RETURN
4740 PRINT AT V,17;"    ";AT V-1
,17;"    "
4750 RETURN
4760 PRINT AT V-1,17;"    "
4770 RETURN
5000 CLS
5010 CLEAR
5020 SAVE "FW"
5030 PRINT "**FLY WHEEL**BY STEV
EN REID/1985  FFFFFFFFF         
            3D CAR DRIVING PROGR
AM. USE "Z" FOR LEFT AND "." FOR
 RIGHT.     GOOD DRIVING****    
            "
5040 PRINT AT 21,0;"PRESS ENTER 
TO BEGIN GAME PLAY.."
5050 GOTO 420