ZX81 Listing for mbscgfx.p


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

**MBS CGFX*SLR/2022** (mbscgfx.p)

A modified version of my Mandelbrot Set programming using the three color (white/gray/black) chunky gfx mode.


SYSTEM VARIABLES

PROG  : 16509
D-FILE: 18020
VARS  : 18813
E-LINE: 18814
STKBOT: 18819
STKEND: 18819


LEGEND

9999 means line number
PRINT means treat as KEYWORD P


PROGRAM LISTING

   1 REM /M**MBS CGFX*SLR/2022**
30208                         LN
F?LN J5  M.RND60RNDU.RNDE0RND:
CALL ) RNDLN µCALL DEF PROC
LOOP DATA YZ5  LN 5DPOKE M2RND63
RNDU.RNDE0RND:Z LN ?ERR MSGS :
ERR MSGS ) ?LN BREAK ERR MSGS M5
RND66RNDYERR MSGS 5 SAVE M8RND69
RNDöRNDVAL ACS Cõ:JYòMXPILN YPIU
5RNDDEF PROC GOSUB OFF6RNDU8RNDE
9RNDLN µCALL PRINT U2RND
DEF PROC LET GOSUB OFF3RNDLN ?
ERR MSGS MERND6FRNDJ5  MBRND6C
RNDAT :/VAL LN 6CALL UBRND
DEF PROC GOSUB OFFCRNDYCALL 5 ?
LN BREAK ERR MSGS PRINT U2RND
DEF PROC LET GOSUB OFF3RNDLN ?
ERR MSGS MHRND6IRNDJ5  MKRND6L
RNDMNRND6ORNDö?VAL UKRNDELRND
DEF PROC GOSUB OFFLRNDLN ?
ERR MSGS PRINT FAST UNRNDEORND
DEF PROC GOSUB OFFORNDLN ?
ERR MSGS DEF PROC LOOP DATA
LPRINT LET LN BREAK ERR MSGS
DEF PROC LOOP DATA UERNDEFRNDLN
µCALL FAST PRINT UNRNDDEF PROC
GOSUB OFFORNDUKRNDELRNDLN ?
ERR MSGS :RND)  LN ?ERR MSGS
DEF PROC LOOP DATA UHRNDEIRNDLN
µCALL MNRND6ORNDLET LPRINT MKRND
6LRNDDEF PROC GOSUB OFFLRNDLN ?
ERR MSGS PRINT FAST UNRNDEORND
DEF PROC GOSUB OFFORNDLN ?
ERR MSGS DEF PROC LOOP DATA
LPRINT LET LN µCALL :INKEY$)  
LN DEF PROC CALL AT AND JPIASN
JPIY?ACS JSSôYñ/òYòMXPI/!õTAB
INKEY$JMXPIAT VAL ACS CõY/)
DEF PROC LN YPIAT VAL ACS CõY-±
DEF PROC LN YPIUBRNDECRND:Z)  
LN µCALL MBRND6CRNDAT $TAB EDIT
INKEY$VAL U8RNDE9RND:RND)  LN
BREAK ERR MSGS M8RND69RNDAT VAL
ACS Cõ:JY MXPILN YPIAT õõTAB :
INKEY$5;;LN ICALL U.RNDE0RND:
CALL ) (LN µCALL M.RND60RND: ) ?
LN DEF PROC CALL AND LEN RNDLN
XCALL ?WRND VAL LN CODE PIAT
TAN ?ACS ?""CHR$ 4LIST ?ACS ?""
CHR$ KLIST RND7?ACS JRC÷)5 ;X4
UNPLOT - WHEN ;úYCóF(IF UXPI
WHILE ??ABS ôCALL Y£4²?£CALL Yó4
ACS 6ACS 6²?A ñ*CALL ù³COPY ú!º
COPY ó¹  OR LN ERROR ?Kò OR TAN
INT COPY   6GCALL LN 6CALL EG
CALL F?P4PAUSE TAN RND7J:/ö4?7
(UNPLOT 7$4PLOT TAN CHAR NEW ?W
IF ?CALL ?PRINT LN BREAK
ERR MSGS AT INPUT  COS INPUT  
COS DEF PROC ACS SNEW ?LEN :(J
TAN ?PLOT TAN ?PZ""?NEW ?W?
PAUSE ?CALL ?N""?STAN CHAR NEW ?
4ó?FOR TAN WIF INKEY$ERR MSGS ?
NEW ?ASN ZERR MSGS WIF ºCALL ?D
IF <=CALL LN GERR MSGS C.SQR
VAL LN EXIT ERR MSGS ACS 4GOSUB
RESEQ SGN ?SQR NEW ?RETURN WACS
1SQR 7TAN ?NEW ?RETURN ACS 0ACS
1SQR G""8""WTAN PLOT ?5  TAN LN
GERR MSGS CNSQR VAL LN EXIT
ERR MSGS )DEF PROC Y /CHAR
GOSUB DELETE SGN ?SQR ?PKLCOS
PRINT ?XC>ACS 5ACS (GOSUB
CLR STACK ABS RAND CALL ACS 5ñ  
GOSUB DRAW ¸·WHILE LET ?3TAN ?
GOSUB DELETE 4óNEW  TAN ñ  K
CHR$ 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 ??µCALL INPUT  
?µCALL CHAR ?NEW  CCHAR NEW ?C
PROTECT WIF PEEK ERR MSGS ?NEW ?
DEF PROC COS WIF ºCALL ?NEW
CHR$ ZKòJTAN RETURN ?S÷?PLOT ?5 
 TAN CNEW ?CPRINT ERR MSGS EDIT
FAST STR$ LN DIM ERR MSGS JACS 8
FOR AT GOSUB DRAW EXP  AT ùEXP  
3AT ?COS ZACS 0ACS 1WW·CABS 3X
TAN ?NEW ?COS WIF >=ERR MSGS J
TAN ?P?""?NEW ?4ôXLINE ?TAN WIF
NEW ERR MSGS ?TAN ?FOR TAN ?- 
NOSTALGIC PUSH ·SN·SQ·ST·SW·SZ·S
PI·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?
ùºWHILE ?NEW RETURN D?KóùEXP  D?
KóùEXP  D?KóùEXP  D?KóùEXP  D?
ù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 OERROR WIF DPOKE ERROR ?NEW
?4ôXLINE ?TAN WIF ZERROR ACS T?
NEW ?LEN Z)JTAN RETURN ?S÷?
PLOT ?5  TAN RGOSUB DELETE K£X
COS ;DACS GOSUB DELETE Kñ$VAL
PRINT LN CLS DPOKE SGN AT º
PAUSE PLOT DPOKE XLINE ?CNEW ?C
TAN J<READ Y ,WHILE 3XCHAR ?LN 3
ERROR ACS )VAL LN 3ERROR ACS )D?
LPRINT BREAK PUSH ñ  ?GOSUB
DRAW TAN LN 6ERROR LN 9ERROR LN
CERROR ACS )D?COS **GOSUB
DELETE /TAN ?NEW ?CUWIF ZERROR J
TAN ?NCOS ?FOR TAN ?P?""?NEW ?C9
WIF NEXT DPOKE ?TAN
   2 RAND USR VAL "16514"