Home » Archimedes archive » Archimedes World » AW-1991-12.adf » December91 » !AWDec91/Goodies/CharSet/!Char_Set/!RunImage

!AWDec91/Goodies/CharSet/!Char_Set/!RunImage

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-1991-12.adf » December91
Filename: !AWDec91/Goodies/CharSet/!Char_Set/!RunImage
Read OK:
File size: 1EFF bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >!Char_Set.!RunImage
   15REM Copyright Archimedes World December 1991
   20DIM q% 88,M_Icon% 100
   30SYS "Wimp_Initialise",200,&4B534154,"Fonts & Characters Sets"
   40 
   50S%=OPENIN"<Char_Set$Dir>.Sprites":T%=EXT#S%+16:CLOSE#S%
   60DIM sprites% T%
   70!sprites%=T%:sprites%!8=16
   80SYS "OS_SpriteOp",&109,sprites%
   90SYS "OS_SpriteOp",&10A,sprites%,"<Char_Set$Dir>.Sprites"
  100 
  110!q%=-2:q%!4=0:q%!8=-16:q%!12=80:q%!16=80:q%!20=&1700301A
  120$(q%+24)="!char_set"
  130SYS "Wimp_CreateIcon",,q% TO Icon_Bar
  140
  150size%=48:font%=-1:family%=0:style%=-1:n_font%=1
  160PROCCreate_WFontSet
  170
  180!q%=0:q%!4=0:q%!8=220:q%!12=108:q%!16=0:q%!20=0
  190q%!24=-1:q%!28=&80000012:q%!32=&01070207:q%!36=&00020E0C
  200q%!40=0:q%!44=-108:q%!48=224:q%!52=0
  210q%!56=&13D:q%!60=0:q%!64=0:q%!68=0:q%!84=0
  220$(q%+72)=""
  230SYS "Wimp_CreateWindow",0,q% TO Wind_Zoom
  240
  250PROCCreate_Icon(Wind_Zoom, 48, -80,172, -16,&0700011A,"write6")
  260PROCCreate_Icon(Wind_Zoom, 72, -64,148, -32,&07000119,STR$(size%))
  270zoom_val%=q%!24
  280PROCCreate_Icon(Wind_Zoom, 14, -80, 34, -16,&0700211A,"left2")
  290PROCCreate_Icon(Wind_Zoom,186, -80,206, -16,&0700211A,"right2")
  300PROCCreate_Icon(Wind_Zoom,180,-100,212, -80,&0700311A,"ok")
  310
  320!q%=0:q%!4=0:q%!8=704:q%!12=224:q%!16=0:q%!20=0
  330q%!24=-1:q%!28=&84000012:q%!32=&01070207:q%!36=&00020E0C
  340q%!40=0:q%!44=-1024:q%!48=1280:q%!52=0
  350q%!56=&13D:q%!60=0:q%!64=0:q%!68=0:q%!84=0
  360DIM q%!72 19:q%!76=-1:q%!80=19
  370$(q%!72)="About This Program"
  380SYS "Wimp_CreateWindow",0,q% TO Wind_Info
  390
  400PROCCreate_Icon(Wind_Info,144, -52,694,  -4,&07000119,"Fonts & Characters Sets")
  410PROCCreate_Icon(Wind_Info,144,-100,694, -52,&07000119,"Version 2.04 (28 April 1991)")
  420PROCCreate_Icon(Wind_Info,144,-148,694,-100,&07000119,"By Timmermans Andr� � ASP 91")
  430PROCCreate_Icon(Wind_Info, 12,-216,694,-156,&0700013D,"Alt Keys Emulator & Fonts Viewer")
  440PROCCreate_Icon(Wind_Info, 12,-144,132, -16,&C700011E,"!char_set")
  450
  460$M_Icon%="Char_Set":M_Icon%!12=&0207:M_Icon%!16=96:M_Icon%!20=40:M_Icon%!24=0
  470M_Icon%!28=0:M_Icon%!32=Wind_Info:M_Icon%!36=&07000021:$(M_Icon%+40)="Info"
  480M_Icon%!52=0:M_Icon%!56=Wind_Zoom:M_Icon%!60=&07000021:$(M_Icon%+64)="Scale"
  490M_Icon%!76=&80:M_Icon%!80=-1:M_Icon%!84=&07000021:$(M_Icon%+88)="Quit"
  500
  510NULL=0
  520DIM f_p% 4
  530!f_p%=NULL
  540c%=0
  550REPEAT
  560 SYS "Font_ListFonts",,q%,c%,-1 TO ,,c%
  570 IF c%<>-1 THEN PROCFamily(FNInfo(q%))
  580UNTIL c%=-1
  590
  600DIM M_Font% 28+24*n_font%
  610$M_Font%="Fonts list":M_Font%!12=&0207:M_Font%!20=40:M_Font%!24=0
  620M_Font%!28=1:M_Font%!32=-1:M_Font%!36=&07000021:$(M_Font%+40)="System"
  630
  640width%=8:p%=M_Font%+28:r%=f_p%:n%=2
  650WHILE n%<=n_font%
  660 p%+=24
  670 f$=FNInfo(!r%+12)
  680 width%=FNMax(width%,LEN(f$)+1)
  690 !p%=0:p%!8=&07000121
  700 p%!12=!r%+12
  710 p%!16=-1:p%!20=LEN(f$)
  720 v%=!r%+4
  730 IF (!(!r%+8) = 1) AND FNInfo(!v%+4) = "" THEN
  740  p%!4 = -1
  750 ELSE
  760  DIM p%!4 28+24*!(!r%+8)
  770  t%=p%!4
  780  $t%=f$:t%!12=&0207:t%!20=40:t%!24=0
  790  u%=t%+4
  800  width2%=LEN(f$)-2
  810  FOR s%=1 TO !(!r%+8)
  820   u%+=24
  830   f$=FNInfo(!v%+4)
  840   width2%=FNMax(width2%,LEN(f$)+1)
  850   !u%=0:u%!4=-1:u%!8=&07000121
  860   u%!12=!v%+4
  870   u%!16=-1:u%!20=LEN(f$)
  880   v%=!v%
  890  NEXT
  900  !u%= !u% OR &80:t%!16=16*width2%
  910 ENDIF
  920 r%=!r%
  930 n%+=1
  940ENDWHILE
  950!p%= !p% OR &80:M_Font%!16=16*width%
  960
  970
  980REPEAT
  990 SYS "Wimp_Poll",&4B3,q% TO i%
 1000 CASE i% OF
 1010  WHEN 2
 1020   SYS "Wimp_OpenWindow",0,q%
 1030  WHEN 3
 1040   SYS "Wimp_CloseWindow",0,q%
 1050  WHEN 6
 1060   PROCMouse_Click
 1070  WHEN 9
 1080   PROCMenu_Select
 1090  WHEN 17,18
 1100   PROCReceive
 1110ENDCASE
 1120UNTIL FALSE
 1130
 1140
 1150DEF PROCMouse_Click
 1160LOCAL icon%,val%
 1170
 1180CASE q%!8 OF
 1190 WHEN 2
 1200  IF q%!12=-2 THEN
 1210   $(zoom_val%)=STR$(size%)
 1220   Menu%=M_Icon%
 1230   SYS "Wimp_CreateMenu",,M_Icon%,!q%-(M_Icon%!16/2),176
 1240  ELSE
 1250   Menu%=M_Font%
 1260   SYS "Wimp_CreateMenu",,M_Font%,!q%-(M_Font%!16/2),q%!4+(M_Font%!20/2)
 1270  ENDIF
 1280 OTHERWISE
 1290  CASE q%!12 OF
 1300   WHEN -2
 1310    !q%=Wind_Key:SYS "Wimp_GetWindowState",0,q%
 1320    q%!28=-1:SYS "Wimp_OpenWindow",0,q%
 1330   WHEN Wind_Key
 1340    IF q%!16>-1 THEN
 1350     icon%=q%!16
 1360     SYS "Wimp_GetCaretPosition",0,q%
 1370     IF q%!0<>-1 THEN SYS "Wimp_ProcessKey",32+icon%
 1380    ENDIF
 1390   WHEN Wind_Zoom
 1400    CASE q%!16 OF
 1410     WHEN 2
 1420      val%=VAL(FNInfo(zoom_val%))
 1430      $(zoom_val%)=STR$(val%+4*(val%>48))
 1440      !q%=Wind_Zoom:q%!4=1:q%!8=0:q%!12=0
 1450      SYS "Wimp_SetIconState",,q%
 1460     WHEN 3
 1470      val%=VAL(FNInfo(zoom_val%))
 1480      $(zoom_val%)=STR$(val%-4*(val%<72))
 1490      !q%=Wind_Zoom:q%!4=1:q%!8=0:q%!12=0
 1500      SYS "Wimp_SetIconState",,q%
 1510     WHEN 4
 1520      size%=VAL(FNInfo(zoom_val%))
 1530      !q%=Wind_Key
 1540      SYS "Wimp_DeleteWindow",,q%
 1550      PROCCreate_WFontSet
 1560      PROCLose_Font(family%,style%)
 1570      font%=FNUpdate_Char(family%,style%)
 1580      !q%=Wind_Key:SYS "Wimp_GetWindowState",0,q%
 1590      q%!28=-1:SYS "Wimp_OpenWindow",0,q%
 1600    ENDCASE
 1610  ENDCASE
 1620ENDCASE
 1630ENDPROC
 1640
 1650
 1660DEF PROCMenu_Select
 1670
 1680CASE Menu% OF
 1690 WHEN M_Icon%
 1700   IF !q%=2 THEN SYS "Wimp_CloseDown":END
 1710 WHEN M_Font%
 1720  PROCLose_Font(family%,style%)
 1730  IF !q%=0 THEN
 1740   family%=0:style%=-1
 1750  ELSE
 1760   IF (q%!4 > -1 OR Menu%!(32+24*!q%)=-1) THEN
 1770    family%=!q%:style%=q%!4
 1780   ENDIF
 1790  ENDIF
 1800  font%=FNUpdate_Char(family%,style%)
 1810ENDCASE
 1820SYS "Wimp_GetPointerInfo",,q%
 1830IF q%!8=1 THEN
 1840 SYS "Wimp_CreateMenu",,Menu%
 1850ENDIF
 1860ENDPROC
 1870
 1880
 1890DEF PROCReceive
 1900
 1910CASE q%!16 OF
 1920 WHEN 0
 1930  SYS "Wimp_CloseDown":END
 1940 WHEN &400C1
 1950  font%=FNUpdate_Char(family%,style%)
 1960ENDCASE
 1970ENDPROC
 1980
 1990
 2000DEF PROCCreate_Icon(wind%,x0%,y0%,x1%,y1%,flag%,data$)
 2010
 2020!q%=wind%:q%!4=x0%:q%!8=y0%:q%!12=x1%:q%!16=y1%:q%!20=flag%
 2030IF (flag% AND &100)<>0 THEN
 2040 DIM q%!24 LEN(data$)+1
 2050 q%!28=-1:q%!32=LEN(data$):$(q%!24)=data$
 2060 IF flag% AND 2 THEN q%!28=sprites%
 2070ELSE
 2080 $(q%+24)=data$
 2090ENDIF
 2100SYS "Wimp_CreateIcon",0,q%
 2110ENDPROC
 2120
 2130DEFFNMax(a%,b%)
 2140
 2150IF a%>b% THEN =a% ELSE =b%
 2160
 2170
 2180DEFFNInfo(p%)
 2190LOCAL a$
 2200
 2210a$=""
 2220WHILE (?p%<>0 AND ?p%<>13)
 2230 a$+=CHR$(?p%)
 2240 p%+=1
 2250ENDWHILE
 2260=a$
 2270
 2280
 2290DEF PROCFamily(font$)
 2300LOCAL family$,style$,p%,flag%,pos%
 2310
 2320pos%=INSTR(font$,".")
 2330family$=LEFT$(font$,pos%-1)
 2340IF pos% = 0 THEN
 2350 style$=""
 2360ELSE
 2370 style$=MID$(font$,pos%+1)
 2380ENDIF
 2390p%=f_p%:flag%=FALSE
 2400WHILE (!p% <> NULL AND flag%=FALSE)
 2410 IF family$ = FNInfo(!p%+12) THEN flag%= TRUE
 2420 p% =!p%
 2430ENDWHILE
 2440IF flag%=FALSE THEN
 2450 DIM p%!0 LEN(family$)+13
 2460 p%=!p%
 2470 !p%=NULL
 2480 p%!8=1
 2490 $(p%+12)=family$
 2500 DIM p%!4 LEN(style$)+5
 2510 p%=p%!4
 2520 !p%=NULL
 2530 $(p%+4)=style$
 2540 n_font%+=1
 2550ELSE
 2560 p%!8=p%!8+1
 2570 p%=p%+4
 2580 WHILE (!p% <> NULL)
 2590  p%=!p%
 2600 ENDWHILE
 2610 DIM p%!0 LEN(style$)+5
 2620 p%=!p%
 2630 !p%=NULL
 2640 $(p%+4)=style$
 2650ENDIF
 2660ENDPROC
 2670
 2680
 2690DEF PROCLose_Font(family%,style%)
 2700LOCAL p%
 2710
 2720p%=M_Font%+28+family%*24
 2730!p% = !p% AND &FFFFFFFE
 2740IF family%>0 THEN
 2750 SYS "Font_LoseFont",font%
 2760 IF style% > -1 THEN
 2770  p%=p%!4+28+style%*24
 2780  !p% = !p% AND &FFFFFFFE
 2790 ENDIF
 2800ENDIF
 2810ENDPROC
 2820
 2830
 2840DEFFNUpdate_Char(family%,style%)
 2850LOCAL f$,font%,sx%,sy%,x0%,y0%,x1%,y1%,i%,state%,p%
 2860
 2870p%=M_Font%+28+family%*24
 2880!p% = !p% OR 1
 2890IF family%>0 THEN
 2900 f$=FNInfo(p%!12)
 2910 SYS "Font_LoseFont",font%
 2920 IF style% > -1 THEN
 2930  p%=p%!4+28+style%*24
 2940  !p% = !p% OR 1
 2950  f$=f$+"."+FNInfo(p%!12)
 2960 ENDIF
 2970 REM try to ensure now same size on screen for each font
 2980 REM but portrhouse is showned smaller than the others
 2990 SYS "Font_FindFont",,f$,160,160 TO font%
 3000 SYS "Font_ReadInfo",font% TO ,x0%,y0%,x1%,y1%
 3010 SYS "Font_LoseFont",font%
 3020 x0%=160*(size%-4)/FNMax(x1%-x0%,y1%-y0%)
 3030 SYS "Font_FindFont",,f$,x0%,x0% TO font%
 3040 state%=(font%<<24)+&40
 3050ELSE
 3060 font%=-1
 3070 state%=&07000000
 3080ENDIF
 3090FOR i%=0 TO 223
 3100 !q%=Wind_Key:q%!4=i%:q%!8=state%:q%!12=&FF000040
 3110 SYS "Wimp_SetIconState",,q%
 3120NEXT
 3130=font%
 3140
 3150
 3160DEF PROCCreate_WFontSet
 3170
 3180!q%=0:q%!4=0:q%!8=1280:q%!12=1024:q%!16=0:q%!20=0
 3190q%!24=-1:q%!28=&BF000012:q%!32=&00070207:q%!36=&00010103
 3200q%!40=0:q%!44=-14*size%:q%!48=16*size%:q%!52=0
 3210q%!56=&13D:q%!60=0:q%!64=0:q%!68=&10001:q%!84=0
 3220DIM q%!72 25:q%!76=-1:q%!80=25
 3230$(q%!72)="Fonts & Characters Sets"
 3240SYS "Wimp_CreateWindow",0,q% TO Wind_Key
 3250
 3260FOR y%=0 TO 13*size% STEP size%
 3270 FOR x%=0 TO 15*size% STEP size%
 3280  PROCCreate_Icon(Wind_Key,x%,-y%-size%+1,x%+size%-1,-y%,&0700203D,CHR$(32+(y%*16+x%)/size%))
 3290 NEXT
 3300NEXT
 3310ENDPROC

