ZX81 Programs


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

ZX81 Program Listing

mazegen2 (mazegen2.p)


SYSTEM VARIABLES

PROG  : 16509
D-FILE: 17634
VARS  : 18427
E-LINE: 18428
STKBOT: 18433
STKEND: 18433


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 1ERR MSGS ñõôLN PRINT !AñU
CALL LN INDENT INKEY$5END PROC ò
LN LERR 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 LERR 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 ""ERR MSGS
DEF PROC PISTR$ Yò5WHEN CALL LN
£CALL SGN LN ""ERR MSGS
DEF PROC YñCHAR GOSUB CALL DO
CALL MUNTIL CALL MEXIT CALL 5W
CALL 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£5WCALL LN =CALL RTAB =PI5
WHILE CALL ACS CHR$ GOSUB
UNDRAW DO CALL UCALL SASN JPIô5W
CALL LN =CALL RTAB JPI5WHILE
CALL ACS THEN GOSUB UNDRAW DO
CALL $ASN ERROR PI5WCALL LN =
CALL RTAB ERROR PI5WHILE CALL
ACS NEW UWHILE CALL RTAB ?PI5
EXIT CALL PUCALL CHAR UCALL
DEF PROC VAL 5WCALL LN =CALL 5
EXIT CALL AT YCö$4LOAD (DIM TAN
GOSUB CALL DO CALL ?<=INKEY$
LN ""ERR MSGS 5WHILE 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 1ERR MSGS 5
4ERR MSGS O?ö DEF PROC 5F
ERR MSGS ù                      
                                
                                
                                
                                
                                
                        BUILDING
COPY ÷´±²LN Eú5WCALL UCALL CHAR
NOT !Y NOT NOT NOT NOT (
GOSUB Y
55073 UCALL CHAR VAL NOT UCALL
CHAR FAST NOT ACS ERROR 4òYµ
NOT 7(NEXT LPRINT Y
55102 UCALL CHAR ACS AUTO Y³CòY 
NOT  READ ;Y
55233 TAN ±³µ·/SAVE OR LN ERROR
?Kò OR TAN INT COPY   6J
ERR MSGS LN 9ERR MSGS EJ
ERR MSGS F?P4PAUSE TAN Yñ???
INPUT THEN COPY MAT ERR MSGS
>KCLEAR ºTAN
   2 RAND USR VAL "16514"