ZX81 Programs


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

ZX81 Program Listing

**VARGEN CROWN*SLR/1984 (vc.p)


SYSTEM VARIABLES

PROG  : 16509
D-FILE: 18840
VARS  : 19633
E-LINE: 19634
STKBOT: 19634
STKEND: 19634


LEGEND

9999 means line number
PRINT means treat as KEYWORD P


PROGRAM LISTING

  10 REM **VARGEN CROWN*SLR/1984
  15 REM **UPDATED  11/16/1998**
  20 LET S=0
  30 LET T=999
  40 FOR A=0 TO 21
  50 PRINT AT A,0;" ";AT A,31;" 
";AT 0,A;"          ";AT 21,A;" 
         "
  60 NEXT A
  70 PRINT AT 1,25;" TIME:";AT 2
,25;" >   <";AT 3,25;"      "
  80 PRINT AT 1,2;"³";AT 2,1;"² 
±";AT 3,1;"   ";AT 4,1;" C ";AT
5,1;" ³ "
  90 PRINT AT 15,29;"³";AT 16,28
;"± ²";AT 17,28;" H ";AT 18,28;"
   "
 100 LET B$="ó¶ö"
 110 DIM A$(4)
 120 FOR A=1 TO 3
 130 LET A$(A)=B$(INT (RND*3+1))
 140 NEXT A
 150 LET A$(4)=B$(INT (RND*2+1))
 160 LET O=0
 170 LET X=18
 180 LET Y=29
 190 LET X1=X
 200 LET Y1=Y
 210 LET Q1=INT (RND*14+4)
 220 LET Q2=INT (RND*18+7)
 230 LET W1=INT (RND*14+4)
 240 LET W2=INT (RND*21+4)
 250 FOR A=T TO 0 STEP -1
 255 SLOW
 260 PRINT AT X,Y;"¸";AT X1,Y1;"
 " AND (X1<>X OR Y1<>Y)
 270 PRINT AT 2,27;A;" " AND A<1
00
 280 LET X1=X
 290 LET Y1=Y
 300 LET X=X+(INKEY$="6")-(
INKEY$="7")
 310 LET Y=Y+(INKEY$="8")-(
INKEY$="5")
 320 IF X=Q1 AND Y=7 AND O=0
THEN LET O=1
 322 IF Y=W2 AND X=20 AND O=-1
THEN LET O=2
 325 FAST
 330 IF O=1 THEN PRINT AT Q1,Q2;
"O´"
 340 IF O=2 THEN PRINT AT W1,W2;
"ôõô";AT W1+1,W2;" ±õ"
 345 IF O=3 THEN PRINT AT 18,29;
" ";AT Q1,Q2;"  "
 350 IF O=-2 THEN PRINT AT 1,20;
A$( TO 3);AT 18,29;"³"
 355 IF O=-3 THEN PRINT AT 5,2;"
 "
 360 PRINT AT X,Y;
 370 LET P=PEEK (PEEK 16398+256*
PEEK 16399)
 380 IF P<>0 AND P<>136 THEN
GOTO 400
 390 GOTO 480
 400 LET X=X1
 410 LET Y=Y1
 420 IF P=168 AND O=-3 THEN LET
O=-2
 430 IF P=180 THEN LET O=-3
 440 IF P=5 THEN LET O=3
 450 IF P=173 AND O=3 THEN GOTO
600
 460 IF P=3 OR P=134 OR P=6
THEN GOSUB 510
 470 LET S=S+(INT (RND*3))
 480 NEXT A
 490 PRINT AT 21,0;"TIMES UP.YOU
 DIED*SCORE=";S
 500 STOP
 510 FOR B=1 TO 3
 520 IF P=6 AND B<>Y-19 THEN
LET A$(B)=("ö" AND A$(B)="¶")+("
¶" AND A$(B)="ó")+("ó" AND A$(B)
="ö")
 530 IF P=3 AND B<>Y-19 THEN
LET A$(B)=("ó" AND A$(B)="¶")+("
ö" AND A$(B)="ó")+("¶" AND A$(B)
="ö")
 540 IF P=134 AND B<>Y-19 THEN
LET A$(B)=("¶" AND A$(B)="¶")+("
ó" AND A$(B)="ó")+("¶" AND A$(B)
="ö")
 550 NEXT B
 560 IF A$( TO 3)=(A$(4)+A$(4)+A
$(4)) THEN LET O=-1
 570 PRINT AT 1,20;A$( TO 3)
 580 IF O=-1 THEN PRINT AT 1,20;
"   "
 590 RETURN
 600 PRINT AT 21,0;"YOU DID IT**
-**-**-**-**-**-**-*"
 610 LET S=S+A
 620 LET T=T-(50 AND T>300)
 630 PAUSE 600
 640 CLS
 650 GOTO 40
 700 SAVE "VC"
 710 RUN