Home » Archimedes archive » Archimedes World » AW-1995-02-Disc1.adf » Disk1Feb95 » !AWFeb95/Goodies/DrawBasic/!DrawBasic/Network/Utils

!AWFeb95/Goodies/DrawBasic/!DrawBasic/Network/Utils

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 » Archimedes archive » Archimedes World » AW-1995-02-Disc1.adf » Disk1Feb95
Filename: !AWFeb95/Goodies/DrawBasic/!DrawBasic/Network/Utils
Read OK:
File size: 39F7 bytes
Load address: 0000
Exec address: 0000
File contents
    1REM > DrawBasic:Utils
    2
    3REM =======================================================
    4REM
    5REM copyright Joe Taylor June 1994
    6REM
    7REM N.B. For ERROR THROWBACK to work The first line above
    8REM      MUST have the correct pathname of this file.
    9REM      If you move the location of the file remember to
   10REM      alter this pathname.
   11REM
   12REM =======================================================
   13
   14
   15REM **************************************************************************
   16REM
   17REM 1. SETTING UP A DRAW FILE
   18REM
   19REM **************************************************************************
   20
   21REM =======================
   22REM 1.1 Memory Manipulation
   23REM =======================
   24
   25DEF FNFreeSlot
   26 REM --------------------------------------
   27 REM
   28 REM Allocates 'Free' slot for data storage
   29 REM
   30 REM Called in Library setup file
   31 REM
   32 REM --------------------------------------
   33 LOCAL Buffer%,Free_Size%
   34 SYS "Wimp_SlotSize",-1,-1 TO ,,Free_Size%
   35 IF Free_Size%<32 THEN
   36  ON ERROR OFF
   37  SYS "Wimp_CommandWindow",-1
   38  ERROR EXT 0,"DrawBasic needs a non-empty 'Free' slot to save Draw file output"
   39  ENDIF
   40 IF Free_Size%>1024*1024*4 THEN Free_Size%=1024*1024*4
   41 Buffer%=HIMEM
   42 END=Buffer%+Free_Size%
   43 !Buffer%=Buffer%+8
   44  Buffer%!4=Buffer%+Free_Size%
   45=Buffer%
   46
   47DEF PROCDraw_AddWord(x%)
   48 REM -------------------------------------
   49 REM
   50 REM Adds the word (4 bytes) x% to a
   51 REM "formatted" word array.
   52 REM
   53 REM The "pointer" is updated.
   54 REM
   55 REM -------------------------------------
   56 IF (!HIMEM)>=(!(HIMEM+4)) THEN ERROR 0,"Out of memory"
   57 !(!HIMEM)=x%  : REM write word to file at next free address
   58 !HIMEM+=4     : REM update pointer to next free byte
   59 ENDPROC
   60
   61DEF PROCDraw_AddFloat(x)
   62 REM -------------------------------------
   63 REM
   64 REM Adds the floating-point number
   65 REM (5 or 8 bytes) x .
   66 REM
   67 REM The "pointer" is updated.
   68 REM
   69 REM -------------------------------------
   70 IF (!HIMEM)+4>=(!(HIMEM+4)) THEN ERROR 0,"Out of memory"
   71 |(!HIMEM)=x   : REM write to file at next free address
   72 !HIMEM+=8     : REM update pointer to next free byte
   73 ENDPROC
   74
   75DEF PROCDraw_AddString(pointer%,x$)
   76 REM -------------------------------------------
   77 REM
   78 REM Adds string x$ to a "formatted" word array
   79 REM and adds a CHR$0.
   80 REM
   81 REM String is now aligned with word boundary
   82 REM
   83 REM ------------------------------------------
   84 LOCAL _a%
   85 _a%=LENx$
   86 IF (!pointer%+_a%)>=(!(HIMEM+4)) THEN ERROR 0,"Out of memory"
   87 IF (_a%MOD4)<>0 THEN  x$+=STRING$(4-(_a%MOD4),CHR$0) : _a%=LENx$
   88 $(!pointer%)=x$
   89 !pointer%+=_a%
   90 ENDPROC
   91
   92DEF PROCDraw_AddCoords(x,y)
   93 REM -------------------------------------------
   94 REM
   95 REM Adds coordinates (x,y)
   96 REM
   97 REM
   98 REM ------------------------------------------
   99 PROCDraw_AddWord(FNDraw_X(x))
  100 PROCDraw_AddWord(FNDraw_Y(y))
  101 ENDPROC
  102
  103DEF PROCMoveMemory(address%,n_words%)
  104 REM -----------------------------------
  105 REM
  106 REM Moves n_words% upwards starting at
  107 REM address%
  108 REM
  109 REM -----------------------------------
  110 LOCAL _i%,_n% : _n%=4*n_words% : _i%=!HIMEM
  111 IF address%+_n%>=(!(HIMEM+4)) THEN ERROR 0,"Not enough memory!"
  112 WHILE _i%>address%
  113  _i%-=4
  114  _i%!_n%=!_i%
  115  ENDWHILE
  116  !HIMEM+=_n%
  117ENDPROC
  118
  119DEF FNObjectType(path)
  120IF path>=!(HIMEM+4) THEN=!(!path) ELSE=!path
  121
  122REM ========================
  123REM 1.2 Creating A Draw File
  124REM ========================
  125
  126DEF PROCBeginDrawing
  127 REM ---------------------
  128 REM
  129 REM Sets up "new" drawing
  130 REM
  131 REM ---------------------
  132 PROCDraw_SetUp
  133 PROCDraw_SetFileHeader
  134 PROCDraw_SetFontTable
  135ENDPROC
  136
  137DEF PROCDraw_SetUp
  138 LOCAL _scale%  : _scale%=INT(180*256/2.54+.5)
  139 PROCDraw_AddWord(0)                      : REM 8  Address of Draw File
  140 PROCDraw_AddWord(0)                      : REM 12 Origin x         (Draw units)
  141 PROCDraw_AddWord(0)                      : REM 16 Origin y              ""
  142 PROCDraw_AddWord(12*_scale%)             : REM 20 Frame_size width      ""
  143 PROCDraw_AddWord(12*_scale%)             : REM 24 Frame_size height     ""
  144 PROCDraw_AddFloat(0)                     : REM 28 Frame Coords a   (User units)
  145 PROCDraw_AddFloat(0)                     : REM 36 Frame Coords u        ""
  146 PROCDraw_AddFloat(12)                    : REM 44 Frame Coords width    ""
  147 PROCDraw_AddFloat(12)                    : REM 52 Frame Coords height   ""
  148 PROCDraw_AddWord(_scale%)                : REM 60 Units
  149
  150 PROCDraw_AddWord(0)                      : REM 64 Current path
  151 PROCDraw_AddWord(0)                      : REM 68 Current subpath
  152
  153 PROCDraw_AddWord(0)                      : REM 72 Symbol type
  154 PROCDraw_AddWord(0)                      : REM 76 Dash pattern
  155 PROCDraw_AddWord(12)                     : REM 80 Symbol size
  156
  157 PROCDraw_AddWord(14*640)                 : REM 84 Text Font size  (points)
  158 PROCDraw_AddWord(0)                      : REM 88 Text colour
  159 PROCDraw_AddWord(1)                      : REM 92 Current Font
  160
  161 PROCDraw_AddWord(1<<16)                  : REM 96 Translate
  162 PROCDraw_AddWord(0)                      : REM 100
  163 PROCDraw_AddWord(0)                      : REM 104
  164 PROCDraw_AddWord(1<<16)                  : REM 108
  165 PROCDraw_AddWord(256*90)                 : REM 112
  166 PROCDraw_AddWord(256*90)                 : REM 116
  167
  168 PROCDraw_AddWord(_scale%)                : REM 120 Cms/Draw units
  169
  170 PROCDraw_AddWord(1<<16)                  : REM 124 Axes width
  171 PROCDraw_AddWord((3<<16)+3)              : REM 128 Axes Cap Point/width
  172 PROCDraw_AddWord(0)                      : REM 132 Axes Extend (0%)
  173
  174 PROCDraw_AddWord(1)                      : REM 136  Nx scales
  175 PROCDraw_AddWord(0)                      : REM 140  nx scales
  176 PROCDraw_AddWord(1)                      : REM 144  Ny scales
  177 PROCDraw_AddWord(0)                      : REM 148  ny scales
  178 PROCDraw_AddWord(10)                     : REM 152  Lx scales
  179 PROCDraw_AddWord(7)                      : REM 156  lx scales
  180 PROCDraw_AddWord(10)                     : REM 160  Ly scales
  181 PROCDraw_AddWord(7)                      : REM 164  ly scales
  182 PROCDraw_AddWord(1<<16)                  : REM 168  Wx scales
  183 PROCDraw_AddWord(1<<15)                  : REM 172  wx scales
  184 PROCDraw_AddWord(1<<16)                  : REM 176  Wy scales
  185 PROCDraw_AddWord(1<<15)                  : REM 180  wy scales
  186
  187 PROCDraw_AddWord(1<<16)                  : REM 184  REM Current Transform
  188 PROCDraw_AddWord(0)                      : REM 188
  189 PROCDraw_AddWord(0)                      : REM 192
  190 PROCDraw_AddWord(1<<16)                  : REM 196
  191 PROCDraw_AddWord(0)                      : REM 200
  192 PROCDraw_AddWord(0)                      : REM 204
  193
  194 PROCDraw_AddWord(10000)                  : REM 208 Max x resolution
  195 PROCDraw_AddWord(100)                    : REM 212 Min x resolution
  196 PROCDraw_AddWord(300)                    : REM 216 V resolution dots/inch
  197
  198 PROCDraw_AddWord(4)                      : REM 220 Bar chart scales
  199 PROCDraw_AddWord(0)                      : REM 224 Line Colour
  200 PROCDraw_AddWord(-1)                     : REM 228 Fill Colour (no fill)
  201 PROCDraw_AddWord(0)                      : REM 232 Line Width
  202 PROCDraw_AddWord(0)                      : REM 236 Line style
  203 PROCDraw_AddWord(0)                      : REM 240 Chart factor
  204 PROCDraw_AddWord(0)                      : REM 244      ""
  205 |(HIMEM+240)=5/6
  206
  207 !(HIMEM+8)=!HIMEM                        : REM Address of Draw file
  208ENDPROC
  209
  210DEF PROCDraw_SetFileHeader
  211 REM
  212 REM --------40 bytes------------
  213 REM
  214 PROCDraw_AddString(HIMEM,"Draw")         : REM Title
  215 PROCDraw_AddWord(201)                    : REM major format number
  216 PROCDraw_AddWord(0)                      : REM minor format number
  217 PROCDraw_AddString(HIMEM,"DrawBasic   ") : REM Program Title
  218 PROCDraw_AddWord(0)                      : REM BoundingBox
  219 PROCDraw_AddWord(0)                      : REM BoundingBox
  220 PROCDraw_AddWord(256*180*12*3*800)       : REM BoundingBox
  221 PROCDraw_AddWord(256*180*12*3*800)       : REM BoundingBox
  222ENDPROC
  223
  224DEF PROCDraw_SetFontTable
  225 REM -------------------------------------------------
  226 REM
  227 REM This procedure should not be called in a program.
  228 REM It is used  to set the Font table.
  229 REM
  230 REM -------------------------------------------------
  231 LOCAL _fonts% : _fonts%=!(HIMEM+8)+40
  232 PROCDraw_AddWord(0)                  : REM Font object type 0
  233 PROCDraw_AddWord(0)                  : REM Font object length
  234 PROCDraw_AddString(HIMEM,CHR$1+"Trinity.Medium"+CHR$0)
  235 !(_fonts%+4)=!HIMEM-_fonts%          : REM Font object length
  236ENDPROC
  237
  238REM ========================
  239REM 1.3 Saving A Draw File
  240REM ========================
  241
  242DEF PROCQuit
  243 REM -------------------------------------------------------
  244 REM
  245 REM Saves Draw file to DrawBasic:DrawFile
  246 REM
  247 REM The file is then *Run so it will be loaded into !Draw
  248 REM
  249 REM -------------------------------------------------------
  250 IF !(HIMEM+68)<>0 THEN ERROR 0,"Paths must end with 'PathEnd'"
  251 *Set Draw_Basic$Path <Wimp$ScrapDir>.
  252 OSCLI("Save Draw_Basic:DrawFile "+STR$~(!(HIMEM+8))+" "+STR$~(!HIMEM))
  253 *SetType Draw_Basic:DrawFile DrawFile
  254 *Filer_Run Draw_Basic:DrawFile
  255END
  256
  257REM ---------
  258REM
  259REM 1.4 Units
  260REM
  261REM ---------
  262
  263DEF FNUnits=!(HIMEM+60)
  264
  265DEF PROCCentimetres
  266!(HIMEM+60)=INT(256*180/2.54+.5)
  267PROCFrameSize(0,0,12,12)
  268PROCFrameCoords(0,12,0,12)
  269PROCPreview
  270ENDPROC
  271
  272DEF PROCInches
  273!(HIMEM+60)=256*180
  274PROCFrameSize(0,0,6,6)
  275PROCFrameCoords(0,6,0,6)
  276PROCPreview
  277ENDPROC
  278
  279DEF FNDrawUnits(a)=INT(FNUnits*a+.5)
  280
  281DEF PROCFrameSize(a,b,width,height)
  282 REM -------------------------------------------
  283 REM
  284 REM Defines the size of the  drawing "frame".
  285 REM
  286 REM ------------------------------------------
  287 PROCFrameCoords(0,width,0,height)
  288  !(HIMEM+20)=FNDrawUnits(width)  : REM Bounding box - width
  289  !(HIMEM+24)=FNDrawUnits(height) : REM Bounding box - height
  290  !(HIMEM+12)=FNDrawUnits(a)      : REM Frame_x
  291  !(HIMEM+16)=FNDrawUnits(b)      : REM Frame_y
  292ENDPROC
  293
  294DEF PROCReduceFrameSize(fraction)
  295LOCAL _w%,_h%
  296_w%=INT(!(HIMEM+20)*fraction+.5) : _h%=INT(!(HIMEM+24)*fraction+.5)
  297!(HIMEM+12)+=INT((!(HIMEM+20)-_w%)/2+.5)
  298!(HIMEM+16)+=INT((!(HIMEM+24)-_h%)/2+.5)
  299!(HIMEM+20)=_w% : !(HIMEM+24)=_h%
  300ENDPROC
  301
  302DEF PROCGetFrameSize(RETURN a%,RETURN b%,RETURN width%,RETURN height%)
  303 REM -------------------------------------------
  304 REM
  305 REM Gives the size of the  drawing "frame".
  306 REM
  307 REM ------------------------------------------
  308  width%=!(HIMEM+20)
  309  height%=!(HIMEM+24)
  310  a%=!(HIMEM+12)
  311  b%=!(HIMEM+16)
  312ENDPROC
  313
  314REM -----------------
  315REM
  316REM 1.5 Co-ordinates
  317REM
  318REM -----------------
  319
  320DEF FNFrame_x=!(HIMEM+12)
  321DEF FNFrame_y=!(HIMEM+16)
  322DEF FNFrame_Width=!(HIMEM+20)
  323DEF FNFrame_Height=!(HIMEM+24)
  324
  325DEF FNFRAME_x=|(HIMEM+28)
  326DEF FNFRAME_y=|(HIMEM+36)
  327DEF FNFRAME_Width=|(HIMEM+44)
  328DEF FNFRAME_Height=|(HIMEM+52)
  329
  330DEF FNX_Scale=FNFrame_Width/FNFRAME_Width
  331DEF FNY_Scale=FNFrame_Height/FNFRAME_Height
  332
  333DEF FNEpsilon=1/FNY_Scale
  334
  335DEF FNMaxNoofPoints=!(HIMEM+208)
  336DEF FNMinNoofPoints=!(HIMEM+212)
  337DEF FNDotsPerInch=!(HIMEM+216)
  338
  339DEF FNDraw_X(x)=INT(FNFrame_x+(x-FNFRAME_x)*FNX_Scale+.5)
  340DEF FNDraw_Y(y)=INT(FNFrame_y+(y-FNFRAME_y)*FNY_Scale+.5)
  341
  342DEF PROCFrameCoords(a,b,u,v)
  343 REM -------------------------------------------
  344 REM
  345 REM The bounding box in the (x,y) plane which
  346 REM contains the drawing is a<x<b , u<y<v .
  347 REM
  348 REM
  349 REM ------------------------------------------
  350 LOCAL _frame%
  351 _frame%=HIMEM+28
  352 IF a>=b THEN ERROR 0, STR$a+" < x < "+STR$b+" is a bad x range "
  353 IF u>=v THEN ERROR 0, STR$u+" < y < "+STR$v+" is a bad y range "
  354 |(_frame%)=a      : |(_frame%+8)=u
  355 |(_frame%+16)=b-a : |(_frame%+24)=v-u
  356 ENDPROC
  357
  358DEF FNOutsideFrame(x,y)
  359LOCAL _a,_b,_u,_v
  360PROCGetFrameCoords(_a,_b,_u,_v)
  361=-((x<_a)<<3)OR-((x>_b)<<2)OR-((y<_u)<<1)OR-(y>_v)
  362
  363DEF FNInFrame(x,y)
  364IF FNOutsideFrame(x,y) THEN =FALSE ELSE=TRUE
  365
  366DEF PROCGetFrameCoords(RETURN a,RETURN b,RETURN u,RETURN v)
  367 REM -------------------------------------------
  368 REM
  369 REM The bounding box in the (x,y) plane which
  370 REM contains the drawing is a<x<b , u<y<v .
  371 REM
  372 REM
  373 REM ------------------------------------------
  374 LOCAL width,height
  375     a=|(HIMEM+28) :      u=|(HIMEM+36)
  376 width=|(HIMEM+44) : height=|(HIMEM+52)
  377 b=a+width : v=u+height
  378 ENDPROC
  379
  380DEF PROCShowFrame
  381 REM -------------------------------------------
  382 REM
  383 REM The bounding box in the (x,y) plane which
  384 REM contains the drawing is a<x<b , u<y<v .
  385 REM
  386 REM
  387 REM ------------------------------------------
  388 LOCAL _path%,_a,_b,_u,_v
  389  PROCGetFrameCoords(_a,_b,_u,_v)
  390  _path%=FNRectangle(_a,_u,_b-_a,_v-_u)
  391  PROCFill@(_path%,1)
  392  PROCDrawPath(_path%)
  393ENDPROC
  394
  395DEF PROCOrigin(A,B)
  396 REM --------------
  397 REM
  398 REM Changes origin
  399 REM
  400 REM --------------
  401 LOCAL _a,_b,_u,_v
  402 PROCGetFrameCoords(_a,_b,_u,_v)
  403 PROCFrameCoords(_a-A,_b-A,_u-B,_v-B)
  404ENDPROC
  405
  406
  407REM -------------------
  408REM
  409REM 1.6 Preview Screen
  410REM
  411REM -------------------
  412
  413DEF FNDrawDx=!(HIMEM+112)
  414
  415DEF FNDrawDy=!(HIMEM+116)
  416
  417DEF FNDrawTrans=HIMEM+96
  418
  419DEF PROCPreview
  420 REM ---------------------------------
  421 REM
  422 REM Draws any paths also to screen with
  423 REM a white background
  424 REM
  425 REM ---------------------------------
  426 VDU 26 : CLG
  427 LOCAL _h,_max%,_x%,_y%,_I%,_font%,_n$
  428 PROCDrawPreviewBorders(3000,12,8) 
  429 PROCDrawPreviewHScales(3000)
  430 PROCDrawPreviewVScales(3000)
  431 PROCDrawPreviewTitle(14,7)
  432ENDPROC
  433
  434DEF PROCDrawPreviewBorders(max%,point%,colour%)
  435REM Draw Borders
  436point%=point%*16
  437SYS "ColourTrans_SetGCOL",FNDesktopColour(2)
  438RECTANGLE FILL 0,0,FNDrawDy>>8,max%
  439RECTANGLE FILL 0,0,max%,FNDrawDx>>8
  440SYS "ColourTrans_SetGCOL",FNDesktopColour(7)
  441LINE FNDrawDx>>8,FNDrawDy>>8,max%,FNDrawDy>>8
  442LINE FNDrawDx>>8,FNDrawDy>>8,FNDrawDx>>8,max%
  443SYS "Font_FindFont",,"Trinity.Medium"+CHR$0,point%,point%
  444SYS "ColourTrans_SetFontColours",,FNDesktopColour(2),FNDesktopColour(colour%),14
  445ENDPROC
  446
  447DEF PROCDrawPreviewTitle(point%,colour%)
  448LOCAL _n$,_f$,i%
  449_f$=FNReadSystemVariable("DrawBasic$Options")
  450i%=INSTR(_f$,":") : IF i%<>0 THEN _f$=RIGHT$(_f$,LEN_f$-i%)
  451point%=point%*16
  452_n$="DrawBasic "+FNLeaf(_f$) 
  453IF FNUnits=256*180 THEN  _n$+=" (Inches)"  ELSE  _n$+=" (Cms)"
  454SYS "Font_FindFont",,"Trinity.Medium"+CHR$0,point%,point%
  455SYS "ColourTrans_SetFontColours",,FNDesktopColour(2),FNDesktopColour(colour%),14
  456SYS "Font_Paint",,_n$,%10000,16,12
  457ENDPROC   
  458
  459DEF FNReadSystemVariable(variable$)
  460REM
  461REM ----------------------------
  462REM  Reads the value of a string
  463REM  system variable
  464REM ----------------------------
  465REM
  466LOCAL _len%,_variable%
  467DIM _variable% 256
  468SYS "OS_ReadVarVal",variable$,_variable%,256,,3 TO ,,_len%
  469_variable%?_len%=13
  470=$_variable%
  471
  472DEF FNLeaf(x$)
  473LOCAL _i% : _i%=INSTR(x$,".")
  474IF _i%=0 THEN=x$ ELSE=FNLeaf(RIGHT$(x$,LENx$-_i%))
  475
  476DEF PROCDrawPreviewHScales(max%)
  477REM Draw Scales
  478LOCAL _h,_x%,_I%,_dx%,_dy%
  479_I%=0  : _h%=FNUnits>>8 :_dx%=FNDrawDx>>8 :  _dy%=FNDrawDy>>8
  480REPEAT : _x%=_dx%+(FNDraw_Y(_I%)>>8)
  481 LINE _x%,_dy%,_x%,3*_dy%/4
  482 LINE _x%+_h%/2,_dy%,_x%+_h%/2,7*_dy%/8
  483 SYS "Font_Paint",,STR$(_I%),%10000,_x%-8,_dy%/2
  484 _I%+=1
  485 UNTIL _x%>max%
  486ENDPROC
  487
  488DEF PROCDrawPreviewVScales(max%)
  489LOCAL _h,_y%,_I%,_dx%,_dy%
  490_I%=0 : _h%=FNUnits>>8 :_dx%=FNDrawDx>>8 :  _dy%=FNDrawDy>>8
  491REPEAT : _y%=_dy%+(FNDraw_X(_I%)>>8)
  492 LINE  _dx%,_y%,3*_dx%/4,_y%
  493 LINE  _dx%,_y%+_h%/2,7*_dx%/8,_y%+_h%/2
  494 IF _I%>9 THEN
  495  SYS "Font_Paint",,STR$(_I%),%10000,36,_y%-10
  496 ELSE
  497  SYS "Font_Paint",,STR$(_I%),%10000,48,_y%-10
  498 ENDIF
  499 _I%+=1
  500 UNTIL _y%>max%
  501ENDPROC
  502
