Home » Archimedes archive » Micro User » MU 1991-03.adf » PD-Stuff » Music/!Player/Library

Music/!Player/Library

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 » Micro User » MU 1991-03.adf » PD-Stuff
Filename: Music/!Player/Library
Read OK:
File size: 136F bytes
Load address: 0000
Exec address: 0000
File contents
   10REM > Library
   20REM
   30REM
   40REM
   50
   60REM Procedures
   70REM
   80REM openmenu(menuaddress,x%,y%)
   90REM openwindow(windowhandle%,x%,y%,x1%,y1%)
  100REM closewindow(windowhandle%)
  110
  120REM functions
  130REM
  140REM createmenu()         (i)
  150REM initialisetask()     (i)
  160REM error()              (i)
  170REM errorwindow(text$,errornum,flags%)    (i)
  180REM createicon(windowhandle,minx%,miny%,maxx%,maxy%,flags,icon$)    (i)
  190
  200
  210
  220REM format of menu list
  230REM menu number - not presently used.
  240REM menu title
  250REM
  260REM
  270REM
  280REM
  290REM
  300REM
  310REM
  320REM
  330
  340REM text entry for item
  350REM
  360
  370REM * Marks last item on the list
  380REM # Indicates dotted line to follow this item
  390REM @ This item is indirected. Indirection address and length follow
  400REM ~ This item has a validation string. Address and valid$ follow
  410REM / This item is shaded
  420REM ^ This item has a sub menu whose handle follows
  430
  440
  450DEF FNcreatemenu
  460LOCAL loop%,flags%,submenuptr%,iflag%,address%,length%,valid%,valid$
  470errorpos$="createmenu"
  480
  490IF (menupointer + 28) > menuend THEN ERROR 1,"No room for menu creation"
  500
  510menustart = menupointer
  520
  530menupointer!&00 = &00000000
  540menupointer!&04 = &00000000
  550menupointer!&08 = &00000000
  560
  570READ menu
  580READ $menupointer
  590READ menupointer?&0C
  600READ menupointer?&0D
  610READ menupointer?&0E
  620READ menupointer?&0F
  630READ menupointer!&10
  640READ menupointer!&14
  650READ menupointer!&18
  660READ dflag%
  670
  680menupointer += &1c
  690
  700REPEAT
  710IF (menupointer + 24) > menuend THEN ERROR 1,"No room for menu creation"
  720
  730flags% = 0
  740submenuptr% = -1
  750iflag% = 0
  760valid% = -1
  770READ text$
  780
  790IF LEFT$(text$,1) = "*" THEN flags% = flags% OR &00000080 : text$ = MID$(text$,2)
  800IF LEFT$(text$,1) = "#" THEN flags% = flags% OR &00000002 : text$ = MID$(text$,2)
  810IF LEFT$(text$,1) = "@" THEN text$ = MID$(text$,2) : iflag% = &00000100 : READ address%,length%
  820IF LEFT$(text$,1) = "~" THEN flags% = flags% OR &00000004 : text$ = MID$(text$,2) : READ valid%,valid$
  830IF LEFT$(text$,1) = "/" THEN iflag% = iflag% OR 1<<22 : text$ = MID$(text$,2)
  840IF LEFT$(text$,1) = "^" THEN text$ = MID$(text$,2) : READ submenuptr%
  850
  860menupointer!&00 = flags%
  870menupointer!&04 = submenuptr%
  880REM                10987654321098765432109876543210
  890menupointer!&08 = %00000111000000000011000000010001 OR iflag% OR dflag%
  900
  910IF (iflag% AND &100) = 0 THEN
  920  menupointer!&0c = &00000000
  930  menupointer!&10 = &00000000
  940  menupointer!&14 = &00000000
  950  $(menupointer+&0c) = text$
  960ELSE
  970  menupointer!&0c = address%
  980  menupointer!&10 = valid%
  990  menupointer!&14 = length%
 1000  $address% = text$
 1010  IF valid% <> -1 THEN $valid% = valid$
 1020ENDIF
 1030menupointer += &18
 1040
 1050UNTIL (flags% AND &80)
 1060
 1070= menustart
 1080
 1090
 1100DEF PROCopenmenu(menuaddress,x%,y%)
 1110errorpos$="openmenu"
 1120SYS "Wimp_CreateMenu",,menuaddress,x%,y%
 1130currentmenu = menuaddress
 1140menux% = x%
 1150menuy% = y%
 1160ENDPROC
 1170
 1180
 1190DEF FNinitialisetask
 1200errorpos$="initialisetask"
 1210LOCAL taskid%,version%
 1220SYS "Wimp_Initialise",200,&4B534154,task$ TO version%,taskid%
 1230IF version% < 200 THEN ERROR 1,task$ + " requires Wimp Manager V 2.00 or later"
 1240= taskid%
 1250
 1260
 1270DEF FNerror
 1280IF ((ERR AND &10000) = &10000) OR (ERR = 1) THEN dummy = FNerrorwindow(REPORT$,ERR,1) : = 2
 1290= FNerrorwindow(REPORT$+". " + task$ + " has suffered a fatal error ("+STR$~(ERR)+STR$(ERL)+version$+") and must exit immediately.",ERR,7)
 1300
 1310
 1320DEF FNerrorwindow(text$,errornum,flags%)
 1330LOCAL errorresult
 1340!buffer% = errornum
 1350$(buffer%+4) = text$
 1360SYS "Wimp_ReportError",buffer%,flags%,task$ TO ,errorresult
 1370= errorresult
 1380
 1390
 1400DEF PROCopenwindow(windowhandle%,x%,y%,x1%,y1%)
 1410errorpos$="openwindow"
 1420wimpworkspace%!0 = windowhandle%
 1430wimpworkspace%!4 = x%
 1440wimpworkspace%!8 = y%
 1450wimpworkspace%!12 = x1%
 1460wimpworkspace%!16 = y1%
 1470wimpworkspace%!20 = 0
 1480wimpworkspace%!24 = 0
 1490wimpworkspace%!28 = -1
 1500
 1510SYS "Wimp_OpenWindow",,wimpworkspace%
 1520ENDPROC
 1530
 1540
 1550DEF PROCclosewindow(windowhandle%)
 1560errorpos$="closewindow"
 1570!wimpworkspace% = windowhandle%
 1580SYS "Wimp_CloseWindow",,wimpworkspace%
 1590ENDPROC
 1600
 1610 
 1620DEF FNcreateindirectedsprite(windowhandle,minx%,miny%,width,height,flags,spriteaddress,namebuffer,icon$)
 1630errorpos$="createindirectedsprite"
 1640LOCAL iconhandle
 1650
 1660wimpworkspace%!0  = windowhandle
 1670wimpworkspace%!4  = minx%
 1680wimpworkspace%!8  = miny%
 1690wimpworkspace%!12 = minx% + width
 1700wimpworkspace%!16 = miny% + height
 1710wimpworkspace%!20 = flags
 1720
 1730wimpworkspace%!24 = namebuffer
 1740wimpworkspace%!28 = spriteaddress
 1750wimpworkspace%!32 = LEN(icon$)
 1760$(wimpworkspace%!24) = icon$
 1770
 1780SYS "Wimp_CreateIcon",,wimpworkspace% TO iconhandle
 1790
 1800= iconhandle
 1810
 1820
 1830DEF FNcreateicon(windowhandle,minx%,miny%,maxx%,maxy%,flags,icon$)
 1840errorpos$="createicon"
 1850LOCAL iconhandle
 1860
 1870wimpworkspace%!0  = windowhandle
 1880wimpworkspace%!4  = minx%
 1890wimpworkspace%!8  = miny%
 1900wimpworkspace%!12 = maxx%
 1910wimpworkspace%!16 = maxy%
 1920wimpworkspace%!20 = flags
 1930
 1940wimpworkspace%!24 = 0
 1950wimpworkspace%!28 = 0
 1960wimpworkspace%!32 = 0
 1970$(wimpworkspace%+24) = icon$
 1980
 1990SYS "Wimp_CreateIcon",,wimpworkspace% TO iconhandle
 2000
 2010= iconhandle

