ZX81 Programs


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

ZX81 Program Listing

sc (sc.p)


SYSTEM VARIABLES

PROG  : 16509
D-FILE: 18533
VARS  : 19326
E-LINE: 19327
STKBOT: 19327
STKEND: 19327


LEGEND

9999 means line number
PRINT means treat as KEYWORD P


PROGRAM LISTING

  10 REM **SEA CROSS**SLR/1985**
  20 LET S=0
  30 LET A$="*"
  40 DIM B$(2,128)
  50 LET B$(1)="!!!!!   !!!!!   
!!!!!   !!!!!   !!!!!!!!     !!!
!!!!!!!!     !!!   !!!!!!!!!!   
!!!!!!!!!!   !!!!!!!    !!!!    
!!!!    !!!!    "
  60 LET B$(2)="!!!!!---!!!!!   
!!!!!---!!!!!   !!!!!!!!!!   !!!
!!!!!!!!  !!!!!! ! !!!!!!!!!!! !
!!!!!!!!!!!! !!!!!!!!!!!!!!!    
!!!!!!!!!!!!    "
  70 LET PA=0
  80 LET B=1
  90 LET X=8
 100 LET Y=15
 110 LET X1=X
 120 LET Y1=Y
 130 CLS
 140 PRINT "        S E A  C R O
 S S        ¸=¸¸¸=¸¸¸=¸¸¸=¸¸¸=¸¸
¸=¸¸¸=¸¸¸=¸¸";B$(1);"           
                     "
 150 FOR G=1 TO 8
 151 LET X=6
 152 LET Y=15
 153 LET X1=X
 154 LET Y1=Y
 160 FOR H=1 TO 40
 170 PRINT AT X1,Y1;" " AND (X1
<>X OR Y1<>Y);AT 2,0;B$(B);AT X,
Y;A$
 180 LET X1=X
 190 LET Y1=Y
 200 LET L$=INKEY$
 210 LET X=X-(L$="M")+(L$="X"
AND X<6)
 220 LET Y=Y-(L$="Z")+(L$=".")
 230 LET Y=Y+(X=5 OR X=3)-(X=4
OR X=2)
 240 IF Y<0 OR Y>31 THEN GOTO 44
0
 250 IF X=1 THEN GOTO 350
 260 LET B=B-(PA=5 AND B=2)+(PA=
0 AND B=1)
 270 LET PA=PA+(B=2)-(B=1)
 280 LET B$(1)=B$(1,2 TO 32)+B$(
1,1)+B$(1,64)+B$(1,33 TO 63)+B$(
1,66 TO 96)+B$(1,65)+B$(1,128)+B
$(1,97 TO 127)
 290 LET B$(2)=B$(2,2 TO 32)+B$(
2,1)+B$(2,64)+B$(2,33 TO 63)+B$(
2,66 TO 96)+B$(2,65)+B$(2,128)+B
$(2,97 TO 127)
 300 IF X=6 THEN GOTO 330
 310 IF B$(B,32*(X-2)+Y+1)=" "
THEN GOTO 330
 320 GOTO 440
 330 NEXT H
 340 GOTO 440
 350 PRINT AT X,Y;
 360 IF PEEK (PEEK 16398+256*
PEEK 16399)<>CODE "=" THEN GOTO
440
 365 PRINT AT X,Y;"$"
 370 NEXT G
 380 PRINT AT 10,0;"YOU MADE IT 
THROUGH..GO ON...   SCORE:";
 390 LET S=S+100
 400 PRINT S
 410 PAUSE 100
 420 PRINT "SLR...ONWARD" AND S>
1000
 430 GOTO 30
 440 PRINT AT 10,0;"YOU DIED...S
CORE:";S
 450 PRINT AT 2,0;B$(B);AT X,Y;"
X" AND (Y>-1 AND Y<32);AT X1,Y1;
"X" AND (Y<0 OR Y>31)
 460 PAUSE 4E4
 470 RUN
 500 SAVE "SC"
 510 RUN