Home » Archimedes archive » Archimedes World » AW-1995-01-Disc1.adf » Disk1Jan95 » !AWJan95/Goodies/DrawBasic/!DrawBasic/Resources/Scales
!AWJan95/Goodies/DrawBasic/!DrawBasic/Resources/Scales
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Archimedes World » AW-1995-01-Disc1.adf » Disk1Jan95 |
Filename: | !AWJan95/Goodies/DrawBasic/!DrawBasic/Resources/Scales |
Read OK: | ✔ |
File size: | 1F62 bytes |
Load address: | 0000 |
Exec address: | 0000 |
Duplicates
There is 1 duplicate copy of this file in the archive:
- Archimedes archive » Archimedes World » AW-1994-12-Disc1.adf » Disk1Dec94 » !AWDec94/Goodies/DrawBasic/!DrawBasic/Resources/Scales
- Archimedes archive » Archimedes World » AW-1995-01-Disc1.adf » Disk1Jan95 » !AWJan95/Goodies/DrawBasic/!DrawBasic/Resources/Scales
File contents
1REM > DrawBasic:Resources.Scales 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 14REM ****************** 15REM 16REM SCALES 17REM 18REM ****************** 19 20REM ======= 21REM 1 Axes 22REM ======= 23 24DEF PROC@Axes 25 REM --------------------------------- 26 REM 27 REM Subpath containing axes (if they 28 REM intersect the frame 29 REM 30 REM --------------------------------- 31 LOCAL _a,_b,_u,_v,_w,_h 32 PROCGetFrameCoords(_a,_b,_u,_v) 33 _h=_v-_u : _w=_b-_a 34 IF _a*_b<=0 THEN 35 PROC@VLine(0,_u-FNAxesExtendB*_h,_h*(1+FNAxesExtendT+FNAxesExtendB)) 36 ENDIF 37 IF _u*_v<=0 THEN 38 PROC@HLine(_a-FNAxesExtendL*_w,0,_w*(1+FNAxesExtendR+FNAxesExtendL)) 39 ENDIF 40ENDPROC 41 42DEF FNAxes 43 REM ------------------------------ 44 REM 45 REM Axes. If axes do not intersect 46 REM the frame then value=0 47 REM ------------------------------ 48LOCAL _axes,_a,_b,_u,_v 49PROCGetFrameCoords(_a,_b,_u,_v) 50IF _a*_b<=0 OR _u*_v<=0 THEN 51 PROCPathBegin(_axes) 52 PROC@Axes 53 PROCPathEnd 54ELSE 55 _axes=0 56ENDIF 57=_axes 58 59DEF PROCAxes(width) 60 REM ------------------------- 61 REM 62 REM Draws axes in the current 63 REM drawing frame. If axes 64 REM don't intersect frame 65 REM nothing is drawn 66 REM 67 REM ------------------------- 68 LOCAL _axes 69 _axes=FNAxes 70 IF _axes<>0 THEN 71 PROCWidth@(_axes,width) 72 IF FNAxesCapPoint<>0 THEN 73 PROCTriangleCaps@(_axes,1,FNAxesCapPoint,FNAxesCapWidth) 74 ENDIF 75 PROCDrawPath(_axes) 76 ENDIF 77ENDPROC 78 79DEF FNAxesWidth=!(HIMEM+124)/(1<<16) 80 81DEF FNAxesCapPoint=!(HIMEM+128)>>16 82 83DEF FNAxesCapWidth=(!(HIMEM+128)<<16)>>16 84 85DEF PROCAxesCaps(point%,capwidth%) 86!(HIMEM+128)=(point%<<16)+capwidth% 87ENDPROC 88 89DEF PROCAxesExtend(left%,right%,top%,down%) 90!(HIMEM+132)=left%+(right%<<8)+(top%<<16)+(down%<<24) 91ENDPROC 92 93DEF FNAxesExtendL=((!(HIMEM+132)<<24)>>24)/100 94DEF FNAxesExtendR=((!(HIMEM+132)<<16)>>24)/100 95DEF FNAxesExtendT=((!(HIMEM+132)<<8)>>24)/100 96DEF FNAxesExtendB=((!(HIMEM+132))>>24)/100 97 98REM ========== 99REM 2 Scales 100REM ========== 101 102DEF PROC@VScale(ny%,x,index%,tick_length) 103LOCAL _i%,_h%,_x%,_y%,_length% 104_x%=FNDraw_X(x) : _length%=tick_length*FNX_Scale 105CASE index% OF 106 WHEN -1 : 107 WHEN 1 : _x%-=_length% 108 OTHERWISE : _x%-=_length%/2 109ENDCASE 110IF ny%>0 THEN 111 _h%=INT(FNFrame_Width/ny%+.5) : _y%=FNFrame_y 112 FOR _i%=0 TO ny% 113 PROCMOVE(_x%,_y%) 114 PROCDRAW(_x%+_length%,_y%) 115 _y%+=_h% 116 NEXT 117ENDIF 118ENDPROC 119 120DEF FNVScale(ny%,x,index%,tick_length) 121LOCAL _path 122IF ny%>0 THEN 123 PROCPathBegin(_path) 124 PROC@VScale(ny%,x,index%,tick_length) 125 PROCPathEnd 126ELSE 127 _path=0 128ENDIF 129=_path 130 131DEF PROCVScale(ny%,x,index%,tick_length,width) 132LOCAL _path 133_path=FNVScale(ny%,x,index%,tick_length) 134IF _path<>0 THEN PROCWidth@(_path,width) : PROCDrawPath(_path) 135ENDPROC 136 137DEF PROC@HScale(nx%,y,index%,tick_length) 138LOCAL _i%,_h%,_x%,_y%,_length% 139_y%=FNDraw_Y(y) : _length%=tick_length*FNY_Scale 140CASE index% OF 141 WHEN -1 : 142 WHEN 1 : _y%-=_length% 143 OTHERWISE : _y%-=_length%/2 144ENDCASE 145IF nx%>0 THEN 146 _h%=INT(FNFrame_Height/nx%+.5) : _x%=FNFrame_x 147 FOR _i%=0 TO nx% 148 PROCMOVE(_x%,_y%) 149 PROCDRAW(_x%,_y%+_length%) 150 _x%+=_h% 151 NEXT 152ENDIF 153ENDPROC 154 155DEF FNHScale(nx%,y,index%,tick_length) 156LOCAL _path 157IF nx%>0 THEN 158 PROCPathBegin(_path) 159 PROC@HScale(nx%,y,index%,tick_length) 160 PROCPathEnd 161ELSE 162 _path=0 163ENDIF 164=_path 165 166DEF PROCHScale(nx%,y,index%,tick_length,width) 167LOCAL _path 168_path=FNHScale(nx%,y,index%,tick_length) 169IF _path<>0 THEN PROCWidth@(_path,width) : PROCDrawPath(_path) 170ENDPROC 171 172REM ========= 173REM 3 Labels 174REM ========= 175 176DEF PROCVLabels(ny%,x,index%) 177LOCAL _i%,_a,_b,_u,_v,_text$,_y,_h,_X,_w,_H,_dw,_dh 178IF ny%>0 THEN 179 PROCGetFrameCoords(_a,_b,_u,_v) 180 _h=(_v-_u)/ny% 181 FOR _i%=0 TO ny% 182 _y=_u+_i%*_h 183 _text$=FNLabel(_y) 184 PROCTextSize(_text$,_w,_H,_dw,_dh) 185 CASE index% OF 186 WHEN -1 : _X=x-(_w+_dw) 187 WHEN 1 : _X=x+_dw/2 : IF _y>=0 THEN _X+=_dw/2 188 OTHERWISE : _X=x 189 ENDCASE 190 PROCPrint(_text$,_X,_y-_dh/2) 191 NEXT 192 ENDIF 193ENDPROC 194 195DEF PROCHLabels(nx%,y,index%) 196LOCAL _i%,_a,_b,_u,_v,_text$,_x,_h,_X,_Y,_w,_H,_dw,_dh 197IF nx%>0 THEN 198 PROCGetFrameCoords(_a,_b,_u,_v) 199 _h=(_b-_a)/nx% 200 FOR _i%=0 TO nx% 201 _x=_a+_i%*_h 202 _text$=FNLabel(_x) 203 PROCTextSize(_text$,_w,_H,_dw,_dh) 204 CASE index% OF 205 WHEN -1 : _Y=y-1.5*_dh 206 WHEN 1 : _Y=y+_dh 207 OTHERWISE : _Y=y 208 ENDCASE 209 PROCPrint(_text$,_x-_w/2,_Y) 210 NEXT 211 ENDIF 212ENDPROC 213 214DEF FNLabel(y) 215LOCAL _text$,_i%,_pi$,_font%,_X%,_Y% 216 _pi$="p" 217_i%=INT(y/PI+.5) 218CASE TRUE OF 219 WHEN ABS(y/PI-_i%)<1E-6 220 CASE _i% OF 221 WHEN 0 : _text$="0" 222 WHEN 1 : _text$=_pi$ 223 WHEN -1 : _text$="-"+_pi$ 224 OTHERWISE : _text$=STR$(_i%)+_pi$ 225 ENDCASE 226 OTHERWISE 227 _text$=STR$(y) 228ENDCASE 229=_text$ 230 231DEF PROCTextSize(text$,RETURN w,RETURN h,RETURN dw,RETURN dh) 232LOCAL _font%,_width%,_height%,_X%,_Y%,_i% 233SYS "Font_CurrentFont" TO _font% 234FOR _i%=1 TO LEN(text$) 235 SYS "Font_CharBBox",_font%,ASC(MID$(text$,_i%,1)),1<<4 TO ,,,_X%,_Y% 236 _width%+=_X% 237 IF _height%>_Y% THEN _height%=_Y% 238 NEXT 239 SYS "Font_CharBBox",_font%,ASC("A"),1<<4 TO ,,,_X%,_Y% 240 w=(_width%<<8)/FNX_Scale : dw=(_X%<<8)/FNX_Scale 241 h=(_height%<<8)/FNY_Scale : dh=(_Y%<<8)/FNY_Scale 242ENDPROC 243 244 245 246REM ============ 247REM 4 Parameters 248REM ============ 249 250DEF PROCScales(Nx%,nx%,Ny%,ny%) 251!(HIMEM+136)=Nx% : !(HIMEM+140)=nx% 252!(HIMEM+144)=Ny% : !(HIMEM+148)=ny% 253ENDPROC 254 255DEF PROCScalesLength(Lx%,lx%,Ly%,ly%) 256!(HIMEM+152)=Lx% : !(HIMEM+156)=lx% 257!(HIMEM+160)=Ly% : !(HIMEM+164)=ly% 258ENDPROC 259 260DEF PROCScalesWidth(Wx,wx,Wy,wy) 261!(HIMEM+168)=INT(Wx*(1<<16)+.5) : !(HIMEM+172)=INT(wx*(1<<16)+.5) 262!(HIMEM+176)=INT(Wy*(1<<16)+.5) : !(HIMEM+180)=INT(wy*(1<<16)+.5) 263ENDPROC 264 265DEF PROCHScaleSize(Nx%,nx%) 266!(HIMEM+136)=Nx% : !(HIMEM+140)=nx% 267ENDPROC 268 269DEF PROCHLength(Lx%,lx%) 270!(HIMEM+152)=Lx% : !(HIMEM+156)=lx% 271ENDPROC 272 273DEF PROCHWidth(Wx,wx) 274!(HIMEM+168)=INT(Wx*(1<<16)+.5) : !(HIMEM+172)=INT(wx*(1<<16)+.5) 275ENDPROC 276 277DEF FNHDiv=!(HIMEM+136) 278DEF FNHSubDiv=!(HIMEM+140) 279DEF FNHLength=!(HIMEM+152)*640/FNY_Scale 280DEF FNHSubLength=!(HIMEM+156)*640/FNY_Scale 281DEF FNHWidth=!(HIMEM+168)/(1<<16) 282DEF FNHSubWidth=!(HIMEM+172)/(1<<16) 283 284DEF PROCVScaleSize(Ny%,ny%) 285!(HIMEM+144)=Ny% : !(HIMEM+148)=ny% 286ENDPROC 287 288DEF PROCVLength(Ly%,ly%) 289!(HIMEM+160)=Ly% : !(HIMEM+164)=ly% 290ENDPROC 291 292DEF PROCVWidth(Wy%,wy%) 293!(HIMEM+176)=INT(Wy*(1<<16)+.5) : !(HIMEM+180)=INT(wy*(1<<16)+.5) 294ENDPROC 295 296DEF FNVDiv=!(HIMEM+144) 297DEF FNVSubDiv=!(HIMEM+148) 298DEF FNVLength=!(HIMEM+160)*640/FNX_Scale 299DEF FNVSubLength=!(HIMEM+164)*640/FNX_Scale 300DEF FNVWidth=!(HIMEM+176)/(1<<16) 301DEF FNVSubWidth=!(HIMEM+180)/(1<<16) 302 303REM ======================== 304REM 4 Screen, Frame + Grid 305REM ======================== 306 307DEF PROCAxesScale(HDiv%,HSubDiv%,VDiv%,VSubDiv%) 308LOCAL _a,_b,_u,_v 309PROCGetFrameCoords(_a,_b,_u,_v) 310IF _a*_b<=0 THEN 311 PROCVScale(VDiv%,0,-1,FNVLength,FNVWidth) 312 PROCVScale(VDiv%,0,-1,FNVLength,FNVWidth) 313 PROCVLabels(VDiv%,0,-1) 314 PROCVScale(VSubDiv%*VDiv%,0,-1,FNVSubLength,FNVSubWidth) 315 ENDIF 316IF _u*_v<=0 THEN 317 PROCHScale(HDiv%,0,-1,FNHLength,FNHWidth) 318 PROCHLabels(HDiv%,0,-1) 319 PROCHScale(HSubDiv%*HDiv%,0,-1,FNHSubLength,FNHSubWidth) 320 ENDIF 321ENDPROC 322 323DEF PROCFrameScale(HDiv%,HSubDiv%,VDiv%,VSubDiv%) 324LOCAL _a,_b,_u,_v,_a%,_x,_y,_rect 325PROCGetFrameCoords(_a,_b,_u,_v) 326_rect=FNRectangle(_a,_u,_b-_a,_v-_u) : PROCWidth@(_rect,FNVWidth) 327FOR _a%=-1 TO 1 STEP 2 328 IF _a%=-1 THEN _x=_a : _y=_u ELSE _x=_b : _y=_v 329 PROCVScale(VDiv%,_x,_a%,FNVLength,FNVWidth) 330 PROCVLabels(VDiv%,_x,_a%) 331 PROCVScale(VSubDiv%*VDiv%,_x,_a%,FNVSubLength,FNVSubWidth) 332 PROCHScale(HDiv%,_y,_a%,FNHLength,FNHWidth) 333 PROCHLabels(HDiv%,_y,_a%) 334 PROCHScale(HSubDiv%*HDiv%,_y,_a%,FNHSubLength,FNHSubWidth) 335NEXT 336ENDPROC 337 338DEF PROCGrid(HDiv%,HSubDiv%,VDiv%,VSubDiv%) 339LOCAL _a,_b,_u,_v 340PROCGetFrameCoords(_a,_b,_u,_v) 341 PROCVScale(VDiv%,_a,-1,_b-_a,FNVWidth) 342 PROCVScale(VSubDiv%*VDiv%,_a,-1,_b-_a,FNVSubWidth) 343 PROCHScale(HDiv%,_u,-1,_v-_u,FNHWidth) 344 PROCHScale(HSubDiv%*HDiv%,_u,-1,_v-_u,FNHSubWidth) 345 PROCVLabels(VDiv%,_a,-1):PROCVLabels(VDiv%,_b,1) 346 PROCHLabels(HDiv%,_u,-1):PROCHLabels(HDiv%,_v,1) 347ENDPROC 348 349DEF PROCScreen(a,b,u,v) 350PROCReduceFrameSize(FNScreenSize) 351PROCFrameCoords(a,b,u,v) 352PROCAxes(1) 353ENDPROC 354 355DEF PROCScreenL(a,b,u,v) 356PROCScreen(a,b,u,v) 357PROCAxesScale(1,0,1,0) 358ENDPROC 359 360
"� > DrawBasic:Resources.Scales =� ======================================================= � $� 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. � =� ======================================================= � ****************** � � SCALES � � ****************** � ======= � 1 Axes � ======= � �@Axes ( � --------------------------------- � ' � Subpath containing axes (if they � intersect the frame � ( � --------------------------------- � _a,_b,_u,_v,_w,_h ! �GetFrameCoords(_a,_b,_u,_v) ! _h=_v-_u : _w=_b-_a " � _a*_b<=0 � #D �@VLine(0,_u-�AxesExtendB*_h,_h*(1+�AxesExtendT+�AxesExtendB)) $ � % � _u*_v<=0 � &D �@HLine(_a-�AxesExtendL*_w,0,_w*(1+�AxesExtendR+�AxesExtendL)) ' � (� ) *� �Axes +% � ------------------------------ , � -% � Axes. If axes do not intersect . � the frame then value=0 /% � ------------------------------ 0� _axes,_a,_b,_u,_v 1 �GetFrameCoords(_a,_b,_u,_v) 2� _a*_b<=0 � _u*_v<=0 � 3 �PathBegin(_axes) 4 �@Axes 5 �PathEnd 6� 7 _axes=0 8� 9 =_axes : ;� �Axes(width) < � ------------------------- = � > � Draws axes in the current ? � drawing frame. If axes @ � don't intersect frame A � nothing is drawn B � C � ------------------------- D � _axes E _axes=�Axes F � _axes<>0 � G �Width@(_axes,width) H � �AxesCapPoint<>0 � I; �TriangleCaps@(_axes,1,�AxesCapPoint,�AxesCapWidth) J � K �DrawPath(_axes) L � M� N O!� �AxesWidth=!(�+124)/(1<<16) P Q � �AxesCapPoint=!(�+128)>>16 R S&� �AxesCapWidth=(!(�+128)<<16)>>16 T U!� �AxesCaps(point%,capwidth%) V#!(�+128)=(point%<<16)+capwidth% W� X Y*� �AxesExtend(left%,right%,top%,down%) Z5!(�+132)=left%+(right%<<8)+(top%<<16)+(down%<<24) [� \ ]+� �AxesExtendL=((!(�+132)<<24)>>24)/100 ^+� �AxesExtendR=((!(�+132)<<16)>>24)/100 _*� �AxesExtendT=((!(�+132)<<8)>>24)/100 `'� �AxesExtendB=((!(�+132))>>24)/100 a b� ========== c� 2 Scales d� ========== e f(� �@VScale(ny%,x,index%,tick_length) g� _i%,_h%,_x%,_y%,_length% h4_x%=�Draw_X(x) : _length%=tick_length*�X_Scale iȎ index% � j � -1 : k � 1 : _x%-=_length% l : _x%-=_length%/2 m� n � ny%>0 � o. _h%=�(�Frame_Width/ny%+.5) : _y%=�Frame_y p � _i%=0 � ny% q �MOVE(_x%,_y%) r �DRAW(_x%+_length%,_y%) s _y%+=_h% t � u� v� w x'� �VScale(ny%,x,index%,tick_length) y� _path z � ny%>0 � { �PathBegin(_path) |' �@VScale(ny%,x,index%,tick_length) } �PathEnd ~� _path=0 �� � =_path � �-� �VScale(ny%,x,index%,tick_length,width) �� _path �+_path=�VScale(ny%,x,index%,tick_length) �8� _path<>0 � �Width@(_path,width) : �DrawPath(_path) �� � �(� �@HScale(nx%,y,index%,tick_length) �� _i%,_h%,_x%,_y%,_length% �4_y%=�Draw_Y(y) : _length%=tick_length*�Y_Scale �Ȏ index% � � � -1 : � � 1 : _y%-=_length% � : _y%-=_length%/2 �� � � nx%>0 � �/ _h%=�(�Frame_Height/nx%+.5) : _x%=�Frame_x � � _i%=0 � nx% � �MOVE(_x%,_y%) � �DRAW(_x%,_y%+_length%) � _x%+=_h% � � �� �� � �'� �HScale(nx%,y,index%,tick_length) �� _path � � nx%>0 � � �PathBegin(_path) �' �@HScale(nx%,y,index%,tick_length) � �PathEnd �� � _path=0 �� � =_path � �-� �HScale(nx%,y,index%,tick_length,width) �� _path �+_path=�HScale(nx%,y,index%,tick_length) �8� _path<>0 � �Width@(_path,width) : �DrawPath(_path) �� � �� ========= �� 3 Labels �� ========= � �� �VLabels(ny%,x,index%) �3� _i%,_a,_b,_u,_v,_text$,_y,_h,_X,_w,_H,_dw,_dh � � ny%>0 � �! �GetFrameCoords(_a,_b,_u,_v) � _h=(_v-_u)/ny% � � _i%=0 � ny% � _y=_u+_i%*_h � _text$=�Label(_y) �% �TextSize(_text$,_w,_H,_dw,_dh) � Ȏ index% � � � -1 : _X=x-(_w+_dw) �0 � 1 : _X=x+_dw/2 : � _y>=0 � _X+=_dw/2 � : _X=x � � � �Print(_text$,_X,_y-_dh/2) � � � � �� � �� �HLabels(nx%,y,index%) �6� _i%,_a,_b,_u,_v,_text$,_x,_h,_X,_Y,_w,_H,_dw,_dh � � nx%>0 � �! �GetFrameCoords(_a,_b,_u,_v) � _h=(_b-_a)/nx% � � _i%=0 � nx% � _x=_a+_i%*_h � _text$=�Label(_x) �% �TextSize(_text$,_w,_H,_dw,_dh) � Ȏ index% � � � -1 : _Y=y-1.5*_dh � � 1 : _Y=y+_dh � : _Y=y � � � �Print(_text$,_x-_w/2,_Y) � � � � �� � �� �Label(y) �$� _text$,_i%,_pi$,_font%,_X%,_Y% � _pi$="p" �_i%=�(y/�+.5) � Ȏ � � � � �(y/�-_i%)<1E-6 � Ȏ _i% � � � 0 : _text$="0" � � 1 : _text$=_pi$ � � -1 : _text$="-"+_pi$ � : _text$=�(_i%)+_pi$ � � � � _text$=�(y) �� �=_text$ � �(� �TextSize(text$,� w,� h,� dw,� dh) �)� _font%,_width%,_height%,_X%,_Y%,_i% �"ș "Font_CurrentFont" � _font% �� _i%=1 � �(text$) �A ș "Font_CharBBox",_font%,�(�text$,_i%,1)),1<<4 � ,,,_X%,_Y% � _width%+=_X% �% � _height%>_Y% � _height%=_Y% � � �7 ș "Font_CharBBox",_font%,�("A"),1<<4 � ,,,_X%,_Y% �4 w=(_width%<<8)/�X_Scale : dw=(_X%<<8)/�X_Scale �4 h=(_height%<<8)/�Y_Scale : dh=(_Y%<<8)/�Y_Scale �� � � � �� ============ �� 4 Parameters �� ============ � �� �Scales(Nx%,nx%,Ny%,ny%) �!(�+136)=Nx% : !(�+140)=nx% �!(�+144)=Ny% : !(�+148)=ny% �� � �$� �ScalesLength(Lx%,lx%,Ly%,ly%) !(�+152)=Lx% : !(�+156)=lx% !(�+160)=Ly% : !(�+164)=ly% � � �ScalesWidth(Wx,wx,Wy,wy) 9!(�+168)=�(Wx*(1<<16)+.5) : !(�+172)=�(wx*(1<<16)+.5) 9!(�+176)=�(Wy*(1<<16)+.5) : !(�+180)=�(wy*(1<<16)+.5) � � �HScaleSize(Nx%,nx%) !(�+136)=Nx% : !(�+140)=nx% � � �HLength(Lx%,lx%) !(�+152)=Lx% : !(�+156)=lx% � � �HWidth(Wx,wx) 9!(�+168)=�(Wx*(1<<16)+.5) : !(�+172)=�(wx*(1<<16)+.5) � � �HDiv=!(�+136) � �HSubDiv=!(�+140) $� �HLength=!(�+152)*640/�Y_Scale '� �HSubLength=!(�+156)*640/�Y_Scale � �HWidth=!(�+168)/(1<<16) !� �HSubWidth=!(�+172)/(1<<16) � �VScaleSize(Ny%,ny%) !(�+144)=Ny% : !(�+148)=ny% � � �VLength(Ly%,ly%) !!(�+160)=Ly% : !(�+164)=ly% "� # $� �VWidth(Wy%,wy%) %9!(�+176)=�(Wy*(1<<16)+.5) : !(�+180)=�(wy*(1<<16)+.5) &� ' (� �VDiv=!(�+144) )� �VSubDiv=!(�+148) *$� �VLength=!(�+160)*640/�X_Scale +'� �VSubLength=!(�+164)*640/�X_Scale ,� �VWidth=!(�+176)/(1<<16) -!� �VSubWidth=!(�+180)/(1<<16) . /� ======================== 0� 4 Screen, Frame + Grid 1� ======================== 2 3/� �AxesScale(HDiv%,HSubDiv%,VDiv%,VSubDiv%) 4� _a,_b,_u,_v 5 �GetFrameCoords(_a,_b,_u,_v) 6� _a*_b<=0 � 7) �VScale(VDiv%,0,-1,�VLength,�VWidth) 8) �VScale(VDiv%,0,-1,�VLength,�VWidth) 9 �VLabels(VDiv%,0,-1) :8 �VScale(VSubDiv%*VDiv%,0,-1,�VSubLength,�VSubWidth) ; � <� _u*_v<=0 � =) �HScale(HDiv%,0,-1,�HLength,�HWidth) > �HLabels(HDiv%,0,-1) ?9 �HScale(HSubDiv%*HDiv%,0,-1,�HSubLength,�HSubWidth) @ � A� B C0� �FrameScale(HDiv%,HSubDiv%,VDiv%,VSubDiv%) D!� _a,_b,_u,_v,_a%,_x,_y,_rect E �GetFrameCoords(_a,_b,_u,_v) F@_rect=�Rectangle(_a,_u,_b-_a,_v-_u) : �Width@(_rect,�VWidth) G� _a%=-1 � 1 � 2 H- � _a%=-1 � _x=_a : _y=_u � _x=_b : _y=_v I+ �VScale(VDiv%,_x,_a%,�VLength,�VWidth) J �VLabels(VDiv%,_x,_a%) K: �VScale(VSubDiv%*VDiv%,_x,_a%,�VSubLength,�VSubWidth) L+ �HScale(HDiv%,_y,_a%,�HLength,�HWidth) M �HLabels(HDiv%,_y,_a%) N: �HScale(HSubDiv%*HDiv%,_y,_a%,�HSubLength,�HSubWidth) O� P� Q R*� �Grid(HDiv%,HSubDiv%,VDiv%,VSubDiv%) S� _a,_b,_u,_v T �GetFrameCoords(_a,_b,_u,_v) U' �VScale(VDiv%,_a,-1,_b-_a,�VWidth) V3 �VScale(VSubDiv%*VDiv%,_a,-1,_b-_a,�VSubWidth) W' �HScale(HDiv%,_u,-1,_v-_u,�HWidth) X3 �HScale(HSubDiv%*HDiv%,_u,-1,_v-_u,�HSubWidth) Y/ �VLabels(VDiv%,_a,-1):�VLabels(VDiv%,_b,1) Z/ �HLabels(HDiv%,_u,-1):�HLabels(HDiv%,_v,1) [� \ ]� �Screen(a,b,u,v) ^!�ReduceFrameSize(�ScreenSize) _�FrameCoords(a,b,u,v) `�Axes(1) a� b c� �ScreenL(a,b,u,v) d�Screen(a,b,u,v) e�AxesScale(1,0,1,0) f� g h �
00000000 0d 00 01 22 f4 20 3e 20 44 72 61 77 42 61 73 69 |...". > DrawBasi| 00000010 63 3a 52 65 73 6f 75 72 63 65 73 2e 53 63 61 6c |c:Resources.Scal| 00000020 65 73 0d 00 02 04 0d 00 03 3d f4 20 3d 3d 3d 3d |es.......=. ====| 00000030 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| * 00000060 3d 3d 3d 0d 00 04 05 f4 0d 00 05 24 f4 20 63 6f |===........$. co| 00000070 70 79 72 69 67 68 74 20 4a 6f 65 20 54 61 79 6c |pyright Joe Tayl| 00000080 6f 72 20 4a 75 6e 65 20 31 39 39 34 0d 00 06 05 |or June 1994....| 00000090 f4 0d 00 07 3b f4 20 4e 2e 42 2e 20 46 6f 72 20 |....;. N.B. For | 000000a0 45 52 52 4f 52 20 54 48 52 4f 57 42 41 43 4b 20 |ERROR THROWBACK | 000000b0 74 6f 20 77 6f 72 6b 20 54 68 65 20 66 69 72 73 |to work The firs| 000000c0 74 20 6c 69 6e 65 20 61 62 6f 76 65 0d 00 08 37 |t line above...7| 000000d0 f4 20 20 20 20 20 20 4d 55 53 54 20 68 61 76 65 |. MUST have| 000000e0 20 74 68 65 20 63 6f 72 72 65 63 74 20 70 61 74 | the correct pat| 000000f0 68 6e 61 6d 65 20 6f 66 20 74 68 69 73 20 66 69 |hname of this fi| 00000100 6c 65 2e 0d 00 09 3b f4 20 20 20 20 20 20 49 66 |le....;. If| 00000110 20 79 6f 75 20 6d 6f 76 65 20 74 68 65 20 6c 6f | you move the lo| 00000120 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 69 |cation of the fi| 00000130 6c 65 20 72 65 6d 65 6d 62 65 72 20 74 6f 0d 00 |le remember to..| 00000140 0a 1f f4 20 20 20 20 20 20 61 6c 74 65 72 20 74 |... alter t| 00000150 68 69 73 20 70 61 74 68 6e 61 6d 65 2e 0d 00 0b |his pathname....| 00000160 05 f4 0d 00 0c 3d f4 20 3d 3d 3d 3d 3d 3d 3d 3d |.....=. ========| 00000170 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| * 00000190 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d |===============.| 000001a0 00 0d 04 0d 00 0e 18 f4 20 2a 2a 2a 2a 2a 2a 2a |........ *******| 000001b0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 00 0f 05 f4 |***********.....| 000001c0 0d 00 10 0d f4 20 20 53 43 41 4c 45 53 0d 00 11 |..... SCALES...| 000001d0 05 f4 0d 00 12 18 f4 20 2a 2a 2a 2a 2a 2a 2a 2a |....... ********| 000001e0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 00 13 04 0d 00 |**********......| 000001f0 14 0d f4 20 3d 3d 3d 3d 3d 3d 3d 0d 00 15 0d f4 |... =======.....| 00000200 20 31 20 41 78 65 73 20 0d 00 16 0d f4 20 3d 3d | 1 Axes ..... ==| 00000210 3d 3d 3d 3d 3d 0d 00 17 04 0d 00 18 0c dd 20 f2 |=====......... .| 00000220 40 41 78 65 73 0d 00 19 28 20 f4 20 2d 2d 2d 2d |@Axes...( . ----| 00000230 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00000240 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 00 1a |-------------...| 00000250 06 20 f4 0d 00 1b 27 20 f4 20 53 75 62 70 61 74 |. ....' . Subpat| 00000260 68 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 78 65 |h containing axe| 00000270 73 20 28 69 66 20 74 68 65 79 0d 00 1c 1a 20 f4 |s (if they.... .| 00000280 20 69 6e 74 65 72 73 65 63 74 20 74 68 65 20 66 | intersect the f| 00000290 72 61 6d 65 0d 00 1d 06 20 f4 0d 00 1e 28 20 f4 |rame.... ....( .| 000002a0 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ---------------| 000002b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 000002c0 2d 2d 0d 00 1f 19 20 ea 20 5f 61 2c 5f 62 2c 5f |--.... . _a,_b,_| 000002d0 75 2c 5f 76 2c 5f 77 2c 5f 68 20 0d 00 20 21 20 |u,_v,_w,_h .. ! | 000002e0 f2 47 65 74 46 72 61 6d 65 43 6f 6f 72 64 73 28 |.GetFrameCoords(| 000002f0 5f 61 2c 5f 62 2c 5f 75 2c 5f 76 29 0d 00 21 18 |_a,_b,_u,_v)..!.| 00000300 20 5f 68 3d 5f 76 2d 5f 75 20 3a 20 5f 77 3d 5f | _h=_v-_u : _w=_| 00000310 62 2d 5f 61 0d 00 22 11 20 e7 20 5f 61 2a 5f 62 |b-_a..". . _a*_b| 00000320 3c 3d 30 20 8c 0d 00 23 44 20 20 f2 40 56 4c 69 |<=0 ...#D .@VLi| 00000330 6e 65 28 30 2c 5f 75 2d a4 41 78 65 73 45 78 74 |ne(0,_u-.AxesExt| 00000340 65 6e 64 42 2a 5f 68 2c 5f 68 2a 28 31 2b a4 41 |endB*_h,_h*(1+.A| 00000350 78 65 73 45 78 74 65 6e 64 54 2b a4 41 78 65 73 |xesExtendT+.Axes| 00000360 45 78 74 65 6e 64 42 29 29 0d 00 24 07 20 20 cd |ExtendB))..$. .| 00000370 0d 00 25 11 20 e7 20 5f 75 2a 5f 76 3c 3d 30 20 |..%. . _u*_v<=0 | 00000380 8c 0d 00 26 44 20 20 f2 40 48 4c 69 6e 65 28 5f |...&D .@HLine(_| 00000390 61 2d a4 41 78 65 73 45 78 74 65 6e 64 4c 2a 5f |a-.AxesExtendL*_| 000003a0 77 2c 30 2c 5f 77 2a 28 31 2b a4 41 78 65 73 45 |w,0,_w*(1+.AxesE| 000003b0 78 74 65 6e 64 52 2b a4 41 78 65 73 45 78 74 65 |xtendR+.AxesExte| 000003c0 6e 64 4c 29 29 0d 00 27 07 20 20 cd 0d 00 28 05 |ndL))..'. ...(.| 000003d0 e1 0d 00 29 04 0d 00 2a 0b dd 20 a4 41 78 65 73 |...)...*.. .Axes| 000003e0 0d 00 2b 25 20 f4 20 2d 2d 2d 2d 2d 2d 2d 2d 2d |..+% . ---------| 000003f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00000400 2d 2d 2d 2d 2d 0d 00 2c 06 20 f4 0d 00 2d 25 20 |-----..,. ...-% | 00000410 f4 20 41 78 65 73 2e 20 49 66 20 61 78 65 73 20 |. Axes. If axes | 00000420 64 6f 20 6e 6f 74 20 69 6e 74 65 72 73 65 63 74 |do not intersect| 00000430 0d 00 2e 1d 20 f4 20 74 68 65 20 66 72 61 6d 65 |.... . the frame| 00000440 20 74 68 65 6e 20 76 61 6c 75 65 3d 30 0d 00 2f | then value=0../| 00000450 25 20 f4 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |% . ------------| 00000460 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00000470 2d 2d 0d 00 30 17 ea 20 5f 61 78 65 73 2c 5f 61 |--..0.. _axes,_a| 00000480 2c 5f 62 2c 5f 75 2c 5f 76 0d 00 31 20 f2 47 65 |,_b,_u,_v..1 .Ge| 00000490 74 46 72 61 6d 65 43 6f 6f 72 64 73 28 5f 61 2c |tFrameCoords(_a,| 000004a0 5f 62 2c 5f 75 2c 5f 76 29 0d 00 32 1b e7 20 5f |_b,_u,_v)..2.. _| 000004b0 61 2a 5f 62 3c 3d 30 20 84 20 5f 75 2a 5f 76 3c |a*_b<=0 . _u*_v<| 000004c0 3d 30 20 8c 0d 00 33 16 20 f2 50 61 74 68 42 65 |=0 ...3. .PathBe| 000004d0 67 69 6e 28 5f 61 78 65 73 29 0d 00 34 0b 20 f2 |gin(_axes)..4. .| 000004e0 40 41 78 65 73 0d 00 35 0d 20 f2 50 61 74 68 45 |@Axes..5. .PathE| 000004f0 6e 64 0d 00 36 05 cc 0d 00 37 0c 20 5f 61 78 65 |nd..6....7. _axe| 00000500 73 3d 30 0d 00 38 05 cd 0d 00 39 0a 3d 5f 61 78 |s=0..8....9.=_ax| 00000510 65 73 0d 00 3a 04 0d 00 3b 12 dd 20 f2 41 78 65 |es..:...;.. .Axe| 00000520 73 28 77 69 64 74 68 29 0d 00 3c 20 20 f4 20 2d |s(width)..< . -| 00000530 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00000540 2d 2d 2d 2d 2d 2d 2d 2d 0d 00 3d 06 20 f4 0d 00 |--------..=. ...| 00000550 3e 20 20 f4 20 44 72 61 77 73 20 61 78 65 73 20 |> . Draws axes | 00000560 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 0d 00 |in the current..| 00000570 3f 1d 20 f4 20 64 72 61 77 69 6e 67 20 66 72 61 |?. . drawing fra| 00000580 6d 65 2e 20 49 66 20 61 78 65 73 0d 00 40 1c 20 |me. If axes..@. | 00000590 f4 20 64 6f 6e 27 74 20 69 6e 74 65 72 73 65 63 |. don't intersec| 000005a0 74 20 66 72 61 6d 65 0d 00 41 17 20 f4 20 6e 6f |t frame..A. . no| 000005b0 74 68 69 6e 67 20 69 73 20 64 72 61 77 6e 0d 00 |thing is drawn..| 000005c0 42 06 20 f4 0d 00 43 20 20 f4 20 2d 2d 2d 2d 2d |B. ...C . -----| 000005d0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 000005e0 2d 2d 2d 2d 0d 00 44 0c 20 ea 20 5f 61 78 65 73 |----..D. . _axes| 000005f0 0d 00 45 10 20 5f 61 78 65 73 3d a4 41 78 65 73 |..E. _axes=.Axes| 00000600 0d 00 46 11 20 e7 20 5f 61 78 65 73 3c 3e 30 20 |..F. . _axes<>0 | 00000610 8c 0d 00 47 1b 20 20 20 f2 57 69 64 74 68 40 28 |...G. .Width@(| 00000620 5f 61 78 65 73 2c 77 69 64 74 68 29 0d 00 48 1c |_axes,width)..H.| 00000630 20 20 20 e7 20 20 a4 41 78 65 73 43 61 70 50 6f | . .AxesCapPo| 00000640 69 6e 74 3c 3e 30 20 8c 0d 00 49 3b 20 20 20 20 |int<>0 ...I; | 00000650 f2 54 72 69 61 6e 67 6c 65 43 61 70 73 40 28 5f |.TriangleCaps@(_| 00000660 61 78 65 73 2c 31 2c a4 41 78 65 73 43 61 70 50 |axes,1,.AxesCapP| 00000670 6f 69 6e 74 2c a4 41 78 65 73 43 61 70 57 69 64 |oint,.AxesCapWid| 00000680 74 68 29 0d 00 4a 09 20 20 20 20 cd 0d 00 4b 17 |th)..J. ...K.| 00000690 20 20 20 f2 44 72 61 77 50 61 74 68 28 5f 61 78 | .DrawPath(_ax| 000006a0 65 73 29 0d 00 4c 08 20 20 20 cd 0d 00 4d 05 e1 |es)..L. ...M..| 000006b0 0d 00 4e 04 0d 00 4f 21 dd 20 a4 41 78 65 73 57 |..N...O!. .AxesW| 000006c0 69 64 74 68 3d 21 28 93 2b 31 32 34 29 2f 28 31 |idth=!(.+124)/(1| 000006d0 3c 3c 31 36 29 0d 00 50 04 0d 00 51 20 dd 20 a4 |<<16)..P...Q . .| 000006e0 41 78 65 73 43 61 70 50 6f 69 6e 74 3d 21 28 93 |AxesCapPoint=!(.| 000006f0 2b 31 32 38 29 3e 3e 31 36 0d 00 52 04 0d 00 53 |+128)>>16..R...S| 00000700 26 dd 20 a4 41 78 65 73 43 61 70 57 69 64 74 68 |&. .AxesCapWidth| 00000710 3d 28 21 28 93 2b 31 32 38 29 3c 3c 31 36 29 3e |=(!(.+128)<<16)>| 00000720 3e 31 36 0d 00 54 04 0d 00 55 21 dd 20 f2 41 78 |>16..T...U!. .Ax| 00000730 65 73 43 61 70 73 28 70 6f 69 6e 74 25 2c 63 61 |esCaps(point%,ca| 00000740 70 77 69 64 74 68 25 29 0d 00 56 23 21 28 93 2b |pwidth%)..V#!(.+| 00000750 31 32 38 29 3d 28 70 6f 69 6e 74 25 3c 3c 31 36 |128)=(point%<<16| 00000760 29 2b 63 61 70 77 69 64 74 68 25 0d 00 57 05 e1 |)+capwidth%..W..| 00000770 0d 00 58 04 0d 00 59 2a dd 20 f2 41 78 65 73 45 |..X...Y*. .AxesE| 00000780 78 74 65 6e 64 28 6c 65 66 74 25 2c 72 69 67 68 |xtend(left%,righ| 00000790 74 25 2c 74 6f 70 25 2c 64 6f 77 6e 25 29 0d 00 |t%,top%,down%)..| 000007a0 5a 35 21 28 93 2b 31 33 32 29 3d 6c 65 66 74 25 |Z5!(.+132)=left%| 000007b0 2b 28 72 69 67 68 74 25 3c 3c 38 29 2b 28 74 6f |+(right%<<8)+(to| 000007c0 70 25 3c 3c 31 36 29 2b 28 64 6f 77 6e 25 3c 3c |p%<<16)+(down%<<| 000007d0 32 34 29 0d 00 5b 05 e1 0d 00 5c 04 0d 00 5d 2b |24)..[....\...]+| 000007e0 dd 20 a4 41 78 65 73 45 78 74 65 6e 64 4c 3d 28 |. .AxesExtendL=(| 000007f0 28 21 28 93 2b 31 33 32 29 3c 3c 32 34 29 3e 3e |(!(.+132)<<24)>>| 00000800 32 34 29 2f 31 30 30 0d 00 5e 2b dd 20 a4 41 78 |24)/100..^+. .Ax| 00000810 65 73 45 78 74 65 6e 64 52 3d 28 28 21 28 93 2b |esExtendR=((!(.+| 00000820 31 33 32 29 3c 3c 31 36 29 3e 3e 32 34 29 2f 31 |132)<<16)>>24)/1| 00000830 30 30 0d 00 5f 2a dd 20 a4 41 78 65 73 45 78 74 |00.._*. .AxesExt| 00000840 65 6e 64 54 3d 28 28 21 28 93 2b 31 33 32 29 3c |endT=((!(.+132)<| 00000850 3c 38 29 3e 3e 32 34 29 2f 31 30 30 0d 00 60 27 |<8)>>24)/100..`'| 00000860 dd 20 a4 41 78 65 73 45 78 74 65 6e 64 42 3d 28 |. .AxesExtendB=(| 00000870 28 21 28 93 2b 31 33 32 29 29 3e 3e 32 34 29 2f |(!(.+132))>>24)/| 00000880 31 30 30 0d 00 61 04 0d 00 62 10 f4 20 3d 3d 3d |100..a...b.. ===| 00000890 3d 3d 3d 3d 3d 3d 3d 0d 00 63 0e f4 20 32 20 53 |=======..c.. 2 S| 000008a0 63 61 6c 65 73 0d 00 64 10 f4 20 3d 3d 3d 3d 3d |cales..d.. =====| 000008b0 3d 3d 3d 3d 3d 0d 00 65 04 0d 00 66 28 dd 20 f2 |=====..e...f(. .| 000008c0 40 56 53 63 61 6c 65 28 6e 79 25 2c 78 2c 69 6e |@VScale(ny%,x,in| 000008d0 64 65 78 25 2c 74 69 63 6b 5f 6c 65 6e 67 74 68 |dex%,tick_length| 000008e0 29 0d 00 67 1e ea 20 5f 69 25 2c 5f 68 25 2c 5f |)..g.. _i%,_h%,_| 000008f0 78 25 2c 5f 79 25 2c 5f 6c 65 6e 67 74 68 25 0d |x%,_y%,_length%.| 00000900 00 68 34 5f 78 25 3d a4 44 72 61 77 5f 58 28 78 |.h4_x%=.Draw_X(x| 00000910 29 20 20 3a 20 5f 6c 65 6e 67 74 68 25 3d 74 69 |) : _length%=ti| 00000920 63 6b 5f 6c 65 6e 67 74 68 2a a4 58 5f 53 63 61 |ck_length*.X_Sca| 00000930 6c 65 20 0d 00 69 0f c8 8e 20 69 6e 64 65 78 25 |le ..i... index%| 00000940 20 ca 0d 00 6a 0e 20 c9 20 2d 31 20 20 20 20 3a | ...j. . -1 :| 00000950 0d 00 6b 1c 20 c9 20 20 31 20 20 20 20 3a 20 5f |..k. . 1 : _| 00000960 78 25 2d 3d 5f 6c 65 6e 67 74 68 25 0d 00 6c 19 |x%-=_length%..l.| 00000970 20 7f 20 20 3a 20 5f 78 25 2d 3d 5f 6c 65 6e 67 | . : _x%-=_leng| 00000980 74 68 25 2f 32 0d 00 6d 05 cb 0d 00 6e 0d e7 20 |th%/2..m....n.. | 00000990 6e 79 25 3e 30 20 8c 0d 00 6f 2e 20 5f 68 25 3d |ny%>0 ...o. _h%=| 000009a0 a8 28 a4 46 72 61 6d 65 5f 57 69 64 74 68 2f 6e |.(.Frame_Width/n| 000009b0 79 25 2b 2e 35 29 20 3a 20 5f 79 25 3d a4 46 72 |y%+.5) : _y%=.Fr| 000009c0 61 6d 65 5f 79 0d 00 70 12 20 e3 20 5f 69 25 3d |ame_y..p. . _i%=| 000009d0 30 20 b8 20 6e 79 25 0d 00 71 14 20 20 f2 4d 4f |0 . ny%..q. .MO| 000009e0 56 45 28 5f 78 25 2c 5f 79 25 29 0d 00 72 1d 20 |VE(_x%,_y%)..r. | 000009f0 20 f2 44 52 41 57 28 5f 78 25 2b 5f 6c 65 6e 67 | .DRAW(_x%+_leng| 00000a00 74 68 25 2c 5f 79 25 29 0d 00 73 0e 20 20 5f 79 |th%,_y%)..s. _y| 00000a10 25 2b 3d 5f 68 25 0d 00 74 07 20 20 ed 0d 00 75 |%+=_h%..t. ...u| 00000a20 05 cd 0d 00 76 05 e1 0d 00 77 04 0d 00 78 27 dd |....v....w...x'.| 00000a30 20 a4 56 53 63 61 6c 65 28 6e 79 25 2c 78 2c 69 | .VScale(ny%,x,i| 00000a40 6e 64 65 78 25 2c 74 69 63 6b 5f 6c 65 6e 67 74 |ndex%,tick_lengt| 00000a50 68 29 0d 00 79 0b ea 20 5f 70 61 74 68 0d 00 7a |h)..y.. _path..z| 00000a60 0d e7 20 6e 79 25 3e 30 20 8c 0d 00 7b 16 20 f2 |.. ny%>0 ...{. .| 00000a70 50 61 74 68 42 65 67 69 6e 28 5f 70 61 74 68 29 |PathBegin(_path)| 00000a80 0d 00 7c 27 20 f2 40 56 53 63 61 6c 65 28 6e 79 |..|' .@VScale(ny| 00000a90 25 2c 78 2c 69 6e 64 65 78 25 2c 74 69 63 6b 5f |%,x,index%,tick_| 00000aa0 6c 65 6e 67 74 68 29 0d 00 7d 0d 20 f2 50 61 74 |length)..}. .Pat| 00000ab0 68 45 6e 64 0d 00 7e 05 cc 0d 00 7f 0c 20 5f 70 |hEnd..~...... _p| 00000ac0 61 74 68 3d 30 0d 00 80 05 cd 0d 00 81 0a 3d 5f |ath=0.........=_| 00000ad0 70 61 74 68 0d 00 82 04 0d 00 83 2d dd 20 f2 56 |path.......-. .V| 00000ae0 53 63 61 6c 65 28 6e 79 25 2c 78 2c 69 6e 64 65 |Scale(ny%,x,inde| 00000af0 78 25 2c 74 69 63 6b 5f 6c 65 6e 67 74 68 2c 77 |x%,tick_length,w| 00000b00 69 64 74 68 29 0d 00 84 0b ea 20 5f 70 61 74 68 |idth)..... _path| 00000b10 0d 00 85 2b 5f 70 61 74 68 3d a4 56 53 63 61 6c |...+_path=.VScal| 00000b20 65 28 6e 79 25 2c 78 2c 69 6e 64 65 78 25 2c 74 |e(ny%,x,index%,t| 00000b30 69 63 6b 5f 6c 65 6e 67 74 68 29 0d 00 86 38 e7 |ick_length)...8.| 00000b40 20 5f 70 61 74 68 3c 3e 30 20 8c 20 f2 57 69 64 | _path<>0 . .Wid| 00000b50 74 68 40 28 5f 70 61 74 68 2c 77 69 64 74 68 29 |th@(_path,width)| 00000b60 20 3a 20 f2 44 72 61 77 50 61 74 68 28 5f 70 61 | : .DrawPath(_pa| 00000b70 74 68 29 0d 00 87 05 e1 0d 00 88 04 0d 00 89 28 |th)............(| 00000b80 dd 20 f2 40 48 53 63 61 6c 65 28 6e 78 25 2c 79 |. .@HScale(nx%,y| 00000b90 2c 69 6e 64 65 78 25 2c 74 69 63 6b 5f 6c 65 6e |,index%,tick_len| 00000ba0 67 74 68 29 0d 00 8a 1e ea 20 5f 69 25 2c 5f 68 |gth)..... _i%,_h| 00000bb0 25 2c 5f 78 25 2c 5f 79 25 2c 5f 6c 65 6e 67 74 |%,_x%,_y%,_lengt| 00000bc0 68 25 0d 00 8b 34 5f 79 25 3d a4 44 72 61 77 5f |h%...4_y%=.Draw_| 00000bd0 59 28 79 29 20 20 3a 20 5f 6c 65 6e 67 74 68 25 |Y(y) : _length%| 00000be0 3d 74 69 63 6b 5f 6c 65 6e 67 74 68 2a a4 59 5f |=tick_length*.Y_| 00000bf0 53 63 61 6c 65 20 0d 00 8c 0f c8 8e 20 69 6e 64 |Scale ...... ind| 00000c00 65 78 25 20 ca 0d 00 8d 0e 20 c9 20 2d 31 20 20 |ex% ..... . -1 | 00000c10 20 20 3a 0d 00 8e 1c 20 c9 20 20 31 20 20 20 20 | :.... . 1 | 00000c20 3a 20 5f 79 25 2d 3d 5f 6c 65 6e 67 74 68 25 0d |: _y%-=_length%.| 00000c30 00 8f 19 20 7f 20 20 3a 20 5f 79 25 2d 3d 5f 6c |... . : _y%-=_l| 00000c40 65 6e 67 74 68 25 2f 32 0d 00 90 05 cb 0d 00 91 |ength%/2........| 00000c50 0d e7 20 6e 78 25 3e 30 20 8c 0d 00 92 2f 20 5f |.. nx%>0 ..../ _| 00000c60 68 25 3d a8 28 a4 46 72 61 6d 65 5f 48 65 69 67 |h%=.(.Frame_Heig| 00000c70 68 74 2f 6e 78 25 2b 2e 35 29 20 3a 20 5f 78 25 |ht/nx%+.5) : _x%| 00000c80 3d a4 46 72 61 6d 65 5f 78 0d 00 93 12 20 e3 20 |=.Frame_x.... . | 00000c90 5f 69 25 3d 30 20 b8 20 6e 78 25 0d 00 94 14 20 |_i%=0 . nx%.... | 00000ca0 20 f2 4d 4f 56 45 28 5f 78 25 2c 5f 79 25 29 0d | .MOVE(_x%,_y%).| 00000cb0 00 95 1d 20 20 f2 44 52 41 57 28 5f 78 25 2c 5f |... .DRAW(_x%,_| 00000cc0 79 25 2b 5f 6c 65 6e 67 74 68 25 29 0d 00 96 0e |y%+_length%)....| 00000cd0 20 20 5f 78 25 2b 3d 5f 68 25 0d 00 97 07 20 20 | _x%+=_h%.... | 00000ce0 ed 0d 00 98 05 cd 0d 00 99 05 e1 0d 00 9a 04 0d |................| 00000cf0 00 9b 27 dd 20 a4 48 53 63 61 6c 65 28 6e 78 25 |..'. .HScale(nx%| 00000d00 2c 79 2c 69 6e 64 65 78 25 2c 74 69 63 6b 5f 6c |,y,index%,tick_l| 00000d10 65 6e 67 74 68 29 0d 00 9c 0b ea 20 5f 70 61 74 |ength)..... _pat| 00000d20 68 0d 00 9d 0d e7 20 6e 78 25 3e 30 20 8c 0d 00 |h..... nx%>0 ...| 00000d30 9e 16 20 f2 50 61 74 68 42 65 67 69 6e 28 5f 70 |.. .PathBegin(_p| 00000d40 61 74 68 29 0d 00 9f 27 20 f2 40 48 53 63 61 6c |ath)...' .@HScal| 00000d50 65 28 6e 78 25 2c 79 2c 69 6e 64 65 78 25 2c 74 |e(nx%,y,index%,t| 00000d60 69 63 6b 5f 6c 65 6e 67 74 68 29 0d 00 a0 0d 20 |ick_length).... | 00000d70 f2 50 61 74 68 45 6e 64 0d 00 a1 05 cc 0d 00 a2 |.PathEnd........| 00000d80 0c 20 5f 70 61 74 68 3d 30 0d 00 a3 05 cd 0d 00 |. _path=0.......| 00000d90 a4 0a 3d 5f 70 61 74 68 0d 00 a5 04 0d 00 a6 2d |..=_path.......-| 00000da0 dd 20 f2 48 53 63 61 6c 65 28 6e 78 25 2c 79 2c |. .HScale(nx%,y,| 00000db0 69 6e 64 65 78 25 2c 74 69 63 6b 5f 6c 65 6e 67 |index%,tick_leng| 00000dc0 74 68 2c 77 69 64 74 68 29 0d 00 a7 0b ea 20 5f |th,width)..... _| 00000dd0 70 61 74 68 0d 00 a8 2b 5f 70 61 74 68 3d a4 48 |path...+_path=.H| 00000de0 53 63 61 6c 65 28 6e 78 25 2c 79 2c 69 6e 64 65 |Scale(nx%,y,inde| 00000df0 78 25 2c 74 69 63 6b 5f 6c 65 6e 67 74 68 29 0d |x%,tick_length).| 00000e00 00 a9 38 e7 20 5f 70 61 74 68 3c 3e 30 20 8c 20 |..8. _path<>0 . | 00000e10 f2 57 69 64 74 68 40 28 5f 70 61 74 68 2c 77 69 |.Width@(_path,wi| 00000e20 64 74 68 29 20 3a 20 f2 44 72 61 77 50 61 74 68 |dth) : .DrawPath| 00000e30 28 5f 70 61 74 68 29 0d 00 aa 05 e1 0d 00 ab 04 |(_path).........| 00000e40 0d 00 ac 0f f4 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d |..... =========.| 00000e50 00 ad 0e f4 20 33 20 4c 61 62 65 6c 73 0d 00 ae |.... 3 Labels...| 00000e60 0f f4 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 00 af 04 |.. =========....| 00000e70 0d 00 b0 1c dd 20 f2 56 4c 61 62 65 6c 73 28 6e |..... .VLabels(n| 00000e80 79 25 2c 78 2c 69 6e 64 65 78 25 29 0d 00 b1 33 |y%,x,index%)...3| 00000e90 ea 20 5f 69 25 2c 5f 61 2c 5f 62 2c 5f 75 2c 5f |. _i%,_a,_b,_u,_| 00000ea0 76 2c 5f 74 65 78 74 24 2c 5f 79 2c 5f 68 2c 5f |v,_text$,_y,_h,_| 00000eb0 58 2c 5f 77 2c 5f 48 2c 5f 64 77 2c 5f 64 68 0d |X,_w,_H,_dw,_dh.| 00000ec0 00 b2 0d e7 20 6e 79 25 3e 30 20 8c 0d 00 b3 21 |.... ny%>0 ....!| 00000ed0 20 f2 47 65 74 46 72 61 6d 65 43 6f 6f 72 64 73 | .GetFrameCoords| 00000ee0 28 5f 61 2c 5f 62 2c 5f 75 2c 5f 76 29 0d 00 b4 |(_a,_b,_u,_v)...| 00000ef0 14 20 5f 68 3d 28 5f 76 2d 5f 75 29 2f 6e 79 25 |. _h=(_v-_u)/ny%| 00000f00 20 0d 00 b5 12 20 e3 20 5f 69 25 3d 30 20 b8 20 | .... . _i%=0 . | 00000f10 6e 79 25 0d 00 b6 12 20 20 5f 79 3d 5f 75 2b 5f |ny%.... _y=_u+_| 00000f20 69 25 2a 5f 68 0d 00 b7 17 20 20 5f 74 65 78 74 |i%*_h.... _text| 00000f30 24 3d a4 4c 61 62 65 6c 28 5f 79 29 0d 00 b8 25 |$=.Label(_y)...%| 00000f40 20 20 f2 54 65 78 74 53 69 7a 65 28 5f 74 65 78 | .TextSize(_tex| 00000f50 74 24 2c 5f 77 2c 5f 48 2c 5f 64 77 2c 5f 64 68 |t$,_w,_H,_dw,_dh| 00000f60 29 0d 00 b9 11 20 20 c8 8e 20 69 6e 64 65 78 25 |).... .. index%| 00000f70 20 ca 0d 00 ba 1d 20 20 20 c9 20 2d 31 20 20 20 | ..... . -1 | 00000f80 3a 20 5f 58 3d 78 2d 28 5f 77 2b 5f 64 77 29 0d |: _X=x-(_w+_dw).| 00000f90 00 bb 30 20 20 20 c9 20 31 20 20 20 20 3a 20 5f |..0 . 1 : _| 00000fa0 58 3d 78 2b 5f 64 77 2f 32 20 3a 20 e7 20 5f 79 |X=x+_dw/2 : . _y| 00000fb0 3e 3d 30 20 8c 20 5f 58 2b 3d 5f 64 77 2f 32 0d |>=0 . _X+=_dw/2.| 00000fc0 00 bc 0f 20 20 20 7f 20 3a 20 5f 58 3d 78 0d 00 |... . : _X=x..| 00000fd0 bd 07 20 20 cb 0d 00 be 20 20 20 f2 50 72 69 6e |.. .... .Prin| 00000fe0 74 28 5f 74 65 78 74 24 2c 5f 58 2c 5f 79 2d 5f |t(_text$,_X,_y-_| 00000ff0 64 68 2f 32 29 0d 00 bf 07 20 20 ed 0d 00 c0 06 |dh/2).... .....| 00001000 20 cd 0d 00 c1 05 e1 0d 00 c2 04 0d 00 c3 1c dd | ...............| 00001010 20 f2 48 4c 61 62 65 6c 73 28 6e 78 25 2c 79 2c | .HLabels(nx%,y,| 00001020 69 6e 64 65 78 25 29 0d 00 c4 36 ea 20 5f 69 25 |index%)...6. _i%| 00001030 2c 5f 61 2c 5f 62 2c 5f 75 2c 5f 76 2c 5f 74 65 |,_a,_b,_u,_v,_te| 00001040 78 74 24 2c 5f 78 2c 5f 68 2c 5f 58 2c 5f 59 2c |xt$,_x,_h,_X,_Y,| 00001050 5f 77 2c 5f 48 2c 5f 64 77 2c 5f 64 68 0d 00 c5 |_w,_H,_dw,_dh...| 00001060 0d e7 20 6e 78 25 3e 30 20 8c 0d 00 c6 21 20 f2 |.. nx%>0 ....! .| 00001070 47 65 74 46 72 61 6d 65 43 6f 6f 72 64 73 28 5f |GetFrameCoords(_| 00001080 61 2c 5f 62 2c 5f 75 2c 5f 76 29 0d 00 c7 13 20 |a,_b,_u,_v).... | 00001090 5f 68 3d 28 5f 62 2d 5f 61 29 2f 6e 78 25 0d 00 |_h=(_b-_a)/nx%..| 000010a0 c8 12 20 e3 20 5f 69 25 3d 30 20 b8 20 6e 78 25 |.. . _i%=0 . nx%| 000010b0 0d 00 c9 12 20 20 5f 78 3d 5f 61 2b 5f 69 25 2a |.... _x=_a+_i%*| 000010c0 5f 68 0d 00 ca 17 20 20 5f 74 65 78 74 24 3d a4 |_h.... _text$=.| 000010d0 4c 61 62 65 6c 28 5f 78 29 0d 00 cb 25 20 20 f2 |Label(_x)...% .| 000010e0 54 65 78 74 53 69 7a 65 28 5f 74 65 78 74 24 2c |TextSize(_text$,| 000010f0 5f 77 2c 5f 48 2c 5f 64 77 2c 5f 64 68 29 0d 00 |_w,_H,_dw,_dh)..| 00001100 cc 11 20 20 c8 8e 20 69 6e 64 65 78 25 20 ca 0d |.. .. index% ..| 00001110 00 cd 1c 20 20 20 c9 20 2d 31 20 20 20 3a 20 5f |... . -1 : _| 00001120 59 3d 79 2d 31 2e 35 2a 5f 64 68 0d 00 ce 18 20 |Y=y-1.5*_dh.... | 00001130 20 20 c9 20 31 20 20 20 20 3a 20 5f 59 3d 79 2b | . 1 : _Y=y+| 00001140 5f 64 68 0d 00 cf 0f 20 20 20 7f 20 3a 20 5f 59 |_dh.... . : _Y| 00001150 3d 79 0d 00 d0 07 20 20 cb 0d 00 d1 1f 20 20 f2 |=y.... ..... .| 00001160 50 72 69 6e 74 28 5f 74 65 78 74 24 2c 5f 78 2d |Print(_text$,_x-| 00001170 5f 77 2f 32 2c 5f 59 29 0d 00 d2 07 20 20 ed 0d |_w/2,_Y).... ..| 00001180 00 d3 06 20 cd 0d 00 d4 05 e1 0d 00 d5 04 0d 00 |... ............| 00001190 d6 0f dd 20 a4 4c 61 62 65 6c 28 79 29 0d 00 d7 |... .Label(y)...| 000011a0 24 ea 20 5f 74 65 78 74 24 2c 5f 69 25 2c 5f 70 |$. _text$,_i%,_p| 000011b0 69 24 2c 5f 66 6f 6e 74 25 2c 5f 58 25 2c 5f 59 |i$,_font%,_X%,_Y| 000011c0 25 0d 00 d8 0d 20 5f 70 69 24 3d 22 70 22 0d 00 |%.... _pi$="p"..| 000011d0 d9 11 5f 69 25 3d a8 28 79 2f af 2b 2e 35 29 0d |.._i%=.(y/.+.5).| 000011e0 00 da 0a c8 8e 20 b9 20 ca 0d 00 db 16 20 c9 20 |..... . ..... . | 000011f0 94 28 79 2f af 2d 5f 69 25 29 3c 31 45 2d 36 0d |.(y/.-_i%)<1E-6.| 00001200 00 dc 0d 20 c8 8e 20 5f 69 25 20 ca 0d 00 dd 19 |... .. _i% .....| 00001210 20 20 c9 20 30 20 20 20 20 3a 20 5f 74 65 78 74 | . 0 : _text| 00001220 24 3d 22 30 22 0d 00 de 1a 20 20 c9 20 31 20 20 |$="0".... . 1 | 00001230 20 20 3a 20 5f 74 65 78 74 24 3d 5f 70 69 24 0d | : _text$=_pi$.| 00001240 00 df 1e 20 20 c9 20 2d 31 20 20 20 3a 20 5f 74 |... . -1 : _t| 00001250 65 78 74 24 3d 22 2d 22 2b 5f 70 69 24 0d 00 e0 |ext$="-"+_pi$...| 00001260 1c 20 20 7f 20 3a 20 5f 74 65 78 74 24 3d c3 28 |. . : _text$=.(| 00001270 5f 69 25 29 2b 5f 70 69 24 0d 00 e1 06 20 cb 0d |_i%)+_pi$.... ..| 00001280 00 e2 06 20 7f 0d 00 e3 10 20 5f 74 65 78 74 24 |... ..... _text$| 00001290 3d c3 28 79 29 0d 00 e4 05 cb 0d 00 e5 0b 3d 5f |=.(y).........=_| 000012a0 74 65 78 74 24 0d 00 e6 04 0d 00 e7 28 dd 20 f2 |text$.......(. .| 000012b0 54 65 78 74 53 69 7a 65 28 74 65 78 74 24 2c f8 |TextSize(text$,.| 000012c0 20 77 2c f8 20 68 2c f8 20 64 77 2c f8 20 64 68 | w,. h,. dw,. dh| 000012d0 29 0d 00 e8 29 ea 20 5f 66 6f 6e 74 25 2c 5f 77 |)...). _font%,_w| 000012e0 69 64 74 68 25 2c 5f 68 65 69 67 68 74 25 2c 5f |idth%,_height%,_| 000012f0 58 25 2c 5f 59 25 2c 5f 69 25 0d 00 e9 22 c8 99 |X%,_Y%,_i%..."..| 00001300 20 22 46 6f 6e 74 5f 43 75 72 72 65 6e 74 46 6f | "Font_CurrentFo| 00001310 6e 74 22 20 b8 20 5f 66 6f 6e 74 25 0d 00 ea 17 |nt" . _font%....| 00001320 e3 20 5f 69 25 3d 31 20 b8 20 a9 28 74 65 78 74 |. _i%=1 . .(text| 00001330 24 29 20 0d 00 eb 41 20 c8 99 20 22 46 6f 6e 74 |$) ...A .. "Font| 00001340 5f 43 68 61 72 42 42 6f 78 22 2c 5f 66 6f 6e 74 |_CharBBox",_font| 00001350 25 2c 97 28 c1 74 65 78 74 24 2c 5f 69 25 2c 31 |%,.(.text$,_i%,1| 00001360 29 29 2c 31 3c 3c 34 20 b8 20 2c 2c 2c 5f 58 25 |)),1<<4 . ,,,_X%| 00001370 2c 5f 59 25 0d 00 ec 11 20 5f 77 69 64 74 68 25 |,_Y%.... _width%| 00001380 2b 3d 5f 58 25 0d 00 ed 25 20 e7 20 5f 68 65 69 |+=_X%...% . _hei| 00001390 67 68 74 25 3e 5f 59 25 20 8c 20 5f 68 65 69 67 |ght%>_Y% . _heig| 000013a0 68 74 25 3d 5f 59 25 20 20 20 0d 00 ee 07 20 ed |ht%=_Y% .... .| 000013b0 20 0d 00 ef 37 20 c8 99 20 22 46 6f 6e 74 5f 43 | ...7 .. "Font_C| 000013c0 68 61 72 42 42 6f 78 22 2c 5f 66 6f 6e 74 25 2c |harBBox",_font%,| 000013d0 97 28 22 41 22 29 2c 31 3c 3c 34 20 b8 20 2c 2c |.("A"),1<<4 . ,,| 000013e0 2c 5f 58 25 2c 5f 59 25 0d 00 f0 34 20 77 3d 28 |,_X%,_Y%...4 w=(| 000013f0 5f 77 69 64 74 68 25 3c 3c 38 29 2f a4 58 5f 53 |_width%<<8)/.X_S| 00001400 63 61 6c 65 20 20 3a 20 64 77 3d 28 5f 58 25 3c |cale : dw=(_X%<| 00001410 3c 38 29 2f a4 58 5f 53 63 61 6c 65 0d 00 f1 34 |<8)/.X_Scale...4| 00001420 20 68 3d 28 5f 68 65 69 67 68 74 25 3c 3c 38 29 | h=(_height%<<8)| 00001430 2f a4 59 5f 53 63 61 6c 65 20 3a 20 64 68 3d 28 |/.Y_Scale : dh=(| 00001440 5f 59 25 3c 3c 38 29 2f a4 59 5f 53 63 61 6c 65 |_Y%<<8)/.Y_Scale| 00001450 0d 00 f2 05 e1 0d 00 f3 04 0d 00 f4 04 0d 00 f5 |................| 00001460 04 0d 00 f6 12 f4 20 3d 3d 3d 3d 3d 3d 3d 3d 3d |...... =========| 00001470 3d 3d 3d 0d 00 f7 12 f4 20 34 20 50 61 72 61 6d |===..... 4 Param| 00001480 65 74 65 72 73 0d 00 f8 12 f4 20 3d 3d 3d 3d 3d |eters..... =====| 00001490 3d 3d 3d 3d 3d 3d 3d 0d 00 f9 04 0d 00 fa 1e dd |=======.........| 000014a0 20 f2 53 63 61 6c 65 73 28 4e 78 25 2c 6e 78 25 | .Scales(Nx%,nx%| 000014b0 2c 4e 79 25 2c 6e 79 25 29 0d 00 fb 1f 21 28 93 |,Ny%,ny%)....!(.| 000014c0 2b 31 33 36 29 3d 4e 78 25 20 3a 20 21 28 93 2b |+136)=Nx% : !(.+| 000014d0 31 34 30 29 3d 6e 78 25 0d 00 fc 1f 21 28 93 2b |140)=nx%....!(.+| 000014e0 31 34 34 29 3d 4e 79 25 20 3a 20 21 28 93 2b 31 |144)=Ny% : !(.+1| 000014f0 34 38 29 3d 6e 79 25 0d 00 fd 05 e1 0d 00 fe 04 |48)=ny%.........| 00001500 0d 00 ff 24 dd 20 f2 53 63 61 6c 65 73 4c 65 6e |...$. .ScalesLen| 00001510 67 74 68 28 4c 78 25 2c 6c 78 25 2c 4c 79 25 2c |gth(Lx%,lx%,Ly%,| 00001520 6c 79 25 29 0d 01 00 1f 21 28 93 2b 31 35 32 29 |ly%)....!(.+152)| 00001530 3d 4c 78 25 20 3a 20 21 28 93 2b 31 35 36 29 3d |=Lx% : !(.+156)=| 00001540 6c 78 25 0d 01 01 1f 21 28 93 2b 31 36 30 29 3d |lx%....!(.+160)=| 00001550 4c 79 25 20 3a 20 21 28 93 2b 31 36 34 29 3d 6c |Ly% : !(.+164)=l| 00001560 79 25 0d 01 02 05 e1 0d 01 03 04 0d 01 04 1f dd |y%..............| 00001570 20 f2 53 63 61 6c 65 73 57 69 64 74 68 28 57 78 | .ScalesWidth(Wx| 00001580 2c 77 78 2c 57 79 2c 77 79 29 0d 01 05 39 21 28 |,wx,Wy,wy)...9!(| 00001590 93 2b 31 36 38 29 3d a8 28 57 78 2a 28 31 3c 3c |.+168)=.(Wx*(1<<| 000015a0 31 36 29 2b 2e 35 29 20 3a 20 21 28 93 2b 31 37 |16)+.5) : !(.+17| 000015b0 32 29 3d a8 28 77 78 2a 28 31 3c 3c 31 36 29 2b |2)=.(wx*(1<<16)+| 000015c0 2e 35 29 0d 01 06 39 21 28 93 2b 31 37 36 29 3d |.5)...9!(.+176)=| 000015d0 a8 28 57 79 2a 28 31 3c 3c 31 36 29 2b 2e 35 29 |.(Wy*(1<<16)+.5)| 000015e0 20 3a 20 21 28 93 2b 31 38 30 29 3d a8 28 77 79 | : !(.+180)=.(wy| 000015f0 2a 28 31 3c 3c 31 36 29 2b 2e 35 29 0d 01 07 05 |*(1<<16)+.5)....| 00001600 e1 0d 01 08 04 0d 01 09 1a dd 20 f2 48 53 63 61 |.......... .HSca| 00001610 6c 65 53 69 7a 65 28 4e 78 25 2c 6e 78 25 29 0d |leSize(Nx%,nx%).| 00001620 01 0a 1f 21 28 93 2b 31 33 36 29 3d 4e 78 25 20 |...!(.+136)=Nx% | 00001630 3a 20 21 28 93 2b 31 34 30 29 3d 6e 78 25 0d 01 |: !(.+140)=nx%..| 00001640 0b 05 e1 0d 01 0c 04 0d 01 0d 17 dd 20 f2 48 4c |............ .HL| 00001650 65 6e 67 74 68 28 4c 78 25 2c 6c 78 25 29 0d 01 |ength(Lx%,lx%)..| 00001660 0e 1f 21 28 93 2b 31 35 32 29 3d 4c 78 25 20 3a |..!(.+152)=Lx% :| 00001670 20 21 28 93 2b 31 35 36 29 3d 6c 78 25 0d 01 0f | !(.+156)=lx%...| 00001680 05 e1 0d 01 10 04 0d 01 11 14 dd 20 f2 48 57 69 |........... .HWi| 00001690 64 74 68 28 57 78 2c 77 78 29 0d 01 12 39 21 28 |dth(Wx,wx)...9!(| 000016a0 93 2b 31 36 38 29 3d a8 28 57 78 2a 28 31 3c 3c |.+168)=.(Wx*(1<<| 000016b0 31 36 29 2b 2e 35 29 20 3a 20 21 28 93 2b 31 37 |16)+.5) : !(.+17| 000016c0 32 29 3d a8 28 77 78 2a 28 31 3c 3c 31 36 29 2b |2)=.(wx*(1<<16)+| 000016d0 2e 35 29 0d 01 13 05 e1 0d 01 14 04 0d 01 15 14 |.5).............| 000016e0 dd 20 a4 48 44 69 76 3d 21 28 93 2b 31 33 36 29 |. .HDiv=!(.+136)| 000016f0 0d 01 16 17 dd 20 a4 48 53 75 62 44 69 76 3d 21 |..... .HSubDiv=!| 00001700 28 93 2b 31 34 30 29 0d 01 17 24 dd 20 a4 48 4c |(.+140)...$. .HL| 00001710 65 6e 67 74 68 3d 21 28 93 2b 31 35 32 29 2a 36 |ength=!(.+152)*6| 00001720 34 30 2f a4 59 5f 53 63 61 6c 65 0d 01 18 27 dd |40/.Y_Scale...'.| 00001730 20 a4 48 53 75 62 4c 65 6e 67 74 68 3d 21 28 93 | .HSubLength=!(.| 00001740 2b 31 35 36 29 2a 36 34 30 2f a4 59 5f 53 63 61 |+156)*640/.Y_Sca| 00001750 6c 65 0d 01 19 1e dd 20 a4 48 57 69 64 74 68 3d |le..... .HWidth=| 00001760 21 28 93 2b 31 36 38 29 2f 28 31 3c 3c 31 36 29 |!(.+168)/(1<<16)| 00001770 0d 01 1a 21 dd 20 a4 48 53 75 62 57 69 64 74 68 |...!. .HSubWidth| 00001780 3d 21 28 93 2b 31 37 32 29 2f 28 31 3c 3c 31 36 |=!(.+172)/(1<<16| 00001790 29 0d 01 1b 04 0d 01 1c 1a dd 20 f2 56 53 63 61 |)......... .VSca| 000017a0 6c 65 53 69 7a 65 28 4e 79 25 2c 6e 79 25 29 0d |leSize(Ny%,ny%).| 000017b0 01 1d 1f 21 28 93 2b 31 34 34 29 3d 4e 79 25 20 |...!(.+144)=Ny% | 000017c0 3a 20 21 28 93 2b 31 34 38 29 3d 6e 79 25 0d 01 |: !(.+148)=ny%..| 000017d0 1e 05 e1 0d 01 1f 04 0d 01 20 17 dd 20 f2 56 4c |......... .. .VL| 000017e0 65 6e 67 74 68 28 4c 79 25 2c 6c 79 25 29 0d 01 |ength(Ly%,ly%)..| 000017f0 21 1f 21 28 93 2b 31 36 30 29 3d 4c 79 25 20 3a |!.!(.+160)=Ly% :| 00001800 20 21 28 93 2b 31 36 34 29 3d 6c 79 25 0d 01 22 | !(.+164)=ly%.."| 00001810 05 e1 0d 01 23 04 0d 01 24 16 dd 20 f2 56 57 69 |....#...$.. .VWi| 00001820 64 74 68 28 57 79 25 2c 77 79 25 29 0d 01 25 39 |dth(Wy%,wy%)..%9| 00001830 21 28 93 2b 31 37 36 29 3d a8 28 57 79 2a 28 31 |!(.+176)=.(Wy*(1| 00001840 3c 3c 31 36 29 2b 2e 35 29 20 3a 20 21 28 93 2b |<<16)+.5) : !(.+| 00001850 31 38 30 29 3d a8 28 77 79 2a 28 31 3c 3c 31 36 |180)=.(wy*(1<<16| 00001860 29 2b 2e 35 29 0d 01 26 05 e1 0d 01 27 04 0d 01 |)+.5)..&....'...| 00001870 28 14 dd 20 a4 56 44 69 76 3d 21 28 93 2b 31 34 |(.. .VDiv=!(.+14| 00001880 34 29 0d 01 29 17 dd 20 a4 56 53 75 62 44 69 76 |4)..).. .VSubDiv| 00001890 3d 21 28 93 2b 31 34 38 29 0d 01 2a 24 dd 20 a4 |=!(.+148)..*$. .| 000018a0 56 4c 65 6e 67 74 68 3d 21 28 93 2b 31 36 30 29 |VLength=!(.+160)| 000018b0 2a 36 34 30 2f a4 58 5f 53 63 61 6c 65 0d 01 2b |*640/.X_Scale..+| 000018c0 27 dd 20 a4 56 53 75 62 4c 65 6e 67 74 68 3d 21 |'. .VSubLength=!| 000018d0 28 93 2b 31 36 34 29 2a 36 34 30 2f a4 58 5f 53 |(.+164)*640/.X_S| 000018e0 63 61 6c 65 0d 01 2c 1e dd 20 a4 56 57 69 64 74 |cale..,.. .VWidt| 000018f0 68 3d 21 28 93 2b 31 37 36 29 2f 28 31 3c 3c 31 |h=!(.+176)/(1<<1| 00001900 36 29 0d 01 2d 21 dd 20 a4 56 53 75 62 57 69 64 |6)..-!. .VSubWid| 00001910 74 68 3d 21 28 93 2b 31 38 30 29 2f 28 31 3c 3c |th=!(.+180)/(1<<| 00001920 31 36 29 0d 01 2e 04 0d 01 2f 1e f4 20 3d 3d 3d |16)....../.. ===| 00001930 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00001940 3d 3d 3d 3d 3d 0d 01 30 1c f4 20 34 20 53 63 72 |=====..0.. 4 Scr| 00001950 65 65 6e 2c 20 46 72 61 6d 65 20 2b 20 47 72 69 |een, Frame + Gri| 00001960 64 0d 01 31 1e f4 20 3d 3d 3d 3d 3d 3d 3d 3d 3d |d..1.. =========| 00001970 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d |===============.| 00001980 01 32 04 0d 01 33 2f dd 20 f2 41 78 65 73 53 63 |.2...3/. .AxesSc| 00001990 61 6c 65 28 48 44 69 76 25 2c 48 53 75 62 44 69 |ale(HDiv%,HSubDi| 000019a0 76 25 2c 56 44 69 76 25 2c 56 53 75 62 44 69 76 |v%,VDiv%,VSubDiv| 000019b0 25 29 0d 01 34 11 ea 20 5f 61 2c 5f 62 2c 5f 75 |%)..4.. _a,_b,_u| 000019c0 2c 5f 76 0d 01 35 20 f2 47 65 74 46 72 61 6d 65 |,_v..5 .GetFrame| 000019d0 43 6f 6f 72 64 73 28 5f 61 2c 5f 62 2c 5f 75 2c |Coords(_a,_b,_u,| 000019e0 5f 76 29 0d 01 36 10 e7 20 5f 61 2a 5f 62 3c 3d |_v)..6.. _a*_b<=| 000019f0 30 20 8c 0d 01 37 29 20 f2 56 53 63 61 6c 65 28 |0 ...7) .VScale(| 00001a00 56 44 69 76 25 2c 30 2c 2d 31 2c a4 56 4c 65 6e |VDiv%,0,-1,.VLen| 00001a10 67 74 68 2c a4 56 57 69 64 74 68 29 0d 01 38 29 |gth,.VWidth)..8)| 00001a20 20 f2 56 53 63 61 6c 65 28 56 44 69 76 25 2c 30 | .VScale(VDiv%,0| 00001a30 2c 2d 31 2c a4 56 4c 65 6e 67 74 68 2c a4 56 57 |,-1,.VLength,.VW| 00001a40 69 64 74 68 29 0d 01 39 19 20 f2 56 4c 61 62 65 |idth)..9. .VLabe| 00001a50 6c 73 28 56 44 69 76 25 2c 30 2c 2d 31 29 0d 01 |ls(VDiv%,0,-1)..| 00001a60 3a 38 20 f2 56 53 63 61 6c 65 28 56 53 75 62 44 |:8 .VScale(VSubD| 00001a70 69 76 25 2a 56 44 69 76 25 2c 30 2c 2d 31 2c a4 |iv%*VDiv%,0,-1,.| 00001a80 56 53 75 62 4c 65 6e 67 74 68 2c a4 56 53 75 62 |VSubLength,.VSub| 00001a90 57 69 64 74 68 29 0d 01 3b 06 20 cd 0d 01 3c 10 |Width)..;. ...<.| 00001aa0 e7 20 5f 75 2a 5f 76 3c 3d 30 20 8c 0d 01 3d 29 |. _u*_v<=0 ...=)| 00001ab0 20 f2 48 53 63 61 6c 65 28 48 44 69 76 25 2c 30 | .HScale(HDiv%,0| 00001ac0 2c 2d 31 2c a4 48 4c 65 6e 67 74 68 2c a4 48 57 |,-1,.HLength,.HW| 00001ad0 69 64 74 68 29 0d 01 3e 19 20 f2 48 4c 61 62 65 |idth)..>. .HLabe| 00001ae0 6c 73 28 48 44 69 76 25 2c 30 2c 2d 31 29 0d 01 |ls(HDiv%,0,-1)..| 00001af0 3f 39 20 f2 48 53 63 61 6c 65 28 48 53 75 62 44 |?9 .HScale(HSubD| 00001b00 69 76 25 2a 48 44 69 76 25 2c 30 2c 2d 31 2c a4 |iv%*HDiv%,0,-1,.| 00001b10 48 53 75 62 4c 65 6e 67 74 68 2c a4 48 53 75 62 |HSubLength,.HSub| 00001b20 57 69 64 74 68 29 20 0d 01 40 06 20 cd 0d 01 41 |Width) ..@. ...A| 00001b30 05 e1 0d 01 42 04 0d 01 43 30 dd 20 f2 46 72 61 |....B...C0. .Fra| 00001b40 6d 65 53 63 61 6c 65 28 48 44 69 76 25 2c 48 53 |meScale(HDiv%,HS| 00001b50 75 62 44 69 76 25 2c 56 44 69 76 25 2c 56 53 75 |ubDiv%,VDiv%,VSu| 00001b60 62 44 69 76 25 29 0d 01 44 21 ea 20 5f 61 2c 5f |bDiv%)..D!. _a,_| 00001b70 62 2c 5f 75 2c 5f 76 2c 5f 61 25 2c 5f 78 2c 5f |b,_u,_v,_a%,_x,_| 00001b80 79 2c 5f 72 65 63 74 0d 01 45 20 f2 47 65 74 46 |y,_rect..E .GetF| 00001b90 72 61 6d 65 43 6f 6f 72 64 73 28 5f 61 2c 5f 62 |rameCoords(_a,_b| 00001ba0 2c 5f 75 2c 5f 76 29 0d 01 46 40 5f 72 65 63 74 |,_u,_v)..F@_rect| 00001bb0 3d a4 52 65 63 74 61 6e 67 6c 65 28 5f 61 2c 5f |=.Rectangle(_a,_| 00001bc0 75 2c 5f 62 2d 5f 61 2c 5f 76 2d 5f 75 29 20 3a |u,_b-_a,_v-_u) :| 00001bd0 20 f2 57 69 64 74 68 40 28 5f 72 65 63 74 2c a4 | .Width@(_rect,.| 00001be0 56 57 69 64 74 68 29 0d 01 47 14 e3 20 5f 61 25 |VWidth)..G.. _a%| 00001bf0 3d 2d 31 20 b8 20 31 20 88 20 32 0d 01 48 2d 20 |=-1 . 1 . 2..H- | 00001c00 e7 20 5f 61 25 3d 2d 31 20 8c 20 5f 78 3d 5f 61 |. _a%=-1 . _x=_a| 00001c10 20 3a 20 5f 79 3d 5f 75 20 8b 20 5f 78 3d 5f 62 | : _y=_u . _x=_b| 00001c20 20 3a 20 5f 79 3d 5f 76 0d 01 49 2b 20 f2 56 53 | : _y=_v..I+ .VS| 00001c30 63 61 6c 65 28 56 44 69 76 25 2c 5f 78 2c 5f 61 |cale(VDiv%,_x,_a| 00001c40 25 2c a4 56 4c 65 6e 67 74 68 2c a4 56 57 69 64 |%,.VLength,.VWid| 00001c50 74 68 29 0d 01 4a 1b 20 f2 56 4c 61 62 65 6c 73 |th)..J. .VLabels| 00001c60 28 56 44 69 76 25 2c 5f 78 2c 5f 61 25 29 0d 01 |(VDiv%,_x,_a%)..| 00001c70 4b 3a 20 f2 56 53 63 61 6c 65 28 56 53 75 62 44 |K: .VScale(VSubD| 00001c80 69 76 25 2a 56 44 69 76 25 2c 5f 78 2c 5f 61 25 |iv%*VDiv%,_x,_a%| 00001c90 2c a4 56 53 75 62 4c 65 6e 67 74 68 2c a4 56 53 |,.VSubLength,.VS| 00001ca0 75 62 57 69 64 74 68 29 0d 01 4c 2b 20 f2 48 53 |ubWidth)..L+ .HS| 00001cb0 63 61 6c 65 28 48 44 69 76 25 2c 5f 79 2c 5f 61 |cale(HDiv%,_y,_a| 00001cc0 25 2c a4 48 4c 65 6e 67 74 68 2c a4 48 57 69 64 |%,.HLength,.HWid| 00001cd0 74 68 29 0d 01 4d 1b 20 f2 48 4c 61 62 65 6c 73 |th)..M. .HLabels| 00001ce0 28 48 44 69 76 25 2c 5f 79 2c 5f 61 25 29 0d 01 |(HDiv%,_y,_a%)..| 00001cf0 4e 3a 20 f2 48 53 63 61 6c 65 28 48 53 75 62 44 |N: .HScale(HSubD| 00001d00 69 76 25 2a 48 44 69 76 25 2c 5f 79 2c 5f 61 25 |iv%*HDiv%,_y,_a%| 00001d10 2c a4 48 53 75 62 4c 65 6e 67 74 68 2c a4 48 53 |,.HSubLength,.HS| 00001d20 75 62 57 69 64 74 68 29 0d 01 4f 05 ed 0d 01 50 |ubWidth)..O....P| 00001d30 05 e1 0d 01 51 04 0d 01 52 2a dd 20 f2 47 72 69 |....Q...R*. .Gri| 00001d40 64 28 48 44 69 76 25 2c 48 53 75 62 44 69 76 25 |d(HDiv%,HSubDiv%| 00001d50 2c 56 44 69 76 25 2c 56 53 75 62 44 69 76 25 29 |,VDiv%,VSubDiv%)| 00001d60 0d 01 53 11 ea 20 5f 61 2c 5f 62 2c 5f 75 2c 5f |..S.. _a,_b,_u,_| 00001d70 76 0d 01 54 20 f2 47 65 74 46 72 61 6d 65 43 6f |v..T .GetFrameCo| 00001d80 6f 72 64 73 28 5f 61 2c 5f 62 2c 5f 75 2c 5f 76 |ords(_a,_b,_u,_v| 00001d90 29 0d 01 55 27 20 f2 56 53 63 61 6c 65 28 56 44 |)..U' .VScale(VD| 00001da0 69 76 25 2c 5f 61 2c 2d 31 2c 5f 62 2d 5f 61 2c |iv%,_a,-1,_b-_a,| 00001db0 a4 56 57 69 64 74 68 29 0d 01 56 33 20 f2 56 53 |.VWidth)..V3 .VS| 00001dc0 63 61 6c 65 28 56 53 75 62 44 69 76 25 2a 56 44 |cale(VSubDiv%*VD| 00001dd0 69 76 25 2c 5f 61 2c 2d 31 2c 5f 62 2d 5f 61 2c |iv%,_a,-1,_b-_a,| 00001de0 a4 56 53 75 62 57 69 64 74 68 29 0d 01 57 27 20 |.VSubWidth)..W' | 00001df0 f2 48 53 63 61 6c 65 28 48 44 69 76 25 2c 5f 75 |.HScale(HDiv%,_u| 00001e00 2c 2d 31 2c 5f 76 2d 5f 75 2c a4 48 57 69 64 74 |,-1,_v-_u,.HWidt| 00001e10 68 29 0d 01 58 33 20 f2 48 53 63 61 6c 65 28 48 |h)..X3 .HScale(H| 00001e20 53 75 62 44 69 76 25 2a 48 44 69 76 25 2c 5f 75 |SubDiv%*HDiv%,_u| 00001e30 2c 2d 31 2c 5f 76 2d 5f 75 2c a4 48 53 75 62 57 |,-1,_v-_u,.HSubW| 00001e40 69 64 74 68 29 0d 01 59 2f 20 f2 56 4c 61 62 65 |idth)..Y/ .VLabe| 00001e50 6c 73 28 56 44 69 76 25 2c 5f 61 2c 2d 31 29 3a |ls(VDiv%,_a,-1):| 00001e60 f2 56 4c 61 62 65 6c 73 28 56 44 69 76 25 2c 5f |.VLabels(VDiv%,_| 00001e70 62 2c 31 29 0d 01 5a 2f 20 f2 48 4c 61 62 65 6c |b,1)..Z/ .HLabel| 00001e80 73 28 48 44 69 76 25 2c 5f 75 2c 2d 31 29 3a f2 |s(HDiv%,_u,-1):.| 00001e90 48 4c 61 62 65 6c 73 28 48 44 69 76 25 2c 5f 76 |HLabels(HDiv%,_v| 00001ea0 2c 31 29 0d 01 5b 05 e1 0d 01 5c 04 0d 01 5d 16 |,1)..[....\...].| 00001eb0 dd 20 f2 53 63 72 65 65 6e 28 61 2c 62 2c 75 2c |. .Screen(a,b,u,| 00001ec0 76 29 0d 01 5e 21 f2 52 65 64 75 63 65 46 72 61 |v)..^!.ReduceFra| 00001ed0 6d 65 53 69 7a 65 28 a4 53 63 72 65 65 6e 53 69 |meSize(.ScreenSi| 00001ee0 7a 65 29 0d 01 5f 19 f2 46 72 61 6d 65 43 6f 6f |ze).._..FrameCoo| 00001ef0 72 64 73 28 61 2c 62 2c 75 2c 76 29 0d 01 60 0c |rds(a,b,u,v)..`.| 00001f00 f2 41 78 65 73 28 31 29 0d 01 61 05 e1 0d 01 62 |.Axes(1)..a....b| 00001f10 04 0d 01 63 17 dd 20 f2 53 63 72 65 65 6e 4c 28 |...c.. .ScreenL(| 00001f20 61 2c 62 2c 75 2c 76 29 0d 01 64 14 f2 53 63 72 |a,b,u,v)..d..Scr| 00001f30 65 65 6e 28 61 2c 62 2c 75 2c 76 29 0d 01 65 17 |een(a,b,u,v)..e.| 00001f40 f2 41 78 65 73 53 63 61 6c 65 28 31 2c 30 2c 31 |.AxesScale(1,0,1| 00001f50 2c 30 29 0d 01 66 05 e1 0d 01 67 04 0d 01 68 04 |,0)..f....g...h.| 00001f60 0d ff |..| 00001f62