� > Library
�
�
(�
2
<� Procedures
F�
P!� openmenu(menuaddress,x%,y%)
Z-� openwindow(windowhandle%,x%,y%,x1%,y1%)
d � closewindow(windowhandle%)
n
x� functions
��
�� createmenu()         (i)
�� initialisetask()     (i)
�� error()              (i)
�/� errorwindow(text$,errornum,flags%)    (i)
�I� createicon(windowhandle,minx%,miny%,maxx%,maxy%,flags,icon$)    (i)
�
�
�
�� format of menu list
�'� menu number - not presently used.
�� menu title
��
�
�
�
"�
,�
6�
@�
J
T� text entry for item
^�
h
r#� * Marks last item on the list
|1� # Indicates dotted line to follow this item
�F� @ This item is indirected. Indirection address and length follow
�D� ~ This item has a validation string. Address and valid$ follow
�� / This item is shaded
�5� ^ This item has a sub menu whose handle follows
�
�
�� �createmenu
�D� loop%,flags%,submenuptr%,iflag%,address%,length%,valid%,valid$
�errorpos$="createmenu"
�
�D� (menupointer + 28) > menuend � � 1,"No room for menu creation"
�
�menustart = menupointer

menupointer!&00 = &00000000
menupointer!&04 = &00000000
&menupointer!&08 = &00000000
0
:
� menu
D� $menupointer
N� menupointer?&0C
X� menupointer?&0D
b� menupointer?&0E
l� menupointer?&0F
v� menupointer!&10
�� menupointer!&14
�� menupointer!&18
�� dflag%
�
�menupointer += &1c
�
��
�D� (menupointer + 24) > menuend � � 1,"No room for menu creation"
�
�flags% = 0
�submenuptr% = -1
�iflag% = 0
�valid% = -1
� text$

G� �text$,1) = "*" � flags% = flags% � &00000080 : text$ = �text$,2)
 G� �text$,1) = "#" � flags% = flags% � &00000002 : text$ = �text$,2)
*S� �text$,1) = "@" � text$ = �text$,2) : iflag% = &00000100 : � address%,length%
4Y� �text$,1) = "~" � flags% = flags% � &00000004 : text$ = �text$,2) : � valid%,valid$
>C� �text$,1) = "/" � iflag% = iflag% � 1<<22 : text$ = �text$,2)
H9� �text$,1) = "^" � text$ = �text$,2) : � submenuptr%
R
\menupointer!&00 = flags%
f!menupointer!&04 = submenuptr%
p5�                10987654321098765432109876543210
zImenupointer!&08 = %00000111000000000011000000010001 � iflag% � dflag%
�
�� (iflag% � &100) = 0 �
�!  menupointer!&0c = &00000000
�!  menupointer!&10 = &00000000
�!  menupointer!&14 = &00000000
�   $(menupointer+&0c) = text$
��
�   menupointer!&0c = address%
�  menupointer!&10 = valid%
�  menupointer!&14 = length%
�  $address% = text$
�'  � valid% <> -1 � $valid% = valid$
��
menupointer += &18