� >!Char_Set.!RunImage
.� Copyright Archimedes World December 1991
� q% 88,M_Icon% 100
@ș "Wimp_Initialise",200,&4B534154,"Fonts & Characters Sets"
( 
20S%=�"<Char_Set$Dir>.Sprites":T%=�#S%+16:�#S%
<� sprites% T%
F!sprites%=T%:sprites%!8=16
P"ș "OS_SpriteOp",&109,sprites%
Z;ș "OS_SpriteOp",&10A,sprites%,"<Char_Set$Dir>.Sprites"
d 
n<!q%=-2:q%!4=0:q%!8=-16:q%!12=80:q%!16=80:q%!20=&1700301A
x$(q%+24)="!char_set"
�'ș "Wimp_CreateIcon",,q% � Icon_Bar
�
�3size%=48:font%=-1:family%=0:style%=-1:n_font%=1
��Create_WFontSet
�
�3!q%=0:q%!4=0:q%!8=220:q%!12=108:q%!16=0:q%!20=0
�<q%!24=-1:q%!28=&80000012:q%!32=&01070207:q%!36=&00020E0C
�(q%!40=0:q%!44=-108:q%!48=224:q%!52=0
�.q%!56=&13D:q%!60=0:q%!64=0:q%!68=0:q%!84=0
�$(q%+72)=""
�+ș "Wimp_CreateWindow",0,q% � Wind_Zoom
�
�@�Create_Icon(Wind_Zoom, 48, -80,172, -16,&0700011A,"write6")
@�Create_Icon(Wind_Zoom, 72, -64,148, -32,&07000119,�(size%))
zoom_val%=q%!24
?�Create_Icon(Wind_Zoom, 14, -80, 34, -16,&0700211A,"left2")
"@�Create_Icon(Wind_Zoom,186, -80,206, -16,&0700211A,"right2")
,<�Create_Icon(Wind_Zoom,180,-100,212, -80,&0700311A,"ok")
6
@3!q%=0:q%!4=0:q%!8=704:q%!12=224:q%!16=0:q%!20=0
J<q%!24=-1:q%!28=&84000012:q%!32=&01070207:q%!36=&00020E0C
T*q%!40=0:q%!44=-1024:q%!48=1280:q%!52=0
^.q%!56=&13D:q%!60=0:q%!64=0:q%!68=0:q%!84=0
h � q%!72 19:q%!76=-1:q%!80=19
r!$(q%!72)="About This Program"
|+ș "Wimp_CreateWindow",0,q% � Wind_Info
�
�Q�Create_Icon(Wind_Info,144, -52,694,  -4,&07000119,"Fonts & Characters Sets")
�V�Create_Icon(Wind_Info,144,-100,694, -52,&07000119,"Version 2.04 (28 April 1991)")
�V�Create_Icon(Wind_Info,144,-148,694,-100,&07000119,"By Timmermans Andr� � ASP 91")
�Z�Create_Icon(Wind_Info, 12,-216,694,-156,&0700013D,"Alt Keys Emulator & Fonts Viewer")
�C�Create_Icon(Wind_Info, 12,-144,132, -16,&C700011E,"!char_set")
�
�Q$M_Icon%="Char_Set":M_Icon%!12=&0207:M_Icon%!16=96:M_Icon%!20=40:M_Icon%!24=0
�OM_Icon%!28=0:M_Icon%!32=Wind_Info:M_Icon%!36=&07000021:$(M_Icon%+40)="Info"
�PM_Icon%!52=0:M_Icon%!56=Wind_Zoom:M_Icon%!60=&07000021:$(M_Icon%+64)="Scale"
�JM_Icon%!76=&80:M_Icon%!80=-1:M_Icon%!84=&07000021:$(M_Icon%+88)="Quit"
�
�
NULL=0
� f_p% 4
!f_p%=NULL
c%=0
&�
0) ș "Font_ListFonts",,q%,c%,-1 � ,,c%
:" � c%<>-1 � �Family(�Info(q%))
D� c%=-1
N
X� M_Font% 28+24*n_font%
bE$M_Font%="Fonts list":M_Font%!12=&0207:M_Font%!20=40:M_Font%!24=0
lJM_Font%!28=1:M_Font%!32=-1:M_Font%!36=&07000021:$(M_Font%+40)="System"
v
�'width%=8:p%=M_Font%+28:r%=f_p%:n%=2
�ȕ n%<=n_font%
� p%+=24
� f$=�Info(!r%+12)
�  width%=�Max(width%,�(f$)+1)
� !p%=0:p%!8=&07000121
� p%!12=!r%+12
� p%!16=-1:p%!20=�(f$)
�
 v%=!r%+4
�+ � (!(!r%+8) = 1) � �Info(!v%+4) = "" �
�  p%!4 = -1
� �
�  � p%!4 28+24*!(!r%+8)

  t%=p%!4
)  $t%=f$:t%!12=&0207:t%!20=40:t%!24=0

  u%=t%+4
   width2%=�(f$)-2
*  � s%=1 � !(!r%+8)
4
   u%+=24
>   f$=�Info(!v%+4)
H$   width2%=�Max(width2%,�(f$)+1)
R#   !u%=0:u%!4=-1:u%!8=&07000121
\   u%!12=!v%+4
f   u%!16=-1:u%!20=�(f$)
p
   v%=!v%
z  �
�%  !u%= !u% � &80:t%!16=16*width2%
� �
� r%=!r%
�
 n%+=1
��
�'!p%= !p% � &80:M_Font%!16=16*width%
�
�
��
�  ș "Wimp_Poll",&4B3,q% � i%
� Ȏ i% �
�	  � 2
�    ș "Wimp_OpenWindow",0,q%
	  � 3
!   ș "Wimp_CloseWindow",0,q%
	  � 6
$   �Mouse_Click
.	  � 9
8   �Menu_Select
B
  � 17,18
