Home » CEEFAX disks » telesoftware11.adl » 11-12-88/MWORKS

11-12-88/MWORKS

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 » CEEFAX disks » telesoftware11.adl
Filename: 11-12-88/MWORKS
Read OK:
File size: 1E38 bytes
Load address: FFFF0E00
Exec address: FFFF802B
Duplicates

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

File contents
  100T$= "MicroWorks"
  110A$= "S.Turnbull"
  120REM (c) Micro User 1987
  130ON ERROR MODE135:REPORT:PRINT" at ";ERL:END
  140MODE4:VDU23,1,0;0;0;0;0;
  150HIMEM=HIMEM-&200:PROCinit
  160CLS:PROCtitle:CLS
  170REPEAT PROClift:PROCkeys:G%=GET
  180IF G%<32 PROCctrl
  190IF G%>31 IF G%<127 PROClet
  200IF G%>127 IF G%<138 PROCfn
  210IF G%>143 IF G%<154 PROCs_fn
  220IF G%>159 IF G%<170 PROCc_fn
  230UNTIL quit:PROCquit:END
  240DEF PROCctrl
  250IF G%=13 PROCret
  260ENDPROC
  270DEF PROCret:IF ip<8 ENDPROC
  280PROCptr(ip):px=LX%
  290py=py-32+32*((SZ% AND2)>0)
  300PROCptr(ip):ENDPROC
  310DEF PROClet:IF ip<8 ENDPROC
  320PROCptr(ip):PROCtxt(G%,0,col)
  330PROCptr(ip):ENDPROC
  340DEF PROCfn
  350IF G%<137 mode=G%-128 ELSE PROCsp
  360ENDPROC
  370DEF PROCsp:PROCptr(ip):PROCnm
  380IF n$>"" PROCcli("SAVE "+n$+l$+" FFFF8000")
  390PROCptr(ip):ENDPROC
  400DEF PROCs_fn:IF ip>-1 ENDPROC
  410IF G%=144 col=col EOR 1
  420IF G%=145 fill=NOT fill
  430IF G%=146 REM Nothing assigned
  440IF G%=147 REM Nothing assigned
  450IF G%=148 REM Nothing assigned
  460IF G%=149 PT%=(PT%+1)MODmxpt
  470IF G%=150 wdth=(wdth+1)MODmxwd
  480IF G%=151 dens=(dens+1)MODmxdn
  490IF G%=152 SZ%=SZ% EOR 2
  500IF G%=153 PROClp
  510ENDPROC
  520DEF PROClp:PROCptr(ip):PROCnm
  530IF n$>"" PROCcli("LOAD "+n$+l$)
  540PROCptr(ip):ENDPROC
  550DEF PROCnm:GCOL3,1:MOVE 24,1000
  560VDU5:INPUT"Name:"n$:MOVE 24,1000
  570PRINT"Name:"n$:VDU4,23,1,0;0;0;0;
  580ENDPROC
  590DEF PROCcli($&700):LOCALX%,Y%
  600Y%=7:CALL&FFF7:ENDPROC
  610DEF PROCc_fn:IF G%=160 PROCptr(ip):PROCunset:PROCptr(ip)
  620IF ip>-1 ENDPROC
  630IF G%=161 REM Nothing assigned
  640IF G%=162 ST%=ST% EOR 1
  650IF G%=163 ST%=ST% EOR 2
  660IF G%=164 ST%=ST% EOR 4
  670IF G%=165 ST%=ST% EOR 8
  680IF G%=166 wdth=wdth-1:IF wdth=-1 wdth=mxwd-1
  690IF G%=167 dens=dens-1:IF dens=-1 dens=mxdn-1
  700IF G%=168 SZ%=SZ% EOR 1
  710IF G%=169 quit=TRUE
  720ENDPROC
  730DEF PROCinit
  740PRINTCHR$136"Please wait...";
  750TY%=1023:BY%=0:*FX225,128
  760LX%=0:RX%=1279:*FX226,144
  770bx=0:px=400:py=700:*FX227,160
  780col=1:mode=0:unset=-1:ip=-1
  790wdth=4:mxwd=20:dens=4:mxdn=20
  800ST%=10:SZ%=0:PT%=0
  810mxpt=5:fill=FALSE:l$=" FFFF5800"
  820PROCunset:TG%=60:IG%=360/TG%
  830VDU&FE17;&6060;&6060;&6060;&7C60;
  840DIM d% 256,s(TG%+TG%/4)
  850quit=FALSE:PROCassem:*FX4,2
  860AC%=-129:CL%=-26:CR%=-122
  870CU%=-58:CD%=-42:CC%=-106
  880FOR A%=0 TO TG%+TG%/4
  890s(A%)=SINRAD(IG%*A%)
  900NEXT:K%=TRUE:ENDPROC
  910DEF PROCtitle
  920VDU19,0,4;0;19,1,3;0;
  930PROCtab(T$,10,7,&A,3)
  940PROCtab("by",18,10,9,0)
  950PROCtab(A$,10,12,&C,1):*FX15
  960Z%=INKEY500:ENDPROC
  970DEF PROCtab($d%,X%,Y%,A%,B%)
  980?sty=A%:?siz=B%:CALL out:ENDPROC
  990DEF PROCquit:CLS:*FX4
 1000PROCtab(T$,4,4):ENDPROC
 1010DEF PROCkeys
 1020REPEAT dx=0:dy=0:*FX21
 1030IF K% PROCptr(ip)
 1040REPEATK%=INKEYAC%:UNTILNOTK%
 1050IF INKEYCL% dx=-FNinc
 1060IF INKEYCR% dx=+FNinc
 1070IF INKEYCD% dy=-FNinc
 1080IF INKEYCU% dy=+FNinc
 1090IF INKEYCC% K%=TRUE
 1100IF K% PROCptr(ip):PROCmove
 1110UNTIL NOTK%:ENDPROC
 1120DEF PROCmove:*FX21
 1130IF dx=0 IF dy=0 PROCset:ENDPROC
 1140px=px+dx:py=py+dy
 1150IF px<LX% px=LX%ELSEIFpx>RX%px=RX%
 1160IF py<BY% py=BY%ELSEIFpy>TY%py=TY%
 1170ENDPROC
 1180DEF PROCptr(P%):GCOL 3,1
 1190IFP%=-1 PROCpcr:ENDPROC
 1200IFP%<6 PROCmode(P%):ENDPROC
 1210IFP%=6 PROCbrsh(wdth):ENDPROC
 1220IFP%=7 PROCspry(dens,wdth):ENDPROC
 1230IFP%=8 PROCmode(P%)
 1240ENDPROC
 1250DEF PROCpcr
 1260MOVE px,BY%:DRAW px,TY%
 1270MOVE LX%,py:DRAW RX%,py
 1280ENDPROC
 1290DEF FNinc:K%=TRUE
 1300=4-12*INKEY-1-28*INKEY-2
 1310DEF PROCset:K%=TRUE
 1320IF ip=-1 PROCstart ELSE PROCform
 1330PROClift:ENDPROC
 1340DEF PROCstart:ip=mode
 1350px2=px1:py2=py1:px1=px:py1=py
 1360IF mode<>5 ENDPROC
 1370PROCchr(ASC"?"):*FX21
 1380sides=INSTR("3456789",GET$)+2
 1390IF sides<3 sides=0:PROCunset
 1400PROCchr(ASC"?"):ENDPROC
 1410DEF PROCchr(C%):VDU5
 1420MOVE px-16,py+32:VDUC%4
 1430ENDPROC
 1440DEF PROCmode(M%)
 1450IF M%=0 PROCln:ENDPROC
 1460IF M%=1 PROCdt:ENDPROC
 1470IF M%=2 PROCtr:ENDPROC
 1480IF M%=3 PROCrc:ENDPROC
 1490IF M%=4 PROCcc:ENDPROC
 1500IF M%=5 PROCpl:ENDPROC
 1510IF M%=6 REM Nothing assigned
 1520IF M%=7 REM Nothing assigned
 1530IF M%=8 PROCtx(px,py)
 1540ENDPROC
 1550DEF PROCform:GCOL 0,col
 1560IF ip<8 PROCmode(ip)
 1570PROCunset:ENDPROC
 1580DEF PROCln:LOCAL P%:P%=5
 1590DEF PROCdt:LOCAL P%:P%=21
 1600PROCplot(P%):ENDPROC
 1610DEF PROCtr:IF px2=unset ip=-1:PROCptr(ip):ENDPROC
 1620IF fill PROCplot(85):ENDPROC
 1630MOVE px2,py2:DRAW px1,py1
 1640DRAW px,py:DRAW px2,py2:ENDPROC
 1650DEF PROCplot(P%)
 1660MOVE px2,py2:MOVE px1,py1
 1670PLOT P%,px,py:ENDPROC
 1680DEF PROCunset:px2=unset:py2=unset
 1690IF mode>3 IF mode<6 px=px1:py=py1
 1700px1=unset:py1=unset:ip=-1:ENDPROC
 1710DEF PROCrc
 1720IF fill PROCrcf ELSE PROCrcu
 1730ENDPROC
 1740DEF PROCrcf
 1750MOVE px1,py1:MOVE px1,py
 1760PLOT 85,px,py1:PLOT 85,px,py
 1770ENDPROC
 1780DEF PROCrcu
 1790MOVE px1,py1:DRAW px1,py
 1800DRAW px,py:DRAW px,py1
 1810DRAW px1,py1:ENDPROC
 1820DEF PROCcc
 1830LOCAL X%,Y%,R%,E%,P%,Q%
 1840IF fill P%=4:Q%=5 ELSE P%=69:Q%=69
 1850Y%=SQR((px-px1)^2+(py-py1)^2)
 1860IF Y%<4 PLOT69,px,py:ENDPROC
 1870E%=3-2*Y%:VDU29,px1;py1;
 1880IF X%<Y% REPEAT PROCdc:UNTILX%>=Y%
 1890IF X%=Y% PROCdc
 1900VDU29,0;0;:ENDPROC
 1910DEF PROCdc
 1920PLOT P%,X%,Y%:PLOT Q%,X%,-Y%
 1930PLOT P%,Y%,X%:PLOT Q%,Y%,-X%
 1940PLOT P%,-X%,Y%:PLOT Q%,-X%,-Y%
 1950PLOT P%,-Y%,X%:PLOT Q%,-Y%,-X%
 1960IF E%<0 E%=E%+4*X%+6 ELSE E%=E%+4*(X%-Y%)+10:Y%=Y%-4
 1970X%=X%+4:ENDPROC
 1980DEF PROCpl
 1990IF fill PROCplf(sides) ELSE PROCplu(sides)
 2000ENDPROC
 2010DEF PROCplu(S%):LOCAL A,I,R%
 2020R%=SQR((px-px1)^2+(py-py1)^2)
 2030IF R%<4 ENDPROC
 2040I=360/S%:MOVE px1,py1+R%
 2050FOR A=0 TO 360+I STEP I
 2060DRAW px1+FNsn(A)*R%,py1+FNcs(A)*R%
 2070NEXT:ENDPROC
 2080DEF PROCplf(S%)
 2090LOCAL A,I,R%,X%,Y%
 2100R%=SQR((px-px1)^2+(py-py1)^2)
 2110IF R%<4 ENDPROC
 2120I=360/S%:X%=px1:Y%=py1+R%
 2130FOR A=0 TO 360+I STEP I
 2140MOVE X%,Y%:X%=px1+FNsn(A)*R%
 2150Y%=py1+FNcs(A)*R%:DRAW X%,Y%
 2160PLOT 85,px1,py1:NEXT:ENDPROC
 2170DEF FNsn(A%)=s((A%MOD360)DIVIG%)
 2180DEF FNcs(A%)=s(((A%+90)MOD360)DIVIG%)
 2190DEF PROCbrsh(W%):GCOL0,col
 2200LOCAL fill:fill=TRUE
 2210px1=px:px=px+W%*4:py1=py
 2220PROCmode(4):px=px1:ENDPROC
 2230DEF PROCspry(S%,W%):GCOL0,col
 2240LOCAL A%,L%,R%,C%:IF S%=0 ENDPROC
 2250W%=W%*4:FOR L%=1 TO S%
 2260IF RND(3)=1 NEXT:ENDPROC
 2270A%=RND(360):R%=RND(W%)
 2280PLOT69,px+R%*s(A%DIVIG%),py+R%*s((A%+90)MOD360DIVIG%)
 2290NEXT:ENDPROC
 2300DEF PROClift:IF ip<0 PROCptr(ip)
 2310REPEATUNTILINKEYAC%:IF ip<0 PROCptr(ip)
 2320ENDPROC
 2330DEF PROCtx(px,py)
 2340PROCtxt(254,3,col):ENDPROC
 2350DEF PROCtxt(C%,A%,B%)
 2360IF ip<>8 ENDPROC ELSE GCOLA%,B%
 2370?sty=ST%:?siz=SZ%:d%?0=C%:d%?1=13
 2380MOVEpx,py:VDU5:CALL prnt
 2390VDU4,23,1,0;0;0;0;:px=px+FNtix
 2400ENDPROC
 2410DEF FNtix:LOCAL W%:W%=?wid
 2420IF ST% AND8 W%=W%+PT%
 2430=(W%-W%*((SZ%AND1)>0))*4
 2440DEF PROCassem:code=HIMEM
 2450chr=&4F:df1=&50:df2=&58
 2460xpo=&61:ypo=&62:idx=&63:idy=&64
 2470sty=&65:siz=&66:wid=&67:tmp=&68
 2480oswrch=&FFEE:osword=&FFF1
 2490osbyte=&FFF4:FOR L%=0 TO 2 STEP 2
 2500P%=code:[OPT L%
 2510.out STX xpo:STY ypo
 2520 LDX d%:CPX #13:BNE ppp:RTS
 2530.ppp JSR posn:.prnt
 2540 LDA siz:AND #15:CMP #0:BEQ nrm
 2550 CMP #2:BEQ dbh:CMP #3:BEQ qd
 2560 JMP dbw:.nrm LDX #&FF:STX idx
 2570.nrm1 INC idx:LDX idx
 2580 LDA d%,X:CMP #13:BEQ nrmx
 2590 JSR gdef:LDX #7
 2600.nm LDA df1,X:STA df2,X
 2610 DEX:BPL nm:JSR pdef:JMP nrm1
 2620.nrmx RTS
 2630.qd LDX #&FF:STX idx
 2640.qd1 INC idx:LDX idx
 2650 LDA d%,X:CMP #13:BEQ qdx
 2660 JSR gdef:LDX #0
 2670.qd2 LDA df1,X:JSR dwd:PHA
 2680 INX:CPX #8:BNE qd2
 2690 JSR def21:JSR pdh:LDX #7
 2700.qd3 PLA:JSR dwd:DEX:BPL qd3
 2710 JSR def21:JSR pdh:JMP qd1
 2720.qdx RTS
 2730.def21 LDX #7
 2740.d21 LDA df2,X:STA df1,X
 2750 DEX:BPL d21:RTS
 2760.dbh LDX #&FF:STX idx
 2770.dhl1 INC idx:LDX idx
 2780 LDA d%,X:CMP #13:BEQ dh1x
 2790 JSR gdef:JSR pdh:JMP dhl1
 2800.dh1x RTS
 2810.pdh LDY #0:JSR dhd
 2820 LDA #8:JSR oswrch
 2830 LDA #10:JSR oswrch
 2840 LDY #4:JSR dhd
 2850 LDA #11:JSR oswrch:RTS
 2860.dhd
 2870 LDA df1+0,Y:STA df2+0:STAdf2+1
 2880 LDA df1+1,Y:STA df2+2:STAdf2+3
 2890 LDA df1+2,Y:STA df2+4:STAdf2+5
 2900 LDA df1+3,Y:STA df2+6:STAdf2+7
 2910 JMP pdef:.dbw LDX #&FF:STX idx
 2920.dbl1 INC idx:LDX idx
 2930 LDA d%,X:CMP #13:BEQ db1x
 2940 JSR gdef:LDX #0
 2950.dbl2 LDA df1,X:JSR dwd
 2960 PHA:INX:CPX #8:BNE dbl2
 2970 JSR pdef:DEX
 2980.dbl3 PLA:JSR dwd:DEX:BPL dbl3
 2990 JSR pdef:JMP dbl1
 3000.db1x RTS:.dwd
 3010 ROLA:PHP:ROLdf2,X:PLP:ROLdf2,X
 3020 ROLA:PHP:ROLdf2,X:PLP:ROLdf2,X
 3030 ROLA:PHP:ROLdf2,X:PLP:ROLdf2,X
 3040 ROLA:PHP:ROLdf2,X:PLP:ROLdf2,X
 3050 RTS:.posn PHA:LDA #31:JSR oswrch
 3060 LDA xpo:JSR oswrch
 3070 LDA ypo:JSR oswrch:PLA:RTS
 3080.gdef STA chr
 3090 LDX #chr MOD256:LDY #chr DIV256
 3100 LDA #10:JSR osword
 3110 LDA chr:CMP #32:BEQ prop
 3120 LDX #7:LDA #0:.slop0
 3130 ORA df1,X:DEX:BPL slop0
 3140 TAX:STA tmp:BMI chg
 3150.slop1 LDA #0:STA tmp:LDX #7
 3160.slop2 LDA df1,X:ASL A
 3170 STA df1,X:ORA tmp:STA tmp
 3180 DEX:BPL slop2:BIT tmp:BPL slop1
 3190.chg LDA sty:AND #1:BEQ fein
 3200.ital CLC:ROR df1:ROR df1
 3210 CLC:ROR df1+1:ROR df1+1
 3220 CLC:ROR df1+2:ROR df1+3
 3230.fein LDA sty:AND #2
 3240 BEQ invt:LDX #7
 3250.fl LDA df1,X:ASL A
 3260 AND df1,X:STA df1,X:DEX:BPL fl
 3270.invt LDA sty:AND #4
 3280 BEQ prop:LDX #7
 3290.iv LDA df1,X:EOR #&FF
 3300 STA df1,X:DEX:BPL iv
 3310.prop LDA #8:STA wid
 3320 AND sty:BEQ gdxx
 3330 LDA chr:CMP #32:BNE nspc
 3340 LDA #4:BNE gdx
 3350.nspc LDX #7:LDA #0
 3360.prlp1 ORA df1,X:DEX
 3370 BPL prlp1:LDX #8
 3380.prlp2 ROR A:BCS prlp3
 3390 DEX:BNE prlp2:.prlp3 TXA
 3400.gdx STA wid:.gdxx RTS
 3410.pdef LDA #23:JSR oswrch
 3420 LDA #255:JSR oswrch:LDY #0
 3430.pdl LDA df2,Y:JSR oswrch
 3440 INY:CPY #8:BNE pdl
 3450 LDA #255:JSR oswrch:RTS
 3460]:NEXT:ENDPROC