� (flags% � &80)
$
.= menustart
8
B
L"� �openmenu(menuaddress,x%,y%)
Verrorpos$="openmenu"
`+ș "Wimp_CreateMenu",,menuaddress,x%,y%
jcurrentmenu = menuaddress
tmenux% = x%
~menuy% = y%
��
�
�
�� �initialisetask
�errorpos$="initialisetask"
�� taskid%,version%
�?ș "Wimp_Initialise",200,&4B534154,task$ � version%,taskid%
�K� version% < 200 � � 1,task$ + " requires Wimp Manager V 2.00 or later"
�
= taskid%
�
�
�� �error
L� ((� � &10000) = &10000) � (� = 1) � dummy = �errorwindow(�$,�,1) : = 2

|= �errorwindow(�$+". " + task$ + " has suffered a fatal error ("+�~(�)+�(�)+version$+") and must exit immediately.",�,7)


()� �errorwindow(text$,errornum,flags%)
2� errorresult
<!buffer% = errornum
F$(buffer%+4) = text$
P=ș "Wimp_ReportError",buffer%,flags%,task$ � ,errorresult
Z= errorresult
d
n
x.� �openwindow(windowhandle%,x%,y%,x1%,y1%)
�errorpos$="openwindow"
�$wimpworkspace%!0 = windowhandle%
�wimpworkspace%!4 = x%
�wimpworkspace%!8 = y%
�wimpworkspace%!12 = x1%
�wimpworkspace%!16 = y1%
�wimpworkspace%!20 = 0
�wimpworkspace%!24 = 0
�wimpworkspace%!28 = -1
�
�(ș "Wimp_OpenWindow",,wimpworkspace%
��
�

!� �closewindow(windowhandle%)
errorpos$="closewindow"
"#!wimpworkspace% = windowhandle%
,)ș "Wimp_CloseWindow",,wimpworkspace%
6�
@
J 
Ti� �createindirectedsprite(windowhandle,minx%,miny%,width,height,flags,spriteaddress,namebuffer,icon$)
^&errorpos$="createindirectedsprite"
h� iconhandle
r
|$wimpworkspace%!0  = windowhandle
�wimpworkspace%!4  = minx%
�wimpworkspace%!8  = miny%
�%wimpworkspace%!12 = minx% + width
�&wimpworkspace%!16 = miny% + height
�wimpworkspace%!20 = flags
�
�"wimpworkspace%!24 = namebuffer
�%wimpworkspace%!28 = spriteaddress
� wimpworkspace%!32 = �(icon$)
� $(wimpworkspace%!24) = icon$
�
�5ș "Wimp_CreateIcon",,wimpworkspace% � iconhandle
�
= iconhandle


&C� �createicon(windowhandle,minx%,miny%,maxx%,maxy%,flags,icon$)
0errorpos$="createicon"
:� iconhandle
D
N$wimpworkspace%!0  = windowhandle
Xwimpworkspace%!4  = minx%
bwimpworkspace%!8  = miny%
lwimpworkspace%!12 = maxx%
vwimpworkspace%!16 = maxy%
�wimpworkspace%!20 = flags
�
�wimpworkspace%!24 = 0
�wimpworkspace%!28 = 0
�wimpworkspace%!32 = 0
� $(wimpworkspace%+24) = icon$
�
�5ș "Wimp_CreateIcon",,wimpworkspace% � iconhandle
�
�= iconhandle
�
00000000  0d 00 0a 0f f4 20 3e 20  4c 69 62 72 61 72 79 0d  |..... > Library.|
00000010  00 14 05 f4 0d 00 1e 05  f4 0d 00 28 05 f4 0d 00  |...........(....|
00000020  32 04 0d 00 3c 10 f4 20  50 72 6f 63 65 64 75 72  |2...<.. Procedur|
00000030  65 73 0d 00 46 05 f4 0d  00 50 21 f4 20 6f 70 65  |es..F....P!. ope|
00000040  6e 6d 65 6e 75 28 6d 65  6e 75 61 64 64 72 65 73  |nmenu(menuaddres|
00000050  73 2c 78 25 2c 79 25 29  0d 00 5a 2d f4 20 6f 70  |s,x%,y%)..Z-. op|
00000060  65 6e 77 69 6e 64 6f 77  28 77 69 6e 64 6f 77 68  |enwindow(windowh|
00000070  61 6e 64 6c 65 25 2c 78  25 2c 79 25 2c 78 31 25  |andle%,x%,y%,x1%|
00000080  2c 79 31 25 29 0d 00 64  20 f4 20 63 6c 6f 73 65  |,y1%)..d . close|
00000090  77 69 6e 64 6f 77 28 77  69 6e 64 6f 77 68 61 6e  |window(windowhan|
000000a0  64 6c 65 25 29 0d 00 6e  04 0d 00 78 0f f4 20 66  |dle%)..n...x.. f|
000000b0  75 6e 63 74 69 6f 6e 73  0d 00 82 05 f4 0d 00 8c  |unctions........|
000000c0  1e f4 20 63 72 65 61 74  65 6d 65 6e 75 28 29 20  |.. createmenu() |
000000d0  20 20 20 20 20 20 20 20  28 69 29 0d 00 96 1e f4  |        (i).....|
000000e0  20 69 6e 69 74 69 61 6c  69 73 65 74 61 73 6b 28  | initialisetask(|
000000f0  29 20 20 20 20 20 28 69  29 0d 00 a0 1e f4 20 65  |)     (i)..... e|
00000100  72 72 6f 72 28 29 20 20  20 20 20 20 20 20 20 20  |rror()          |
00000110  20 20 20 20 28 69 29 0d  00 aa 2f f4 20 65 72 72  |    (i).../. err|
00000120  6f 72 77 69 6e 64 6f 77  28 74 65 78 74 24 2c 65  |orwindow(text$,e|
00000130  72 72 6f 72 6e 75 6d 2c  66 6c 61 67 73 25 29 20  |rrornum,flags%) |
00000140  20 20 20 28 69 29 0d 00  b4 49 f4 20 63 72 65 61  |   (i)...I. crea|
00000150  74 65 69 63 6f 6e 28 77  69 6e 64 6f 77 68 61 6e  |teicon(windowhan|
00000160  64 6c 65 2c 6d 69 6e 78  25 2c 6d 69 6e 79 25 2c  |dle,minx%,miny%,|
00000170  6d 61 78 78 25 2c 6d 61  78 79 25 2c 66 6c 61 67  |maxx%,maxy%,flag|
00000180  73 2c 69 63 6f 6e 24 29  20 20 20 20 28 69 29 0d  |s,icon$)    (i).|
00000190  00 be 04 0d 00 c8 04 0d  00 d2 04 0d 00 dc 19 f4  |................|
000001a0  20 66 6f 72 6d 61 74 20  6f 66 20 6d 65 6e 75 20  | format of menu |
000001b0  6c 69 73 74 0d 00 e6 27  f4 20 6d 65 6e 75 20 6e  |list...'. menu n|
000001c0  75 6d 62 65 72 20 2d 20  6e 6f 74 20 70 72 65 73  |umber - not pres|
000001d0  65 6e 74 6c 79 20 75 73  65 64 2e 0d 00 f0 10 f4  |ently used......|
000001e0  20 6d 65 6e 75 20 74 69  74 6c 65 0d 00 fa 05 f4  | menu title.....|
000001f0  0d 01 04 05 f4 0d 01 0e  05 f4 0d 01 18 05 f4 0d  |................|
00000200  01 22 05 f4 0d 01 2c 05  f4 0d 01 36 05 f4 0d 01  |."....,....6....|
00000210  40 05 f4 0d 01 4a 04 0d  01 54 19 f4 20 74 65 78  |@....J...T.. tex|
00000220  74 20 65 6e 74 72 79 20  66 6f 72 20 69 74 65 6d  |t entry for item|
00000230  0d 01 5e 05 f4 0d 01 68  04 0d 01 72 23 f4 20 2a  |..^....h...r#. *|
00000240  20 4d 61 72 6b 73 20 6c  61 73 74 20 69 74 65 6d  | Marks last item|
00000250  20 6f 6e 20 74 68 65 20  6c 69 73 74 0d 01 7c 31  | on the list..|1|
00000260  f4 20 23 20 49 6e 64 69  63 61 74 65 73 20 64 6f  |. # Indicates do|
00000270  74 74 65 64 20 6c 69 6e  65 20 74 6f 20 66 6f 6c  |tted line to fol|
00000280  6c 6f 77 20 74 68 69 73  20 69 74 65 6d 0d 01 86  |low this item...|
00000290  46 f4 20 40 20 54 68 69  73 20 69 74 65 6d 20 69  |F. @ This item i|
000002a0  73 20 69 6e 64 69 72 65  63 74 65 64 2e 20 49 6e  |s indirected. In|
000002b0  64 69 72 65 63 74 69 6f  6e 20 61 64 64 72 65 73  |direction addres|
000002c0  73 20 61 6e 64 20 6c 65  6e 67 74 68 20 66 6f 6c  |s and length fol|
000002d0  6c 6f 77 0d 01 90 44 f4  20 7e 20 54 68 69 73 20  |low...D. ~ This |
000002e0  69 74 65 6d 20 68 61 73  20 61 20 76 61 6c 69 64  |item has a valid|
000002f0  61 74 69 6f 6e 20 73 74  72 69 6e 67 2e 20 41 64  |ation string. Ad|
00000300  64 72 65 73 73 20 61 6e  64 20 76 61 6c 69 64 24  |dress and valid$|
00000310  20 66 6f 6c 6c 6f 77 0d  01 9a 1b f4 20 2f 20 54  | follow..... / T|
00000320  68 69 73 20 69 74 65 6d  20 69 73 20 73 68 61 64  |his item is shad|
00000330  65 64 0d 01 a4 35 f4 20  5e 20 54 68 69 73 20 69  |ed...5. ^ This i|
00000340  74 65 6d 20 68 61 73 20  61 20 73 75 62 20 6d 65  |tem has a sub me|
00000350  6e 75 20 77 68 6f 73 65  20 68 61 6e 64 6c 65 20  |nu whose handle |
00000360  66 6f 6c 6c 6f 77 73 0d  01 ae 04 0d 01 b8 04 0d  |follows.........|
00000370  01 c2 11 dd 20 a4 63 72  65 61 74 65 6d 65 6e 75  |.... .createmenu|
00000380  0d 01 cc 44 ea 20 6c 6f  6f 70 25 2c 66 6c 61 67  |...D. loop%,flag|
00000390  73 25 2c 73 75 62 6d 65  6e 75 70 74 72 25 2c 69  |s%,submenuptr%,i|
000003a0  66 6c 61 67 25 2c 61 64  64 72 65 73 73 25 2c 6c  |flag%,address%,l|
000003b0  65 6e 67 74 68 25 2c 76  61 6c 69 64 25 2c 76 61  |ength%,valid%,va|
000003c0  6c 69 64 24 0d 01 d6 1a  65 72 72 6f 72 70 6f 73  |lid$....errorpos|
000003d0  24 3d 22 63 72 65 61 74  65 6d 65 6e 75 22 0d 01  |$="createmenu"..|
000003e0  e0 04 0d 01 ea 44 e7 20  28 6d 65 6e 75 70 6f 69  |.....D. (menupoi|
000003f0  6e 74 65 72 20 2b 20 32  38 29 20 3e 20 6d 65 6e  |nter + 28) > men|
00000400  75 65 6e 64 20 8c 20 85  20 31 2c 22 4e 6f 20 72  |uend . . 1,"No r|
00000410  6f 6f 6d 20 66 6f 72 20  6d 65 6e 75 20 63 72 65  |oom for menu cre|
00000420  61 74 69 6f 6e 22 0d 01  f4 04 0d 01 fe 1b 6d 65  |ation"........me|
00000430  6e 75 73 74 61 72 74 20  3d 20 6d 65 6e 75 70 6f  |nustart = menupo|
00000440  69 6e 74 65 72 0d 02 08  04 0d 02 12 1f 6d 65 6e  |inter........men|
00000450  75 70 6f 69 6e 74 65 72  21 26 30 30 20 3d 20 26  |upointer!&00 = &|
00000460  30 30 30 30 30 30 30 30  0d 02 1c 1f 6d 65 6e 75  |00000000....menu|
00000470  70 6f 69 6e 74 65 72 21  26 30 34 20 3d 20 26 30  |pointer!&04 = &0|
00000480  30 30 30 30 30 30 30 0d  02 26 1f 6d 65 6e 75 70  |0000000..&.menup|
00000490  6f 69 6e 74 65 72 21 26  30 38 20 3d 20 26 30 30  |ointer!&08 = &00|
000004a0  30 30 30 30 30 30 0d 02  30 04 0d 02 3a 0a f3 20  |000000..0...:.. |
000004b0  6d 65 6e 75 0d 02 44 12  f3 20 24 6d 65 6e 75 70  |menu..D.. $menup|
000004c0  6f 69 6e 74 65 72 0d 02  4e 15 f3 20 6d 65 6e 75  |ointer..N.. menu|
000004d0  70 6f 69 6e 74 65 72 3f  26 30 43 0d 02 58 15 f3  |pointer?&0C..X..|
000004e0  20 6d 65 6e 75 70 6f 69  6e 74 65 72 3f 26 30 44  | menupointer?&0D|
000004f0  0d 02 62 15 f3 20 6d 65  6e 75 70 6f 69 6e 74 65  |..b.. menupointe|
00000500  72 3f 26 30 45 0d 02 6c  15 f3 20 6d 65 6e 75 70  |r?&0E..l.. menup|
00000510  6f 69 6e 74 65 72 3f 26  30 46 0d 02 76 15 f3 20  |ointer?&0F..v.. |
00000520  6d 65 6e 75 70 6f 69 6e  74 65 72 21 26 31 30 0d  |menupointer!&10.|
00000530  02 80 15 f3 20 6d 65 6e  75 70 6f 69 6e 74 65 72  |.... menupointer|
00000540  21 26 31 34 0d 02 8a 15  f3 20 6d 65 6e 75 70 6f  |!&14..... menupo|
00000550  69 6e 74 65 72 21 26 31  38 0d 02 94 0c f3 20 64  |inter!&18..... d|
00000560  66 6c 61 67 25 0d 02 9e  04 0d 02 a8 16 6d 65 6e  |flag%........men|
00000570  75 70 6f 69 6e 74 65 72  20 2b 3d 20 26 31 63 0d  |upointer += &1c.|
00000580  02 b2 04 0d 02 bc 05 f5  0d 02 c6 44 e7 20 28 6d  |...........D. (m|
00000590  65 6e 75 70 6f 69 6e 74  65 72 20 2b 20 32 34 29  |enupointer + 24)|
000005a0  20 3e 20 6d 65 6e 75 65  6e 64 20 8c 20 85 20 31  | > menuend . . 1|
000005b0  2c 22 4e 6f 20 72 6f 6f  6d 20 66 6f 72 20 6d 65  |,"No room for me|
000005c0  6e 75 20 63 72 65 61 74  69 6f 6e 22 0d 02 d0 04  |nu creation"....|
000005d0  0d 02 da 0e 66 6c 61 67  73 25 20 3d 20 30 0d 02  |....flags% = 0..|
000005e0  e4 14 73 75 62 6d 65 6e  75 70 74 72 25 20 3d 20  |..submenuptr% = |
000005f0  2d 31 0d 02 ee 0e 69 66  6c 61 67 25 20 3d 20 30  |-1....iflag% = 0|
00000600  0d 02 f8 0f 76 61 6c 69  64 25 20 3d 20 2d 31 0d  |....valid% = -1.|
00000610  03 02 0b f3 20 74 65 78  74 24 0d 03 0c 04 0d 03  |.... text$......|
00000620  16 47 e7 20 c0 74 65 78  74 24 2c 31 29 20 3d 20  |.G. .text$,1) = |
00000630  22 2a 22 20 8c 20 66 6c  61 67 73 25 20 3d 20 66  |"*" . flags% = f|
00000640  6c 61 67 73 25 20 84 20  26 30 30 30 30 30 30 38  |lags% . &0000008|
00000650  30 20 3a 20 74 65 78 74  24 20 3d 20 c1 74 65 78  |0 : text$ = .tex|
00000660  74 24 2c 32 29 0d 03 20  47 e7 20 c0 74 65 78 74  |t$,2).. G. .text|
00000670  24 2c 31 29 20 3d 20 22  23 22 20 8c 20 66 6c 61  |$,1) = "#" . fla|
00000680  67 73 25 20 3d 20 66 6c  61 67 73 25 20 84 20 26  |gs% = flags% . &|
00000690  30 30 30 30 30 30 30 32  20 3a 20 74 65 78 74 24  |00000002 : text$|
000006a0  20 3d 20 c1 74 65 78 74  24 2c 32 29 0d 03 2a 53  | = .text$,2)..*S|
000006b0  e7 20 c0 74 65 78 74 24  2c 31 29 20 3d 20 22 40  |. .text$,1) = "@|
000006c0  22 20 8c 20 74 65 78 74  24 20 3d 20 c1 74 65 78  |" . text$ = .tex|
000006d0  74 24 2c 32 29 20 3a 20  69 66 6c 61 67 25 20 3d  |t$,2) : iflag% =|
000006e0  20 26 30 30 30 30 30 31  30 30 20 3a 20 f3 20 61  | &00000100 : . a|
000006f0  64 64 72 65 73 73 25 2c  6c 65 6e 67 74 68 25 0d  |ddress%,length%.|
00000700  03 34 59 e7 20 c0 74 65  78 74 24 2c 31 29 20 3d  |.4Y. .text$,1) =|
00000710  20 22 7e 22 20 8c 20 66  6c 61 67 73 25 20 3d 20  | "~" . flags% = |
00000720  66 6c 61 67 73 25 20 84  20 26 30 30 30 30 30 30  |flags% . &000000|
00000730  30 34 20 3a 20 74 65 78  74 24 20 3d 20 c1 74 65  |04 : text$ = .te|
00000740  78 74 24 2c 32 29 20 3a  20 f3 20 76 61 6c 69 64  |xt$,2) : . valid|
00000750  25 2c 76 61 6c 69 64 24  0d 03 3e 43 e7 20 c0 74  |%,valid$..>C. .t|
00000760  65 78 74 24 2c 31 29 20  3d 20 22 2f 22 20 8c 20  |ext$,1) = "/" . |
00000770  69 66 6c 61 67 25 20 3d  20 69 66 6c 61 67 25 20  |iflag% = iflag% |
00000780  84 20 31 3c 3c 32 32 20  3a 20 74 65 78 74 24 20  |. 1<<22 : text$ |
00000790  3d 20 c1 74 65 78 74 24  2c 32 29 0d 03 48 39 e7  |= .text$,2)..H9.|
000007a0  20 c0 74 65 78 74 24 2c  31 29 20 3d 20 22 5e 22  | .text$,1) = "^"|
000007b0  20 8c 20 74 65 78 74 24  20 3d 20 c1 74 65 78 74  | . text$ = .text|
000007c0  24 2c 32 29 20 3a 20 f3  20 73 75 62 6d 65 6e 75  |$,2) : . submenu|
000007d0  70 74 72 25 0d 03 52 04  0d 03 5c 1c 6d 65 6e 75  |ptr%..R...\.menu|
000007e0  70 6f 69 6e 74 65 72 21  26 30 30 20 3d 20 66 6c  |pointer!&00 = fl|
000007f0  61 67 73 25 0d 03 66 21  6d 65 6e 75 70 6f 69 6e  |ags%..f!menupoin|
00000800  74 65 72 21 26 30 34 20  3d 20 73 75 62 6d 65 6e  |ter!&04 = submen|
00000810  75 70 74 72 25 0d 03 70  35 f4 20 20 20 20 20 20  |uptr%..p5.      |
00000820  20 20 20 20 20 20 20 20  20 20 31 30 39 38 37 36  |          109876|
00000830  35 34 33 32 31 30 39 38  37 36 35 34 33 32 31 30  |5432109876543210|
00000840  39 38 37 36 35 34 33 32  31 30 0d 03 7a 49 6d 65  |9876543210..zIme|
00000850  6e 75 70 6f 69 6e 74 65  72 21 26 30 38 20 3d 20  |nupointer!&08 = |
00000860  25 30 30 30 30 30 31 31  31 30 30 30 30 30 30 30  |%000001110000000|
00000870  30 30 30 31 31 30 30 30  30 30 30 30 31 30 30 30  |0001100000001000|
00000880  31 20 84 20 69 66 6c 61  67 25 20 84 20 64 66 6c  |1 . iflag% . dfl|
00000890  61 67 25 0d 03 84 04 0d  03 8e 1b e7 20 28 69 66  |ag%......... (if|
000008a0  6c 61 67 25 20 80 20 26  31 30 30 29 20 3d 20 30  |lag% . &100) = 0|
000008b0  20 8c 0d 03 98 21 20 20  6d 65 6e 75 70 6f 69 6e  | ....!  menupoin|
000008c0  74 65 72 21 26 30 63 20  3d 20 26 30 30 30 30 30  |ter!&0c = &00000|
000008d0  30 30 30 0d 03 a2 21 20  20 6d 65 6e 75 70 6f 69  |000...!  menupoi|
000008e0  6e 74 65 72 21 26 31 30  20 3d 20 26 30 30 30 30  |nter!&10 = &0000|
000008f0  30 30 30 30 0d 03 ac 21  20 20 6d 65 6e 75 70 6f  |0000...!  menupo|
00000900  69 6e 74 65 72 21 26 31  34 20 3d 20 26 30 30 30  |inter!&14 = &000|
00000910  30 30 30 30 30 0d 03 b6  20 20 20 24 28 6d 65 6e  |00000...   $(men|
00000920  75 70 6f 69 6e 74 65 72  2b 26 30 63 29 20 3d 20  |upointer+&0c) = |
00000930  74 65 78 74 24 0d 03 c0  05 cc 0d 03 ca 20 20 20  |text$........   |
00000940  6d 65 6e 75 70 6f 69 6e  74 65 72 21 26 30 63 20  |menupointer!&0c |
00000950  3d 20 61 64 64 72 65 73  73 25 0d 03 d4 1e 20 20  |= address%....  |
00000960  6d 65 6e 75 70 6f 69 6e  74 65 72 21 26 31 30 20  |menupointer!&10 |
00000970  3d 20 76 61 6c 69 64 25  0d 03 de 1f 20 20 6d 65  |= valid%....  me|
00000980  6e 75 70 6f 69 6e 74 65  72 21 26 31 34 20 3d 20  |nupointer!&14 = |
00000990  6c 65 6e 67 74 68 25 0d  03 e8 17 20 20 24 61 64  |length%....  $ad|
000009a0  64 72 65 73 73 25 20 3d  20 74 65 78 74 24 0d 03  |dress% = text$..|
000009b0  f2 27 20 20 e7 20 76 61  6c 69 64 25 20 3c 3e 20  |.'  . valid% <> |
000009c0  2d 31 20 8c 20 24 76 61  6c 69 64 25 20 3d 20 76  |-1 . $valid% = v|
000009d0  61 6c 69 64 24 0d 03 fc  05 cd 0d 04 06 16 6d 65  |alid$.........me|
000009e0  6e 75 70 6f 69 6e 74 65  72 20 2b 3d 20 26 31 38  |nupointer += &18|
000009f0  0d 04 10 04 0d 04 1a 14  fd 20 28 66 6c 61 67 73  |......... (flags|
00000a00  25 20 80 20 26 38 30 29  0d 04 24 04 0d 04 2e 0f  |% . &80)..$.....|
00000a10  3d 20 6d 65 6e 75 73 74  61 72 74 0d 04 38 04 0d  |= menustart..8..|
00000a20  04 42 04 0d 04 4c 22 dd  20 f2 6f 70 65 6e 6d 65  |.B...L". .openme|
00000a30  6e 75 28 6d 65 6e 75 61  64 64 72 65 73 73 2c 78  |nu(menuaddress,x|
00000a40  25 2c 79 25 29 0d 04 56  18 65 72 72 6f 72 70 6f  |%,y%)..V.errorpo|
00000a50  73 24 3d 22 6f 70 65 6e  6d 65 6e 75 22 0d 04 60  |s$="openmenu"..`|
00000a60  2b c8 99 20 22 57 69 6d  70 5f 43 72 65 61 74 65  |+.. "Wimp_Create|
00000a70  4d 65 6e 75 22 2c 2c 6d  65 6e 75 61 64 64 72 65  |Menu",,menuaddre|
00000a80  73 73 2c 78 25 2c 79 25  0d 04 6a 1d 63 75 72 72  |ss,x%,y%..j.curr|
00000a90  65 6e 74 6d 65 6e 75 20  3d 20 6d 65 6e 75 61 64  |entmenu = menuad|
00000aa0  64 72 65 73 73 0d 04 74  0f 6d 65 6e 75 78 25 20  |dress..t.menux% |
00000ab0  3d 20 78 25 0d 04 7e 0f  6d 65 6e 75 79 25 20 3d  |= x%..~.menuy% =|
00000ac0  20 79 25 0d 04 88 05 e1  0d 04 92 04 0d 04 9c 04  | y%.............|
00000ad0  0d 04 a6 15 dd 20 a4 69  6e 69 74 69 61 6c 69 73  |..... .initialis|
00000ae0  65 74 61 73 6b 0d 04 b0  1e 65 72 72 6f 72 70 6f  |etask....errorpo|
00000af0  73 24 3d 22 69 6e 69 74  69 61 6c 69 73 65 74 61  |s$="initialiseta|
00000b00  73 6b 22 0d 04 ba 16 ea  20 74 61 73 6b 69 64 25  |sk"..... taskid%|
00000b10  2c 76 65 72 73 69 6f 6e  25 0d 04 c4 3f c8 99 20  |,version%...?.. |
00000b20  22 57 69 6d 70 5f 49 6e  69 74 69 61 6c 69 73 65  |"Wimp_Initialise|
00000b30  22 2c 32 30 30 2c 26 34  42 35 33 34 31 35 34 2c  |",200,&4B534154,|
00000b40  74 61 73 6b 24 20 b8 20  76 65 72 73 69 6f 6e 25  |task$ . version%|
00000b50  2c 74 61 73 6b 69 64 25  0d 04 ce 4b e7 20 76 65  |,taskid%...K. ve|
00000b60  72 73 69 6f 6e 25 20 3c  20 32 30 30 20 8c 20 85  |rsion% < 200 . .|
00000b70  20 31 2c 74 61 73 6b 24  20 2b 20 22 20 72 65 71  | 1,task$ + " req|
00000b80  75 69 72 65 73 20 57 69  6d 70 20 4d 61 6e 61 67  |uires Wimp Manag|
00000b90  65 72 20 56 20 32 2e 30  30 20 6f 72 20 6c 61 74  |er V 2.00 or lat|
00000ba0  65 72 22 0d 04 d8 0d 3d  20 74 61 73 6b 69 64 25  |er"....= taskid%|
00000bb0  0d 04 e2 04 0d 04 ec 04  0d 04 f6 0c dd 20 a4 65  |............. .e|
00000bc0  72 72 6f 72 0d 05 00 4c  e7 20 28 28 9f 20 80 20  |rror...L. ((. . |
00000bd0  26 31 30 30 30 30 29 20  3d 20 26 31 30 30 30 30  |&10000) = &10000|
00000be0  29 20 84 20 28 9f 20 3d  20 31 29 20 8c 20 64 75  |) . (. = 1) . du|
00000bf0  6d 6d 79 20 3d 20 a4 65  72 72 6f 72 77 69 6e 64  |mmy = .errorwind|
00000c00  6f 77 28 f6 24 2c 9f 2c  31 29 20 3a 20 3d 20 32  |ow(.$,.,1) : = 2|
00000c10  0d 05 0a 7c 3d 20 a4 65  72 72 6f 72 77 69 6e 64  |...|= .errorwind|
00000c20  6f 77 28 f6 24 2b 22 2e  20 22 20 2b 20 74 61 73  |ow(.$+". " + tas|
00000c30  6b 24 20 2b 20 22 20 68  61 73 20 73 75 66 66 65  |k$ + " has suffe|
00000c40  72 65 64 20 61 20 66 61  74 61 6c 20 65 72 72 6f  |red a fatal erro|
00000c50  72 20 28 22 2b c3 7e 28  9f 29 2b c3 28 9e 29 2b  |r ("+.~(.)+.(.)+|
00000c60  76 65 72 73 69 6f 6e 24  2b 22 29 20 61 6e 64 20  |version$+") and |
00000c70  6d 75 73 74 20 65 78 69  74 20 69 6d 6d 65 64 69  |must exit immedi|
00000c80  61 74 65 6c 79 2e 22 2c  9f 2c 37 29 0d 05 14 04  |ately.",.,7)....|
00000c90  0d 05 1e 04 0d 05 28 29  dd 20 a4 65 72 72 6f 72  |......(). .error|
00000ca0  77 69 6e 64 6f 77 28 74  65 78 74 24 2c 65 72 72  |window(text$,err|
00000cb0  6f 72 6e 75 6d 2c 66 6c  61 67 73 25 29 0d 05 32  |ornum,flags%)..2|
00000cc0  11 ea 20 65 72 72 6f 72  72 65 73 75 6c 74 0d 05  |.. errorresult..|
00000cd0  3c 17 21 62 75 66 66 65  72 25 20 3d 20 65 72 72  |<.!buffer% = err|
00000ce0  6f 72 6e 75 6d 0d 05 46  18 24 28 62 75 66 66 65  |ornum..F.$(buffe|
00000cf0  72 25 2b 34 29 20 3d 20  74 65 78 74 24 0d 05 50  |r%+4) = text$..P|
00000d00  3d c8 99 20 22 57 69 6d  70 5f 52 65 70 6f 72 74  |=.. "Wimp_Report|
00000d10  45 72 72 6f 72 22 2c 62  75 66 66 65 72 25 2c 66  |Error",buffer%,f|
00000d20  6c 61 67 73 25 2c 74 61  73 6b 24 20 b8 20 2c 65  |lags%,task$ . ,e|
00000d30  72 72 6f 72 72 65 73 75  6c 74 0d 05 5a 11 3d 20  |rrorresult..Z.= |
00000d40  65 72 72 6f 72 72 65 73  75 6c 74 0d 05 64 04 0d  |errorresult..d..|
00000d50  05 6e 04 0d 05 78 2e dd  20 f2 6f 70 65 6e 77 69  |.n...x.. .openwi|
00000d60  6e 64 6f 77 28 77 69 6e  64 6f 77 68 61 6e 64 6c  |ndow(windowhandl|
00000d70  65 25 2c 78 25 2c 79 25  2c 78 31 25 2c 79 31 25  |e%,x%,y%,x1%,y1%|
00000d80  29 0d 05 82 1a 65 72 72  6f 72 70 6f 73 24 3d 22  |)....errorpos$="|
00000d90  6f 70 65 6e 77 69 6e 64  6f 77 22 0d 05 8c 24 77  |openwindow"...$w|
00000da0  69 6d 70 77 6f 72 6b 73  70 61 63 65 25 21 30 20  |impworkspace%!0 |
00000db0  3d 20 77 69 6e 64 6f 77  68 61 6e 64 6c 65 25 0d  |= windowhandle%.|
00000dc0  05 96 19 77 69 6d 70 77  6f 72 6b 73 70 61 63 65  |...wimpworkspace|
00000dd0  25 21 34 20 3d 20 78 25  0d 05 a0 19 77 69 6d 70  |%!4 = x%....wimp|
00000de0  77 6f 72 6b 73 70 61 63  65 25 21 38 20 3d 20 79  |workspace%!8 = y|
00000df0  25 0d 05 aa 1b 77 69 6d  70 77 6f 72 6b 73 70 61  |%....wimpworkspa|
00000e00  63 65 25 21 31 32 20 3d  20 78 31 25 0d 05 b4 1b  |ce%!12 = x1%....|
00000e10  77 69 6d 70 77 6f 72 6b  73 70 61 63 65 25 21 31  |wimpworkspace%!1|
00000e20  36 20 3d 20 79 31 25 0d  05 be 19 77 69 6d 70 77  |6 = y1%....wimpw|
00000e30  6f 72 6b 73 70 61 63 65  25 21 32 30 20 3d 20 30  |orkspace%!20 = 0|
00000e40  0d 05 c8 19 77 69 6d 70  77 6f 72 6b 73 70 61 63  |....wimpworkspac|
00000e50  65 25 21 32 34 20 3d 20  30 0d 05 d2 1a 77 69 6d  |e%!24 = 0....wim|
00000e60  70 77 6f 72 6b 73 70 61  63 65 25 21 32 38 20 3d  |pworkspace%!28 =|
00000e70  20 2d 31 0d 05 dc 04 0d  05 e6 28 c8 99 20 22 57  | -1.......(.. "W|
00000e80  69 6d 70 5f 4f 70 65 6e  57 69 6e 64 6f 77 22 2c  |imp_OpenWindow",|
00000e90  2c 77 69 6d 70 77 6f 72  6b 73 70 61 63 65 25 0d  |,wimpworkspace%.|
00000ea0  05 f0 05 e1 0d 05 fa 04  0d 06 04 04 0d 06 0e 21  |...............!|
00000eb0  dd 20 f2 63 6c 6f 73 65  77 69 6e 64 6f 77 28 77  |. .closewindow(w|
00000ec0  69 6e 64 6f 77 68 61 6e  64 6c 65 25 29 0d 06 18  |indowhandle%)...|
00000ed0  1b 65 72 72 6f 72 70 6f  73 24 3d 22 63 6c 6f 73  |.errorpos$="clos|
00000ee0  65 77 69 6e 64 6f 77 22  0d 06 22 23 21 77 69 6d  |ewindow".."#!wim|
00000ef0  70 77 6f 72 6b 73 70 61  63 65 25 20 3d 20 77 69  |pworkspace% = wi|
00000f00  6e 64 6f 77 68 61 6e 64  6c 65 25 0d 06 2c 29 c8  |ndowhandle%..,).|
00000f10  99 20 22 57 69 6d 70 5f  43 6c 6f 73 65 57 69 6e  |. "Wimp_CloseWin|
00000f20  64 6f 77 22 2c 2c 77 69  6d 70 77 6f 72 6b 73 70  |dow",,wimpworksp|
00000f30  61 63 65 25 0d 06 36 05  e1 0d 06 40 04 0d 06 4a  |ace%..6....@...J|
00000f40  05 20 0d 06 54 69 dd 20  a4 63 72 65 61 74 65 69  |. ..Ti. .createi|
00000f50  6e 64 69 72 65 63 74 65  64 73 70 72 69 74 65 28  |ndirectedsprite(|
00000f60  77 69 6e 64 6f 77 68 61  6e 64 6c 65 2c 6d 69 6e  |windowhandle,min|
00000f70  78 25 2c 6d 69 6e 79 25  2c 77 69 64 74 68 2c 68  |x%,miny%,width,h|
00000f80  65 69 67 68 74 2c 66 6c  61 67 73 2c 73 70 72 69  |eight,flags,spri|
00000f90  74 65 61 64 64 72 65 73  73 2c 6e 61 6d 65 62 75  |teaddress,namebu|
00000fa0  66 66 65 72 2c 69 63 6f  6e 24 29 0d 06 5e 26 65  |ffer,icon$)..^&e|
00000fb0  72 72 6f 72 70 6f 73 24  3d 22 63 72 65 61 74 65  |rrorpos$="create|
00000fc0  69 6e 64 69 72 65 63 74  65 64 73 70 72 69 74 65  |indirectedsprite|
00000fd0  22 0d 06 68 10 ea 20 69  63 6f 6e 68 61 6e 64 6c  |"..h.. iconhandl|
00000fe0  65 0d 06 72 04 0d 06 7c  24 77 69 6d 70 77 6f 72  |e..r...|$wimpwor|
00000ff0  6b 73 70 61 63 65 25 21  30 20 20 3d 20 77 69 6e  |kspace%!0  = win|
00001000  64 6f 77 68 61 6e 64 6c  65 0d 06 86 1d 77 69 6d  |dowhandle....wim|
00001010  70 77 6f 72 6b 73 70 61  63 65 25 21 34 20 20 3d  |pworkspace%!4  =|
00001020  20 6d 69 6e 78 25 0d 06  90 1d 77 69 6d 70 77 6f  | minx%....wimpwo|
00001030  72 6b 73 70 61 63 65 25  21 38 20 20 3d 20 6d 69  |rkspace%!8  = mi|
00001040  6e 79 25 0d 06 9a 25 77  69 6d 70 77 6f 72 6b 73  |ny%...%wimpworks|
00001050  70 61 63 65 25 21 31 32  20 3d 20 6d 69 6e 78 25  |pace%!12 = minx%|
00001060  20 2b 20 77 69 64 74 68  0d 06 a4 26 77 69 6d 70  | + width...&wimp|
00001070  77 6f 72 6b 73 70 61 63  65 25 21 31 36 20 3d 20  |workspace%!16 = |
00001080  6d 69 6e 79 25 20 2b 20  68 65 69 67 68 74 0d 06  |miny% + height..|
00001090  ae 1d 77 69 6d 70 77 6f  72 6b 73 70 61 63 65 25  |..wimpworkspace%|
000010a0  21 32 30 20 3d 20 66 6c  61 67 73 0d 06 b8 04 0d  |!20 = flags.....|
000010b0  06 c2 22 77 69 6d 70 77  6f 72 6b 73 70 61 63 65  |.."wimpworkspace|
000010c0  25 21 32 34 20 3d 20 6e  61 6d 65 62 75 66 66 65  |%!24 = namebuffe|
000010d0  72 0d 06 cc 25 77 69 6d  70 77 6f 72 6b 73 70 61  |r...%wimpworkspa|
000010e0  63 65 25 21 32 38 20 3d  20 73 70 72 69 74 65 61  |ce%!28 = spritea|
000010f0  64 64 72 65 73 73 0d 06  d6 20 77 69 6d 70 77 6f  |ddress... wimpwo|
00001100  72 6b 73 70 61 63 65 25  21 33 32 20 3d 20 a9 28  |rkspace%!32 = .(|
00001110  69 63 6f 6e 24 29 0d 06  e0 20 24 28 77 69 6d 70  |icon$)... $(wimp|
00001120  77 6f 72 6b 73 70 61 63  65 25 21 32 34 29 20 3d  |workspace%!24) =|
00001130  20 69 63 6f 6e 24 0d 06  ea 04 0d 06 f4 35 c8 99  | icon$.......5..|
00001140  20 22 57 69 6d 70 5f 43  72 65 61 74 65 49 63 6f  | "Wimp_CreateIco|
00001150  6e 22 2c 2c 77 69 6d 70  77 6f 72 6b 73 70 61 63  |n",,wimpworkspac|
00001160  65 25 20 b8 20 69 63 6f  6e 68 61 6e 64 6c 65 0d  |e% . iconhandle.|
00001170  06 fe 04 0d 07 08 10 3d  20 69 63 6f 6e 68 61 6e  |.......= iconhan|
00001180  64 6c 65 0d 07 12 04 0d  07 1c 04 0d 07 26 43 dd  |dle..........&C.|
00001190  20 a4 63 72 65 61 74 65  69 63 6f 6e 28 77 69 6e  | .createicon(win|
000011a0  64 6f 77 68 61 6e 64 6c  65 2c 6d 69 6e 78 25 2c  |dowhandle,minx%,|
000011b0  6d 69 6e 79 25 2c 6d 61  78 78 25 2c 6d 61 78 79  |miny%,maxx%,maxy|
000011c0  25 2c 66 6c 61 67 73 2c  69 63 6f 6e 24 29 0d 07  |%,flags,icon$)..|
000011d0  30 1a 65 72 72 6f 72 70  6f 73 24 3d 22 63 72 65  |0.errorpos$="cre|
000011e0  61 74 65 69 63 6f 6e 22  0d 07 3a 10 ea 20 69 63  |ateicon"..:.. ic|
000011f0  6f 6e 68 61 6e 64 6c 65  0d 07 44 04 0d 07 4e 24  |onhandle..D...N$|
00001200  77 69 6d 70 77 6f 72 6b  73 70 61 63 65 25 21 30  |wimpworkspace%!0|
00001210  20 20 3d 20 77 69 6e 64  6f 77 68 61 6e 64 6c 65  |  = windowhandle|
00001220  0d 07 58 1d 77 69 6d 70  77 6f 72 6b 73 70 61 63  |..X.wimpworkspac|
00001230  65 25 21 34 20 20 3d 20  6d 69 6e 78 25 0d 07 62  |e%!4  = minx%..b|
00001240  1d 77 69 6d 70 77 6f 72  6b 73 70 61 63 65 25 21  |.wimpworkspace%!|
00001250  38 20 20 3d 20 6d 69 6e  79 25 0d 07 6c 1d 77 69  |8  = miny%..l.wi|
00001260  6d 70 77 6f 72 6b 73 70  61 63 65 25 21 31 32 20  |mpworkspace%!12 |
00001270  3d 20 6d 61 78 78 25 0d  07 76 1d 77 69 6d 70 77  |= maxx%..v.wimpw|
00001280  6f 72 6b 73 70 61 63 65  25 21 31 36 20 3d 20 6d  |orkspace%!16 = m|
00001290  61 78 79 25 0d 07 80 1d  77 69 6d 70 77 6f 72 6b  |axy%....wimpwork|
000012a0  73 70 61 63 65 25 21 32  30 20 3d 20 66 6c 61 67  |space%!20 = flag|
000012b0  73 0d 07 8a 04 0d 07 94  19 77 69 6d 70 77 6f 72  |s........wimpwor|
000012c0  6b 73 70 61 63 65 25 21  32 34 20 3d 20 30 0d 07  |kspace%!24 = 0..|
000012d0  9e 19 77 69 6d 70 77 6f  72 6b 73 70 61 63 65 25  |..wimpworkspace%|
000012e0  21 32 38 20 3d 20 30 0d  07 a8 19 77 69 6d 70 77  |!28 = 0....wimpw|
000012f0  6f 72 6b 73 70 61 63 65  25 21 33 32 20 3d 20 30  |orkspace%!32 = 0|
00001300  0d 07 b2 20 24 28 77 69  6d 70 77 6f 72 6b 73 70  |... $(wimpworksp|
00001310  61 63 65 25 2b 32 34 29  20 3d 20 69 63 6f 6e 24  |ace%+24) = icon$|
00001320  0d 07 bc 04 0d 07 c6 35  c8 99 20 22 57 69 6d 70  |.......5.. "Wimp|
00001330  5f 43 72 65 61 74 65 49  63 6f 6e 22 2c 2c 77 69  |_CreateIcon",,wi|
00001340  6d 70 77 6f 72 6b 73 70  61 63 65 25 20 b8 20 69  |mpworkspace% . i|
00001350  63 6f 6e 68 61 6e 64 6c  65 0d 07 d0 04 0d 07 da  |conhandle.......|
00001360  10 3d 20 69 63 6f 6e 68  61 6e 64 6c 65 0d ff     |.= iconhandle..|
0000136f