Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape26a_acorn_eu_1991_august.wav » TTX/Ed

TTX/Ed

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape26a_acorn_eu_1991_august.wav
Filename: TTX/Ed
Read OK:
File size: 18BB bytes
Load address: FFFF1A00
Exec address: FFFF8023
Duplicates

There is 1 duplicate copy of this file in the archive:

File contents
   10REM Teletext screen designer v.1
   20REM By Barry T. Lapthorn
   30REM (c) The Micro User
   40:
   50MODE7
   60PRINT''"Please wait ...";:Z%=&20202020:FORloop%=0TO&400:loop%!&7000=Z%:NEXT:CLS
   70ON ERROR GOTO 2160
   80PROCcursor(0)
   90PROCinit
  100REPEAT
  110PROCmenu
  120UNTIL0
  130END
  140 :
  150DEFPROCinit
  160CX=1:CY=0
  170DIM ch%(2,3)
  180readchar%=&900
  190FORi%=0TO2STEP2:P%=readchar%:[OPTi%:LDA#31:JSR&FFEE:LDA&71:JSR&FFEE:LDA&72:JSR&FFEE:LDA#135:JSR&FFF4:STX&76:RTS:]:NEXT
  200RESTORE:FORout=1TO3:FORin=1TO2:READch%(in,out):NEXT in:NEXT out
  210ENDPROC
  220:
  230DEFPROCplot(X,Y,plt%):X=INTX:Y=INTY
  240REM plt%=1 'PLOT 69,X,Y'
  250REM plt%=2  'unplot point'
  260REM plt%=3  'invert point'
  270IF (X>79 OR X<2 OR Y>72 OR Y<2) THEN ENDPROC
  280ax%=X DIV 2:BX=(X MOD 2)+1:Y=72-Y:ay%=Y DIV 3:BY=(Y MOD3)+1
  290chr%=FNreadchar(ax%,ay%,0)
  300np=FNnp(BX,BY,chr%)
  310IF np AND plt%=1 THEN chr%=chr%+ch%(BX,BY)
  320IF (NOT np) AND plt%=2 THEN chr%=chr%-ch%(BX,BY)
  330IF np AND plt%=3 THEN chr%=chr%+ch%(BX,BY)
  340IF (NOT np) AND plt%=3 THEN chr%=chr%-ch%(BX,BY)
  350PRINTTAB(ax%,ay%);CHR$chr%;TAB(CX,CY);
  360ENDPROC
  370:
  380DATA 1,2,4,8,16,64
  390:
  400DEFFNreadchar(XX,YY,out%):?&71=XX:?&72=YY:CALL readchar%:IF out%=0 AND ?&76<160 THEN =160 ELSE =?&76
  410:
  420DEFFNnp(BX,BY,chr%):=((chr%-160) OR (ch%(BX,BY)))<>(chr%-160) AND chr%>159
  430:
  440DEFFNin(c%,prot%):PRINT"=";:w$="":REPEATREPEAT:a%=GET:UNTIL((a%>31 AND a%<128) OR a%=13):IF a%=13 OR a%=127 ELSE IF LENw$=c% ELSE w$=w$+CHR$a%:VDUa%
  450IF a%=127 IF w$>"" w$=LEFT$(w$,LENw$-1):VDU127
  460UNTILa%=13:IF prot% THEN PRINT:=w$ ELSE =w$
  470:
  480DEFFNgetkey(val$):REPEAT:K$=GET$:IF ASCK$>32 AND ASCK$<42 THEN K$=CHR$(ASCK$+16) ELSE IF ASCK$>96 AND ASCK$<123 THEN K$=CHR$(ASCK$-32)
  490UNTILINSTR(val$,K$)>0:=K$
  500:
  510DEFPROCcursor(C%):VDU23,1,ABSC%;0;0;0;:ENDPROC
  520:
  530DEFPROCcentre(t$,b%,f%):s%=18-LENt$/2:PRINTSPC(s%);CHR$b%;CHR$157;CHR$f%;t$;"  ";CHR$156:ENDPROC
  540:
  550DEFPROCgraph
  560PRINTTAB(0,24);
  570PROCcursor(1):PRINT"Y";:fn$=FNin(30,0):PROCcursor(0):PROCblank
  580IF fn$="" THEN ENDPROC
  590FORX=37TO-37STEP-0.1
  600XX=X
  610YY=EVALfn$
  620PROCplot(X+37,YY+33,1)
  630X=XX
  640NEXT
  650ENDPROC
  660:
  670DEFPROCcircle(cx,cy,rx,ry,step)
  680FORloop=0TO(PI/2) STEP step
  690XX=rx*SINloop
  700YY=ry*COSloop
  710PROCplot(cx-XX,cy-YY,1)
  720PROCplot(cx+XX,cy-YY,1)
  730PROCplot(cx-XX,cy+YY,1)
  740PROCplot(cx+XX,cy+YY,1)
  750NEXT
  760ENDPROC
  770:
  780DEFPROCmenu
  790VDU26,12:PRINT'
  800PROCcentre("Mode7 Screen Editor",129,131)
  810PROCcentre("By B.T.Lapthorn",135,132)
  820spc%=12:PRINT'
  830PRINT'SPC(spc%);"1. Load screen"
  840PRINT'SPC(spc%);"2. Save screen"
  850PRINT'SPC(spc%);"3. Instructions"
  860PROCcursor(1)
  870PRINT''';"  Escape toggles between screen & menu"
  880PRINT';"  Press Shift and Escape to exit."
  890PRINT'SPC(spc%);"Please choose >>";:choice$=FNgetkey("123")
  900IF choice$="1" THEN PROCload
  910IF choice$="2" THEN PROCsave
  920IF choice$="3" THEN PROCinstr
  930ENDPROC
  940:
  950DEFPROCdoactions
  960CX=1:CY=0:PRINTTAB(CX,CY);
  970PROCcursor(0)
  980oldx=40:oldy=35
  990sx%=oldx:sy%=oldy
 1000*FX4,2
 1010REPEAT
 1020actx%=oldx DIV 2:acty%=(72-oldy)DIV 3
 1030char%=FNreadchar(actx%,acty%,1):altered%=0
 1040PROCplot(oldx,oldy,3):on%=1
 1050PROCplot(oldx,oldy,3):on%=0
 1060IF INKEY(-1) THEN inc%=4 ELSE inc%=1
 1070IF INKEY(-26) AND oldx>(1+inc%) THEN oldx=oldx-inc%
 1080IF INKEY(-122) AND oldx<(80-inc%) THEN oldx=oldx+inc%
 1090IF INKEY(-58) AND oldy<(72-inc%) THEN oldy=oldy+inc%
 1100IF INKEY(-42) AND oldy>(1+inc%) THEN oldy=oldy-inc%
 1110IF INKEY(-54) THEN PROCplot(oldx,oldy,2):sx%=oldx:sy%=oldy:altered%=1
 1120IF INKEY(-99) THEN PROCplot(oldx,oldy,1):sx%=oldx:sy%=oldy:altered%=1
 1130IF INKEY(-83) THEN PROCcheckcircle(oldx,sx%,oldy,sy%)
 1140IF INKEY(-87) THEN PROCline(oldx,oldy,sx%,sy%):altered%=1
 1150IF INKEY(-52) THEN PROCrect(oldx,oldy,sx%,sy%):altered%=1
 1160IF INKEY(-82) THEN CLS
 1170IF INKEY(-74) THEN sx%=oldx:sy%=oldy
 1180IF INKEY(-71) THEN PROCcolour
 1190IF INKEY(-35) THEN PROCedge
 1200IF INKEY(-36) THEN PROCtext:char%=FNreadchar(actx%,acty%,1)
 1210IF INKEY(-84) THEN PROCgraph
 1220IF INKEY(-38) THEN PROCgcode:char%=FNreadchar(actx%,acty%,1)
 1230IF altered%=0 THEN PRINTTAB(actx%,acty%);CHR$char%;
 1240UNTIL0
 1250ENDPROC
 1260:
 1270DEFPROCcheckcircle(oldx,sx%,oldy,sy%)
 1280IF oldx-sx%=0 AND oldy-sy%=0 THEN ENDPROC
 1290radius=SQR((oldx-sx%)^2+(oldy-sy%)^2)
 1300PROCcircle(sx%,sy%,radius,radius,1/radius)
 1310altered%=1
 1320ENDPROC
 1330:
 1340DEFPROCline(stx%,sty%,endx%,endy%)
 1350IF endx%<stx% THEN tempx%=endx%:endx%=stx%:stx%=tempx%:tempy%=endy%:endy%=sty%:sty%=tempy%
 1360IF endx%=stx% THEN PROCxline(stx%,sty%,endy%):ENDPROC
 1370grad=(endy%-sty%)/(endx%-stx%)
 1380IF ABSgrad>1 THEN step=1/ABSgrad ELSE step=1
 1390FORloop=stx% TO endx% STEP step
 1400newy=grad* (loop-stx%)
 1410PROCplot(loop,newy+sty%,1)
 1420NEXT loop
 1430ENDPROC
 1440:
 1450DEFPROCxline(sx%,sy%,ey%)
 1460IF sy%>ey% THEN st=-1 ELSE st=1
 1470FORloop=sy%TOey% STEP st
 1480PROCplot(sx%,loop,1)
 1490NEXT
 1500ENDPROC
 1510:
 1520DEFPROCrect(bx,by,tx,ty)
 1530PROCline(bx,by,bx,ty)
 1540PROCline(tx,ty,bx,ty)
 1550PROCline(tx,by,tx,ty)
 1560PROCline(tx,by,bx,by)
 1570ENDPROC
 1580:
 1590DEFPROCedge
 1600PRINTTAB(0,24);"Which edge colour (1-7) >>";:PROCcursor(1):col%=VALFNgetkey("1234567"+CHR$13):IF col%=0 THEN PROCblank:PROCcursor(0):ENDPROC
 1610PROCblank:FORloop%=0TO23:PRINTTAB(0,loop%);CHR$(144+col%);:NEXT:PROCcursor(0):PROCblank
 1620ENDPROC
 1630:
 1640DEFPROCcolour
 1650PRINTTAB(0,24);"Which colour (1-7) >>";:PROCcursor(1):col%=VALFNgetkey("1234567"+CHR$13):IF col%=0 THEN PROCblank:PROCcursor(0):ENDPROC
 1660PRINT;col%;:wait=INKEY(50)
 1670PROCblank
 1680ax%=oldx DIV 2:ay%=(72-oldy)DIV 3
 1690IF ax%<1 THEN ENDPROC
 1700PRINTTAB(ax%-1,ay%);CHR$(144+col%);
 1710PROCcursor(0)
 1720ENDPROC
 1730:
 1740DEFPROCblank
 1750PRINTTAB(0,24);STRING$(38," ");
 1760ENDPROC
 1770:
 1780DEFPROCtext
 1790PRINTTAB(0,24);"Text ";:PROCcursor(1):text$=FNin(20,0):wait=INKEY(50)
 1800PROCblank
 1810IF text$="" THEN PROCcursor(0):ENDPROC
 1820ax%=oldx DIV 2:ay%=(72-oldy)DIV 3
 1830PRINTTAB(ax%,ay%);LEFT$(text$,(39-ax%));
 1840PROCcursor(0)
 1850ENDPROC
 1860:
 1870DEFPROCgcode
 1880PRINTTAB(0,24);"Enter graphics code";:PROCcursor(1):code%=VALFNin(3,0):IF code%<129 OR code%>159 THEN PROCcursor(0):PROCblank:ENDPROC
 1890wait%=INKEY(50):PROCcursor(0):PROCblank
 1900PRINTTAB(actx%,acty%);CHR$code%;
 1910ENDPROC
 1920:
 1930DEFPROCload
 1940CLS:PROCcursor(1):PRINT''"Title of file to load ";:load$=FNin(15,1):PROCcursor(0)
 1950IF load$="" THEN ENDPROC
 1960PROCoscli("LOAD "+load$+" 7000")
 1970ENDPROC
 1980:
 1990DEFPROCsave
 2000CLS:PROCcursor(1):PRINT''"Title of file to save ";:save$=FNin(15,1):PROCcursor(0)
 2010IF save$="" THEN ENDPROC
 2020PROCoscli("SAVE "+save$+" 7000 7400 8000 7C00")
 2030ENDPROC
 2040:
 2050DEFPROCswap(swap%)
 2060*FX14,6
 2070PROCcursor(1)
 2080FOR loop%=0TO&400 STEP4
 2090IF swap% THEN oldmem%=&7000:newmem%=&7C00 ELSE oldmem%=&7C00:newmem%=&7000
 2100newmem%!loop%=oldmem%!loop%
 2110NEXT
 2120PROCcursor(0)
 2130*FX13,6
 2140ENDPROC
 2150:
 2160IF INKEY(-1) OR ERR<>17 PROCoscli("FX4,0"):REPORT:PRINT" at line ";ERL:END
 2170swap=NOT swap
 2180IF swap THEN CLS:PROCswap(1):PROCdoactions
 2190IF NOT swap THEN PROCgotomenu
 2200END
 2210:
 2220DEFPROCinstr:CLS:PROCcentre("Instructions",135,130)
 2230PRINT''"Use cursor keys to move about"'"the screen"
 2240PRINT"<SPACE> .. plots a point"
 2250PRINT"<C>     .. plots a circle"
 2260PRINT"<R>     .. plots a rectangle"
 2270PRINT"<L>     .. draws a line"
 2280PRINT"<K>     .. changes a colour"
 2290PRINT"<T>     .. to print text"
 2300PRINT"<G>     .. to plot a graph"
 2310PRINT"<I>     .. insert a graphics code"
 2320PRINT"<E>     .. colours edge of screen"
 2330PRINT"<S>     .. screen clear"
 2340PRINT"<RETURN> . marks point for circles etc."
 2350PRINT"<SHIFT> .. with cursor keys moves faster"
 2360PRINT'"Press <SPACE> to continue ...";:a$=FNgetkey(" ")
 2370ENDPROC
 2380:
 2390DEFPROCoscli($&700)
 2400LOCALX%,Y%:X%=0:Y%=7:CALL&FFF7
 2410ENDPROC
 2420:
 2430DEFPROCgotomenu
 2440PRINTTAB(actx%,acty%);CHR$char%;
 2450PROCswap(0):CLS:REPEAT:PROCmenu:UNTIL0
 2460ENDPROC

"� Teletext screen designer v.1
� By Barry T. Lapthorn
� (c) The Micro User
(:
2�7
<G�''"Please wait ...";:Z%=&20202020:�loop%=0�&400:loop%!&7000=Z%:�:�
F� � � �DpH
P�cursor(0)
Z	�init
d�
n	�menu
x�0
��
� :
�
��init
�
CX=1:CY=0
�� ch%(2,3)
�readchar%=&900
�q�i%=0�2�2:P%=readchar%:[OPTi%:LDA#31:JSR&FFEE:LDA&71:JSR&FFEE:LDA&72:JSR&FFEE:LDA#135:JSR&FFF4:STX&76:RTS:]:�
�.�:�out=1�3:�in=1�2:�ch%(in,out):� in:� out
��
�:
���plot(X,Y,plt%):X=�X:Y=�Y
�� plt%=1 '� 69,X,Y'
�� plt%=2  'unplot point'
� plt%=3  'invert point'
#� (X>79 � X<2 � Y>72 � Y<2) � �
7ax%=X � 2:BX=(X � 2)+1:Y=72-Y:ay%=Y � 3:BY=(Y �3)+1
"chr%=�readchar(ax%,ay%,0)
,np=�np(BX,BY,chr%)
6(� np � plt%=1 � chr%=chr%+ch%(BX,BY)
@,� (� np) � plt%=2 � chr%=chr%-ch%(BX,BY)
J(� np � plt%=3 � chr%=chr%+ch%(BX,BY)
T,� (� np) � plt%=3 � chr%=chr%-ch%(BX,BY)
^�ax%,ay%);�chr%;�CX,CY);
h�
r:
|� 1,2,4,8,16,64
�:
�Yݤreadchar(XX,YY,out%):?&71=XX:?&72=YY:� readchar%:� out%=0 � ?&76<160 � =160 � =?&76
�:
�Hݤnp(BX,BY,chr%):=((chr%-160) � (ch%(BX,BY)))<>(chr%-160) � chr%>159
�:
�nݤin(c%,prot%):�"=";:w$="":��:a%=�:�((a%>31 � a%<128) � a%=13):� a%=13 � a%=127 � � �w$=c% � w$=w$+�a%:�a%
�'� a%=127 � w$>"" w$=�w$,�w$-1):�127
� �a%=13:� prot% � �:=w$ � =w$
�:
�^ݤgetkey(val$):�:K$=�:� �K$>32 � �K$<42 � K$=�(�K$+16) � � �K$>96 � �K$<123 � K$=�(�K$-32)
���val$,K$)>0:=K$
�:
�#��cursor(C%):�23,1,�C%;0;0;0;:�
:
E��centre(t$,b%,f%):s%=18-�t$/2:�(s%);�b%;�157;�f%;t$;"  ";�156:�
:
&��graph
0�0,24);
:4�cursor(1):�"Y";:fn$=�in(30,0):�cursor(0):�blank
D� fn$="" � �
N�X=37�-37�-0.1
XXX=X
bYY=�fn$
l�plot(X+37,YY+33,1)
vX=XX
��
��
�:
���circle(cx,cy,rx,ry,step)
��loop=0�(�/2) � step
�XX=rx*�loop
�YY=ry*�loop
��plot(cx-XX,cy-YY,1)
��plot(cx+XX,cy-YY,1)
��plot(cx-XX,cy+YY,1)
��plot(cx+XX,cy+YY,1)
��
��
:

��menu

�26,12:�'
 *�centre("Mode7 Screen Editor",129,131)
*&�centre("By B.T.Lapthorn",135,132)
4spc%=12:�'
>�'�(spc%);"1. Load screen"
H�'�(spc%);"2. Save screen"
R�'�(spc%);"3. Instructions"
\�cursor(1)
f1�''';"  Escape toggles between screen & menu"
p*�';"  Press Shift and Escape to exit."
z8�'�(spc%);"Please choose >>";:choice$=�getkey("123")
�� choice$="1" � �load
�� choice$="2" � �save
�� choice$="3" � �instr
��
�:
���doactions
�CX=1:CY=0:�CX,CY);
��cursor(0)
�oldx=40:oldy=35
�sx%=oldx:sy%=oldy
�
*FX4,2
��
�%actx%=oldx � 2:acty%=(72-oldy)� 3
-char%=�readchar(actx%,acty%,1):altered%=0
�plot(oldx,oldy,3):on%=1
�plot(oldx,oldy,3):on%=0
$� �(-1) � inc%=4 � inc%=1
.-� �(-26) � oldx>(1+inc%) � oldx=oldx-inc%
8/� �(-122) � oldx<(80-inc%) � oldx=oldx+inc%
B.� �(-58) � oldy<(72-inc%) � oldy=oldy+inc%
L-� �(-42) � oldy>(1+inc%) � oldy=oldy-inc%
V>� �(-54) � �plot(oldx,oldy,2):sx%=oldx:sy%=oldy:altered%=1
`>� �(-99) � �plot(oldx,oldy,1):sx%=oldx:sy%=oldy:altered%=1
j.� �(-83) � �checkcircle(oldx,sx%,oldy,sy%)
t2� �(-87) � �line(oldx,oldy,sx%,sy%):altered%=1
~2� �(-52) � �rect(oldx,oldy,sx%,sy%):altered%=1
�� �(-82) � �
� � �(-74) � sx%=oldx:sy%=oldy
�� �(-71) � �colour
�� �(-35) � �edge
�3� �(-36) � �text:char%=�readchar(actx%,acty%,1)
�� �(-84) � �graph
�4� �(-38) � �gcode:char%=�readchar(actx%,acty%,1)
�)� altered%=0 � �actx%,acty%);�char%;
��0
��
�:
�$��checkcircle(oldx,sx%,oldy,sy%)
!� oldx-sx%=0 � oldy-sy%=0 � �

'radius=�((oldx-sx%)^2+(oldy-sy%)^2)
+�circle(sx%,sy%,radius,radius,1/radius)
altered%=1
(�
2:
<!��line(stx%,sty%,endx%,endy%)
FZ� endx%<stx% � tempx%=endx%:endx%=stx%:stx%=tempx%:tempy%=endy%:endy%=sty%:sty%=tempy%
P,� endx%=stx% � �xline(stx%,sty%,endy%):�
Z"grad=(endy%-sty%)/(endx%-stx%)
d%� �grad>1 � step=1/�grad � step=1
n�loop=stx% � endx% � step
xnewy=grad* (loop-stx%)
��plot(loop,newy+sty%,1)
�
� loop
��
�:
���xline(sx%,sy%,ey%)
�� sy%>ey% � st=-1 � st=1
��loop=sy%�ey% � st
��plot(sx%,loop,1)
��
��
�:
���rect(bx,by,tx,ty)
��line(bx,by,bx,ty)
�line(tx,ty,bx,ty)
�line(tx,by,tx,ty)
�line(tx,by,bx,by)
"�
,:
6
��edge
@p�0,24);"Which edge colour (1-7) >>";:�cursor(1):col%=��getkey("1234567"+�13):� col%=0 � �blank:�cursor(0):�
JB�blank:�loop%=0�23:�0,loop%);�(144+col%);:�:�cursor(0):�blank
T�
^:
h��colour
rk�0,24);"Which colour (1-7) >>";:�cursor(1):col%=��getkey("1234567"+�13):� col%=0 � �blank:�cursor(0):�
|�;col%;:wait=�(50)
�
�blank
�!ax%=oldx � 2:ay%=(72-oldy)� 3
�� ax%<1 � �
��ax%-1,ay%);�(144+col%);
��cursor(0)
��
�:
���blank
��0,24);�38," ");
��
�:
�
��text
�:�0,24);"Text ";:�cursor(1):text$=�in(20,0):wait=�(50)

�blank
� text$="" � �cursor(0):�
!ax%=oldx � 2:ay%=(72-oldy)� 3
& �ax%,ay%);�text$,(39-ax%));
0�cursor(0)
:�
D:
N��gcode
Xk�0,24);"Enter graphics code";:�cursor(1):code%=��in(3,0):� code%<129 � code%>159 � �cursor(0):�blank:�
b!wait%=�(50):�cursor(0):�blank
l�actx%,acty%);�code%;
v�
�:
�
��load
�H�:�cursor(1):�''"Title of file to load ";:load$=�in(15,1):�cursor(0)
�� load$="" � �
�!�oscli("LOAD "+load$+" 7000")
��
�:
�
��save
�H�:�cursor(1):�''"Title of file to save ";:save$=�in(15,1):�cursor(0)
�� save$="" � �
�0�oscli("SAVE "+save$+" 7000 7400 8000 7C00")
��
�:
��swap(swap%)
*FX14,6
�cursor(1)
 � loop%=0�&400 �4
*G� swap% � oldmem%=&7000:newmem%=&7C00 � oldmem%=&7C00:newmem%=&7000
4newmem%!loop%=oldmem%!loop%
>�
H�cursor(0)
R*FX13,6
\�
f:
p6� �(-1) � �<>17 �oscli("FX4,0"):�:�" at line ";�:�
zswap=� swap
�"� swap � �:�swap(1):�doactions
�� � swap � �gotomenu
��
�:
�-��instr:�:�centre("Instructions",135,130)
�3�''"Use cursor keys to move about"'"the screen"
��"<SPACE> .. plots a point"
� �"<C>     .. plots a circle"
�#�"<R>     .. plots a rectangle"
��"<L>     .. draws a line"
�"�"<K>     .. changes a colour"
��"<T>     .. to print text"
�!�"<G>     .. to plot a graph"
	(�"<I>     .. insert a graphics code"
	(�"<E>     .. colours edge of screen"
	�"<S>     .. screen clear"
	$.�"<RETURN> . marks point for circles etc."
	./�"<SHIFT> .. with cursor keys moves faster"
	86�'"Press <SPACE> to continue ...";:a$=�getkey(" ")
	B�
	L:
	V��oscli($&700)
	`�X%,Y%:X%=0:Y%=7:�&FFF7
	j�
	t:
	~��gotomenu
	��actx%,acty%);�char%;
	��swap(0):�:�:�menu:�0
	��
�
00000000  0d 00 0a 22 f4 20 54 65  6c 65 74 65 78 74 20 73  |...". Teletext s|
00000010  63 72 65 65 6e 20 64 65  73 69 67 6e 65 72 20 76  |creen designer v|
00000020  2e 31 0d 00 14 1a f4 20  42 79 20 42 61 72 72 79  |.1..... By Barry|
00000030  20 54 2e 20 4c 61 70 74  68 6f 72 6e 0d 00 1e 18  | T. Lapthorn....|
00000040  f4 20 28 63 29 20 54 68  65 20 4d 69 63 72 6f 20  |. (c) The Micro |
00000050  55 73 65 72 0d 00 28 05  3a 0d 00 32 06 eb 37 0d  |User..(.:..2..7.|
00000060  00 3c 47 f1 27 27 22 50  6c 65 61 73 65 20 77 61  |.<G.''"Please wa|
00000070  69 74 20 2e 2e 2e 22 3b  3a 5a 25 3d 26 32 30 32  |it ...";:Z%=&202|
00000080  30 32 30 32 30 3a e3 6c  6f 6f 70 25 3d 30 b8 26  |02020:.loop%=0.&|
00000090  34 30 30 3a 6c 6f 6f 70  25 21 26 37 30 30 30 3d  |400:loop%!&7000=|
000000a0  5a 25 3a ed 3a db 0d 00  46 0e ee 20 85 20 e5 20  |Z%:.:...F.. . . |
000000b0  8d 44 70 48 0d 00 50 0e  f2 63 75 72 73 6f 72 28  |.DpH..P..cursor(|
000000c0  30 29 0d 00 5a 09 f2 69  6e 69 74 0d 00 64 05 f5  |0)..Z..init..d..|
000000d0  0d 00 6e 09 f2 6d 65 6e  75 0d 00 78 06 fd 30 0d  |..n..menu..x..0.|
000000e0  00 82 05 e0 0d 00 8c 06  20 3a 0d 00 96 0a dd f2  |........ :......|
000000f0  69 6e 69 74 0d 00 a0 0d  43 58 3d 31 3a 43 59 3d  |init....CX=1:CY=|
00000100  30 0d 00 aa 0e de 20 63  68 25 28 32 2c 33 29 0d  |0..... ch%(2,3).|
00000110  00 b4 12 72 65 61 64 63  68 61 72 25 3d 26 39 30  |...readchar%=&90|
00000120  30 0d 00 be 71 e3 69 25  3d 30 b8 32 88 32 3a 50  |0...q.i%=0.2.2:P|
00000130  25 3d 72 65 61 64 63 68  61 72 25 3a 5b 4f 50 54  |%=readchar%:[OPT|
00000140  69 25 3a 4c 44 41 23 33  31 3a 4a 53 52 26 46 46  |i%:LDA#31:JSR&FF|
00000150  45 45 3a 4c 44 41 26 37  31 3a 4a 53 52 26 46 46  |EE:LDA&71:JSR&FF|
00000160  45 45 3a 4c 44 41 26 37  32 3a 4a 53 52 26 46 46  |EE:LDA&72:JSR&FF|
00000170  45 45 3a 4c 44 41 23 31  33 35 3a 4a 53 52 26 46  |EE:LDA#135:JSR&F|
00000180  46 46 34 3a 53 54 58 26  37 36 3a 52 54 53 3a 5d  |FF4:STX&76:RTS:]|
00000190  3a ed 0d 00 c8 2e f7 3a  e3 6f 75 74 3d 31 b8 33  |:......:.out=1.3|
000001a0  3a e3 69 6e 3d 31 b8 32  3a f3 63 68 25 28 69 6e  |:.in=1.2:.ch%(in|
000001b0  2c 6f 75 74 29 3a ed 20  69 6e 3a ed 20 6f 75 74  |,out):. in:. out|
000001c0  0d 00 d2 05 e1 0d 00 dc  05 3a 0d 00 e6 1e dd f2  |.........:......|
000001d0  70 6c 6f 74 28 58 2c 59  2c 70 6c 74 25 29 3a 58  |plot(X,Y,plt%):X|
000001e0  3d a8 58 3a 59 3d a8 59  0d 00 f0 17 f4 20 70 6c  |=.X:Y=.Y..... pl|
000001f0  74 25 3d 31 20 27 f0 20  36 39 2c 58 2c 59 27 0d  |t%=1 '. 69,X,Y'.|
00000200  00 fa 1c f4 20 70 6c 74  25 3d 32 20 20 27 75 6e  |.... plt%=2  'un|
00000210  70 6c 6f 74 20 70 6f 69  6e 74 27 0d 01 04 1c f4  |plot point'.....|
00000220  20 70 6c 74 25 3d 33 20  20 27 69 6e 76 65 72 74  | plt%=3  'invert|
00000230  20 70 6f 69 6e 74 27 0d  01 0e 23 e7 20 28 58 3e  | point'...#. (X>|
00000240  37 39 20 84 20 58 3c 32  20 84 20 59 3e 37 32 20  |79 . X<2 . Y>72 |
00000250  84 20 59 3c 32 29 20 8c  20 e1 0d 01 18 37 61 78  |. Y<2) . ....7ax|
00000260  25 3d 58 20 81 20 32 3a  42 58 3d 28 58 20 83 20  |%=X . 2:BX=(X . |
00000270  32 29 2b 31 3a 59 3d 37  32 2d 59 3a 61 79 25 3d  |2)+1:Y=72-Y:ay%=|
00000280  59 20 81 20 33 3a 42 59  3d 28 59 20 83 33 29 2b  |Y . 3:BY=(Y .3)+|
00000290  31 0d 01 22 1d 63 68 72  25 3d a4 72 65 61 64 63  |1..".chr%=.readc|
000002a0  68 61 72 28 61 78 25 2c  61 79 25 2c 30 29 0d 01  |har(ax%,ay%,0)..|
000002b0  2c 16 6e 70 3d a4 6e 70  28 42 58 2c 42 59 2c 63  |,.np=.np(BX,BY,c|
000002c0  68 72 25 29 0d 01 36 28  e7 20 6e 70 20 80 20 70  |hr%)..6(. np . p|
000002d0  6c 74 25 3d 31 20 8c 20  63 68 72 25 3d 63 68 72  |lt%=1 . chr%=chr|
000002e0  25 2b 63 68 25 28 42 58  2c 42 59 29 0d 01 40 2c  |%+ch%(BX,BY)..@,|
000002f0  e7 20 28 ac 20 6e 70 29  20 80 20 70 6c 74 25 3d  |. (. np) . plt%=|
00000300  32 20 8c 20 63 68 72 25  3d 63 68 72 25 2d 63 68  |2 . chr%=chr%-ch|
00000310  25 28 42 58 2c 42 59 29  0d 01 4a 28 e7 20 6e 70  |%(BX,BY)..J(. np|
00000320  20 80 20 70 6c 74 25 3d  33 20 8c 20 63 68 72 25  | . plt%=3 . chr%|
00000330  3d 63 68 72 25 2b 63 68  25 28 42 58 2c 42 59 29  |=chr%+ch%(BX,BY)|
00000340  0d 01 54 2c e7 20 28 ac  20 6e 70 29 20 80 20 70  |..T,. (. np) . p|
00000350  6c 74 25 3d 33 20 8c 20  63 68 72 25 3d 63 68 72  |lt%=3 . chr%=chr|
00000360  25 2d 63 68 25 28 42 58  2c 42 59 29 0d 01 5e 1d  |%-ch%(BX,BY)..^.|
00000370  f1 8a 61 78 25 2c 61 79  25 29 3b bd 63 68 72 25  |..ax%,ay%);.chr%|
00000380  3b 8a 43 58 2c 43 59 29  3b 0d 01 68 05 e1 0d 01  |;.CX,CY);..h....|
00000390  72 05 3a 0d 01 7c 13 dc  20 31 2c 32 2c 34 2c 38  |r.:..|.. 1,2,4,8|
000003a0  2c 31 36 2c 36 34 0d 01  86 05 3a 0d 01 90 59 dd  |,16,64....:...Y.|
000003b0  a4 72 65 61 64 63 68 61  72 28 58 58 2c 59 59 2c  |.readchar(XX,YY,|
000003c0  6f 75 74 25 29 3a 3f 26  37 31 3d 58 58 3a 3f 26  |out%):?&71=XX:?&|
000003d0  37 32 3d 59 59 3a d6 20  72 65 61 64 63 68 61 72  |72=YY:. readchar|
000003e0  25 3a e7 20 6f 75 74 25  3d 30 20 80 20 3f 26 37  |%:. out%=0 . ?&7|
000003f0  36 3c 31 36 30 20 8c 20  3d 31 36 30 20 8b 20 3d  |6<160 . =160 . =|
00000400  3f 26 37 36 0d 01 9a 05  3a 0d 01 a4 48 dd a4 6e  |?&76....:...H..n|
00000410  70 28 42 58 2c 42 59 2c  63 68 72 25 29 3a 3d 28  |p(BX,BY,chr%):=(|
00000420  28 63 68 72 25 2d 31 36  30 29 20 84 20 28 63 68  |(chr%-160) . (ch|
00000430  25 28 42 58 2c 42 59 29  29 29 3c 3e 28 63 68 72  |%(BX,BY)))<>(chr|
00000440  25 2d 31 36 30 29 20 80  20 63 68 72 25 3e 31 35  |%-160) . chr%>15|
00000450  39 0d 01 ae 05 3a 0d 01  b8 6e dd a4 69 6e 28 63  |9....:...n..in(c|
00000460  25 2c 70 72 6f 74 25 29  3a f1 22 3d 22 3b 3a 77  |%,prot%):."=";:w|
00000470  24 3d 22 22 3a f5 f5 3a  61 25 3d a5 3a fd 28 28  |$="":..:a%=.:.((|
00000480  61 25 3e 33 31 20 80 20  61 25 3c 31 32 38 29 20  |a%>31 . a%<128) |
00000490  84 20 61 25 3d 31 33 29  3a e7 20 61 25 3d 31 33  |. a%=13):. a%=13|
000004a0  20 84 20 61 25 3d 31 32  37 20 8b 20 e7 20 a9 77  | . a%=127 . . .w|
000004b0  24 3d 63 25 20 8b 20 77  24 3d 77 24 2b bd 61 25  |$=c% . w$=w$+.a%|
000004c0  3a ef 61 25 0d 01 c2 27  e7 20 61 25 3d 31 32 37  |:.a%...'. a%=127|
000004d0  20 e7 20 77 24 3e 22 22  20 77 24 3d c0 77 24 2c  | . w$>"" w$=.w$,|
000004e0  a9 77 24 2d 31 29 3a ef  31 32 37 0d 01 cc 20 fd  |.w$-1):.127... .|
000004f0  61 25 3d 31 33 3a e7 20  70 72 6f 74 25 20 8c 20  |a%=13:. prot% . |
00000500  f1 3a 3d 77 24 20 8b 20  3d 77 24 0d 01 d6 05 3a  |.:=w$ . =w$....:|
00000510  0d 01 e0 5e dd a4 67 65  74 6b 65 79 28 76 61 6c  |...^..getkey(val|
00000520  24 29 3a f5 3a 4b 24 3d  be 3a e7 20 97 4b 24 3e  |$):.:K$=.:. .K$>|
00000530  33 32 20 80 20 97 4b 24  3c 34 32 20 8c 20 4b 24  |32 . .K$<42 . K$|
00000540  3d bd 28 97 4b 24 2b 31  36 29 20 8b 20 e7 20 97  |=.(.K$+16) . . .|
00000550  4b 24 3e 39 36 20 80 20  97 4b 24 3c 31 32 33 20  |K$>96 . .K$<123 |
00000560  8c 20 4b 24 3d bd 28 97  4b 24 2d 33 32 29 0d 01  |. K$=.(.K$-32)..|
00000570  ea 14 fd a7 76 61 6c 24  2c 4b 24 29 3e 30 3a 3d  |....val$,K$)>0:=|
00000580  4b 24 0d 01 f4 05 3a 0d  01 fe 23 dd f2 63 75 72  |K$....:...#..cur|
00000590  73 6f 72 28 43 25 29 3a  ef 32 33 2c 31 2c 94 43  |sor(C%):.23,1,.C|
000005a0  25 3b 30 3b 30 3b 30 3b  3a e1 0d 02 08 05 3a 0d  |%;0;0;0;:.....:.|
000005b0  02 12 45 dd f2 63 65 6e  74 72 65 28 74 24 2c 62  |..E..centre(t$,b|
000005c0  25 2c 66 25 29 3a 73 25  3d 31 38 2d a9 74 24 2f  |%,f%):s%=18-.t$/|
000005d0  32 3a f1 89 28 73 25 29  3b bd 62 25 3b bd 31 35  |2:..(s%);.b%;.15|
000005e0  37 3b bd 66 25 3b 74 24  3b 22 20 20 22 3b bd 31  |7;.f%;t$;"  ";.1|
000005f0  35 36 3a e1 0d 02 1c 05  3a 0d 02 26 0b dd f2 67  |56:.....:..&...g|
00000600  72 61 70 68 0d 02 30 0c  f1 8a 30 2c 32 34 29 3b  |raph..0...0,24);|
00000610  0d 02 3a 34 f2 63 75 72  73 6f 72 28 31 29 3a f1  |..:4.cursor(1):.|
00000620  22 59 22 3b 3a 66 6e 24  3d a4 69 6e 28 33 30 2c  |"Y";:fn$=.in(30,|
00000630  30 29 3a f2 63 75 72 73  6f 72 28 30 29 3a f2 62  |0):.cursor(0):.b|
00000640  6c 61 6e 6b 0d 02 44 10  e7 20 66 6e 24 3d 22 22  |lank..D.. fn$=""|
00000650  20 8c 20 e1 0d 02 4e 12  e3 58 3d 33 37 b8 2d 33  | . ...N..X=37.-3|
00000660  37 88 2d 30 2e 31 0d 02  58 08 58 58 3d 58 0d 02  |7.-0.1..X.XX=X..|
00000670  62 0b 59 59 3d a0 66 6e  24 0d 02 6c 17 f2 70 6c  |b.YY=.fn$..l..pl|
00000680  6f 74 28 58 2b 33 37 2c  59 59 2b 33 33 2c 31 29  |ot(X+37,YY+33,1)|
00000690  0d 02 76 08 58 3d 58 58  0d 02 80 05 ed 0d 02 8a  |..v.X=XX........|
000006a0  05 e1 0d 02 94 05 3a 0d  02 9e 1e dd f2 63 69 72  |......:......cir|
000006b0  63 6c 65 28 63 78 2c 63  79 2c 72 78 2c 72 79 2c  |cle(cx,cy,rx,ry,|
000006c0  73 74 65 70 29 0d 02 a8  18 e3 6c 6f 6f 70 3d 30  |step).....loop=0|
000006d0  b8 28 af 2f 32 29 20 88  20 73 74 65 70 0d 02 b2  |.(./2) . step...|
000006e0  0f 58 58 3d 72 78 2a b5  6c 6f 6f 70 0d 02 bc 0f  |.XX=rx*.loop....|
000006f0  59 59 3d 72 79 2a 9b 6c  6f 6f 70 0d 02 c6 18 f2  |YY=ry*.loop.....|
00000700  70 6c 6f 74 28 63 78 2d  58 58 2c 63 79 2d 59 59  |plot(cx-XX,cy-YY|
00000710  2c 31 29 0d 02 d0 18 f2  70 6c 6f 74 28 63 78 2b  |,1).....plot(cx+|
00000720  58 58 2c 63 79 2d 59 59  2c 31 29 0d 02 da 18 f2  |XX,cy-YY,1).....|
00000730  70 6c 6f 74 28 63 78 2d  58 58 2c 63 79 2b 59 59  |plot(cx-XX,cy+YY|
00000740  2c 31 29 0d 02 e4 18 f2  70 6c 6f 74 28 63 78 2b  |,1).....plot(cx+|
00000750  58 58 2c 63 79 2b 59 59  2c 31 29 0d 02 ee 05 ed  |XX,cy+YY,1).....|
00000760  0d 02 f8 05 e1 0d 03 02  05 3a 0d 03 0c 0a dd f2  |.........:......|
00000770  6d 65 6e 75 0d 03 16 0d  ef 32 36 2c 31 32 3a f1  |menu.....26,12:.|
00000780  27 0d 03 20 2a f2 63 65  6e 74 72 65 28 22 4d 6f  |'.. *.centre("Mo|
00000790  64 65 37 20 53 63 72 65  65 6e 20 45 64 69 74 6f  |de7 Screen Edito|
000007a0  72 22 2c 31 32 39 2c 31  33 31 29 0d 03 2a 26 f2  |r",129,131)..*&.|
000007b0  63 65 6e 74 72 65 28 22  42 79 20 42 2e 54 2e 4c  |centre("By B.T.L|
000007c0  61 70 74 68 6f 72 6e 22  2c 31 33 35 2c 31 33 32  |apthorn",135,132|
000007d0  29 0d 03 34 0e 73 70 63  25 3d 31 32 3a f1 27 0d  |)..4.spc%=12:.'.|
000007e0  03 3e 1e f1 27 89 28 73  70 63 25 29 3b 22 31 2e  |.>..'.(spc%);"1.|
000007f0  20 4c 6f 61 64 20 73 63  72 65 65 6e 22 0d 03 48  | Load screen"..H|
00000800  1e f1 27 89 28 73 70 63  25 29 3b 22 32 2e 20 53  |..'.(spc%);"2. S|
00000810  61 76 65 20 73 63 72 65  65 6e 22 0d 03 52 1f f1  |ave screen"..R..|
00000820  27 89 28 73 70 63 25 29  3b 22 33 2e 20 49 6e 73  |'.(spc%);"3. Ins|
00000830  74 72 75 63 74 69 6f 6e  73 22 0d 03 5c 0e f2 63  |tructions"..\..c|
00000840  75 72 73 6f 72 28 31 29  0d 03 66 31 f1 27 27 27  |ursor(1)..f1.'''|
00000850  3b 22 20 20 45 73 63 61  70 65 20 74 6f 67 67 6c  |;"  Escape toggl|
00000860  65 73 20 62 65 74 77 65  65 6e 20 73 63 72 65 65  |es between scree|
00000870  6e 20 26 20 6d 65 6e 75  22 0d 03 70 2a f1 27 3b  |n & menu"..p*.';|
00000880  22 20 20 50 72 65 73 73  20 53 68 69 66 74 20 61  |"  Press Shift a|
00000890  6e 64 20 45 73 63 61 70  65 20 74 6f 20 65 78 69  |nd Escape to exi|
000008a0  74 2e 22 0d 03 7a 38 f1  27 89 28 73 70 63 25 29  |t."..z8.'.(spc%)|
000008b0  3b 22 50 6c 65 61 73 65  20 63 68 6f 6f 73 65 20  |;"Please choose |
000008c0  3e 3e 22 3b 3a 63 68 6f  69 63 65 24 3d a4 67 65  |>>";:choice$=.ge|
000008d0  74 6b 65 79 28 22 31 32  33 22 29 0d 03 84 19 e7  |tkey("123").....|
000008e0  20 63 68 6f 69 63 65 24  3d 22 31 22 20 8c 20 f2  | choice$="1" . .|
000008f0  6c 6f 61 64 0d 03 8e 19  e7 20 63 68 6f 69 63 65  |load..... choice|
00000900  24 3d 22 32 22 20 8c 20  f2 73 61 76 65 0d 03 98  |$="2" . .save...|
00000910  1a e7 20 63 68 6f 69 63  65 24 3d 22 33 22 20 8c  |.. choice$="3" .|
00000920  20 f2 69 6e 73 74 72 0d  03 a2 05 e1 0d 03 ac 05  | .instr.........|
00000930  3a 0d 03 b6 0f dd f2 64  6f 61 63 74 69 6f 6e 73  |:......doactions|
00000940  0d 03 c0 17 43 58 3d 31  3a 43 59 3d 30 3a f1 8a  |....CX=1:CY=0:..|
00000950  43 58 2c 43 59 29 3b 0d  03 ca 0e f2 63 75 72 73  |CX,CY);.....curs|
00000960  6f 72 28 30 29 0d 03 d4  13 6f 6c 64 78 3d 34 30  |or(0)....oldx=40|
00000970  3a 6f 6c 64 79 3d 33 35  0d 03 de 15 73 78 25 3d  |:oldy=35....sx%=|
00000980  6f 6c 64 78 3a 73 79 25  3d 6f 6c 64 79 0d 03 e8  |oldx:sy%=oldy...|
00000990  0a 2a 46 58 34 2c 32 0d  03 f2 05 f5 0d 03 fc 25  |.*FX4,2........%|
000009a0  61 63 74 78 25 3d 6f 6c  64 78 20 81 20 32 3a 61  |actx%=oldx . 2:a|
000009b0  63 74 79 25 3d 28 37 32  2d 6f 6c 64 79 29 81 20  |cty%=(72-oldy). |
000009c0  33 0d 04 06 2d 63 68 61  72 25 3d a4 72 65 61 64  |3...-char%=.read|
000009d0  63 68 61 72 28 61 63 74  78 25 2c 61 63 74 79 25  |char(actx%,acty%|
000009e0  2c 31 29 3a 61 6c 74 65  72 65 64 25 3d 30 0d 04  |,1):altered%=0..|
000009f0  10 1c f2 70 6c 6f 74 28  6f 6c 64 78 2c 6f 6c 64  |...plot(oldx,old|
00000a00  79 2c 33 29 3a 6f 6e 25  3d 31 0d 04 1a 1c f2 70  |y,3):on%=1.....p|
00000a10  6c 6f 74 28 6f 6c 64 78  2c 6f 6c 64 79 2c 33 29  |lot(oldx,oldy,3)|
00000a20  3a 6f 6e 25 3d 30 0d 04  24 1d e7 20 a6 28 2d 31  |:on%=0..$.. .(-1|
00000a30  29 20 8c 20 69 6e 63 25  3d 34 20 8b 20 69 6e 63  |) . inc%=4 . inc|
00000a40  25 3d 31 0d 04 2e 2d e7  20 a6 28 2d 32 36 29 20  |%=1...-. .(-26) |
00000a50  80 20 6f 6c 64 78 3e 28  31 2b 69 6e 63 25 29 20  |. oldx>(1+inc%) |
00000a60  8c 20 6f 6c 64 78 3d 6f  6c 64 78 2d 69 6e 63 25  |. oldx=oldx-inc%|
00000a70  0d 04 38 2f e7 20 a6 28  2d 31 32 32 29 20 80 20  |..8/. .(-122) . |
00000a80  6f 6c 64 78 3c 28 38 30  2d 69 6e 63 25 29 20 8c  |oldx<(80-inc%) .|
00000a90  20 6f 6c 64 78 3d 6f 6c  64 78 2b 69 6e 63 25 0d  | oldx=oldx+inc%.|
00000aa0  04 42 2e e7 20 a6 28 2d  35 38 29 20 80 20 6f 6c  |.B.. .(-58) . ol|
00000ab0  64 79 3c 28 37 32 2d 69  6e 63 25 29 20 8c 20 6f  |dy<(72-inc%) . o|
00000ac0  6c 64 79 3d 6f 6c 64 79  2b 69 6e 63 25 0d 04 4c  |ldy=oldy+inc%..L|
00000ad0  2d e7 20 a6 28 2d 34 32  29 20 80 20 6f 6c 64 79  |-. .(-42) . oldy|
00000ae0  3e 28 31 2b 69 6e 63 25  29 20 8c 20 6f 6c 64 79  |>(1+inc%) . oldy|
00000af0  3d 6f 6c 64 79 2d 69 6e  63 25 0d 04 56 3e e7 20  |=oldy-inc%..V>. |
00000b00  a6 28 2d 35 34 29 20 8c  20 f2 70 6c 6f 74 28 6f  |.(-54) . .plot(o|
00000b10  6c 64 78 2c 6f 6c 64 79  2c 32 29 3a 73 78 25 3d  |ldx,oldy,2):sx%=|
00000b20  6f 6c 64 78 3a 73 79 25  3d 6f 6c 64 79 3a 61 6c  |oldx:sy%=oldy:al|
00000b30  74 65 72 65 64 25 3d 31  0d 04 60 3e e7 20 a6 28  |tered%=1..`>. .(|
00000b40  2d 39 39 29 20 8c 20 f2  70 6c 6f 74 28 6f 6c 64  |-99) . .plot(old|
00000b50  78 2c 6f 6c 64 79 2c 31  29 3a 73 78 25 3d 6f 6c  |x,oldy,1):sx%=ol|
00000b60  64 78 3a 73 79 25 3d 6f  6c 64 79 3a 61 6c 74 65  |dx:sy%=oldy:alte|
00000b70  72 65 64 25 3d 31 0d 04  6a 2e e7 20 a6 28 2d 38  |red%=1..j.. .(-8|
00000b80  33 29 20 8c 20 f2 63 68  65 63 6b 63 69 72 63 6c  |3) . .checkcircl|
00000b90  65 28 6f 6c 64 78 2c 73  78 25 2c 6f 6c 64 79 2c  |e(oldx,sx%,oldy,|
00000ba0  73 79 25 29 0d 04 74 32  e7 20 a6 28 2d 38 37 29  |sy%)..t2. .(-87)|
00000bb0  20 8c 20 f2 6c 69 6e 65  28 6f 6c 64 78 2c 6f 6c  | . .line(oldx,ol|
00000bc0  64 79 2c 73 78 25 2c 73  79 25 29 3a 61 6c 74 65  |dy,sx%,sy%):alte|
00000bd0  72 65 64 25 3d 31 0d 04  7e 32 e7 20 a6 28 2d 35  |red%=1..~2. .(-5|
00000be0  32 29 20 8c 20 f2 72 65  63 74 28 6f 6c 64 78 2c  |2) . .rect(oldx,|
00000bf0  6f 6c 64 79 2c 73 78 25  2c 73 79 25 29 3a 61 6c  |oldy,sx%,sy%):al|
00000c00  74 65 72 65 64 25 3d 31  0d 04 88 10 e7 20 a6 28  |tered%=1..... .(|
00000c10  2d 38 32 29 20 8c 20 db  0d 04 92 20 e7 20 a6 28  |-82) . .... . .(|
00000c20  2d 37 34 29 20 8c 20 73  78 25 3d 6f 6c 64 78 3a  |-74) . sx%=oldx:|
00000c30  73 79 25 3d 6f 6c 64 79  0d 04 9c 16 e7 20 a6 28  |sy%=oldy..... .(|
00000c40  2d 37 31 29 20 8c 20 f2  63 6f 6c 6f 75 72 0d 04  |-71) . .colour..|
00000c50  a6 14 e7 20 a6 28 2d 33  35 29 20 8c 20 f2 65 64  |... .(-35) . .ed|
00000c60  67 65 0d 04 b0 33 e7 20  a6 28 2d 33 36 29 20 8c  |ge...3. .(-36) .|
00000c70  20 f2 74 65 78 74 3a 63  68 61 72 25 3d a4 72 65  | .text:char%=.re|
00000c80  61 64 63 68 61 72 28 61  63 74 78 25 2c 61 63 74  |adchar(actx%,act|
00000c90  79 25 2c 31 29 0d 04 ba  15 e7 20 a6 28 2d 38 34  |y%,1)..... .(-84|
00000ca0  29 20 8c 20 f2 67 72 61  70 68 0d 04 c4 34 e7 20  |) . .graph...4. |
00000cb0  a6 28 2d 33 38 29 20 8c  20 f2 67 63 6f 64 65 3a  |.(-38) . .gcode:|
00000cc0  63 68 61 72 25 3d a4 72  65 61 64 63 68 61 72 28  |char%=.readchar(|
00000cd0  61 63 74 78 25 2c 61 63  74 79 25 2c 31 29 0d 04  |actx%,acty%,1)..|
00000ce0  ce 29 e7 20 61 6c 74 65  72 65 64 25 3d 30 20 8c  |.). altered%=0 .|
00000cf0  20 f1 8a 61 63 74 78 25  2c 61 63 74 79 25 29 3b  | ..actx%,acty%);|
00000d00  bd 63 68 61 72 25 3b 0d  04 d8 06 fd 30 0d 04 e2  |.char%;.....0...|
00000d10  05 e1 0d 04 ec 05 3a 0d  04 f6 24 dd f2 63 68 65  |......:...$..che|
00000d20  63 6b 63 69 72 63 6c 65  28 6f 6c 64 78 2c 73 78  |ckcircle(oldx,sx|
00000d30  25 2c 6f 6c 64 79 2c 73  79 25 29 0d 05 00 21 e7  |%,oldy,sy%)...!.|
00000d40  20 6f 6c 64 78 2d 73 78  25 3d 30 20 80 20 6f 6c  | oldx-sx%=0 . ol|
00000d50  64 79 2d 73 79 25 3d 30  20 8c 20 e1 0d 05 0a 27  |dy-sy%=0 . ....'|
00000d60  72 61 64 69 75 73 3d b6  28 28 6f 6c 64 78 2d 73  |radius=.((oldx-s|
00000d70  78 25 29 5e 32 2b 28 6f  6c 64 79 2d 73 79 25 29  |x%)^2+(oldy-sy%)|
00000d80  5e 32 29 0d 05 14 2b f2  63 69 72 63 6c 65 28 73  |^2)...+.circle(s|
00000d90  78 25 2c 73 79 25 2c 72  61 64 69 75 73 2c 72 61  |x%,sy%,radius,ra|
00000da0  64 69 75 73 2c 31 2f 72  61 64 69 75 73 29 0d 05  |dius,1/radius)..|
00000db0  1e 0e 61 6c 74 65 72 65  64 25 3d 31 0d 05 28 05  |..altered%=1..(.|
00000dc0  e1 0d 05 32 05 3a 0d 05  3c 21 dd f2 6c 69 6e 65  |...2.:..<!..line|
00000dd0  28 73 74 78 25 2c 73 74  79 25 2c 65 6e 64 78 25  |(stx%,sty%,endx%|
00000de0  2c 65 6e 64 79 25 29 0d  05 46 5a e7 20 65 6e 64  |,endy%)..FZ. end|
00000df0  78 25 3c 73 74 78 25 20  8c 20 74 65 6d 70 78 25  |x%<stx% . tempx%|
00000e00  3d 65 6e 64 78 25 3a 65  6e 64 78 25 3d 73 74 78  |=endx%:endx%=stx|
00000e10  25 3a 73 74 78 25 3d 74  65 6d 70 78 25 3a 74 65  |%:stx%=tempx%:te|
00000e20  6d 70 79 25 3d 65 6e 64  79 25 3a 65 6e 64 79 25  |mpy%=endy%:endy%|
00000e30  3d 73 74 79 25 3a 73 74  79 25 3d 74 65 6d 70 79  |=sty%:sty%=tempy|
00000e40  25 0d 05 50 2c e7 20 65  6e 64 78 25 3d 73 74 78  |%..P,. endx%=stx|
00000e50  25 20 8c 20 f2 78 6c 69  6e 65 28 73 74 78 25 2c  |% . .xline(stx%,|
00000e60  73 74 79 25 2c 65 6e 64  79 25 29 3a e1 0d 05 5a  |sty%,endy%):...Z|
00000e70  22 67 72 61 64 3d 28 65  6e 64 79 25 2d 73 74 79  |"grad=(endy%-sty|
00000e80  25 29 2f 28 65 6e 64 78  25 2d 73 74 78 25 29 0d  |%)/(endx%-stx%).|
00000e90  05 64 25 e7 20 94 67 72  61 64 3e 31 20 8c 20 73  |.d%. .grad>1 . s|
00000ea0  74 65 70 3d 31 2f 94 67  72 61 64 20 8b 20 73 74  |tep=1/.grad . st|
00000eb0  65 70 3d 31 0d 05 6e 1d  e3 6c 6f 6f 70 3d 73 74  |ep=1..n..loop=st|
00000ec0  78 25 20 b8 20 65 6e 64  78 25 20 88 20 73 74 65  |x% . endx% . ste|
00000ed0  70 0d 05 78 1a 6e 65 77  79 3d 67 72 61 64 2a 20  |p..x.newy=grad* |
00000ee0  28 6c 6f 6f 70 2d 73 74  78 25 29 0d 05 82 1b f2  |(loop-stx%).....|
00000ef0  70 6c 6f 74 28 6c 6f 6f  70 2c 6e 65 77 79 2b 73  |plot(loop,newy+s|
00000f00  74 79 25 2c 31 29 0d 05  8c 0a ed 20 6c 6f 6f 70  |ty%,1)..... loop|
00000f10  0d 05 96 05 e1 0d 05 a0  05 3a 0d 05 aa 18 dd f2  |.........:......|
00000f20  78 6c 69 6e 65 28 73 78  25 2c 73 79 25 2c 65 79  |xline(sx%,sy%,ey|
00000f30  25 29 0d 05 b4 1c e7 20  73 79 25 3e 65 79 25 20  |%)..... sy%>ey% |
00000f40  8c 20 73 74 3d 2d 31 20  8b 20 73 74 3d 31 0d 05  |. st=-1 . st=1..|
00000f50  be 16 e3 6c 6f 6f 70 3d  73 79 25 b8 65 79 25 20  |...loop=sy%.ey% |
00000f60  88 20 73 74 0d 05 c8 15  f2 70 6c 6f 74 28 73 78  |. st.....plot(sx|
00000f70  25 2c 6c 6f 6f 70 2c 31  29 0d 05 d2 05 ed 0d 05  |%,loop,1).......|
00000f80  dc 05 e1 0d 05 e6 05 3a  0d 05 f0 17 dd f2 72 65  |.......:......re|
00000f90  63 74 28 62 78 2c 62 79  2c 74 78 2c 74 79 29 0d  |ct(bx,by,tx,ty).|
00000fa0  05 fa 16 f2 6c 69 6e 65  28 62 78 2c 62 79 2c 62  |....line(bx,by,b|
00000fb0  78 2c 74 79 29 0d 06 04  16 f2 6c 69 6e 65 28 74  |x,ty).....line(t|
00000fc0  78 2c 74 79 2c 62 78 2c  74 79 29 0d 06 0e 16 f2  |x,ty,bx,ty).....|
00000fd0  6c 69 6e 65 28 74 78 2c  62 79 2c 74 78 2c 74 79  |line(tx,by,tx,ty|
00000fe0  29 0d 06 18 16 f2 6c 69  6e 65 28 74 78 2c 62 79  |).....line(tx,by|
00000ff0  2c 62 78 2c 62 79 29 0d  06 22 05 e1 0d 06 2c 05  |,bx,by).."....,.|
00001000  3a 0d 06 36 0a dd f2 65  64 67 65 0d 06 40 70 f1  |:..6...edge..@p.|
00001010  8a 30 2c 32 34 29 3b 22  57 68 69 63 68 20 65 64  |.0,24);"Which ed|
00001020  67 65 20 63 6f 6c 6f 75  72 20 28 31 2d 37 29 20  |ge colour (1-7) |
00001030  3e 3e 22 3b 3a f2 63 75  72 73 6f 72 28 31 29 3a  |>>";:.cursor(1):|
00001040  63 6f 6c 25 3d bb a4 67  65 74 6b 65 79 28 22 31  |col%=..getkey("1|
00001050  32 33 34 35 36 37 22 2b  bd 31 33 29 3a e7 20 63  |234567"+.13):. c|
00001060  6f 6c 25 3d 30 20 8c 20  f2 62 6c 61 6e 6b 3a f2  |ol%=0 . .blank:.|
00001070  63 75 72 73 6f 72 28 30  29 3a e1 0d 06 4a 42 f2  |cursor(0):...JB.|
00001080  62 6c 61 6e 6b 3a e3 6c  6f 6f 70 25 3d 30 b8 32  |blank:.loop%=0.2|
00001090  33 3a f1 8a 30 2c 6c 6f  6f 70 25 29 3b bd 28 31  |3:..0,loop%);.(1|
000010a0  34 34 2b 63 6f 6c 25 29  3b 3a ed 3a f2 63 75 72  |44+col%);:.:.cur|
000010b0  73 6f 72 28 30 29 3a f2  62 6c 61 6e 6b 0d 06 54  |sor(0):.blank..T|
000010c0  05 e1 0d 06 5e 05 3a 0d  06 68 0c dd f2 63 6f 6c  |....^.:..h...col|
000010d0  6f 75 72 0d 06 72 6b f1  8a 30 2c 32 34 29 3b 22  |our..rk..0,24);"|
000010e0  57 68 69 63 68 20 63 6f  6c 6f 75 72 20 28 31 2d  |Which colour (1-|
000010f0  37 29 20 3e 3e 22 3b 3a  f2 63 75 72 73 6f 72 28  |7) >>";:.cursor(|
00001100  31 29 3a 63 6f 6c 25 3d  bb a4 67 65 74 6b 65 79  |1):col%=..getkey|
00001110  28 22 31 32 33 34 35 36  37 22 2b bd 31 33 29 3a  |("1234567"+.13):|
00001120  e7 20 63 6f 6c 25 3d 30  20 8c 20 f2 62 6c 61 6e  |. col%=0 . .blan|
00001130  6b 3a f2 63 75 72 73 6f  72 28 30 29 3a e1 0d 06  |k:.cursor(0):...|
00001140  7c 16 f1 3b 63 6f 6c 25  3b 3a 77 61 69 74 3d a6  ||..;col%;:wait=.|
00001150  28 35 30 29 0d 06 86 0a  f2 62 6c 61 6e 6b 0d 06  |(50).....blank..|
00001160  90 21 61 78 25 3d 6f 6c  64 78 20 81 20 32 3a 61  |.!ax%=oldx . 2:a|
00001170  79 25 3d 28 37 32 2d 6f  6c 64 79 29 81 20 33 0d  |y%=(72-oldy). 3.|
00001180  06 9a 0f e7 20 61 78 25  3c 31 20 8c 20 e1 0d 06  |.... ax%<1 . ...|
00001190  a4 1d f1 8a 61 78 25 2d  31 2c 61 79 25 29 3b bd  |....ax%-1,ay%);.|
000011a0  28 31 34 34 2b 63 6f 6c  25 29 3b 0d 06 ae 0e f2  |(144+col%);.....|
000011b0  63 75 72 73 6f 72 28 30  29 0d 06 b8 05 e1 0d 06  |cursor(0).......|
000011c0  c2 05 3a 0d 06 cc 0b dd  f2 62 6c 61 6e 6b 0d 06  |..:......blank..|
000011d0  d6 15 f1 8a 30 2c 32 34  29 3b c4 33 38 2c 22 20  |....0,24);.38," |
000011e0  22 29 3b 0d 06 e0 05 e1  0d 06 ea 05 3a 0d 06 f4  |");.........:...|
000011f0  0a dd f2 74 65 78 74 0d  06 fe 3a f1 8a 30 2c 32  |...text...:..0,2|
00001200  34 29 3b 22 54 65 78 74  20 22 3b 3a f2 63 75 72  |4);"Text ";:.cur|
00001210  73 6f 72 28 31 29 3a 74  65 78 74 24 3d a4 69 6e  |sor(1):text$=.in|
00001220  28 32 30 2c 30 29 3a 77  61 69 74 3d a6 28 35 30  |(20,0):wait=.(50|
00001230  29 0d 07 08 0a f2 62 6c  61 6e 6b 0d 07 12 1d e7  |).....blank.....|
00001240  20 74 65 78 74 24 3d 22  22 20 8c 20 f2 63 75 72  | text$="" . .cur|
00001250  73 6f 72 28 30 29 3a e1  0d 07 1c 21 61 78 25 3d  |sor(0):....!ax%=|
00001260  6f 6c 64 78 20 81 20 32  3a 61 79 25 3d 28 37 32  |oldx . 2:ay%=(72|
00001270  2d 6f 6c 64 79 29 81 20  33 0d 07 26 20 f1 8a 61  |-oldy). 3..& ..a|
00001280  78 25 2c 61 79 25 29 3b  c0 74 65 78 74 24 2c 28  |x%,ay%);.text$,(|
00001290  33 39 2d 61 78 25 29 29  3b 0d 07 30 0e f2 63 75  |39-ax%));..0..cu|
000012a0  72 73 6f 72 28 30 29 0d  07 3a 05 e1 0d 07 44 05  |rsor(0)..:....D.|
000012b0  3a 0d 07 4e 0b dd f2 67  63 6f 64 65 0d 07 58 6b  |:..N...gcode..Xk|
000012c0  f1 8a 30 2c 32 34 29 3b  22 45 6e 74 65 72 20 67  |..0,24);"Enter g|
000012d0  72 61 70 68 69 63 73 20  63 6f 64 65 22 3b 3a f2  |raphics code";:.|
000012e0  63 75 72 73 6f 72 28 31  29 3a 63 6f 64 65 25 3d  |cursor(1):code%=|
000012f0  bb a4 69 6e 28 33 2c 30  29 3a e7 20 63 6f 64 65  |..in(3,0):. code|
00001300  25 3c 31 32 39 20 84 20  63 6f 64 65 25 3e 31 35  |%<129 . code%>15|
00001310  39 20 8c 20 f2 63 75 72  73 6f 72 28 30 29 3a f2  |9 . .cursor(0):.|
00001320  62 6c 61 6e 6b 3a e1 0d  07 62 21 77 61 69 74 25  |blank:...b!wait%|
00001330  3d a6 28 35 30 29 3a f2  63 75 72 73 6f 72 28 30  |=.(50):.cursor(0|
00001340  29 3a f2 62 6c 61 6e 6b  0d 07 6c 1a f1 8a 61 63  |):.blank..l...ac|
00001350  74 78 25 2c 61 63 74 79  25 29 3b bd 63 6f 64 65  |tx%,acty%);.code|
00001360  25 3b 0d 07 76 05 e1 0d  07 80 05 3a 0d 07 8a 0a  |%;..v......:....|
00001370  dd f2 6c 6f 61 64 0d 07  94 48 db 3a f2 63 75 72  |..load...H.:.cur|
00001380  73 6f 72 28 31 29 3a f1  27 27 22 54 69 74 6c 65  |sor(1):.''"Title|
00001390  20 6f 66 20 66 69 6c 65  20 74 6f 20 6c 6f 61 64  | of file to load|
000013a0  20 22 3b 3a 6c 6f 61 64  24 3d a4 69 6e 28 31 35  | ";:load$=.in(15|
000013b0  2c 31 29 3a f2 63 75 72  73 6f 72 28 30 29 0d 07  |,1):.cursor(0)..|
000013c0  9e 12 e7 20 6c 6f 61 64  24 3d 22 22 20 8c 20 e1  |... load$="" . .|
000013d0  0d 07 a8 21 f2 6f 73 63  6c 69 28 22 4c 4f 41 44  |...!.oscli("LOAD|
000013e0  20 22 2b 6c 6f 61 64 24  2b 22 20 37 30 30 30 22  | "+load$+" 7000"|
000013f0  29 0d 07 b2 05 e1 0d 07  bc 05 3a 0d 07 c6 0a dd  |).........:.....|
00001400  f2 73 61 76 65 0d 07 d0  48 db 3a f2 63 75 72 73  |.save...H.:.curs|
00001410  6f 72 28 31 29 3a f1 27  27 22 54 69 74 6c 65 20  |or(1):.''"Title |
00001420  6f 66 20 66 69 6c 65 20  74 6f 20 73 61 76 65 20  |of file to save |
00001430  22 3b 3a 73 61 76 65 24  3d a4 69 6e 28 31 35 2c  |";:save$=.in(15,|
00001440  31 29 3a f2 63 75 72 73  6f 72 28 30 29 0d 07 da  |1):.cursor(0)...|
00001450  12 e7 20 73 61 76 65 24  3d 22 22 20 8c 20 e1 0d  |.. save$="" . ..|
00001460  07 e4 30 f2 6f 73 63 6c  69 28 22 53 41 56 45 20  |..0.oscli("SAVE |
00001470  22 2b 73 61 76 65 24 2b  22 20 37 30 30 30 20 37  |"+save$+" 7000 7|
00001480  34 30 30 20 38 30 30 30  20 37 43 30 30 22 29 0d  |400 8000 7C00").|
00001490  07 ee 05 e1 0d 07 f8 05  3a 0d 08 02 11 dd f2 73  |........:......s|
000014a0  77 61 70 28 73 77 61 70  25 29 0d 08 0c 0b 2a 46  |wap(swap%)....*F|
000014b0  58 31 34 2c 36 0d 08 16  0e f2 63 75 72 73 6f 72  |X14,6.....cursor|
000014c0  28 31 29 0d 08 20 15 e3  20 6c 6f 6f 70 25 3d 30  |(1).. .. loop%=0|
000014d0  b8 26 34 30 30 20 88 34  0d 08 2a 47 e7 20 73 77  |.&400 .4..*G. sw|
000014e0  61 70 25 20 8c 20 6f 6c  64 6d 65 6d 25 3d 26 37  |ap% . oldmem%=&7|
000014f0  30 30 30 3a 6e 65 77 6d  65 6d 25 3d 26 37 43 30  |000:newmem%=&7C0|
00001500  30 20 8b 20 6f 6c 64 6d  65 6d 25 3d 26 37 43 30  |0 . oldmem%=&7C0|
00001510  30 3a 6e 65 77 6d 65 6d  25 3d 26 37 30 30 30 0d  |0:newmem%=&7000.|
00001520  08 34 1f 6e 65 77 6d 65  6d 25 21 6c 6f 6f 70 25  |.4.newmem%!loop%|
00001530  3d 6f 6c 64 6d 65 6d 25  21 6c 6f 6f 70 25 0d 08  |=oldmem%!loop%..|
00001540  3e 05 ed 0d 08 48 0e f2  63 75 72 73 6f 72 28 30  |>....H..cursor(0|
00001550  29 0d 08 52 0b 2a 46 58  31 33 2c 36 0d 08 5c 05  |)..R.*FX13,6..\.|
00001560  e1 0d 08 66 05 3a 0d 08  70 36 e7 20 a6 28 2d 31  |...f.:..p6. .(-1|
00001570  29 20 84 20 9f 3c 3e 31  37 20 f2 6f 73 63 6c 69  |) . .<>17 .oscli|
00001580  28 22 46 58 34 2c 30 22  29 3a f6 3a f1 22 20 61  |("FX4,0"):.:." a|
00001590  74 20 6c 69 6e 65 20 22  3b 9e 3a e0 0d 08 7a 0f  |t line ";.:...z.|
000015a0  73 77 61 70 3d ac 20 73  77 61 70 0d 08 84 22 e7  |swap=. swap...".|
000015b0  20 73 77 61 70 20 8c 20  db 3a f2 73 77 61 70 28  | swap . .:.swap(|
000015c0  31 29 3a f2 64 6f 61 63  74 69 6f 6e 73 0d 08 8e  |1):.doactions...|
000015d0  18 e7 20 ac 20 73 77 61  70 20 8c 20 f2 67 6f 74  |.. . swap . .got|
000015e0  6f 6d 65 6e 75 0d 08 98  05 e0 0d 08 a2 05 3a 0d  |omenu.........:.|
000015f0  08 ac 2d dd f2 69 6e 73  74 72 3a db 3a f2 63 65  |..-..instr:.:.ce|
00001600  6e 74 72 65 28 22 49 6e  73 74 72 75 63 74 69 6f  |ntre("Instructio|
00001610  6e 73 22 2c 31 33 35 2c  31 33 30 29 0d 08 b6 33  |ns",135,130)...3|
00001620  f1 27 27 22 55 73 65 20  63 75 72 73 6f 72 20 6b  |.''"Use cursor k|
00001630  65 79 73 20 74 6f 20 6d  6f 76 65 20 61 62 6f 75  |eys to move abou|
00001640  74 22 27 22 74 68 65 20  73 63 72 65 65 6e 22 0d  |t"'"the screen".|
00001650  08 c0 1f f1 22 3c 53 50  41 43 45 3e 20 2e 2e 20  |...."<SPACE> .. |
00001660  70 6c 6f 74 73 20 61 20  70 6f 69 6e 74 22 0d 08  |plots a point"..|
00001670  ca 20 f1 22 3c 43 3e 20  20 20 20 20 2e 2e 20 70  |. ."<C>     .. p|
00001680  6c 6f 74 73 20 61 20 63  69 72 63 6c 65 22 0d 08  |lots a circle"..|
00001690  d4 23 f1 22 3c 52 3e 20  20 20 20 20 2e 2e 20 70  |.#."<R>     .. p|
000016a0  6c 6f 74 73 20 61 20 72  65 63 74 61 6e 67 6c 65  |lots a rectangle|
000016b0  22 0d 08 de 1e f1 22 3c  4c 3e 20 20 20 20 20 2e  |"....."<L>     .|
000016c0  2e 20 64 72 61 77 73 20  61 20 6c 69 6e 65 22 0d  |. draws a line".|
000016d0  08 e8 22 f1 22 3c 4b 3e  20 20 20 20 20 2e 2e 20  |.."."<K>     .. |
000016e0  63 68 61 6e 67 65 73 20  61 20 63 6f 6c 6f 75 72  |changes a colour|
000016f0  22 0d 08 f2 1f f1 22 3c  54 3e 20 20 20 20 20 2e  |"....."<T>     .|
00001700  2e 20 74 6f 20 70 72 69  6e 74 20 74 65 78 74 22  |. to print text"|
00001710  0d 08 fc 21 f1 22 3c 47  3e 20 20 20 20 20 2e 2e  |...!."<G>     ..|
00001720  20 74 6f 20 70 6c 6f 74  20 61 20 67 72 61 70 68  | to plot a graph|
00001730  22 0d 09 06 28 f1 22 3c  49 3e 20 20 20 20 20 2e  |"...(."<I>     .|
00001740  2e 20 69 6e 73 65 72 74  20 61 20 67 72 61 70 68  |. insert a graph|
00001750  69 63 73 20 63 6f 64 65  22 0d 09 10 28 f1 22 3c  |ics code"...(."<|
00001760  45 3e 20 20 20 20 20 2e  2e 20 63 6f 6c 6f 75 72  |E>     .. colour|
00001770  73 20 65 64 67 65 20 6f  66 20 73 63 72 65 65 6e  |s edge of screen|
00001780  22 0d 09 1a 1e f1 22 3c  53 3e 20 20 20 20 20 2e  |"....."<S>     .|
00001790  2e 20 73 63 72 65 65 6e  20 63 6c 65 61 72 22 0d  |. screen clear".|
000017a0  09 24 2e f1 22 3c 52 45  54 55 52 4e 3e 20 2e 20  |.$.."<RETURN> . |
000017b0  6d 61 72 6b 73 20 70 6f  69 6e 74 20 66 6f 72 20  |marks point for |
000017c0  63 69 72 63 6c 65 73 20  65 74 63 2e 22 0d 09 2e  |circles etc."...|
000017d0  2f f1 22 3c 53 48 49 46  54 3e 20 2e 2e 20 77 69  |/."<SHIFT> .. wi|
000017e0  74 68 20 63 75 72 73 6f  72 20 6b 65 79 73 20 6d  |th cursor keys m|
000017f0  6f 76 65 73 20 66 61 73  74 65 72 22 0d 09 38 36  |oves faster"..86|
00001800  f1 27 22 50 72 65 73 73  20 3c 53 50 41 43 45 3e  |.'"Press <SPACE>|
00001810  20 74 6f 20 63 6f 6e 74  69 6e 75 65 20 2e 2e 2e  | to continue ...|
00001820  22 3b 3a 61 24 3d a4 67  65 74 6b 65 79 28 22 20  |";:a$=.getkey(" |
00001830  22 29 0d 09 42 05 e1 0d  09 4c 05 3a 0d 09 56 12  |")..B....L.:..V.|
00001840  dd f2 6f 73 63 6c 69 28  24 26 37 30 30 29 0d 09  |..oscli($&700)..|
00001850  60 1b ea 58 25 2c 59 25  3a 58 25 3d 30 3a 59 25  |`..X%,Y%:X%=0:Y%|
00001860  3d 37 3a d6 26 46 46 46  37 0d 09 6a 05 e1 0d 09  |=7:.&FFF7..j....|
00001870  74 05 3a 0d 09 7e 0e dd  f2 67 6f 74 6f 6d 65 6e  |t.:..~...gotomen|
00001880  75 0d 09 88 1a f1 8a 61  63 74 78 25 2c 61 63 74  |u......actx%,act|
00001890  79 25 29 3b bd 63 68 61  72 25 3b 0d 09 92 19 f2  |y%);.char%;.....|
000018a0  73 77 61 70 28 30 29 3a  db 3a f5 3a f2 6d 65 6e  |swap(0):.:.:.men|
000018b0  75 3a fd 30 0d 09 9c 05  e1 0d ff                 |u:.0.......|
000018bb
TTX/Ed.m0
TTX/Ed.m1
TTX/Ed.m2
TTX/Ed.m4
TTX/Ed.m5