ZX81 Programs


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

ZX81 Program Listing

mazegen (mazegen.p)


SYSTEM VARIABLES

PROG  : 16509
D-FILE: 17626
VARS  : 18419
E-LINE: 18420
STKBOT: 18425
STKEND: 18425


LEGEND

9999 means line number
PRINT means treat as KEYWORD P


PROGRAM LISTING

   1 REM /***MAZEGEN**SLR/2024**
30413 YõMCALL LN MRNDLN ²INKEY$
LN JERR MSGS LN ZINKEY$/PAUSE
TAN LN EúñùòLN PRINT !5:INKEY$
LN )ERR MSGS ñõôLN PRINT !AñU
CALL LN INDENT INKEY$5END PROC ò
LN 9ERR MSGS LN PROTECT INKEY$
RETURN 6C=RETURN ?C(RETURN 7C.
RETURN ?C*RETURN GCOS RETURN
51224 CALL XRETURN ñASN INT RNDM
CALL ?AT RNDUCALL WRETURN "ASN
INT RNDMCALL ?AT RND* MAZEGEN *
30264 E:
30242 HRINK, 7-GROW, G-GENERATE
COPY 5END PROC òLN 9ERR MSGS LN
PROTECT INKEY$RCPOKE TAN GOSUB
UNDRAW 9RND£CRAND $LN X÷A0LN
DUP INKEY$APLOT LN DUP INKEY$ö A
COPY I.G´SUNPLOT =PRINT ?(ù
RETURN 04õô?BNOT LET TAN YñM5
ERR MSGS M4ERR MSGS LN CCALL 5
CALL JERROR ¶(CLEAR ?A WMDELETE
CALL ERR MSGS EDIT 5WHEN CALL )W
CALL Q 7FOR Q 7FOR "?L4NEXT U
CALL WHILE LN OERR MSGS
DEF PROC PISTR$ Yò5WHEN CALL LN
£CALL SGN LN OERR MSGS DEF PROC
YñCHAR GOSUB CALL DO CALL M
UNTIL CALL MEXIT CALL 5WCALL LN
£CALL LN CCALL JMWHILE CALL
GOSUB UNDRAW DO CALL õASN RAND
INKEY$5WCALL LN =CALL RTAB RAND
INKEY$5WHILE CALL ACS EXP GOSUB
UNDRAW DO CALL UCALL TASN =PI£5W
CALL LN =CALL RTAB =PI5WHILE
CALL ACS CHR$ GOSUB UNDRAW DO
CALL UCALL SASN JPIô5WCALL LN =
CALL RTAB JPI5WHILE CALL ACS
THEN GOSUB UNDRAW DO CALL $ASN
ERROR PI5WCALL LN =CALL RTAB
ERROR PI5WHILE CALL ACS NEW U
WHILE CALL RTAB ?PI5EXIT CALL PU
CALL CHAR UCALL DEF PROC VAL 5W
CALL LN =CALL 5EXIT CALL AT YCö$
4LOAD (DIM TAN GOSUB CALL DO
CALL ?<=INKEY$LN OERR MSGS 5
WHILE CALL RETURN ñ4/ACS AUTO C=
GOSUB UNDRAW DO CALL õGOSUB
CALL DO CALL 5WHEN CALL YòLN £
CALL ?LIST PIRETURN ò4;ACS
UNTIL C+GOSUB UNDRAW DO CALL £
GOSUB CALL DO CALL $5WHEN CALL Y
ñLN £CALL ?LIST PIRETURN ó4;ACS
RESTORE C+GOSUB UNDRAW DO CALL ô
GOSUB CALL DO CALL õ5WHEN CALL Y
òLN £CALL ?LIST PIRETURN ô4/ACS
DPEEK C=GOSUB UNDRAW DO CALL $
GOSUB CALL DO CALL 5WHEN CALL Yñ
LN £CALL ?LIST PI/´UUNTIL CALL W
MUNTIL CALL MEXIT CALL GOSUB
UNDRAW DO CALL 5WCALL LN £CALL 5
DELETE CALL YTAB <=INKEY$TAN
PRINT LN ;CALL LET ¶?TAN LN ;
CALL ;õCOS UCALL READ ;(CLEAR
TAN 55ERR MSGS P""Y=?ñúôLN
PRINT !56ERR MSGS LN )ERR MSGS 5
4ERR MSGS O?ö DEF PROC 5F
ERR MSGS ù                      
                                
                                
                                
                                
                                
                        BUILDING
COPY ÷´±²LN Eú5WCALL UCALL CHAR
Y.NOT òY NOT NOT (LIST Y.NOT Y
55073 UCALL CHAR VAL YINOT UCALL
CHAR FAST NOT NOT ACS ERROR YI
CòY NOT 7(LIST LPRINT Y
55098 CHAR Y.NOT ACS AUTO Y-CòY 
NOT NOT 7(LIST Y.NOT Y
55233 TAN /SAVE OR LN ERROR ?Kò
OR TAN INT COPY   67ERR MSGS
LN ;ERR MSGS E7ERR MSGS F?P4
PAUSE TAN 5  GOSUB READ µ?GOSUB
READ ´NEW ?LINE 6PERR MSGS
   2 RAND USR VAL "16514"