My attempt at building a Mandelbrot sets program for the ZX81 in Assembly.
PROG : 16509
D-FILE: 18082
VARS : 18875
E-LINE: 18876
STKBOT: 18881
STKEND: 18881
9999 means line number
PRINT means treat as KEYWORD P
1 REM /M**MBS MC***SLR/2022**
30208 LN
F?LN EúJ5 M.RND60RNDU.RNDE0RND:
?) RNDLN ?????YZ5 LN TO ?M2RND
63RNDU.RNDE0RND:Z) LN L?:?) ?
LN 7?M5RND66RNDY?5 SAVE M8RND69
RNDöRNDVAL õ:JLN APIU5RND?GOSUB
?6RNDU8RNDE9RNDLN ??PRINT U2RND?
LET GOSUB ?3RNDLN L?MERND6FRNDJ5
MBRND6CRNDAT :/VAL LN ??UBRND?
GOSUB ?CRNDY?5 ?LN 7?PRINT U2RND
?LET GOSUB ?3RNDLN L?MHRND6IRNDJ
5 MKRND6LRNDMNRND6ORNDö?VAL UK
RNDELRND?GOSUB ?LRNDLN L?PRINT
FAST UNRNDEORND?GOSUB ?ORNDLN L?
???LPRINT LET LN 7????UERNDEFRND
LN ??FAST PRINT UNRND?GOSUB ?O
RNDUKRNDELRNDLN L?:RND) LN L???
?UHRNDEIRNDLN ??MNRND6ORNDLET
LPRINT MKRND6LRND?GOSUB ?LRNDLN
L?PRINT FAST UNRNDEORND?GOSUB ?O
RNDLN L????LPRINT LET LN ??:
INKEY$) LN $?AT AND 1PIASN 1PI
YñM3PI/!õTAB ?INKEY$JM3PIAT VAL
õY/)?LN FPIAT VAL õY-±?LN FPIUB
RNDECRND:Z) LN ??MBRND6CRNDAT $
TAB ?INKEY$VAL U8RNDE9RND:Z)
LN 7?M8RND69RNDAT VAL õ:JLN 4PI
AT õTAB :INKEY$5;;LN ??U.RNDE0
RND:?) (LN ??M.RND60RND:?) ?LN $
? AND LEN RNDLN ???WRNDñJM3PI/õY
ñM3PI?ACS ?""CHR$ RNDLIST ?ACS ?
""CHR$ KLIST - ?ACS Z?Kò-ñ?ACS Z
?Kô?ACS INT ?STR$ E£RND7?RC÷)5 ;
X4UNPLOT ) ?;SGN U3PIBASN 9??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 ??Kò OR TAN INT COPY 6?
?LN ??E??F?P4PAUSE TAN E£RND7J:/
ö4?7(UNPLOT 7$4PLOT TAN ?NEW ?W
IF L??PRINT LN 7?AT INPUT COS
INPUT COS ?ACS SNEW ?LEN :(KòJ
TAN ?PLOT ?·TAN ?PZ""?NEW ?W?
PAUSE H??N""?STAN ?NEW ?4ó?FOR
TAN WIF ???NEW ?ASN ??WIF COS ??
DIF ;?LN ??C.SQR VAL LN <?ACS 4
GOSUB ?SGN ?SQR NEW ?RETURN W
ACS 1SQR 7TAN ?NEW ?RETURN ACS 0
ACS 1SQR G""8""WTAN PLOT ?5
TAN LN ??CNSQR VAL LN <?)?Y /?
GOSUB ?SGN ?SQR ?PKLCOS ?·PRINT
?XC>ACS 5ACS (GOSUB ?ABS R?ACS 5
ñ GOSUB ?¸·?LET ?3TAN ?GOSUB ?4
óNEW TAN ñ KCHR$ INPUT ?J+?3=
??/ASN DACS ñ*)COS KöGOSUB ?ACS
ùINKEY$FOR R3RETURN >**?TAN ?P4
IF LCRUN W·4NEXT ?N?4òSCOS FTAN
ñ RACS ,ACS .ACS /ACS ;X4PRINT
TAN ??INPUT ?????INPUT ?????
NEW C?NEW ?C?WIF )??NEW ??COS W
IF COS ??NEW ?±CHR$ ZKòJTAN
RETURN ?S÷?PLOT ?5 TAN CNEW ?C
PRINT ??FAST STR$ LN B?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 8??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?Kó
ùEXP D?SúACS .?SQR ùSQR 0""=
TAN =ACS .?SQR ùSQR 0TAN ?FOR YZ
5 ?D·?*??NEW ?ASN ??WIF ³??NEW
?4ôX??TAN WIF ??ACS T?NEW ?LEN Z
)KòJTAN RETURN ?S÷?PLOT ?5 TAN
R: GOSUB ?K£XCOS ;DACS )£GOSUB ?
Kñ$VAL PRINT LN T?SGN AT ºPAUSE
O?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 ??JTAN ?NCOS ?FOR TAN ?P?
""?NEW ?C9WIF L??TAN
2 RAND USR VAL "16514"