Home » Archimedes archive » Archimedes World » AW-1994-12-Disc1.adf » Disk1Dec94 » !AWDec94/Goodies/DrawBasic/!DrawBasic/Network/Utils
!AWDec94/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-1994-12-Disc1.adf » Disk1Dec94 |
Filename: | !AWDec94/Goodies/DrawBasic/!DrawBasic/Network/Utils |
Read OK: | ✔ |
File size: | 39F7 bytes |
Load address: | 0000 |
Exec address: | 0000 |
Duplicates
There are 5 duplicate copies of this file in the archive:
- Archimedes archive » Archimedes World » AW-1995-03-Disc1.adf » Disk1Mar95 » !AWMar95/Goodies/DrawBasic/!DrawBasic/Network/Utils
- Archimedes archive » Archimedes World » AW-1995-04-Disc1.adf » Disk1Apr95 » !AWApr95/Goodies/Draw/!DrawBasic/Network/Utils
- Archimedes archive » Archimedes World » AW-1994-12-Disc1.adf » Disk1Dec94 » !AWDec94/Goodies/DrawBasic/!DrawBasic/Network/Utils
- Archimedes archive » Archimedes World » AW-1995-01-Disc1.adf » Disk1Jan95 » !AWJan95/Goodies/DrawBasic/!DrawBasic/Network/Utils
- Archimedes archive » Archimedes World » AW-1995-05-Disc1.adf » AWMay95_1 » InTheMag/DrawBasic/!DrawBasic/Network/Utils
- Archimedes archive » Archimedes World » AW-1995-02-Disc1.adf » Disk1Feb95 » !AWFeb95/Goodies/DrawBasic/!DrawBasic/Network/Utils
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