L   �Receive
V�
`� �
j
t
~� �Mouse_Click
�� icon%,val%
�
�
Ȏ q%!8 �
� � 2
�  � q%!12=-2 �
�   $(zoom_val%)=�(size%)
�   Menu%=M_Icon%
�;   ș "Wimp_CreateMenu",,M_Icon%,!q%-(M_Icon%!16/2),176
�  �
�   Menu%=M_Font%
�K   ș "Wimp_CreateMenu",,M_Font%,!q%-(M_Font%!16/2),q%!4+(M_Font%!20/2)
�  �
 

  Ȏ q%!12 �
   � -2
2    !q%=Wind_Key:ș "Wimp_GetWindowState",0,q%
(*    q%!28=-1:ș "Wimp_OpenWindow",0,q%
2   � Wind_Key
<    � q%!16>-1 �
F     icon%=q%!16
P(     ș "Wimp_GetCaretPosition",0,q%
Z3     � q%!0<>-1 � ș "Wimp_ProcessKey",32+icon%
d	    �
n   � Wind_Zoom
x    Ȏ q%!16 �
�     � 2
�"      val%=�(�Info(zoom_val%))
�*      $(zoom_val%)=�(val%+4*(val%>48))
�-      !q%=Wind_Zoom:q%!4=1:q%!8=0:q%!12=0
�$      ș "Wimp_SetIconState",,q%
�     � 3
�"      val%=�(�Info(zoom_val%))
�*      $(zoom_val%)=�(val%-4*(val%<72))
�-      !q%=Wind_Zoom:q%!4=1:q%!8=0:q%!12=0
�$      ș "Wimp_SetIconState",,q%
�     � 4
�#      size%=�(�Info(zoom_val%))
�      !q%=Wind_Key
$      ș "Wimp_DeleteWindow",,q%
      �Create_WFontSet
$      �Lose_Font(family%,style%)
",      font%=�Update_Char(family%,style%)
,4      !q%=Wind_Key:ș "Wimp_GetWindowState",0,q%
6,      q%!28=-1:ș "Wimp_OpenWindow",0,q%
@	    �
J  �
T�
^�
h
r
|� �Menu_Select
�
�Ȏ Menu% �
� � M_Icon%
�&   � !q%=2 � ș "Wimp_CloseDown":�
� � M_Font%
�   �Lose_Font(family%,style%)
�  � !q%=0 �
�   family%=0:style%=-1
�  �
�-   � (q%!4 > -1 � Menu%!(32+24*!q%)=-1) �
�    family%=!q%:style%=q%!4
�   �
�  �
(  font%=�Update_Char(family%,style%)
�
 ș "Wimp_GetPointerInfo",,q%
&� q%!8=1 �
0  ș "Wimp_CreateMenu",,Menu%
:�
D�
N
X
b� �Receive
l
vȎ q%!16 �
� � 0
�  ș "Wimp_CloseDown":�
�
 � &400C1
�(  font%=�Update_Char(family%,style%)
��
��
�
�
�5� �Create_Icon(wind%,x0%,y0%,x1%,y1%,flag%,data$)
�
�?!q%=wind%:q%!4=x0%:q%!8=y0%:q%!12=x1%:q%!16=y1%:q%!20=flag%
�� (flag% � &100)<>0 �
� � q%!24 �(data$)+1
+ q%!28=-1:q%!32=�(data$):$(q%!24)=data$
! � flag% � 2 � q%!28=sprites%
�
  $(q%+24)=data$
*�
4ș "Wimp_CreateIcon",0,q%
>�
H
RݤMax(a%,b%)
\
f� a%>b% � =a% � =b%
p
z
�ݤInfo(p%)
�� a$
�
�	a$=""
�ȕ (?p%<>0 � ?p%<>13)
� a$+=�(?p%)
�
 p%+=1
��
�=a$
�
�
�� �Family(font$)
�"� family$,style$,p%,flag%,pos%
	
	pos%=�font$,".")
	family$=�font$,pos%-1)
	$� pos% = 0 �
	. style$=""
	8�
	B style$=�font$,pos%+1)
	L�
	Vp%=f_p%:flag%=�
	`ȕ (!p% <> NULL � flag%=�)
	j) � family$ = �Info(!p%+12) � flag%= �
	t p% =!p%
	~�
	�� flag%=� �
	� � p%!0 �(family$)+13
	� p%=!p%
	�
 !p%=NULL
	� p%!8=1
	� $(p%+12)=family$
	� � p%!4 �(style$)+5
	� p%=p%!4
	�
 !p%=NULL
	� $(p%+4)=style$
	� n_font%+=1
	��
 p%!8=p%!8+1

 p%=p%+4
 ȕ (!p% <> NULL)
  p%=!p%