� > DrawBasic:Utils

=� =======================================================
�
$� copyright Joe Taylor June 1994
�
;� N.B. For ERROR THROWBACK to work The first line above
7�      MUST have the correct pathname of this file.
	;�      If you move the location of the file remember to

�      alter this pathname.
�
=� =======================================================



P� **************************************************************************
�
� 1. SETTING UP A DRAW FILE
�
P� **************************************************************************

� =======================
� 1.1 Memory Manipulation
� =======================

� �FreeSlot
- � --------------------------------------
 �
- � Allocates 'Free' slot for data storage
 �
# � Called in Library setup file
 �
 - � --------------------------------------
! � Buffer%,Free_Size%
", ș "Wimp_SlotSize",-1,-1 � ,,Free_Size%
# � Free_Size%<32 �
$  � � �
%   ș "Wimp_CommandWindow",-1
&N  � � 0,"DrawBasic needs a non-empty 'Free' slot to save Draw file output"
'  �
(6 � Free_Size%>1024*1024*4 � Free_Size%=1024*1024*4
) Buffer%=�
* �=Buffer%+Free_Size%
+ !Buffer%=Buffer%+8
,"  Buffer%!4=Buffer%+Free_Size%
-=Buffer%
.
/� �Draw_AddWord(x%)
0, � -------------------------------------
1 �
2& � Adds the word (4 bytes) x% to a
3 � "formatted" word array.
4 �
5  � The "pointer" is updated.
6 �
7, � -------------------------------------
8+ � (!�)>=(!(�+4)) � � 0,"Out of memory"
9: !(!�)=x%  : � write word to file at next free address
:3 !�+=4     : � update pointer to next free byte
; �
<
=� �Draw_AddFloat(x)
>, � -------------------------------------
? �
@% � Adds the floating-point number
A � (5 or 8 bytes) x .
B �
C  � The "pointer" is updated.
D �
E, � -------------------------------------
F- � (!�)+4>=(!(�+4)) � � 0,"Out of memory"
G5 |(!�)=x   : � write to file at next free address
H3 !�+=8     : � update pointer to next free byte
I �
J
K"� �Draw_AddString(pointer%,x$)
L2 � -------------------------------------------
M �
N1 � Adds string x$ to a "formatted" word array
O � and adds a CHR$0.
P �
Q/ � String is now aligned with word boundary
R �
S1 � ------------------------------------------
T
 � _a%
