ZX81 Listing for mbssplit.p


ZX81 program listing for *MBS SPLIT**SLR/2022*

*MBS SPLIT**SLR/2022* (mbssplit.p)

A modified version of my Mandelbrot Set that includes a Chunky graphics on top, and the normal graphics on the bottom.


SYSTEM VARIABLES

PROG  : 16509
D-FILE: 18202
VARS  : 18995
E-LINE: 18996
STKBOT: 19001
STKEND: 19001


LEGEND

9999 means line number
PRINT means treat as KEYWORD P


PROGRAM LISTING

   1 REM /M*MBS SPLIT**SLR/2022*
30208                         LN
F?LN J5  M.RND60RNDU.RNDE0RND:
CALL ) RNDLN VERR MSGS DEF PROC
LOOP DATA YZ5  LN WHILE ERROR M2
RND63RNDU.RNDE0RND:Z LN D
DPOKE :ERR MSGS ) ?LN .DPOKE M5
RND66RNDYERR MSGS 5 SAVE M8RND69
RNDöRNDVAL õ:JLN 2CALL U5RND
DEF PROC GOSUB OFF6RNDU8RNDE9RND
LN VERR MSGS PRINT U2RND
DEF PROC LET GOSUB OFF3RNDLN D
DPOKE MERND6FRNDJ5  MBRND6CRND
AT :/VAL LN **CALL UBRND
DEF PROC GOSUB OFFCRNDYCALL 5 ?
LN .DPOKE PRINT U2RNDDEF PROC
LET GOSUB OFF3RNDLN DDPOKE MHRND
6IRNDJ5  MKRND6LRNDMNRND6ORNDö?
VAL UKRNDELRNDDEF PROC GOSUB OFF
LRNDLN DDPOKE PRINT FAST UNRNDEO
RNDDEF PROC GOSUB OFFORNDLN D
DPOKE DEF PROC LOOP DATA LPRINT
LET LN .DPOKE DEF PROC LOOP
DATA UERNDEFRNDLN VERR MSGS
FAST PRINT UNRNDDEF PROC GOSUB
OFFORNDUKRNDELRNDLN DDPOKE :RND)
  LN DDPOKE DEF PROC LOOP DATA U
HRNDEIRNDLN VERR MSGS MNRND6ORND
LET LPRINT MKRND6LRNDDEF PROC
GOSUB OFFLRNDLN DDPOKE PRINT
FAST UNRNDEORNDDEF PROC GOSUB
OFFORNDLN DDPOKE DEF PROC LOOP
DATA LPRINT LET LN VERR MSGS :
INKEY$)  LN õERR MSGS AT AND C
PIASN CPIY?ACS JSSôYñ/òYòMNPI/!õ
TAB ?INKEY$JMNPIAT VAL ??SúACS C
õY/)DEF PROC LN OPIAT VAL $C!õY*
±DEF PROC LN 7CALL UBRNDECRND:Z)
  LN VERR MSGS MBRND6CRNDAT $
