ZX81 Programs


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

ZX81 Program Listing

pim (pim.p)


SYSTEM VARIABLES

PROG  : 16509
D-FILE: 18603
VARS  : 19396
E-LINE: 19397
STKBOT: 19397
STKEND: 19397


LEGEND

9999 means line number
PRINT means treat as KEYWORD P


PROGRAM LISTING

   1 REM /P BY STEVEN REID 2021 
* * PICTURE IN MOTION * *
30208   5  6ORND6QRND6RRNDLN +
INKEY$RETURN QASN ,INKEY$LN
DPEEK INKEY$5  6ORND5RINKEY$LN 1
INKEY$EQRND6ORND5 STEP INKEY$LN
1INKEY$LN EDIT INKEY$USRNDBTAB ö
INKEY$URRNDXMRRNDRETURN RETURN
TAB VAL RNDYñMSRND?VAL RNDURRNDW
MRRNDRETURN  TAB VAL RNDY MSRND?
VAL RND?>=£ORND MUDPOKE 7ERROR U
PRND MVDPOKE 7ERROR UORND MW
DPOKE 7ERROR UPRND MXDPOKE 7
FAST LN ERR MSGS LPRINT ?1INKEY$
GOSUB OFF£RND5¹DPOKE ñNOT ò
GOSUB KTAN )¹DPOKE E£RNDñNOT ò
GOSUB KTAN )Z 5NOSTALGIC Y-ñ5 
GOSUB SXTAB ?INKEY$TAN úñ  M?
INKEY$EORNDùF?NEW ?LINE 6?INKEY$
U?INKEY$CHAR LN BINKEY$LN Vò
ERR MSGS EDIT =YñCOS LN X÷INKEY$
XCHAR : " ?L4IF TAN  -A-P-RND-ôô
ùô!ôúõùõù÷ùö÷!!!ô!ô!ò÷ò÷òöòöôõ
COPY ;AXAWARDRD2D2D;BKAK!K!H"H"K
"K£,7,7W7V7K£COPY LN /PIUMDPOKE
ACS DEF PROC TAB QPILN ?PITAN UO
DPOKE ACS ?""CHR$ RNDLIST UP
DPOKE ACS ?""CHR$ ILIST Y MQ
DPOKE UODPOKE ACS ZMODPOKE KõYñM
QDPOKE UPDPOKE ACS ZMPDPOKE K!UQ
DPOKE ACS INT MQDPOKE 5¹DPOKE 7)
5 UPDPOKE RETURN  CôCHAR ;(
CLEAR )  UODPOKE READ ;6RDPOKE
TAN ERDPOKE UQDPOKE RETURN  C$
RETURN ñC-RETURN òC3RETURN óCC
TAN SIN ?TAN ACS ·?TAN INT ?TAN
ACS ??TAN NOT ?TAN ACS *?TAN
INPUT ÷?TAN ERDPOKE UQDPOKE
RETURN  C$RETURN ñC-RETURN òC3
RETURN óCCTAN ·?TAN ACS SIN ?
TAN ??TAN ACS INT ?TAN *?TAN
ACS NOT ?TAN INPUT ÷?TAN TAN UY
DPOKE CHAR URNDDPOKE (MPIDPOKE U
ZDPOKE CHAR UINKEY$DPOKE (MCALL
DPOKE 5ERR MSGS DPOKE QñUPI
DPOKE ACS ?C$YCOPY MERR MSGS
DPOKE UPIDPOKE GOSUB ERR MSGS M
PIDPOKE UCALL DPOKE CHAR UPI
DPOKE ACS B(MERROR DPOKE UY
DPOKE MCHAR DPOKE UZDPOKE M
DPOKE CHAR UINKEY$DPOKE (CCHAR
VAL U DPOKE MPDPOKE WM DPOKE U
CHAR DPOKE MODPOKE LN ùPIUERROR
DPOKE ACS ?43UERR MSGS DPOKE
CHAR UCHAR DPOKE  MCHAR DPOKE U
CALL DPOKE CHAR UPIDPOKE (ACS B
CHAR UERROR DPOKE  MERROR DPOKE
/$UPIDPOKE ACS BCHAR UERROR
DPOKE  MERROR DPOKE AT (Q5M
DPOKE ACS :TAN UUDPOKE MODPOKE U
VDPOKE MPDPOKE LN ùPITAN UY
DPOKE CHAR URNDDPOKE (MPIDPOKE U
ZDPOKE CHAR UINKEY$DPOKE (MCALL
DPOKE 5DPOKE DPOKE QñACS ?C$Y
COPY MDPOKE DPOKE UCALL DPOKE
GOSUB ERR MSGS MCALL DPOKE UPI
DPOKE CHAR UCALL DPOKE ACS B(M
ERROR DPOKE UZDPOKE M DPOKE UY
DPOKE MCHAR DPOKE CHAR URND
DPOKE (C8CHAR VAL UCHAR DPOKE MO
DPOKE WMCHAR DPOKE U DPOKE MP
DPOKE LN ùPIUERROR DPOKE ACS ?43
UDPOKE DPOKE CHAR U DPOKE  M
DPOKE UPIDPOKE CHAR UCALL DPOKE
(ACS BCHAR UERROR DPOKE  MERROR
DPOKE /$UCALL DPOKE ACS BCHAR U
ERROR DPOKE  MERROR DPOKE AT (Q5
MDPOKE ACS :TAN 5MDPOKE ACS EXP
UUDPOKE MYDPOKE UWDPOKE MRND
DPOKE UVDPOKE MZDPOKE UXDPOKE M
INKEY$DPOKE UVDPOKE CHAR UX
DPOKE (GOSUB ERR MSGS
DEF PROC UUDPOKE CHAR UWDPOKE (K
òGOSUB ERR MSGS )S)UWDPOKE CHAR
UUDPOKE ( AND JCALL LN B
ERR MSGS ?JCALL UXDPOKE CHAR UV
DPOKE ( AND COPY PILN BERR MSGS
?COPY PIUVDPOKE CHAR UXDPOKE MZ
DPOKE ?MINKEY$DPOKE UUDPOKE
CHAR UWDPOKE MYDPOKE ?MRNDDPOKE
TAN CHR$ RNDRETURN RNDKú5TRACE
DPOKE )  READ ;CHR$ RND5¸DPOKE )
  READ RZGOSUB DELETE CHR$  5
TRACE DPOKE )  READ ;5¸DPOKE )  
READ RZGOSUB DELETE ZRETURN  C3
CHAR UTDPOKE 5  ?FAST SGN ;(
CLEAR ö÷ACS XACS WKòACS CLEAR (
PLOT ACS ?COS ?GOSUB ERR MSGS ?
TAN                         óöù£
(<-;0369CFILNQTWZINKEY$ERR MSGS
CHAR TRACE PROTECT AUTO DO EXIT
WHEN RESEQ CURSOR RESTORE
NOSTALGIC *HOME DPEEK POP
CLR STACK DUP END WHEN ??????
30841 ????
   0                            
 
   0                            
 
   0                            
 
   0                            
 
   0                            
 
   0                            
 
   0                            
 
   0                            
 
   0                            
 
   0                            
 
   0                            
 
   0                            
 
   0                            
 
   0                            
 
   0                            
 
   0                            
 
   0                            
 
   0                            
 
   0                            
 
   0                            
 
   0                            
 
   0                            
 
   0                            
 
30208  RAND USR 16569
   3 STOP
   4 SAVE "PIM"
   5 RUN