U _a%=�x$
V6 � (!pointer%+_a%)>=(!(�+4)) � � 0,"Out of memory"
W1 � (_a%�4)<>0 �  x$+=�4-(_a%�4),�0) : _a%=�x$
X $(!pointer%)=x$
Y !pointer%+=_a%
Z �
[
\� �Draw_AddCoords(x,y)
]2 � -------------------------------------------
^ �
_ � Adds coordinates (x,y)
` �
a �
b1 � ------------------------------------------
c �Draw_AddWord(�Draw_X(x))
d �Draw_AddWord(�Draw_Y(y))
e �
f
g$� �MoveMemory(address%,n_words%)
h* � -----------------------------------
i �
j) � Moves n_words% upwards starting at
k � address%
l �
m* � -----------------------------------
n( � _i%,_n% : _n%=4*n_words% : _i%=!�
o8 � address%+_n%>=(!(�+4)) � � 0,"Not enough memory!"
p ȕ _i%>address%
q  _i%-=4
r  _i%!_n%=!_i%
s  �
t
  !�+=_n%
u�
v
w� �ObjectType(path)
x%� path>=!(�+4) �=!(!path) �=!path
y
z� ========================
{� 1.2 Creating A Draw File
|� ========================
}
~� �BeginDrawing
 � ---------------------
� �
� � Sets up "new" drawing
� �
� � ---------------------
� �Draw_SetUp
� �Draw_SetFileHeader
� �Draw_SetFontTable
��
�
�� �Draw_SetUp
�, � _scale%  : _scale%=�(180*256/2.54+.5)
�F �Draw_AddWord(0)                      : � 8  Address of Draw File
�O �Draw_AddWord(0)                      : � 12 Origin x         (Draw units)
�J �Draw_AddWord(0)                      : � 16 Origin y              ""
�J �Draw_AddWord(12*_scale%)             : � 20 Frame_size width      ""
�J �Draw_AddWord(12*_scale%)             : � 24 Frame_size height     ""
�O �Draw_AddFloat(0)                     : � 28 Frame Coords a   (User units)
�J �Draw_AddFloat(0)                     : � 36 Frame Coords u        ""
�J �Draw_AddFloat(12)                    : � 44 Frame Coords width    ""
�J �Draw_AddFloat(12)                    : � 52 Frame Coords height   ""
�7 �Draw_AddWord(_scale%)                : � 60 Units
�
�> �Draw_AddWord(0)                      : � 64 Current path
�A �Draw_AddWord(0)                      : � 68 Current subpath
�
�= �Draw_AddWord(0)                      : � 72 Symbol type
�> �Draw_AddWord(0)                      : � 76 Dash pattern
�= �Draw_AddWord(12)                     : � 80 Symbol size
�
�J �Draw_AddWord(14*640)                 : � 84 Text Font size  (points)
�= �Draw_AddWord(0)                      : � 88 Text colour
�> �Draw_AddWord(1)                      : � 92 Current Font
�
�; �Draw_AddWord(1<<16)                  : � 96 Translate
�2 �Draw_AddWord(0)                      : � 100
�2 �Draw_AddWord(0)                      : � 104
�2 �Draw_AddWord(1<<16)                  : � 108
�2 �Draw_AddWord(256*90)                 : � 112
�2 �Draw_AddWord(256*90)                 : � 116
�
�A �Draw_AddWord(_scale%)                : � 120 Cms/Draw units
�
�= �Draw_AddWord(1<<16)                  : � 124 Axes width
�G �Draw_AddWord((3<<16)+3)              : � 128 Axes Cap Point/width
�C �Draw_AddWord(0)                      : � 132 Axes Extend (0%)
�
�= �Draw_AddWord(1)                      : � 136  Nx scales
�= �Draw_AddWord(0)                      : � 140  nx scales
�= �Draw_AddWord(1)                      : � 144  Ny scales
�= �Draw_AddWord(0)                      : � 148  ny scales
�= �Draw_AddWord(10)                     : � 152  Lx scales
�= �Draw_AddWord(7)                      : � 156  lx scales
�= �Draw_AddWord(10)                     : � 160  Ly scales
�= �Draw_AddWord(7)                      : � 164  ly scales
�= �Draw_AddWord(1<<16)                  : � 168  Wx scales
�= �Draw_AddWord(1<<15)                  : � 172  wx scales
�= �Draw_AddWord(1<<16)                  : � 176  Wy scales
�= �Draw_AddWord(1<<15)                  : � 180  wy scales
�
�I �Draw_AddWord(1<<16)                  : � 184  REM Current Transform
�2 �Draw_AddWord(0)                      : � 188
�2 �Draw_AddWord(0)                      : � 192
�2 �Draw_AddWord(1<<16)                  : � 196
�2 �Draw_AddWord(0)                      : � 200
�2 �Draw_AddWord(0)                      : � 204
�
�C �Draw_AddWord(10000)                  : � 208 Max x resolution
�C �Draw_AddWord(100)                    : � 212 Min x resolution
�I �Draw_AddWord(300)                    : � 216 V resolution dots/inch
�
�C �Draw_AddWord(4)                      : � 220 Bar chart scales
�> �Draw_AddWord(0)                      : � 224 Line Colour
�H �Draw_AddWord(-1)                     : � 228 Fill Colour (no fill)
�= �Draw_AddWord(0)                      : � 232 Line Width
�= �Draw_AddWord(0)                      : � 236 Line style
�? �Draw_AddWord(0)                      : � 240 Chart factor
�: �Draw_AddWord(0)                      : � 244      ""
� |(�+240)=5/6
�
�> !(�+8)=!�                        : � Address of Draw file
��
�
�� �Draw_SetFileHeader
� �
�# � --------40 bytes------------
� �
�0 �Draw_AddString(�,"Draw")         : � Title
�B �Draw_AddWord(201)                    : � major format number
�B �Draw_AddWord(0)                      : � minor format number
�8 �Draw_AddString(�,"DrawBasic   ") : � Program Title
�: �Draw_AddWord(0)                      : � BoundingBox
�: �Draw_AddWord(0)                      : � BoundingBox
�: �Draw_AddWord(256*180*12*3*800)       : � BoundingBox
�: �Draw_AddWord(256*180*12*3*800)       : � BoundingBox
��
�
�� �Draw_SetFontTable
�8 � -------------------------------------------------
� �
�8 � This procedure should not be called in a program.
�) � It is used  to set the Font table.
� �
�8 � -------------------------------------------------
�" � _fonts% : _fonts%=!(�+8)+40
�= �Draw_AddWord(0)                  : � Font object type 0
�= �Draw_AddWord(0)                  : � Font object length
�. �Draw_AddString(�,�1+"Trinity.Medium"+�0)
�< !(_fonts%+4)=!�-_fonts%          : � Font object length
��
�
�� ========================
�� 1.3 Saving A Draw File
�� ========================
�
�� �Quit
�> � -------------------------------------------------------
� �
�, � Saves Draw file to DrawBasic:DrawFile
� �
�< � The file is then *Run so it will be loaded into !Draw
� �
�> � -------------------------------------------------------
�7 � !(�+68)<>0 � � 0,"Paths must end with 'PathEnd'"
�* *Set Draw_Basic$Path <Wimp$ScrapDir>.
�9 �("Save Draw_Basic:DrawFile "+�~(!(�+8))+" "+�~(!�))
�* *SetType Draw_Basic:DrawFile DrawFile
�# *Filer_Run Draw_Basic:DrawFile
��

� ---------
�
� 1.4 Units
�
� ---------

� �Units=!(�+60)

	� �Centimetres

!(�+60)=�(256*180/2.54+.5)
�FrameSize(0,0,12,12)
�FrameCoords(0,12,0,12)

�Preview
�


� �Inches
!(�+60)=256*180
�FrameSize(0,0,6,6)
�FrameCoords(0,6,0,6)
�Preview
�

"� �DrawUnits(a)=�(�Units*a+.5)

"� �FrameSize(a,b,width,height)
2 � -------------------------------------------
 �
0 � Defines the size of the  drawing "frame".
 �
1 � ------------------------------------------
# �FrameCoords(0,width,0,height)
 9  !(�+20)=�DrawUnits(width)  : � Bounding box - width
!:  !(�+24)=�DrawUnits(height) : � Bounding box - height
",  !(�+12)=�DrawUnits(a)      : � Frame_x
#,  !(�+16)=�DrawUnits(b)      : � Frame_y
$�
%
& � �ReduceFrameSize(fraction)
'
� _w%,_h%
(;_w%=�(!(�+20)*fraction+.5) : _h%=�(!(�+24)*fraction+.5)
)"!(�+12)+=�((!(�+20)-_w%)/2+.5)
*"!(�+16)+=�((!(�+24)-_h%)/2+.5)
+!(�+20)=_w% : !(�+24)=_h%
,�
-
.1� �GetFrameSize(� a%,� b%,� width%,� height%)
/2 � -------------------------------------------
0 �
1. � Gives the size of the  drawing "frame".
2 �
31 � ------------------------------------------
4  width%=!(�+20)
5  height%=!(�+24)
6  a%=!(�+12)
7  b%=!(�+16)
8�
9
:� -----------------
;�
<� 1.5 Co-ordinates
=�
>� -----------------
?
@� �Frame_x=!(�+12)
A� �Frame_y=!(�+16)
B� �Frame_Width=!(�+20)
C� �Frame_Height=!(�+24)
D
E� �FRAME_x=|(�+28)
F� �FRAME_y=|(�+36)
G� �FRAME_Width=|(�+44)
H� �FRAME_Height=|(�+52)
I
J(� �X_Scale=�Frame_Width/�FRAME_Width
K*� �Y_Scale=�Frame_Height/�FRAME_Height
L
M� �Epsilon=1/�Y_Scale
N
O� �MaxNoofPoints=!(�+208)
P� �MinNoofPoints=!(�+212)
Q� �DotsPerInch=!(�+216)
R
S5� �Draw_X(x)=�(�Frame_x+(x-�FRAME_x)*�X_Scale+.5)
T5� �Draw_Y(y)=�(�Frame_y+(y-�FRAME_y)*�Y_Scale+.5)
U
V� �FrameCoords(a,b,u,v)
W2 � -------------------------------------------
X �
Y0 � The bounding box in the (x,y) plane which
Z. � contains the drawing is a<x<b , u<y<v .
[ �
\ �
]1 � ------------------------------------------
^ � _frame%
_ _frame%=�+28
`7 � a>=b � � 0, �a+" < x < "+�b+" is a bad x range "
a7 � u>=v � � 0, �u+" < y < "+�v+" is a bad y range "
b' |(_frame%)=a      : |(_frame%+8)=u
c* |(_frame%+16)=b-a : |(_frame%+24)=v-u
d �
e
f� �OutsideFrame(x,y)
g� _a,_b,_u,_v
h �GetFrameCoords(_a,_b,_u,_v)
i3=-((x<_a)<<3)�-((x>_b)<<2)�-((y<_u)<<1)�-(y>_v)
j
k� �InFrame(x,y)
l!� �OutsideFrame(x,y) � =� �=�
m
n&� �GetFrameCoords(� a,� b,� u,� v)
o2 � -------------------------------------------
p �
q0 � The bounding box in the (x,y) plane which
r. � contains the drawing is a<x<b , u<y<v .
s �
t �
u1 � ------------------------------------------
v � width,height
w#     a=|(�+28) :      u=|(�+36)
x# width=|(�+44) : height=|(�+52)
y b=a+width : v=u+height
z �
{
|� �ShowFrame
}2 � -------------------------------------------
~ �
0 � The bounding box in the (x,y) plane which
�. � contains the drawing is a<x<b , u<y<v .
� �
� �
�1 � ------------------------------------------
� � _path%,_a,_b,_u,_v
�"  �GetFrameCoords(_a,_b,_u,_v)
�*  _path%=�Rectangle(_a,_u,_b-_a,_v-_u)
�  �Fill@(_path%,1)
�  �DrawPath(_path%)
��
�
�� �Origin(A,B)
� � --------------
� �
� � Changes origin
� �
� � --------------
� � _a,_b,_u,_v
�! �GetFrameCoords(_a,_b,_u,_v)
�& �FrameCoords(_a-A,_b-A,_u-B,_v-B)
��
�
�
�� -------------------
��
�� 1.6 Preview Screen
��
�� -------------------
�
�� �DrawDx=!(�+112)
�
�� �DrawDy=!(�+116)
�
�� �DrawTrans=�+96
�
�� �Preview
�( � ---------------------------------
� �
�* � Draws any paths also to screen with
� � a white background
� �
�( � ---------------------------------
�
 � 26 : �
�& � _h,_max%,_x%,_y%,_I%,_font%,_n$
�$ �DrawPreviewBorders(3000,12,8) 
� �DrawPreviewHScales(3000)
� �DrawPreviewVScales(3000)
� �DrawPreviewTitle(14,7)
��
�
�.� �DrawPreviewBorders(max%,point%,colour%)
�� Draw Borders
�point%=point%*16
�.ș "ColourTrans_SetGCOL",�DesktopColour(2)
�ȓ Ȑ 0,0,�DrawDy>>8,max%
�ȓ Ȑ 0,0,max%,�DrawDx>>8
�.ș "ColourTrans_SetGCOL",�DesktopColour(7)
�+� �DrawDx>>8,�DrawDy>>8,max%,�DrawDy>>8
�+� �DrawDx>>8,�DrawDy>>8,�DrawDx>>8,max%
�9ș "Font_FindFont",,"Trinity.Medium"+�0,point%,point%
�Qș "ColourTrans_SetFontColours",,�DesktopColour(2),�DesktopColour(colour%),14
��
�
�'� �DrawPreviewTitle(point%,colour%)
�� _n$,_f$,i%
�0_f$=�ReadSystemVariable("DrawBasic$Options")
�.i%=�_f$,":") : � i%<>0 � _f$=�_f$,�_f$-i%)
�point%=point%*16
� _n$="DrawBasic "+�Leaf(_f$) 
�:� �Units=256*180 �  _n$+=" (Inches)"  �  _n$+=" (Cms)"
�9ș "Font_FindFont",,"Trinity.Medium"+�0,point%,point%
�Qș "ColourTrans_SetFontColours",,�DesktopColour(2),�DesktopColour(colour%),14
�%ș "Font_Paint",,_n$,%10000,16,12
��   
�
�$� �ReadSystemVariable(variable$)
��
�"� ----------------------------
�"�  Reads the value of a string
��  system variable
�"� ----------------------------
��
�� _len%,_variable%
�� _variable% 256
�<ș "OS_ReadVarVal",variable$,_variable%,256,,3 � ,,_len%
�_variable%?_len%=13
�=$_variable%
�
�� �Leaf(x$)
�� _i% : _i%=�x$,".")
�&� _i%=0 �=x$ �=�Leaf(�x$,�x$-_i%))
�
�� �DrawPreviewHScales(max%)
�� Draw Scales
�� _h,_x%,_I%,_dx%,_dy%
�>_I%=0  : _h%=�Units>>8 :_dx%=�DrawDx>>8 :  _dy%=�DrawDy>>8
�"� : _x%=_dx%+(�Draw_Y(_I%)>>8)
� � _x%,_dy%,_x%,3*_dy%/4
�( � _x%+_h%/2,_dy%,_x%+_h%/2,7*_dy%/8
�0 ș "Font_Paint",,�(_I%),%10000,_x%-8,_dy%/2
� _I%+=1
� � _x%>max%
��
�
�� �DrawPreviewVScales(max%)
�� _h,_y%,_I%,_dx%,_dy%
�=_I%=0 : _h%=�Units>>8 :_dx%=�DrawDx>>8 :  _dy%=�DrawDy>>8
�"� : _y%=_dy%+(�Draw_X(_I%)>>8)
� �  _dx%,_y%,3*_dx%/4,_y%
�) �  _dx%,_y%+_h%/2,7*_dx%/8,_y%+_h%/2
� � _I%>9 �
�.  ș "Font_Paint",,�(_I%),%10000,36,_y%-10
� �
�.  ș "Font_Paint",,�(_I%),%10000,48,_y%-10
� �
� _I%+=1
� � _y%>max%
��
�
�
00000000  0d 00 01 17 f4 20 3e 20  44 72 61 77 42 61 73 69  |..... > DrawBasi|
00000010  63 3a 55 74 69 6c 73 0d  00 02 04 0d 00 03 3d f4  |c:Utils.......=.|
00000020  20 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  | ===============|
00000030  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
*
00000050  3d 3d 3d 3d 3d 3d 3d 3d  0d 00 04 05 f4 0d 00 05  |========........|
00000060  24 f4 20 63 6f 70 79 72  69 67 68 74 20 4a 6f 65  |$. copyright Joe|
00000070  20 54 61 79 6c 6f 72 20  4a 75 6e 65 20 31 39 39  | Taylor June 199|
00000080  34 0d 00 06 05 f4 0d 00  07 3b f4 20 4e 2e 42 2e  |4........;. N.B.|
00000090  20 46 6f 72 20 45 52 52  4f 52 20 54 48 52 4f 57  | For ERROR THROW|
000000a0  42 41 43 4b 20 74 6f 20  77 6f 72 6b 20 54 68 65  |BACK to work The|
000000b0  20 66 69 72 73 74 20 6c  69 6e 65 20 61 62 6f 76  | first line abov|
000000c0  65 0d 00 08 37 f4 20 20  20 20 20 20 4d 55 53 54  |e...7.      MUST|
000000d0  20 68 61 76 65 20 74 68  65 20 63 6f 72 72 65 63  | have the correc|
000000e0  74 20 70 61 74 68 6e 61  6d 65 20 6f 66 20 74 68  |t pathname of th|
000000f0  69 73 20 66 69 6c 65 2e  0d 00 09 3b f4 20 20 20  |is file....;.   |
00000100  20 20 20 49 66 20 79 6f  75 20 6d 6f 76 65 20 74  |   If you move t|
00000110  68 65 20 6c 6f 63 61 74  69 6f 6e 20 6f 66 20 74  |he location of t|
00000120  68 65 20 66 69 6c 65 20  72 65 6d 65 6d 62 65 72  |he file remember|
00000130  20 74 6f 0d 00 0a 1f f4  20 20 20 20 20 20 61 6c  | to.....      al|
00000140  74 65 72 20 74 68 69 73  20 70 61 74 68 6e 61 6d  |ter this pathnam|
00000150  65 2e 0d 00 0b 05 f4 0d  00 0c 3d f4 20 3d 3d 3d  |e.........=. ===|
00000160  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
*
00000190  3d 3d 3d 3d 0d 00 0d 04  0d 00 0e 04 0d 00 0f 50  |====...........P|
000001a0  f4 20 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |. **************|
000001b0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000001e0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 0d 00 10 05  |************....|
000001f0  f4 0d 00 11 1f f4 20 31  2e 20 53 45 54 54 49 4e  |...... 1. SETTIN|
00000200  47 20 55 50 20 41 20 44  52 41 57 20 46 49 4c 45  |G UP A DRAW FILE|
00000210  0d 00 12 05 f4 0d 00 13  50 f4 20 2a 2a 2a 2a 2a  |........P. *****|
00000220  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000260  2a 2a 2a 2a 2a 0d 00 14  04 0d 00 15 1d f4 20 3d  |*****......... =|
00000270  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
00000280  3d 3d 3d 3d 3d 3d 0d 00  16 1d f4 20 31 2e 31 20  |======..... 1.1 |
00000290  4d 65 6d 6f 72 79 20 4d  61 6e 69 70 75 6c 61 74  |Memory Manipulat|
000002a0  69 6f 6e 0d 00 17 1d f4  20 3d 3d 3d 3d 3d 3d 3d  |ion..... =======|
000002b0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
000002c0  0d 00 18 04 0d 00 19 0f  dd 20 a4 46 72 65 65 53  |......... .FreeS|
000002d0  6c 6f 74 0d 00 1a 2d 20  f4 20 2d 2d 2d 2d 2d 2d  |lot...- . ------|
000002e0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000300  0d 00 1b 06 20 f4 0d 00  1c 2d 20 f4 20 41 6c 6c  |.... ....- . All|
00000310  6f 63 61 74 65 73 20 27  46 72 65 65 27 20 73 6c  |ocates 'Free' sl|
00000320  6f 74 20 66 6f 72 20 64  61 74 61 20 73 74 6f 72  |ot for data stor|
00000330  61 67 65 0d 00 1d 06 20  f4 0d 00 1e 23 20 f4 20  |age.... ....# . |
00000340  43 61 6c 6c 65 64 20 69  6e 20 4c 69 62 72 61 72  |Called in Librar|
00000350  79 20 73 65 74 75 70 20  66 69 6c 65 0d 00 1f 06  |y setup file....|
00000360  20 f4 0d 00 20 2d 20 f4  20 2d 2d 2d 2d 2d 2d 2d  | ... - . -------|
00000370  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000380  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
00000390  00 21 19 20 ea 20 42 75  66 66 65 72 25 2c 46 72  |.!. . Buffer%,Fr|
000003a0  65 65 5f 53 69 7a 65 25  0d 00 22 2c 20 c8 99 20  |ee_Size%..", .. |
000003b0  22 57 69 6d 70 5f 53 6c  6f 74 53 69 7a 65 22 2c  |"Wimp_SlotSize",|
000003c0  2d 31 2c 2d 31 20 b8 20  2c 2c 46 72 65 65 5f 53  |-1,-1 . ,,Free_S|
000003d0  69 7a 65 25 0d 00 23 16  20 e7 20 46 72 65 65 5f  |ize%..#. . Free_|
000003e0  53 69 7a 65 25 3c 33 32  20 8c 0d 00 24 0b 20 20  |Size%<32 ...$.  |
000003f0  ee 20 85 20 87 0d 00 25  20 20 20 c8 99 20 22 57  |. . ...%   .. "W|
00000400  69 6d 70 5f 43 6f 6d 6d  61 6e 64 57 69 6e 64 6f  |imp_CommandWindo|
00000410  77 22 2c 2d 31 0d 00 26  4e 20 20 85 20 a2 20 30  |w",-1..&N  . . 0|
00000420  2c 22 44 72 61 77 42 61  73 69 63 20 6e 65 65 64  |,"DrawBasic need|
00000430  73 20 61 20 6e 6f 6e 2d  65 6d 70 74 79 20 27 46  |s a non-empty 'F|
00000440  72 65 65 27 20 73 6c 6f  74 20 74 6f 20 73 61 76  |ree' slot to sav|
00000450  65 20 44 72 61 77 20 66  69 6c 65 20 6f 75 74 70  |e Draw file outp|
00000460  75 74 22 0d 00 27 07 20  20 cd 0d 00 28 36 20 e7  |ut"..'.  ...(6 .|
00000470  20 46 72 65 65 5f 53 69  7a 65 25 3e 31 30 32 34  | Free_Size%>1024|
00000480  2a 31 30 32 34 2a 34 20  8c 20 46 72 65 65 5f 53  |*1024*4 . Free_S|
00000490  69 7a 65 25 3d 31 30 32  34 2a 31 30 32 34 2a 34  |ize%=1024*1024*4|
000004a0  0d 00 29 0e 20 42 75 66  66 65 72 25 3d 93 0d 00  |..). Buffer%=...|
000004b0  2a 19 20 e0 3d 42 75 66  66 65 72 25 2b 46 72 65  |*. .=Buffer%+Fre|
000004c0  65 5f 53 69 7a 65 25 0d  00 2b 17 20 21 42 75 66  |e_Size%..+. !Buf|
000004d0  66 65 72 25 3d 42 75 66  66 65 72 25 2b 38 0d 00  |fer%=Buffer%+8..|
000004e0  2c 22 20 20 42 75 66 66  65 72 25 21 34 3d 42 75  |,"  Buffer%!4=Bu|
000004f0  66 66 65 72 25 2b 46 72  65 65 5f 53 69 7a 65 25  |ffer%+Free_Size%|
00000500  0d 00 2d 0c 3d 42 75 66  66 65 72 25 0d 00 2e 04  |..-.=Buffer%....|
00000510  0d 00 2f 17 dd 20 f2 44  72 61 77 5f 41 64 64 57  |../.. .Draw_AddW|
00000520  6f 72 64 28 78 25 29 0d  00 30 2c 20 f4 20 2d 2d  |ord(x%)..0, . --|
00000530  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000550  2d 2d 2d 0d 00 31 06 20  f4 0d 00 32 26 20 f4 20  |---..1. ...2& . |
00000560  41 64 64 73 20 74 68 65  20 77 6f 72 64 20 28 34  |Adds the word (4|
00000570  20 62 79 74 65 73 29 20  78 25 20 74 6f 20 61 0d  | bytes) x% to a.|
00000580  00 33 1e 20 f4 20 22 66  6f 72 6d 61 74 74 65 64  |.3. . "formatted|
00000590  22 20 77 6f 72 64 20 61  72 72 61 79 2e 0d 00 34  |" word array...4|
000005a0  06 20 f4 0d 00 35 20 20  f4 20 54 68 65 20 22 70  |. ...5  . The "p|
000005b0  6f 69 6e 74 65 72 22 20  69 73 20 75 70 64 61 74  |ointer" is updat|
000005c0  65 64 2e 0d 00 36 06 20  f4 0d 00 37 2c 20 f4 20  |ed...6. ...7, . |
000005d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000005f0  2d 2d 2d 2d 2d 0d 00 38  2b 20 e7 20 28 21 93 29  |-----..8+ . (!.)|
00000600  3e 3d 28 21 28 93 2b 34  29 29 20 8c 20 85 20 30  |>=(!(.+4)) . . 0|
00000610  2c 22 4f 75 74 20 6f 66  20 6d 65 6d 6f 72 79 22  |,"Out of memory"|
00000620  0d 00 39 3a 20 21 28 21  93 29 3d 78 25 20 20 3a  |..9: !(!.)=x%  :|
00000630  20 f4 20 77 72 69 74 65  20 77 6f 72 64 20 74 6f  | . write word to|
00000640  20 66 69 6c 65 20 61 74  20 6e 65 78 74 20 66 72  | file at next fr|
00000650  65 65 20 61 64 64 72 65  73 73 0d 00 3a 33 20 21  |ee address..:3 !|
00000660  93 2b 3d 34 20 20 20 20  20 3a 20 f4 20 75 70 64  |.+=4     : . upd|
00000670  61 74 65 20 70 6f 69 6e  74 65 72 20 74 6f 20 6e  |ate pointer to n|
00000680  65 78 74 20 66 72 65 65  20 62 79 74 65 0d 00 3b  |ext free byte..;|
00000690  06 20 e1 0d 00 3c 04 0d  00 3d 17 dd 20 f2 44 72  |. ...<...=.. .Dr|
000006a0  61 77 5f 41 64 64 46 6c  6f 61 74 28 78 29 0d 00  |aw_AddFloat(x)..|
000006b0  3e 2c 20 f4 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |>, . -----------|
000006c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000006d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0d 00 3f 06 20 f4  |----------..?. .|
000006e0  0d 00 40 25 20 f4 20 41  64 64 73 20 74 68 65 20  |..@% . Adds the |
000006f0  66 6c 6f 61 74 69 6e 67  2d 70 6f 69 6e 74 20 6e  |floating-point n|
00000700  75 6d 62 65 72 0d 00 41  19 20 f4 20 28 35 20 6f  |umber..A. . (5 o|
00000710  72 20 38 20 62 79 74 65  73 29 20 78 20 2e 0d 00  |r 8 bytes) x ...|
00000720  42 06 20 f4 0d 00 43 20  20 f4 20 54 68 65 20 22  |B. ...C  . The "|
00000730  70 6f 69 6e 74 65 72 22  20 69 73 20 75 70 64 61  |pointer" is upda|
00000740  74 65 64 2e 0d 00 44 06  20 f4 0d 00 45 2c 20 f4  |ted...D. ...E, .|
00000750  20 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ---------------|
00000760  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000770  2d 2d 2d 2d 2d 2d 0d 00  46 2d 20 e7 20 28 21 93  |------..F- . (!.|
00000780  29 2b 34 3e 3d 28 21 28  93 2b 34 29 29 20 8c 20  |)+4>=(!(.+4)) . |
00000790  85 20 30 2c 22 4f 75 74  20 6f 66 20 6d 65 6d 6f  |. 0,"Out of memo|
000007a0  72 79 22 0d 00 47 35 20  7c 28 21 93 29 3d 78 20  |ry"..G5 |(!.)=x |
000007b0  20 20 3a 20 f4 20 77 72  69 74 65 20 74 6f 20 66  |  : . write to f|
000007c0  69 6c 65 20 61 74 20 6e  65 78 74 20 66 72 65 65  |ile at next free|
000007d0  20 61 64 64 72 65 73 73  0d 00 48 33 20 21 93 2b  | address..H3 !.+|
000007e0  3d 38 20 20 20 20 20 3a  20 f4 20 75 70 64 61 74  |=8     : . updat|
000007f0  65 20 70 6f 69 6e 74 65  72 20 74 6f 20 6e 65 78  |e pointer to nex|
00000800  74 20 66 72 65 65 20 62  79 74 65 0d 00 49 06 20  |t free byte..I. |
00000810  e1 0d 00 4a 04 0d 00 4b  22 dd 20 f2 44 72 61 77  |...J...K". .Draw|
00000820  5f 41 64 64 53 74 72 69  6e 67 28 70 6f 69 6e 74  |_AddString(point|
00000830  65 72 25 2c 78 24 29 0d  00 4c 32 20 f4 20 2d 2d  |er%,x$)..L2 . --|
00000840  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000860  2d 2d 2d 2d 2d 2d 2d 2d  2d 0d 00 4d 06 20 f4 0d  |---------..M. ..|
00000870  00 4e 31 20 f4 20 41 64  64 73 20 73 74 72 69 6e  |.N1 . Adds strin|
00000880  67 20 78 24 20 74 6f 20  61 20 22 66 6f 72 6d 61  |g x$ to a "forma|
00000890  74 74 65 64 22 20 77 6f  72 64 20 61 72 72 61 79  |tted" word array|
000008a0  0d 00 4f 18 20 f4 20 61  6e 64 20 61 64 64 73 20  |..O. . and adds |
000008b0  61 20 43 48 52 24 30 2e  0d 00 50 06 20 f4 0d 00  |a CHR$0...P. ...|
000008c0  51 2f 20 f4 20 53 74 72  69 6e 67 20 69 73 20 6e  |Q/ . String is n|
000008d0  6f 77 20 61 6c 69 67 6e  65 64 20 77 69 74 68 20  |ow aligned with |
000008e0  77 6f 72 64 20 62 6f 75  6e 64 61 72 79 0d 00 52  |word boundary..R|
000008f0  06 20 f4 0d 00 53 31 20  f4 20 2d 2d 2d 2d 2d 2d  |. ...S1 . ------|
00000900  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000920  2d 2d 2d 2d 0d 00 54 0a  20 ea 20 5f 61 25 0d 00  |----..T. . _a%..|
00000930  55 0c 20 5f 61 25 3d a9  78 24 0d 00 56 36 20 e7  |U. _a%=.x$..V6 .|
00000940  20 28 21 70 6f 69 6e 74  65 72 25 2b 5f 61 25 29  | (!pointer%+_a%)|
00000950  3e 3d 28 21 28 93 2b 34  29 29 20 8c 20 85 20 30  |>=(!(.+4)) . . 0|
00000960  2c 22 4f 75 74 20 6f 66  20 6d 65 6d 6f 72 79 22  |,"Out of memory"|
00000970  0d 00 57 31 20 e7 20 28  5f 61 25 83 34 29 3c 3e  |..W1 . (_a%.4)<>|
00000980  30 20 8c 20 20 78 24 2b  3d c4 34 2d 28 5f 61 25  |0 .  x$+=.4-(_a%|
00000990  83 34 29 2c bd 30 29 20  3a 20 5f 61 25 3d a9 78  |.4),.0) : _a%=.x|
000009a0  24 0d 00 58 14 20 24 28  21 70 6f 69 6e 74 65 72  |$..X. $(!pointer|
000009b0  25 29 3d 78 24 0d 00 59  13 20 21 70 6f 69 6e 74  |%)=x$..Y. !point|
000009c0  65 72 25 2b 3d 5f 61 25  0d 00 5a 06 20 e1 0d 00  |er%+=_a%..Z. ...|
000009d0  5b 04 0d 00 5c 1a dd 20  f2 44 72 61 77 5f 41 64  |[...\.. .Draw_Ad|
000009e0  64 43 6f 6f 72 64 73 28  78 2c 79 29 0d 00 5d 32  |dCoords(x,y)..]2|
000009f0  20 f4 20 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | . -------------|
00000a00  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000a10  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0d 00  |--------------..|
00000a20  5e 06 20 f4 0d 00 5f 1d  20 f4 20 41 64 64 73 20  |^. ..._. . Adds |
00000a30  63 6f 6f 72 64 69 6e 61  74 65 73 20 28 78 2c 79  |coordinates (x,y|
00000a40  29 0d 00 60 06 20 f4 0d  00 61 06 20 f4 0d 00 62  |)..`. ...a. ...b|
00000a50  31 20 f4 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |1 . ------------|
00000a60  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000a70  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0d 00  |--------------..|
00000a80  63 1e 20 f2 44 72 61 77  5f 41 64 64 57 6f 72 64  |c. .Draw_AddWord|
00000a90  28 a4 44 72 61 77 5f 58  28 78 29 29 0d 00 64 1e  |(.Draw_X(x))..d.|
00000aa0  20 f2 44 72 61 77 5f 41  64 64 57 6f 72 64 28 a4  | .Draw_AddWord(.|
00000ab0  44 72 61 77 5f 59 28 79  29 29 0d 00 65 06 20 e1  |Draw_Y(y))..e. .|
00000ac0  0d 00 66 04 0d 00 67 24  dd 20 f2 4d 6f 76 65 4d  |..f...g$. .MoveM|
00000ad0  65 6d 6f 72 79 28 61 64  64 72 65 73 73 25 2c 6e  |emory(address%,n|
00000ae0  5f 77 6f 72 64 73 25 29  0d 00 68 2a 20 f4 20 2d  |_words%)..h* . -|
00000af0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000b10  2d 2d 0d 00 69 06 20 f4  0d 00 6a 29 20 f4 20 4d  |--..i. ...j) . M|
00000b20  6f 76 65 73 20 6e 5f 77  6f 72 64 73 25 20 75 70  |oves n_words% up|
00000b30  77 61 72 64 73 20 73 74  61 72 74 69 6e 67 20 61  |wards starting a|
00000b40  74 0d 00 6b 0f 20 f4 20  61 64 64 72 65 73 73 25  |t..k. . address%|
00000b50  0d 00 6c 06 20 f4 0d 00  6d 2a 20 f4 20 2d 2d 2d  |..l. ...m* . ---|
00000b60  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000b80  0d 00 6e 28 20 ea 20 5f  69 25 2c 5f 6e 25 20 3a  |..n( . _i%,_n% :|
00000b90  20 5f 6e 25 3d 34 2a 6e  5f 77 6f 72 64 73 25 20  | _n%=4*n_words% |
00000ba0  3a 20 5f 69 25 3d 21 93  0d 00 6f 38 20 e7 20 61  |: _i%=!...o8 . a|
00000bb0  64 64 72 65 73 73 25 2b  5f 6e 25 3e 3d 28 21 28  |ddress%+_n%>=(!(|
00000bc0  93 2b 34 29 29 20 8c 20  85 20 30 2c 22 4e 6f 74  |.+4)) . . 0,"Not|
00000bd0  20 65 6e 6f 75 67 68 20  6d 65 6d 6f 72 79 21 22  | enough memory!"|
00000be0  0d 00 70 14 20 c8 95 20  5f 69 25 3e 61 64 64 72  |..p. .. _i%>addr|
00000bf0  65 73 73 25 0d 00 71 0c  20 20 5f 69 25 2d 3d 34  |ess%..q.  _i%-=4|
00000c00  0d 00 72 12 20 20 5f 69  25 21 5f 6e 25 3d 21 5f  |..r.  _i%!_n%=!_|
00000c10  69 25 0d 00 73 07 20 20  ce 0d 00 74 0d 20 20 21  |i%..s.  ...t.  !|
00000c20  93 2b 3d 5f 6e 25 0d 00  75 05 e1 0d 00 76 04 0d  |.+=_n%..u....v..|
00000c30  00 77 17 dd 20 a4 4f 62  6a 65 63 74 54 79 70 65  |.w.. .ObjectType|
00000c40  28 70 61 74 68 29 0d 00  78 25 e7 20 70 61 74 68  |(path)..x%. path|
00000c50  3e 3d 21 28 93 2b 34 29  20 8c 3d 21 28 21 70 61  |>=!(.+4) .=!(!pa|
00000c60  74 68 29 20 8b 3d 21 70  61 74 68 0d 00 79 04 0d  |th) .=!path..y..|
00000c70  00 7a 1e f4 20 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |.z.. ===========|
00000c80  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 0d 00 7b  |=============..{|
00000c90  1e f4 20 31 2e 32 20 43  72 65 61 74 69 6e 67 20  |.. 1.2 Creating |
00000ca0  41 20 44 72 61 77 20 46  69 6c 65 0d 00 7c 1e f4  |A Draw File..|..|
00000cb0  20 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  | ===============|
00000cc0  3d 3d 3d 3d 3d 3d 3d 3d  3d 0d 00 7d 04 0d 00 7e  |=========..}...~|
00000cd0  13 dd 20 f2 42 65 67 69  6e 44 72 61 77 69 6e 67  |.. .BeginDrawing|
00000ce0  0d 00 7f 1c 20 f4 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.... . ---------|
00000cf0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 00 80 06  |------------....|
00000d00  20 f4 0d 00 81 1c 20 f4  20 53 65 74 73 20 75 70  | ..... . Sets up|
00000d10  20 22 6e 65 77 22 20 64  72 61 77 69 6e 67 0d 00  | "new" drawing..|
00000d20  82 06 20 f4 0d 00 83 1c  20 f4 20 2d 2d 2d 2d 2d  |.. ..... . -----|
00000d30  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000d40  0d 00 84 10 20 f2 44 72  61 77 5f 53 65 74 55 70  |.... .Draw_SetUp|
00000d50  0d 00 85 18 20 f2 44 72  61 77 5f 53 65 74 46 69  |.... .Draw_SetFi|
00000d60  6c 65 48 65 61 64 65 72  0d 00 86 17 20 f2 44 72  |leHeader.... .Dr|
00000d70  61 77 5f 53 65 74 46 6f  6e 74 54 61 62 6c 65 0d  |aw_SetFontTable.|
00000d80  00 87 05 e1 0d 00 88 04  0d 00 89 11 dd 20 f2 44  |............. .D|
00000d90  72 61 77 5f 53 65 74 55  70 0d 00 8a 2c 20 ea 20  |raw_SetUp..., . |
00000da0  5f 73 63 61 6c 65 25 20  20 3a 20 5f 73 63 61 6c  |_scale%  : _scal|
00000db0  65 25 3d a8 28 31 38 30  2a 32 35 36 2f 32 2e 35  |e%=.(180*256/2.5|
00000dc0  34 2b 2e 35 29 0d 00 8b  46 20 f2 44 72 61 77 5f  |4+.5)...F .Draw_|
00000dd0  41 64 64 57 6f 72 64 28  30 29 20 20 20 20 20 20  |AddWord(0)      |
00000de0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000df0  3a 20 f4 20 38 20 20 41  64 64 72 65 73 73 20 6f  |: . 8  Address o|
00000e00  66 20 44 72 61 77 20 46  69 6c 65 0d 00 8c 4f 20  |f Draw File...O |
00000e10  f2 44 72 61 77 5f 41 64  64 57 6f 72 64 28 30 29  |.Draw_AddWord(0)|
00000e20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000e30  20 20 20 20 20 20 3a 20  f4 20 31 32 20 4f 72 69  |      : . 12 Ori|
00000e40  67 69 6e 20 78 20 20 20  20 20 20 20 20 20 28 44  |gin x         (D|
00000e50  72 61 77 20 75 6e 69 74  73 29 0d 00 8d 4a 20 f2  |raw units)...J .|
00000e60  44 72 61 77 5f 41 64 64  57 6f 72 64 28 30 29 20  |Draw_AddWord(0) |
00000e70  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000e80  20 20 20 20 20 3a 20 f4  20 31 36 20 4f 72 69 67  |     : . 16 Orig|
00000e90  69 6e 20 79 20 20 20 20  20 20 20 20 20 20 20 20  |in y            |
00000ea0  20 20 22 22 0d 00 8e 4a  20 f2 44 72 61 77 5f 41  |  ""...J .Draw_A|
00000eb0  64 64 57 6f 72 64 28 31  32 2a 5f 73 63 61 6c 65  |ddWord(12*_scale|
00000ec0  25 29 20 20 20 20 20 20  20 20 20 20 20 20 20 3a  |%)             :|
00000ed0  20 f4 20 32 30 20 46 72  61 6d 65 5f 73 69 7a 65  | . 20 Frame_size|
00000ee0  20 77 69 64 74 68 20 20  20 20 20 20 22 22 0d 00  | width      ""..|
00000ef0  8f 4a 20 f2 44 72 61 77  5f 41 64 64 57 6f 72 64  |.J .Draw_AddWord|
00000f00  28 31 32 2a 5f 73 63 61  6c 65 25 29 20 20 20 20  |(12*_scale%)    |
00000f10  20 20 20 20 20 20 20 20  20 3a 20 f4 20 32 34 20  |         : . 24 |
00000f20  46 72 61 6d 65 5f 73 69  7a 65 20 68 65 69 67 68  |Frame_size heigh|
00000f30  74 20 20 20 20 20 22 22  0d 00 90 4f 20 f2 44 72  |t     ""...O .Dr|
00000f40  61 77 5f 41 64 64 46 6c  6f 61 74 28 30 29 20 20  |aw_AddFloat(0)  |
00000f50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000f60  20 20 20 3a 20 f4 20 32  38 20 46 72 61 6d 65 20  |   : . 28 Frame |
00000f70  43 6f 6f 72 64 73 20 61  20 20 20 28 55 73 65 72  |Coords a   (User|
00000f80  20 75 6e 69 74 73 29 0d  00 91 4a 20 f2 44 72 61  | units)...J .Dra|
00000f90  77 5f 41 64 64 46 6c 6f  61 74 28 30 29 20 20 20  |w_AddFloat(0)   |
00000fa0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000fb0  20 20 3a 20 f4 20 33 36  20 46 72 61 6d 65 20 43  |  : . 36 Frame C|
00000fc0  6f 6f 72 64 73 20 75 20  20 20 20 20 20 20 20 22  |oords u        "|
00000fd0  22 0d 00 92 4a 20 f2 44  72 61 77 5f 41 64 64 46  |"...J .Draw_AddF|
00000fe0  6c 6f 61 74 28 31 32 29  20 20 20 20 20 20 20 20  |loat(12)        |
00000ff0  20 20 20 20 20 20 20 20  20 20 20 20 3a 20 f4 20  |            : . |
00001000  34 34 20 46 72 61 6d 65  20 43 6f 6f 72 64 73 20  |44 Frame Coords |
00001010  77 69 64 74 68 20 20 20  20 22 22 0d 00 93 4a 20  |width    ""...J |
00001020  f2 44 72 61 77 5f 41 64  64 46 6c 6f 61 74 28 31  |.Draw_AddFloat(1|
00001030  32 29 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |2)              |
00001040  20 20 20 20 20 20 3a 20  f4 20 35 32 20 46 72 61  |      : . 52 Fra|
00001050  6d 65 20 43 6f 6f 72 64  73 20 68 65 69 67 68 74  |me Coords height|
00001060  20 20 20 22 22 0d 00 94  37 20 f2 44 72 61 77 5f  |   ""...7 .Draw_|
00001070  41 64 64 57 6f 72 64 28  5f 73 63 61 6c 65 25 29  |AddWord(_scale%)|
00001080  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001090  3a 20 f4 20 36 30 20 55  6e 69 74 73 0d 00 95 04  |: . 60 Units....|
000010a0  0d 00 96 3e 20 f2 44 72  61 77 5f 41 64 64 57 6f  |...> .Draw_AddWo|
000010b0  72 64 28 30 29 20 20 20  20 20 20 20 20 20 20 20  |rd(0)           |
000010c0  20 20 20 20 20 20 20 20  20 20 20 3a 20 f4 20 36  |           : . 6|
000010d0  34 20 43 75 72 72 65 6e  74 20 70 61 74 68 0d 00  |4 Current path..|
000010e0  97 41 20 f2 44 72 61 77  5f 41 64 64 57 6f 72 64  |.A .Draw_AddWord|
000010f0  28 30 29 20 20 20 20 20  20 20 20 20 20 20 20 20  |(0)             |
00001100  20 20 20 20 20 20 20 20  20 3a 20 f4 20 36 38 20  |         : . 68 |
00001110  43 75 72 72 65 6e 74 20  73 75 62 70 61 74 68 0d  |Current subpath.|
00001120  00 98 04 0d 00 99 3d 20  f2 44 72 61 77 5f 41 64  |......= .Draw_Ad|
00001130  64 57 6f 72 64 28 30 29  20 20 20 20 20 20 20 20  |dWord(0)        |
00001140  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3a 20  |              : |
00001150  f4 20 37 32 20 53 79 6d  62 6f 6c 20 74 79 70 65  |. 72 Symbol type|
00001160  0d 00 9a 3e 20 f2 44 72  61 77 5f 41 64 64 57 6f  |...> .Draw_AddWo|
00001170  72 64 28 30 29 20 20 20  20 20 20 20 20 20 20 20  |rd(0)           |
00001180  20 20 20 20 20 20 20 20  20 20 20 3a 20 f4 20 37  |           : . 7|
00001190  36 20 44 61 73 68 20 70  61 74 74 65 72 6e 0d 00  |6 Dash pattern..|
000011a0  9b 3d 20 f2 44 72 61 77  5f 41 64 64 57 6f 72 64  |.= .Draw_AddWord|
000011b0  28 31 32 29 20 20 20 20  20 20 20 20 20 20 20 20  |(12)            |
000011c0  20 20 20 20 20 20 20 20  20 3a 20 f4 20 38 30 20  |         : . 80 |
000011d0  53 79 6d 62 6f 6c 20 73  69 7a 65 0d 00 9c 04 0d  |Symbol size.....|
000011e0  00 9d 4a 20 f2 44 72 61  77 5f 41 64 64 57 6f 72  |..J .Draw_AddWor|
000011f0  64 28 31 34 2a 36 34 30  29 20 20 20 20 20 20 20  |d(14*640)       |
00001200  20 20 20 20 20 20 20 20  20 20 3a 20 f4 20 38 34  |          : . 84|
00001210  20 54 65 78 74 20 46 6f  6e 74 20 73 69 7a 65 20  | Text Font size |
00001220  20 28 70 6f 69 6e 74 73  29 0d 00 9e 3d 20 f2 44  | (points)...= .D|
00001230  72 61 77 5f 41 64 64 57  6f 72 64 28 30 29 20 20  |raw_AddWord(0)  |
00001240  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001250  20 20 20 20 3a 20 f4 20  38 38 20 54 65 78 74 20  |    : . 88 Text |
00001260  63 6f 6c 6f 75 72 0d 00  9f 3e 20 f2 44 72 61 77  |colour...> .Draw|
00001270  5f 41 64 64 57 6f 72 64  28 31 29 20 20 20 20 20  |_AddWord(1)     |
00001280  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001290  20 3a 20 f4 20 39 32 20  43 75 72 72 65 6e 74 20  | : . 92 Current |
000012a0  46 6f 6e 74 0d 00 a0 04  0d 00 a1 3b 20 f2 44 72  |Font.......; .Dr|
000012b0  61 77 5f 41 64 64 57 6f  72 64 28 31 3c 3c 31 36  |aw_AddWord(1<<16|
000012c0  29 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |)               |
000012d0  20 20 20 3a 20 f4 20 39  36 20 54 72 61 6e 73 6c  |   : . 96 Transl|
000012e0  61 74 65 0d 00 a2 32 20  f2 44 72 61 77 5f 41 64  |ate...2 .Draw_Ad|
000012f0  64 57 6f 72 64 28 30 29  20 20 20 20 20 20 20 20  |dWord(0)        |
00001300  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3a 20  |              : |
00001310  f4 20 31 30 30 0d 00 a3  32 20 f2 44 72 61 77 5f  |. 100...2 .Draw_|
00001320  41 64 64 57 6f 72 64 28  30 29 20 20 20 20 20 20  |AddWord(0)      |
00001330  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001340  3a 20 f4 20 31 30 34 0d  00 a4 32 20 f2 44 72 61  |: . 104...2 .Dra|
00001350  77 5f 41 64 64 57 6f 72  64 28 31 3c 3c 31 36 29  |w_AddWord(1<<16)|
00001360  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001370  20 20 3a 20 f4 20 31 30  38 0d 00 a5 32 20 f2 44  |  : . 108...2 .D|
00001380  72 61 77 5f 41 64 64 57  6f 72 64 28 32 35 36 2a  |raw_AddWord(256*|
00001390  39 30 29 20 20 20 20 20  20 20 20 20 20 20 20 20  |90)             |
000013a0  20 20 20 20 3a 20 f4 20  31 31 32 0d 00 a6 32 20  |    : . 112...2 |
000013b0  f2 44 72 61 77 5f 41 64  64 57 6f 72 64 28 32 35  |.Draw_AddWord(25|
000013c0  36 2a 39 30 29 20 20 20  20 20 20 20 20 20 20 20  |6*90)           |
000013d0  20 20 20 20 20 20 3a 20  f4 20 31 31 36 0d 00 a7  |      : . 116...|
000013e0  04 0d 00 a8 41 20 f2 44  72 61 77 5f 41 64 64 57  |....A .Draw_AddW|
000013f0  6f 72 64 28 5f 73 63 61  6c 65 25 29 20 20 20 20  |ord(_scale%)    |
00001400  20 20 20 20 20 20 20 20  20 20 20 20 3a 20 f4 20  |            : . |
00001410  31 32 30 20 43 6d 73 2f  44 72 61 77 20 75 6e 69  |120 Cms/Draw uni|
00001420  74 73 0d 00 a9 04 0d 00  aa 3d 20 f2 44 72 61 77  |ts.......= .Draw|
00001430  5f 41 64 64 57 6f 72 64  28 31 3c 3c 31 36 29 20  |_AddWord(1<<16) |
00001440  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001450  20 3a 20 f4 20 31 32 34  20 41 78 65 73 20 77 69  | : . 124 Axes wi|
00001460  64 74 68 0d 00 ab 47 20  f2 44 72 61 77 5f 41 64  |dth...G .Draw_Ad|
00001470  64 57 6f 72 64 28 28 33  3c 3c 31 36 29 2b 33 29  |dWord((3<<16)+3)|
00001480  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3a 20  |              : |
00001490  f4 20 31 32 38 20 41 78  65 73 20 43 61 70 20 50  |. 128 Axes Cap P|
000014a0  6f 69 6e 74 2f 77 69 64  74 68 0d 00 ac 43 20 f2  |oint/width...C .|
000014b0  44 72 61 77 5f 41 64 64  57 6f 72 64 28 30 29 20  |Draw_AddWord(0) |
000014c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000014d0  20 20 20 20 20 3a 20 f4  20 31 33 32 20 41 78 65  |     : . 132 Axe|
000014e0  73 20 45 78 74 65 6e 64  20 28 30 25 29 0d 00 ad  |s Extend (0%)...|
000014f0  04 0d 00 ae 3d 20 f2 44  72 61 77 5f 41 64 64 57  |....= .Draw_AddW|
00001500  6f 72 64 28 31 29 20 20  20 20 20 20 20 20 20 20  |ord(1)          |
00001510  20 20 20 20 20 20 20 20  20 20 20 20 3a 20 f4 20  |            : . |
00001520  31 33 36 20 20 4e 78 20  73 63 61 6c 65 73 0d 00  |136  Nx scales..|
00001530  af 3d 20 f2 44 72 61 77  5f 41 64 64 57 6f 72 64  |.= .Draw_AddWord|
00001540  28 30 29 20 20 20 20 20  20 20 20 20 20 20 20 20  |(0)             |
00001550  20 20 20 20 20 20 20 20  20 3a 20 f4 20 31 34 30  |         : . 140|
00001560  20 20 6e 78 20 73 63 61  6c 65 73 0d 00 b0 3d 20  |  nx scales...= |
00001570  f2 44 72 61 77 5f 41 64  64 57 6f 72 64 28 31 29  |.Draw_AddWord(1)|
00001580  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001590  20 20 20 20 20 20 3a 20  f4 20 31 34 34 20 20 4e  |      : . 144  N|
000015a0  79 20 73 63 61 6c 65 73  0d 00 b1 3d 20 f2 44 72  |y scales...= .Dr|
000015b0  61 77 5f 41 64 64 57 6f  72 64 28 30 29 20 20 20  |aw_AddWord(0)   |
000015c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000015d0  20 20 20 3a 20 f4 20 31  34 38 20 20 6e 79 20 73  |   : . 148  ny s|
000015e0  63 61 6c 65 73 0d 00 b2  3d 20 f2 44 72 61 77 5f  |cales...= .Draw_|
000015f0  41 64 64 57 6f 72 64 28  31 30 29 20 20 20 20 20  |AddWord(10)     |
00001600  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001610  3a 20 f4 20 31 35 32 20  20 4c 78 20 73 63 61 6c  |: . 152  Lx scal|
00001620  65 73 0d 00 b3 3d 20 f2  44 72 61 77 5f 41 64 64  |es...= .Draw_Add|
00001630  57 6f 72 64 28 37 29 20  20 20 20 20 20 20 20 20  |Word(7)         |
00001640  20 20 20 20 20 20 20 20  20 20 20 20 20 3a 20 f4  |             : .|
00001650  20 31 35 36 20 20 6c 78  20 73 63 61 6c 65 73 0d  | 156  lx scales.|
00001660  00 b4 3d 20 f2 44 72 61  77 5f 41 64 64 57 6f 72  |..= .Draw_AddWor|
00001670  64 28 31 30 29 20 20 20  20 20 20 20 20 20 20 20  |d(10)           |
00001680  20 20 20 20 20 20 20 20  20 20 3a 20 f4 20 31 36  |          : . 16|
00001690  30 20 20 4c 79 20 73 63  61 6c 65 73 0d 00 b5 3d  |0  Ly scales...=|
000016a0  20 f2 44 72 61 77 5f 41  64 64 57 6f 72 64 28 37  | .Draw_AddWord(7|
000016b0  29 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |)               |
000016c0  20 20 20 20 20 20 20 3a  20 f4 20 31 36 34 20 20  |       : . 164  |
000016d0  6c 79 20 73 63 61 6c 65  73 0d 00 b6 3d 20 f2 44  |ly scales...= .D|
000016e0  72 61 77 5f 41 64 64 57  6f 72 64 28 31 3c 3c 31  |raw_AddWord(1<<1|
000016f0  36 29 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |6)              |
00001700  20 20 20 20 3a 20 f4 20  31 36 38 20 20 57 78 20  |    : . 168  Wx |
00001710  73 63 61 6c 65 73 0d 00  b7 3d 20 f2 44 72 61 77  |scales...= .Draw|
00001720  5f 41 64 64 57 6f 72 64  28 31 3c 3c 31 35 29 20  |_AddWord(1<<15) |
00001730  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001740  20 3a 20 f4 20 31 37 32  20 20 77 78 20 73 63 61  | : . 172  wx sca|
00001750  6c 65 73 0d 00 b8 3d 20  f2 44 72 61 77 5f 41 64  |les...= .Draw_Ad|
00001760  64 57 6f 72 64 28 31 3c  3c 31 36 29 20 20 20 20  |dWord(1<<16)    |
00001770  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3a 20  |              : |
00001780  f4 20 31 37 36 20 20 57  79 20 73 63 61 6c 65 73  |. 176  Wy scales|
00001790  0d 00 b9 3d 20 f2 44 72  61 77 5f 41 64 64 57 6f  |...= .Draw_AddWo|
000017a0  72 64 28 31 3c 3c 31 35  29 20 20 20 20 20 20 20  |rd(1<<15)       |
000017b0  20 20 20 20 20 20 20 20  20 20 20 3a 20 f4 20 31  |           : . 1|
000017c0  38 30 20 20 77 79 20 73  63 61 6c 65 73 0d 00 ba  |80  wy scales...|
000017d0  04 0d 00 bb 49 20 f2 44  72 61 77 5f 41 64 64 57  |....I .Draw_AddW|
000017e0  6f 72 64 28 31 3c 3c 31  36 29 20 20 20 20 20 20  |ord(1<<16)      |
000017f0  20 20 20 20 20 20 20 20  20 20 20 20 3a 20 f4 20  |            : . |
00001800  31 38 34 20 20 52 45 4d  20 43 75 72 72 65 6e 74  |184  REM Current|
00001810  20 54 72 61 6e 73 66 6f  72 6d 0d 00 bc 32 20 f2  | Transform...2 .|
00001820  44 72 61 77 5f 41 64 64  57 6f 72 64 28 30 29 20  |Draw_AddWord(0) |
00001830  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001840  20 20 20 20 20 3a 20 f4  20 31 38 38 0d 00 bd 32  |     : . 188...2|
00001850  20 f2 44 72 61 77 5f 41  64 64 57 6f 72 64 28 30  | .Draw_AddWord(0|
00001860  29 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |)               |
00001870  20 20 20 20 20 20 20 3a  20 f4 20 31 39 32 0d 00  |       : . 192..|
00001880  be 32 20 f2 44 72 61 77  5f 41 64 64 57 6f 72 64  |.2 .Draw_AddWord|
00001890  28 31 3c 3c 31 36 29 20  20 20 20 20 20 20 20 20  |(1<<16)         |
000018a0  20 20 20 20 20 20 20 20  20 3a 20 f4 20 31 39 36  |         : . 196|
000018b0  0d 00 bf 32 20 f2 44 72  61 77 5f 41 64 64 57 6f  |...2 .Draw_AddWo|
000018c0  72 64 28 30 29 20 20 20  20 20 20 20 20 20 20 20  |rd(0)           |
000018d0  20 20 20 20 20 20 20 20  20 20 20 3a 20 f4 20 32  |           : . 2|
000018e0  30 30 0d 00 c0 32 20 f2  44 72 61 77 5f 41 64 64  |00...2 .Draw_Add|
000018f0  57 6f 72 64 28 30 29 20  20 20 20 20 20 20 20 20  |Word(0)         |
00001900  20 20 20 20 20 20 20 20  20 20 20 20 20 3a 20 f4  |             : .|
00001910  20 32 30 34 0d 00 c1 04  0d 00 c2 43 20 f2 44 72  | 204.......C .Dr|
00001920  61 77 5f 41 64 64 57 6f  72 64 28 31 30 30 30 30  |aw_AddWord(10000|
00001930  29 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |)               |
00001940  20 20 20 3a 20 f4 20 32  30 38 20 4d 61 78 20 78  |   : . 208 Max x|
00001950  20 72 65 73 6f 6c 75 74  69 6f 6e 0d 00 c3 43 20  | resolution...C |
00001960  f2 44 72 61 77 5f 41 64  64 57 6f 72 64 28 31 30  |.Draw_AddWord(10|
00001970  30 29 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |0)              |
00001980  20 20 20 20 20 20 3a 20  f4 20 32 31 32 20 4d 69  |      : . 212 Mi|
00001990  6e 20 78 20 72 65 73 6f  6c 75 74 69 6f 6e 0d 00  |n x resolution..|
000019a0  c4 49 20 f2 44 72 61 77  5f 41 64 64 57 6f 72 64  |.I .Draw_AddWord|
000019b0  28 33 30 30 29 20 20 20  20 20 20 20 20 20 20 20  |(300)           |
000019c0  20 20 20 20 20 20 20 20  20 3a 20 f4 20 32 31 36  |         : . 216|
000019d0  20 56 20 72 65 73 6f 6c  75 74 69 6f 6e 20 64 6f  | V resolution do|
000019e0  74 73 2f 69 6e 63 68 0d  00 c5 04 0d 00 c6 43 20  |ts/inch.......C |
000019f0  f2 44 72 61 77 5f 41 64  64 57 6f 72 64 28 34 29  |.Draw_AddWord(4)|
00001a00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001a10  20 20 20 20 20 20 3a 20  f4 20 32 32 30 20 42 61  |      : . 220 Ba|
00001a20  72 20 63 68 61 72 74 20  73 63 61 6c 65 73 0d 00  |r chart scales..|
00001a30  c7 3e 20 f2 44 72 61 77  5f 41 64 64 57 6f 72 64  |.> .Draw_AddWord|
00001a40  28 30 29 20 20 20 20 20  20 20 20 20 20 20 20 20  |(0)             |
00001a50  20 20 20 20 20 20 20 20  20 3a 20 f4 20 32 32 34  |         : . 224|
00001a60  20 4c 69 6e 65 20 43 6f  6c 6f 75 72 0d 00 c8 48  | Line Colour...H|
00001a70  20 f2 44 72 61 77 5f 41  64 64 57 6f 72 64 28 2d  | .Draw_AddWord(-|
00001a80  31 29 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |1)              |
00001a90  20 20 20 20 20 20 20 3a  20 f4 20 32 32 38 20 46  |       : . 228 F|
00001aa0  69 6c 6c 20 43 6f 6c 6f  75 72 20 28 6e 6f 20 66  |ill Colour (no f|
00001ab0  69 6c 6c 29 0d 00 c9 3d  20 f2 44 72 61 77 5f 41  |ill)...= .Draw_A|
00001ac0  64 64 57 6f 72 64 28 30  29 20 20 20 20 20 20 20  |ddWord(0)       |
00001ad0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3a  |               :|
00001ae0  20 f4 20 32 33 32 20 4c  69 6e 65 20 57 69 64 74  | . 232 Line Widt|
00001af0  68 0d 00 ca 3d 20 f2 44  72 61 77 5f 41 64 64 57  |h...= .Draw_AddW|
00001b00  6f 72 64 28 30 29 20 20  20 20 20 20 20 20 20 20  |ord(0)          |
00001b10  20 20 20 20 20 20 20 20  20 20 20 20 3a 20 f4 20  |            : . |
00001b20  32 33 36 20 4c 69 6e 65  20 73 74 79 6c 65 0d 00  |236 Line style..|
00001b30  cb 3f 20 f2 44 72 61 77  5f 41 64 64 57 6f 72 64  |.? .Draw_AddWord|
00001b40  28 30 29 20 20 20 20 20  20 20 20 20 20 20 20 20  |(0)             |
00001b50  20 20 20 20 20 20 20 20  20 3a 20 f4 20 32 34 30  |         : . 240|
00001b60  20 43 68 61 72 74 20 66  61 63 74 6f 72 0d 00 cc  | Chart factor...|
00001b70  3a 20 f2 44 72 61 77 5f  41 64 64 57 6f 72 64 28  |: .Draw_AddWord(|
00001b80  30 29 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |0)              |
00001b90  20 20 20 20 20 20 20 20  3a 20 f4 20 32 34 34 20  |        : . 244 |
00001ba0  20 20 20 20 20 22 22 0d  00 cd 11 20 7c 28 93 2b  |     "".... |(.+|
00001bb0  32 34 30 29 3d 35 2f 36  0d 00 ce 04 0d 00 cf 3e  |240)=5/6.......>|
00001bc0  20 21 28 93 2b 38 29 3d  21 93 20 20 20 20 20 20  | !(.+8)=!.      |
00001bd0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001be0  20 20 3a 20 f4 20 41 64  64 72 65 73 73 20 6f 66  |  : . Address of|
00001bf0  20 44 72 61 77 20 66 69  6c 65 0d 00 d0 05 e1 0d  | Draw file......|
00001c00  00 d1 04 0d 00 d2 19 dd  20 f2 44 72 61 77 5f 53  |........ .Draw_S|
00001c10  65 74 46 69 6c 65 48 65  61 64 65 72 0d 00 d3 06  |etFileHeader....|
00001c20  20 f4 0d 00 d4 23 20 f4  20 2d 2d 2d 2d 2d 2d 2d  | ....# . -------|
00001c30  2d 34 30 20 62 79 74 65  73 2d 2d 2d 2d 2d 2d 2d  |-40 bytes-------|
00001c40  2d 2d 2d 2d 2d 0d 00 d5  06 20 f4 0d 00 d6 30 20  |-----.... ....0 |
00001c50  f2 44 72 61 77 5f 41 64  64 53 74 72 69 6e 67 28  |.Draw_AddString(|
00001c60  93 2c 22 44 72 61 77 22  29 20 20 20 20 20 20 20  |.,"Draw")       |
00001c70  20 20 3a 20 f4 20 54 69  74 6c 65 0d 00 d7 42 20  |  : . Title...B |
00001c80  f2 44 72 61 77 5f 41 64  64 57 6f 72 64 28 32 30  |.Draw_AddWord(20|
00001c90  31 29 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |1)              |
00001ca0  20 20 20 20 20 20 3a 20  f4 20 6d 61 6a 6f 72 20  |      : . major |
00001cb0  66 6f 72 6d 61 74 20 6e  75 6d 62 65 72 0d 00 d8  |format number...|
00001cc0  42 20 f2 44 72 61 77 5f  41 64 64 57 6f 72 64 28  |B .Draw_AddWord(|
00001cd0  30 29 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |0)              |
00001ce0  20 20 20 20 20 20 20 20  3a 20 f4 20 6d 69 6e 6f  |        : . mino|
00001cf0  72 20 66 6f 72 6d 61 74  20 6e 75 6d 62 65 72 0d  |r format number.|
00001d00  00 d9 38 20 f2 44 72 61  77 5f 41 64 64 53 74 72  |..8 .Draw_AddStr|
00001d10  69 6e 67 28 93 2c 22 44  72 61 77 42 61 73 69 63  |ing(.,"DrawBasic|
00001d20  20 20 20 22 29 20 3a 20  f4 20 50 72 6f 67 72 61  |   ") : . Progra|
00001d30  6d 20 54 69 74 6c 65 0d  00 da 3a 20 f2 44 72 61  |m Title...: .Dra|
00001d40  77 5f 41 64 64 57 6f 72  64 28 30 29 20 20 20 20  |w_AddWord(0)    |
00001d50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001d60  20 20 3a 20 f4 20 42 6f  75 6e 64 69 6e 67 42 6f  |  : . BoundingBo|
00001d70  78 0d 00 db 3a 20 f2 44  72 61 77 5f 41 64 64 57  |x...: .Draw_AddW|
00001d80  6f 72 64 28 30 29 20 20  20 20 20 20 20 20 20 20  |ord(0)          |
00001d90  20 20 20 20 20 20 20 20  20 20 20 20 3a 20 f4 20  |            : . |
00001da0  42 6f 75 6e 64 69 6e 67  42 6f 78 0d 00 dc 3a 20  |BoundingBox...: |
00001db0  f2 44 72 61 77 5f 41 64  64 57 6f 72 64 28 32 35  |.Draw_AddWord(25|
00001dc0  36 2a 31 38 30 2a 31 32  2a 33 2a 38 30 30 29 20  |6*180*12*3*800) |
00001dd0  20 20 20 20 20 20 3a 20  f4 20 42 6f 75 6e 64 69  |      : . Boundi|
00001de0  6e 67 42 6f 78 0d 00 dd  3a 20 f2 44 72 61 77 5f  |ngBox...: .Draw_|
00001df0  41 64 64 57 6f 72 64 28  32 35 36 2a 31 38 30 2a  |AddWord(256*180*|
00001e00  31 32 2a 33 2a 38 30 30  29 20 20 20 20 20 20 20  |12*3*800)       |
00001e10  3a 20 f4 20 42 6f 75 6e  64 69 6e 67 42 6f 78 0d  |: . BoundingBox.|
00001e20  00 de 05 e1 0d 00 df 04  0d 00 e0 18 dd 20 f2 44  |............. .D|
00001e30  72 61 77 5f 53 65 74 46  6f 6e 74 54 61 62 6c 65  |raw_SetFontTable|
00001e40  0d 00 e1 38 20 f4 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |...8 . ---------|
00001e50  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001e70  2d 2d 2d 2d 2d 2d 2d 2d  0d 00 e2 06 20 f4 0d 00  |--------.... ...|
00001e80  e3 38 20 f4 20 54 68 69  73 20 70 72 6f 63 65 64  |.8 . This proced|
00001e90  75 72 65 20 73 68 6f 75  6c 64 20 6e 6f 74 20 62  |ure should not b|
00001ea0  65 20 63 61 6c 6c 65 64  20 69 6e 20 61 20 70 72  |e called in a pr|
00001eb0  6f 67 72 61 6d 2e 0d 00  e4 29 20 f4 20 49 74 20  |ogram....) . It |
00001ec0  69 73 20 75 73 65 64 20  20 74 6f 20 73 65 74 20  |is used  to set |
00001ed0  74 68 65 20 46 6f 6e 74  20 74 61 62 6c 65 2e 0d  |the Font table..|
00001ee0  00 e5 06 20 f4 0d 00 e6  38 20 f4 20 2d 2d 2d 2d  |... ....8 . ----|
00001ef0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001f10  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0d 00 e7  |-------------...|
00001f20  22 20 ea 20 5f 66 6f 6e  74 73 25 20 3a 20 5f 66  |" . _fonts% : _f|
00001f30  6f 6e 74 73 25 3d 21 28  93 2b 38 29 2b 34 30 0d  |onts%=!(.+8)+40.|
00001f40  00 e8 3d 20 f2 44 72 61  77 5f 41 64 64 57 6f 72  |..= .Draw_AddWor|
00001f50  64 28 30 29 20 20 20 20  20 20 20 20 20 20 20 20  |d(0)            |
00001f60  20 20 20 20 20 20 3a 20  f4 20 46 6f 6e 74 20 6f  |      : . Font o|
00001f70  62 6a 65 63 74 20 74 79  70 65 20 30 0d 00 e9 3d  |bject type 0...=|
00001f80  20 f2 44 72 61 77 5f 41  64 64 57 6f 72 64 28 30  | .Draw_AddWord(0|
00001f90  29 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |)               |
00001fa0  20 20 20 3a 20 f4 20 46  6f 6e 74 20 6f 62 6a 65  |   : . Font obje|
00001fb0  63 74 20 6c 65 6e 67 74  68 0d 00 ea 2e 20 f2 44  |ct length.... .D|
00001fc0  72 61 77 5f 41 64 64 53  74 72 69 6e 67 28 93 2c  |raw_AddString(.,|
00001fd0  bd 31 2b 22 54 72 69 6e  69 74 79 2e 4d 65 64 69  |.1+"Trinity.Medi|
00001fe0  75 6d 22 2b bd 30 29 0d  00 eb 3c 20 21 28 5f 66  |um"+.0)...< !(_f|
00001ff0  6f 6e 74 73 25 2b 34 29  3d 21 93 2d 5f 66 6f 6e  |onts%+4)=!.-_fon|
00002000  74 73 25 20 20 20 20 20  20 20 20 20 20 3a 20 f4  |ts%          : .|
00002010  20 46 6f 6e 74 20 6f 62  6a 65 63 74 20 6c 65 6e  | Font object len|
00002020  67 74 68 0d 00 ec 05 e1  0d 00 ed 04 0d 00 ee 1e  |gth.............|
00002030  f4 20 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |. ==============|
00002040  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 0d 00 ef 1c f4 20  |==========..... |
00002050  31 2e 33 20 53 61 76 69  6e 67 20 41 20 44 72 61  |1.3 Saving A Dra|
00002060  77 20 46 69 6c 65 0d 00  f0 1e f4 20 3d 3d 3d 3d  |w File..... ====|
00002070  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
00002080  3d 3d 3d 3d 0d 00 f1 04  0d 00 f2 0b dd 20 f2 51  |====......... .Q|
00002090  75 69 74 0d 00 f3 3e 20  f4 20 2d 2d 2d 2d 2d 2d  |uit...> . ------|
000020a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000020d0  2d 0d 00 f4 06 20 f4 0d  00 f5 2c 20 f4 20 53 61  |-.... ...., . Sa|
000020e0  76 65 73 20 44 72 61 77  20 66 69 6c 65 20 74 6f  |ves Draw file to|
000020f0  20 44 72 61 77 42 61 73  69 63 3a 44 72 61 77 46  | DrawBasic:DrawF|
00002100  69 6c 65 0d 00 f6 06 20  f4 0d 00 f7 3c 20 f4 20  |ile.... ....< . |
00002110  54 68 65 20 66 69 6c 65  20 69 73 20 74 68 65 6e  |The file is then|
00002120  20 2a 52 75 6e 20 73 6f  20 69 74 20 77 69 6c 6c  | *Run so it will|
00002130  20 62 65 20 6c 6f 61 64  65 64 20 69 6e 74 6f 20  | be loaded into |
00002140  21 44 72 61 77 0d 00 f8  06 20 f4 0d 00 f9 3e 20  |!Draw.... ....> |
00002150  f4 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |. --------------|
00002160  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002180  2d 2d 2d 2d 2d 2d 2d 2d  2d 0d 00 fa 37 20 e7 20  |---------...7 . |
00002190  21 28 93 2b 36 38 29 3c  3e 30 20 8c 20 85 20 30  |!(.+68)<>0 . . 0|
000021a0  2c 22 50 61 74 68 73 20  6d 75 73 74 20 65 6e 64  |,"Paths must end|
000021b0  20 77 69 74 68 20 27 50  61 74 68 45 6e 64 27 22  | with 'PathEnd'"|
000021c0  0d 00 fb 2a 20 2a 53 65  74 20 44 72 61 77 5f 42  |...* *Set Draw_B|
000021d0  61 73 69 63 24 50 61 74  68 20 3c 57 69 6d 70 24  |asic$Path <Wimp$|
000021e0  53 63 72 61 70 44 69 72  3e 2e 0d 00 fc 39 20 ff  |ScrapDir>....9 .|
000021f0  28 22 53 61 76 65 20 44  72 61 77 5f 42 61 73 69  |("Save Draw_Basi|
00002200  63 3a 44 72 61 77 46 69  6c 65 20 22 2b c3 7e 28  |c:DrawFile "+.~(|
00002210  21 28 93 2b 38 29 29 2b  22 20 22 2b c3 7e 28 21  |!(.+8))+" "+.~(!|
00002220  93 29 29 0d 00 fd 2a 20  2a 53 65 74 54 79 70 65  |.))...* *SetType|
00002230  20 44 72 61 77 5f 42 61  73 69 63 3a 44 72 61 77  | Draw_Basic:Draw|
00002240  46 69 6c 65 20 44 72 61  77 46 69 6c 65 0d 00 fe  |File DrawFile...|
00002250  23 20 2a 46 69 6c 65 72  5f 52 75 6e 20 44 72 61  |# *Filer_Run Dra|
00002260  77 5f 42 61 73 69 63 3a  44 72 61 77 46 69 6c 65  |w_Basic:DrawFile|
00002270  0d 00 ff 05 e0 0d 01 00  04 0d 01 01 0f f4 20 2d  |.............. -|
00002280  2d 2d 2d 2d 2d 2d 2d 2d  0d 01 02 05 f4 0d 01 03  |--------........|
00002290  0f f4 20 31 2e 34 20 55  6e 69 74 73 0d 01 04 05  |.. 1.4 Units....|
000022a0  f4 0d 01 05 0f f4 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |...... ---------|
000022b0  0d 01 06 04 0d 01 07 14  dd 20 a4 55 6e 69 74 73  |......... .Units|
000022c0  3d 21 28 93 2b 36 30 29  0d 01 08 04 0d 01 09 12  |=!(.+60)........|
000022d0  dd 20 f2 43 65 6e 74 69  6d 65 74 72 65 73 0d 01  |. .Centimetres..|
000022e0  0a 1e 21 28 93 2b 36 30  29 3d a8 28 32 35 36 2a  |..!(.+60)=.(256*|
000022f0  31 38 30 2f 32 2e 35 34  2b 2e 35 29 0d 01 0b 19  |180/2.54+.5)....|
00002300  f2 46 72 61 6d 65 53 69  7a 65 28 30 2c 30 2c 31  |.FrameSize(0,0,1|
00002310  32 2c 31 32 29 0d 01 0c  1b f2 46 72 61 6d 65 43  |2,12).....FrameC|
00002320  6f 6f 72 64 73 28 30 2c  31 32 2c 30 2c 31 32 29  |oords(0,12,0,12)|
00002330  0d 01 0d 0c f2 50 72 65  76 69 65 77 0d 01 0e 05  |.....Preview....|
00002340  e1 0d 01 0f 04 0d 01 10  0d dd 20 f2 49 6e 63 68  |.......... .Inch|
00002350  65 73 0d 01 11 13 21 28  93 2b 36 30 29 3d 32 35  |es....!(.+60)=25|
00002360  36 2a 31 38 30 0d 01 12  17 f2 46 72 61 6d 65 53  |6*180.....FrameS|
00002370  69 7a 65 28 30 2c 30 2c  36 2c 36 29 0d 01 13 19  |ize(0,0,6,6)....|
00002380  f2 46 72 61 6d 65 43 6f  6f 72 64 73 28 30 2c 36  |.FrameCoords(0,6|
00002390  2c 30 2c 36 29 0d 01 14  0c f2 50 72 65 76 69 65  |,0,6).....Previe|
000023a0  77 0d 01 15 05 e1 0d 01  16 04 0d 01 17 22 dd 20  |w............". |
000023b0  a4 44 72 61 77 55 6e 69  74 73 28 61 29 3d a8 28  |.DrawUnits(a)=.(|
000023c0  a4 55 6e 69 74 73 2a 61  2b 2e 35 29 0d 01 18 04  |.Units*a+.5)....|
000023d0  0d 01 19 22 dd 20 f2 46  72 61 6d 65 53 69 7a 65  |...". .FrameSize|
000023e0  28 61 2c 62 2c 77 69 64  74 68 2c 68 65 69 67 68  |(a,b,width,heigh|
000023f0  74 29 0d 01 1a 32 20 f4  20 2d 2d 2d 2d 2d 2d 2d  |t)...2 . -------|
00002400  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002420  2d 2d 2d 2d 0d 01 1b 06  20 f4 0d 01 1c 30 20 f4  |----.... ....0 .|
00002430  20 44 65 66 69 6e 65 73  20 74 68 65 20 73 69 7a  | Defines the siz|
00002440  65 20 6f 66 20 74 68 65  20 20 64 72 61 77 69 6e  |e of the  drawin|
00002450  67 20 22 66 72 61 6d 65  22 2e 0d 01 1d 06 20 f4  |g "frame"..... .|
00002460  0d 01 1e 31 20 f4 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |...1 . ---------|
00002470  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002490  2d 0d 01 1f 23 20 f2 46  72 61 6d 65 43 6f 6f 72  |-...# .FrameCoor|
000024a0  64 73 28 30 2c 77 69 64  74 68 2c 30 2c 68 65 69  |ds(0,width,0,hei|
000024b0  67 68 74 29 0d 01 20 39  20 20 21 28 93 2b 32 30  |ght).. 9  !(.+20|
000024c0  29 3d a4 44 72 61 77 55  6e 69 74 73 28 77 69 64  |)=.DrawUnits(wid|
000024d0  74 68 29 20 20 3a 20 f4  20 42 6f 75 6e 64 69 6e  |th)  : . Boundin|
000024e0  67 20 62 6f 78 20 2d 20  77 69 64 74 68 0d 01 21  |g box - width..!|
000024f0  3a 20 20 21 28 93 2b 32  34 29 3d a4 44 72 61 77  |:  !(.+24)=.Draw|
00002500  55 6e 69 74 73 28 68 65  69 67 68 74 29 20 3a 20  |Units(height) : |
00002510  f4 20 42 6f 75 6e 64 69  6e 67 20 62 6f 78 20 2d  |. Bounding box -|
00002520  20 68 65 69 67 68 74 0d  01 22 2c 20 20 21 28 93  | height..",  !(.|
00002530  2b 31 32 29 3d a4 44 72  61 77 55 6e 69 74 73 28  |+12)=.DrawUnits(|
00002540  61 29 20 20 20 20 20 20  3a 20 f4 20 46 72 61 6d  |a)      : . Fram|
00002550  65 5f 78 0d 01 23 2c 20  20 21 28 93 2b 31 36 29  |e_x..#,  !(.+16)|
00002560  3d a4 44 72 61 77 55 6e  69 74 73 28 62 29 20 20  |=.DrawUnits(b)  |
00002570  20 20 20 20 3a 20 f4 20  46 72 61 6d 65 5f 79 0d  |    : . Frame_y.|
00002580  01 24 05 e1 0d 01 25 04  0d 01 26 20 dd 20 f2 52  |.$....%...& . .R|
00002590  65 64 75 63 65 46 72 61  6d 65 53 69 7a 65 28 66  |educeFrameSize(f|
000025a0  72 61 63 74 69 6f 6e 29  0d 01 27 0d ea 20 5f 77  |raction)..'.. _w|
000025b0  25 2c 5f 68 25 0d 01 28  3b 5f 77 25 3d a8 28 21  |%,_h%..(;_w%=.(!|
000025c0  28 93 2b 32 30 29 2a 66  72 61 63 74 69 6f 6e 2b  |(.+20)*fraction+|
000025d0  2e 35 29 20 3a 20 5f 68  25 3d a8 28 21 28 93 2b  |.5) : _h%=.(!(.+|
000025e0  32 34 29 2a 66 72 61 63  74 69 6f 6e 2b 2e 35 29  |24)*fraction+.5)|
000025f0  0d 01 29 22 21 28 93 2b  31 32 29 2b 3d a8 28 28  |..)"!(.+12)+=.((|
00002600  21 28 93 2b 32 30 29 2d  5f 77 25 29 2f 32 2b 2e  |!(.+20)-_w%)/2+.|
00002610  35 29 0d 01 2a 22 21 28  93 2b 31 36 29 2b 3d a8  |5)..*"!(.+16)+=.|
00002620  28 28 21 28 93 2b 32 34  29 2d 5f 68 25 29 2f 32  |((!(.+24)-_h%)/2|
00002630  2b 2e 35 29 0d 01 2b 1d  21 28 93 2b 32 30 29 3d  |+.5)..+.!(.+20)=|
00002640  5f 77 25 20 3a 20 21 28  93 2b 32 34 29 3d 5f 68  |_w% : !(.+24)=_h|
00002650  25 0d 01 2c 05 e1 0d 01  2d 04 0d 01 2e 31 dd 20  |%..,....-....1. |
00002660  f2 47 65 74 46 72 61 6d  65 53 69 7a 65 28 f8 20  |.GetFrameSize(. |
00002670  61 25 2c f8 20 62 25 2c  f8 20 77 69 64 74 68 25  |a%,. b%,. width%|
00002680  2c f8 20 68 65 69 67 68  74 25 29 0d 01 2f 32 20  |,. height%)../2 |
00002690  f4 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |. --------------|
000026a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000026b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0d 01 30  |-------------..0|
000026c0  06 20 f4 0d 01 31 2e 20  f4 20 47 69 76 65 73 20  |. ...1. . Gives |
000026d0  74 68 65 20 73 69 7a 65  20 6f 66 20 74 68 65 20  |the size of the |
000026e0  20 64 72 61 77 69 6e 67  20 22 66 72 61 6d 65 22  | drawing "frame"|
000026f0  2e 0d 01 32 06 20 f4 0d  01 33 31 20 f4 20 2d 2d  |...2. ...31 . --|
00002700  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002720  2d 2d 2d 2d 2d 2d 2d 2d  0d 01 34 14 20 20 77 69  |--------..4.  wi|
00002730  64 74 68 25 3d 21 28 93  2b 32 30 29 0d 01 35 15  |dth%=!(.+20)..5.|
00002740  20 20 68 65 69 67 68 74  25 3d 21 28 93 2b 32 34  |  height%=!(.+24|
00002750  29 0d 01 36 10 20 20 61  25 3d 21 28 93 2b 31 32  |)..6.  a%=!(.+12|
00002760  29 0d 01 37 10 20 20 62  25 3d 21 28 93 2b 31 36  |)..7.  b%=!(.+16|
00002770  29 0d 01 38 05 e1 0d 01  39 04 0d 01 3a 17 f4 20  |)..8....9...:.. |
00002780  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002790  2d 0d 01 3b 05 f4 0d 01  3c 16 f4 20 31 2e 35 20  |-..;....<.. 1.5 |
000027a0  43 6f 2d 6f 72 64 69 6e  61 74 65 73 0d 01 3d 05  |Co-ordinates..=.|
000027b0  f4 0d 01 3e 17 f4 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |...>.. ---------|
000027c0  2d 2d 2d 2d 2d 2d 2d 2d  0d 01 3f 04 0d 01 40 16  |--------..?...@.|
000027d0  dd 20 a4 46 72 61 6d 65  5f 78 3d 21 28 93 2b 31  |. .Frame_x=!(.+1|
000027e0  32 29 0d 01 41 16 dd 20  a4 46 72 61 6d 65 5f 79  |2)..A.. .Frame_y|
000027f0  3d 21 28 93 2b 31 36 29  0d 01 42 1a dd 20 a4 46  |=!(.+16)..B.. .F|
00002800  72 61 6d 65 5f 57 69 64  74 68 3d 21 28 93 2b 32  |rame_Width=!(.+2|
00002810  30 29 0d 01 43 1b dd 20  a4 46 72 61 6d 65 5f 48  |0)..C.. .Frame_H|
00002820  65 69 67 68 74 3d 21 28  93 2b 32 34 29 0d 01 44  |eight=!(.+24)..D|
00002830  04 0d 01 45 16 dd 20 a4  46 52 41 4d 45 5f 78 3d  |...E.. .FRAME_x=|
00002840  7c 28 93 2b 32 38 29 0d  01 46 16 dd 20 a4 46 52  ||(.+28)..F.. .FR|
00002850  41 4d 45 5f 79 3d 7c 28  93 2b 33 36 29 0d 01 47  |AME_y=|(.+36)..G|
00002860  1a dd 20 a4 46 52 41 4d  45 5f 57 69 64 74 68 3d  |.. .FRAME_Width=|
00002870  7c 28 93 2b 34 34 29 0d  01 48 1b dd 20 a4 46 52  ||(.+44)..H.. .FR|
00002880  41 4d 45 5f 48 65 69 67  68 74 3d 7c 28 93 2b 35  |AME_Height=|(.+5|
00002890  32 29 0d 01 49 04 0d 01  4a 28 dd 20 a4 58 5f 53  |2)..I...J(. .X_S|
000028a0  63 61 6c 65 3d a4 46 72  61 6d 65 5f 57 69 64 74  |cale=.Frame_Widt|
000028b0  68 2f a4 46 52 41 4d 45  5f 57 69 64 74 68 0d 01  |h/.FRAME_Width..|
000028c0  4b 2a dd 20 a4 59 5f 53  63 61 6c 65 3d a4 46 72  |K*. .Y_Scale=.Fr|
000028d0  61 6d 65 5f 48 65 69 67  68 74 2f a4 46 52 41 4d  |ame_Height/.FRAM|
000028e0  45 5f 48 65 69 67 68 74  0d 01 4c 04 0d 01 4d 19  |E_Height..L...M.|
000028f0  dd 20 a4 45 70 73 69 6c  6f 6e 3d 31 2f a4 59 5f  |. .Epsilon=1/.Y_|
00002900  53 63 61 6c 65 0d 01 4e  04 0d 01 4f 1d dd 20 a4  |Scale..N...O.. .|
00002910  4d 61 78 4e 6f 6f 66 50  6f 69 6e 74 73 3d 21 28  |MaxNoofPoints=!(|
00002920  93 2b 32 30 38 29 0d 01  50 1d dd 20 a4 4d 69 6e  |.+208)..P.. .Min|
00002930  4e 6f 6f 66 50 6f 69 6e  74 73 3d 21 28 93 2b 32  |NoofPoints=!(.+2|
00002940  31 32 29 0d 01 51 1b dd  20 a4 44 6f 74 73 50 65  |12)..Q.. .DotsPe|
00002950  72 49 6e 63 68 3d 21 28  93 2b 32 31 36 29 0d 01  |rInch=!(.+216)..|
00002960  52 04 0d 01 53 35 dd 20  a4 44 72 61 77 5f 58 28  |R...S5. .Draw_X(|
00002970  78 29 3d a8 28 a4 46 72  61 6d 65 5f 78 2b 28 78  |x)=.(.Frame_x+(x|
00002980  2d a4 46 52 41 4d 45 5f  78 29 2a a4 58 5f 53 63  |-.FRAME_x)*.X_Sc|
00002990  61 6c 65 2b 2e 35 29 0d  01 54 35 dd 20 a4 44 72  |ale+.5)..T5. .Dr|
000029a0  61 77 5f 59 28 79 29 3d  a8 28 a4 46 72 61 6d 65  |aw_Y(y)=.(.Frame|
000029b0  5f 79 2b 28 79 2d a4 46  52 41 4d 45 5f 79 29 2a  |_y+(y-.FRAME_y)*|
000029c0  a4 59 5f 53 63 61 6c 65  2b 2e 35 29 0d 01 55 04  |.Y_Scale+.5)..U.|
000029d0  0d 01 56 1b dd 20 f2 46  72 61 6d 65 43 6f 6f 72  |..V.. .FrameCoor|
000029e0  64 73 28 61 2c 62 2c 75  2c 76 29 0d 01 57 32 20  |ds(a,b,u,v)..W2 |
000029f0  f4 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |. --------------|
00002a00  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002a10  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0d 01 58  |-------------..X|
00002a20  06 20 f4 0d 01 59 30 20  f4 20 54 68 65 20 62 6f  |. ...Y0 . The bo|
00002a30  75 6e 64 69 6e 67 20 62  6f 78 20 69 6e 20 74 68  |unding box in th|
00002a40  65 20 28 78 2c 79 29 20  70 6c 61 6e 65 20 77 68  |e (x,y) plane wh|
00002a50  69 63 68 0d 01 5a 2e 20  f4 20 63 6f 6e 74 61 69  |ich..Z. . contai|
00002a60  6e 73 20 74 68 65 20 64  72 61 77 69 6e 67 20 69  |ns the drawing i|
00002a70  73 20 61 3c 78 3c 62 20  2c 20 75 3c 79 3c 76 20  |s a<x<b , u<y<v |
00002a80  2e 0d 01 5b 06 20 f4 0d  01 5c 06 20 f4 0d 01 5d  |...[. ...\. ...]|
00002a90  31 20 f4 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |1 . ------------|
00002aa0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002ab0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0d 01  |--------------..|
00002ac0  5e 0e 20 ea 20 5f 66 72  61 6d 65 25 0d 01 5f 11  |^. . _frame%.._.|
00002ad0  20 5f 66 72 61 6d 65 25  3d 93 2b 32 38 0d 01 60  | _frame%=.+28..`|
00002ae0  37 20 e7 20 61 3e 3d 62  20 8c 20 85 20 30 2c 20  |7 . a>=b . . 0, |
00002af0  c3 61 2b 22 20 3c 20 78  20 3c 20 22 2b c3 62 2b  |.a+" < x < "+.b+|
00002b00  22 20 69 73 20 61 20 62  61 64 20 78 20 72 61 6e  |" is a bad x ran|
00002b10  67 65 20 22 0d 01 61 37  20 e7 20 75 3e 3d 76 20  |ge "..a7 . u>=v |
00002b20  8c 20 85 20 30 2c 20 c3  75 2b 22 20 3c 20 79 20  |. . 0, .u+" < y |
00002b30  3c 20 22 2b c3 76 2b 22  20 69 73 20 61 20 62 61  |< "+.v+" is a ba|
00002b40  64 20 79 20 72 61 6e 67  65 20 22 0d 01 62 27 20  |d y range "..b' |
00002b50  7c 28 5f 66 72 61 6d 65  25 29 3d 61 20 20 20 20  ||(_frame%)=a    |
00002b60  20 20 3a 20 7c 28 5f 66  72 61 6d 65 25 2b 38 29  |  : |(_frame%+8)|
00002b70  3d 75 0d 01 63 2a 20 7c  28 5f 66 72 61 6d 65 25  |=u..c* |(_frame%|
00002b80  2b 31 36 29 3d 62 2d 61  20 3a 20 7c 28 5f 66 72  |+16)=b-a : |(_fr|
00002b90  61 6d 65 25 2b 32 34 29  3d 76 2d 75 0d 01 64 06  |ame%+24)=v-u..d.|
00002ba0  20 e1 0d 01 65 04 0d 01  66 18 dd 20 a4 4f 75 74  | ...e...f.. .Out|
00002bb0  73 69 64 65 46 72 61 6d  65 28 78 2c 79 29 0d 01  |sideFrame(x,y)..|
00002bc0  67 11 ea 20 5f 61 2c 5f  62 2c 5f 75 2c 5f 76 0d  |g.. _a,_b,_u,_v.|
00002bd0  01 68 20 f2 47 65 74 46  72 61 6d 65 43 6f 6f 72  |.h .GetFrameCoor|
00002be0  64 73 28 5f 61 2c 5f 62  2c 5f 75 2c 5f 76 29 0d  |ds(_a,_b,_u,_v).|
00002bf0  01 69 33 3d 2d 28 28 78  3c 5f 61 29 3c 3c 33 29  |.i3=-((x<_a)<<3)|
00002c00  84 2d 28 28 78 3e 5f 62  29 3c 3c 32 29 84 2d 28  |.-((x>_b)<<2).-(|
00002c10  28 79 3c 5f 75 29 3c 3c  31 29 84 2d 28 79 3e 5f  |(y<_u)<<1).-(y>_|
00002c20  76 29 0d 01 6a 04 0d 01  6b 13 dd 20 a4 49 6e 46  |v)..j...k.. .InF|
00002c30  72 61 6d 65 28 78 2c 79  29 0d 01 6c 21 e7 20 a4  |rame(x,y)..l!. .|
00002c40  4f 75 74 73 69 64 65 46  72 61 6d 65 28 78 2c 79  |OutsideFrame(x,y|
00002c50  29 20 8c 20 3d a3 20 8b  3d b9 0d 01 6d 04 0d 01  |) . =. .=...m...|
00002c60  6e 26 dd 20 f2 47 65 74  46 72 61 6d 65 43 6f 6f  |n&. .GetFrameCoo|
00002c70  72 64 73 28 f8 20 61 2c  f8 20 62 2c f8 20 75 2c  |rds(. a,. b,. u,|
00002c80  f8 20 76 29 0d 01 6f 32  20 f4 20 2d 2d 2d 2d 2d  |. v)..o2 . -----|
00002c90  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002cb0  2d 2d 2d 2d 2d 2d 0d 01  70 06 20 f4 0d 01 71 30  |------..p. ...q0|
00002cc0  20 f4 20 54 68 65 20 62  6f 75 6e 64 69 6e 67 20  | . The bounding |
00002cd0  62 6f 78 20 69 6e 20 74  68 65 20 28 78 2c 79 29  |box in the (x,y)|
00002ce0  20 70 6c 61 6e 65 20 77  68 69 63 68 0d 01 72 2e  | plane which..r.|
00002cf0  20 f4 20 63 6f 6e 74 61  69 6e 73 20 74 68 65 20  | . contains the |
00002d00  64 72 61 77 69 6e 67 20  69 73 20 61 3c 78 3c 62  |drawing is a<x<b|
00002d10  20 2c 20 75 3c 79 3c 76  20 2e 0d 01 73 06 20 f4  | , u<y<v ...s. .|
00002d20  0d 01 74 06 20 f4 0d 01  75 31 20 f4 20 2d 2d 2d  |..t. ...u1 . ---|
00002d30  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002d50  2d 2d 2d 2d 2d 2d 2d 0d  01 76 13 20 ea 20 77 69  |-------..v. . wi|
00002d60  64 74 68 2c 68 65 69 67  68 74 0d 01 77 23 20 20  |dth,height..w#  |
00002d70  20 20 20 61 3d 7c 28 93  2b 32 38 29 20 3a 20 20  |   a=|(.+28) :  |
00002d80  20 20 20 20 75 3d 7c 28  93 2b 33 36 29 0d 01 78  |    u=|(.+36)..x|
00002d90  23 20 77 69 64 74 68 3d  7c 28 93 2b 34 34 29 20  |# width=|(.+44) |
00002da0  3a 20 68 65 69 67 68 74  3d 7c 28 93 2b 35 32 29  |: height=|(.+52)|
00002db0  0d 01 79 1b 20 62 3d 61  2b 77 69 64 74 68 20 3a  |..y. b=a+width :|
00002dc0  20 76 3d 75 2b 68 65 69  67 68 74 0d 01 7a 06 20  | v=u+height..z. |
00002dd0  e1 0d 01 7b 04 0d 01 7c  10 dd 20 f2 53 68 6f 77  |...{...|.. .Show|
00002de0  46 72 61 6d 65 0d 01 7d  32 20 f4 20 2d 2d 2d 2d  |Frame..}2 . ----|
00002df0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002e10  2d 2d 2d 2d 2d 2d 2d 0d  01 7e 06 20 f4 0d 01 7f  |-------..~. ....|
00002e20  30 20 f4 20 54 68 65 20  62 6f 75 6e 64 69 6e 67  |0 . The bounding|
00002e30  20 62 6f 78 20 69 6e 20  74 68 65 20 28 78 2c 79  | box in the (x,y|
00002e40  29 20 70 6c 61 6e 65 20  77 68 69 63 68 0d 01 80  |) plane which...|
00002e50  2e 20 f4 20 63 6f 6e 74  61 69 6e 73 20 74 68 65  |. . contains the|
00002e60  20 64 72 61 77 69 6e 67  20 69 73 20 61 3c 78 3c  | drawing is a<x<|
00002e70  62 20 2c 20 75 3c 79 3c  76 20 2e 0d 01 81 06 20  |b , u<y<v ..... |
00002e80  f4 0d 01 82 06 20 f4 0d  01 83 31 20 f4 20 2d 2d  |..... ....1 . --|
00002e90  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002eb0  2d 2d 2d 2d 2d 2d 2d 2d  0d 01 84 19 20 ea 20 5f  |--------.... . _|
00002ec0  70 61 74 68 25 2c 5f 61  2c 5f 62 2c 5f 75 2c 5f  |path%,_a,_b,_u,_|
00002ed0  76 0d 01 85 22 20 20 f2  47 65 74 46 72 61 6d 65  |v..."  .GetFrame|
00002ee0  43 6f 6f 72 64 73 28 5f  61 2c 5f 62 2c 5f 75 2c  |Coords(_a,_b,_u,|
00002ef0  5f 76 29 0d 01 86 2a 20  20 5f 70 61 74 68 25 3d  |_v)...*  _path%=|
00002f00  a4 52 65 63 74 61 6e 67  6c 65 28 5f 61 2c 5f 75  |.Rectangle(_a,_u|
00002f10  2c 5f 62 2d 5f 61 2c 5f  76 2d 5f 75 29 0d 01 87  |,_b-_a,_v-_u)...|
00002f20  16 20 20 f2 46 69 6c 6c  40 28 5f 70 61 74 68 25  |.  .Fill@(_path%|
00002f30  2c 31 29 0d 01 88 17 20  20 f2 44 72 61 77 50 61  |,1)....  .DrawPa|
00002f40  74 68 28 5f 70 61 74 68  25 29 0d 01 89 05 e1 0d  |th(_path%)......|
00002f50  01 8a 04 0d 01 8b 12 dd  20 f2 4f 72 69 67 69 6e  |........ .Origin|
00002f60  28 41 2c 42 29 0d 01 8c  15 20 f4 20 2d 2d 2d 2d  |(A,B).... . ----|
00002f70  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0d 01 8d 06 20 f4  |----------.... .|
00002f80  0d 01 8e 15 20 f4 20 43  68 61 6e 67 65 73 20 6f  |.... . Changes o|
00002f90  72 69 67 69 6e 0d 01 8f  06 20 f4 0d 01 90 15 20  |rigin.... ..... |
00002fa0  f4 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |. --------------|
00002fb0  0d 01 91 12 20 ea 20 5f  61 2c 5f 62 2c 5f 75 2c  |.... . _a,_b,_u,|
00002fc0  5f 76 0d 01 92 21 20 f2  47 65 74 46 72 61 6d 65  |_v...! .GetFrame|
00002fd0  43 6f 6f 72 64 73 28 5f  61 2c 5f 62 2c 5f 75 2c  |Coords(_a,_b,_u,|
00002fe0  5f 76 29 0d 01 93 26 20  f2 46 72 61 6d 65 43 6f  |_v)...& .FrameCo|
00002ff0  6f 72 64 73 28 5f 61 2d  41 2c 5f 62 2d 41 2c 5f  |ords(_a-A,_b-A,_|
00003000  75 2d 42 2c 5f 76 2d 42  29 0d 01 94 05 e1 0d 01  |u-B,_v-B).......|
00003010  95 04 0d 01 96 04 0d 01  97 19 f4 20 2d 2d 2d 2d  |........... ----|
00003020  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
00003030  01 98 05 f4 0d 01 99 18  f4 20 31 2e 36 20 50 72  |......... 1.6 Pr|
00003040  65 76 69 65 77 20 53 63  72 65 65 6e 0d 01 9a 05  |eview Screen....|
00003050  f4 0d 01 9b 19 f4 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |...... ---------|
00003060  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0d 01 9c 04 0d 01  |----------......|
00003070  9d 16 dd 20 a4 44 72 61  77 44 78 3d 21 28 93 2b  |... .DrawDx=!(.+|
00003080  31 31 32 29 0d 01 9e 04  0d 01 9f 16 dd 20 a4 44  |112)......... .D|
00003090  72 61 77 44 79 3d 21 28  93 2b 31 31 36 29 0d 01  |rawDy=!(.+116)..|
000030a0  a0 04 0d 01 a1 15 dd 20  a4 44 72 61 77 54 72 61  |....... .DrawTra|
000030b0  6e 73 3d 93 2b 39 36 0d  01 a2 04 0d 01 a3 0e dd  |ns=.+96.........|
000030c0  20 f2 50 72 65 76 69 65  77 0d 01 a4 28 20 f4 20  | .Preview...( . |
000030d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000030f0  2d 0d 01 a5 06 20 f4 0d  01 a6 2a 20 f4 20 44 72  |-.... ....* . Dr|
00003100  61 77 73 20 61 6e 79 20  70 61 74 68 73 20 61 6c  |aws any paths al|
00003110  73 6f 20 74 6f 20 73 63  72 65 65 6e 20 77 69 74  |so to screen wit|
00003120  68 0d 01 a7 19 20 f4 20  61 20 77 68 69 74 65 20  |h.... . a white |
00003130  62 61 63 6b 67 72 6f 75  6e 64 0d 01 a8 06 20 f4  |background.... .|
00003140  0d 01 a9 28 20 f4 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |...( . ---------|
00003150  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00003160  2d 2d 2d 2d 2d 2d 2d 2d  0d 01 aa 0d 20 ef 20 32  |--------.... . 2|
00003170  36 20 3a 20 da 0d 01 ab  26 20 ea 20 5f 68 2c 5f  |6 : ....& . _h,_|
00003180  6d 61 78 25 2c 5f 78 25  2c 5f 79 25 2c 5f 49 25  |max%,_x%,_y%,_I%|
00003190  2c 5f 66 6f 6e 74 25 2c  5f 6e 24 0d 01 ac 24 20  |,_font%,_n$...$ |
000031a0  f2 44 72 61 77 50 72 65  76 69 65 77 42 6f 72 64  |.DrawPreviewBord|
000031b0  65 72 73 28 33 30 30 30  2c 31 32 2c 38 29 20 0d  |ers(3000,12,8) .|
000031c0  01 ad 1e 20 f2 44 72 61  77 50 72 65 76 69 65 77  |... .DrawPreview|
000031d0  48 53 63 61 6c 65 73 28  33 30 30 30 29 0d 01 ae  |HScales(3000)...|
000031e0  1e 20 f2 44 72 61 77 50  72 65 76 69 65 77 56 53  |. .DrawPreviewVS|
000031f0  63 61 6c 65 73 28 33 30  30 30 29 0d 01 af 1c 20  |cales(3000).... |
00003200  f2 44 72 61 77 50 72 65  76 69 65 77 54 69 74 6c  |.DrawPreviewTitl|
00003210  65 28 31 34 2c 37 29 0d  01 b0 05 e1 0d 01 b1 04  |e(14,7).........|
00003220  0d 01 b2 2e dd 20 f2 44  72 61 77 50 72 65 76 69  |..... .DrawPrevi|
00003230  65 77 42 6f 72 64 65 72  73 28 6d 61 78 25 2c 70  |ewBorders(max%,p|
00003240  6f 69 6e 74 25 2c 63 6f  6c 6f 75 72 25 29 0d 01  |oint%,colour%)..|
00003250  b3 12 f4 20 44 72 61 77  20 42 6f 72 64 65 72 73  |... Draw Borders|
00003260  0d 01 b4 14 70 6f 69 6e  74 25 3d 70 6f 69 6e 74  |....point%=point|
00003270  25 2a 31 36 0d 01 b5 2e  c8 99 20 22 43 6f 6c 6f  |%*16...... "Colo|
00003280  75 72 54 72 61 6e 73 5f  53 65 74 47 43 4f 4c 22  |urTrans_SetGCOL"|
00003290  2c a4 44 65 73 6b 74 6f  70 43 6f 6c 6f 75 72 28  |,.DesktopColour(|
000032a0  32 29 0d 01 b6 1d c8 93  20 c8 90 20 30 2c 30 2c  |2)...... .. 0,0,|
000032b0  a4 44 72 61 77 44 79 3e  3e 38 2c 6d 61 78 25 0d  |.DrawDy>>8,max%.|
000032c0  01 b7 1d c8 93 20 c8 90  20 30 2c 30 2c 6d 61 78  |..... .. 0,0,max|
000032d0  25 2c a4 44 72 61 77 44  78 3e 3e 38 0d 01 b8 2e  |%,.DrawDx>>8....|
000032e0  c8 99 20 22 43 6f 6c 6f  75 72 54 72 61 6e 73 5f  |.. "ColourTrans_|
000032f0  53 65 74 47 43 4f 4c 22  2c a4 44 65 73 6b 74 6f  |SetGCOL",.Deskto|
00003300  70 43 6f 6c 6f 75 72 28  37 29 0d 01 b9 2b 86 20  |pColour(7)...+. |
00003310  a4 44 72 61 77 44 78 3e  3e 38 2c a4 44 72 61 77  |.DrawDx>>8,.Draw|
00003320  44 79 3e 3e 38 2c 6d 61  78 25 2c a4 44 72 61 77  |Dy>>8,max%,.Draw|
00003330  44 79 3e 3e 38 0d 01 ba  2b 86 20 a4 44 72 61 77  |Dy>>8...+. .Draw|
00003340  44 78 3e 3e 38 2c a4 44  72 61 77 44 79 3e 3e 38  |Dx>>8,.DrawDy>>8|
00003350  2c a4 44 72 61 77 44 78  3e 3e 38 2c 6d 61 78 25  |,.DrawDx>>8,max%|
00003360  0d 01 bb 39 c8 99 20 22  46 6f 6e 74 5f 46 69 6e  |...9.. "Font_Fin|
00003370  64 46 6f 6e 74 22 2c 2c  22 54 72 69 6e 69 74 79  |dFont",,"Trinity|
00003380  2e 4d 65 64 69 75 6d 22  2b bd 30 2c 70 6f 69 6e  |.Medium"+.0,poin|
00003390  74 25 2c 70 6f 69 6e 74  25 0d 01 bc 51 c8 99 20  |t%,point%...Q.. |
000033a0  22 43 6f 6c 6f 75 72 54  72 61 6e 73 5f 53 65 74  |"ColourTrans_Set|
000033b0  46 6f 6e 74 43 6f 6c 6f  75 72 73 22 2c 2c a4 44  |FontColours",,.D|
000033c0  65 73 6b 74 6f 70 43 6f  6c 6f 75 72 28 32 29 2c  |esktopColour(2),|
000033d0  a4 44 65 73 6b 74 6f 70  43 6f 6c 6f 75 72 28 63  |.DesktopColour(c|
000033e0  6f 6c 6f 75 72 25 29 2c  31 34 0d 01 bd 05 e1 0d  |olour%),14......|
000033f0  01 be 04 0d 01 bf 27 dd  20 f2 44 72 61 77 50 72  |......'. .DrawPr|
00003400  65 76 69 65 77 54 69 74  6c 65 28 70 6f 69 6e 74  |eviewTitle(point|
00003410  25 2c 63 6f 6c 6f 75 72  25 29 0d 01 c0 10 ea 20  |%,colour%)..... |
00003420  5f 6e 24 2c 5f 66 24 2c  69 25 0d 01 c1 30 5f 66  |_n$,_f$,i%...0_f|
00003430  24 3d a4 52 65 61 64 53  79 73 74 65 6d 56 61 72  |$=.ReadSystemVar|
00003440  69 61 62 6c 65 28 22 44  72 61 77 42 61 73 69 63  |iable("DrawBasic|
00003450  24 4f 70 74 69 6f 6e 73  22 29 0d 01 c2 2e 69 25  |$Options")....i%|
00003460  3d a7 5f 66 24 2c 22 3a  22 29 20 3a 20 e7 20 69  |=._f$,":") : . i|
00003470  25 3c 3e 30 20 8c 20 5f  66 24 3d c2 5f 66 24 2c  |%<>0 . _f$=._f$,|
00003480  a9 5f 66 24 2d 69 25 29  0d 01 c3 14 70 6f 69 6e  |._f$-i%)....poin|
00003490  74 25 3d 70 6f 69 6e 74  25 2a 31 36 0d 01 c4 20  |t%=point%*16... |
000034a0  5f 6e 24 3d 22 44 72 61  77 42 61 73 69 63 20 22  |_n$="DrawBasic "|
000034b0  2b a4 4c 65 61 66 28 5f  66 24 29 20 0d 01 c5 3a  |+.Leaf(_f$) ...:|
000034c0  e7 20 a4 55 6e 69 74 73  3d 32 35 36 2a 31 38 30  |. .Units=256*180|
000034d0  20 8c 20 20 5f 6e 24 2b  3d 22 20 28 49 6e 63 68  | .  _n$+=" (Inch|
000034e0  65 73 29 22 20 20 8b 20  20 5f 6e 24 2b 3d 22 20  |es)"  .  _n$+=" |
000034f0  28 43 6d 73 29 22 0d 01  c6 39 c8 99 20 22 46 6f  |(Cms)"...9.. "Fo|
00003500  6e 74 5f 46 69 6e 64 46  6f 6e 74 22 2c 2c 22 54  |nt_FindFont",,"T|
00003510  72 69 6e 69 74 79 2e 4d  65 64 69 75 6d 22 2b bd  |rinity.Medium"+.|
00003520  30 2c 70 6f 69 6e 74 25  2c 70 6f 69 6e 74 25 0d  |0,point%,point%.|
00003530  01 c7 51 c8 99 20 22 43  6f 6c 6f 75 72 54 72 61  |..Q.. "ColourTra|
00003540  6e 73 5f 53 65 74 46 6f  6e 74 43 6f 6c 6f 75 72  |ns_SetFontColour|
00003550  73 22 2c 2c a4 44 65 73  6b 74 6f 70 43 6f 6c 6f  |s",,.DesktopColo|
00003560  75 72 28 32 29 2c a4 44  65 73 6b 74 6f 70 43 6f  |ur(2),.DesktopCo|
00003570  6c 6f 75 72 28 63 6f 6c  6f 75 72 25 29 2c 31 34  |lour(colour%),14|
00003580  0d 01 c8 25 c8 99 20 22  46 6f 6e 74 5f 50 61 69  |...%.. "Font_Pai|
00003590  6e 74 22 2c 2c 5f 6e 24  2c 25 31 30 30 30 30 2c  |nt",,_n$,%10000,|
000035a0  31 36 2c 31 32 0d 01 c9  08 e1 20 20 20 0d 01 ca  |16,12.....   ...|
000035b0  04 0d 01 cb 24 dd 20 a4  52 65 61 64 53 79 73 74  |....$. .ReadSyst|
000035c0  65 6d 56 61 72 69 61 62  6c 65 28 76 61 72 69 61  |emVariable(varia|
000035d0  62 6c 65 24 29 0d 01 cc  05 f4 0d 01 cd 22 f4 20  |ble$)........". |
000035e0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000035f0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 01 ce 22  |------------..."|
00003600  f4 20 20 52 65 61 64 73  20 74 68 65 20 76 61 6c  |.  Reads the val|
00003610  75 65 20 6f 66 20 61 20  73 74 72 69 6e 67 0d 01  |ue of a string..|
00003620  cf 16 f4 20 20 73 79 73  74 65 6d 20 76 61 72 69  |...  system vari|
00003630  61 62 6c 65 0d 01 d0 22  f4 20 2d 2d 2d 2d 2d 2d  |able...". ------|
00003640  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00003650  2d 2d 2d 2d 2d 2d 0d 01  d1 05 f4 0d 01 d2 16 ea  |------..........|
00003660  20 5f 6c 65 6e 25 2c 5f  76 61 72 69 61 62 6c 65  | _len%,_variable|
00003670  25 0d 01 d3 14 de 20 5f  76 61 72 69 61 62 6c 65  |%..... _variable|
00003680  25 20 32 35 36 0d 01 d4  3c c8 99 20 22 4f 53 5f  |% 256...<.. "OS_|
00003690  52 65 61 64 56 61 72 56  61 6c 22 2c 76 61 72 69  |ReadVarVal",vari|
000036a0  61 62 6c 65 24 2c 5f 76  61 72 69 61 62 6c 65 25  |able$,_variable%|
000036b0  2c 32 35 36 2c 2c 33 20  b8 20 2c 2c 5f 6c 65 6e  |,256,,3 . ,,_len|
000036c0  25 0d 01 d5 17 5f 76 61  72 69 61 62 6c 65 25 3f  |%...._variable%?|
000036d0  5f 6c 65 6e 25 3d 31 33  0d 01 d6 10 3d 24 5f 76  |_len%=13....=$_v|
000036e0  61 72 69 61 62 6c 65 25  0d 01 d7 04 0d 01 d8 0f  |ariable%........|
000036f0  dd 20 a4 4c 65 61 66 28  78 24 29 0d 01 d9 18 ea  |. .Leaf(x$).....|
00003700  20 5f 69 25 20 3a 20 5f  69 25 3d a7 78 24 2c 22  | _i% : _i%=.x$,"|
00003710  2e 22 29 0d 01 da 26 e7  20 5f 69 25 3d 30 20 8c  |.")...&. _i%=0 .|
00003720  3d 78 24 20 8b 3d a4 4c  65 61 66 28 c2 78 24 2c  |=x$ .=.Leaf(.x$,|
00003730  a9 78 24 2d 5f 69 25 29  29 0d 01 db 04 0d 01 dc  |.x$-_i%)).......|
00003740  1f dd 20 f2 44 72 61 77  50 72 65 76 69 65 77 48  |.. .DrawPreviewH|
00003750  53 63 61 6c 65 73 28 6d  61 78 25 29 0d 01 dd 11  |Scales(max%)....|
00003760  f4 20 44 72 61 77 20 53  63 61 6c 65 73 0d 01 de  |. Draw Scales...|
00003770  1a ea 20 5f 68 2c 5f 78  25 2c 5f 49 25 2c 5f 64  |.. _h,_x%,_I%,_d|
00003780  78 25 2c 5f 64 79 25 0d  01 df 3e 5f 49 25 3d 30  |x%,_dy%...>_I%=0|
00003790  20 20 3a 20 5f 68 25 3d  a4 55 6e 69 74 73 3e 3e  |  : _h%=.Units>>|
000037a0  38 20 3a 5f 64 78 25 3d  a4 44 72 61 77 44 78 3e  |8 :_dx%=.DrawDx>|
000037b0  3e 38 20 3a 20 20 5f 64  79 25 3d a4 44 72 61 77  |>8 :  _dy%=.Draw|
000037c0  44 79 3e 3e 38 0d 01 e0  22 f5 20 3a 20 5f 78 25  |Dy>>8...". : _x%|
000037d0  3d 5f 64 78 25 2b 28 a4  44 72 61 77 5f 59 28 5f  |=_dx%+(.Draw_Y(_|
000037e0  49 25 29 3e 3e 38 29 0d  01 e1 1c 20 86 20 5f 78  |I%)>>8).... . _x|
000037f0  25 2c 5f 64 79 25 2c 5f  78 25 2c 33 2a 5f 64 79  |%,_dy%,_x%,3*_dy|
00003800  25 2f 34 0d 01 e2 28 20  86 20 5f 78 25 2b 5f 68  |%/4...( . _x%+_h|
00003810  25 2f 32 2c 5f 64 79 25  2c 5f 78 25 2b 5f 68 25  |%/2,_dy%,_x%+_h%|
00003820  2f 32 2c 37 2a 5f 64 79  25 2f 38 0d 01 e3 30 20  |/2,7*_dy%/8...0 |
00003830  c8 99 20 22 46 6f 6e 74  5f 50 61 69 6e 74 22 2c  |.. "Font_Paint",|
00003840  2c c3 28 5f 49 25 29 2c  25 31 30 30 30 30 2c 5f  |,.(_I%),%10000,_|
00003850  78 25 2d 38 2c 5f 64 79  25 2f 32 0d 01 e4 0b 20  |x%-8,_dy%/2.... |
00003860  5f 49 25 2b 3d 31 0d 01  e5 0f 20 fd 20 5f 78 25  |_I%+=1.... . _x%|
00003870  3e 6d 61 78 25 0d 01 e6  05 e1 0d 01 e7 04 0d 01  |>max%...........|
00003880  e8 1f dd 20 f2 44 72 61  77 50 72 65 76 69 65 77  |... .DrawPreview|
00003890  56 53 63 61 6c 65 73 28  6d 61 78 25 29 0d 01 e9  |VScales(max%)...|
000038a0  1a ea 20 5f 68 2c 5f 79  25 2c 5f 49 25 2c 5f 64  |.. _h,_y%,_I%,_d|
000038b0  78 25 2c 5f 64 79 25 0d  01 ea 3d 5f 49 25 3d 30  |x%,_dy%...=_I%=0|
000038c0  20 3a 20 5f 68 25 3d a4  55 6e 69 74 73 3e 3e 38  | : _h%=.Units>>8|
000038d0  20 3a 5f 64 78 25 3d a4  44 72 61 77 44 78 3e 3e  | :_dx%=.DrawDx>>|
000038e0  38 20 3a 20 20 5f 64 79  25 3d a4 44 72 61 77 44  |8 :  _dy%=.DrawD|
000038f0  79 3e 3e 38 0d 01 eb 22  f5 20 3a 20 5f 79 25 3d  |y>>8...". : _y%=|
00003900  5f 64 79 25 2b 28 a4 44  72 61 77 5f 58 28 5f 49  |_dy%+(.Draw_X(_I|
00003910  25 29 3e 3e 38 29 0d 01  ec 1d 20 86 20 20 5f 64  |%)>>8).... .  _d|
00003920  78 25 2c 5f 79 25 2c 33  2a 5f 64 78 25 2f 34 2c  |x%,_y%,3*_dx%/4,|
00003930  5f 79 25 0d 01 ed 29 20  86 20 20 5f 64 78 25 2c  |_y%...) .  _dx%,|
00003940  5f 79 25 2b 5f 68 25 2f  32 2c 37 2a 5f 64 78 25  |_y%+_h%/2,7*_dx%|
00003950  2f 38 2c 5f 79 25 2b 5f  68 25 2f 32 0d 01 ee 0e  |/8,_y%+_h%/2....|
00003960  20 e7 20 5f 49 25 3e 39  20 8c 0d 01 ef 2e 20 20  | . _I%>9 .....  |
00003970  c8 99 20 22 46 6f 6e 74  5f 50 61 69 6e 74 22 2c  |.. "Font_Paint",|
00003980  2c c3 28 5f 49 25 29 2c  25 31 30 30 30 30 2c 33  |,.(_I%),%10000,3|
00003990  36 2c 5f 79 25 2d 31 30  0d 01 f0 06 20 cc 0d 01  |6,_y%-10.... ...|
000039a0  f1 2e 20 20 c8 99 20 22  46 6f 6e 74 5f 50 61 69  |..  .. "Font_Pai|
000039b0  6e 74 22 2c 2c c3 28 5f  49 25 29 2c 25 31 30 30  |nt",,.(_I%),%100|
000039c0  30 30 2c 34 38 2c 5f 79  25 2d 31 30 0d 01 f2 06  |00,48,_y%-10....|
000039d0  20 cd 0d 01 f3 0b 20 5f  49 25 2b 3d 31 0d 01 f4  | ..... _I%+=1...|
000039e0  0f 20 fd 20 5f 79 25 3e  6d 61 78 25 0d 01 f5 05  |. . _y%>max%....|
000039f0  e1 0d 01 f6 04 0d ff                              |.......|
000039f7