ZX81 Listing for cgfxdd.p


ZX81 program listing for **CHUNKYGFX**SLR/2022*

**CHUNKYGFX**SLR/2022* (cgfxdd.p)

My attempt at a chunky graphics routine for the ZX81 that allows three colors: white, gray and black. This program demonstrates its use.


SYSTEM VARIABLES

PROG  : 16509
D-FILE: 17338
VARS  : 18131
E-LINE: 18132
STKBOT: 18137
STKEND: 18137


LEGEND

9999 means line number
PRINT means treat as KEYWORD P


PROGRAM LISTING

   1 REM /**CHUNKYGFX**SLR/2022*
30413 LN EúYñM?INKEY$ññ LN ?
INKEY$ñJ3LN ?INKEY$ñ*?Y$LN ATN
PIYòM?INKEY$ññ3LN ?INKEY$ñJ LN ?
INKEY$ñ*?YõLN ATN PIñ* )*3LN
CLEAR INKEY$ñó?)F?LN CLEAR
INKEY$YòM?INKEY$ñ*?LN ?INKEY$U?
INKEY$WRETURN ó4ñJM?INKEY$ñ*ó)*.
GOSUB CALL ASN PIGOSUB DO SIN PI
öôVAL GOSUB UNDRAW ASN PIGOSUB
OFFSIN PILN CLEAR INKEY$AóUACS
PI´CHAR UASN PI´DEF PROC GOSUB
CALL ASN PIACLEAR UCOS PI´WHILE
USIN PI´READ GOSUB DO SIN PIAT (
SGN öôVAL GOSUB UNDRAW ASN PI
GOSUB OFFSIN PILN CLEAR INKEY$
UACS PI´CHAR UASN PIACLEAR ´
DEF PROC GOSUB CALL ASN PIUCOS
PI´WHILE USIN PIAó´READ GOSUB
DO SIN PIAT (INT 5;ùLN .CALL ?
LIST RND VAL LN ?""CHR$ 4LIST ?
ACS ?""CHR$ KLIST RND7?ACS JRC
÷)5 ;X4UNPLOT - WHEN ;úYCóF(IF U
?INKEY$WHILE ??ABS YINKEY$4²?
LEN INKEY$4ACS 6ACS 6²?A ñSGN
INKEY$ù³COPY ú!ºCOPY ó¹ RLIST
GOSUB ERR MSGS TAN RASN FOR
INKEY$PAUSE GOSUB INKEY$JXTAN J
TAN JWTAN              5PAUSE
INKEY$?7?5POKE INKEY$?7?UNEXT
INKEY$CHAR UPRINT INKEY$(MLIST
INKEY$UPAUSE INKEY$CHAR UPOKE
INKEY$(MLET INKEY$ULIST INKEY$
LN LPRINT INKEY$MPLOT INKEY$U
LET INKEY$LN LPRINT INKEY$MRUN
INKEY$ULIST INKEY$LN LPRINT
INKEY$MRAND INKEY$JMSAVE INKEY$U
LIST INKEY$LN >=INKEY$MIF INKEY$
CHAR ULET INKEY$LN >=INKEY$MCLS
INKEY$SS3JMRAND INKEY$ULET
INKEY$LN LPRINT INKEY$MSAVE
INKEY$ULET INKEY$LN >=INKEY$MIF
INKEY$ULIST INKEY$LN >=INKEY$M
CLS INKEY$UIF INKEY$ACS ZM
UNPLOT INKEY$UIF INKEY$CHAR VAL
GOSUB UNDRAW PAUSE INKEY$LN ?
INKEY$5UNPLOT INKEY$UCLS INKEY$
?UIF INKEY$CHAR INKEY$UIF INKEY$
CHAR UPLOT INKEY$¶?5PAUSE INKEY$
URUN INKEY$¶?/(5NEXT INKEY$U
RAND INKEY$¶?5PAUSE INKEY$USAVE
INKEY$¶?AT (TTAN      5SIN PI?7?
MACS PIJMTAN PIMASN PIEASN PIU
SIN PI´CHAR UCOS PIµDEF PROC LN
?INKEY$EASN PIUSIN PI=CHAR UCOS
PIµDEF PROC LN ?INKEY$EASN PIU
SIN PI´CHAR UCOS PI+DEF PROC LN
?INKEY$EASN PIUSIN PI=CHAR UCOS
PI+DEF PROC LN ?INKEY$EASN PIU
SIN PIµCHAR UCOS PI´DEF PROC LN
?INKEY$EASN PIUSIN PI+CHAR UCOS
PI´DEF PROC LN ?INKEY$EASN PIU
SIN PIµCHAR UCOS PI=DEF PROC LN
?INKEY$EASN PIUSIN PI+CHAR UCOS
PI=DEF PROC LN ?INKEY$EASN PIU
TAN PIWµµCHAR MTAN PIW==
DEF PROC 5ASN PIO?LN >=INKEY$
CHAR ?LN >=INKEY$SABS ¶CALL ?M
TAN PI5ACS PIPEASN PI?X**?>=PI
OR LN ERROR ?Kò OR TAN INT
COPY   6;CALL LN ?CALL E;CALL F?
P4PAUSE TAN
   2 RAND USR VAL "16514"