dT$= "MicroWorks"
nA$= "S.Turnbull"
x� (c) Micro User 1987
�� � �135:�:�" at ";�:�
��4:�23,1,0;0;0;0;0;
��=�-&200:�init
��:�title:�
�� �lift:�keys:G%=�
�� G%<32 �ctrl
�� G%>31 � G%<127 �let
�� G%>127 � G%<138 �fn
�� G%>143 � G%<154 �s_fn
�� G%>159 � G%<170 �c_fn
�� quit:�quit:�
�� �ctrl
�� G%=13 �ret
�
� �ret:� ip<8 �
�ptr(ip):px=LX%
"py=py-32+32*((SZ% �2)>0)
,�ptr(ip):�
6� �let:� ip<8 �
@�ptr(ip):�txt(G%,0,col)
J�ptr(ip):�
T	� �fn
^� G%<137 mode=G%-128 � �sp
h�
r� �sp:�ptr(ip):�nm
|+� n$>"" �cli("SAVE "+n$+l$+" FFFF8000")
��ptr(ip):�
�� �s_fn:� ip>-1 �
�� G%=144 col=col � 1
�� G%=145 fill=� fill
�� G%=146 � Nothing assigned
�� G%=147 � Nothing assigned
�� G%=148 � Nothing assigned
�� G%=149 PT%=(PT%+1)�mxpt
�� G%=150 wdth=(wdth+1)�mxwd
�� G%=151 dens=(dens+1)�mxdn
�� G%=152 SZ%=SZ% � 2
�� G%=153 �lp
��
� �lp:�ptr(ip):�nm
� n$>"" �cli("LOAD "+n$+l$)
�ptr(ip):�
&� �nm:�3,1:� 24,1000
0�5:�"Name:"n$:� 24,1000
:�"Name:"n$:�4,23,1,0;0;0;0;
D�
N� �cli($&700):�X%,Y%
XY%=7:�&FFF7:�
b-� �c_fn:� G%=160 �ptr(ip):�unset:�ptr(ip)
l
� ip>-1 �
v� G%=161 � Nothing assigned
�� G%=162 ST%=ST% � 1
�� G%=163 ST%=ST% � 2
�� G%=164 ST%=ST% � 4
�� G%=165 ST%=ST% � 8
�.� G%=166 wdth=wdth-1:� wdth=-1 wdth=mxwd-1
�.� G%=167 dens=dens-1:� dens=-1 dens=mxdn-1
�� G%=168 SZ%=SZ% � 1
�� G%=169 quit=�
��
�� �init
��136"Please wait...";
�TY%=1023:BY%=0:*FX225,128
�LX%=0:RX%=1279:*FX226,144
!bx=0:px=400:py=700:*FX227,160
col=1:mode=0:unset=-1:ip=-1
!wdth=4:mxwd=20:dens=4:mxdn=20
 ST%=10:SZ%=0:PT%=0