TAB ERROR INKEY$VAL U8RNDE9RND:Z
)  LN .DPOKE M8RND69RNDAT VAL õ:
JLN /CALL AT õTAB :INKEY$5;;LN
SLOW CALL U.RNDE0RND:CALL ) (LN
VERR MSGS M.RND60RND: ) ?LN õ
ERR MSGS AND LEN RNDLN NEXT
CALL ?WRND VAL LN UPIAT TAN ?
ACS ?""CHR$ 4LIST ?ACS ?""CHR$ K
LIST RND7?ACS JRC÷)5 ;X4
UNPLOT - WHEN ;úYCóF(IF UNPI
WHILE ??ABS IF PI4²?òCALL Yó4
ACS 6ACS 6²?A ñ$CALL ù³COPY ú!º
COPY ó¹ JMNPI/õYñMNPI?ACS ?""
CHR$ RNDLIST ?ACS ?""CHR$ KLIST
- ?ACS ZCHAR Kò-ñ?ACS ZDEF PROC
Kô?ACS INT WHILE STR$ RND7?R
)5 ;X4UNPLOT )  WHEN ;SGN UNPIB
ASN 1CALL ?RC(XC,XC8INPUT ÷?TAN
SIN ?TAN ACS ·?TAN INT ?TAN ACS
??TAN NOT ?TAN ACS *?TAN ?RC(XC,
XC8INPUT ÷?TAN ·?TAN ACS SIN ?
TAN ??TAN ACS INT ?TAN *?TAN
ACS NOT ?TAN OR LN ERROR ?Kò
OR TAN INT COPY   6LLIST CALL
LN **CALL ELLIST CALL F?P4PAUSE
TAN RND7J:/ö4?7(UNPLOT 7$4
PLOT TAN CHAR NEW ?WIF D
ERR MSGS ?PRINT LN .DPOKE AT
INPUT  COS INPUT  COS DEF PROC
ACS SNEW ?LEN :(JTAN ?PLOT
TAN ?PZ""?NEW ?W?PAUSE 9
ERR MSGS ?N""?STAN CHAR NEW ?4ó?
FOR TAN WIF RUN ERR MSGS ?NEW ?
ASN PRINT ERR MSGS WIF RND
ERR MSGS ?DIF )ERR MSGS LN
LLIST ERR MSGS C.SQR VAL LN "
DPOKE ACS 4GOSUB RESEQ SGN ?SQR
NEW ?RETURN WACS 1SQR 7TAN ?NEW
?RETURN ACS 0ACS 1SQR G""8""W
TAN PLOT ?5  TAN LN LLIST
ERR MSGS CNSQR VAL LN "DPOKE )
DEF PROC Y /CHAR GOSUB DELETE
SGN ?SQR ?PKLCOS PRINT ?XC>
ACS 5ACS (GOSUB CLR STACK ABS J
ERR MSGS ACS 5ñ  GOSUB DRAW ¸·
WHILE LET ?3TAN ?GOSUB DELETE 4ó
NEW  TAN ñ  KCHR$ INPUT  WHILE J
+?3=LINE ?/ASN DACS ñ*)COS
GOSUB ERR MSGS ACS ùINKEY$FOR R3
RETURN >**?TAN ?P4IF LCRUN W·4
NEXT ?N?4òSCOS FTAN ñ  RACS ,
ACS .ACS /ACS ;X4PRINT TAN CHAR
?INPUT  DEF PROC ??VERR MSGS
INPUT  ?VERR MSGS CHAR ?NEW  C
CHAR NEW ?CPROTECT WIF ¹DPOKE ?
NEW ?DEF PROC COS WIF RND
ERR MSGS ?NEW CHR$ ZKòJTAN
RETURN ?S÷?PLOT ?5  TAN CNEW ?C
PRINT ERR MSGS EDIT FAST STR$
LN 3DPOKE JACS 8FOR AT GOSUB
DRAW EXP  AT ùEXP  3AT ?COS Z
ACS 0ACS 1WW·CABS 3XTAN ?NEW ?
COS WIF >DPOKE JTAN ?P?""?NEW ?4
ôXLINE ?TAN WIF 0DPOKE ?TAN ?
FOR TAN ?- NOSTALGIC PUSH ·SN·SQ
·ST·SW·SZ·SPI·SDPOKE ·S ?NEW
RETURN ·SEDIT ·S·SEXIT ·SINDENT
·SDATA ·SUSER ·SBREAK ACS .***
DUP TAN D?KòùºD?KòùºD?KòùºD?Kòùº
D?KòùºD?KòùºD?KòùºWHILE ?NEW
RETURN D?KóùEXP  D?KóùEXP  D?Kóù
EXP  D?KóùEXP  D?KóùEXP  D?Kóù
EXP  D?KóùEXP  D?ACS .READ
SQR ùSQR 0""=TAN =ACS .READ SQR
ùSQR 0TAN DEF PROC FOR YZ5  
CHAR D·?*?CHAR NEW ?ASN REM
ERROR WIF CLS ERROR ?NEW ?4ôX
LINE ?TAN WIF PRINT ERROR ACS T?
NEW ?LEN Z)JTAN RETURN ?S÷?
PLOT ?5  TAN RGOSUB DELETE K£X
COS ;DACS GOSUB DELETE Kñ$VAL
PRINT LN LERROR SGN AT ºPAUSE G
ERROR XLINE ?CNEW ?CTAN J<READ Y
 ,WHILE 3XCHAR ?LN STR$ ERROR
ACS )VAL LN STR$ ERROR ACS )D?
LPRINT BREAK PUSH ñ  ?GOSUB
DRAW TAN LN **ERROR LN <=ERROR
LN THEN ERROR ACS )D?COS **
GOSUB DELETE /TAN ?NEW ?CUWIF
PRINT ERROR JTAN ?NCOS ?FOR TAN
?P?""?NEW ?C9WIF DERROR ?TAN
   2 RAND USR VAL "16514"