ZX81 Programs


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

ZX81 Program Listing

**LASER BLAST**SLR/1984 (lsrblst.p)


SYSTEM VARIABLES

PROG  : 16509
D-FILE: 18483
VARS  : 19276
E-LINE: 19277
STKBOT: 19277
STKEND: 19277


LEGEND

9999 means line number
PRINT means treat as KEYWORD P


PROGRAM LISTING

  10 REM **LASER BLAST**SLR/1984
  20 LET Z=1000
  30 LET R=1
  40 LET Q=.9
  50 LET A$=" ±º² "
  60 LET B$=" ÷¹´ "
  70 LET A=10
  80 LET B=12
  90 LET C$="!"
 100 LET D$=" "
 110 LET G=1
 120 LET S=0
 130 LET M=3
 140 PRINT AT 10,0;"¸¸¸¸¸¸¸¸¸¸¸¸
¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸";AT 11,0;"S
CORE:";S;TAB 0;"MEN:";M;AT 0,A;A
$;AT 9,B;B$
 150 LET A=A+(INKEY$="." AND A<2
6)-(INKEY$="Z" AND A>0)
 160 IF INKEY$="M" THEN GOTO 180
 170 GOTO 260
 180 FOR C=1 TO 9
 190 LET B=B+(A>B)-(A<B)
 200 PRINT AT C,A+2;C$;AT 9,B;B$
 210 NEXT C
 220 IF A+2>=B+1 AND A+2<=B+3
THEN GOTO 520
 230 FOR C=1 TO 9
 240 PRINT AT C,A+2;" "
 250 NEXT C
 260 LET B=B+(A>B)-(A<B)
 270 RAND
 280 IF RND<=Q THEN GOTO 140
 290 FOR C=8 TO 0 STEP -1
 300 PRINT AT C,B+2;D$;AT 0,A;A$
;AT 9,B;B$
 310 LET A=A+(INKEY$="." AND A<2
6)-(INKEY$="Z" AND A>0)
 320 LET B=B+(A>B)-(A<B)
 330 NEXT C
 340 IF B+2>=A+1 AND B+2<=A+3
THEN GOTO 400
 350 FOR C=0 TO 9
 360 PRINT AT C,0;"             
                   ";AT 9,B;B$;
AT 0,A;A$
 370 NEXT C
 380 GOTO 140
 400 LET M=M-1
 410 IF M=0 THEN GOTO 450
 420 LET S=S+(10*R)
 430 CLS
 440 GOTO 140
 450 PRINT AT 11,0;"SCORE:";S
 455 IF INKEY$<>"" THEN GOTO 455
 460 PRINT AT 6,5;"GAME OVER"
 470 IF INKEY$<>"" THEN GOTO 500
 480 PRINT AT 6,5;"GAME OVER";
AT 21,0;"PRESS ENTER TO PLAY AGA
IN*******"
 490 GOTO 460
 500 CLS
 510 RUN
 520 LET S=S+(10*R)
 530 LET B=25
 540 LET R=R+(R<33)
 550 LET Q=Q-(.05 AND Q>.5)
 560 LET A=1
 570 IF S>=2000 THEN LET B=INT (
27*RND)
 580 IF S>=7000 THEN LET Q=Q-(.0
5 AND Q>.3)
 590 IF S>=10000 THEN GOTO 650
 600 IF S>=Z THEN LET M=M+(M<7)
 610 IF S>=Z THEN LET Z=Z+1000
 620 CLS
 630 GOTO 140
 650 PRINT AT 11,0;"SCORE:?????"
;AT 21,0;"PRESS ENTER TO BEGIN A
 NEW GAME*";AT 20,3;"CREATED BY:
 STEVEN L. REID"
 655 IF INKEY$<>"" THEN GOTO 655
 660 PRINT AT 5,5;"YOU BEAT IT";
AT 11,6;"?????"
 670 IF INKEY$<>"" THEN GOTO 500
 680 PRINT AT 6,6;"GAME OVER"
 690 PRINT AT 5,5;"YOU BEAT IT";
AT 11,6;"?????"
 700 GOTO 660
 800 SAVE "LSRBLST"
 810 RUN