( �
2 � p%!0 �(style$)+5
< p%=!p%
F
 !p%=NULL
P $(p%+4)=style$
Z�
d�
n
x
� � �Lose_Font(family%,style%)
�� p%
�
�p%=M_Font%+28+family%*24
�!p% = !p% � &FFFFFFFE
�� family%>0 �
� ș "Font_LoseFont",font%
� � style% > -1 �
�  p%=p%!4+28+style%*24
�  !p% = !p% � &FFFFFFFE
� �
��
��


!ݤUpdate_Char(family%,style%)
"3� f$,font%,sx%,sy%,x0%,y0%,x1%,y1%,i%,state%,p%
,
6p%=M_Font%+28+family%*24
@!p% = !p% � 1
J� family%>0 �
T f$=�Info(p%!12)
^ ș "Font_LoseFont",font%
h � style% > -1 �
r  p%=p%!4+28+style%*24
|  !p% = !p% � 1
�  f$=f$+"."+�Info(p%!12)
� �
�: � try to ensure now same size on screen for each font
�8 � but portrhouse is showned smaller than the others
�+ ș "Font_FindFont",,f$,160,160 � font%
�0 ș "Font_ReadInfo",font% � ,x0%,y0%,x1%,y1%
� ș "Font_LoseFont",font%
�, x0%=160*(size%-4)/�Max(x1%-x0%,y1%-y0%)
�+ ș "Font_FindFont",,f$,x0%,x0% � font%
� state%=(font%<<24)+&40
��
�
 font%=-1
� state%=&07000000
�
� i%=0 � 223
5 !q%=Wind_Key:q%!4=i%:q%!8=state%:q%!12=&FF000040
& ș "Wimp_SetIconState",,q%
0�
:
=font%
D
N
X� �Create_WFontSet
b
l5!q%=0:q%!4=0:q%!8=1280:q%!12=1024:q%!16=0:q%!20=0
v<q%!24=-1:q%!28=&BF000012:q%!32=&00070207:q%!36=&00010103
�2q%!40=0:q%!44=-14*size%:q%!48=16*size%:q%!52=0
�3q%!56=&13D:q%!60=0:q%!64=0:q%!68=&10001:q%!84=0
� � q%!72 25:q%!76=-1:q%!80=25
�&$(q%!72)="Fonts & Characters Sets"
�*ș "Wimp_CreateWindow",0,q% � Wind_Key
�
�� y%=0 � 13*size% � size%
� � x%=0 � 15*size% � size%
�[  �Create_Icon(Wind_Key,x%,-y%-size%+1,x%+size%-1,-y%,&0700203D,�(32+(y%*16+x%)/size%))
� �
��
��
�
00000000  0d 00 0a 1a f4 20 3e 21  43 68 61 72 5f 53 65 74  |..... >!Char_Set|
00000010  2e 21 52 75 6e 49 6d 61  67 65 0d 00 0f 2e f4 20  |.!RunImage..... |
00000020  43 6f 70 79 72 69 67 68  74 20 41 72 63 68 69 6d  |Copyright Archim|
00000030  65 64 65 73 20 57 6f 72  6c 64 20 44 65 63 65 6d  |edes World Decem|
00000040  62 65 72 20 31 39 39 31  0d 00 14 17 de 20 71 25  |ber 1991..... q%|
00000050  20 38 38 2c 4d 5f 49 63  6f 6e 25 20 31 30 30 0d  | 88,M_Icon% 100.|
00000060  00 1e 40 c8 99 20 22 57  69 6d 70 5f 49 6e 69 74  |..@.. "Wimp_Init|
00000070  69 61 6c 69 73 65 22 2c  32 30 30 2c 26 34 42 35  |ialise",200,&4B5|
00000080  33 34 31 35 34 2c 22 46  6f 6e 74 73 20 26 20 43  |34154,"Fonts & C|
00000090  68 61 72 61 63 74 65 72  73 20 53 65 74 73 22 0d  |haracters Sets".|
000000a0  00 28 05 20 0d 00 32 30  53 25 3d 8e 22 3c 43 68  |.(. ..20S%=."<Ch|
000000b0  61 72 5f 53 65 74 24 44  69 72 3e 2e 53 70 72 69  |ar_Set$Dir>.Spri|
000000c0  74 65 73 22 3a 54 25 3d  a2 23 53 25 2b 31 36 3a  |tes":T%=.#S%+16:|
000000d0  d9 23 53 25 0d 00 3c 11  de 20 73 70 72 69 74 65  |.#S%..<.. sprite|
000000e0  73 25 20 54 25 0d 00 46  1e 21 73 70 72 69 74 65  |s% T%..F.!sprite|
000000f0  73 25 3d 54 25 3a 73 70  72 69 74 65 73 25 21 38  |s%=T%:sprites%!8|
00000100  3d 31 36 0d 00 50 22 c8  99 20 22 4f 53 5f 53 70  |=16..P".. "OS_Sp|
00000110  72 69 74 65 4f 70 22 2c  26 31 30 39 2c 73 70 72  |riteOp",&109,spr|
00000120  69 74 65 73 25 0d 00 5a  3b c8 99 20 22 4f 53 5f  |ites%..Z;.. "OS_|
00000130  53 70 72 69 74 65 4f 70  22 2c 26 31 30 41 2c 73  |SpriteOp",&10A,s|
00000140  70 72 69 74 65 73 25 2c  22 3c 43 68 61 72 5f 53  |prites%,"<Char_S|
00000150  65 74 24 44 69 72 3e 2e  53 70 72 69 74 65 73 22  |et$Dir>.Sprites"|
00000160  0d 00 64 05 20 0d 00 6e  3c 21 71 25 3d 2d 32 3a  |..d. ..n<!q%=-2:|
00000170  71 25 21 34 3d 30 3a 71  25 21 38 3d 2d 31 36 3a  |q%!4=0:q%!8=-16:|
00000180  71 25 21 31 32 3d 38 30  3a 71 25 21 31 36 3d 38  |q%!12=80:q%!16=8|
00000190  30 3a 71 25 21 32 30 3d  26 31 37 30 30 33 30 31  |0:q%!20=&1700301|
000001a0  41 0d 00 78 18 24 28 71  25 2b 32 34 29 3d 22 21  |A..x.$(q%+24)="!|
000001b0  63 68 61 72 5f 73 65 74  22 0d 00 82 27 c8 99 20  |char_set"...'.. |
000001c0  22 57 69 6d 70 5f 43 72  65 61 74 65 49 63 6f 6e  |"Wimp_CreateIcon|
000001d0  22 2c 2c 71 25 20 b8 20  49 63 6f 6e 5f 42 61 72  |",,q% . Icon_Bar|
000001e0  0d 00 8c 04 0d 00 96 33  73 69 7a 65 25 3d 34 38  |.......3size%=48|
000001f0  3a 66 6f 6e 74 25 3d 2d  31 3a 66 61 6d 69 6c 79  |:font%=-1:family|
00000200  25 3d 30 3a 73 74 79 6c  65 25 3d 2d 31 3a 6e 5f  |%=0:style%=-1:n_|
00000210  66 6f 6e 74 25 3d 31 0d  00 a0 14 f2 43 72 65 61  |font%=1.....Crea|
00000220  74 65 5f 57 46 6f 6e 74  53 65 74 0d 00 aa 04 0d  |te_WFontSet.....|
00000230  00 b4 33 21 71 25 3d 30  3a 71 25 21 34 3d 30 3a  |..3!q%=0:q%!4=0:|
00000240  71 25 21 38 3d 32 32 30  3a 71 25 21 31 32 3d 31  |q%!8=220:q%!12=1|
00000250  30 38 3a 71 25 21 31 36  3d 30 3a 71 25 21 32 30  |08:q%!16=0:q%!20|
00000260  3d 30 0d 00 be 3c 71 25  21 32 34 3d 2d 31 3a 71  |=0...<q%!24=-1:q|
00000270  25 21 32 38 3d 26 38 30  30 30 30 30 31 32 3a 71  |%!28=&80000012:q|
00000280  25 21 33 32 3d 26 30 31  30 37 30 32 30 37 3a 71  |%!32=&01070207:q|
00000290  25 21 33 36 3d 26 30 30  30 32 30 45 30 43 0d 00  |%!36=&00020E0C..|
000002a0  c8 28 71 25 21 34 30 3d  30 3a 71 25 21 34 34 3d  |.(q%!40=0:q%!44=|
000002b0  2d 31 30 38 3a 71 25 21  34 38 3d 32 32 34 3a 71  |-108:q%!48=224:q|
000002c0  25 21 35 32 3d 30 0d 00  d2 2e 71 25 21 35 36 3d  |%!52=0....q%!56=|
000002d0  26 31 33 44 3a 71 25 21  36 30 3d 30 3a 71 25 21  |&13D:q%!60=0:q%!|
000002e0  36 34 3d 30 3a 71 25 21  36 38 3d 30 3a 71 25 21  |64=0:q%!68=0:q%!|
000002f0  38 34 3d 30 0d 00 dc 0f  24 28 71 25 2b 37 32 29  |84=0....$(q%+72)|
00000300  3d 22 22 0d 00 e6 2b c8  99 20 22 57 69 6d 70 5f  |=""...+.. "Wimp_|
00000310  43 72 65 61 74 65 57 69  6e 64 6f 77 22 2c 30 2c  |CreateWindow",0,|
00000320  71 25 20 b8 20 57 69 6e  64 5f 5a 6f 6f 6d 0d 00  |q% . Wind_Zoom..|
00000330  f0 04 0d 00 fa 40 f2 43  72 65 61 74 65 5f 49 63  |.....@.Create_Ic|
00000340  6f 6e 28 57 69 6e 64 5f  5a 6f 6f 6d 2c 20 34 38  |on(Wind_Zoom, 48|
00000350  2c 20 2d 38 30 2c 31 37  32 2c 20 2d 31 36 2c 26  |, -80,172, -16,&|
00000360  30 37 30 30 30 31 31 41  2c 22 77 72 69 74 65 36  |0700011A,"write6|
00000370  22 29 0d 01 04 40 f2 43  72 65 61 74 65 5f 49 63  |")...@.Create_Ic|
00000380  6f 6e 28 57 69 6e 64 5f  5a 6f 6f 6d 2c 20 37 32  |on(Wind_Zoom, 72|
00000390  2c 20 2d 36 34 2c 31 34  38 2c 20 2d 33 32 2c 26  |, -64,148, -32,&|
000003a0  30 37 30 30 30 31 31 39  2c c3 28 73 69 7a 65 25  |07000119,.(size%|
000003b0  29 29 0d 01 0e 13 7a 6f  6f 6d 5f 76 61 6c 25 3d  |))....zoom_val%=|
000003c0  71 25 21 32 34 0d 01 18  3f f2 43 72 65 61 74 65  |q%!24...?.Create|
000003d0  5f 49 63 6f 6e 28 57 69  6e 64 5f 5a 6f 6f 6d 2c  |_Icon(Wind_Zoom,|
000003e0  20 31 34 2c 20 2d 38 30  2c 20 33 34 2c 20 2d 31  | 14, -80, 34, -1|
000003f0  36 2c 26 30 37 30 30 32  31 31 41 2c 22 6c 65 66  |6,&0700211A,"lef|
00000400  74 32 22 29 0d 01 22 40  f2 43 72 65 61 74 65 5f  |t2").."@.Create_|
00000410  49 63 6f 6e 28 57 69 6e  64 5f 5a 6f 6f 6d 2c 31  |Icon(Wind_Zoom,1|
00000420  38 36 2c 20 2d 38 30 2c  32 30 36 2c 20 2d 31 36  |86, -80,206, -16|
00000430  2c 26 30 37 30 30 32 31  31 41 2c 22 72 69 67 68  |,&0700211A,"righ|
00000440  74 32 22 29 0d 01 2c 3c  f2 43 72 65 61 74 65 5f  |t2")..,<.Create_|
00000450  49 63 6f 6e 28 57 69 6e  64 5f 5a 6f 6f 6d 2c 31  |Icon(Wind_Zoom,1|
00000460  38 30 2c 2d 31 30 30 2c  32 31 32 2c 20 2d 38 30  |80,-100,212, -80|
00000470  2c 26 30 37 30 30 33 31  31 41 2c 22 6f 6b 22 29  |,&0700311A,"ok")|
00000480  0d 01 36 04 0d 01 40 33  21 71 25 3d 30 3a 71 25  |..6...@3!q%=0:q%|
00000490  21 34 3d 30 3a 71 25 21  38 3d 37 30 34 3a 71 25  |!4=0:q%!8=704:q%|
000004a0  21 31 32 3d 32 32 34 3a  71 25 21 31 36 3d 30 3a  |!12=224:q%!16=0:|
000004b0  71 25 21 32 30 3d 30 0d  01 4a 3c 71 25 21 32 34  |q%!20=0..J<q%!24|
000004c0  3d 2d 31 3a 71 25 21 32  38 3d 26 38 34 30 30 30  |=-1:q%!28=&84000|
000004d0  30 31 32 3a 71 25 21 33  32 3d 26 30 31 30 37 30  |012:q%!32=&01070|
000004e0  32 30 37 3a 71 25 21 33  36 3d 26 30 30 30 32 30  |207:q%!36=&00020|
000004f0  45 30 43 0d 01 54 2a 71  25 21 34 30 3d 30 3a 71  |E0C..T*q%!40=0:q|
00000500  25 21 34 34 3d 2d 31 30  32 34 3a 71 25 21 34 38  |%!44=-1024:q%!48|
00000510  3d 31 32 38 30 3a 71 25  21 35 32 3d 30 0d 01 5e  |=1280:q%!52=0..^|
00000520  2e 71 25 21 35 36 3d 26  31 33 44 3a 71 25 21 36  |.q%!56=&13D:q%!6|
00000530  30 3d 30 3a 71 25 21 36  34 3d 30 3a 71 25 21 36  |0=0:q%!64=0:q%!6|
00000540  38 3d 30 3a 71 25 21 38  34 3d 30 0d 01 68 20 de  |8=0:q%!84=0..h .|
00000550  20 71 25 21 37 32 20 31  39 3a 71 25 21 37 36 3d  | q%!72 19:q%!76=|
00000560  2d 31 3a 71 25 21 38 30  3d 31 39 0d 01 72 21 24  |-1:q%!80=19..r!$|
00000570  28 71 25 21 37 32 29 3d  22 41 62 6f 75 74 20 54  |(q%!72)="About T|
00000580  68 69 73 20 50 72 6f 67  72 61 6d 22 0d 01 7c 2b  |his Program"..|+|
00000590  c8 99 20 22 57 69 6d 70  5f 43 72 65 61 74 65 57  |.. "Wimp_CreateW|
000005a0  69 6e 64 6f 77 22 2c 30  2c 71 25 20 b8 20 57 69  |indow",0,q% . Wi|
000005b0  6e 64 5f 49 6e 66 6f 0d  01 86 04 0d 01 90 51 f2  |nd_Info.......Q.|
000005c0  43 72 65 61 74 65 5f 49  63 6f 6e 28 57 69 6e 64  |Create_Icon(Wind|
000005d0  5f 49 6e 66 6f 2c 31 34  34 2c 20 2d 35 32 2c 36  |_Info,144, -52,6|
000005e0  39 34 2c 20 20 2d 34 2c  26 30 37 30 30 30 31 31  |94,  -4,&0700011|
000005f0  39 2c 22 46 6f 6e 74 73  20 26 20 43 68 61 72 61  |9,"Fonts & Chara|
00000600  63 74 65 72 73 20 53 65  74 73 22 29 0d 01 9a 56  |cters Sets")...V|
00000610  f2 43 72 65 61 74 65 5f  49 63 6f 6e 28 57 69 6e  |.Create_Icon(Win|
00000620  64 5f 49 6e 66 6f 2c 31  34 34 2c 2d 31 30 30 2c  |d_Info,144,-100,|
00000630  36 39 34 2c 20 2d 35 32  2c 26 30 37 30 30 30 31  |694, -52,&070001|
00000640  31 39 2c 22 56 65 72 73  69 6f 6e 20 32 2e 30 34  |19,"Version 2.04|
00000650  20 28 32 38 20 41 70 72  69 6c 20 31 39 39 31 29  | (28 April 1991)|
00000660  22 29 0d 01 a4 56 f2 43  72 65 61 74 65 5f 49 63  |")...V.Create_Ic|
00000670  6f 6e 28 57 69 6e 64 5f  49 6e 66 6f 2c 31 34 34  |on(Wind_Info,144|
00000680  2c 2d 31 34 38 2c 36 39  34 2c 2d 31 30 30 2c 26  |,-148,694,-100,&|
00000690  30 37 30 30 30 31 31 39  2c 22 42 79 20 54 69 6d  |07000119,"By Tim|
000006a0  6d 65 72 6d 61 6e 73 20  41 6e 64 72 e9 20 a9 20  |mermans Andr. . |
000006b0  41 53 50 20 39 31 22 29  0d 01 ae 5a f2 43 72 65  |ASP 91")...Z.Cre|
000006c0  61 74 65 5f 49 63 6f 6e  28 57 69 6e 64 5f 49 6e  |ate_Icon(Wind_In|
000006d0  66 6f 2c 20 31 32 2c 2d  32 31 36 2c 36 39 34 2c  |fo, 12,-216,694,|
000006e0  2d 31 35 36 2c 26 30 37  30 30 30 31 33 44 2c 22  |-156,&0700013D,"|
000006f0  41 6c 74 20 4b 65 79 73  20 45 6d 75 6c 61 74 6f  |Alt Keys Emulato|
00000700  72 20 26 20 46 6f 6e 74  73 20 56 69 65 77 65 72  |r & Fonts Viewer|
00000710  22 29 0d 01 b8 43 f2 43  72 65 61 74 65 5f 49 63  |")...C.Create_Ic|
00000720  6f 6e 28 57 69 6e 64 5f  49 6e 66 6f 2c 20 31 32  |on(Wind_Info, 12|
00000730  2c 2d 31 34 34 2c 31 33  32 2c 20 2d 31 36 2c 26  |,-144,132, -16,&|
00000740  43 37 30 30 30 31 31 45  2c 22 21 63 68 61 72 5f  |C700011E,"!char_|
00000750  73 65 74 22 29 0d 01 c2  04 0d 01 cc 51 24 4d 5f  |set").......Q$M_|
00000760  49 63 6f 6e 25 3d 22 43  68 61 72 5f 53 65 74 22  |Icon%="Char_Set"|
00000770  3a 4d 5f 49 63 6f 6e 25  21 31 32 3d 26 30 32 30  |:M_Icon%!12=&020|
00000780  37 3a 4d 5f 49 63 6f 6e  25 21 31 36 3d 39 36 3a  |7:M_Icon%!16=96:|
00000790  4d 5f 49 63 6f 6e 25 21  32 30 3d 34 30 3a 4d 5f  |M_Icon%!20=40:M_|
000007a0  49 63 6f 6e 25 21 32 34  3d 30 0d 01 d6 4f 4d 5f  |Icon%!24=0...OM_|
000007b0  49 63 6f 6e 25 21 32 38  3d 30 3a 4d 5f 49 63 6f  |Icon%!28=0:M_Ico|
000007c0  6e 25 21 33 32 3d 57 69  6e 64 5f 49 6e 66 6f 3a  |n%!32=Wind_Info:|
000007d0  4d 5f 49 63 6f 6e 25 21  33 36 3d 26 30 37 30 30  |M_Icon%!36=&0700|
000007e0  30 30 32 31 3a 24 28 4d  5f 49 63 6f 6e 25 2b 34  |0021:$(M_Icon%+4|
000007f0  30 29 3d 22 49 6e 66 6f  22 0d 01 e0 50 4d 5f 49  |0)="Info"...PM_I|
00000800  63 6f 6e 25 21 35 32 3d  30 3a 4d 5f 49 63 6f 6e  |con%!52=0:M_Icon|
00000810  25 21 35 36 3d 57 69 6e  64 5f 5a 6f 6f 6d 3a 4d  |%!56=Wind_Zoom:M|
00000820  5f 49 63 6f 6e 25 21 36  30 3d 26 30 37 30 30 30  |_Icon%!60=&07000|
00000830  30 32 31 3a 24 28 4d 5f  49 63 6f 6e 25 2b 36 34  |021:$(M_Icon%+64|
00000840  29 3d 22 53 63 61 6c 65  22 0d 01 ea 4a 4d 5f 49  |)="Scale"...JM_I|
00000850  63 6f 6e 25 21 37 36 3d  26 38 30 3a 4d 5f 49 63  |con%!76=&80:M_Ic|
00000860  6f 6e 25 21 38 30 3d 2d  31 3a 4d 5f 49 63 6f 6e  |on%!80=-1:M_Icon|
00000870  25 21 38 34 3d 26 30 37  30 30 30 30 32 31 3a 24  |%!84=&07000021:$|
00000880  28 4d 5f 49 63 6f 6e 25  2b 38 38 29 3d 22 51 75  |(M_Icon%+88)="Qu|
00000890  69 74 22 0d 01 f4 04 0d  01 fe 0a 4e 55 4c 4c 3d  |it"........NULL=|
000008a0  30 0d 02 08 0c de 20 66  5f 70 25 20 34 0d 02 12  |0..... f_p% 4...|
000008b0  0e 21 66 5f 70 25 3d 4e  55 4c 4c 0d 02 1c 08 63  |.!f_p%=NULL....c|
000008c0  25 3d 30 0d 02 26 05 f5  0d 02 30 29 20 c8 99 20  |%=0..&....0) .. |
000008d0  22 46 6f 6e 74 5f 4c 69  73 74 46 6f 6e 74 73 22  |"Font_ListFonts"|
000008e0  2c 2c 71 25 2c 63 25 2c  2d 31 20 b8 20 2c 2c 63  |,,q%,c%,-1 . ,,c|
000008f0  25 0d 02 3a 22 20 e7 20  63 25 3c 3e 2d 31 20 8c  |%..:" . c%<>-1 .|
00000900  20 f2 46 61 6d 69 6c 79  28 a4 49 6e 66 6f 28 71  | .Family(.Info(q|
00000910  25 29 29 0d 02 44 0b fd  20 63 25 3d 2d 31 0d 02  |%))..D.. c%=-1..|
00000920  4e 04 0d 02 58 1b de 20  4d 5f 46 6f 6e 74 25 20  |N...X.. M_Font% |
00000930  32 38 2b 32 34 2a 6e 5f  66 6f 6e 74 25 0d 02 62  |28+24*n_font%..b|
00000940  45 24 4d 5f 46 6f 6e 74  25 3d 22 46 6f 6e 74 73  |E$M_Font%="Fonts|
00000950  20 6c 69 73 74 22 3a 4d  5f 46 6f 6e 74 25 21 31  | list":M_Font%!1|
00000960  32 3d 26 30 32 30 37 3a  4d 5f 46 6f 6e 74 25 21  |2=&0207:M_Font%!|
00000970  32 30 3d 34 30 3a 4d 5f  46 6f 6e 74 25 21 32 34  |20=40:M_Font%!24|
00000980  3d 30 0d 02 6c 4a 4d 5f  46 6f 6e 74 25 21 32 38  |=0..lJM_Font%!28|
00000990  3d 31 3a 4d 5f 46 6f 6e  74 25 21 33 32 3d 2d 31  |=1:M_Font%!32=-1|
000009a0  3a 4d 5f 46 6f 6e 74 25  21 33 36 3d 26 30 37 30  |:M_Font%!36=&070|
000009b0  30 30 30 32 31 3a 24 28  4d 5f 46 6f 6e 74 25 2b  |00021:$(M_Font%+|
000009c0  34 30 29 3d 22 53 79 73  74 65 6d 22 0d 02 76 04  |40)="System"..v.|
000009d0  0d 02 80 27 77 69 64 74  68 25 3d 38 3a 70 25 3d  |...'width%=8:p%=|
000009e0  4d 5f 46 6f 6e 74 25 2b  32 38 3a 72 25 3d 66 5f  |M_Font%+28:r%=f_|
000009f0  70 25 3a 6e 25 3d 32 0d  02 8a 12 c8 95 20 6e 25  |p%:n%=2...... n%|
00000a00  3c 3d 6e 5f 66 6f 6e 74  25 0d 02 94 0b 20 70 25  |<=n_font%.... p%|
00000a10  2b 3d 32 34 0d 02 9e 15  20 66 24 3d a4 49 6e 66  |+=24.... f$=.Inf|
00000a20  6f 28 21 72 25 2b 31 32  29 0d 02 a8 20 20 77 69  |o(!r%+12)...  wi|
00000a30  64 74 68 25 3d a4 4d 61  78 28 77 69 64 74 68 25  |dth%=.Max(width%|
00000a40  2c a9 28 66 24 29 2b 31  29 0d 02 b2 19 20 21 70  |,.(f$)+1).... !p|
00000a50  25 3d 30 3a 70 25 21 38  3d 26 30 37 30 30 30 31  |%=0:p%!8=&070001|
00000a60  32 31 0d 02 bc 11 20 70  25 21 31 32 3d 21 72 25  |21.... p%!12=!r%|
00000a70  2b 31 32 0d 02 c6 19 20  70 25 21 31 36 3d 2d 31  |+12.... p%!16=-1|
00000a80  3a 70 25 21 32 30 3d a9  28 66 24 29 0d 02 d0 0d  |:p%!20=.(f$)....|
00000a90  20 76 25 3d 21 72 25 2b  34 0d 02 da 2b 20 e7 20  | v%=!r%+4...+ . |
00000aa0  28 21 28 21 72 25 2b 38  29 20 3d 20 31 29 20 80  |(!(!r%+8) = 1) .|
00000ab0  20 a4 49 6e 66 6f 28 21  76 25 2b 34 29 20 3d 20  | .Info(!v%+4) = |
00000ac0  22 22 20 8c 0d 02 e4 0f  20 20 70 25 21 34 20 3d  |"" .....  p%!4 =|
00000ad0  20 2d 31 0d 02 ee 06 20  cc 0d 02 f8 1b 20 20 de  | -1.... .....  .|
00000ae0  20 70 25 21 34 20 32 38  2b 32 34 2a 21 28 21 72  | p%!4 28+24*!(!r|
00000af0  25 2b 38 29 0d 03 02 0d  20 20 74 25 3d 70 25 21  |%+8)....  t%=p%!|
00000b00  34 0d 03 0c 29 20 20 24  74 25 3d 66 24 3a 74 25  |4...)  $t%=f$:t%|
00000b10  21 31 32 3d 26 30 32 30  37 3a 74 25 21 32 30 3d  |!12=&0207:t%!20=|
00000b20  34 30 3a 74 25 21 32 34  3d 30 0d 03 16 0d 20 20  |40:t%!24=0....  |
00000b30  75 25 3d 74 25 2b 34 0d  03 20 15 20 20 77 69 64  |u%=t%+4.. .  wid|
00000b40  74 68 32 25 3d a9 28 66  24 29 2d 32 0d 03 2a 17  |th2%=.(f$)-2..*.|
00000b50  20 20 e3 20 73 25 3d 31  20 b8 20 21 28 21 72 25  |  . s%=1 . !(!r%|
00000b60  2b 38 29 0d 03 34 0d 20  20 20 75 25 2b 3d 32 34  |+8)..4.   u%+=24|
00000b70  0d 03 3e 16 20 20 20 66  24 3d a4 49 6e 66 6f 28  |..>.   f$=.Info(|
00000b80  21 76 25 2b 34 29 0d 03  48 24 20 20 20 77 69 64  |!v%+4)..H$   wid|
00000b90  74 68 32 25 3d a4 4d 61  78 28 77 69 64 74 68 32  |th2%=.Max(width2|
00000ba0  25 2c a9 28 66 24 29 2b  31 29 0d 03 52 23 20 20  |%,.(f$)+1)..R#  |
00000bb0  20 21 75 25 3d 30 3a 75  25 21 34 3d 2d 31 3a 75  | !u%=0:u%!4=-1:u|
00000bc0  25 21 38 3d 26 30 37 30  30 30 31 32 31 0d 03 5c  |%!8=&07000121..\|
00000bd0  12 20 20 20 75 25 21 31  32 3d 21 76 25 2b 34 0d  |.   u%!12=!v%+4.|
00000be0  03 66 1b 20 20 20 75 25  21 31 36 3d 2d 31 3a 75  |.f.   u%!16=-1:u|
00000bf0  25 21 32 30 3d a9 28 66  24 29 0d 03 70 0d 20 20  |%!20=.(f$)..p.  |
00000c00  20 76 25 3d 21 76 25 0d  03 7a 07 20 20 ed 0d 03  | v%=!v%..z.  ...|
00000c10  84 25 20 20 21 75 25 3d  20 21 75 25 20 84 20 26  |.%  !u%= !u% . &|
00000c20  38 30 3a 74 25 21 31 36  3d 31 36 2a 77 69 64 74  |80:t%!16=16*widt|
00000c30  68 32 25 0d 03 8e 06 20  cd 0d 03 98 0b 20 72 25  |h2%.... ..... r%|
00000c40  3d 21 72 25 0d 03 a2 0a  20 6e 25 2b 3d 31 0d 03  |=!r%.... n%+=1..|
00000c50  ac 05 ce 0d 03 b6 27 21  70 25 3d 20 21 70 25 20  |......'!p%= !p% |
00000c60  84 20 26 38 30 3a 4d 5f  46 6f 6e 74 25 21 31 36  |. &80:M_Font%!16|
00000c70  3d 31 36 2a 77 69 64 74  68 25 0d 03 c0 04 0d 03  |=16*width%......|
00000c80  ca 04 0d 03 d4 05 f5 0d  03 de 20 20 c8 99 20 22  |..........  .. "|
00000c90  57 69 6d 70 5f 50 6f 6c  6c 22 2c 26 34 42 33 2c  |Wimp_Poll",&4B3,|
00000ca0  71 25 20 b8 20 69 25 0d  03 e8 0c 20 c8 8e 20 69  |q% . i%.... .. i|
00000cb0  25 20 ca 0d 03 f2 09 20  20 c9 20 32 0d 03 fc 20  |% .....  . 2... |
00000cc0  20 20 20 c8 99 20 22 57  69 6d 70 5f 4f 70 65 6e  |   .. "Wimp_Open|
00000cd0  57 69 6e 64 6f 77 22 2c  30 2c 71 25 0d 04 06 09  |Window",0,q%....|
00000ce0  20 20 c9 20 33 0d 04 10  21 20 20 20 c8 99 20 22  |  . 3...!   .. "|
00000cf0  57 69 6d 70 5f 43 6c 6f  73 65 57 69 6e 64 6f 77  |Wimp_CloseWindow|
00000d00  22 2c 30 2c 71 25 0d 04  1a 09 20 20 c9 20 36 0d  |",0,q%....  . 6.|
00000d10  04 24 13 20 20 20 f2 4d  6f 75 73 65 5f 43 6c 69  |.$.   .Mouse_Cli|
00000d20  63 6b 0d 04 2e 09 20 20  c9 20 39 0d 04 38 13 20  |ck....  . 9..8. |
00000d30  20 20 f2 4d 65 6e 75 5f  53 65 6c 65 63 74 0d 04  |  .Menu_Select..|
00000d40  42 0d 20 20 c9 20 31 37  2c 31 38 0d 04 4c 0f 20  |B.  . 17,18..L. |
00000d50  20 20 f2 52 65 63 65 69  76 65 0d 04 56 05 cb 0d  |  .Receive..V...|
00000d60  04 60 07 fd 20 a3 0d 04  6a 04 0d 04 74 04 0d 04  |.`.. ...j...t...|
00000d70  7e 12 dd 20 f2 4d 6f 75  73 65 5f 43 6c 69 63 6b  |~.. .Mouse_Click|
00000d80  0d 04 88 10 ea 20 69 63  6f 6e 25 2c 76 61 6c 25  |..... icon%,val%|
00000d90  0d 04 92 04 0d 04 9c 0d  c8 8e 20 71 25 21 38 20  |.......... q%!8 |
00000da0  ca 0d 04 a6 08 20 c9 20  32 0d 04 b0 12 20 20 e7  |..... . 2....  .|
00000db0  20 71 25 21 31 32 3d 2d  32 20 8c 0d 04 ba 1c 20  | q%!12=-2 ..... |
00000dc0  20 20 24 28 7a 6f 6f 6d  5f 76 61 6c 25 29 3d c3  |  $(zoom_val%)=.|
00000dd0  28 73 69 7a 65 25 29 0d  04 c4 14 20 20 20 4d 65  |(size%)....   Me|
00000de0  6e 75 25 3d 4d 5f 49 63  6f 6e 25 0d 04 ce 3b 20  |nu%=M_Icon%...; |
00000df0  20 20 c8 99 20 22 57 69  6d 70 5f 43 72 65 61 74  |  .. "Wimp_Creat|
00000e00  65 4d 65 6e 75 22 2c 2c  4d 5f 49 63 6f 6e 25 2c  |eMenu",,M_Icon%,|
00000e10  21 71 25 2d 28 4d 5f 49  63 6f 6e 25 21 31 36 2f  |!q%-(M_Icon%!16/|
00000e20  32 29 2c 31 37 36 0d 04  d8 07 20 20 cc 0d 04 e2  |2),176....  ....|
00000e30  14 20 20 20 4d 65 6e 75  25 3d 4d 5f 46 6f 6e 74  |.   Menu%=M_Font|
00000e40  25 0d 04 ec 4b 20 20 20  c8 99 20 22 57 69 6d 70  |%...K   .. "Wimp|
00000e50  5f 43 72 65 61 74 65 4d  65 6e 75 22 2c 2c 4d 5f  |_CreateMenu",,M_|
00000e60  46 6f 6e 74 25 2c 21 71  25 2d 28 4d 5f 46 6f 6e  |Font%,!q%-(M_Fon|
00000e70  74 25 21 31 36 2f 32 29  2c 71 25 21 34 2b 28 4d  |t%!16/2),q%!4+(M|
00000e80  5f 46 6f 6e 74 25 21 32  30 2f 32 29 0d 04 f6 07  |_Font%!20/2)....|
00000e90  20 20 cd 0d 05 00 06 20  7f 0d 05 0a 10 20 20 c8  |  ..... .....  .|
00000ea0  8e 20 71 25 21 31 32 20  ca 0d 05 14 0b 20 20 20  |. q%!12 .....   |
00000eb0  c9 20 2d 32 0d 05 1e 32  20 20 20 20 21 71 25 3d  |. -2...2    !q%=|
00000ec0  57 69 6e 64 5f 4b 65 79  3a c8 99 20 22 57 69 6d  |Wind_Key:.. "Wim|
00000ed0  70 5f 47 65 74 57 69 6e  64 6f 77 53 74 61 74 65  |p_GetWindowState|
00000ee0  22 2c 30 2c 71 25 0d 05  28 2a 20 20 20 20 71 25  |",0,q%..(*    q%|
00000ef0  21 32 38 3d 2d 31 3a c8  99 20 22 57 69 6d 70 5f  |!28=-1:.. "Wimp_|
00000f00  4f 70 65 6e 57 69 6e 64  6f 77 22 2c 30 2c 71 25  |OpenWindow",0,q%|
00000f10  0d 05 32 11 20 20 20 c9  20 57 69 6e 64 5f 4b 65  |..2.   . Wind_Ke|
00000f20  79 0d 05 3c 14 20 20 20  20 e7 20 71 25 21 31 36  |y..<.    . q%!16|
00000f30  3e 2d 31 20 8c 0d 05 46  14 20 20 20 20 20 69 63  |>-1 ...F.     ic|
00000f40  6f 6e 25 3d 71 25 21 31  36 0d 05 50 28 20 20 20  |on%=q%!16..P(   |
00000f50  20 20 c8 99 20 22 57 69  6d 70 5f 47 65 74 43 61  |  .. "Wimp_GetCa|
00000f60  72 65 74 50 6f 73 69 74  69 6f 6e 22 2c 30 2c 71  |retPosition",0,q|
00000f70  25 0d 05 5a 33 20 20 20  20 20 e7 20 71 25 21 30  |%..Z3     . q%!0|
00000f80  3c 3e 2d 31 20 8c 20 c8  99 20 22 57 69 6d 70 5f  |<>-1 . .. "Wimp_|
00000f90  50 72 6f 63 65 73 73 4b  65 79 22 2c 33 32 2b 69  |ProcessKey",32+i|
00000fa0  63 6f 6e 25 0d 05 64 09  20 20 20 20 cd 0d 05 6e  |con%..d.    ...n|
00000fb0  12 20 20 20 c9 20 57 69  6e 64 5f 5a 6f 6f 6d 0d  |.   . Wind_Zoom.|
00000fc0  05 78 12 20 20 20 20 c8  8e 20 71 25 21 31 36 20  |.x.    .. q%!16 |
00000fd0  ca 0d 05 82 0c 20 20 20  20 20 c9 20 32 0d 05 8c  |.....     . 2...|
00000fe0  22 20 20 20 20 20 20 76  61 6c 25 3d bb 28 a4 49  |"      val%=.(.I|
00000ff0  6e 66 6f 28 7a 6f 6f 6d  5f 76 61 6c 25 29 29 0d  |nfo(zoom_val%)).|
00001000  05 96 2a 20 20 20 20 20  20 24 28 7a 6f 6f 6d 5f  |..*      $(zoom_|
00001010  76 61 6c 25 29 3d c3 28  76 61 6c 25 2b 34 2a 28  |val%)=.(val%+4*(|
00001020  76 61 6c 25 3e 34 38 29  29 0d 05 a0 2d 20 20 20  |val%>48))...-   |
00001030  20 20 20 21 71 25 3d 57  69 6e 64 5f 5a 6f 6f 6d  |   !q%=Wind_Zoom|
00001040  3a 71 25 21 34 3d 31 3a  71 25 21 38 3d 30 3a 71  |:q%!4=1:q%!8=0:q|
00001050  25 21 31 32 3d 30 0d 05  aa 24 20 20 20 20 20 20  |%!12=0...$      |
00001060  c8 99 20 22 57 69 6d 70  5f 53 65 74 49 63 6f 6e  |.. "Wimp_SetIcon|
00001070  53 74 61 74 65 22 2c 2c  71 25 0d 05 b4 0c 20 20  |State",,q%....  |
00001080  20 20 20 c9 20 33 0d 05  be 22 20 20 20 20 20 20  |   . 3..."      |
00001090  76 61 6c 25 3d bb 28 a4  49 6e 66 6f 28 7a 6f 6f  |val%=.(.Info(zoo|
000010a0  6d 5f 76 61 6c 25 29 29  0d 05 c8 2a 20 20 20 20  |m_val%))...*    |
000010b0  20 20 24 28 7a 6f 6f 6d  5f 76 61 6c 25 29 3d c3  |  $(zoom_val%)=.|
000010c0  28 76 61 6c 25 2d 34 2a  28 76 61 6c 25 3c 37 32  |(val%-4*(val%<72|
000010d0  29 29 0d 05 d2 2d 20 20  20 20 20 20 21 71 25 3d  |))...-      !q%=|
000010e0  57 69 6e 64 5f 5a 6f 6f  6d 3a 71 25 21 34 3d 31  |Wind_Zoom:q%!4=1|
000010f0  3a 71 25 21 38 3d 30 3a  71 25 21 31 32 3d 30 0d  |:q%!8=0:q%!12=0.|
00001100  05 dc 24 20 20 20 20 20  20 c8 99 20 22 57 69 6d  |..$      .. "Wim|
00001110  70 5f 53 65 74 49 63 6f  6e 53 74 61 74 65 22 2c  |p_SetIconState",|
00001120  2c 71 25 0d 05 e6 0c 20  20 20 20 20 c9 20 34 0d  |,q%....     . 4.|
00001130  05 f0 23 20 20 20 20 20  20 73 69 7a 65 25 3d bb  |..#      size%=.|
00001140  28 a4 49 6e 66 6f 28 7a  6f 6f 6d 5f 76 61 6c 25  |(.Info(zoom_val%|
00001150  29 29 0d 05 fa 16 20 20  20 20 20 20 21 71 25 3d  |))....      !q%=|
00001160  57 69 6e 64 5f 4b 65 79  0d 06 04 24 20 20 20 20  |Wind_Key...$    |
00001170  20 20 c8 99 20 22 57 69  6d 70 5f 44 65 6c 65 74  |  .. "Wimp_Delet|
00001180  65 57 69 6e 64 6f 77 22  2c 2c 71 25 0d 06 0e 1a  |eWindow",,q%....|
00001190  20 20 20 20 20 20 f2 43  72 65 61 74 65 5f 57 46  |      .Create_WF|
000011a0  6f 6e 74 53 65 74 0d 06  18 24 20 20 20 20 20 20  |ontSet...$      |
000011b0  f2 4c 6f 73 65 5f 46 6f  6e 74 28 66 61 6d 69 6c  |.Lose_Font(famil|
000011c0  79 25 2c 73 74 79 6c 65  25 29 0d 06 22 2c 20 20  |y%,style%)..",  |
000011d0  20 20 20 20 66 6f 6e 74  25 3d a4 55 70 64 61 74  |    font%=.Updat|
000011e0  65 5f 43 68 61 72 28 66  61 6d 69 6c 79 25 2c 73  |e_Char(family%,s|
000011f0  74 79 6c 65 25 29 0d 06  2c 34 20 20 20 20 20 20  |tyle%)..,4      |
00001200  21 71 25 3d 57 69 6e 64  5f 4b 65 79 3a c8 99 20  |!q%=Wind_Key:.. |
00001210  22 57 69 6d 70 5f 47 65  74 57 69 6e 64 6f 77 53  |"Wimp_GetWindowS|
00001220  74 61 74 65 22 2c 30 2c  71 25 0d 06 36 2c 20 20  |tate",0,q%..6,  |
00001230  20 20 20 20 71 25 21 32  38 3d 2d 31 3a c8 99 20  |    q%!28=-1:.. |
00001240  22 57 69 6d 70 5f 4f 70  65 6e 57 69 6e 64 6f 77  |"Wimp_OpenWindow|
00001250  22 2c 30 2c 71 25 0d 06  40 09 20 20 20 20 cb 0d  |",0,q%..@.    ..|
00001260  06 4a 07 20 20 cb 0d 06  54 05 cb 0d 06 5e 05 e1  |.J.  ...T....^..|
00001270  0d 06 68 04 0d 06 72 04  0d 06 7c 12 dd 20 f2 4d  |..h...r...|.. .M|
00001280  65 6e 75 5f 53 65 6c 65  63 74 0d 06 86 04 0d 06  |enu_Select......|
00001290  90 0e c8 8e 20 4d 65 6e  75 25 20 ca 0d 06 9a 0e  |.... Menu% .....|
000012a0  20 c9 20 4d 5f 49 63 6f  6e 25 0d 06 a4 26 20 20  | . M_Icon%...&  |
000012b0  20 e7 20 21 71 25 3d 32  20 8c 20 c8 99 20 22 57  | . !q%=2 . .. "W|
000012c0  69 6d 70 5f 43 6c 6f 73  65 44 6f 77 6e 22 3a e0  |imp_CloseDown":.|
000012d0  0d 06 ae 0e 20 c9 20 4d  5f 46 6f 6e 74 25 0d 06  |.... . M_Font%..|
000012e0  b8 20 20 20 f2 4c 6f 73  65 5f 46 6f 6e 74 28 66  |.   .Lose_Font(f|
000012f0  61 6d 69 6c 79 25 2c 73  74 79 6c 65 25 29 0d 06  |amily%,style%)..|
00001300  c2 0f 20 20 e7 20 21 71  25 3d 30 20 8c 0d 06 cc  |..  . !q%=0 ....|
00001310  1a 20 20 20 66 61 6d 69  6c 79 25 3d 30 3a 73 74  |.   family%=0:st|
00001320  79 6c 65 25 3d 2d 31 0d  06 d6 07 20 20 cc 0d 06  |yle%=-1....  ...|
00001330  e0 2d 20 20 20 e7 20 28  71 25 21 34 20 3e 20 2d  |.-   . (q%!4 > -|
00001340  31 20 84 20 4d 65 6e 75  25 21 28 33 32 2b 32 34  |1 . Menu%!(32+24|
00001350  2a 21 71 25 29 3d 2d 31  29 20 8c 0d 06 ea 1f 20  |*!q%)=-1) ..... |
00001360  20 20 20 66 61 6d 69 6c  79 25 3d 21 71 25 3a 73  |   family%=!q%:s|
00001370  74 79 6c 65 25 3d 71 25  21 34 0d 06 f4 08 20 20  |tyle%=q%!4....  |
00001380  20 cd 0d 06 fe 07 20 20  cd 0d 07 08 28 20 20 66  | .....  ....(  f|
00001390  6f 6e 74 25 3d a4 55 70  64 61 74 65 5f 43 68 61  |ont%=.Update_Cha|
000013a0  72 28 66 61 6d 69 6c 79  25 2c 73 74 79 6c 65 25  |r(family%,style%|
000013b0  29 0d 07 12 05 cb 0d 07  1c 20 c8 99 20 22 57 69  |)........ .. "Wi|
000013c0  6d 70 5f 47 65 74 50 6f  69 6e 74 65 72 49 6e 66  |mp_GetPointerInf|
000013d0  6f 22 2c 2c 71 25 0d 07  26 0e e7 20 71 25 21 38  |o",,q%..&.. q%!8|
000013e0  3d 31 20 8c 0d 07 30 20  20 c8 99 20 22 57 69 6d  |=1 ...0  .. "Wim|
000013f0  70 5f 43 72 65 61 74 65  4d 65 6e 75 22 2c 2c 4d  |p_CreateMenu",,M|
00001400  65 6e 75 25 0d 07 3a 05  cd 0d 07 44 05 e1 0d 07  |enu%..:....D....|
00001410  4e 04 0d 07 58 04 0d 07  62 0e dd 20 f2 52 65 63  |N...X...b.. .Rec|
00001420  65 69 76 65 0d 07 6c 04  0d 07 76 0e c8 8e 20 71  |eive..l...v... q|
00001430  25 21 31 36 20 ca 0d 07  80 08 20 c9 20 30 0d 07  |%!16 ..... . 0..|
00001440  8a 1b 20 20 c8 99 20 22  57 69 6d 70 5f 43 6c 6f  |..  .. "Wimp_Clo|
00001450  73 65 44 6f 77 6e 22 3a  e0 0d 07 94 0d 20 c9 20  |seDown":..... . |
00001460  26 34 30 30 43 31 0d 07  9e 28 20 20 66 6f 6e 74  |&400C1...(  font|
00001470  25 3d a4 55 70 64 61 74  65 5f 43 68 61 72 28 66  |%=.Update_Char(f|
00001480  61 6d 69 6c 79 25 2c 73  74 79 6c 65 25 29 0d 07  |amily%,style%)..|
00001490  a8 05 cb 0d 07 b2 05 e1  0d 07 bc 04 0d 07 c6 04  |................|
000014a0  0d 07 d0 35 dd 20 f2 43  72 65 61 74 65 5f 49 63  |...5. .Create_Ic|
000014b0  6f 6e 28 77 69 6e 64 25  2c 78 30 25 2c 79 30 25  |on(wind%,x0%,y0%|
000014c0  2c 78 31 25 2c 79 31 25  2c 66 6c 61 67 25 2c 64  |,x1%,y1%,flag%,d|
000014d0  61 74 61 24 29 0d 07 da  04 0d 07 e4 3f 21 71 25  |ata$).......?!q%|
000014e0  3d 77 69 6e 64 25 3a 71  25 21 34 3d 78 30 25 3a  |=wind%:q%!4=x0%:|
000014f0  71 25 21 38 3d 79 30 25  3a 71 25 21 31 32 3d 78  |q%!8=y0%:q%!12=x|
00001500  31 25 3a 71 25 21 31 36  3d 79 31 25 3a 71 25 21  |1%:q%!16=y1%:q%!|
00001510  32 30 3d 66 6c 61 67 25  0d 07 ee 19 e7 20 28 66  |20=flag%..... (f|
00001520  6c 61 67 25 20 80 20 26  31 30 30 29 3c 3e 30 20  |lag% . &100)<>0 |
00001530  8c 0d 07 f8 17 20 de 20  71 25 21 32 34 20 a9 28  |..... . q%!24 .(|
00001540  64 61 74 61 24 29 2b 31  0d 08 02 2b 20 71 25 21  |data$)+1...+ q%!|
00001550  32 38 3d 2d 31 3a 71 25  21 33 32 3d a9 28 64 61  |28=-1:q%!32=.(da|
00001560  74 61 24 29 3a 24 28 71  25 21 32 34 29 3d 64 61  |ta$):$(q%!24)=da|
00001570  74 61 24 0d 08 0c 21 20  e7 20 66 6c 61 67 25 20  |ta$...! . flag% |
00001580  80 20 32 20 8c 20 71 25  21 32 38 3d 73 70 72 69  |. 2 . q%!28=spri|
00001590  74 65 73 25 0d 08 16 05  cc 0d 08 20 13 20 24 28  |tes%....... . $(|
000015a0  71 25 2b 32 34 29 3d 64  61 74 61 24 0d 08 2a 05  |q%+24)=data$..*.|
000015b0  cd 0d 08 34 1d c8 99 20  22 57 69 6d 70 5f 43 72  |...4... "Wimp_Cr|
000015c0  65 61 74 65 49 63 6f 6e  22 2c 30 2c 71 25 0d 08  |eateIcon",0,q%..|
000015d0  3e 05 e1 0d 08 48 04 0d  08 52 10 dd a4 4d 61 78  |>....H...R...Max|
000015e0  28 61 25 2c 62 25 29 0d  08 5c 04 0d 08 66 17 e7  |(a%,b%)..\...f..|
000015f0  20 61 25 3e 62 25 20 8c  20 3d 61 25 20 8b 20 3d  | a%>b% . =a% . =|
00001600  62 25 0d 08 70 04 0d 08  7a 04 0d 08 84 0e dd a4  |b%..p...z.......|
00001610  49 6e 66 6f 28 70 25 29  0d 08 8e 08 ea 20 61 24  |Info(p%)..... a$|
00001620  0d 08 98 04 0d 08 a2 09  61 24 3d 22 22 0d 08 ac  |........a$=""...|
00001630  19 c8 95 20 28 3f 70 25  3c 3e 30 20 80 20 3f 70  |... (?p%<>0 . ?p|
00001640  25 3c 3e 31 33 29 0d 08  b6 0f 20 61 24 2b 3d bd  |%<>13).... a$+=.|
00001650  28 3f 70 25 29 0d 08 c0  0a 20 70 25 2b 3d 31 0d  |(?p%).... p%+=1.|
00001660  08 ca 05 ce 0d 08 d4 07  3d 61 24 0d 08 de 04 0d  |........=a$.....|
00001670  08 e8 04 0d 08 f2 14 dd  20 f2 46 61 6d 69 6c 79  |........ .Family|
00001680  28 66 6f 6e 74 24 29 0d  08 fc 22 ea 20 66 61 6d  |(font$)...". fam|
00001690  69 6c 79 24 2c 73 74 79  6c 65 24 2c 70 25 2c 66  |ily$,style$,p%,f|
000016a0  6c 61 67 25 2c 70 6f 73  25 0d 09 06 04 0d 09 10  |lag%,pos%.......|
000016b0  14 70 6f 73 25 3d a7 66  6f 6e 74 24 2c 22 2e 22  |.pos%=.font$,"."|
000016c0  29 0d 09 1a 1a 66 61 6d  69 6c 79 24 3d c0 66 6f  |)....family$=.fo|
000016d0  6e 74 24 2c 70 6f 73 25  2d 31 29 0d 09 24 10 e7  |nt$,pos%-1)..$..|
000016e0  20 70 6f 73 25 20 3d 20  30 20 8c 0d 09 2e 0e 20  | pos% = 0 ..... |
000016f0  73 74 79 6c 65 24 3d 22  22 0d 09 38 05 cc 0d 09  |style$=""..8....|
00001700  42 1a 20 73 74 79 6c 65  24 3d c1 66 6f 6e 74 24  |B. style$=.font$|
00001710  2c 70 6f 73 25 2b 31 29  0d 09 4c 05 cd 0d 09 56  |,pos%+1)..L....V|
00001720  13 70 25 3d 66 5f 70 25  3a 66 6c 61 67 25 3d a3  |.p%=f_p%:flag%=.|
00001730  0d 09 60 1e c8 95 20 28  21 70 25 20 3c 3e 20 4e  |..`... (!p% <> N|
00001740  55 4c 4c 20 80 20 66 6c  61 67 25 3d a3 29 0d 09  |ULL . flag%=.)..|
00001750  6a 29 20 e7 20 66 61 6d  69 6c 79 24 20 3d 20 a4  |j) . family$ = .|
00001760  49 6e 66 6f 28 21 70 25  2b 31 32 29 20 8c 20 66  |Info(!p%+12) . f|
00001770  6c 61 67 25 3d 20 b9 0d  09 74 0c 20 70 25 20 3d  |lag%= ...t. p% =|
00001780  21 70 25 0d 09 7e 05 ce  0d 09 88 0f e7 20 66 6c  |!p%..~....... fl|
00001790  61 67 25 3d a3 20 8c 0d  09 92 19 20 de 20 70 25  |ag%=. ..... . p%|
000017a0  21 30 20 a9 28 66 61 6d  69 6c 79 24 29 2b 31 33  |!0 .(family$)+13|
000017b0  0d 09 9c 0b 20 70 25 3d  21 70 25 0d 09 a6 0d 20  |.... p%=!p%.... |
000017c0  21 70 25 3d 4e 55 4c 4c  0d 09 b0 0b 20 70 25 21  |!p%=NULL.... p%!|
000017d0  38 3d 31 0d 09 ba 15 20  24 28 70 25 2b 31 32 29  |8=1.... $(p%+12)|
000017e0  3d 66 61 6d 69 6c 79 24  0d 09 c4 17 20 de 20 70  |=family$.... . p|
000017f0  25 21 34 20 a9 28 73 74  79 6c 65 24 29 2b 35 0d  |%!4 .(style$)+5.|
00001800  09 ce 0c 20 70 25 3d 70  25 21 34 0d 09 d8 0d 20  |... p%=p%!4.... |
00001810  21 70 25 3d 4e 55 4c 4c  0d 09 e2 13 20 24 28 70  |!p%=NULL.... $(p|
00001820  25 2b 34 29 3d 73 74 79  6c 65 24 0d 09 ec 0f 20  |%+4)=style$.... |
00001830  6e 5f 66 6f 6e 74 25 2b  3d 31 0d 09 f6 05 cc 0d  |n_font%+=1......|
00001840  0a 00 10 20 70 25 21 38  3d 70 25 21 38 2b 31 0d  |... p%!8=p%!8+1.|
00001850  0a 0a 0c 20 70 25 3d 70  25 2b 34 0d 0a 14 15 20  |... p%=p%+4.... |
00001860  c8 95 20 28 21 70 25 20  3c 3e 20 4e 55 4c 4c 29  |.. (!p% <> NULL)|
00001870  0d 0a 1e 0c 20 20 70 25  3d 21 70 25 0d 0a 28 06  |....  p%=!p%..(.|
00001880  20 ce 0d 0a 32 17 20 de  20 70 25 21 30 20 a9 28  | ...2. . p%!0 .(|
00001890  73 74 79 6c 65 24 29 2b  35 0d 0a 3c 0b 20 70 25  |style$)+5..<. p%|
000018a0  3d 21 70 25 0d 0a 46 0d  20 21 70 25 3d 4e 55 4c  |=!p%..F. !p%=NUL|
000018b0  4c 0d 0a 50 13 20 24 28  70 25 2b 34 29 3d 73 74  |L..P. $(p%+4)=st|
000018c0  79 6c 65 24 0d 0a 5a 05  cd 0d 0a 64 05 e1 0d 0a  |yle$..Z....d....|
000018d0  6e 04 0d 0a 78 04 0d 0a  82 20 dd 20 f2 4c 6f 73  |n...x.... . .Los|
000018e0  65 5f 46 6f 6e 74 28 66  61 6d 69 6c 79 25 2c 73  |e_Font(family%,s|
000018f0  74 79 6c 65 25 29 0d 0a  8c 08 ea 20 70 25 0d 0a  |tyle%)..... p%..|
00001900  96 04 0d 0a a0 1c 70 25  3d 4d 5f 46 6f 6e 74 25  |......p%=M_Font%|
00001910  2b 32 38 2b 66 61 6d 69  6c 79 25 2a 32 34 0d 0a  |+28+family%*24..|
00001920  aa 19 21 70 25 20 3d 20  21 70 25 20 80 20 26 46  |..!p% = !p% . &F|
00001930  46 46 46 46 46 46 45 0d  0a b4 11 e7 20 66 61 6d  |FFFFFFE..... fam|
00001940  69 6c 79 25 3e 30 20 8c  0d 0a be 1d 20 c8 99 20  |ily%>0 ..... .. |
00001950  22 46 6f 6e 74 5f 4c 6f  73 65 46 6f 6e 74 22 2c  |"Font_LoseFont",|
00001960  66 6f 6e 74 25 0d 0a c8  14 20 e7 20 73 74 79 6c  |font%.... . styl|
00001970  65 25 20 3e 20 2d 31 20  8c 0d 0a d2 1a 20 20 70  |e% > -1 .....  p|
00001980  25 3d 70 25 21 34 2b 32  38 2b 73 74 79 6c 65 25  |%=p%!4+28+style%|
00001990  2a 32 34 0d 0a dc 1b 20  20 21 70 25 20 3d 20 21  |*24....  !p% = !|
000019a0  70 25 20 80 20 26 46 46  46 46 46 46 46 45 0d 0a  |p% . &FFFFFFFE..|
000019b0  e6 06 20 cd 0d 0a f0 05  cd 0d 0a fa 05 e1 0d 0b  |.. .............|
000019c0  04 04 0d 0b 0e 04 0d 0b  18 21 dd a4 55 70 64 61  |.........!..Upda|
000019d0  74 65 5f 43 68 61 72 28  66 61 6d 69 6c 79 25 2c  |te_Char(family%,|
000019e0  73 74 79 6c 65 25 29 0d  0b 22 33 ea 20 66 24 2c  |style%).."3. f$,|
000019f0  66 6f 6e 74 25 2c 73 78  25 2c 73 79 25 2c 78 30  |font%,sx%,sy%,x0|
00001a00  25 2c 79 30 25 2c 78 31  25 2c 79 31 25 2c 69 25  |%,y0%,x1%,y1%,i%|
00001a10  2c 73 74 61 74 65 25 2c  70 25 0d 0b 2c 04 0d 0b  |,state%,p%..,...|
00001a20  36 1c 70 25 3d 4d 5f 46  6f 6e 74 25 2b 32 38 2b  |6.p%=M_Font%+28+|
00001a30  66 61 6d 69 6c 79 25 2a  32 34 0d 0b 40 11 21 70  |family%*24..@.!p|
00001a40  25 20 3d 20 21 70 25 20  84 20 31 0d 0b 4a 11 e7  |% = !p% . 1..J..|
00001a50  20 66 61 6d 69 6c 79 25  3e 30 20 8c 0d 0b 54 14  | family%>0 ...T.|
00001a60  20 66 24 3d a4 49 6e 66  6f 28 70 25 21 31 32 29  | f$=.Info(p%!12)|
00001a70  0d 0b 5e 1d 20 c8 99 20  22 46 6f 6e 74 5f 4c 6f  |..^. .. "Font_Lo|
00001a80  73 65 46 6f 6e 74 22 2c  66 6f 6e 74 25 0d 0b 68  |seFont",font%..h|
00001a90  14 20 e7 20 73 74 79 6c  65 25 20 3e 20 2d 31 20  |. . style% > -1 |
00001aa0  8c 0d 0b 72 1a 20 20 70  25 3d 70 25 21 34 2b 32  |...r.  p%=p%!4+2|
00001ab0  38 2b 73 74 79 6c 65 25  2a 32 34 0d 0b 7c 13 20  |8+style%*24..|. |
00001ac0  20 21 70 25 20 3d 20 21  70 25 20 84 20 31 0d 0b  | !p% = !p% . 1..|
00001ad0  86 1c 20 20 66 24 3d 66  24 2b 22 2e 22 2b a4 49  |..  f$=f$+"."+.I|
00001ae0  6e 66 6f 28 70 25 21 31  32 29 0d 0b 90 06 20 cd  |nfo(p%!12).... .|
00001af0  0d 0b 9a 3a 20 f4 20 74  72 79 20 74 6f 20 65 6e  |...: . try to en|
00001b00  73 75 72 65 20 6e 6f 77  20 73 61 6d 65 20 73 69  |sure now same si|
00001b10  7a 65 20 6f 6e 20 73 63  72 65 65 6e 20 66 6f 72  |ze on screen for|
00001b20  20 65 61 63 68 20 66 6f  6e 74 0d 0b a4 38 20 f4  | each font...8 .|
00001b30  20 62 75 74 20 70 6f 72  74 72 68 6f 75 73 65 20  | but portrhouse |
00001b40  69 73 20 73 68 6f 77 6e  65 64 20 73 6d 61 6c 6c  |is showned small|
00001b50  65 72 20 74 68 61 6e 20  74 68 65 20 6f 74 68 65  |er than the othe|
00001b60  72 73 0d 0b ae 2b 20 c8  99 20 22 46 6f 6e 74 5f  |rs...+ .. "Font_|
00001b70  46 69 6e 64 46 6f 6e 74  22 2c 2c 66 24 2c 31 36  |FindFont",,f$,16|
00001b80  30 2c 31 36 30 20 b8 20  66 6f 6e 74 25 0d 0b b8  |0,160 . font%...|
00001b90  30 20 c8 99 20 22 46 6f  6e 74 5f 52 65 61 64 49  |0 .. "Font_ReadI|
00001ba0  6e 66 6f 22 2c 66 6f 6e  74 25 20 b8 20 2c 78 30  |nfo",font% . ,x0|
00001bb0  25 2c 79 30 25 2c 78 31  25 2c 79 31 25 0d 0b c2  |%,y0%,x1%,y1%...|
00001bc0  1d 20 c8 99 20 22 46 6f  6e 74 5f 4c 6f 73 65 46  |. .. "Font_LoseF|
00001bd0  6f 6e 74 22 2c 66 6f 6e  74 25 0d 0b cc 2c 20 78  |ont",font%..., x|
00001be0  30 25 3d 31 36 30 2a 28  73 69 7a 65 25 2d 34 29  |0%=160*(size%-4)|
00001bf0  2f a4 4d 61 78 28 78 31  25 2d 78 30 25 2c 79 31  |/.Max(x1%-x0%,y1|
00001c00  25 2d 79 30 25 29 0d 0b  d6 2b 20 c8 99 20 22 46  |%-y0%)...+ .. "F|
00001c10  6f 6e 74 5f 46 69 6e 64  46 6f 6e 74 22 2c 2c 66  |ont_FindFont",,f|
00001c20  24 2c 78 30 25 2c 78 30  25 20 b8 20 66 6f 6e 74  |$,x0%,x0% . font|
00001c30  25 0d 0b e0 1b 20 73 74  61 74 65 25 3d 28 66 6f  |%.... state%=(fo|
00001c40  6e 74 25 3c 3c 32 34 29  2b 26 34 30 0d 0b ea 05  |nt%<<24)+&40....|
00001c50  cc 0d 0b f4 0d 20 66 6f  6e 74 25 3d 2d 31 0d 0b  |..... font%=-1..|
00001c60  fe 15 20 73 74 61 74 65  25 3d 26 30 37 30 30 30  |.. state%=&07000|
00001c70  30 30 30 0d 0c 08 05 cd  0d 0c 12 10 e3 20 69 25  |000.......... i%|
00001c80  3d 30 20 b8 20 32 32 33  0d 0c 1c 35 20 21 71 25  |=0 . 223...5 !q%|
00001c90  3d 57 69 6e 64 5f 4b 65  79 3a 71 25 21 34 3d 69  |=Wind_Key:q%!4=i|
00001ca0  25 3a 71 25 21 38 3d 73  74 61 74 65 25 3a 71 25  |%:q%!8=state%:q%|
00001cb0  21 31 32 3d 26 46 46 30  30 30 30 34 30 0d 0c 26  |!12=&FF000040..&|
00001cc0  1f 20 c8 99 20 22 57 69  6d 70 5f 53 65 74 49 63  |. .. "Wimp_SetIc|
00001cd0  6f 6e 53 74 61 74 65 22  2c 2c 71 25 0d 0c 30 05  |onState",,q%..0.|
00001ce0  ed 0d 0c 3a 0a 3d 66 6f  6e 74 25 0d 0c 44 04 0d  |...:.=font%..D..|
00001cf0  0c 4e 04 0d 0c 58 16 dd  20 f2 43 72 65 61 74 65  |.N...X.. .Create|
00001d00  5f 57 46 6f 6e 74 53 65  74 0d 0c 62 04 0d 0c 6c  |_WFontSet..b...l|
00001d10  35 21 71 25 3d 30 3a 71  25 21 34 3d 30 3a 71 25  |5!q%=0:q%!4=0:q%|
00001d20  21 38 3d 31 32 38 30 3a  71 25 21 31 32 3d 31 30  |!8=1280:q%!12=10|
00001d30  32 34 3a 71 25 21 31 36  3d 30 3a 71 25 21 32 30  |24:q%!16=0:q%!20|
00001d40  3d 30 0d 0c 76 3c 71 25  21 32 34 3d 2d 31 3a 71  |=0..v<q%!24=-1:q|
00001d50  25 21 32 38 3d 26 42 46  30 30 30 30 31 32 3a 71  |%!28=&BF000012:q|
00001d60  25 21 33 32 3d 26 30 30  30 37 30 32 30 37 3a 71  |%!32=&00070207:q|
00001d70  25 21 33 36 3d 26 30 30  30 31 30 31 30 33 0d 0c  |%!36=&00010103..|
00001d80  80 32 71 25 21 34 30 3d  30 3a 71 25 21 34 34 3d  |.2q%!40=0:q%!44=|
00001d90  2d 31 34 2a 73 69 7a 65  25 3a 71 25 21 34 38 3d  |-14*size%:q%!48=|
00001da0  31 36 2a 73 69 7a 65 25  3a 71 25 21 35 32 3d 30  |16*size%:q%!52=0|
00001db0  0d 0c 8a 33 71 25 21 35  36 3d 26 31 33 44 3a 71  |...3q%!56=&13D:q|
00001dc0  25 21 36 30 3d 30 3a 71  25 21 36 34 3d 30 3a 71  |%!60=0:q%!64=0:q|
00001dd0  25 21 36 38 3d 26 31 30  30 30 31 3a 71 25 21 38  |%!68=&10001:q%!8|
00001de0  34 3d 30 0d 0c 94 20 de  20 71 25 21 37 32 20 32  |4=0... . q%!72 2|
00001df0  35 3a 71 25 21 37 36 3d  2d 31 3a 71 25 21 38 30  |5:q%!76=-1:q%!80|
00001e00  3d 32 35 0d 0c 9e 26 24  28 71 25 21 37 32 29 3d  |=25...&$(q%!72)=|
00001e10  22 46 6f 6e 74 73 20 26  20 43 68 61 72 61 63 74  |"Fonts & Charact|
00001e20  65 72 73 20 53 65 74 73  22 0d 0c a8 2a c8 99 20  |ers Sets"...*.. |
00001e30  22 57 69 6d 70 5f 43 72  65 61 74 65 57 69 6e 64  |"Wimp_CreateWind|
00001e40  6f 77 22 2c 30 2c 71 25  20 b8 20 57 69 6e 64 5f  |ow",0,q% . Wind_|
00001e50  4b 65 79 0d 0c b2 04 0d  0c bc 1d e3 20 79 25 3d  |Key......... y%=|
00001e60  30 20 b8 20 31 33 2a 73  69 7a 65 25 20 88 20 73  |0 . 13*size% . s|
00001e70  69 7a 65 25 0d 0c c6 1e  20 e3 20 78 25 3d 30 20  |ize%.... . x%=0 |
00001e80  b8 20 31 35 2a 73 69 7a  65 25 20 88 20 73 69 7a  |. 15*size% . siz|
00001e90  65 25 0d 0c d0 5b 20 20  f2 43 72 65 61 74 65 5f  |e%...[  .Create_|
00001ea0  49 63 6f 6e 28 57 69 6e  64 5f 4b 65 79 2c 78 25  |Icon(Wind_Key,x%|
00001eb0  2c 2d 79 25 2d 73 69 7a  65 25 2b 31 2c 78 25 2b  |,-y%-size%+1,x%+|
00001ec0  73 69 7a 65 25 2d 31 2c  2d 79 25 2c 26 30 37 30  |size%-1,-y%,&070|
00001ed0  30 32 30 33 44 2c bd 28  33 32 2b 28 79 25 2a 31  |0203D,.(32+(y%*1|
00001ee0  36 2b 78 25 29 2f 73 69  7a 65 25 29 29 0d 0c da  |6+x%)/size%))...|
00001ef0  06 20 ed 0d 0c e4 05 ed  0d 0c ee 05 e1 0d ff     |. .............|
00001eff