* mxpt=5:fill=�:l$=" FFFF5800"
4�unset:TG%=60:IG%=360/TG%
>#�&FE17;&6060;&6060;&6060;&7C60;
H� d% 256,s(TG%+TG%/4)
Rquit=�:�assem:*FX4,2
\AC%=-129:CL%=-26:CR%=-122
fCU%=-58:CD%=-42:CC%=-106
p� A%=0 � TG%+TG%/4
zs(A%)=��(IG%*A%)
��:K%=�:�
�� �title
��19,0,4;0;19,1,3;0;
��tab(T$,10,7,&A,3)
��tab("by",18,10,9,0)
��tab(A$,10,12,&C,1):*FX15
�
Z%=�500:�
�� �tab($d%,X%,Y%,A%,B%)
�?sty=A%:?siz=B%:� out:�
�� �quit:�:*FX4
��tab(T$,4,4):�
�� �keys
�� dx=0:dy=0:*FX21
� K% �ptr(ip)
�K%=�AC%:��K%
� �CL% dx=-�inc
$� �CR% dx=+�inc
.� �CD% dy=-�inc
8� �CU% dy=+�inc
B� �CC% K%=�
L� K% �ptr(ip):�move
V� �K%:�
`� �move:*FX21
j� dx=0 � dy=0 �set:�
tpx=px+dx:py=py+dy
~!� px<LX% px=LX%��px>RX%px=RX%
�!� py<BY% py=BY%��py>TY%py=TY%
��
�� �ptr(P%):� 3,1
��P%=-1 �pcr:�
��P%<6 �mode(P%):�
��P%=6 �brsh(wdth):�
��P%=7 �spry(dens,wdth):�
��P%=8 �mode(P%)
��
�
� �pcr
�� px,BY%:� px,TY%
�� LX%,py:� RX%,py
�

� �inc:K%=�
=4-12*�-1-28*�-2
� �set:K%=�
(� ip=-1 �start � �form
2�lift:�
<� �start:ip=mode
F!px2=px1:py2=py1:px1=px:py1=py
P� mode<>5 �
Z�chr(�"?"):*FX21
dsides=�"3456789",�)+2
n� sides<3 sides=0:�unset
x�chr(�"?"):�
�� �chr(C%):�5
�� px-16,py+32:�C%4
��
�� �mode(M%)
�� M%=0 �ln:�
�� M%=1 �dt:�
�� M%=2 �tr:�
�� M%=3 �rc:�
�� M%=4 �cc:�
�� M%=5 �pl:�
�� M%=6 � Nothing assigned
�� M%=7 � Nothing assigned
�� M%=8 �tx(px,py)
�
� �form:� 0,col
� ip<8 �mode(ip)
"�unset:�
,� �ln:� P%:P%=5
6� �dt:� P%:P%=21
@�plot(P%):�
J&� �tr:� px2=unset ip=-1:�ptr(ip):�
T� fill �plot(85):�
^� px2,py2:� px1,py1
h� px,py:� px2,py2:�
r� �plot(P%)
|� px2,py2:� px1,py1
�� P%,px,py:�
� � �unset:px2=unset:py2=unset
�#� mode>3 � mode<6 px=px1:py=py1
�px1=unset:py1=unset:ip=-1:�
�	� �rc
�� fill �rcf � �rcu
��
�
� �rcf
�� px1,py1:� px1,py
�� 85,px,py1:� 85,px,py
��
�
� �rcu
�� px1,py1:� px1,py
� px,py:� px,py1
� px1,py1:�
	� �cc
&� X%,Y%,R%,E%,P%,Q%
0"� fill P%=4:Q%=5 � P%=69:Q%=69
:Y%=�((px-px1)^2+(py-py1)^2)
D� Y%<4 �69,px,py:�
NE%=3-2*Y%:�29,px1;py1;
X� X%<Y% � �dc:�X%>=Y%
b� X%=Y% �dc
l�29,0;0;:�
v	� �dc
�� P%,X%,Y%:� Q%,X%,-Y%
�� P%,Y%,X%:� Q%,Y%,-X%
�� P%,-X%,Y%:� Q%,-X%,-Y%
�� P%,-Y%,X%:� Q%,-Y%,-X%
�4� E%<0 E%=E%+4*X%+6 � E%=E%+4*(X%-Y%)+10:Y%=Y%-4
�
X%=X%+4:�
�	� �pl
�$� fill �plf(sides) � �plu(sides)
��
�� �plu(S%):� A,I,R%
�R%=�((px-px1)^2+(py-py1)^2)
�� R%<4 �
�I=360/S%:� px1,py1+R%
� A=0 � 360+I � I
!� px1+�sn(A)*R%,py1+�cs(A)*R%
�:�
 � �plf(S%)
*� A,I,R%,X%,Y%
4R%=�((px-px1)^2+(py-py1)^2)
>� R%<4 �
HI=360/S%:X%=px1:Y%=py1+R%
R� A=0 � 360+I � I
\� X%,Y%:X%=px1+�sn(A)*R%
fY%=py1+�cs(A)*R%:� X%,Y%
p� 85,px1,py1:�:�
z� �sn(A%)=s((A%�360)�IG%)
�"� �cs(A%)=s(((A%+90)�360)�IG%)
�� �brsh(W%):�0,col
�� fill:fill=�
�px1=px:px=px+W%*4:py1=py
��mode(4):px=px1:�
�� �spry(S%,W%):�0,col
�� A%,L%,R%,C%:� S%=0 �
�W%=W%*4:� L%=1 � S%
�� �(3)=1 �:�
�A%=�(360):R%=�(W%)
�0�69,px+R%*s(A%�IG%),py+R%*s((A%+90)�360�IG%)
��:�
�� �lift:� ip<0 �ptr(ip)
	���AC%:� ip<0 �ptr(ip)
	�
	� �tx(px,py)
	$�txt(254,3,col):�
	.� �txt(C%,A%,B%)
	8� ip<>8 � � �A%,B%
	B%?sty=ST%:?siz=SZ%:d%?0=C%:d%?1=13
	L�px,py:�5:� prnt
	V�4,23,1,0;0;0;0;:px=px+�tix
	`�
	j� �tix:� W%:W%=?wid
	t� ST% �8 W%=W%+PT%
	~=(W%-W%*((SZ%�1)>0))*4
	�� �assem:code=�
	�chr=&4F:df1=&50:df2=&58
	�#xpo=&61:ypo=&62:idx=&63:idy=&64
	�#sty=&65:siz=&66:wid=&67:tmp=&68
	�oswrch=&FFEE:osword=&FFF1
	�osbyte=&FFF4:� L%=0 � 2 � 2
	�P%=code:[OPT L%
	�.out STX xpo:STY ypo
	� LDX d%:CPX #13:BNE ppp:RTS
	�.ppp JSR posn:.prnt
	�! LDA siz:� #15:CMP #0:BEQ nrm
	�! CMP #2:BEQ dbh:CMP #3:BEQ qd
" JMP dbw:.nrm LDX #&FF:STX idx

.nrm1 INC idx:LDX idx
 LDA d%,X:CMP #13:BEQ nrmx
 JSR gdef:LDX #7
(.nm LDA df1,X:STA df2,X
2! DEX:BPL nm:JSR pdef:JMP nrm1
<
.nrmx RTS
F.qd LDX #&FF:STX idx
P.qd1 INC idx:LDX idx
Z LDA d%,X:CMP #13:BEQ qdx
d JSR gdef:LDX #0
n.qd2 LDA df1,X:JSR dwd:PHA
x INX:CPX #8:BNE qd2
� JSR def21:JSR pdh:LDX #7
� .qd3 PLA:JSR dwd:DEX:BPL qd3
� JSR def21:JSR pdh:JMP qd1
�.qdx RTS
�.def21 LDX #7
�.d21 LDA df2,X:STA df1,X
� DEX:BPL d21:RTS
�.dbh LDX #&FF:STX idx
�.dhl1 INC idx:LDX idx
� LDA d%,X:CMP #13:BEQ dh1x
� JSR gdef:JSR pdh:JMP dhl1
�
.dh1x RTS
�.pdh LDY #0:JSR dhd
 LDA #8:JSR oswrch
 LDA #10:JSR oswrch
 LDY #4:JSR dhd
" LDA #11:JSR oswrch:RTS
,.dhd
6# LDA df1+0,Y:STA df2+0:STAdf2+1
@# LDA df1+1,Y:STA df2+2:STAdf2+3
J# LDA df1+2,Y:STA df2+4:STAdf2+5
T# LDA df1+3,Y:STA df2+6:STAdf2+7
^# JMP pdef:.dbw LDX #&FF:STX idx
h.dbl1 INC idx:LDX idx
r LDA d%,X:CMP #13:BEQ db1x
| JSR gdef:LDX #0
�.dbl2 LDA df1,X:JSR dwd
� PHA:INX:CPX #8:BNE dbl2
� JSR pdef:DEX
�".dbl3 PLA:JSR dwd:DEX:BPL dbl3
� JSR pdef:JMP dbl1
�.db1x RTS:.dwd
�# ROLA:PHP:ROLdf2,X:PLP:ROLdf2,X
�# ROLA:PHP:ROLdf2,X:PLP:ROLdf2,X
�# ROLA:PHP:ROLdf2,X:PLP:ROLdf2,X
�# ROLA:PHP:ROLdf2,X:PLP:ROLdf2,X
�% RTS:.posn PHA:LDA #31:JSR oswrch
� LDA xpo:JSR oswrch
� LDA ypo:JSR oswrch:PLA:RTS
.gdef STA chr
  LDX #chr �256:LDY #chr �256
 LDA #10:JSR osword
& LDA chr:CMP #32:BEQ prop
0 LDX #7:LDA #0:.slop0
: �A df1,X:DEX:BPL slop0
D TAX:STA tmp:BMI chg
N .slop1 LDA #0:STA tmp:LDX #7
X.slop2 LDA df1,X:ASL A
b STA df1,X:�A tmp:STA tmp
l$ DEX:BPL slop2:BIT tmp:BPL slop1
v.chg LDA sty:� #1:BEQ fein
�.ital CLC:ROR df1:ROR df1
� CLC:ROR df1+1:ROR df1+1
� CLC:ROR df1+2:ROR df1+3
�.fein LDA sty:� #2
� BEQ invt:LDX #7
�.fl LDA df1,X:ASL A
�! � df1,X:STA df1,X:DEX:BPL fl
�.invt LDA sty:� #4
� BEQ prop:LDX #7
�.iv LDA df1,X:� #&FF
� STA df1,X:DEX:BPL iv
�.prop LDA #8:STA wid
� � sty:BEQ gdxx

 LDA chr:CMP #32:BNE nspc

 LDA #4:BNE gdx

.nspc LDX #7:LDA #0

 .prlp1 �A df1,X:DEX

* BPL prlp1:LDX #8

4.prlp2 ROR A:BCS prlp3

> DEX:BNE prlp2:.prlp3 TXA

H.gdx STA wid:.gdxx RTS

R.pdef LDA #23:JSR oswrch

\ LDA #255:JSR oswrch:LDY #0

f.pdl LDA df2,Y:JSR oswrch

p INY:CPY #8:BNE pdl

z LDA #255:JSR oswrch:RTS

�	]:�:�
�
00000000  0d 00 64 14 54 24 3d 20  22 4d 69 63 72 6f 57 6f  |..d.T$= "MicroWo|
00000010  72 6b 73 22 0d 00 6e 14  41 24 3d 20 22 53 2e 54  |rks"..n.A$= "S.T|
00000020  75 72 6e 62 75 6c 6c 22  0d 00 78 19 f4 20 28 63  |urnbull"..x.. (c|
00000030  29 20 4d 69 63 72 6f 20  55 73 65 72 20 31 39 38  |) Micro User 198|
00000040  37 0d 00 82 1a ee 20 85  20 eb 31 33 35 3a f6 3a  |7..... . .135:.:|
00000050  f1 22 20 61 74 20 22 3b  9e 3a e0 0d 00 8c 17 eb  |." at ";.:......|
00000060  34 3a ef 32 33 2c 31 2c  30 3b 30 3b 30 3b 30 3b  |4:.23,1,0;0;0;0;|
00000070  30 3b 0d 00 96 12 d3 3d  93 2d 26 32 30 30 3a f2  |0;.....=.-&200:.|
00000080  69 6e 69 74 0d 00 a0 0e  db 3a f2 74 69 74 6c 65  |init.....:.title|
00000090  3a db 0d 00 aa 16 f5 20  f2 6c 69 66 74 3a f2 6b  |:...... .lift:.k|
000000a0  65 79 73 3a 47 25 3d a5  0d 00 b4 11 e7 20 47 25  |eys:G%=...... G%|
000000b0  3c 33 32 20 f2 63 74 72  6c 0d 00 be 19 e7 20 47  |<32 .ctrl..... G|
000000c0  25 3e 33 31 20 e7 20 47  25 3c 31 32 37 20 f2 6c  |%>31 . G%<127 .l|
000000d0  65 74 0d 00 c8 19 e7 20  47 25 3e 31 32 37 20 e7  |et..... G%>127 .|
000000e0  20 47 25 3c 31 33 38 20  f2 66 6e 0d 00 d2 1b e7  | G%<138 .fn.....|
000000f0  20 47 25 3e 31 34 33 20  e7 20 47 25 3c 31 35 34  | G%>143 . G%<154|
00000100  20 f2 73 5f 66 6e 0d 00  dc 1b e7 20 47 25 3e 31  | .s_fn..... G%>1|
00000110  35 39 20 e7 20 47 25 3c  31 37 30 20 f2 63 5f 66  |59 . G%<170 .c_f|
00000120  6e 0d 00 e6 12 fd 20 71  75 69 74 3a f2 71 75 69  |n..... quit:.qui|
00000130  74 3a e0 0d 00 f0 0b dd  20 f2 63 74 72 6c 0d 00  |t:...... .ctrl..|
00000140  fa 10 e7 20 47 25 3d 31  33 20 f2 72 65 74 0d 01  |... G%=13 .ret..|
00000150  04 05 e1 0d 01 0e 13 dd  20 f2 72 65 74 3a e7 20  |........ .ret:. |
00000160  69 70 3c 38 20 e1 0d 01  18 13 f2 70 74 72 28 69  |ip<8 ......ptr(i|
00000170  70 29 3a 70 78 3d 4c 58  25 0d 01 22 1c 70 79 3d  |p):px=LX%..".py=|
00000180  70 79 2d 33 32 2b 33 32  2a 28 28 53 5a 25 20 80  |py-32+32*((SZ% .|
00000190  32 29 3e 30 29 0d 01 2c  0e f2 70 74 72 28 69 70  |2)>0)..,..ptr(ip|
000001a0  29 3a e1 0d 01 36 13 dd  20 f2 6c 65 74 3a e7 20  |):...6.. .let:. |
000001b0  69 70 3c 38 20 e1 0d 01  40 1b f2 70 74 72 28 69  |ip<8 ...@..ptr(i|
000001c0  70 29 3a f2 74 78 74 28  47 25 2c 30 2c 63 6f 6c  |p):.txt(G%,0,col|
000001d0  29 0d 01 4a 0e f2 70 74  72 28 69 70 29 3a e1 0d  |)..J..ptr(ip):..|
000001e0  01 54 09 dd 20 f2 66 6e  0d 01 5e 1e e7 20 47 25  |.T.. .fn..^.. G%|
000001f0  3c 31 33 37 20 6d 6f 64  65 3d 47 25 2d 31 32 38  |<137 mode=G%-128|
00000200  20 8b 20 f2 73 70 0d 01  68 05 e1 0d 01 72 16 dd  | . .sp..h....r..|
00000210  20 f2 73 70 3a f2 70 74  72 28 69 70 29 3a f2 6e  | .sp:.ptr(ip):.n|
00000220  6d 0d 01 7c 2b e7 20 6e  24 3e 22 22 20 f2 63 6c  |m..|+. n$>"" .cl|
00000230  69 28 22 53 41 56 45 20  22 2b 6e 24 2b 6c 24 2b  |i("SAVE "+n$+l$+|
00000240  22 20 46 46 46 46 38 30  30 30 22 29 0d 01 86 0e  |" FFFF8000")....|
00000250  f2 70 74 72 28 69 70 29  3a e1 0d 01 90 15 dd 20  |.ptr(ip):...... |
00000260  f2 73 5f 66 6e 3a e7 20  69 70 3e 2d 31 20 e1 0d  |.s_fn:. ip>-1 ..|
00000270  01 9a 18 e7 20 47 25 3d  31 34 34 20 63 6f 6c 3d  |.... G%=144 col=|
00000280  63 6f 6c 20 82 20 31 0d  01 a4 18 e7 20 47 25 3d  |col . 1..... G%=|
00000290  31 34 35 20 66 69 6c 6c  3d ac 20 66 69 6c 6c 0d  |145 fill=. fill.|
000002a0  01 ae 1f e7 20 47 25 3d  31 34 36 20 f4 20 4e 6f  |.... G%=146 . No|
000002b0  74 68 69 6e 67 20 61 73  73 69 67 6e 65 64 0d 01  |thing assigned..|
000002c0  b8 1f e7 20 47 25 3d 31  34 37 20 f4 20 4e 6f 74  |... G%=147 . Not|
000002d0  68 69 6e 67 20 61 73 73  69 67 6e 65 64 0d 01 c2  |hing assigned...|
000002e0  1f e7 20 47 25 3d 31 34  38 20 f4 20 4e 6f 74 68  |.. G%=148 . Noth|
000002f0  69 6e 67 20 61 73 73 69  67 6e 65 64 0d 01 cc 1d  |ing assigned....|
00000300  e7 20 47 25 3d 31 34 39  20 50 54 25 3d 28 50 54  |. G%=149 PT%=(PT|
00000310  25 2b 31 29 83 6d 78 70  74 0d 01 d6 1f e7 20 47  |%+1).mxpt..... G|
00000320  25 3d 31 35 30 20 77 64  74 68 3d 28 77 64 74 68  |%=150 wdth=(wdth|
00000330  2b 31 29 83 6d 78 77 64  0d 01 e0 1f e7 20 47 25  |+1).mxwd..... G%|
00000340  3d 31 35 31 20 64 65 6e  73 3d 28 64 65 6e 73 2b  |=151 dens=(dens+|
00000350  31 29 83 6d 78 64 6e 0d  01 ea 18 e7 20 47 25 3d  |1).mxdn..... G%=|
00000360  31 35 32 20 53 5a 25 3d  53 5a 25 20 82 20 32 0d  |152 SZ%=SZ% . 2.|
00000370  01 f4 10 e7 20 47 25 3d  31 35 33 20 f2 6c 70 0d  |.... G%=153 .lp.|
00000380  01 fe 05 e1 0d 02 08 16  dd 20 f2 6c 70 3a f2 70  |......... .lp:.p|
00000390  74 72 28 69 70 29 3a f2  6e 6d 0d 02 12 1f e7 20  |tr(ip):.nm..... |
000003a0  6e 24 3e 22 22 20 f2 63  6c 69 28 22 4c 4f 41 44  |n$>"" .cli("LOAD|
000003b0  20 22 2b 6e 24 2b 6c 24  29 0d 02 1c 0e f2 70 74  | "+n$+l$).....pt|
000003c0  72 28 69 70 29 3a e1 0d  02 26 18 dd 20 f2 6e 6d  |r(ip):...&.. .nm|
000003d0  3a e6 33 2c 31 3a ec 20  32 34 2c 31 30 30 30 0d  |:.3,1:. 24,1000.|
000003e0  02 30 1b ef 35 3a e8 22  4e 61 6d 65 3a 22 6e 24  |.0..5:."Name:"n$|
000003f0  3a ec 20 32 34 2c 31 30  30 30 0d 02 3a 1f f1 22  |:. 24,1000..:.."|
00000400  4e 61 6d 65 3a 22 6e 24  3a ef 34 2c 32 33 2c 31  |Name:"n$:.4,23,1|
00000410  2c 30 3b 30 3b 30 3b 30  3b 0d 02 44 05 e1 0d 02  |,0;0;0;0;..D....|
00000420  4e 18 dd 20 f2 63 6c 69  28 24 26 37 30 30 29 3a  |N.. .cli($&700):|
00000430  ea 58 25 2c 59 25 0d 02  58 11 59 25 3d 37 3a d6  |.X%,Y%..X.Y%=7:.|
00000440  26 46 46 46 37 3a e1 0d  02 62 2d dd 20 f2 63 5f  |&FFF7:...b-. .c_|
00000450  66 6e 3a e7 20 47 25 3d  31 36 30 20 f2 70 74 72  |fn:. G%=160 .ptr|
00000460  28 69 70 29 3a f2 75 6e  73 65 74 3a f2 70 74 72  |(ip):.unset:.ptr|
00000470  28 69 70 29 0d 02 6c 0d  e7 20 69 70 3e 2d 31 20  |(ip)..l.. ip>-1 |
00000480  e1 0d 02 76 1f e7 20 47  25 3d 31 36 31 20 f4 20  |...v.. G%=161 . |
00000490  4e 6f 74 68 69 6e 67 20  61 73 73 69 67 6e 65 64  |Nothing assigned|
000004a0  0d 02 80 18 e7 20 47 25  3d 31 36 32 20 53 54 25  |..... G%=162 ST%|
000004b0  3d 53 54 25 20 82 20 31  0d 02 8a 18 e7 20 47 25  |=ST% . 1..... G%|
000004c0  3d 31 36 33 20 53 54 25  3d 53 54 25 20 82 20 32  |=163 ST%=ST% . 2|
000004d0  0d 02 94 18 e7 20 47 25  3d 31 36 34 20 53 54 25  |..... G%=164 ST%|
000004e0  3d 53 54 25 20 82 20 34  0d 02 9e 18 e7 20 47 25  |=ST% . 4..... G%|
000004f0  3d 31 36 35 20 53 54 25  3d 53 54 25 20 82 20 38  |=165 ST%=ST% . 8|
00000500  0d 02 a8 2e e7 20 47 25  3d 31 36 36 20 77 64 74  |..... G%=166 wdt|
00000510  68 3d 77 64 74 68 2d 31  3a e7 20 77 64 74 68 3d  |h=wdth-1:. wdth=|
00000520  2d 31 20 77 64 74 68 3d  6d 78 77 64 2d 31 0d 02  |-1 wdth=mxwd-1..|
00000530  b2 2e e7 20 47 25 3d 31  36 37 20 64 65 6e 73 3d  |... G%=167 dens=|
00000540  64 65 6e 73 2d 31 3a e7  20 64 65 6e 73 3d 2d 31  |dens-1:. dens=-1|
00000550  20 64 65 6e 73 3d 6d 78  64 6e 2d 31 0d 02 bc 18  | dens=mxdn-1....|
00000560  e7 20 47 25 3d 31 36 38  20 53 5a 25 3d 53 5a 25  |. G%=168 SZ%=SZ%|
00000570  20 82 20 31 0d 02 c6 13  e7 20 47 25 3d 31 36 39  | . 1..... G%=169|
00000580  20 71 75 69 74 3d b9 0d  02 d0 05 e1 0d 02 da 0b  | quit=..........|
00000590  dd 20 f2 69 6e 69 74 0d  02 e4 1a f1 bd 31 33 36  |. .init......136|
000005a0  22 50 6c 65 61 73 65 20  77 61 69 74 2e 2e 2e 22  |"Please wait..."|
000005b0  3b 0d 02 ee 1d 54 59 25  3d 31 30 32 33 3a 42 59  |;....TY%=1023:BY|
000005c0  25 3d 30 3a 2a 46 58 32  32 35 2c 31 32 38 0d 02  |%=0:*FX225,128..|
000005d0  f8 1d 4c 58 25 3d 30 3a  52 58 25 3d 31 32 37 39  |..LX%=0:RX%=1279|
000005e0  3a 2a 46 58 32 32 36 2c  31 34 34 0d 03 02 21 62  |:*FX226,144...!b|
000005f0  78 3d 30 3a 70 78 3d 34  30 30 3a 70 79 3d 37 30  |x=0:px=400:py=70|
00000600  30 3a 2a 46 58 32 32 37  2c 31 36 30 0d 03 0c 1f  |0:*FX227,160....|
00000610  63 6f 6c 3d 31 3a 6d 6f  64 65 3d 30 3a 75 6e 73  |col=1:mode=0:uns|
00000620  65 74 3d 2d 31 3a 69 70  3d 2d 31 0d 03 16 21 77  |et=-1:ip=-1...!w|
00000630  64 74 68 3d 34 3a 6d 78  77 64 3d 32 30 3a 64 65  |dth=4:mxwd=20:de|
00000640  6e 73 3d 34 3a 6d 78 64  6e 3d 32 30 0d 03 20 16  |ns=4:mxdn=20.. .|
00000650  53 54 25 3d 31 30 3a 53  5a 25 3d 30 3a 50 54 25  |ST%=10:SZ%=0:PT%|
00000660  3d 30 0d 03 2a 20 6d 78  70 74 3d 35 3a 66 69 6c  |=0..* mxpt=5:fil|
00000670  6c 3d a3 3a 6c 24 3d 22  20 46 46 46 46 35 38 30  |l=.:l$=" FFFF580|
00000680  30 22 0d 03 34 1d f2 75  6e 73 65 74 3a 54 47 25  |0"..4..unset:TG%|
00000690  3d 36 30 3a 49 47 25 3d  33 36 30 2f 54 47 25 0d  |=60:IG%=360/TG%.|
000006a0  03 3e 23 ef 26 46 45 31  37 3b 26 36 30 36 30 3b  |.>#.&FE17;&6060;|
000006b0  26 36 30 36 30 3b 26 36  30 36 30 3b 26 37 43 36  |&6060;&6060;&7C6|
000006c0  30 3b 0d 03 48 19 de 20  64 25 20 32 35 36 2c 73  |0;..H.. d% 256,s|
000006d0  28 54 47 25 2b 54 47 25  2f 34 29 0d 03 52 18 71  |(TG%+TG%/4)..R.q|
000006e0  75 69 74 3d a3 3a f2 61  73 73 65 6d 3a 2a 46 58  |uit=.:.assem:*FX|
000006f0  34 2c 32 0d 03 5c 1d 41  43 25 3d 2d 31 32 39 3a  |4,2..\.AC%=-129:|
00000700  43 4c 25 3d 2d 32 36 3a  43 52 25 3d 2d 31 32 32  |CL%=-26:CR%=-122|
00000710  0d 03 66 1c 43 55 25 3d  2d 35 38 3a 43 44 25 3d  |..f.CU%=-58:CD%=|
00000720  2d 34 32 3a 43 43 25 3d  2d 31 30 36 0d 03 70 16  |-42:CC%=-106..p.|
00000730  e3 20 41 25 3d 30 20 b8  20 54 47 25 2b 54 47 25  |. A%=0 . TG%+TG%|
00000740  2f 34 0d 03 7a 14 73 28  41 25 29 3d b5 b2 28 49  |/4..z.s(A%)=..(I|
00000750  47 25 2a 41 25 29 0d 03  84 0c ed 3a 4b 25 3d b9  |G%*A%).....:K%=.|
00000760  3a e1 0d 03 8e 0c dd 20  f2 74 69 74 6c 65 0d 03  |:...... .title..|
00000770  98 17 ef 31 39 2c 30 2c  34 3b 30 3b 31 39 2c 31  |...19,0,4;0;19,1|
00000780  2c 33 3b 30 3b 0d 03 a2  16 f2 74 61 62 28 54 24  |,3;0;.....tab(T$|
00000790  2c 31 30 2c 37 2c 26 41  2c 33 29 0d 03 ac 18 f2  |,10,7,&A,3).....|
000007a0  74 61 62 28 22 62 79 22  2c 31 38 2c 31 30 2c 39  |tab("by",18,10,9|
000007b0  2c 30 29 0d 03 b6 1d f2  74 61 62 28 41 24 2c 31  |,0).....tab(A$,1|
000007c0  30 2c 31 32 2c 26 43 2c  31 29 3a 2a 46 58 31 35  |0,12,&C,1):*FX15|
000007d0  0d 03 c0 0d 5a 25 3d a6  35 30 30 3a e1 0d 03 ca  |....Z%=.500:....|
000007e0  1b dd 20 f2 74 61 62 28  24 64 25 2c 58 25 2c 59  |.. .tab($d%,X%,Y|
000007f0  25 2c 41 25 2c 42 25 29  0d 03 d4 1b 3f 73 74 79  |%,A%,B%)....?sty|
00000800  3d 41 25 3a 3f 73 69 7a  3d 42 25 3a d6 20 6f 75  |=A%:?siz=B%:. ou|
00000810  74 3a e1 0d 03 de 12 dd  20 f2 71 75 69 74 3a db  |t:...... .quit:.|
00000820  3a 2a 46 58 34 0d 03 e8  12 f2 74 61 62 28 54 24  |:*FX4.....tab(T$|
00000830  2c 34 2c 34 29 3a e1 0d  03 f2 0b dd 20 f2 6b 65  |,4,4):...... .ke|
00000840  79 73 0d 03 fc 15 f5 20  64 78 3d 30 3a 64 79 3d  |ys..... dx=0:dy=|
00000850  30 3a 2a 46 58 32 31 0d  04 06 11 e7 20 4b 25 20  |0:*FX21..... K% |
00000860  f2 70 74 72 28 69 70 29  0d 04 10 11 f5 4b 25 3d  |.ptr(ip).....K%=|
00000870  a6 41 43 25 3a fd ac 4b  25 0d 04 1a 13 e7 20 a6  |.AC%:..K%..... .|
00000880  43 4c 25 20 64 78 3d 2d  a4 69 6e 63 0d 04 24 13  |CL% dx=-.inc..$.|
00000890  e7 20 a6 43 52 25 20 64  78 3d 2b a4 69 6e 63 0d  |. .CR% dx=+.inc.|
000008a0  04 2e 13 e7 20 a6 43 44  25 20 64 79 3d 2d a4 69  |.... .CD% dy=-.i|
000008b0  6e 63 0d 04 38 13 e7 20  a6 43 55 25 20 64 79 3d  |nc..8.. .CU% dy=|
000008c0  2b a4 69 6e 63 0d 04 42  0f e7 20 a6 43 43 25 20  |+.inc..B.. .CC% |
000008d0  4b 25 3d b9 0d 04 4c 17  e7 20 4b 25 20 f2 70 74  |K%=...L.. K% .pt|
000008e0  72 28 69 70 29 3a f2 6d  6f 76 65 0d 04 56 0b fd  |r(ip):.move..V..|
000008f0  20 ac 4b 25 3a e1 0d 04  60 11 dd 20 f2 6d 6f 76  | .K%:...`.. .mov|
00000900  65 3a 2a 46 58 32 31 0d  04 6a 18 e7 20 64 78 3d  |e:*FX21..j.. dx=|
00000910  30 20 e7 20 64 79 3d 30  20 f2 73 65 74 3a e1 0d  |0 . dy=0 .set:..|
00000920  04 74 15 70 78 3d 70 78  2b 64 78 3a 70 79 3d 70  |.t.px=px+dx:py=p|
00000930  79 2b 64 79 0d 04 7e 21  e7 20 70 78 3c 4c 58 25  |y+dy..~!. px<LX%|
00000940  20 70 78 3d 4c 58 25 8b  e7 70 78 3e 52 58 25 70  | px=LX%..px>RX%p|
00000950  78 3d 52 58 25 0d 04 88  21 e7 20 70 79 3c 42 59  |x=RX%...!. py<BY|
00000960  25 20 70 79 3d 42 59 25  8b e7 70 79 3e 54 59 25  |% py=BY%..py>TY%|
00000970  70 79 3d 54 59 25 0d 04  92 05 e1 0d 04 9c 14 dd  |py=TY%..........|
00000980  20 f2 70 74 72 28 50 25  29 3a e6 20 33 2c 31 0d  | .ptr(P%):. 3,1.|
00000990  04 a6 11 e7 50 25 3d 2d  31 20 f2 70 63 72 3a e1  |....P%=-1 .pcr:.|
000009a0  0d 04 b0 15 e7 50 25 3c  36 20 f2 6d 6f 64 65 28  |.....P%<6 .mode(|
000009b0  50 25 29 3a e1 0d 04 ba  17 e7 50 25 3d 36 20 f2  |P%):......P%=6 .|
000009c0  62 72 73 68 28 77 64 74  68 29 3a e1 0d 04 c4 1c  |brsh(wdth):.....|
000009d0  e7 50 25 3d 37 20 f2 73  70 72 79 28 64 65 6e 73  |.P%=7 .spry(dens|
000009e0  2c 77 64 74 68 29 3a e1  0d 04 ce 13 e7 50 25 3d  |,wdth):......P%=|
000009f0  38 20 f2 6d 6f 64 65 28  50 25 29 0d 04 d8 05 e1  |8 .mode(P%).....|
00000a00  0d 04 e2 0a dd 20 f2 70  63 72 0d 04 ec 15 ec 20  |..... .pcr..... |
00000a10  70 78 2c 42 59 25 3a df  20 70 78 2c 54 59 25 0d  |px,BY%:. px,TY%.|
00000a20  04 f6 15 ec 20 4c 58 25  2c 70 79 3a df 20 52 58  |.... LX%,py:. RX|
00000a30  25 2c 70 79 0d 05 00 05  e1 0d 05 0a 0f dd 20 a4  |%,py.......... .|
00000a40  69 6e 63 3a 4b 25 3d b9  0d 05 14 14 3d 34 2d 31  |inc:K%=.....=4-1|
00000a50  32 2a a6 2d 31 2d 32 38  2a a6 2d 32 0d 05 1e 0f  |2*.-1-28*.-2....|
00000a60  dd 20 f2 73 65 74 3a 4b  25 3d b9 0d 05 28 1a e7  |. .set:K%=...(..|
00000a70  20 69 70 3d 2d 31 20 f2  73 74 61 72 74 20 8b 20  | ip=-1 .start . |
00000a80  f2 66 6f 72 6d 0d 05 32  0b f2 6c 69 66 74 3a e1  |.form..2..lift:.|
00000a90  0d 05 3c 14 dd 20 f2 73  74 61 72 74 3a 69 70 3d  |..<.. .start:ip=|
00000aa0  6d 6f 64 65 0d 05 46 21  70 78 32 3d 70 78 31 3a  |mode..F!px2=px1:|
00000ab0  70 79 32 3d 70 79 31 3a  70 78 31 3d 70 78 3a 70  |py2=py1:px1=px:p|
00000ac0  79 31 3d 70 79 0d 05 50  0f e7 20 6d 6f 64 65 3c  |y1=py..P.. mode<|
00000ad0  3e 35 20 e1 0d 05 5a 14  f2 63 68 72 28 97 22 3f  |>5 ...Z..chr(."?|
00000ae0  22 29 3a 2a 46 58 32 31  0d 05 64 19 73 69 64 65  |"):*FX21..d.side|
00000af0  73 3d a7 22 33 34 35 36  37 38 39 22 2c be 29 2b  |s=."3456789",.)+|
00000b00  32 0d 05 6e 1c e7 20 73  69 64 65 73 3c 33 20 73  |2..n.. sides<3 s|
00000b10  69 64 65 73 3d 30 3a f2  75 6e 73 65 74 0d 05 78  |ides=0:.unset..x|
00000b20  10 f2 63 68 72 28 97 22  3f 22 29 3a e1 0d 05 82  |..chr(."?"):....|
00000b30  11 dd 20 f2 63 68 72 28  43 25 29 3a ef 35 0d 05  |.. .chr(C%):.5..|
00000b40  8c 16 ec 20 70 78 2d 31  36 2c 70 79 2b 33 32 3a  |... px-16,py+32:|
00000b50  ef 43 25 34 0d 05 96 05  e1 0d 05 a0 0f dd 20 f2  |.C%4.......... .|
00000b60  6d 6f 64 65 28 4d 25 29  0d 05 aa 10 e7 20 4d 25  |mode(M%)..... M%|
00000b70  3d 30 20 f2 6c 6e 3a e1  0d 05 b4 10 e7 20 4d 25  |=0 .ln:...... M%|
00000b80  3d 31 20 f2 64 74 3a e1  0d 05 be 10 e7 20 4d 25  |=1 .dt:...... M%|
00000b90  3d 32 20 f2 74 72 3a e1  0d 05 c8 10 e7 20 4d 25  |=2 .tr:...... M%|
00000ba0  3d 33 20 f2 72 63 3a e1  0d 05 d2 10 e7 20 4d 25  |=3 .rc:...... M%|
00000bb0  3d 34 20 f2 63 63 3a e1  0d 05 dc 10 e7 20 4d 25  |=4 .cc:...... M%|
00000bc0  3d 35 20 f2 70 6c 3a e1  0d 05 e6 1d e7 20 4d 25  |=5 .pl:...... M%|
00000bd0  3d 36 20 f4 20 4e 6f 74  68 69 6e 67 20 61 73 73  |=6 . Nothing ass|
00000be0  69 67 6e 65 64 0d 05 f0  1d e7 20 4d 25 3d 37 20  |igned..... M%=7 |
00000bf0  f4 20 4e 6f 74 68 69 6e  67 20 61 73 73 69 67 6e  |. Nothing assign|
00000c00  65 64 0d 05 fa 15 e7 20  4d 25 3d 38 20 f2 74 78  |ed..... M%=8 .tx|
00000c10  28 70 78 2c 70 79 29 0d  06 04 05 e1 0d 06 0e 13  |(px,py).........|
00000c20  dd 20 f2 66 6f 72 6d 3a  e6 20 30 2c 63 6f 6c 0d  |. .form:. 0,col.|
00000c30  06 18 14 e7 20 69 70 3c  38 20 f2 6d 6f 64 65 28  |.... ip<8 .mode(|
00000c40  69 70 29 0d 06 22 0c f2  75 6e 73 65 74 3a e1 0d  |ip).."..unset:..|
00000c50  06 2c 13 dd 20 f2 6c 6e  3a ea 20 50 25 3a 50 25  |.,.. .ln:. P%:P%|
00000c60  3d 35 0d 06 36 14 dd 20  f2 64 74 3a ea 20 50 25  |=5..6.. .dt:. P%|
00000c70  3a 50 25 3d 32 31 0d 06  40 0f f2 70 6c 6f 74 28  |:P%=21..@..plot(|
00000c80  50 25 29 3a e1 0d 06 4a  26 dd 20 f2 74 72 3a e7  |P%):...J&. .tr:.|
00000c90  20 70 78 32 3d 75 6e 73  65 74 20 69 70 3d 2d 31  | px2=unset ip=-1|
00000ca0  3a f2 70 74 72 28 69 70  29 3a e1 0d 06 54 16 e7  |:.ptr(ip):...T..|
00000cb0  20 66 69 6c 6c 20 f2 70  6c 6f 74 28 38 35 29 3a  | fill .plot(85):|
00000cc0  e1 0d 06 5e 17 ec 20 70  78 32 2c 70 79 32 3a df  |...^.. px2,py2:.|
00000cd0  20 70 78 31 2c 70 79 31  0d 06 68 17 df 20 70 78  | px1,py1..h.. px|
00000ce0  2c 70 79 3a df 20 70 78  32 2c 70 79 32 3a e1 0d  |,py:. px2,py2:..|
00000cf0  06 72 0f dd 20 f2 70 6c  6f 74 28 50 25 29 0d 06  |.r.. .plot(P%)..|
00000d00  7c 17 ec 20 70 78 32 2c  70 79 32 3a ec 20 70 78  ||.. px2,py2:. px|
00000d10  31 2c 70 79 31 0d 06 86  10 f0 20 50 25 2c 70 78  |1,py1..... P%,px|
00000d20  2c 70 79 3a e1 0d 06 90  20 dd 20 f2 75 6e 73 65  |,py:.... . .unse|
00000d30  74 3a 70 78 32 3d 75 6e  73 65 74 3a 70 79 32 3d  |t:px2=unset:py2=|
00000d40  75 6e 73 65 74 0d 06 9a  23 e7 20 6d 6f 64 65 3e  |unset...#. mode>|
00000d50  33 20 e7 20 6d 6f 64 65  3c 36 20 70 78 3d 70 78  |3 . mode<6 px=px|
00000d60  31 3a 70 79 3d 70 79 31  0d 06 a4 1f 70 78 31 3d  |1:py=py1....px1=|
00000d70  75 6e 73 65 74 3a 70 79  31 3d 75 6e 73 65 74 3a  |unset:py1=unset:|
00000d80  69 70 3d 2d 31 3a e1 0d  06 ae 09 dd 20 f2 72 63  |ip=-1:...... .rc|
00000d90  0d 06 b8 16 e7 20 66 69  6c 6c 20 f2 72 63 66 20  |..... fill .rcf |
00000da0  8b 20 f2 72 63 75 0d 06  c2 05 e1 0d 06 cc 0a dd  |. .rcu..........|
00000db0  20 f2 72 63 66 0d 06 d6  16 ec 20 70 78 31 2c 70  | .rcf..... px1,p|
00000dc0  79 31 3a ec 20 70 78 31  2c 70 79 0d 06 e0 1a f0  |y1:. px1,py.....|
00000dd0  20 38 35 2c 70 78 2c 70  79 31 3a f0 20 38 35 2c  | 85,px,py1:. 85,|
00000de0  70 78 2c 70 79 0d 06 ea  05 e1 0d 06 f4 0a dd 20  |px,py.......... |
00000df0  f2 72 63 75 0d 06 fe 16  ec 20 70 78 31 2c 70 79  |.rcu..... px1,py|
00000e00  31 3a df 20 70 78 31 2c  70 79 0d 07 08 14 df 20  |1:. px1,py..... |
00000e10  70 78 2c 70 79 3a df 20  70 78 2c 70 79 31 0d 07  |px,py:. px,py1..|
00000e20  12 0f df 20 70 78 31 2c  70 79 31 3a e1 0d 07 1c  |... px1,py1:....|
00000e30  09 dd 20 f2 63 63 0d 07  26 17 ea 20 58 25 2c 59  |.. .cc..&.. X%,Y|
00000e40  25 2c 52 25 2c 45 25 2c  50 25 2c 51 25 0d 07 30  |%,R%,E%,P%,Q%..0|
00000e50  22 e7 20 66 69 6c 6c 20  50 25 3d 34 3a 51 25 3d  |". fill P%=4:Q%=|
00000e60  35 20 8b 20 50 25 3d 36  39 3a 51 25 3d 36 39 0d  |5 . P%=69:Q%=69.|
00000e70  07 3a 1f 59 25 3d b6 28  28 70 78 2d 70 78 31 29  |.:.Y%=.((px-px1)|
00000e80  5e 32 2b 28 70 79 2d 70  79 31 29 5e 32 29 0d 07  |^2+(py-py1)^2)..|
00000e90  44 16 e7 20 59 25 3c 34  20 f0 36 39 2c 70 78 2c  |D.. Y%<4 .69,px,|
00000ea0  70 79 3a e1 0d 07 4e 1a  45 25 3d 33 2d 32 2a 59  |py:...N.E%=3-2*Y|
00000eb0  25 3a ef 32 39 2c 70 78  31 3b 70 79 31 3b 0d 07  |%:.29,px1;py1;..|
00000ec0  58 19 e7 20 58 25 3c 59  25 20 f5 20 f2 64 63 3a  |X.. X%<Y% . .dc:|
00000ed0  fd 58 25 3e 3d 59 25 0d  07 62 0f e7 20 58 25 3d  |.X%>=Y%..b.. X%=|
00000ee0  59 25 20 f2 64 63 0d 07  6c 0e ef 32 39 2c 30 3b  |Y% .dc..l..29,0;|
00000ef0  30 3b 3a e1 0d 07 76 09  dd 20 f2 64 63 0d 07 80  |0;:...v.. .dc...|
00000f00  1a f0 20 50 25 2c 58 25  2c 59 25 3a f0 20 51 25  |.. P%,X%,Y%:. Q%|
00000f10  2c 58 25 2c 2d 59 25 0d  07 8a 1a f0 20 50 25 2c  |,X%,-Y%..... P%,|
00000f20  59 25 2c 58 25 3a f0 20  51 25 2c 59 25 2c 2d 58  |Y%,X%:. Q%,Y%,-X|
00000f30  25 0d 07 94 1c f0 20 50  25 2c 2d 58 25 2c 59 25  |%..... P%,-X%,Y%|
00000f40  3a f0 20 51 25 2c 2d 58  25 2c 2d 59 25 0d 07 9e  |:. Q%,-X%,-Y%...|
00000f50  1c f0 20 50 25 2c 2d 59  25 2c 58 25 3a f0 20 51  |.. P%,-Y%,X%:. Q|
00000f60  25 2c 2d 59 25 2c 2d 58  25 0d 07 a8 34 e7 20 45  |%,-Y%,-X%...4. E|
00000f70  25 3c 30 20 45 25 3d 45  25 2b 34 2a 58 25 2b 36  |%<0 E%=E%+4*X%+6|
00000f80  20 8b 20 45 25 3d 45 25  2b 34 2a 28 58 25 2d 59  | . E%=E%+4*(X%-Y|
00000f90  25 29 2b 31 30 3a 59 25  3d 59 25 2d 34 0d 07 b2  |%)+10:Y%=Y%-4...|
00000fa0  0d 58 25 3d 58 25 2b 34  3a e1 0d 07 bc 09 dd 20  |.X%=X%+4:...... |
00000fb0  f2 70 6c 0d 07 c6 24 e7  20 66 69 6c 6c 20 f2 70  |.pl...$. fill .p|
00000fc0  6c 66 28 73 69 64 65 73  29 20 8b 20 f2 70 6c 75  |lf(sides) . .plu|
00000fd0  28 73 69 64 65 73 29 0d  07 d0 05 e1 0d 07 da 17  |(sides).........|
00000fe0  dd 20 f2 70 6c 75 28 53  25 29 3a ea 20 41 2c 49  |. .plu(S%):. A,I|
00000ff0  2c 52 25 0d 07 e4 1f 52  25 3d b6 28 28 70 78 2d  |,R%....R%=.((px-|
00001000  70 78 31 29 5e 32 2b 28  70 79 2d 70 79 31 29 5e  |px1)^2+(py-py1)^|
00001010  32 29 0d 07 ee 0c e7 20  52 25 3c 34 20 e1 0d 07  |2)..... R%<4 ...|
00001020  f8 19 49 3d 33 36 30 2f  53 25 3a ec 20 70 78 31  |..I=360/S%:. px1|
00001030  2c 70 79 31 2b 52 25 0d  08 02 15 e3 20 41 3d 30  |,py1+R%..... A=0|
00001040  20 b8 20 33 36 30 2b 49  20 88 20 49 0d 08 0c 21  | . 360+I . I...!|
00001050  df 20 70 78 31 2b a4 73  6e 28 41 29 2a 52 25 2c  |. px1+.sn(A)*R%,|
00001060  70 79 31 2b a4 63 73 28  41 29 2a 52 25 0d 08 16  |py1+.cs(A)*R%...|
00001070  07 ed 3a e1 0d 08 20 0e  dd 20 f2 70 6c 66 28 53  |..:... .. .plf(S|
00001080  25 29 0d 08 2a 12 ea 20  41 2c 49 2c 52 25 2c 58  |%)..*.. A,I,R%,X|
00001090  25 2c 59 25 0d 08 34 1f  52 25 3d b6 28 28 70 78  |%,Y%..4.R%=.((px|
000010a0  2d 70 78 31 29 5e 32 2b  28 70 79 2d 70 79 31 29  |-px1)^2+(py-py1)|
000010b0  5e 32 29 0d 08 3e 0c e7  20 52 25 3c 34 20 e1 0d  |^2)..>.. R%<4 ..|
000010c0  08 48 1d 49 3d 33 36 30  2f 53 25 3a 58 25 3d 70  |.H.I=360/S%:X%=p|
000010d0  78 31 3a 59 25 3d 70 79  31 2b 52 25 0d 08 52 15  |x1:Y%=py1+R%..R.|
000010e0  e3 20 41 3d 30 20 b8 20  33 36 30 2b 49 20 88 20  |. A=0 . 360+I . |
000010f0  49 0d 08 5c 1c ec 20 58  25 2c 59 25 3a 58 25 3d  |I..\.. X%,Y%:X%=|
00001100  70 78 31 2b a4 73 6e 28  41 29 2a 52 25 0d 08 66  |px1+.sn(A)*R%..f|
00001110  1c 59 25 3d 70 79 31 2b  a4 63 73 28 41 29 2a 52  |.Y%=py1+.cs(A)*R|
00001120  25 3a df 20 58 25 2c 59  25 0d 08 70 14 f0 20 38  |%:. X%,Y%..p.. 8|
00001130  35 2c 70 78 31 2c 70 79  31 3a ed 3a e1 0d 08 7a  |5,px1,py1:.:...z|
00001140  1d dd 20 a4 73 6e 28 41  25 29 3d 73 28 28 41 25  |.. .sn(A%)=s((A%|
00001150  83 33 36 30 29 81 49 47  25 29 0d 08 84 22 dd 20  |.360).IG%)...". |
00001160  a4 63 73 28 41 25 29 3d  73 28 28 28 41 25 2b 39  |.cs(A%)=s(((A%+9|
00001170  30 29 83 33 36 30 29 81  49 47 25 29 0d 08 8e 16  |0).360).IG%)....|
00001180  dd 20 f2 62 72 73 68 28  57 25 29 3a e6 30 2c 63  |. .brsh(W%):.0,c|
00001190  6f 6c 0d 08 98 11 ea 20  66 69 6c 6c 3a 66 69 6c  |ol..... fill:fil|
000011a0  6c 3d b9 0d 08 a2 1c 70  78 31 3d 70 78 3a 70 78  |l=.....px1=px:px|
000011b0  3d 70 78 2b 57 25 2a 34  3a 70 79 31 3d 70 79 0d  |=px+W%*4:py1=py.|
000011c0  08 ac 15 f2 6d 6f 64 65  28 34 29 3a 70 78 3d 70  |....mode(4):px=p|
000011d0  78 31 3a e1 0d 08 b6 19  dd 20 f2 73 70 72 79 28  |x1:...... .spry(|
000011e0  53 25 2c 57 25 29 3a e6  30 2c 63 6f 6c 0d 08 c0  |S%,W%):.0,col...|
000011f0  1a ea 20 41 25 2c 4c 25  2c 52 25 2c 43 25 3a e7  |.. A%,L%,R%,C%:.|
00001200  20 53 25 3d 30 20 e1 0d  08 ca 17 57 25 3d 57 25  | S%=0 .....W%=W%|
00001210  2a 34 3a e3 20 4c 25 3d  31 20 b8 20 53 25 0d 08  |*4:. L%=1 . S%..|
00001220  d4 10 e7 20 b3 28 33 29  3d 31 20 ed 3a e1 0d 08  |... .(3)=1 .:...|
00001230  de 16 41 25 3d b3 28 33  36 30 29 3a 52 25 3d b3  |..A%=.(360):R%=.|
00001240  28 57 25 29 0d 08 e8 30  f0 36 39 2c 70 78 2b 52  |(W%)...0.69,px+R|
00001250  25 2a 73 28 41 25 81 49  47 25 29 2c 70 79 2b 52  |%*s(A%.IG%),py+R|
00001260  25 2a 73 28 28 41 25 2b  39 30 29 83 33 36 30 81  |%*s((A%+90).360.|
00001270  49 47 25 29 0d 08 f2 07  ed 3a e1 0d 08 fc 1b dd  |IG%).....:......|
00001280  20 f2 6c 69 66 74 3a e7  20 69 70 3c 30 20 f2 70  | .lift:. ip<0 .p|
00001290  74 72 28 69 70 29 0d 09  06 1a f5 fd a6 41 43 25  |tr(ip).......AC%|
000012a0  3a e7 20 69 70 3c 30 20  f2 70 74 72 28 69 70 29  |:. ip<0 .ptr(ip)|
000012b0  0d 09 10 05 e1 0d 09 1a  10 dd 20 f2 74 78 28 70  |.......... .tx(p|
000012c0  78 2c 70 79 29 0d 09 24  15 f2 74 78 74 28 32 35  |x,py)..$..txt(25|
000012d0  34 2c 33 2c 63 6f 6c 29  3a e1 0d 09 2e 14 dd 20  |4,3,col):...... |
000012e0  f2 74 78 74 28 43 25 2c  41 25 2c 42 25 29 0d 09  |.txt(C%,A%,B%)..|
000012f0  38 16 e7 20 69 70 3c 3e  38 20 e1 20 8b 20 e6 41  |8.. ip<>8 . . .A|
00001300  25 2c 42 25 0d 09 42 25  3f 73 74 79 3d 53 54 25  |%,B%..B%?sty=ST%|
00001310  3a 3f 73 69 7a 3d 53 5a  25 3a 64 25 3f 30 3d 43  |:?siz=SZ%:d%?0=C|
00001320  25 3a 64 25 3f 31 3d 31  33 0d 09 4c 14 ec 70 78  |%:d%?1=13..L..px|
00001330  2c 70 79 3a ef 35 3a d6  20 70 72 6e 74 0d 09 56  |,py:.5:. prnt..V|
00001340  1f ef 34 2c 32 33 2c 31  2c 30 3b 30 3b 30 3b 30  |..4,23,1,0;0;0;0|
00001350  3b 3a 70 78 3d 70 78 2b  a4 74 69 78 0d 09 60 05  |;:px=px+.tix..`.|
00001360  e1 0d 09 6a 17 dd 20 a4  74 69 78 3a ea 20 57 25  |...j.. .tix:. W%|
00001370  3a 57 25 3d 3f 77 69 64  0d 09 74 16 e7 20 53 54  |:W%=?wid..t.. ST|
00001380  25 20 80 38 20 57 25 3d  57 25 2b 50 54 25 0d 09  |% .8 W%=W%+PT%..|
00001390  7e 1a 3d 28 57 25 2d 57  25 2a 28 28 53 5a 25 80  |~.=(W%-W%*((SZ%.|
000013a0  31 29 3e 30 29 29 2a 34  0d 09 88 13 dd 20 f2 61  |1)>0))*4..... .a|
000013b0  73 73 65 6d 3a 63 6f 64  65 3d 93 0d 09 92 1b 63  |ssem:code=.....c|
000013c0  68 72 3d 26 34 46 3a 64  66 31 3d 26 35 30 3a 64  |hr=&4F:df1=&50:d|
000013d0  66 32 3d 26 35 38 0d 09  9c 23 78 70 6f 3d 26 36  |f2=&58...#xpo=&6|
000013e0  31 3a 79 70 6f 3d 26 36  32 3a 69 64 78 3d 26 36  |1:ypo=&62:idx=&6|
000013f0  33 3a 69 64 79 3d 26 36  34 0d 09 a6 23 73 74 79  |3:idy=&64...#sty|
00001400  3d 26 36 35 3a 73 69 7a  3d 26 36 36 3a 77 69 64  |=&65:siz=&66:wid|
00001410  3d 26 36 37 3a 74 6d 70  3d 26 36 38 0d 09 b0 1d  |=&67:tmp=&68....|
00001420  6f 73 77 72 63 68 3d 26  46 46 45 45 3a 6f 73 77  |oswrch=&FFEE:osw|
00001430  6f 72 64 3d 26 46 46 46  31 0d 09 ba 1f 6f 73 62  |ord=&FFF1....osb|
00001440  79 74 65 3d 26 46 46 46  34 3a e3 20 4c 25 3d 30  |yte=&FFF4:. L%=0|
00001450  20 b8 20 32 20 88 20 32  0d 09 c4 13 50 25 3d 63  | . 2 . 2....P%=c|
00001460  6f 64 65 3a 5b 4f 50 54  20 4c 25 0d 09 ce 18 2e  |ode:[OPT L%.....|
00001470  6f 75 74 20 53 54 58 20  78 70 6f 3a 53 54 59 20  |out STX xpo:STY |
00001480  79 70 6f 0d 09 d8 1f 20  4c 44 58 20 64 25 3a 43  |ypo.... LDX d%:C|
00001490  50 58 20 23 31 33 3a 42  4e 45 20 70 70 70 3a 52  |PX #13:BNE ppp:R|
000014a0  54 53 0d 09 e2 17 2e 70  70 70 20 4a 53 52 20 70  |TS.....ppp JSR p|
000014b0  6f 73 6e 3a 2e 70 72 6e  74 0d 09 ec 21 20 4c 44  |osn:.prnt...! LD|
000014c0  41 20 73 69 7a 3a 80 20  23 31 35 3a 43 4d 50 20  |A siz:. #15:CMP |
000014d0  23 30 3a 42 45 51 20 6e  72 6d 0d 09 f6 21 20 43  |#0:BEQ nrm...! C|
000014e0  4d 50 20 23 32 3a 42 45  51 20 64 62 68 3a 43 4d  |MP #2:BEQ dbh:CM|
000014f0  50 20 23 33 3a 42 45 51  20 71 64 0d 0a 00 22 20  |P #3:BEQ qd..." |
00001500  4a 4d 50 20 64 62 77 3a  2e 6e 72 6d 20 4c 44 58  |JMP dbw:.nrm LDX|
00001510  20 23 26 46 46 3a 53 54  58 20 69 64 78 0d 0a 0a  | #&FF:STX idx...|
00001520  19 2e 6e 72 6d 31 20 49  4e 43 20 69 64 78 3a 4c  |..nrm1 INC idx:L|
00001530  44 58 20 69 64 78 0d 0a  14 1e 20 4c 44 41 20 64  |DX idx.... LDA d|
00001540  25 2c 58 3a 43 4d 50 20  23 31 33 3a 42 45 51 20  |%,X:CMP #13:BEQ |
00001550  6e 72 6d 78 0d 0a 1e 14  20 4a 53 52 20 67 64 65  |nrmx.... JSR gde|
00001560  66 3a 4c 44 58 20 23 37  0d 0a 28 1b 2e 6e 6d 20  |f:LDX #7..(..nm |
00001570  4c 44 41 20 64 66 31 2c  58 3a 53 54 41 20 64 66  |LDA df1,X:STA df|
00001580  32 2c 58 0d 0a 32 21 20  44 45 58 3a 42 50 4c 20  |2,X..2! DEX:BPL |
00001590  6e 6d 3a 4a 53 52 20 70  64 65 66 3a 4a 4d 50 20  |nm:JSR pdef:JMP |
000015a0  6e 72 6d 31 0d 0a 3c 0d  2e 6e 72 6d 78 20 52 54  |nrm1..<..nrmx RT|
000015b0  53 0d 0a 46 18 2e 71 64  20 4c 44 58 20 23 26 46  |S..F..qd LDX #&F|
000015c0  46 3a 53 54 58 20 69 64  78 0d 0a 50 18 2e 71 64  |F:STX idx..P..qd|
000015d0  31 20 49 4e 43 20 69 64  78 3a 4c 44 58 20 69 64  |1 INC idx:LDX id|
000015e0  78 0d 0a 5a 1d 20 4c 44  41 20 64 25 2c 58 3a 43  |x..Z. LDA d%,X:C|
000015f0  4d 50 20 23 31 33 3a 42  45 51 20 71 64 78 0d 0a  |MP #13:BEQ qdx..|
00001600  64 14 20 4a 53 52 20 67  64 65 66 3a 4c 44 58 20  |d. JSR gdef:LDX |
00001610  23 30 0d 0a 6e 1e 2e 71  64 32 20 4c 44 41 20 64  |#0..n..qd2 LDA d|
00001620  66 31 2c 58 3a 4a 53 52  20 64 77 64 3a 50 48 41  |f1,X:JSR dwd:PHA|
00001630  0d 0a 78 17 20 49 4e 58  3a 43 50 58 20 23 38 3a  |..x. INX:CPX #8:|
00001640  42 4e 45 20 71 64 32 0d  0a 82 1d 20 4a 53 52 20  |BNE qd2.... JSR |
00001650  64 65 66 32 31 3a 4a 53  52 20 70 64 68 3a 4c 44  |def21:JSR pdh:LD|
00001660  58 20 23 37 0d 0a 8c 20  2e 71 64 33 20 50 4c 41  |X #7... .qd3 PLA|
00001670  3a 4a 53 52 20 64 77 64  3a 44 45 58 3a 42 50 4c  |:JSR dwd:DEX:BPL|
00001680  20 71 64 33 0d 0a 96 1e  20 4a 53 52 20 64 65 66  | qd3.... JSR def|
00001690  32 31 3a 4a 53 52 20 70  64 68 3a 4a 4d 50 20 71  |21:JSR pdh:JMP q|
000016a0  64 31 0d 0a a0 0c 2e 71  64 78 20 52 54 53 0d 0a  |d1.....qdx RTS..|
000016b0  aa 11 2e 64 65 66 32 31  20 4c 44 58 20 23 37 0d  |...def21 LDX #7.|
000016c0  0a b4 1c 2e 64 32 31 20  4c 44 41 20 64 66 32 2c  |....d21 LDA df2,|
000016d0  58 3a 53 54 41 20 64 66  31 2c 58 0d 0a be 14 20  |X:STA df1,X.... |
000016e0  44 45 58 3a 42 50 4c 20  64 32 31 3a 52 54 53 0d  |DEX:BPL d21:RTS.|
000016f0  0a c8 19 2e 64 62 68 20  4c 44 58 20 23 26 46 46  |....dbh LDX #&FF|
00001700  3a 53 54 58 20 69 64 78  0d 0a d2 19 2e 64 68 6c  |:STX idx.....dhl|
00001710  31 20 49 4e 43 20 69 64  78 3a 4c 44 58 20 69 64  |1 INC idx:LDX id|
00001720  78 0d 0a dc 1e 20 4c 44  41 20 64 25 2c 58 3a 43  |x.... LDA d%,X:C|
00001730  4d 50 20 23 31 33 3a 42  45 51 20 64 68 31 78 0d  |MP #13:BEQ dh1x.|
00001740  0a e6 1e 20 4a 53 52 20  67 64 65 66 3a 4a 53 52  |... JSR gdef:JSR|
00001750  20 70 64 68 3a 4a 4d 50  20 64 68 6c 31 0d 0a f0  | pdh:JMP dhl1...|
00001760  0d 2e 64 68 31 78 20 52  54 53 0d 0a fa 17 2e 70  |..dh1x RTS.....p|
00001770  64 68 20 4c 44 59 20 23  30 3a 4a 53 52 20 64 68  |dh LDY #0:JSR dh|
00001780  64 0d 0b 04 16 20 4c 44  41 20 23 38 3a 4a 53 52  |d.... LDA #8:JSR|
00001790  20 6f 73 77 72 63 68 0d  0b 0e 17 20 4c 44 41 20  | oswrch.... LDA |
000017a0  23 31 30 3a 4a 53 52 20  6f 73 77 72 63 68 0d 0b  |#10:JSR oswrch..|
000017b0  18 13 20 4c 44 59 20 23  34 3a 4a 53 52 20 64 68  |.. LDY #4:JSR dh|
000017c0  64 0d 0b 22 1b 20 4c 44  41 20 23 31 31 3a 4a 53  |d..". LDA #11:JS|
000017d0  52 20 6f 73 77 72 63 68  3a 52 54 53 0d 0b 2c 08  |R oswrch:RTS..,.|
000017e0  2e 64 68 64 0d 0b 36 23  20 4c 44 41 20 64 66 31  |.dhd..6# LDA df1|
000017f0  2b 30 2c 59 3a 53 54 41  20 64 66 32 2b 30 3a 53  |+0,Y:STA df2+0:S|
00001800  54 41 64 66 32 2b 31 0d  0b 40 23 20 4c 44 41 20  |TAdf2+1..@# LDA |
00001810  64 66 31 2b 31 2c 59 3a  53 54 41 20 64 66 32 2b  |df1+1,Y:STA df2+|
00001820  32 3a 53 54 41 64 66 32  2b 33 0d 0b 4a 23 20 4c  |2:STAdf2+3..J# L|
00001830  44 41 20 64 66 31 2b 32  2c 59 3a 53 54 41 20 64  |DA df1+2,Y:STA d|
00001840  66 32 2b 34 3a 53 54 41  64 66 32 2b 35 0d 0b 54  |f2+4:STAdf2+5..T|
00001850  23 20 4c 44 41 20 64 66  31 2b 33 2c 59 3a 53 54  |# LDA df1+3,Y:ST|
00001860  41 20 64 66 32 2b 36 3a  53 54 41 64 66 32 2b 37  |A df2+6:STAdf2+7|
00001870  0d 0b 5e 23 20 4a 4d 50  20 70 64 65 66 3a 2e 64  |..^# JMP pdef:.d|
00001880  62 77 20 4c 44 58 20 23  26 46 46 3a 53 54 58 20  |bw LDX #&FF:STX |
00001890  69 64 78 0d 0b 68 19 2e  64 62 6c 31 20 49 4e 43  |idx..h..dbl1 INC|
000018a0  20 69 64 78 3a 4c 44 58  20 69 64 78 0d 0b 72 1e  | idx:LDX idx..r.|
000018b0  20 4c 44 41 20 64 25 2c  58 3a 43 4d 50 20 23 31  | LDA d%,X:CMP #1|
000018c0  33 3a 42 45 51 20 64 62  31 78 0d 0b 7c 14 20 4a  |3:BEQ db1x..|. J|
000018d0  53 52 20 67 64 65 66 3a  4c 44 58 20 23 30 0d 0b  |SR gdef:LDX #0..|
000018e0  86 1b 2e 64 62 6c 32 20  4c 44 41 20 64 66 31 2c  |...dbl2 LDA df1,|
000018f0  58 3a 4a 53 52 20 64 77  64 0d 0b 90 1c 20 50 48  |X:JSR dwd.... PH|
00001900  41 3a 49 4e 58 3a 43 50  58 20 23 38 3a 42 4e 45  |A:INX:CPX #8:BNE|
00001910  20 64 62 6c 32 0d 0b 9a  11 20 4a 53 52 20 70 64  | dbl2.... JSR pd|
00001920  65 66 3a 44 45 58 0d 0b  a4 22 2e 64 62 6c 33 20  |ef:DEX...".dbl3 |
00001930  50 4c 41 3a 4a 53 52 20  64 77 64 3a 44 45 58 3a  |PLA:JSR dwd:DEX:|
00001940  42 50 4c 20 64 62 6c 33  0d 0b ae 16 20 4a 53 52  |BPL dbl3.... JSR|
00001950  20 70 64 65 66 3a 4a 4d  50 20 64 62 6c 31 0d 0b  | pdef:JMP dbl1..|
00001960  b8 12 2e 64 62 31 78 20  52 54 53 3a 2e 64 77 64  |...db1x RTS:.dwd|
00001970  0d 0b c2 23 20 52 4f 4c  41 3a 50 48 50 3a 52 4f  |...# ROLA:PHP:RO|
00001980  4c 64 66 32 2c 58 3a 50  4c 50 3a 52 4f 4c 64 66  |Ldf2,X:PLP:ROLdf|
00001990  32 2c 58 0d 0b cc 23 20  52 4f 4c 41 3a 50 48 50  |2,X...# ROLA:PHP|
000019a0  3a 52 4f 4c 64 66 32 2c  58 3a 50 4c 50 3a 52 4f  |:ROLdf2,X:PLP:RO|
000019b0  4c 64 66 32 2c 58 0d 0b  d6 23 20 52 4f 4c 41 3a  |Ldf2,X...# ROLA:|
000019c0  50 48 50 3a 52 4f 4c 64  66 32 2c 58 3a 50 4c 50  |PHP:ROLdf2,X:PLP|
000019d0  3a 52 4f 4c 64 66 32 2c  58 0d 0b e0 23 20 52 4f  |:ROLdf2,X...# RO|
000019e0  4c 41 3a 50 48 50 3a 52  4f 4c 64 66 32 2c 58 3a  |LA:PHP:ROLdf2,X:|
000019f0  50 4c 50 3a 52 4f 4c 64  66 32 2c 58 0d 0b ea 25  |PLP:ROLdf2,X...%|
00001a00  20 52 54 53 3a 2e 70 6f  73 6e 20 50 48 41 3a 4c  | RTS:.posn PHA:L|
00001a10  44 41 20 23 33 31 3a 4a  53 52 20 6f 73 77 72 63  |DA #31:JSR oswrc|
00001a20  68 0d 0b f4 17 20 4c 44  41 20 78 70 6f 3a 4a 53  |h.... LDA xpo:JS|
00001a30  52 20 6f 73 77 72 63 68  0d 0b fe 1f 20 4c 44 41  |R oswrch.... LDA|
00001a40  20 79 70 6f 3a 4a 53 52  20 6f 73 77 72 63 68 3a  | ypo:JSR oswrch:|
00001a50  50 4c 41 3a 52 54 53 0d  0c 08 11 2e 67 64 65 66  |PLA:RTS.....gdef|
00001a60  20 53 54 41 20 63 68 72  0d 0c 12 20 20 4c 44 58  | STA chr...  LDX|
00001a70  20 23 63 68 72 20 83 32  35 36 3a 4c 44 59 20 23  | #chr .256:LDY #|
00001a80  63 68 72 20 81 32 35 36  0d 0c 1c 17 20 4c 44 41  |chr .256.... LDA|
00001a90  20 23 31 30 3a 4a 53 52  20 6f 73 77 6f 72 64 0d  | #10:JSR osword.|
00001aa0  0c 26 1d 20 4c 44 41 20  63 68 72 3a 43 4d 50 20  |.&. LDA chr:CMP |
00001ab0  23 33 32 3a 42 45 51 20  70 72 6f 70 0d 0c 30 19  |#32:BEQ prop..0.|
00001ac0  20 4c 44 58 20 23 37 3a  4c 44 41 20 23 30 3a 2e  | LDX #7:LDA #0:.|
00001ad0  73 6c 6f 70 30 0d 0c 3a  1b 20 84 41 20 64 66 31  |slop0..:. .A df1|
00001ae0  2c 58 3a 44 45 58 3a 42  50 4c 20 73 6c 6f 70 30  |,X:DEX:BPL slop0|
00001af0  0d 0c 44 18 20 54 41 58  3a 53 54 41 20 74 6d 70  |..D. TAX:STA tmp|
00001b00  3a 42 4d 49 20 63 68 67  0d 0c 4e 20 2e 73 6c 6f  |:BMI chg..N .slo|
00001b10  70 31 20 4c 44 41 20 23  30 3a 53 54 41 20 74 6d  |p1 LDA #0:STA tm|
00001b20  70 3a 4c 44 58 20 23 37  0d 0c 58 1a 2e 73 6c 6f  |p:LDX #7..X..slo|
00001b30  70 32 20 4c 44 41 20 64  66 31 2c 58 3a 41 53 4c  |p2 LDA df1,X:ASL|
00001b40  20 41 0d 0c 62 1d 20 53  54 41 20 64 66 31 2c 58  | A..b. STA df1,X|
00001b50  3a 84 41 20 74 6d 70 3a  53 54 41 20 74 6d 70 0d  |:.A tmp:STA tmp.|
00001b60  0c 6c 24 20 44 45 58 3a  42 50 4c 20 73 6c 6f 70  |.l$ DEX:BPL slop|
00001b70  32 3a 42 49 54 20 74 6d  70 3a 42 50 4c 20 73 6c  |2:BIT tmp:BPL sl|
00001b80  6f 70 31 0d 0c 76 1e 2e  63 68 67 20 4c 44 41 20  |op1..v..chg LDA |
00001b90  73 74 79 3a 80 20 23 31  3a 42 45 51 20 66 65 69  |sty:. #1:BEQ fei|
00001ba0  6e 0d 0c 80 1d 2e 69 74  61 6c 20 43 4c 43 3a 52  |n.....ital CLC:R|
00001bb0  4f 52 20 64 66 31 3a 52  4f 52 20 64 66 31 0d 0c  |OR df1:ROR df1..|
00001bc0  8a 1c 20 43 4c 43 3a 52  4f 52 20 64 66 31 2b 31  |.. CLC:ROR df1+1|
00001bd0  3a 52 4f 52 20 64 66 31  2b 31 0d 0c 94 1c 20 43  |:ROR df1+1.... C|
00001be0  4c 43 3a 52 4f 52 20 64  66 31 2b 32 3a 52 4f 52  |LC:ROR df1+2:ROR|
00001bf0  20 64 66 31 2b 33 0d 0c  9e 16 2e 66 65 69 6e 20  | df1+3.....fein |
00001c00  4c 44 41 20 73 74 79 3a  80 20 23 32 0d 0c a8 14  |LDA sty:. #2....|
00001c10  20 42 45 51 20 69 6e 76  74 3a 4c 44 58 20 23 37  | BEQ invt:LDX #7|
00001c20  0d 0c b2 17 2e 66 6c 20  4c 44 41 20 64 66 31 2c  |.....fl LDA df1,|
00001c30  58 3a 41 53 4c 20 41 0d  0c bc 21 20 80 20 64 66  |X:ASL A...! . df|
00001c40  31 2c 58 3a 53 54 41 20  64 66 31 2c 58 3a 44 45  |1,X:STA df1,X:DE|
00001c50  58 3a 42 50 4c 20 66 6c  0d 0c c6 16 2e 69 6e 76  |X:BPL fl.....inv|
00001c60  74 20 4c 44 41 20 73 74  79 3a 80 20 23 34 0d 0c  |t LDA sty:. #4..|
00001c70  d0 14 20 42 45 51 20 70  72 6f 70 3a 4c 44 58 20  |.. BEQ prop:LDX |
00001c80  23 37 0d 0c da 18 2e 69  76 20 4c 44 41 20 64 66  |#7.....iv LDA df|
00001c90  31 2c 58 3a 82 20 23 26  46 46 0d 0c e4 19 20 53  |1,X:. #&FF.... S|
00001ca0  54 41 20 64 66 31 2c 58  3a 44 45 58 3a 42 50 4c  |TA df1,X:DEX:BPL|
00001cb0  20 69 76 0d 0c ee 18 2e  70 72 6f 70 20 4c 44 41  | iv.....prop LDA|
00001cc0  20 23 38 3a 53 54 41 20  77 69 64 0d 0c f8 13 20  | #8:STA wid.... |
00001cd0  80 20 73 74 79 3a 42 45  51 20 67 64 78 78 0d 0d  |. sty:BEQ gdxx..|
00001ce0  02 1d 20 4c 44 41 20 63  68 72 3a 43 4d 50 20 23  |.. LDA chr:CMP #|
00001cf0  33 32 3a 42 4e 45 20 6e  73 70 63 0d 0d 0c 13 20  |32:BNE nspc.... |
00001d00  4c 44 41 20 23 34 3a 42  4e 45 20 67 64 78 0d 0d  |LDA #4:BNE gdx..|
00001d10  16 17 2e 6e 73 70 63 20  4c 44 58 20 23 37 3a 4c  |...nspc LDX #7:L|
00001d20  44 41 20 23 30 0d 0d 20  17 2e 70 72 6c 70 31 20  |DA #0.. ..prlp1 |
00001d30  84 41 20 64 66 31 2c 58  3a 44 45 58 0d 0d 2a 15  |.A df1,X:DEX..*.|
00001d40  20 42 50 4c 20 70 72 6c  70 31 3a 4c 44 58 20 23  | BPL prlp1:LDX #|
00001d50  38 0d 0d 34 1a 2e 70 72  6c 70 32 20 52 4f 52 20  |8..4..prlp2 ROR |
00001d60  41 3a 42 43 53 20 70 72  6c 70 33 0d 0d 3e 1d 20  |A:BCS prlp3..>. |
00001d70  44 45 58 3a 42 4e 45 20  70 72 6c 70 32 3a 2e 70  |DEX:BNE prlp2:.p|
00001d80  72 6c 70 33 20 54 58 41  0d 0d 48 1a 2e 67 64 78  |rlp3 TXA..H..gdx|
00001d90  20 53 54 41 20 77 69 64  3a 2e 67 64 78 78 20 52  | STA wid:.gdxx R|
00001da0  54 53 0d 0d 52 1c 2e 70  64 65 66 20 4c 44 41 20  |TS..R..pdef LDA |
00001db0  23 32 33 3a 4a 53 52 20  6f 73 77 72 63 68 0d 0d  |#23:JSR oswrch..|
00001dc0  5c 1f 20 4c 44 41 20 23  32 35 35 3a 4a 53 52 20  |\. LDA #255:JSR |
00001dd0  6f 73 77 72 63 68 3a 4c  44 59 20 23 30 0d 0d 66  |oswrch:LDY #0..f|
00001de0  1d 2e 70 64 6c 20 4c 44  41 20 64 66 32 2c 59 3a  |..pdl LDA df2,Y:|
00001df0  4a 53 52 20 6f 73 77 72  63 68 0d 0d 70 17 20 49  |JSR oswrch..p. I|
00001e00  4e 59 3a 43 50 59 20 23  38 3a 42 4e 45 20 70 64  |NY:CPY #8:BNE pd|
00001e10  6c 0d 0d 7a 1c 20 4c 44  41 20 23 32 35 35 3a 4a  |l..z. LDA #255:J|
00001e20  53 52 20 6f 73 77 72 63  68 3a 52 54 53 0d 0d 84  |SR oswrch:RTS...|
00001e30  09 5d 3a ed 3a e1 0d ff                           |.]:.:...|
00001e38
11-12-88/MWORKS.m0
11-12-88/MWORKS.m1
11-12-88/MWORKS.m2
11-12-88/MWORKS.m4
11-12-88/MWORKS.m5