ZX81 Listing for ballmc.p


ZX81 program listing for **THE BALL**SLR/1983/2012/2014**

**THE BALL**SLR/1983/2012/2014** (ballmc.p)

A bouncing ball animation. Use Q to quit between BASIC and Machine Code version. In MC version, use 6 and 7 to speed up or slow down the animation.


SYSTEM VARIABLES

PROG  : 16509
D-FILE: 29094
VARS  : 29887
E-LINE: 29888
STKBOT: 29888
STKEND: 29888


LEGEND

9999 means line number
PRINT means treat as KEYWORD P


PROGRAM LISTING

   0 REM MCII
30403 ?/INKEY$?INKEY$?CALL INKEY$
??INKEY$?  ??INKEY$PI?8PI?
INPUT PI?ERR MSGS CALL LN Vò84
IF INT £FAST STR$ ACS ?C!Y-LN õ
PILN (INKEY$)(BLN UNPLOT RNDK;)
CONT óLN UNPLOT RNDK=)HOME  LN
UNPLOT RNDK>2úLN UNPLOT RNDK)/=
LN òINKEY$)CONT óLN òINKEY$)
HOME  LN òINKEY$LN òINKEY$
LN òINKEY$SGN LPRINT TAN FAST B
GOSUB DELETE LPRINT TAN Y0B
GOSUB DELETE SóW/RAND ;?õPI?J
LINE ?J?7TAN RND)5 FAST GOSUB
UNDRAW /RNDù7FAST ;FOR 5CHR$ ò
GOSUB PISTOP AT FOR GOSUB K
LPRINT ñQòù6:RNDCLEAR QT5CLEAR Q
TAN LN VòñCOPY RETURN JFAST
GOSUB PILPRINT COS //LN VòG4IF
LN Vò?RETURN COPY CSAVE ñCOPY
RETURN JFAST GOSUB PILPRINT C
INPUT JERR MSGS 8COS 9EDIT LN X÷
ASN DRNDTAN ACS UNPLOT 6ORNDEO
RND?NEW ?PCOS LN CALL INKEY$C
NEXT TAN YF( AND GOTO PICHAR Yñ
ACS CKòYôACS DKòACS ÷PRINT LN
INT INKEY$÷ACS ?KòINPUT ?CHAR )2
£UKRND<IF VAL INKEY$LET J4LET
KRETURN !SòINPUT ?/QY*( AND
GOTO PI?NEW 3DEF PROC VAL VAL
VAL JACS (ACS (ACS (POP LINE DD
AT CHAR ùAT CHAR ùGOSUB UNDRAW
£RNDù76:RNDAT Y/(MURNDY5)MTRND
TAN STR$ FAST VAL RETURN
8218 RNDACS AUTO CõLN ( /QE:RND
LN DO PI/CRETURN RNDABS JPIRND
ACS AUTO CõLN ( /*E:RNDPRINT
LET E:RND?76:RND5TRNDPAT LPRINT
SGN TAN 7PRINT 6:RNDCLEAR QT5UU
RNDXMURNDRETURN òATN PUSH PILET
TAN U5RNDRETURN  CöXM5RND/AE£RND
ñSAVE òùQ?FAST LN CALL INKEY$C
CLS LPRINT RETURN CASN
RETURN ZC:RETURN D4÷ACS 0F?O4
CLS ?/INKEY$LN PUSH !/ABS ?LCOS
,LN õPI<"/PRINT RETURN CALL Sù
RETURN ""ACS R AND FPINEW Z5)ñ
CHAR ôRETURN 5K£RETURN ñCô
RETURN *SôJLN õPIACS õPI7/PRINT
NEW ZLN õPIJ?!PIINT º?MCIF LN O
CALL VAL UNDRAW PI)  STR$ FOR 7D
FOR D?+?0FOR KPLOT FOR FOR J?3
LINE ?3?OC/FOR JACS 0ACS 1?+?0
IF ùCALL ?+DEF PROC ?0CHAR STOP
;STOP /<>LPRINT AT ACS ?TAB (
INKEY$TAN ERR MSGS ?*>=(INKEY$
FOR ?CCHAR ACS ?TAB (INKEY$TAN
GOSUB OFFMRNDONICLEAR ?Rö GOSUB
DELETE /GOSUB DELETE /READ
END PROC GOSUB DELETE Kñ76MRND
ACS WERR MSGS EDIT TAN LN   E-
RND7PRINT LN -DPOKE LN -DPOKE
LN SCHAR LN INPUT DEF PROC INT ?
LN RAUTO LN <>AUTO TAN LN LEN
AUTO YCODE LN RUN DEF PROC LN *
EDIT /$LN RAUTO 5  LN >ERR MSGS
óLN NEXT AUTO FAST LN LEN AUTO
LPRINT LN >ERR MSGS LN A
ERR MSGS LN LLIST !)CLEAR CALL ñ
LN IF DEF PROC E?RNDLN INPUT
DEF PROC )RUN CALL ñô LN IF
DEF PROC E?RNDLN INPUT DEF PROC
LN .CHAR LN .CHAR YRUN LN RUN
DEF PROC Y?LN RUN DEF PROC LN
LET DEF PROC RETURN YTAB DRND5
LIST CALL FAST LN EúE?RNDDIM LN
POKE DEF PROC 4CLS INT ?
30455  
30386 DER II ENDAT YTAN ?BDPOKE 6
?RNDGOSUB OFF0RND<5?RNDLN OFF
DPOKE 5  6?RNDE?RND6?RNDLN A
DEF PROC WMõEND PROC 5?RNDFAST
LN 7DPOKE LPRINT FAST 7776-RNDU*
RNDM5RNDLN -DPOKE RETURN PAUSE
ATN NEXT ERR MSGS RETURN RAND
ATN CHR$ UNDRAW RETURN IF ATN ,
EDIT RETURN THEN CREM RETURN
DIM ATN JDEF PROC RETURN GOTO
ATN ?DPOKE RETURN GOSUB ATN >
DPOKE RETURN FOR ATN PAUSE
UNDRAW RETURN NEXT ATN 2PROTECT
RETURN SLOW ATN ""AUTO RETURN
POKE ATN VAL UNDRAW RETURN FAST
ATN LAUTO RETURN INPUT ATN ¶
PROTECT RETURN PLOT ATN DATA
EDIT RETURN UNPLOT ATN ³EDIT
RETURN LET ATN 2 RETURN CLS ATN
KUNDRAW RETURN STOP ASN £UNDRAW
RETURN PRINT ATN LET DPOKE
RETURN LPRINT ATN CHR$ DPOKE
RETURN NEW ATN òDPOKE RETURN
COPY ATN UNPLOT ERR MSGS RETURN
REM CPROTECT RETURN SCROLL ATN P
UNDRAW RETURN RETURN ATN $
ERR MSGS RETURN CLEAR ATN A
DEF PROC RETURN  4;E-RND-DPOKE
RETURN
8202 2DEF PROC TAB QERR MSGS LN
£UNDRAW LN LEN AUTO YSLN RUN
DEF PROC ?DRNDLN HTRACE 5=RND?S
UNDRAW 5PUSH !?SUNDRAW 5?ó?S
UNDRAW SCROLL RETURN ?4SGN LN
RUN DEF PROC 5/DPOKE LN SUNDRAW
/LEN ñRETURN RETURN GOSUB POP
ACS 1**?POKE DEF PROC UNTIL 7
RESTORE STR$ FOR FAST 67RNDRND
LN .CHAR LN INPUT DEF PROC JLN
RUN DEF PROC LPRINT LN BREAK
DPOKE ..FOR SGN LN OFFDPOKE
GOSUB OFF?RNDLN OFFDPOKE FAST
GOSUB OFF?RNDBGOSUB DELETE
LPRINT **6?RND?SCROLL CHAR ?7?7
TAN RESTORE 7UNTIL 7TAN FAST AT
E0RND7LN NOSTALGIC DPOKE FOR B
GOSUB PISQR E?RNDGOSUB DELETE **
FOR 7/GOSUB Y?PRINT LN -DPOKE
LN DO PROTECT LN BREAK DPOKE
FOR LN NOSTALGIC DPOKE FOR LET ?
UUNDRAW YLN /DIM FAST SCROLL
RETURN
10249 PRINT LN RUN DEF PROC
LET LPRINT TAN VAL FAST E?RND
PRINT ?FAST 76?RNDLN POKE
DEF PROC RETURN D4-Y
52727 LN INPUT DEF PROC JLN RUN
DEF PROC LET A ?LN INPUT
DEF PROC /òLPRINT LET LPRINT AT
JTAN 5CLEAR ACS LN XUNDRAW 5ñ
EXP LN XUNDRAW LN LET DPOKE 5
CLEAR ACS LN XUNDRAW 5ñ:?X
UNDRAW LN -DPOKE RETURN
8198 ERROR LN -DPOKE RETURN
INKEY$CZRETURN
51890 "CYRETURN AT C?RETURN CHR$
ASN >=ERROR RETURN TAB ASN GOTO
ERROR RETURN ,ASN OERROR PRINT E
-RND7LET ñTERROR VAL ñ  VAL ñM
TRACE VAL ?CHAR UNDRAW 5INPUT
DEF PROC LN SUNDRAW /RESEQ 5RND
TRACE LN SUNDRAW /óLN LOOP
ERROR 5IF DEF PROC LN SUNDRAW /
CHAR Y?LN BDPOKE E?RNDFAST LN X
UNDRAW ñCOPY COPY LN TRACE  ó
PRINT LN RUN DEF PROC LET
RETURN "CõLN BDPOKE /INPUT
LPRINT VAL GOSUB OFF?RNDLN OFF
DPOKE Y)LN UUNDRAW YñLPRINT ?U
UNDRAW LN IUNDRAW LN SQR UNDRAW
5CALL EDIT LN XUNDRAW 5PRINT !
LN SUNDRAW LN -DPOKE RETURN ,C>
RETURN ;ASN CLS DPOKE RETURN +
ASN CLS DPOKE 5.CHAR LN SUNDRAW
JTAN 5XERROR LN SUNDRAW ?CLS
DPOKE 5ñRNDACS AUTO TAB :"JLN
RUN DEF PROC UTRNDRETURN )S
UNDRAW :(Y/5URND-CHAR ?PRINT !
LN ERR MSGS UNDRAW Y?LN BDPOKE 5
RUN DEF PROC LN SUNDRAW /JLN H
TRACE 5RUN ERROR LN SUNDRAW /8?
NEW 3DEF PROC 5ñRNDACS AUTO C:5S
RND-ACS COPY LEN WUSR ?!?òùUTRND
CHR$ UNPLOT .CHAR /RY
50167 LN ABS 5IF DEF PROC LN S
UNDRAW ?.ERROR LN NOSTALGIC
DPOKE STR$ LN NOSTALGIC DPOKE
STR$ AT SGN TAN RETURN RNDABS
CONT ERR MSGS ñWRNDòLN LINE
CALL RETURN 0SúRETURN RNDLN -
DPOKE ó/INPUT RETURN (M÷
END PROC CôRETURN $4òóòúACS
COPY òLN ³CHAR A ?DDGOSUB
UNDRAW ?RNDùCHAR U÷END PROC
RETURN $C!RETURN (4òJTAN ?TAN
TAN RND9ñWRNDJMöEND PROC úY
ACS ?4KACS LIST ACS RNDFAST
END PROC OASN CONT ERR MSGS
LPRINT ?FFAST LN SCROLL CHAR
LPRINT óACS ?CNEXT J?6ùEND PROC
UöEND PROC LN DPEEK CHAR RETURN
ñ4"Y5LN UUNDRAW 5SAVE CHAR LN S
UNDRAW UöEND PROC 5õEND PROC
ERROR ôS**?TAN EùEND PROC )M 
GOSUB DELETE GOSUB OFF?RNDGOSUB
DELETE SQR INT ³FAST LN
NOSTALGIC DPOKE ?NLPRINT ""
GOSUB OFFñEND PROC LN OFFDPOKE )
  LN OFFDPOKE E?RNDGOSUB OFFñ
END PROC ;6ñEND PROC ñ  ?COS :
LN -DPOKE LN SCHAR RETURN ñASN
RESEQ RETURN  4úLN DPOKE ACOPY
FAST LN -DPOKE RETURN =TAB CONT
ERR MSGS LN HTRACE LPRINT ?
RETURN COPY 4£5SGN FOR LN X
UNDRAW 5OFFDPOKE ?SUNDRAW Y6?U
UNDRAW FAST 5NOSTALGIC TRACE LN
SUNDRAW LN -DPOKE LN LINE CALL
RETURN (46LPRINT LN ** 5STR$
VAL LN XUNDRAW 5DUP DEF PROC LN
SUNDRAW LN -DPOKE LN 3 5AT SGN
LN XUNDRAW 5?DEF PROC ?SUNDRAW
LN -DPOKE LN 3 LPRINT Y5LN U
UNDRAW 5?TRACE ?SUNDRAW I+FAST
LN -DPOKE RETURN (CRAND RETURN "
LN LOOP ERROR /END WHEN
RETURN INKEY$4!5RNDTRACE LN S
UNDRAW /USER RETURN CHR$ 4"LN
ERR MSGS UNDRAW 5UTRACE LN S
UNDRAW /DELETE LN ABS /EDIT LN
SCHAR LN -DPOKE FAST LN LINE
CALL RETURN (4NLN -DPOKE LN H
TRACE E-RNDDATA LOOP LN XUNDRAW
/"LN -DPOKE RETURN TO TAB CONT
ERR MSGS LN OUNDRAW 5AUTO TRACE
LN SUNDRAW LPRINT Y5LN UUNDRAW 5
WHILE TRACE ?SUNDRAW LPRINT Y5
LN UUNDRAW 5HCHAR ?SUNDRAW 5
LINE TRACE LN SUNDRAW LN LINE
CALL RETURN )CùLPRINT X""LN -
DPOKE ?5 LN -DPOKE /FOR ?ññ /ù
LN POKE DEF PROC ñ  GCOS £)ù
END PROC >TAN B.GOSUB DELETE
ERR MSGS EDIT LIST INT ºSTR$ LN
NOSTALGIC DPOKE FOR SGN ;FOR
TAN EñEND PROC 6õEND PROC TAN ?L
COS EõEND PROC FOR GOSUB KGOSUB
DO õEND PROC TAN FAST
END PROC GOSUB OFFñEND PROC B
GOSUB DELETE FAST AT LPRINT LN
NOSTALGIC DPOKE VAL FAST LN ?
DEF PROC LPRINT AT ?7?TAN FOR ö!
?RETURN  CñACS  DRAW ?FOR 5  
ACS T3Kñ;FOR DFOR (PRINT TAN J
PRINT LN ERR MSGS UNDRAW LN
LINE CALL RETURN + AND RNDDRAW
RETURN ;ABS RNDDRAW YFAST LN B
DPOKE LN -DPOKE PRINT LN
ERR MSGS UNDRAW LET RETURN +Cô
RETURN -47AT LINE ?RETURN  4ô
PRINT FAST /PEEK FAST 5ERR MSGS
EDIT LN XUNDRAW LN NEXT TRACE Y
FAST 5PUSH NOSTALGIC LN UUNDRAW
/ZPRINT VAL /0RETURN /C(RETURN *
TAB CONT ERR MSGS LN VDRAW 5)
TRACE LN SUNDRAW /BLN VDRAW 5
CLEAR DEF PROC /NEXT YLPRINT LN
BDPOKE LET RETURN  COS RETURN +C
)LN VDRAW 5BFOR LN XUNDRAW 5
GOSUB DELETE LN XUNDRAW /SCROLL
LN VDRAW Y;LN BDPOKE /<>YSGN ?B
DPOKE RETURN )4USR LN -DPOKE /
INT RETURN PEEK 4?LN ERR MSGS
UNDRAW 5A ?XUNDRAW RETURN USR 4>
LN ERR MSGS UNDRAW 5PUSH DRAW ?S
UNDRAW ñ?DRAW VAL FAST TAN
NOSTALGIC PUSH TAN RETURN CODE 4
G5õEND PROC YELN UUNDRAW YFAST
LN BDPOKE ICOPY LN 5 YSGN LN B
DPOKE 5>DRAW /USR EõEND PROC
GOSUB DO õEND PROC JGOSUB
DELETE LINE ?COS ,?TAN RETURN
RND4õ5ARND/VRETURN ABS 4)LN
ERR MSGS UNDRAW 5ACS ?LN X
UNDRAW YCODE 5?UNDRAW ?UUNDRAW
RETURN INT ASN ERR MSGS UNDRAW
RETURN LEN 4,LN -DPOKE LN SCHAR
LN -DPOKE Y5LN UUNDRAW 5>=DRAW /
º77LN NOSTALGIC DPOKE FOR TAN
RETURN SGN 4+LN ERR MSGS UNDRAW
5LIST DRAW ?SUNDRAW ?PCOS ACS ?5
ñ TAB ?UNDRAW TAN RETURN SQR
TAB CONT ERR MSGS LN ERR MSGS
UNDRAW 5úUNDRAW ?SUNDRAW JXACS ?
INT ¹?ELSE A )RND ö!GOSUB
DELETE Kñ;ZACS GOSUB
CLR STACK ·GOSUB CLR STACK (
LIST CLR STACK LINE TAN LN H
TRACE LN -DPOKE PRINT YFAST LN B
DPOKE LN HTRACE YSGN LN BDPOKE
LET TAN LN -DPOKE RETURN -PRINT
ATN -DPOKE RETURN (C-RETURN RNDK
$RETURN AUSR ?UNDRAW >=µUNDRAW
LET ATN ELSE UNDRAW TAN LN
TRACE DRAW /PLOT LN HTRACE /LET
5?UNDRAW /CHAR ?JLINE ?J?7TAN
LN SCHAR RETURN  ASN >DEF PROC Y
E/PLN DO PROTECT Y5/I)(BLN A
DPOKE LN $ERR MSGS UõEND PROC
DEF PROC £E?RND6?RNDöôLN BDPOKE
(CLS $4PLOT LPRINT GOSUB UNDRAW
?RNDTAN 5Eú/ó5"RNDYLN LN BDPOKE
?LN BDPOKE ??BDPOKE LN IUNDRAW
LN SQR UNDRAW 5FOR ?/GOSUB
RETURN ,TAB CONT ERR MSGS TAN
LN LINE CALL RETURN
10245 TRACE /!YE5ORNDLN UUNDRAW Y
65MRND?UUNDRAW LN -DPOKE LN S
CHAR FAST FAST LN -DPOKE LN I
UNDRAW Y7LN BDPOKE 5GOSUB DO LN
XUNDRAW LPRINT LN XUNDRAW Y677
LN UUNDRAW LPRINT GOSUB OFF?RND?
OFFDPOKE LN -DPOKE LN SCHAR
FAST FAST YELN UUNDRAW 576LN X
UNDRAW LPRINT LN XUNDRAW 77Y
GOSUB LN BDPOKE YOFFLN UUNDRAW Y
B5GOSUB DELETE LN UUNDRAW YIF
LPRINT LN NOSTALGIC DPOKE FOR ?U
UNDRAW 5  /?LN -DPOKE RETURN  
LN )TRACE LET RETURN AABS CONT
ERR MSGS RETURN 0 AND CONT
ERR MSGS CHR$ 0ö DEF PROC ù/ TO
FAST E-RND)õ ;6-RNDLPRINT TAN
LN -DPOKE LN SCHAR RETURN ñC1
PRINT FAST 5*EDIT LN SUNDRAW
LPRINT LET RETURN  TAB EXIT Y
FOR LN BDPOKE LN SUNDRAW Y5LN U
UNDRAW LN -DPOKE 5VPROTECT ?S
UNDRAW GOSUB UNDRAW ñEND PROC
VAL FAST LN òEDIT 6ñEND PROC
FAST LN PAUSE PROTECT RETURN
10249 KPRINT LN $EDIT /LIST SGN
GOSUB DELETE FAST AT LPRINT LN ³
TRACE AT GOSUB CALL ñEND PROC
FAST LN òEDIT ñ3 LN ?DEF PROC
LPRINT TAN FAST LN LET DEF PROC
LPRINT RETURN ?""J?FY
48672 £RNDñSAVE òùYL?TAN ?7Y
48672 /PAUSE LN òEDIT FAST FAST
LN PAUSE PROTECT RETURN
10257 C!RETURN 0SLET RETURN AK
GOSUB LN $EDIT /CONT 5  SGN ,
RETURN -C(RETURN LC?CHR$ 0DFAST
DDAT ùö DEF PROC ù</CONT SGN ,
RETURN -PRINT LN NEW PROTECT
LET ""??UNDRAW Y.PRINT LN I
UNDRAW LN SQR UNDRAW 5UNDRAW
DPOKE LN XUNDRAW YYLN BDPOKE
LET LN BDPOKE YM5KRNDLN UUNDRAW
5,RND?SUNDRAW Y4/**?PCOS ?NCOS R
TAN ?PCòRTAN ?NCOS RTAN E-RND7(C
PLOT RETURN INKEY$ASN ERR MSGS
AUTO RETURN CHR$ ASN ERR MSGS
AUTO RETURN "ASN ERR MSGS AUTO 7
LN IUNDRAW RETURN OR 4ú5?EDIT
LN SUNDRAW YABS /CHAR RETURN
AND 4õ5·EDIT /LIST PRINT YB5
GOSUB DELETE LN UUNDRAW LET
RETURN =4ôYTAB /GRETURN <>4ôY
ASN /8RETURN >C+RETURN <4÷YASN
LN 5AUTO /<RETURN >=4ú5CóLN X
UNDRAW YPAUSE RETURN <=TAB
CONT ERR MSGS YIF LN 5AUTO LN -
DPOKE RETURN AND ASN ,EDIT TAN
LN BDPOKE EúRND7LN BREAK DPOKE
FOR LN NOSTALGIC DPOKE FOR ?X
UNDRAW LN XAUTO 6õEND PROC 6÷
END PROC TAN EõEND PROC QCOPY 7
TAN 5NOSTALGIC TRACE LN SUNDRAW
LN 3 LN -DPOKE PRINT 5NAUTO LN S
UNDRAW LN 3 5XAUTO LN SUNDRAW 52
AUTO LN SUNDRAW LET RETURN =4ôY
TAB /ARETURN <>4ôYASN /2RETURN >
4÷YASN LN 5AUTO /!RETURN <C<
RETURN >=4ôY AND RETURN <=TAB
CONT ERR MSGS 5CóLN XUNDRAW Y
ABS ?+AUTO E÷END PROC GOSUB
UNDRAW ñEND PROC úWOY""RETURN  
COS 7ó/POKE 5RAUTO ?SUNDRAW LN
SCROLL ò5VRNDACS QTAN 5LEN AUTO
?SUNDRAW 5VRNDACS PLOT ?÷ò5ò LN
**ù""FAST LN 2DEF PROC SGN ?
DATA ú5ò LN **ù""LN 2DEF PROC
COS LN 2DEF PROC COS LOOP DATA E
£RND/SCROLL óóóVAL óóóóVAL LN
EXP AUTO 5ó LN **ùAT LN 2ù7Y
28963 7AT ?7?7QREM 7?7?7TAN 77
AUTO 7ERROR ù7U£RND1""U$RND0TAN
LN -DPOKE LN SCHAR Y5LN UUNDRAW
YGOSUB LN BDPOKE YOFF5ñEND PROC
LN UUNDRAW 5OFFDPOKE LN SUNDRAW
LN HTRACE 5UNTIL DEF PROC ?S
UNDRAW 7D7FAST FAST AT
END PROC LN COS :AT LN DUP
DEF PROC GOSUB DO ñEND PROC TAN
EñEND PROC DATA LOOP <Q /óEñ
END PROC ?LCOS GOSUB KTAN FAST
LN ERR MSGS UNDRAW 5GOSUB
UNDRAW LN XUNDRAW LPRINT LN X
UNDRAW 5Dù?XUNDRAW LN DPOKE 5
NOSTALGIC DPOKE LN SUNDRAW 5FOR
SGN ?XUNDRAW EôRND9QCOPY FQCOPY
FQ 6ùEND PROC Y5E?RNDLN UUNDRAW
I:UõEND PROC LINE LN XUNDRAW 5
ATN DEF PROC ?SUNDRAW £JM5RNDöô?
7(UNPLOT $4RUN 54 6?RNDE0RNDñ
HOME  ù6ñEND PROC 6õEND PROC
TAN RND?:RND?)RND?1RND?4RND
FOR ?7RNDACS ?  EXP ?LN ?REM
30241 :(LN ATN DEF PROC ?Y
END PROC THE BALL<BY:STEVEN REID
(C)1983>)3END PROC ñ3 LN IF
DEF PROC LN .CHAR ?END WHEN
END PROC                        
         )EDIT END PROC ñ4 LN
IF DEF PROC LN .CHAR 5ò FAST 5= 
SGN 7GOSUB DO FOR WHEN 6GOSUB
WHEN ?$END PROC  )£END PROC ññ 
LN IF DEF PROC 5ú LN RUN ERROR ?
LEND PROC     !!!!¸¸¸¸!!¸¸  )3
END PROC ñ> LN IF DEF PROC 53 
LN RUN ERROR ?CODE END PROC  )?
END PROC ññ LN IF DEF PROC LN .
CHAR EFOR WHEN 76FOR WHEN GOSUB
OFFGOSUB WHEN BGOSUB DELETE IF ¹
END PROC ?ô                     
           )SLOW END PROC ñ4 LN
IF DEF PROC 5  6LOAD WHEN 5IF  6
NEXT WHEN 5ñ LN ?UNDRAW 6RUN
WHEN 5ñ 6CLS WHEN 5= 6COPY WHEN
5ñ 6óINDENT ECOPY WHEN 6÷INDENT
EóINDENT 6"INDENT 5?INDENT LN
SAVE CHAR LN NOSTALGIC TRACE ?
EDIT  )PROTECT ññ LN LINE TRACE
5?INDENT LN ?TRACE 5<INDENT LN
SAVE CHAR LN NOSTALGIC TRACE ?
PUSH  )POP ññ LN LINE TRACE 5<
INDENT LN ?TRACE 5ñ 6*INDENT E
COPY WHEN FAST E÷INDENT SGN B
GOSUB DELETE ASN FE÷INDENT FAST
E"INDENT SGN CALL EDIT LN PRINT
!5<INDENT LN SAVE CHAR 5<INDENT
LN HCHAR LN IF DEF PROC LN .
CHAR EóINDENT FAST E"INDENT SGN
BGOSUB DELETE ASN **E÷INDENT
FAST E"INDENT SGN CALL EDIT LN
PRINT !5<INDENT LN SAVE CHAR 5<
INDENT LN HCHAR LN IF DEF PROC
LN .CHAR ECOPY WHEN FAST
INDENT SGN CALL EDIT LN PRINT !5
?INDENT LN SAVE CHAR 5?INDENT
LN HCHAR LN IF DEF PROC LN .
CHAR ELOAD WHEN FAST 5ñ SGN B
GOSUB DELETE TAB !DELETE LN ;DO
ELOAD WHEN FAST 5  SGN BGOSUB
DELETE TAB ;DELETE LN DPEEK
EXIT ECOPY WHEN 6÷INDENT Eó
INDENT 6"INDENT ECOPY WHEN FAST
ERUN WHEN SGN ;6COPY WHEN Eó
INDENT FAST ECLS WHEN SGN ;6ó
INDENT ECOPY WHEN FAST 5ò SGN B
GOSUB DELETE TAB LOOP DELETE E
RUN WHEN LN ?UNDRAW 6RUN WHEN E
COPY WHEN FAST 5= SGN BGOSUB
DELETE TAB DUP DELETE ERUN WHEN
LN ?UNDRAW 6RUN WHEN EóINDENT
FAST 5ñ SGN BGOSUB DELETE TAB ²
DELETE ECLS WHEN LN ?UNDRAW 6
CLS WHEN EóINDENT FAST 52 SGN B
GOSUB DELETE TAB ;DELETE ECLS
WHEN LN ?UNDRAW 6CLS WHEN E*
INDENT FAST 52 SGN BGOSUB
DELETE TAB HDELETE 5ñ 6LOAD
WHEN ELOAD WHEN FAST 5ñ SGN B
GOSUB DELETE TAB YDELETE ?LN
DELETE E*INDENT FAST 5ñ SGN ;6*
INDENT ?LIST DELETE E*INDENT
FAST 5ñ SGN BFOR GOSUB DELETE 6*
INDENT E*INDENT FAST 5ñ SGN B
GOSUB DELETE TAB LIST DELETE 5  
6LOAD WHEN LN NOSTALGIC TRACE
LN RNDTRACE LN LINE TRACE LN N
AUTO ? DO Q)COPY DELETE ññ LN
LINE TRACE LN XAUTO LN 2AUTO
TAB <DO TAN LN NWHILE ?50 SGN B
GOSUB DELETE TAB CALL DO 5?
INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ?ODO  )NDO ññ 
LN LINE TRACE 5?INDENT LN ?
TRACE E*INDENT FAST 5. SGN B
GOSUB DELETE TAB END WHEN DO 5<
INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ?RESTORE DO  )
DATA DO ññ LN LINE TRACE 5<
INDENT LN ?TRACE E*INDENT FAST 5
SGN BGOSUB DELETE TAB *DO 5?
INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ?¸DO !)·DO ññ 
LN LINE TRACE 5?INDENT LN ?
TRACE E*INDENT FAST 5; SGN B
GOSUB DELETE TAB AT DO 5<INDENT
LN SAVE CHAR LN NOSTALGIC TRACE
?MDO ¸)LDO ññ LN LINE TRACE 5<
INDENT LN ?TRACE E*INDENT FAST 5
SGN BGOSUB DELETE TAB FOR DO 5
?INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ?>=DO ¸)<=DO ññ 
LN LINE TRACE 5?INDENT LN ?
TRACE E*INDENT FAST 5* SGN B
GOSUB DELETE TAB +LOOP 5<INDENT
LN SAVE CHAR LN NOSTALGIC TRACE
?öLOOP !)õLOOP ññ LN LINE TRACE
5<INDENT LN ?TRACE E*INDENT
FAST 5- SGN BGOSUB DELETE TAB Z
LOOP 5?INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ?KLOOP !)JLOOP ñ
ñ LN LINE TRACE 5?INDENT LN ?
TRACE E*INDENT FAST 5+ SGN B
GOSUB DELETE TAB PUSH LOOP 5<
INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ?RESEQ LOOP ¸)
INDENT LOOP ññ LN LINE TRACE 5<
INDENT LN ?TRACE E*INDENT FAST 5
SGN BGOSUB DELETE TAB <LOOP 5?
INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ?´LOOP ¸)³LOOP ñ
ñ LN LINE TRACE 5?INDENT LN ?
TRACE E*INDENT FAST 5) SGN B
GOSUB DELETE TAB XLOOP 5<INDENT
LN SAVE CHAR LN NOSTALGIC TRACE
?ILOOP !)HLOOP ññ LN LINE TRACE
5<INDENT LN ?TRACE E*INDENT
FAST 5: SGN BGOSUB DELETE TAB
SCROLL LOOP 5?INDENT LN SAVE
CHAR LN NOSTALGIC TRACE ?**LOOP
 )NOT LOOP ññ LN LINE TRACE 5?
INDENT LN ?TRACE E*INDENT FAST 5
SGN BGOSUB DELETE TAB )EXIT 5<
INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ?òEXIT  )ñEXIT ñ
ñ LN LINE TRACE 5<INDENT LN ?
TRACE E*INDENT FAST 5ú SGN B
GOSUB DELETE TAB VEXIT 5?INDENT
LN SAVE CHAR LN NOSTALGIC TRACE
?GEXIT  )FEXIT ññ LN LINE TRACE
5?INDENT LN ?TRACE E*INDENT
FAST 5ù SGN BGOSUB DELETE TAB
BREAK EXIT 5<INDENT LN SAVE
CHAR LN NOSTALGIC TRACE ?UNTIL
EXIT  )EXIT EXIT ññ LN LINE
TRACE 5<INDENT LN ?TRACE TAN E*
INDENT FAST 5ù SGN BGOSUB
DELETE TAB (EXIT 5?INDENT LN
SAVE CHAR LN NOSTALGIC TRACE ?±
EXIT  ) EXIT ññ LN LINE TRACE 5?
INDENT LN ?TRACE E*INDENT FAST 5
ú SGN BGOSUB DELETE TAB UEXIT 5<
INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ?FEXIT  )EEXIT ñ
ñ LN LINE TRACE 5<INDENT LN ?
TRACE E*INDENT FAST 5$ SGN B
GOSUB DELETE TAB SLOW EXIT 5?
INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ?STR$ EXIT ¸)
USR EXIT ññ LN LINE TRACE 5?
INDENT LN ?TRACE E*INDENT FAST 5
SGN BGOSUB DELETE TAB :UNTIL 5
<INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ?COPY EXIT !)
RETURN EXIT ññ LN LINE TRACE 5<
INDENT LN ?TRACE E*INDENT FAST 5
SGN BGOSUB DELETE TAB SUNTIL 5
?INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ?DUNTIL !)C
UNTIL ññ LN LINE TRACE 5?INDENT
LN ?TRACE E*INDENT FAST 5> SGN B
GOSUB DELETE TAB *UNTIL 5<
INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ?DO UNTIL ¸)
DELETE UNTIL ññ LN LINE TRACE 5<
INDENT LN ?TRACE E*INDENT FAST 5
SGN BGOSUB DELETE TAB £UNTIL 5
?INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ??UNTIL ¸)?
UNTIL ññ LN LINE TRACE 5?INDENT
LN ?TRACE E*INDENT FAST 5- SGN B
GOSUB DELETE TAB QUNTIL 5<
INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ?BUNTIL !)A
UNTIL ññ LN LINE TRACE 5<INDENT
LN ?TRACE E*INDENT FAST 5* SGN B
GOSUB DELETE TAB STEP UNTIL 5?
INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ?SGN UNTIL !)
SQR UNTIL ññ LN LINE TRACE 5?
INDENT LN ?TRACE E*INDENT FAST 5
SGN BGOSUB DELETE TAB úWHILE 5
<INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ?CLS UNTIL ¸)IF
UNTIL ññ LN LINE TRACE 5<INDENT
LN ?TRACE E*INDENT FAST 5; SGN B
GOSUB DELETE TAB OWHILE 5?
INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ?9WHILE  )8
WHILE ññ LN LINE TRACE 5?INDENT
LN ?TRACE E*INDENT FAST 5, SGN B
GOSUB DELETE TAB RESTORE WHILE 5
<INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ?DEF PROC WHILE
 )AUTO WHILE ññ LN LINE TRACE 5<
INDENT LN ?TRACE E*INDENT FAST 5
SGN BGOSUB DELETE TAB ¸WHILE 5
?INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ??WHILE  )?
WHILE ññ LN LINE TRACE 5?INDENT
LN ?TRACE E*INDENT FAST 50 SGN B
GOSUB DELETE TAB MWHILE 5<
INDENT LN SAVE CHAR LN
NOSTALGIC TRACE ?7WHILE  )6
WHILE ññ LN LINE TRACE 5<INDENT
LN ?TRACE TAN 5ñ FAST ENEXT
WHEN SGN 7GOSUB DO .INDENT 61
INDENT E.INDENT 76.INDENT GOSUB
OFF1INDENT BGOSUB DELETE IF ?
WHILE E3INDENT FAST 5  SGN B
GOSUB DELETE PAUSE LET WHILE E3
INDENT FAST 5ñ SGN BFOR GOSUB
DELETE 63INDENT E3INDENT FAST
 SGN BGOSUB DELETE TAB 0WHEN 5+ 
FAST 5: SGN CALL EDIT LN PRINT !
?<WHEN     )?WHEN ñô LN IF
DEF PROC ENEXT WHEN 67INDENT LN
NOSTALGIC TRACE LN RNDTRACE LN
LINE TRACE LN NAUTO ?MWHEN 7)L
WHEN ññ LN LINE TRACE LN XAUTO
LN 2AUTO TAB END PROC WHEN E
NEXT WHEN FAST 5ú SGN ;6NEXT
WHEN ENEXT WHEN FAST 5CONT óSGN
BGOSUB DELETE PAUSE HOME WHEN 5
CONT ó6NEXT WHEN LN NOSTALGIC
TRACE LN RNDTRACE LN LINE TRACE
LN NAUTO ??WHEN 6)?WHEN ññ LN
LINE TRACE LN XAUTO LN 2AUTO
TAB +WHEN ENEXT WHEN FAST 5ú 
SGN BFOR GOSUB DELETE 6NEXT
WHEN ENEXT WHEN FAST 5  SGN B
GOSUB DELETE ASN GWHEN IF GWHEN
5  6NEXT WHEN E7INDENT FAST E
NEXT WHEN SGN BGOSUB DELETE TAB
VWHEN TAN 5+ FAST 5: SGN CALL
EDIT LN PRINT !ENEXT WHEN LN
INPUT DEF PROC ?ABS WHEN  )SGN
WHEN ññ LN IF DEF PROC 5ú 63
INDENT TAN TAN         + + ñ   
IF    COPY COPY   COPY COPY   : 
  )   ?   >   "?ñ F?ñ )   CLS  
CLS      IF    ñ óWHEN  REM     
  MCODER II         COPYRIGHT 19
83   D C THRELFALL COMPILER AT 1
7300 PROG AT 20500
   0 REM MCII
30403 ?/INKEY$?INKEY$?CALL INKEY$
??INKEY$?  ??INKEY$PI?8PI?
INPUT PI?ERR MSGS CALL LN Vò84
IF INT £FAST STR$ ACS ?C!Y-LN õ
PILN (INKEY$)(BLN UNPLOT RNDK;)
CONT óLN UNPLOT RNDK=)HOME  LN
UNPLOT RNDK>2úLN UNPLOT RNDK)/=
LN òINKEY$)CONT óLN òINKEY$)
HOME  LN òINKEY$LN òINKEY$
LN òINKEY$SGN LPRINT TAN FAST B
GOSUB DELETE LPRINT TAN Y0B
GOSUB DELETE SóW/RAND ;?õPI?J
LINE ?J?7TAN RND)5 FAST GOSUB
UNDRAW /RNDù7FAST ;FOR 5CHR$ ò
GOSUB PISTOP AT FOR GOSUB K
LPRINT ñQòù6:RNDCLEAR QT5CLEAR Q
TAN LN VòñCOPY RETURN JFAST
GOSUB PILPRINT COS //LN VòG4IF
LN Vò?RETURN COPY CSAVE ñCOPY
RETURN JFAST GOSUB PILPRINT C
INPUT JERR MSGS 8COS 9EDIT LN X÷
ASN DRNDTAN ACS UNPLOT 6ORNDEO
RND?NEW ?PCOS LN CALL INKEY$C
NEXT TAN YF( AND GOTO PICHAR Yñ
ACS CKòYôACS DKòACS ÷PRINT LN
INT INKEY$÷ACS ?KòINPUT ?CHAR )2
£UKRND<IF VAL INKEY$LET J4LET
KRETURN !SòINPUT ?/QY*( AND
GOTO PI?NEW 3DEF PROC VAL VAL
VAL JACS (ACS (ACS (POP LINE DD
AT CHAR ùAT CHAR ùGOSUB UNDRAW
£RNDù76:RNDAT Y/(MURNDY5)MTRND
TAN STR$ FAST VAL RETURN
8218 RNDACS AUTO CõLN ( /QE:RND
LN DO PI/CRETURN RNDABS JPIRND
ACS AUTO CõLN ( /*E:RNDPRINT
LET E:RND?76:RND5TRNDPAT LPRINT
SGN TAN 7PRINT 6:RNDCLEAR QT5UU
RNDXMURNDRETURN òATN PUSH PILET
TAN U5RNDRETURN  CöXM5RND/AE£RND
ñSAVE òùQ?FAST LN CALL INKEY$C
CLS LPRINT RETURN CASN
RETURN ZC:RETURN D4÷ACS 0F?O4
CLS ?/INKEY$LN PUSH !/ABS ?LCOS
,LN õPI<"/PRINT RETURN CALL Sù
RETURN ""ACS R AND FPINEW Z5)ñ
CHAR ôRETURN 5K£RETURN ñCô
RETURN *SôJLN õPIACS õPI7/PRINT
NEW ZLN õPIJ?!PIINT º?MCIF LN O
CALL VAL UNDRAW PI)  STR$ FOR 7D
FOR D?+?0FOR KPLOT FOR FOR J?3
LINE ?3?OC/FOR JACS 0ACS 1?+?0
IF ùCALL ?+DEF PROC ?0CHAR STOP
;STOP /<>LPRINT AT ACS ?TAB (
INKEY$TAN ERR MSGS ?*>=(INKEY$
FOR ?CCHAR ACS ?TAB (INKEY$TAN
GOSUB OFFMRNDONICLEAR ?Rö GOSUB
DELETE /GOSUB DELETE /READ
END PROC GOSUB DELETE Kñ76MRND
ACS WERR MSGS EDIT TAN LN   E-
RND7PRINT LN -DPOKE LN -DPOKE
LN SCHAR LN INPUT DEF PROC INT ?
LN RAUTO LN <>AUTO TAN LN LEN
AUTO YCODE LN RUN DEF PROC LN *
EDIT /$LN RAUTO 5  LN >ERR MSGS
óLN NEXT AUTO FAST LN LEN AUTO
LPRINT LN >ERR MSGS LN A
ERR MSGS LN LLIST !)CLEAR CALL ñ
LN IF DEF PROC E?RNDLN INPUT
DEF PROC )RUN CALL ñô LN IF
DEF PROC E?RNDLN INPUT DEF PROC
LN .CHAR LN .CHAR YRUN LN RUN
DEF PROC Y?LN RUN DEF PROC LN
LET DEF PROC RETURN YTAB DRND5
LIST CALL FAST LN EúE?RNDDIM LN
POKE DEF PROC 4CLS INT ?
30455  
30386 DER II ENDAT YTAN ?BDPOKE 6
?RNDGOSUB OFF0RND<5?RNDLN OFF
DPOKE 5  6?RNDE?RND6?RNDLN A
DEF PROC WMõEND PROC 5?RNDFAST
LN 7DPOKE LPRINT FAST 7776-RNDU*
RNDM5RNDLN -DPOKE RETURN PAUSE
ATN NEXT ERR MSGS RETURN RAND
ATN CHR$ UNDRAW RETURN IF ATN ,
EDIT RETURN THEN CREM RETURN
DIM ATN JDEF PROC RETURN GOTO
ATN ?DPOKE RETURN GOSUB ATN >
DPOKE RETURN FOR ATN PAUSE
UNDRAW RETURN NEXT ATN 2PROTECT
RETURN SLOW ATN ""AUTO RETURN
POKE ATN VAL UNDRAW RETURN FAST
ATN LAUTO RETURN INPUT ATN ¶
PROTECT RETURN PLOT ATN DATA
EDIT RETURN UNPLOT ATN ³EDIT
RETURN LET ATN 2 RETURN CLS ATN
KUNDRAW RETURN STOP ASN £UNDRAW
RETURN PRINT ATN LET DPOKE
RETURN LPRINT ATN CHR$ DPOKE
RETURN NEW ATN òDPOKE RETURN
COPY ATN UNPLOT ERR MSGS RETURN
REM CPROTECT RETURN SCROLL ATN P
UNDRAW RETURN RETURN ATN $
ERR MSGS RETURN CLEAR ATN A
DEF PROC RETURN  4;E-RND-DPOKE
RETURN
8202 2DEF PROC TAB QERR MSGS LN
£UNDRAW LN LEN AUTO YSLN RUN
DEF PROC ?DRNDLN HTRACE 5=RND?S
UNDRAW 5PUSH !?SUNDRAW 5?ó?S
UNDRAW SCROLL RETURN ?4SGN LN
RUN DEF PROC 5/DPOKE LN SUNDRAW
/LEN ñRETURN RETURN GOSUB POP
ACS 1**?POKE DEF PROC UNTIL 7
RESTORE STR$ FOR FAST 67RNDRND
LN .CHAR LN INPUT DEF PROC JLN
RUN DEF PROC LPRINT LN BREAK
DPOKE ..FOR SGN LN OFFDPOKE
GOSUB OFF?RNDLN OFFDPOKE FAST
GOSUB OFF?RNDBGOSUB DELETE
LPRINT **6?RND?SCROLL CHAR ?7?7
TAN RESTORE 7UNTIL 7TAN FAST AT
E0RND7LN NOSTALGIC DPOKE FOR B
GOSUB PISQR E?RNDGOSUB DELETE **
FOR 7/GOSUB Y?PRINT LN -DPOKE
LN DO PROTECT LN BREAK DPOKE
FOR LN NOSTALGIC DPOKE FOR LET ?
UUNDRAW YLN /DIM FAST SCROLL
RETURN
10249 PRINT LN RUN DEF PROC
LET LPRINT TAN VAL FAST E?RND
PRINT ?FAST 76?RNDLN POKE
DEF PROC RETURN D4-Y
52727 LN INPUT DEF PROC JLN RUN
DEF PROC LET A ?LN INPUT
DEF PROC /òLPRINT LET LPRINT AT
JTAN 5CLEAR ACS LN XUNDRAW 5ñ
EXP LN XUNDRAW LN LET DPOKE 5
CLEAR ACS LN XUNDRAW 5ñ:?X
UNDRAW LN -DPOKE RETURN
8198 ERROR LN -DPOKE RETURN
INKEY$CZRETURN
51890 "CYRETURN AT C?RETURN CHR$
ASN >=ERROR RETURN TAB ASN GOTO
ERROR RETURN ,ASN OERROR PRINT E
-RND7LET ñTERROR VAL ñ  VAL ñM
TRACE VAL ?CHAR UNDRAW 5INPUT
DEF PROC LN SUNDRAW /RESEQ 5RND
TRACE LN SUNDRAW /óLN LOOP
ERROR 5IF DEF PROC LN SUNDRAW /
CHAR Y?LN BDPOKE E?RNDFAST LN X
UNDRAW ñCOPY COPY LN TRACE  ó
PRINT LN RUN DEF PROC LET
RETURN "CõLN BDPOKE /INPUT
LPRINT VAL GOSUB OFF?RNDLN OFF
DPOKE Y)LN UUNDRAW YñLPRINT ?U
UNDRAW LN IUNDRAW LN SQR UNDRAW
5CALL EDIT LN XUNDRAW 5PRINT !
LN SUNDRAW LN -DPOKE RETURN ,C>
RETURN ;ASN CLS DPOKE RETURN +
ASN CLS DPOKE 5.CHAR LN SUNDRAW
JTAN 5XERROR LN SUNDRAW ?CLS
DPOKE 5ñRNDACS AUTO TAB :"JLN
RUN DEF PROC UTRNDRETURN )S
UNDRAW :(Y/5URND-CHAR ?PRINT !
LN ERR MSGS UNDRAW Y?LN BDPOKE 5
RUN DEF PROC LN SUNDRAW /JLN H
TRACE 5RUN ERROR LN SUNDRAW /8?
NEW 3DEF PROC 5ñRNDACS AUTO C:5S
RND-ACS COPY LEN WUSR ?!?òùUTRND
CHR$ UNPLOT .CHAR /RY
50167 LN ABS 5IF DEF PROC LN S
UNDRAW ?.ERROR LN NOSTALGIC
DPOKE STR$ LN NOSTALGIC DPOKE
STR$ AT SGN TAN RETURN RNDABS
CONT ERR MSGS ñWRNDòLN LINE
CALL RETURN 0SúRETURN RNDLN -
DPOKE ó/INPUT RETURN (M÷
END PROC CôRETURN $4òóòúACS
COPY òLN ³CHAR A ?DDGOSUB
UNDRAW ?RNDùCHAR U÷END PROC
RETURN $C!RETURN (4òJTAN ?TAN
TAN RND9ñWRNDJMöEND PROC úY
ACS ?4KACS LIST ACS RNDFAST
END PROC OASN CONT ERR MSGS
LPRINT ?FFAST LN SCROLL CHAR
LPRINT óACS ?CNEXT J?6ùEND PROC
UöEND PROC LN DPEEK CHAR RETURN
ñ4"Y5LN UUNDRAW 5SAVE CHAR LN S
UNDRAW UöEND PROC 5õEND PROC
ERROR ôS**?TAN EùEND PROC )M 
GOSUB DELETE GOSUB OFF?RNDGOSUB
DELETE SQR INT ³FAST LN
NOSTALGIC DPOKE ?NLPRINT ""
GOSUB OFFñEND PROC LN OFFDPOKE )
  LN OFFDPOKE E?RNDGOSUB OFFñ
END PROC ;6ñEND PROC ñ  ?COS :
LN -DPOKE LN SCHAR RETURN ñASN
RESEQ RETURN  4úLN DPOKE ACOPY
FAST LN -DPOKE RETURN =TAB CONT
ERR MSGS LN HTRACE LPRINT ?
RETURN COPY 4£5SGN FOR LN X
UNDRAW 5OFFDPOKE ?SUNDRAW Y6?U
UNDRAW FAST 5NOSTALGIC TRACE LN
SUNDRAW LN -DPOKE LN LINE CALL
RETURN (46LPRINT LN ** 5STR$
VAL LN XUNDRAW 5DUP DEF PROC LN
SUNDRAW LN -DPOKE LN 3 5AT SGN
LN XUNDRAW 5?DEF PROC ?SUNDRAW
LN -DPOKE LN 3 LPRINT Y5LN U
UNDRAW 5?TRACE ?SUNDRAW I+FAST
LN -DPOKE RETURN (CRAND RETURN "
LN LOOP ERROR /END WHEN
RETURN INKEY$4!5RNDTRACE LN S
UNDRAW /USER RETURN CHR$ 4"LN
ERR MSGS UNDRAW 5UTRACE LN S
UNDRAW /DELETE LN ABS /EDIT LN
SCHAR LN -DPOKE FAST LN LINE
CALL RETURN (4NLN -DPOKE LN H
TRACE E-RNDDATA LOOP LN XUNDRAW
/"LN -DPOKE RETURN TO TAB CONT
ERR MSGS LN OUNDRAW 5AUTO TRACE
LN SUNDRAW LPRINT Y5LN UUNDRAW 5
WHILE TRACE ?SUNDRAW LPRINT Y5
LN UUNDRAW 5HCHAR ?SUNDRAW 5
LINE TRACE LN SUNDRAW LN LINE
CALL RETURN )CùLPRINT X""LN -
DPOKE ?5 LN -DPOKE /FOR ?ññ /ù
LN POKE DEF PROC ñ  GCOS £)ù
END PROC >TAN B.GOSUB DELETE
ERR MSGS EDIT LIST INT ºSTR$ LN
NOSTALGIC DPOKE FOR SGN ;FOR
TAN EñEND PROC 6õEND PROC TAN ?L
COS EõEND PROC FOR GOSUB KGOSUB
DO õEND PROC TAN FAST
END PROC GOSUB OFFñEND PROC B
GOSUB DELETE FAST AT LPRINT LN
NOSTALGIC DPOKE VAL FAST LN ?
DEF PROC LPRINT AT ?7?TAN FOR ö!
?RETURN  CñACS  DRAW ?FOR 5  
ACS T3Kñ;FOR DFOR (PRINT TAN J
PRINT LN ERR MSGS UNDRAW LN
LINE CALL RETURN + AND RNDDRAW
RETURN ;ABS RNDDRAW YFAST LN B
DPOKE LN -DPOKE PRINT LN
ERR MSGS UNDRAW LET RETURN +Cô
RETURN -47AT LINE ?RETURN  4ô
PRINT FAST /PEEK FAST 5ERR MSGS
EDIT LN XUNDRAW LN NEXT TRACE Y
FAST 5PUSH NOSTALGIC LN UUNDRAW
/ZPRINT VAL /0RETURN /C(RETURN *
TAB CONT ERR MSGS LN VDRAW 5)
TRACE LN SUNDRAW /BLN VDRAW 5
CLEAR DEF PROC /NEXT YLPRINT LN
BDPOKE LET RETURN  COS RETURN +C
)LN VDRAW 5BFOR LN XUNDRAW 5
GOSUB DELETE LN XUNDRAW /SCROLL
LN VDRAW Y;LN BDPOKE /<>YSGN ?B
DPOKE RETURN )4USR LN -DPOKE /
INT RETURN PEEK 4?LN ERR MSGS
UNDRAW 5A ?XUNDRAW RETURN USR 4>
LN ERR MSGS UNDRAW 5PUSH DRAW ?S
UNDRAW ñ?DRAW VAL FAST TAN
NOSTALGIC PUSH TAN RETURN CODE 4
G5õEND PROC YELN UUNDRAW YFAST
LN BDPOKE ICOPY LN 5 YSGN LN B
DPOKE 5>DRAW /USR EõEND PROC
GOSUB DO õEND PROC JGOSUB
DELETE LINE ?COS ,?TAN RETURN
RND4õ5ARND/VRETURN ABS 4)LN
ERR MSGS UNDRAW 5ACS ?LN X
UNDRAW YCODE 5?UNDRAW ?UUNDRAW
RETURN INT ASN ERR MSGS UNDRAW
RETURN LEN 4,LN -DPOKE LN SCHAR
LN -DPOKE Y5LN UUNDRAW 5>=DRAW /
º77LN NOSTALGIC DPOKE FOR TAN
RETURN SGN 4+LN ERR MSGS UNDRAW
5LIST DRAW ?SUNDRAW ?PCOS ACS ?5
ñ TAB ?UNDRAW TAN RETURN SQR
TAB CONT ERR MSGS LN ERR MSGS
UNDRAW 5úUNDRAW ?SUNDRAW JXACS ?
INT ¹?ELSE A )RND ö!GOSUB
DELETE Kñ;ZACS GOSUB
CLR STACK ·GOSUB CLR STACK (
LIST CLR STACK LINE TAN LN H
TRACE LN -DPOKE PRINT YFAST LN B
DPOKE LN HTRACE YSGN LN BDPOKE
LET TAN LN -DPOKE RETURN -PRINT
ATN -DPOKE RETURN (C-RETURN RNDK
$RETURN AUSR ?UNDRAW >=µUNDRAW
LET ATN ELSE UNDRAW TAN LN
TRACE DRAW /PLOT LN HTRACE /LET
5?UNDRAW /CHAR ?JLINE ?J?7TAN
LN SCHAR RETURN  ASN >DEF PROC Y
E/PLN DO PROTECT Y5/I)(BLN A
DPOKE LN $ERR MSGS UõEND PROC
DEF PROC £E?RND6?RNDöôLN BDPOKE
(CLS $4PLOT LPRINT GOSUB UNDRAW
?RNDTAN 5Eú/ó5"RNDYLN LN BDPOKE
?LN BDPOKE ??BDPOKE LN IUNDRAW
LN SQR UNDRAW 5FOR ?/GOSUB
RETURN ,TAB CONT ERR MSGS TAN
LN LINE CALL RETURN
10245 TRACE /!YE5ORNDLN UUNDRAW Y
65MRND?UUNDRAW LN -DPOKE LN S
CHAR FAST FAST LN -DPOKE LN I
UNDRAW Y7LN BDPOKE 5GOSUB DO LN
XUNDRAW LPRINT LN XUNDRAW Y677
LN UUNDRAW LPRINT GOSUB OFF?RND?
OFFDPOKE LN -DPOKE LN SCHAR
FAST FAST YELN UUNDRAW 576LN X
UNDRAW LPRINT LN XUNDRAW 77Y
GOSUB LN BDPOKE YOFFLN UUNDRAW Y
B5GOSUB DELETE LN UUNDRAW YIF
LPRINT LN NOSTALGIC DPOKE FOR ?U
UNDRAW 5  /?LN -DPOKE RETURN  
LN )TRACE LET RETURN AABS CONT
ERR MSGS RETURN 0 AND CONT
ERR MSGS CHR$ 0ö DEF PROC ù/ TO
FAST E-RND)õ ;6-RNDLPRINT TAN
LN -DPOKE LN SCHAR RETURN ñC1
PRINT FAST 5*EDIT LN SUNDRAW
LPRINT LET RETURN  TAB EXIT Y
FOR LN BDPOKE LN SUNDRAW Y5LN U
UNDRAW LN -DPOKE 5VPROTECT ?S
UNDRAW GOSUB UNDRAW ñEND PROC
VAL FAST LN òEDIT 6ñEND PROC
FAST LN PAUSE PROTECT RETURN
10249 KPRINT LN $EDIT /LIST SGN
GOSUB DELETE FAST AT LPRINT LN ³
TRACE AT GOSUB CALL ñEND PROC
FAST LN òEDIT ñ3 LN ?DEF PROC
LPRINT TAN FAST LN LET DEF PROC
LPRINT RETURN ?""J?FY
48672 £RNDñSAVE òùYL?TAN ?7Y
48672 /PAUSE LN òEDIT FAST FAST
LN PAUSE PROTECT RETURN
10257 C!RETURN 0SLET RETURN AK
GOSUB LN $EDIT /CONT 5  SGN ,
RETURN -C(RETURN LC?CHR$ 0DFAST
DDAT ùö DEF PROC ù</CONT SGN ,
RETURN -PRINT LN NEW PROTECT
LET ""??UNDRAW Y.PRINT LN I
UNDRAW LN SQR UNDRAW 5UNDRAW
DPOKE LN XUNDRAW YYLN BDPOKE
LET LN BDPOKE YM5KRNDLN UUNDRAW
5,RND?SUNDRAW Y4/**?PCOS ?NCOS R
TAN ?PCòRTAN ?NCOS RTAN E-RND7(C
PLOT RETURN INKEY$ASN ERR MSGS
AUTO RETURN CHR$ ASN ERR MSGS
AUTO RETURN "ASN ERR MSGS AUTO 7
LN IUNDRAW RETURN OR 4ú5?EDIT
LN SUNDRAW YABS /CHAR RETURN
AND 4õ5·EDIT /LIST PRINT YB5
GOSUB DELETE LN UUNDRAW LET
RETURN =4ôYTAB /GRETURN <>4ôY
ASN /8RETURN >C+RETURN <4÷YASN
LN 5AUTO /<RETURN >=4ú5CóLN X
UNDRAW YPAUSE RETURN <=TAB
CONT ERR MSGS YIF LN 5AUTO LN -
DPOKE RETURN AND ASN ,EDIT TAN
LN BDPOKE EúRND7LN BREAK DPOKE
FOR LN NOSTALGIC DPOKE FOR ?X
UNDRAW LN XAUTO 6õEND PROC 6÷
END PROC TAN EõEND PROC QCOPY 7
TAN 5NOSTALGIC TRACE LN SUNDRAW
LN 3 LN -DPOKE PRINT 5NAUTO LN S
UNDRAW LN 3 5XAUTO LN SUNDRAW 52
AUTO LN SUNDRAW LET RETURN =4ôY
TAB /ARETURN <>4ôYASN /2RETURN >
4÷YASN LN 5AUTO /!RETURN <C<
RETURN >=4ôY AND RETURN <=TAB
CONT ERR MSGS 5CóLN XUNDRAW Y
ABS ?+AUTO E÷END PROC GOSUB
UNDRAW ñEND PROC úWOY""RETURN  
COS 7ó/POKE 5RAUTO ?SUNDRAW LN
SCROLL ò5VRNDACS QTAN 5LEN AUTO
?SUNDRAW 5VRNDACS PLOT ?÷ò5ò LN
**ù""FAST LN 2DEF PROC SGN ?
DATA ú5ò LN **ù""LN 2DEF PROC
COS LN 2DEF PROC COS LOOP DATA E
£RND/SCROLL óóóVAL óóóóVAL LN
EXP AUTO 5ó LN **ùAT LN 2ù7Y
28963 7AT ?7?7QREM 7?7?7TAN 77
AUTO 7ERROR ù7U£RND1""U$RND0TAN
LN -DPOKE LN SCHAR Y5LN UUNDRAW
YGOSUB LN BDPOKE YOFF5ñEND PROC
LN UUNDRAW 5OFFDPOKE LN SUNDRAW
LN HTRACE 5UNTIL DEF PROC ?S
UNDRAW 7D7FAST FAST AT
END PROC LN COS :AT LN DUP
DEF PROC GOSUB DO ñEND PROC TAN
EñEND PROC DATA LOOP <Q /óEñ
END PROC ?LCOS GOSUB KTAN FAST
LN ERR MSGS UNDRAW 5GOSUB
UNDRAW LN XUNDRAW LPRINT LN X
UNDRAW 5Dù?XUNDRAW LN DPOKE 5
NOSTALGIC DPOKE LN SUNDRAW 5FOR
SGN ?XUNDRAW EôRND9QCOPY FQCOPY
FQ 6ùEND PROC Y5E?RNDLN UUNDRAW
I:UõEND PROC LINE LN XUNDRAW 5
ATN DEF PROC ?SUNDRAW £JM5RNDöô?
7(UNPLOT $4RUN 54 6?RNDE0RNDñ
HOME  ù6ñEND PROC 6õEND PROC
TAN RND?:RND?)RND?1RND?4RND
FOR ?7RND POP    POP
 125 
   2 REM 5?RNDFAST 6?RND77AUTO 7
ERROR ù777AUTO 7ERROR ù777AUTO 7
ERROR ù7SGN BGOSUB DELETE 6?RND
FOR RND?7?7FOR E?RNDGOSUB
UNDRAW ?RNDGOSUB KJTAN LN
SCROLL ò5VRNDACS QI?FAST RND
AUTO 7ERROR LPRINT FAST VAL LN 7
ùEôRND77AT SGN GOSUB KJTAN ?RND 
 ?     5²RNDJ) ¶7FOR BGOSUB
DELETE FOR ABS ?END PROC ö 
DEF PROC TAN     
   3 REM       MCODER II        
 COPYRIGHT 1983   D C THRELFALL 
COMPILER AT 17300 PROG AT 20500
  10 REM BY:STEVEN L. REID <SLR>
          (DESIGNED)1983        
        <<<<THE BALL>>>>
  20 PRINT "THE BALL<BY:STEVEN R
EID(C)1983>"
  30 PRINT "                    
            "
  40 FOR A=2 TO 20
  50 PRINT " ";TAB 10;"    !!!!¸
¸¸¸!!¸¸  ";TAB 31;" "
  60 NEXT A
  70 PRINT "                    
            ";
  80 LET B=0
  90 LET H=-1
 100 LET V=1
 110 LET X=20
 120 LET Y=1
 130 LET C=X
 140 LET U=Y
 150 LET A$=" "
 160 LET B$=" "
 170 LET J=1
 180 IF X<>C THEN PRINT AT C,U;B
$
 190 IF Y<>U THEN PRINT AT C,U;B
$
 200 PRINT AT X,Y;A$
 210 REM **CHECK COLOR**
 220 IF B=1 THEN GOSUB 1000
 230 IF B=0 THEN GOSUB 2000
 240 REM **MOVEMENT**
 250 LET C=X
 260 LET U=Y
 270 LET X=X+H
 280 LET Y=Y+V
 290 IF X=2 THEN LET H=-H
 300 IF X=20 THEN LET H=-H
 310 IF Y=1 THEN LET V=-V
 320 IF Y=30 THEN LET V=-V
 330 IF J=30 THEN LET B=1
 340 IF B=1 THEN GOTO 370
 350 LET J=J+1
 360 GOTO 400
 370 LET J=J-1
 380 IF J=1 THEN LET B=0
 390 REM **GOTO START**
 400 IF INKEY$="Q" THEN GOTO 350
0
 410 GOSUB 3000
 420 GOTO 180
1000 REM **CHECK COLOR - 1**
1010 IF J=28 THEN LET A$=" "
1020 IF J=27 THEN LET B$=" "
1030 IF J=26 THEN LET A$="!"
1040 IF J=25 THEN LET B$="¸"
1050 IF J=24 THEN LET A$="¸"
1060 IF J=23 THEN LET B$="!"
1070 IF J=22 THEN LET A$="!"
1080 IF J=21 THEN LET B$="¸"
1090 IF J=18 THEN LET A$="¸"
1100 IF J=17 THEN LET B$="!"
1110 IF J=14 THEN LET A$=" "
1120 IF J=13 THEN LET B$=" "
1130 IF J=10 THEN LET A$=" "
1140 IF J=9 THEN LET B$=" "
1150 RETURN
2000 REM **CHECK COLOR - 0**
2010 IF J=9 THEN LET A$=" "
2020 IF J=10 THEN LET B$=" "
2030 IF J=13 THEN LET A$="¸"
2040 IF J=14 THEN LET B$="!"
2050 IF J=17 THEN LET A$="!"
2060 IF J=18 THEN LET B$="¸"
2070 IF J=21 THEN LET A$="¸"
2080 IF J=22 THEN LET B$="!"
2090 IF J=23 THEN LET A$="!"
2100 IF J=24 THEN LET B$="¸"
2110 IF J=25 THEN LET A$=" "
2120 IF J=26 THEN LET B$=" "
2130 IF J=27 THEN LET A$=" "
2140 IF J=28 THEN LET B$=" "
2150 RETURN
3000 REM **START MCODER?**
3010 IF S=0 THEN RETURN
3020 LET S=S-1
3030 IF S>0 THEN RETURN
3040 PRINT AT 2,1;"WAIT...";AT 3
,3;"THIS CAN BE";AT 4,5;"MUCH FA
STER*";
3050 FOR W=1 TO 100
3060 NEXT W
3500 CLS
3510 LET L=USR 20500
3520 CLS
3530 GOTO 10
3990 STOP
4000 SAVE "BALLMC"
4010 LET S=65
4020 GOTO 10
4030 REM * THE   BALL   REDUX * 
         * SLR 1983/2012/2014 *