ZX81 Listing for mbsarx.p


ZX81 program listing for **MBSARX***SLR/2024**

**MBSARX***SLR/2024** (mbsarx.p)

Converting my Mandelbrot set program to high resolution graphics using Paul Farrow’s ARX display driver.


SYSTEM VARIABLES

PROG  : 16509
D-FILE: 18134
VARS  : 18927
E-LINE: 18928
STKBOT: 18933
STKEND: 18933


LEGEND

9999 means line number
PRINT means treat as KEYWORD P


PROGRAM LISTING

   1 REM /L**MBSARX***SLR/2024**
   0                        LN
REM PIJ5  M,RND6.RND5 4?)ñ4ñ
COPY *GOSUB KU,RNDE.RND:?) RND
LN RUN ????YZ5  LN <?M1RND62RNDU
,RNDE.RND:Z LN FAST ?:?) ?LN
NOT ?M4RND65RNDY?5  STEP M7RND68
RNDöCOPY VAL õ:ZYñMIPILN JPIU4
RND?GOSUB ?5RNDU7RNDE8RNDLN RUN
?PRINT U1RND?LET GOSUB ?2RNDLN
FAST ?MDRND6ERNDJ5  MARND6BRND
AT :?VAL LN 7?UARND?GOSUB ?BRNDY
?5  LN NOT ?PRINT U1RND?LET
GOSUB ?2RNDLN FAST ?MGRND6HRNDJ5
  MJRND6KRNDMMRND6NRNDö?VAL UJ
RNDEKRND?GOSUB ?KRNDLN FAST ?
PRINT FAST UMRNDENRND?GOSUB ?N
RNDLN FAST ????LPRINT LET LN
NOT ????UDRNDEERNDLN RUN ?FAST
PRINT UMRND?GOSUB ?NRNDUJRNDEK
RNDLN FAST ?:RND)  LN FAST ????U
GRNDEHRNDLN RUN ?MMRND6NRNDLET
LPRINT MJRND6KRND?GOSUB ?KRNDLN
FAST ?PRINT FAST UMRNDENRND?
GOSUB ?NRNDLN FAST ????LPRINT
LET LN RUN ?:INKEY$)  LN AT ?AT
AND EPIASN EPIYñMIPI/!õTAB £
INKEY$JMIPIAT VAL õY?)?LN JPIAT
VAL õY?±?LN JPIUARNDEBRND:Z)  
LN RUN ?MARND6BRNDAT $TAB ?
INKEY$VAL U7RNDE8RND:Z)  LN NOT
?M7RND68RNDAT VAL õ:ZY MIPILN J
PIAT õTAB -INKEY$(LN M?U,RNDE.
RND:?) (LN RUN ?M,RND6.RND:?) ?
LN AT ? AND TAB RND?SRNDñ??LN P
PITAN Añ?DDDDD????NEW 3P??NEW ÷?
ôYñ?(CLEAR LN STOP PI?UIPIB?CóQ?
TAN öCOPY CA?TAN ACS õACS õACS õ
TAN LN RETURN PI<>5ö?TAN LN
RETURN PIY2GOSUB ?<>5±òTAN 5ORND
ó(RETURN GOSUB ??UCRNDX?<>5??Y4
GOSUB ?ñ!£<=RETURN PEEK COPY A ?
GOSUB ?LN ??$Có?3?:!DDYLN ²?$Cò/
PRINT LEN òGOSUB ?:!(LLIST ?
GOSUB ???2òöù(RETURN CLEAR FAST
CLEAR RNDLN CLEAR LPRINT <>5
ö??6ò ñòóôõö÷!ùú"£$:?()><=+-*/;,
.0123TAN 456789ABCDEFGHIJKLMNOPQ
RSTUVWXYZTAN OR LN ??Kò OR TAN
LN PAUSE PIINT COPY   6K?LN 7?EK
?F?P4PAUSE TAN ?NEW ?WIF FAST ??
PRINT LN NOT ?AT INPUT  COS
INPUT  COS ?ACS SNEW ?LEN :(J
TAN ?PLOT TAN ?PZ""?NEW ?W?
PAUSE LPRINT ??N""?STAN ?NEW ?4ó
?FOR TAN WIF N??NEW ?ASN L?WIF
UNPLOT ??DIF ??LN 2?C.SQR VAL
LN SIN ?ACS 4GOSUB ?SGN ?SQR
NEW ?RETURN WACS 1SQR 7TAN ?NEW
?RETURN ACS 0ACS 1SQR G""8""W
TAN PLOT ?5  TAN LN 2?CNSQR VAL
LN SIN ?)?Y /?GOSUB ?SGN ?SQR ?P
KLCOS PRINT ?XC>ACS 5ACS (
GOSUB ?ABS ??ACS 5ñ  GOSUB ?¸·?
LET ?3TAN ?GOSUB ?4óNEW  TAN ñ  
KCHR$ INPUT  ?J+?3=??/ASN DACS ñ
*)COS GOSUB ?ACS ùINKEY$FOR R3
RETURN >**?TAN ?P4IF LCRUN W·4
NEXT ?N?4òSCOS FTAN ñ  RACS ,
ACS .ACS /ACS ;X4PRINT TAN ??
INPUT  ???RUN ?INPUT  ?RUN ???
NEW  C?NEW ?C?WIF ???NEW ??COS W
IF UNPLOT ??NEW CHR$ ZKòJTAN
RETURN ?S÷?PLOT ?5  TAN CNEW ?C
PRINT ??FAST STR$ LN ??JACS 8
FOR AT GOSUB ?EXP  AT ùEXP  3AT
?COS ZACS 0ACS 1WW·CABS 3XTAN ?
NEW ?COS WIF ??JTAN ?P?""?NEW ?4
ôX??TAN WIF ???TAN ?FOR TAN ?- ?
?·SN·SQ·ST·SW·SZ·SPI·S?·S??NEW
RETURN ·S?·S?·S?·S?·S?·S?·S?ACS
.**??TAN D?KòùºD?KòùºD?KòùºD?Kòù
ºD?KòùºD?KòùºD?Kòùº??NEW RETURN
D?KóùEXP  D?KóùEXP  D?KóùEXP  D?
KóùEXP  D?KóùEXP  D?KóùEXP  D?
ùEXP  D?ACS .?SQR ùSQR 0""=
TAN =ACS .?SQR ùSQR 0TAN ?FOR YZ
5  ?D·?*??NEW ?ASN A?WIF R??NEW
?4ôX??TAN WIF L?ACS T?NEW ?LEN Z
)JTAN RETURN ?S÷?PLOT ?5  TAN
RGOSUB ?K£XCOS ;DACS GOSUB ?
Kñ$VAL PRINT LN ??SGN AT ºPAUSE
??X??CNEW ?CTAN J<?Y ,?3X??LN )?
ACS )VAL LN )?ACS )D?LPRINT ??
ñ  ?GOSUB ?TAN LN =?LN *?LN ,?
ACS )D?COS **GOSUB ?/TAN ?NEW
?CUWIF L?JTAN ?NCOS ?FOR TAN ?P?
""?NEW ?C9WIF ???TAN
   2 RAND USR VAL "16514"