Home » Archimedes archive » Acorn Computing » 1994 02 subscription disc.adf » 9402s » PD/!ModulInfo/!RunImage

PD/!ModulInfo/!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 » Acorn Computing » 1994 02 subscription disc.adf » 9402s
Filename: PD/!ModulInfo/!RunImage
Read OK:
File size: 2BE3 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM ><Current$Dir>.!RunImage
   20REM
   30REM   Module info
   40REM   LENEVAL1990/91/92 Erik van de Pol
   50REM
   60REM  This program is freeware.
   70:
   80Version$="1.42"
   90Version$=Version$+" (13 Sep 1992)"
  100:
  110ON ERROR:PROC_error(REPORT$+" (Code "+STR$(ERL)+")","Module Info"):END
  120:
  130DIM q% 1000,ib% 100,b%300
  140DIM curbuf% 800:endbuf%=curbuf%+800
  150DIM buffer% 300:maxbuff%=buffer%+300:curbuff%=buffer%
  160DIM factors% 16,trans% 16
  170DIM SWI$(64),command_ptr%(255,1)
  180DIM cbl% 8192
  190DIM command_buff% cbl%
  200max_comm%=-1
  210:
  220Old_Area%=-1
  230SWIs%=FALSE
  240Commands%=FALSE
  250:
  260Spritelen%=1200
  270DIM spritearea% Spritelen%
  280spritearea%!0 =Spritelen%
  290spritearea%!4 =0
  300spritearea%!8 =16
  310spritearea%!12=16
  320SYS "OS_SpriteOp",&109,spritearea%
  330SYS "OS_SpriteOp",&10A,spritearea%,"<ModuleInfo$Dir>.Sprites"
  340:
  350SYS "Wimp_Initialise",200,&4B534154,"Module Info" TO ,taskhandle%
  360:
  370SYS "Wimp_OpenTemplate",,"<ModuleInfo$Dir>.Templates"
  380w_main%  =FNwindow("w_main")
  390w_info%  =FNwindow("w_info")
  400w_swis%  =FNwindow("w_swis")
  410w_comm%  =FNwindow("w_commands")
  420w_comminfo%=FNwindow("w_comminfo")
  430SYS "Wimp_CloseTemplate"
  440PROCaltericondata(w_info%,4,Version$)
  450:
  460i_iconbar%=FN_iconbar
  470:
  480DIM menu% 80
  490PROCinitmenus
  500:
  510REPEAT
  520  SYS "Wimp_Poll",&100,q% TO event%
  530  CASE event% OF
  540  WHEN 0:
  550    SYS"Wimp_GetPointerInfo",,q%
  560    IF q%!12=w_main% THEN
  570      CASE q%!16 OF
  580      WHEN 14:IF SWIs%     PROCProgramShape:ELSE OSCLI("Pointer")
  590      WHEN 17:IF Commands% PROCProgramShape:ELSE OSCLI("Pointer")
  600      OTHERWISE
  610        OSCLI("Pointer")
  620      ENDCASE
  630    ENDIF
  640  WHEN 1:
  650    PROC_UserRedraw
  660  WHEN 2:
  670    SYS "Wimp_OpenWindow",,q%
  680  WHEN 3:
  690    SYS "Wimp_CloseWindow",,q%
  700    IF !q%=w_main% THEN
  710      !q%=w_swis%:SYS"Wimp_CloseWindow",,q%
  720      !q%=w_comm%:SYS"Wimp_CloseWindow",,q%
  730      !q%=w_comminfo%:SYS"Wimp_CloseWindow",,q%
  740    ENDIF
  750  WHEN 4:
  760    OSCLI("Pointer")
  770  WHEN 5:
  780    IF q%!0=w_main% THEN
  790      SYS"Wimp_GetPointerInfo",,q%
  800      IF Old_Area% <> q%!16 THEN
  810        IF (q%!16=14) AND SWIs% THEN
  820          PROCProgramShape
  830        ELSE
  840          OSCLI("Pointer")
  850        ENDIF
  860        IF (q%!16=17) AND Commands% THEN
  870          PROCProgramShape
  880        ELSE
  890          OSCLI("Pointer")
  900        ENDIF
  910        Old_Area%=q%!16
  920      ENDIF
  930    ENDIF
  940  WHEN 6:
  950    PROCmouse(q%!0,q%!4,q%!8,q%!12,q%!16,q%!20)
  960  WHEN 9:
  970    PROCMenuSelect
  980  WHEN 17,18:PROCreceive
  990  ENDCASE
 1000UNTIL FALSE
 1010:
 1020DEF PROC_UserRedraw
 1030LOCAL handle%
 1040handle%=q%!0
 1050CASE handle% OF
 1060  WHEN w_swis%:
 1070    PROC_Redraw_SWIs
 1080  WHEN w_comm%:
 1090    PROC_Redraw_Commands
 1100ENDCASE
 1110ENDPROC
 1120:
 1130DEF PROC_Redraw_SWIs
 1140LOCAL flag%,y%
 1150!q%=w_swis%
 1160SYS"Wimp_RedrawWindow",,q% TO flag%
 1170WHILE flag%
 1180  SYS"Wimp_SetColour",7
 1190  FOR y%=0 TO max_swis%-1
 1200    MOVE q%!4+4-q%!20,-40*y%+q%!16-q%!24-8
 1210    PRINT SWI$(y%)
 1220  NEXT
 1230  SYS"Wimp_GetRectangle",,q% TO flag%
 1240ENDWHILE
 1250ENDPROC
 1260:
 1270:
 1280DEF PROC_Redraw_Commands
 1290LOCAL flag%,y%,m%
 1300!q%=w_comm%
 1310m%=max_comm_w%*16
 1320SYS"Wimp_RedrawWindow",,q% TO flag%
 1330WHILE flag%
 1340  SYS"Wimp_SetColour",7
 1350  FOR y%=0 TO max_comm%-1
 1360    MOVE q%!4+4-q%!20 , -40*y%+q%!16-q%!24-8
 1370    SYS"OS_Write0",command_ptr%(y%,0)
 1380  NEXT
 1390  SYS"Wimp_GetRectangle",,q% TO flag%
 1400ENDWHILE
 1410ENDPROC
 1420:
 1430:
 1440DEF FN_iconbar
 1450LOCAL r%
 1460!q%=-1
 1470q%!4=0
 1480q%!8=0
 1490q%!12=63
 1500q%!16=68
 1510q%!20=&2002
 1520$(q%+24)="!modulinfo"
 1530SYS "Wimp_CreateIcon",,q% TO r%
 1540=r%
 1550:
 1560DEF PROCreceive
 1570LOCAL type%,f$,mess%,data%,h%,a%,title%,help%,n$,c%,tel%,commandtable%
 1580:
 1590mess%=q%!16
 1600CASE mess% OF
 1610WHEN 0:
 1620  PROCterminate
 1630WHEN 3:
 1640  type% =q%!40
 1650  IF type%=&FFA THEN
 1660    n$=""
 1670    REPEAT
 1680      c%=?(q%+44+tel%)
 1690      tel%+=1
 1700      n$+=CHR$(c%)
 1710    UNTIL c%=0
 1720    n$=LEFT$(n$)
 1730    PROCaltericondata(w_main%,18,RIGHT$(n$,45))
 1740    h%=OPENIN(n$)
 1750    data% =EXT#h%
 1760    PROCaltericondata(w_main%,21,STR$(data%))
 1770    a%=FNgetword(h%):IF a%=0 THEN f$="<No code>" ELSE f$="&"+STR$~(a%)
 1780    PROCaltericondata(w_main%,7,f$)
 1790    a%=FNgetword(h%):IF a%=0 THEN f$="<No code>" ELSE f$="&"+STR$~(a%)
 1800    PROCaltericondata(w_main%,8,f$)
 1810    a%=FNgetword(h%):IF a%=0 THEN f$="<No code>" ELSE f$="&"+STR$~(a%)
 1820    PROCaltericondata(w_main%,9,f$)
 1830    a%=FNgetword(h%):IF a%=0 THEN f$="<No code>" ELSE f$="&"+STR$~(a%)
 1840    PROCaltericondata(w_main%,10,f$)
 1850    title%=FNgetword(h%)
 1860    help% =FNgetword(h%)
 1870    commandtable%=FNgetword(h%)
 1880    IF commandtable%=0 THEN
 1890      f$="<No>"
 1900      Commands%=FALSE
 1910    ELSE
 1920      f$="&"+STR$~(commandtable%)
 1930      Commands%=TRUE
 1940    ENDIF
 1950    PROCaltericondata(w_main%,16,f$)
 1960    SWIs%=FALSE
 1970    a%=FNgetword(h%)
 1980    IF a%=0 OR a%> &FFFFFF OR (a%MOD64<>0) THEN
 1990      f$="<No SWIs>"
 2000      SWI_Decode_Table%=0
 2010    ELSE
 2020      f$="&"+STR$~(a%)
 2030      PTR# h%=&24
 2040      SWI_Decode_Table%=FNgetword(h%)
 2050      IF SWI_Decode_Table%>&18 AND SWI_Decode_Table%<data% THEN
 2060        SWIs%=TRUE
 2070        PROC_Create_SWI_Window(SWI_Decode_Table%,h%)
 2080      ELSE
 2090        SWI_Decode_Table%=0
 2100      ENDIF
 2110    ENDIF
 2120    PROCaltericondata(w_main%,13,f$)
 2130    IF title%>&18 THEN
 2140      f$=""
 2150      PTR# h%=title%
 2160      REPEAT
 2170        c%=BGET# h%
 2180        IF c%=9 THEN
 2190          REPEAT
 2200            f$+=" "
 2210          UNTIL LEN(f$) MOD 3=0
 2220        ELSE
 2230          f$+=CHR$(c%)
 2240        ENDIF
 2250      UNTIL c%=0
 2260      f$=LEFT$(f$)
 2270    ELSE
 2280      f$="<No title>"
 2290    ENDIF
 2300    PROCaltericondata(w_main%,11,LEFT$(f$,45))
 2310    IF help%>&18 THEN
 2320      f$=""
 2330      PTR# h%=help%
 2340      REPEAT
 2350        c%=BGET# h%
 2360        IF c%=9 THEN
 2370          REPEAT
 2380            f$+=" "
 2390          UNTIL LEN(f$) MOD 3=0
 2400        ELSE
 2410          f$+=CHR$(c%)
 2420        ENDIF
 2430      UNTIL c%=0
 2440      f$=LEFT$(f$)
 2450    ELSE
 2460      f$="<No help>"
 2470    ENDIF
 2480    PROCaltericondata(w_main%,12,LEFT$(f$,90))
 2490    IF Commands% AND commandtable%>&18 AND commandtable% < data% THEN PROC_Get_Commands(commandtable%,h%)
 2500    CLOSE# h%
 2510    q%!16=4
 2520    SYS"Wimp_SendMessage",17,q%
 2530    q%!0=w_main%
 2540    SYS"Wimp_GetWindowState",,q%
 2550    q%!28=-1
 2560    SYS"Wimp_OpenWindow",,q%
 2570    q%!0=w_comminfo%:SYS"Wimp_CloseWindow",,q%
 2580  ENDIF
 2590ENDCASE
 2600ENDPROC
 2610:
 2620DEF PROC_Get_Commands(ptr%,h%)
 2630LOCAL tel%,c%,d%,n$,i%,pb%,l%
 2640:
 2650PTR# h%=ptr%
 2660tel%=0
 2670pb%=command_buff%
 2680max_comm_w%=0
 2690REPEAT
 2700  c%=FNgetword(h%)
 2710  IF (c%AND&FF)<>0 THEN
 2720    REM * command found
 2730    command_ptr%(tel%,0)=pb%
 2740    !pb%=c%
 2750    pb%+=4
 2760    IF NOT FN_ZeroByteInWord(c%) THEN
 2770      REPEAT
 2780        d%=FNgetword(h%)
 2790        !pb%=d%
 2800        pb%+=4
 2810      UNTIL FN_ZeroByteInWord(d%)
 2820    ENDIF
 2830    i%=pb%-command_ptr%(tel%,0)
 2840    IF i% > max_comm_w% THEN max_comm_w%=i%
 2850    command_ptr%(tel%,1)=pb%
 2860    FOR l%=1 TO 4
 2870      !pb%=FNgetword(h%)
 2880      pb%+=4
 2890    NEXT
 2900    tel%+=1
 2910  ENDIF
 2920UNTIL (c%AND&FF)=0
 2930max_comm%=tel%
 2940b%!0 =-8
 2950b%!4 =-4-40*max_comm%
 2960b%!8 =max_comm_w%*16+8
 2970b%!12=4
 2980SYS "Wimp_SetExtent",w_comm%,b%
 2990ENDPROC
 3000:
 3010DEF FN_ZeroByteInWord(w%)
 3020LOCAL l%
 3030FOR l%=0TO3
 3040  IF ((w%>>(8*l%))AND&FF)=0 THEN =TRUE
 3050NEXT
 3060=FALSE
 3070:
 3080DEF PROC_Create_SWI_Window(ptr%,h%)
 3090LOCAL tel%,c%,a%,n$,d%,w%
 3100:
 3110PTR# h%=ptr%
 3120tel%=0
 3130REPEAT
 3140  c%=BGET# h%
 3150  IF c%<>0 THEN
 3160    REM * Item found!
 3170    n$=CHR$(c%)
 3180    REM * get chunk/SWI name
 3190    REPEAT
 3200      d%=BGET#h%
 3210      n$+=CHR$(d%)
 3220    UNTIL d%=0
 3230    n$=LEFT$(n$)
 3240    REM * '_' for leading name
 3250    IF tel%=0 THEN n$+="_"
 3260    SWI$(tel%)=n$
 3270    IF LEN(n$)>w% THEN w%=LEN(n$)
 3280    tel%+=1
 3290  ENDIF
 3300UNTIL c%=0
 3310max_swis%=tel%
 3320max_swi_w%=w%
 3330b%!0 =-8
 3340b%!4 =-4-40*max_swis%
 3350b%!8 =w%*16+8
 3360b%!12=4
 3370SYS "Wimp_SetExtent",w_swis%,b%
 3380ENDPROC
 3390:
 3400DEF FNgetword(h%)
 3410LOCAL a%,l%,v%
 3420FOR l%=0TO3
 3430  v%=BGET#h% AND &FF
 3440  a%=a% OR (v% << (l%*8))
 3450NEXT
 3460=a%
 3470:
 3480DEF PROCterminate
 3490$q%="TASK"
 3500SYS "Wimp_CloseDown",taskhandle%,q%
 3510ENDPROC
 3520:
 3530DEF PROCinitmenus
 3540LOCAL a%
 3550m_mainmenu%=menu%
 3560a%=m_mainmenu%
 3570$a%="RM Info"+CHR$(0)
 3580a%!12=&70207
 3590a%!16=80
 3600a%!20=40
 3610a%!24=0
 3620a%!28=0
 3630a%!32=w_info%
 3640a%!36=&7009039
 3650$(a%+40)="Info"+CHR$(0)
 3660a%!52=&80
 3670a%!56=-1
 3680a%!60=&7009039
 3690$(a%+64)="Quit"+CHR$(0)
 3700ENDPROC
 3710:
 3720DEF PROCmouse(mousex%,mousey%,buttons%,handle%,icon%,oldbuttons%)
 3730LOCAL x1%,y1%,y2%,item%,n$,c%,t%
 3740:
 3750IF buttons%=2 THEN
 3760 CASE handle% OF
 3770  WHEN -2:IF icon%=i_iconbar% SYS "Wimp_CreateMenu",,m_mainmenu%,mousex%-64,96+40*2:MenuActive%=m_mainmenu%
 3780 ENDCASE
 3790ENDIF
 3800IF handle%=w_comm% AND (buttons%=1 OR buttons%=2 OR buttons%=4) THEN
 3810  !q%=w_comm%:SYS"Wimp_GetWindowState",,q%
 3820  item%=(-q%!24+q%!16-mousey%)DIV40
 3830  IF item% <= max_comm%-1 THEN
 3840    PROCaltericondata(w_comminfo%,03,"&"+STR$~(command_ptr%(item%,1)!0))
 3850    PROCaltericondata(w_comminfo%,04,"&"+STR$~(command_ptr%(item%,1)!8))
 3860    PROCaltericondata(w_comminfo%,05,"&"+STR$~(command_ptr%(item%,1)!12))
 3870    c%=command_ptr%(item%,1)!4
 3880    PROCaltericondata(w_comminfo%,11,STR$(c% AND &FF))
 3890    PROCaltericondata(w_comminfo%,12,STR$((c%>>16) AND &FF))
 3900    IF ((c%>>31)AND1)=1 THEN PROClolighticon(w_comminfo%,6):ELSE PROChighlighticon(w_comminfo%,6)
 3910    IF ((c%>>30)AND1)=1 THEN PROClolighticon(w_comminfo%,7):ELSE PROChighlighticon(w_comminfo%,7)
 3920    IF ((c%>>29)AND1)=1 THEN PROClolighticon(w_comminfo%,8):ELSE PROChighlighticon(w_comminfo%,8)
 3930    !q%=w_comminfo%:SYS"Wimp_GetWindowState",,q%
 3940    q%!28=-1:SYS"Wimp_OpenWindow",,q%
 3950  ENDIF
 3960ENDIF
 3970IF handle%=w_main% AND (buttons%=1 OR buttons%=2 OR buttons%=4) THEN
 3980  IF icon%=14 AND SWIs% THEN
 3990    !q%=w_swis%:SYS"Wimp_GetWindowState",,q%
 4000    q%!28=-1:x1%=q%!4:y1%=q%!8:x2%=q%!12:y2%=q%!16
 4010    q%!4 =mousex%-64 -8
 4020    q%!8 =mousey%+40 -4-40*max_swis%
 4030    q%!12=mousex%-64 +max_swi_w%*16+8
 4040    q%!16=mousey%+40 +4
 4050    SYS"Wimp_OpenWindow",,q%:SYS"Wimp_CloseWindow",,q%
 4060    SYS"Wimp_CreateMenu",,w_swis%,mousex%-64,mousey%+40
 4070    !q%=w_comminfo%:SYS"Wimp_CloseWindow",,q%
 4080  ENDIF
 4090  IF icon%=17 AND Commands% THEN
 4100    !q%=w_comm%:SYS"Wimp_GetWindowState",,q%
 4110    q%!28=-1:x1%=q%!4:y1%=q%!8:x2%=q%!12:y2%=q%!16
 4120    q%!4 =mousex%-64 -8
 4130    q%!8 =mousey%+40 -4-40*max_comm%
 4140    q%!12=mousex%-64 +max_comm_w%*16+8
 4150    q%!16=mousey%+40 +4
 4160    SYS"Wimp_OpenWindow",,q%:SYS"Wimp_CloseWindow",,q%
 4170    SYS"Wimp_CreateMenu",,w_comm%,mousex%-64,mousey%+40
 4180  ENDIF
 4190ENDIF
 4200ENDPROC
 4210:
 4220DEF PROCProgramShape
 4230SYS"OS_SpriteOp",&124,spritearea%,"ptr_menu",2,6,2,-1,-1
 4240ENDPROC
 4250:
 4260DEF PROCaltericondata(h%,i%,a$)
 4270LOCAL p%:p%=FNicondata(h%,i%):$p%=a$
 4280ib%!0=h%:ib%!4=i%:SYS "Wimp_GetIconState",,ib%
 4290SYS "Wimp_ForceRedraw",h%,ib%!8+2,ib%!12-4,ib%!16-2,ib%!20+4
 4300ENDPROC
 4310:
 4320DEF FNicondata(handle%,icon%)
 4330ib%!0=handle%:ib%!4=icon%:SYS "Wimp_GetIconState",,ib%
 4340=ib%!28
 4350:
 4360DEF PROCMenuSelect
 4370LOCAL c%
 4380SYS "Wimp_GetPointerInfo",,b%:c%=FALSE:IF b%!8=1 c%=TRUE:REM adjust
 4390CASE MenuActive% OF
 4400WHEN m_mainmenu%
 4410  CASE q%!0 OF
 4420  WHEN 1:
 4430    PROCterminate
 4440  ENDCASE
 4450  IF c% SYS "Wimp_CreateMenu",,m_mainmenu%
 4460ENDCASE
 4470ENDPROC
 4480:
 4490DEF FNwindow(a$)
 4500LOCAL c%
 4510SYS "Wimp_LoadTemplate",,q%,curbuf%,endbuf%,-1,a$,0 TO ,,curbuf%,,,,c%
 4520IF a$="w_main"     THEN q%!64=spritearea%
 4530IF a$="w_comminfo" THEN q%!64=spritearea%
 4540SYS "Wimp_CreateWindow",,q% TO c%
 4550=c%
 4560:
 4570DEF FNworkspace(L%)
 4580IF curbuff%+L%>buffer%+maxbuf% THEN ERROR 1,"No more buffer space"
 4590curbuff%+=L%
 4600=curbuff%-L%
 4610:
 4620DEF FN_Wimp_ReportError(error$,errnummer%,flags%,applname$)
 4630  LOCAL result%
 4640  b%!0 = errnummer%
 4650  $(b%+4) = error$:$ib% = LEFT$(applname$,20)
 4660  SYS "Wimp_ReportError",b%,flags%,ib% TO ,result%
 4670=result%
 4680:
 4690DEF PROC_error(error$,application$)
 4700  LOCAL d%
 4710  d% = FN_Wimp_ReportError(error$,0,%00001,application$)
 4720ENDPROC
 4730:
 4740DEF PROChighlighticon(h%,i%)
 4750ib%!0=h%:ib%!4=i%:ib%!8=&200000:ib%!12=&200000:SYS"Wimp_SetIconState",,ib%
 4760ENDPROC
 4770:
 4780DEF PROClolighticon(h%,i%)
 4790ib%!0=h%:ib%!4=i%:ib%!8=0:ib%!12=&200000:SYS"Wimp_SetIconState",,ib%
 4800ENDPROC

� ><Current$Dir>.!RunImage
�
�   Module info
($�   ��1990/91/92 Erik van de Pol
2�
< �  This program is freeware.
F:
PVersion$="1.42"
Z&Version$=Version$+" (13 Sep 1992)"
d:
n6� �:�_error(�$+" (Code "+�(�)+")","Module Info"):�
x:
�� q% 1000,ib% 100,b%300
�%� curbuf% 800:endbuf%=curbuf%+800
�7� buffer% 300:maxbuff%=buffer%+300:curbuff%=buffer%
�� factors% 16,trans% 16
�"� SWI$(64),command_ptr%(255,1)
�� cbl% 8192
�� command_buff% cbl%
�max_comm%=-1
�:
�Old_Area%=-1
�SWIs%=�
�Commands%=�
�:
Spritelen%=1200
� spritearea% Spritelen%
spritearea%!0 =Spritelen%
"spritearea%!4 =0
,spritearea%!8 =16
6spritearea%!12=16
@%ș "OS_SpriteOp",&109,spritearea%
J@ș "OS_SpriteOp",&10A,spritearea%,"<ModuleInfo$Dir>.Sprites"
T:
^Cș "Wimp_Initialise",200,&4B534154,"Module Info" � ,taskhandle%
h:
r8ș "Wimp_OpenTemplate",,"<ModuleInfo$Dir>.Templates"
|w_main%  =�window("w_main")
�w_info%  =�window("w_info")
�w_swis%  =�window("w_swis")
�#w_comm%  =�window("w_commands")
�%w_comminfo%=�window("w_comminfo")
�ș "Wimp_CloseTemplate"
�&�altericondata(w_info%,4,Version$)
�:
�i_iconbar%=�_iconbar
�:
�� menu% 80
��initmenus
�:
��
%  ș "Wimp_Poll",&100,q% � event%
  Ȏ event% �

  � 0:
&#    ș"Wimp_GetPointerInfo",,q%
0    � q%!12=w_main% �
:      Ȏ q%!16 �
D7      � 14:� SWIs%     �ProgramShape:� �("Pointer")
N7      � 17:� Commands% �ProgramShape:� �("Pointer")
X      
b        �("Pointer")
l      �
v	    �
�
  � 1:
�    �_UserRedraw
�
  � 2:
�     ș "Wimp_OpenWindow",,q%
�
  � 3:
�!    ș "Wimp_CloseWindow",,q%
�    � !q%=w_main% �
�.      !q%=w_swis%:ș"Wimp_CloseWindow",,q%
�.      !q%=w_comm%:ș"Wimp_CloseWindow",,q%
�2      !q%=w_comminfo%:ș"Wimp_CloseWindow",,q%
�	    �
�
  � 4:
�    �("Pointer")

  � 5:
    � q%!0=w_main% �
%      ș"Wimp_GetPointerInfo",,q%
        � Old_Area% <> q%!16 �
*"        � (q%!16=14) � SWIs% �
4          �ProgramShape
>
        �
H          �("Pointer")
R
        �
\&        � (q%!16=17) � Commands% �
f          �ProgramShape
p
        �
z          �("Pointer")
�
        �
�        Old_Area%=q%!16
�      �
�	    �
�
  � 6:
�0    �mouse(q%!0,q%!4,q%!8,q%!12,q%!16,q%!20)
�
  � 9:
�    �MenuSelect
�  � 17,18:�receive
�  �
�� �
�:
�� �_UserRedraw

� handle%
handle%=q%!0
Ȏ handle% �
$  � w_swis%:
.    �_Redraw_SWIs
8  � w_comm%:
B    �_Redraw_Commands
L�
V�
`:
j� �_Redraw_SWIs
t� flag%,y%
~!q%=w_swis%
�%ș"Wimp_RedrawWindow",,q% � flag%
�ȕ flag%
�  ș"Wimp_SetColour",7
�  � y%=0 � max_swis%-1
�+    � q%!4+4-q%!20,-40*y%+q%!16-q%!24-8
�    � SWI$(y%)
�  �
�'  ș"Wimp_GetRectangle",,q% � flag%
��
��
�:
�:
� �_Redraw_Commands

� flag%,y%,m%
!q%=w_comm%
m%=max_comm_w%*16
(%ș"Wimp_RedrawWindow",,q% � flag%
2ȕ flag%
<  ș"Wimp_SetColour",7
F  � y%=0 � max_comm%-1
P-    � q%!4+4-q%!20 , -40*y%+q%!16-q%!24-8
Z(    ș"OS_Write0",command_ptr%(y%,0)
d  �
n'  ș"Wimp_GetRectangle",,q% � flag%
x�
��
�:
�:
�� �_iconbar
�� r%
�
!q%=-1
�
q%!4=0
�
q%!8=0
�q%!12=63
�q%!16=68
�q%!20=&2002
�$(q%+24)="!modulinfo"
�!ș "Wimp_CreateIcon",,q% � r%
=r%
:
� �receive
"F� type%,f$,mess%,data%,h%,a%,title%,help%,n$,c%,tel%,commandtable%
,:
6mess%=q%!16
@Ȏ mess% �
J� 0:
T  �terminate
^� 3:
h  type% =q%!40
r  � type%=&FFA �
|
    n$=""
�	    �
�      c%=?(q%+44+tel%)
�      tel%+=1
�      n$+=�(c%)
�    � c%=0
�    n$=�n$)
�*    �altericondata(w_main%,18,�n$,45))
�    h%=�(n$)
�    data% =�#h%
�+    �altericondata(w_main%,21,�(data%))
�?    a%=�getword(h%):� a%=0 � f$="<No code>" � f$="&"+�~(a%)
�$    �altericondata(w_main%,7,f$)
�?    a%=�getword(h%):� a%=0 � f$="<No code>" � f$="&"+�~(a%)
$    �altericondata(w_main%,8,f$)
?    a%=�getword(h%):� a%=0 � f$="<No code>" � f$="&"+�~(a%)
$    �altericondata(w_main%,9,f$)
&?    a%=�getword(h%):� a%=0 � f$="<No code>" � f$="&"+�~(a%)
0%    �altericondata(w_main%,10,f$)
:    title%=�getword(h%)
D    help% =�getword(h%)
N"    commandtable%=�getword(h%)
X    � commandtable%=0 �
b      f$="<No>"
l      Commands%=�
v	    �
�"      f$="&"+�~(commandtable%)
�      Commands%=�
�	    �
�%    �altericondata(w_main%,16,f$)
�    SWIs%=�
�    a%=�getword(h%)
�+    � a%=0 � a%> &FFFFFF � (a%�64<>0) �
�      f$="<No SWIs>"
�      SWI_Decode_Table%=0
�	    �
�      f$="&"+�~(a%)
�      �# h%=&24
�(      SWI_Decode_Table%=�getword(h%)
=      � SWI_Decode_Table%>&18 � SWI_Decode_Table%<data% �
        SWIs%=�
5        �_Create_SWI_Window(SWI_Decode_Table%,h%)
       �
*        SWI_Decode_Table%=0
4      �
>	    �
H%    �altericondata(w_main%,13,f$)
R    � title%>&18 �
\      f$=""
f      �# h%=title%
p      �
z        c%=�# h%
�        � c%=9 �
�          �
�            f$+=" "
�          � �(f$) � 3=0
�
        �
�          f$+=�(c%)
�
        �
�      � c%=0
�      f$=�f$)
�	    �
�      f$="<No title>"
�	    �
�*    �altericondata(w_main%,11,�f$,45))
	    � help%>&18 �
	      f$=""
	      �# h%=help%
	$      �
	.        c%=�# h%
	8        � c%=9 �
	B          �
	L            f$+=" "
	V          � �(f$) � 3=0
	`
        �
	j          f$+=�(c%)
	t
        �
	~      � c%=0
	�      f$=�f$)
	�	    �
	�      f$="<No help>"
	�	    �
	�*    �altericondata(w_main%,12,�f$,90))
	�b    � Commands% � commandtable%>&18 � commandtable% < data% � �_Get_Commands(commandtable%,h%)
	�
    �# h%
	�    q%!16=4
	�"    ș"Wimp_SendMessage",17,q%
	�    q%!0=w_main%
	�#    ș"Wimp_GetWindowState",,q%
	�    q%!28=-1
    ș"Wimp_OpenWindow",,q%

1    q%!0=w_comminfo%:ș"Wimp_CloseWindow",,q%
  �
�
(�
2:
<� �_Get_Commands(ptr%,h%)
F� tel%,c%,d%,n$,i%,pb%,l%
P:
Z�# h%=ptr%
d
tel%=0
npb%=command_buff%
xmax_comm_w%=0
��
�  c%=�getword(h%)
�  � (c%�&FF)<>0 �
�    � * command found
�     command_ptr%(tel%,0)=pb%
�    !pb%=c%
�    pb%+=4
�"    � � �_ZeroByteInWord(c%) �
�      �
�        d%=�getword(h%)
�        !pb%=d%
�        pb%+=4
�       � �_ZeroByteInWord(d%)
	    �
#    i%=pb%-command_ptr%(tel%,0)
+    � i% > max_comm_w% � max_comm_w%=i%
"     command_ptr%(tel%,1)=pb%
,    � l%=1 � 4
6      !pb%=�getword(h%)
@      pb%+=4
J	    �
T    tel%+=1
^  �
h� (c%�&FF)=0
rmax_comm%=tel%
|b%!0 =-8
�b%!4 =-4-40*max_comm%
�b%!8 =max_comm_w%*16+8
�b%!12=4
�"ș "Wimp_SetExtent",w_comm%,b%
��
�:
�� �_ZeroByteInWord(w%)
�� l%
�� l%=0�3
�!  � ((w%>>(8*l%))�&FF)=0 � =�
��
�=�
�:
"� �_Create_SWI_Window(ptr%,h%)
� tel%,c%,a%,n$,d%,w%
:
&�# h%=ptr%
0
tel%=0
:�
D  c%=�# h%
N  � c%<>0 �
X    � * Item found!
b    n$=�(c%)
l    � * get chunk/SWI name
v	    �
�      d%=�#h%
�      n$+=�(d%)
�    � d%=0
�    n$=�n$)
�     � * '_' for leading name
�    � tel%=0 � n$+="_"
�    SWI$(tel%)=n$
�    � �(n$)>w% � w%=�(n$)
�    tel%+=1
�  �
�
� c%=0
�max_swis%=tel%
�max_swi_w%=w%

b%!0 =-8

b%!4 =-4-40*max_swis%

b%!8 =w%*16+8

 b%!12=4

*"ș "Wimp_SetExtent",w_swis%,b%

4�

>:

H� �getword(h%)

R� a%,l%,v%

\� l%=0�3

f  v%=�#h% � &FF

p  a%=a% � (v% << (l%*8))

z�

�=a%

�:

�� �terminate

�$q%="TASK"

�&ș "Wimp_CloseDown",taskhandle%,q%

��

�:

�� �initmenus

�� a%

�m_mainmenu%=menu%

�a%=m_mainmenu%

�$a%="RM Info"+�(0)

�a%!12=&70207
a%!16=80
a%!20=40
a%!24=0
$a%!28=0
.a%!32=w_info%
8a%!36=&7009039
B$(a%+40)="Info"+�(0)
L
a%!52=&80
Va%!56=-1
`a%!60=&7009039
j$(a%+64)="Quit"+�(0)
t�
~:
�@� �mouse(mousex%,mousey%,buttons%,handle%,icon%,oldbuttons%)
� � x1%,y1%,y2%,item%,n$,c%,t%
�:
�� buttons%=2 �
� Ȏ handle% �
�j  � -2:� icon%=i_iconbar% ș "Wimp_CreateMenu",,m_mainmenu%,mousex%-64,96+40*2:MenuActive%=m_mainmenu%
� �
��
�@� handle%=w_comm% � (buttons%=1 � buttons%=2 � buttons%=4) �
�-  !q%=w_comm%:ș"Wimp_GetWindowState",,q%
�%  item%=(-q%!24+q%!16-mousey%)�40
�  � item% <= max_comm%-1 �
F    �altericondata(w_comminfo%,03,"&"+�~(command_ptr%(item%,1)!0))

F    �altericondata(w_comminfo%,04,"&"+�~(command_ptr%(item%,1)!8))
G    �altericondata(w_comminfo%,05,"&"+�~(command_ptr%(item%,1)!12))
"    c%=command_ptr%(item%,1)!4
(2    �altericondata(w_comminfo%,11,�(c% � &FF))
28    �altericondata(w_comminfo%,12,�((c%>>16) � &FF))
<V    � ((c%>>31)�1)=1 � �lolighticon(w_comminfo%,6):� �highlighticon(w_comminfo%,6)
FV    � ((c%>>30)�1)=1 � �lolighticon(w_comminfo%,7):� �highlighticon(w_comminfo%,7)
PV    � ((c%>>29)�1)=1 � �lolighticon(w_comminfo%,8):� �highlighticon(w_comminfo%,8)
Z3    !q%=w_comminfo%:ș"Wimp_GetWindowState",,q%
d(    q%!28=-1:ș"Wimp_OpenWindow",,q%
n  �
x�
�@� handle%=w_main% � (buttons%=1 � buttons%=2 � buttons%=4) �
�  � icon%=14 � SWIs% �
�/    !q%=w_swis%:ș"Wimp_GetWindowState",,q%
�6    q%!28=-1:x1%=q%!4:y1%=q%!8:x2%=q%!12:y2%=q%!16
�    q%!4 =mousex%-64 -8
�(    q%!8 =mousey%+40 -4-40*max_swis%
�)    q%!12=mousex%-64 +max_swi_w%*16+8
�    q%!16=mousey%+40 +4
�8    ș"Wimp_OpenWindow",,q%:ș"Wimp_CloseWindow",,q%
�:    ș"Wimp_CreateMenu",,w_swis%,mousex%-64,mousey%+40
�0    !q%=w_comminfo%:ș"Wimp_CloseWindow",,q%
�  �
�  � icon%=17 � Commands% �
/    !q%=w_comm%:ș"Wimp_GetWindowState",,q%
6    q%!28=-1:x1%=q%!4:y1%=q%!8:x2%=q%!12:y2%=q%!16
    q%!4 =mousex%-64 -8
"(    q%!8 =mousey%+40 -4-40*max_comm%
,*    q%!12=mousex%-64 +max_comm_w%*16+8
6    q%!16=mousey%+40 +4
@8    ș"Wimp_OpenWindow",,q%:ș"Wimp_CloseWindow",,q%
J:    ș"Wimp_CreateMenu",,w_comm%,mousex%-64,mousey%+40
T  �
^�
h�
r:
|� �ProgramShape
�;ș"OS_SpriteOp",&124,spritearea%,"ptr_menu",2,6,2,-1,-1
��
�:
�� �altericondata(h%,i%,a$)
�#� p%:p%=�icondata(h%,i%):$p%=a$
�1ib%!0=h%:ib%!4=i%:ș "Wimp_GetIconState",,ib%
�?ș "Wimp_ForceRedraw",h%,ib%!8+2,ib%!12-4,ib%!16-2,ib%!20+4
��
�:
�� �icondata(handle%,icon%)
�9ib%!0=handle%:ib%!4=icon%:ș "Wimp_GetIconState",,ib%
�=ib%!28
�:
� �MenuSelect
� c%
<ș "Wimp_GetPointerInfo",,b%:c%=�:� b%!8=1 c%=�:� adjust
&Ȏ MenuActive% �
0� m_mainmenu%
:  Ȏ q%!0 �
D
  � 1:
N    �terminate
X  �
b,  � c% ș "Wimp_CreateMenu",,m_mainmenu%
l�
v�
�:
�� �window(a$)
�� c%
�Hș "Wimp_LoadTemplate",,q%,curbuf%,endbuf%,-1,a$,0 � ,,curbuf%,,,,c%
�)� a$="w_main"     � q%!64=spritearea%
�)� a$="w_comminfo" � q%!64=spritearea%
�#ș "Wimp_CreateWindow",,q% � c%
�=c%
�:
�� �workspace(L%)
�>� curbuff%+L%>buffer%+maxbuf% � � 1,"No more buffer space"
�curbuff%+=L%
�=curbuff%-L%
:
<� �_Wimp_ReportError(error$,errnummer%,flags%,applname$)
  � result%
   b%!0 = errnummer%
*,  $(b%+4) = error$:$ib% = �applname$,20)
44  ș "Wimp_ReportError",b%,flags%,ib% � ,result%
>=result%
H:
R"� �_error(error$,application$)
\
  � d%
f;  d% = �_Wimp_ReportError(error$,0,%00001,application$)
p�
z:
�� �highlighticon(h%,i%)
�Mib%!0=h%:ib%!4=i%:ib%!8=&200000:ib%!12=&200000:ș"Wimp_SetIconState",,ib%
��
�:
�� �lolighticon(h%,i%)
�Gib%!0=h%:ib%!4=i%:ib%!8=0:ib%!12=&200000:ș"Wimp_SetIconState",,ib%
��
�
00000000  0d 00 0a 1e f4 20 3e 3c  43 75 72 72 65 6e 74 24  |..... ><Current$|
00000010  44 69 72 3e 2e 21 52 75  6e 49 6d 61 67 65 0d 00  |Dir>.!RunImage..|
00000020  14 05 f4 0d 00 1e 13 f4  20 20 20 4d 6f 64 75 6c  |........   Modul|
00000030  65 20 69 6e 66 6f 0d 00  28 24 f4 20 20 20 a9 a0  |e info..($.   ..|
00000040  31 39 39 30 2f 39 31 2f  39 32 20 45 72 69 6b 20  |1990/91/92 Erik |
00000050  76 61 6e 20 64 65 20 50  6f 6c 0d 00 32 05 f4 0d  |van de Pol..2...|
00000060  00 3c 20 f4 20 20 54 68  69 73 20 70 72 6f 67 72  |.< .  This progr|
00000070  61 6d 20 69 73 20 66 72  65 65 77 61 72 65 2e 0d  |am is freeware..|
00000080  00 46 05 3a 0d 00 50 13  56 65 72 73 69 6f 6e 24  |.F.:..P.Version$|
00000090  3d 22 31 2e 34 32 22 0d  00 5a 26 56 65 72 73 69  |="1.42"..Z&Versi|
000000a0  6f 6e 24 3d 56 65 72 73  69 6f 6e 24 2b 22 20 28  |on$=Version$+" (|
000000b0  31 33 20 53 65 70 20 31  39 39 32 29 22 0d 00 64  |13 Sep 1992)"..d|
000000c0  05 3a 0d 00 6e 36 ee 20  85 3a f2 5f 65 72 72 6f  |.:..n6. .:._erro|
000000d0  72 28 f6 24 2b 22 20 28  43 6f 64 65 20 22 2b c3  |r(.$+" (Code "+.|
000000e0  28 9e 29 2b 22 29 22 2c  22 4d 6f 64 75 6c 65 20  |(.)+")","Module |
000000f0  49 6e 66 6f 22 29 3a e0  0d 00 78 05 3a 0d 00 82  |Info"):...x.:...|
00000100  1b de 20 71 25 20 31 30  30 30 2c 69 62 25 20 31  |.. q% 1000,ib% 1|
00000110  30 30 2c 62 25 33 30 30  0d 00 8c 25 de 20 63 75  |00,b%300...%. cu|
00000120  72 62 75 66 25 20 38 30  30 3a 65 6e 64 62 75 66  |rbuf% 800:endbuf|
00000130  25 3d 63 75 72 62 75 66  25 2b 38 30 30 0d 00 96  |%=curbuf%+800...|
00000140  37 de 20 62 75 66 66 65  72 25 20 33 30 30 3a 6d  |7. buffer% 300:m|
00000150  61 78 62 75 66 66 25 3d  62 75 66 66 65 72 25 2b  |axbuff%=buffer%+|
00000160  33 30 30 3a 63 75 72 62  75 66 66 25 3d 62 75 66  |300:curbuff%=buf|
00000170  66 65 72 25 0d 00 a0 1b  de 20 66 61 63 74 6f 72  |fer%..... factor|
00000180  73 25 20 31 36 2c 74 72  61 6e 73 25 20 31 36 0d  |s% 16,trans% 16.|
00000190  00 aa 22 de 20 53 57 49  24 28 36 34 29 2c 63 6f  |..". SWI$(64),co|
000001a0  6d 6d 61 6e 64 5f 70 74  72 25 28 32 35 35 2c 31  |mmand_ptr%(255,1|
000001b0  29 0d 00 b4 0f de 20 63  62 6c 25 20 38 31 39 32  |)..... cbl% 8192|
000001c0  0d 00 be 18 de 20 63 6f  6d 6d 61 6e 64 5f 62 75  |..... command_bu|
000001d0  66 66 25 20 63 62 6c 25  0d 00 c8 10 6d 61 78 5f  |ff% cbl%....max_|
000001e0  63 6f 6d 6d 25 3d 2d 31  0d 00 d2 05 3a 0d 00 dc  |comm%=-1....:...|
000001f0  10 4f 6c 64 5f 41 72 65  61 25 3d 2d 31 0d 00 e6  |.Old_Area%=-1...|
00000200  0b 53 57 49 73 25 3d a3  0d 00 f0 0f 43 6f 6d 6d  |.SWIs%=.....Comm|
00000210  61 6e 64 73 25 3d a3 0d  00 fa 05 3a 0d 01 04 13  |ands%=.....:....|
00000220  53 70 72 69 74 65 6c 65  6e 25 3d 31 32 30 30 0d  |Spritelen%=1200.|
00000230  01 0e 1c de 20 73 70 72  69 74 65 61 72 65 61 25  |.... spritearea%|
00000240  20 53 70 72 69 74 65 6c  65 6e 25 0d 01 18 1d 73  | Spritelen%....s|
00000250  70 72 69 74 65 61 72 65  61 25 21 30 20 3d 53 70  |pritearea%!0 =Sp|
00000260  72 69 74 65 6c 65 6e 25  0d 01 22 14 73 70 72 69  |ritelen%..".spri|
00000270  74 65 61 72 65 61 25 21  34 20 3d 30 0d 01 2c 15  |tearea%!4 =0..,.|
00000280  73 70 72 69 74 65 61 72  65 61 25 21 38 20 3d 31  |spritearea%!8 =1|
00000290  36 0d 01 36 15 73 70 72  69 74 65 61 72 65 61 25  |6..6.spritearea%|
000002a0  21 31 32 3d 31 36 0d 01  40 25 c8 99 20 22 4f 53  |!12=16..@%.. "OS|
000002b0  5f 53 70 72 69 74 65 4f  70 22 2c 26 31 30 39 2c  |_SpriteOp",&109,|
000002c0  73 70 72 69 74 65 61 72  65 61 25 0d 01 4a 40 c8  |spritearea%..J@.|
000002d0  99 20 22 4f 53 5f 53 70  72 69 74 65 4f 70 22 2c  |. "OS_SpriteOp",|
000002e0  26 31 30 41 2c 73 70 72  69 74 65 61 72 65 61 25  |&10A,spritearea%|
000002f0  2c 22 3c 4d 6f 64 75 6c  65 49 6e 66 6f 24 44 69  |,"<ModuleInfo$Di|
00000300  72 3e 2e 53 70 72 69 74  65 73 22 0d 01 54 05 3a  |r>.Sprites"..T.:|
00000310  0d 01 5e 43 c8 99 20 22  57 69 6d 70 5f 49 6e 69  |..^C.. "Wimp_Ini|
00000320  74 69 61 6c 69 73 65 22  2c 32 30 30 2c 26 34 42  |tialise",200,&4B|
00000330  35 33 34 31 35 34 2c 22  4d 6f 64 75 6c 65 20 49  |534154,"Module I|
00000340  6e 66 6f 22 20 b8 20 2c  74 61 73 6b 68 61 6e 64  |nfo" . ,taskhand|
00000350  6c 65 25 0d 01 68 05 3a  0d 01 72 38 c8 99 20 22  |le%..h.:..r8.. "|
00000360  57 69 6d 70 5f 4f 70 65  6e 54 65 6d 70 6c 61 74  |Wimp_OpenTemplat|
00000370  65 22 2c 2c 22 3c 4d 6f  64 75 6c 65 49 6e 66 6f  |e",,"<ModuleInfo|
00000380  24 44 69 72 3e 2e 54 65  6d 70 6c 61 74 65 73 22  |$Dir>.Templates"|
00000390  0d 01 7c 1f 77 5f 6d 61  69 6e 25 20 20 3d a4 77  |..|.w_main%  =.w|
000003a0  69 6e 64 6f 77 28 22 77  5f 6d 61 69 6e 22 29 0d  |indow("w_main").|
000003b0  01 86 1f 77 5f 69 6e 66  6f 25 20 20 3d a4 77 69  |...w_info%  =.wi|
000003c0  6e 64 6f 77 28 22 77 5f  69 6e 66 6f 22 29 0d 01  |ndow("w_info")..|
000003d0  90 1f 77 5f 73 77 69 73  25 20 20 3d a4 77 69 6e  |..w_swis%  =.win|
000003e0  64 6f 77 28 22 77 5f 73  77 69 73 22 29 0d 01 9a  |dow("w_swis")...|
000003f0  23 77 5f 63 6f 6d 6d 25  20 20 3d a4 77 69 6e 64  |#w_comm%  =.wind|
00000400  6f 77 28 22 77 5f 63 6f  6d 6d 61 6e 64 73 22 29  |ow("w_commands")|
00000410  0d 01 a4 25 77 5f 63 6f  6d 6d 69 6e 66 6f 25 3d  |...%w_comminfo%=|
00000420  a4 77 69 6e 64 6f 77 28  22 77 5f 63 6f 6d 6d 69  |.window("w_commi|
00000430  6e 66 6f 22 29 0d 01 ae  1b c8 99 20 22 57 69 6d  |nfo")...... "Wim|
00000440  70 5f 43 6c 6f 73 65 54  65 6d 70 6c 61 74 65 22  |p_CloseTemplate"|
00000450  0d 01 b8 26 f2 61 6c 74  65 72 69 63 6f 6e 64 61  |...&.altericonda|
00000460  74 61 28 77 5f 69 6e 66  6f 25 2c 34 2c 56 65 72  |ta(w_info%,4,Ver|
00000470  73 69 6f 6e 24 29 0d 01  c2 05 3a 0d 01 cc 18 69  |sion$)....:....i|
00000480  5f 69 63 6f 6e 62 61 72  25 3d a4 5f 69 63 6f 6e  |_iconbar%=._icon|
00000490  62 61 72 0d 01 d6 05 3a  0d 01 e0 0e de 20 6d 65  |bar....:..... me|
000004a0  6e 75 25 20 38 30 0d 01  ea 0e f2 69 6e 69 74 6d  |nu% 80.....initm|
000004b0  65 6e 75 73 0d 01 f4 05  3a 0d 01 fe 05 f5 0d 02  |enus....:.......|
000004c0  08 25 20 20 c8 99 20 22  57 69 6d 70 5f 50 6f 6c  |.%  .. "Wimp_Pol|
000004d0  6c 22 2c 26 31 30 30 2c  71 25 20 b8 20 65 76 65  |l",&100,q% . eve|
000004e0  6e 74 25 0d 02 12 11 20  20 c8 8e 20 65 76 65 6e  |nt%....  .. even|
000004f0  74 25 20 ca 0d 02 1c 0a  20 20 c9 20 30 3a 0d 02  |t% .....  . 0:..|
00000500  26 23 20 20 20 20 c8 99  22 57 69 6d 70 5f 47 65  |&#    .."Wimp_Ge|
00000510  74 50 6f 69 6e 74 65 72  49 6e 66 6f 22 2c 2c 71  |tPointerInfo",,q|
00000520  25 0d 02 30 19 20 20 20  20 e7 20 71 25 21 31 32  |%..0.    . q%!12|
00000530  3d 77 5f 6d 61 69 6e 25  20 8c 0d 02 3a 14 20 20  |=w_main% ...:.  |
00000540  20 20 20 20 c8 8e 20 71  25 21 31 36 20 ca 0d 02  |    .. q%!16 ...|
00000550  44 37 20 20 20 20 20 20  c9 20 31 34 3a e7 20 53  |D7      . 14:. S|
00000560  57 49 73 25 20 20 20 20  20 f2 50 72 6f 67 72 61  |WIs%     .Progra|
00000570  6d 53 68 61 70 65 3a 8b  20 ff 28 22 50 6f 69 6e  |mShape:. .("Poin|
00000580  74 65 72 22 29 0d 02 4e  37 20 20 20 20 20 20 c9  |ter")..N7      .|
00000590  20 31 37 3a e7 20 43 6f  6d 6d 61 6e 64 73 25 20  | 17:. Commands% |
000005a0  f2 50 72 6f 67 72 61 6d  53 68 61 70 65 3a 8b 20  |.ProgramShape:. |
000005b0  ff 28 22 50 6f 69 6e 74  65 72 22 29 0d 02 58 0b  |.("Pointer")..X.|
000005c0  20 20 20 20 20 20 7f 0d  02 62 18 20 20 20 20 20  |      ...b.     |
000005d0  20 20 20 ff 28 22 50 6f  69 6e 74 65 72 22 29 0d  |   .("Pointer").|
000005e0  02 6c 0b 20 20 20 20 20  20 cb 0d 02 76 09 20 20  |.l.      ...v.  |
000005f0  20 20 cd 0d 02 80 0a 20  20 c9 20 31 3a 0d 02 8a  |  .....  . 1:...|
00000600  14 20 20 20 20 f2 5f 55  73 65 72 52 65 64 72 61  |.    ._UserRedra|
00000610  77 0d 02 94 0a 20 20 c9  20 32 3a 0d 02 9e 20 20  |w....  . 2:...  |
00000620  20 20 20 c8 99 20 22 57  69 6d 70 5f 4f 70 65 6e  |   .. "Wimp_Open|
00000630  57 69 6e 64 6f 77 22 2c  2c 71 25 0d 02 a8 0a 20  |Window",,q%.... |
00000640  20 c9 20 33 3a 0d 02 b2  21 20 20 20 20 c8 99 20  | . 3:...!    .. |
00000650  22 57 69 6d 70 5f 43 6c  6f 73 65 57 69 6e 64 6f  |"Wimp_CloseWindo|
00000660  77 22 2c 2c 71 25 0d 02  bc 17 20 20 20 20 e7 20  |w",,q%....    . |
00000670  21 71 25 3d 77 5f 6d 61  69 6e 25 20 8c 0d 02 c6  |!q%=w_main% ....|
00000680  2e 20 20 20 20 20 20 21  71 25 3d 77 5f 73 77 69  |.      !q%=w_swi|
00000690  73 25 3a c8 99 22 57 69  6d 70 5f 43 6c 6f 73 65  |s%:.."Wimp_Close|
000006a0  57 69 6e 64 6f 77 22 2c  2c 71 25 0d 02 d0 2e 20  |Window",,q%.... |
000006b0  20 20 20 20 20 21 71 25  3d 77 5f 63 6f 6d 6d 25  |     !q%=w_comm%|
000006c0  3a c8 99 22 57 69 6d 70  5f 43 6c 6f 73 65 57 69  |:.."Wimp_CloseWi|
000006d0  6e 64 6f 77 22 2c 2c 71  25 0d 02 da 32 20 20 20  |ndow",,q%...2   |
000006e0  20 20 20 21 71 25 3d 77  5f 63 6f 6d 6d 69 6e 66  |   !q%=w_comminf|
000006f0  6f 25 3a c8 99 22 57 69  6d 70 5f 43 6c 6f 73 65  |o%:.."Wimp_Close|
00000700  57 69 6e 64 6f 77 22 2c  2c 71 25 0d 02 e4 09 20  |Window",,q%.... |
00000710  20 20 20 cd 0d 02 ee 0a  20 20 c9 20 34 3a 0d 02  |   .....  . 4:..|
00000720  f8 14 20 20 20 20 ff 28  22 50 6f 69 6e 74 65 72  |..    .("Pointer|
00000730  22 29 0d 03 02 0a 20 20  c9 20 35 3a 0d 03 0c 18  |")....  . 5:....|
00000740  20 20 20 20 e7 20 71 25  21 30 3d 77 5f 6d 61 69  |    . q%!0=w_mai|
00000750  6e 25 20 8c 0d 03 16 25  20 20 20 20 20 20 c8 99  |n% ....%      ..|
00000760  22 57 69 6d 70 5f 47 65  74 50 6f 69 6e 74 65 72  |"Wimp_GetPointer|
00000770  49 6e 66 6f 22 2c 2c 71  25 0d 03 20 20 20 20 20  |Info",,q%..     |
00000780  20 20 20 e7 20 4f 6c 64  5f 41 72 65 61 25 20 3c  |   . Old_Area% <|
00000790  3e 20 71 25 21 31 36 20  8c 0d 03 2a 22 20 20 20  |> q%!16 ...*"   |
000007a0  20 20 20 20 20 e7 20 28  71 25 21 31 36 3d 31 34  |     . (q%!16=14|
000007b0  29 20 80 20 53 57 49 73  25 20 8c 0d 03 34 1b 20  |) . SWIs% ...4. |
000007c0  20 20 20 20 20 20 20 20  20 f2 50 72 6f 67 72 61  |         .Progra|
000007d0  6d 53 68 61 70 65 0d 03  3e 0d 20 20 20 20 20 20  |mShape..>.      |
000007e0  20 20 cc 0d 03 48 1a 20  20 20 20 20 20 20 20 20  |  ...H.         |
000007f0  20 ff 28 22 50 6f 69 6e  74 65 72 22 29 0d 03 52  | .("Pointer")..R|
00000800  0d 20 20 20 20 20 20 20  20 cd 0d 03 5c 26 20 20  |.        ...\&  |
00000810  20 20 20 20 20 20 e7 20  28 71 25 21 31 36 3d 31  |      . (q%!16=1|
00000820  37 29 20 80 20 43 6f 6d  6d 61 6e 64 73 25 20 8c  |7) . Commands% .|
00000830  0d 03 66 1b 20 20 20 20  20 20 20 20 20 20 f2 50  |..f.          .P|
00000840  72 6f 67 72 61 6d 53 68  61 70 65 0d 03 70 0d 20  |rogramShape..p. |
00000850  20 20 20 20 20 20 20 cc  0d 03 7a 1a 20 20 20 20  |       ...z.    |
00000860  20 20 20 20 20 20 ff 28  22 50 6f 69 6e 74 65 72  |      .("Pointer|
00000870  22 29 0d 03 84 0d 20 20  20 20 20 20 20 20 cd 0d  |")....        ..|
00000880  03 8e 1b 20 20 20 20 20  20 20 20 4f 6c 64 5f 41  |...        Old_A|
00000890  72 65 61 25 3d 71 25 21  31 36 0d 03 98 0b 20 20  |rea%=q%!16....  |
000008a0  20 20 20 20 cd 0d 03 a2  09 20 20 20 20 cd 0d 03  |    .....    ...|
000008b0  ac 0a 20 20 c9 20 36 3a  0d 03 b6 30 20 20 20 20  |..  . 6:...0    |
000008c0  f2 6d 6f 75 73 65 28 71  25 21 30 2c 71 25 21 34  |.mouse(q%!0,q%!4|
000008d0  2c 71 25 21 38 2c 71 25  21 31 32 2c 71 25 21 31  |,q%!8,q%!12,q%!1|
000008e0  36 2c 71 25 21 32 30 29  0d 03 c0 0a 20 20 c9 20  |6,q%!20)....  . |
000008f0  39 3a 0d 03 ca 13 20 20  20 20 f2 4d 65 6e 75 53  |9:....    .MenuS|
00000900  65 6c 65 63 74 0d 03 d4  16 20 20 c9 20 31 37 2c  |elect....  . 17,|
00000910  31 38 3a f2 72 65 63 65  69 76 65 0d 03 de 07 20  |18:.receive.... |
00000920  20 cb 0d 03 e8 07 fd 20  a3 0d 03 f2 05 3a 0d 03  | ...... .....:..|
00000930  fc 12 dd 20 f2 5f 55 73  65 72 52 65 64 72 61 77  |... ._UserRedraw|
00000940  0d 04 06 0d ea 20 68 61  6e 64 6c 65 25 0d 04 10  |..... handle%...|
00000950  10 68 61 6e 64 6c 65 25  3d 71 25 21 30 0d 04 1a  |.handle%=q%!0...|
00000960  10 c8 8e 20 68 61 6e 64  6c 65 25 20 ca 0d 04 24  |... handle% ...$|
00000970  10 20 20 c9 20 77 5f 73  77 69 73 25 3a 0d 04 2e  |.  . w_swis%:...|
00000980  15 20 20 20 20 f2 5f 52  65 64 72 61 77 5f 53 57  |.    ._Redraw_SW|
00000990  49 73 0d 04 38 10 20 20  c9 20 77 5f 63 6f 6d 6d  |Is..8.  . w_comm|
000009a0  25 3a 0d 04 42 19 20 20  20 20 f2 5f 52 65 64 72  |%:..B.    ._Redr|
000009b0  61 77 5f 43 6f 6d 6d 61  6e 64 73 0d 04 4c 05 cb  |aw_Commands..L..|
000009c0  0d 04 56 05 e1 0d 04 60  05 3a 0d 04 6a 13 dd 20  |..V....`.:..j.. |
000009d0  f2 5f 52 65 64 72 61 77  5f 53 57 49 73 0d 04 74  |._Redraw_SWIs..t|
000009e0  0e ea 20 66 6c 61 67 25  2c 79 25 0d 04 7e 0f 21  |.. flag%,y%..~.!|
000009f0  71 25 3d 77 5f 73 77 69  73 25 0d 04 88 25 c8 99  |q%=w_swis%...%..|
00000a00  22 57 69 6d 70 5f 52 65  64 72 61 77 57 69 6e 64  |"Wimp_RedrawWind|
00000a10  6f 77 22 2c 2c 71 25 20  b8 20 66 6c 61 67 25 0d  |ow",,q% . flag%.|
00000a20  04 92 0c c8 95 20 66 6c  61 67 25 0d 04 9c 1a 20  |..... flag%.... |
00000a30  20 c8 99 22 57 69 6d 70  5f 53 65 74 43 6f 6c 6f  | .."Wimp_SetColo|
00000a40  75 72 22 2c 37 0d 04 a6  1a 20 20 e3 20 79 25 3d  |ur",7....  . y%=|
00000a50  30 20 b8 20 6d 61 78 5f  73 77 69 73 25 2d 31 0d  |0 . max_swis%-1.|
00000a60  04 b0 2b 20 20 20 20 ec  20 71 25 21 34 2b 34 2d  |..+    . q%!4+4-|
00000a70  71 25 21 32 30 2c 2d 34  30 2a 79 25 2b 71 25 21  |q%!20,-40*y%+q%!|
00000a80  31 36 2d 71 25 21 32 34  2d 38 0d 04 ba 12 20 20  |16-q%!24-8....  |
00000a90  20 20 f1 20 53 57 49 24  28 79 25 29 0d 04 c4 07  |  . SWI$(y%)....|
00000aa0  20 20 ed 0d 04 ce 27 20  20 c8 99 22 57 69 6d 70  |  ....'  .."Wimp|
00000ab0  5f 47 65 74 52 65 63 74  61 6e 67 6c 65 22 2c 2c  |_GetRectangle",,|
00000ac0  71 25 20 b8 20 66 6c 61  67 25 0d 04 d8 05 ce 0d  |q% . flag%......|
00000ad0  04 e2 05 e1 0d 04 ec 05  3a 0d 04 f6 05 3a 0d 05  |........:....:..|
00000ae0  00 17 dd 20 f2 5f 52 65  64 72 61 77 5f 43 6f 6d  |... ._Redraw_Com|
00000af0  6d 61 6e 64 73 0d 05 0a  11 ea 20 66 6c 61 67 25  |mands..... flag%|
00000b00  2c 79 25 2c 6d 25 0d 05  14 0f 21 71 25 3d 77 5f  |,y%,m%....!q%=w_|
00000b10  63 6f 6d 6d 25 0d 05 1e  15 6d 25 3d 6d 61 78 5f  |comm%....m%=max_|
00000b20  63 6f 6d 6d 5f 77 25 2a  31 36 0d 05 28 25 c8 99  |comm_w%*16..(%..|
00000b30  22 57 69 6d 70 5f 52 65  64 72 61 77 57 69 6e 64  |"Wimp_RedrawWind|
00000b40  6f 77 22 2c 2c 71 25 20  b8 20 66 6c 61 67 25 0d  |ow",,q% . flag%.|
00000b50  05 32 0c c8 95 20 66 6c  61 67 25 0d 05 3c 1a 20  |.2... flag%..<. |
00000b60  20 c8 99 22 57 69 6d 70  5f 53 65 74 43 6f 6c 6f  | .."Wimp_SetColo|
00000b70  75 72 22 2c 37 0d 05 46  1a 20 20 e3 20 79 25 3d  |ur",7..F.  . y%=|
00000b80  30 20 b8 20 6d 61 78 5f  63 6f 6d 6d 25 2d 31 0d  |0 . max_comm%-1.|
00000b90  05 50 2d 20 20 20 20 ec  20 71 25 21 34 2b 34 2d  |.P-    . q%!4+4-|
00000ba0  71 25 21 32 30 20 2c 20  2d 34 30 2a 79 25 2b 71  |q%!20 , -40*y%+q|
00000bb0  25 21 31 36 2d 71 25 21  32 34 2d 38 0d 05 5a 28  |%!16-q%!24-8..Z(|
00000bc0  20 20 20 20 c8 99 22 4f  53 5f 57 72 69 74 65 30  |    .."OS_Write0|
00000bd0  22 2c 63 6f 6d 6d 61 6e  64 5f 70 74 72 25 28 79  |",command_ptr%(y|
00000be0  25 2c 30 29 0d 05 64 07  20 20 ed 0d 05 6e 27 20  |%,0)..d.  ...n' |
00000bf0  20 c8 99 22 57 69 6d 70  5f 47 65 74 52 65 63 74  | .."Wimp_GetRect|
00000c00  61 6e 67 6c 65 22 2c 2c  71 25 20 b8 20 66 6c 61  |angle",,q% . fla|
00000c10  67 25 0d 05 78 05 ce 0d  05 82 05 e1 0d 05 8c 05  |g%..x...........|
00000c20  3a 0d 05 96 05 3a 0d 05  a0 0f dd 20 a4 5f 69 63  |:....:..... ._ic|
00000c30  6f 6e 62 61 72 0d 05 aa  08 ea 20 72 25 0d 05 b4  |onbar..... r%...|
00000c40  0a 21 71 25 3d 2d 31 0d  05 be 0a 71 25 21 34 3d  |.!q%=-1....q%!4=|
00000c50  30 0d 05 c8 0a 71 25 21  38 3d 30 0d 05 d2 0c 71  |0....q%!8=0....q|
00000c60  25 21 31 32 3d 36 33 0d  05 dc 0c 71 25 21 31 36  |%!12=63....q%!16|
00000c70  3d 36 38 0d 05 e6 0f 71  25 21 32 30 3d 26 32 30  |=68....q%!20=&20|
00000c80  30 32 0d 05 f0 19 24 28  71 25 2b 32 34 29 3d 22  |02....$(q%+24)="|
00000c90  21 6d 6f 64 75 6c 69 6e  66 6f 22 0d 05 fa 21 c8  |!modulinfo"...!.|
00000ca0  99 20 22 57 69 6d 70 5f  43 72 65 61 74 65 49 63  |. "Wimp_CreateIc|
00000cb0  6f 6e 22 2c 2c 71 25 20  b8 20 72 25 0d 06 04 07  |on",,q% . r%....|
00000cc0  3d 72 25 0d 06 0e 05 3a  0d 06 18 0e dd 20 f2 72  |=r%....:..... .r|
00000cd0  65 63 65 69 76 65 0d 06  22 46 ea 20 74 79 70 65  |eceive.."F. type|
00000ce0  25 2c 66 24 2c 6d 65 73  73 25 2c 64 61 74 61 25  |%,f$,mess%,data%|
00000cf0  2c 68 25 2c 61 25 2c 74  69 74 6c 65 25 2c 68 65  |,h%,a%,title%,he|
00000d00  6c 70 25 2c 6e 24 2c 63  25 2c 74 65 6c 25 2c 63  |lp%,n$,c%,tel%,c|
00000d10  6f 6d 6d 61 6e 64 74 61  62 6c 65 25 0d 06 2c 05  |ommandtable%..,.|
00000d20  3a 0d 06 36 0f 6d 65 73  73 25 3d 71 25 21 31 36  |:..6.mess%=q%!16|
00000d30  0d 06 40 0e c8 8e 20 6d  65 73 73 25 20 ca 0d 06  |..@... mess% ...|
00000d40  4a 08 c9 20 30 3a 0d 06  54 10 20 20 f2 74 65 72  |J.. 0:..T.  .ter|
00000d50  6d 69 6e 61 74 65 0d 06  5e 08 c9 20 33 3a 0d 06  |minate..^.. 3:..|
00000d60  68 12 20 20 74 79 70 65  25 20 3d 71 25 21 34 30  |h.  type% =q%!40|
00000d70  0d 06 72 14 20 20 e7 20  74 79 70 65 25 3d 26 46  |..r.  . type%=&F|
00000d80  46 41 20 8c 0d 06 7c 0d  20 20 20 20 6e 24 3d 22  |FA ...|.    n$="|
00000d90  22 0d 06 86 09 20 20 20  20 f5 0d 06 90 1a 20 20  |"....    .....  |
00000da0  20 20 20 20 63 25 3d 3f  28 71 25 2b 34 34 2b 74  |    c%=?(q%+44+t|
00000db0  65 6c 25 29 0d 06 9a 11  20 20 20 20 20 20 74 65  |el%)....      te|
00000dc0  6c 25 2b 3d 31 0d 06 a4  13 20 20 20 20 20 20 6e  |l%+=1....      n|
00000dd0  24 2b 3d bd 28 63 25 29  0d 06 ae 0e 20 20 20 20  |$+=.(c%)....    |
00000de0  fd 20 63 25 3d 30 0d 06  b8 0f 20 20 20 20 6e 24  |. c%=0....    n$|
00000df0  3d c0 6e 24 29 0d 06 c2  2a 20 20 20 20 f2 61 6c  |=.n$)...*    .al|
00000e00  74 65 72 69 63 6f 6e 64  61 74 61 28 77 5f 6d 61  |tericondata(w_ma|
00000e10  69 6e 25 2c 31 38 2c c2  6e 24 2c 34 35 29 29 0d  |in%,18,.n$,45)).|
00000e20  06 cc 10 20 20 20 20 68  25 3d 8e 28 6e 24 29 0d  |...    h%=.(n$).|
00000e30  06 d6 13 20 20 20 20 64  61 74 61 25 20 3d a2 23  |...    data% =.#|
00000e40  68 25 0d 06 e0 2b 20 20  20 20 f2 61 6c 74 65 72  |h%...+    .alter|
00000e50  69 63 6f 6e 64 61 74 61  28 77 5f 6d 61 69 6e 25  |icondata(w_main%|
00000e60  2c 32 31 2c c3 28 64 61  74 61 25 29 29 0d 06 ea  |,21,.(data%))...|
00000e70  3f 20 20 20 20 61 25 3d  a4 67 65 74 77 6f 72 64  |?    a%=.getword|
00000e80  28 68 25 29 3a e7 20 61  25 3d 30 20 8c 20 66 24  |(h%):. a%=0 . f$|
00000e90  3d 22 3c 4e 6f 20 63 6f  64 65 3e 22 20 8b 20 66  |="<No code>" . f|
00000ea0  24 3d 22 26 22 2b c3 7e  28 61 25 29 0d 06 f4 24  |$="&"+.~(a%)...$|
00000eb0  20 20 20 20 f2 61 6c 74  65 72 69 63 6f 6e 64 61  |    .altericonda|
00000ec0  74 61 28 77 5f 6d 61 69  6e 25 2c 37 2c 66 24 29  |ta(w_main%,7,f$)|
00000ed0  0d 06 fe 3f 20 20 20 20  61 25 3d a4 67 65 74 77  |...?    a%=.getw|
00000ee0  6f 72 64 28 68 25 29 3a  e7 20 61 25 3d 30 20 8c  |ord(h%):. a%=0 .|
00000ef0  20 66 24 3d 22 3c 4e 6f  20 63 6f 64 65 3e 22 20  | f$="<No code>" |
00000f00  8b 20 66 24 3d 22 26 22  2b c3 7e 28 61 25 29 0d  |. f$="&"+.~(a%).|
00000f10  07 08 24 20 20 20 20 f2  61 6c 74 65 72 69 63 6f  |..$    .alterico|
00000f20  6e 64 61 74 61 28 77 5f  6d 61 69 6e 25 2c 38 2c  |ndata(w_main%,8,|
00000f30  66 24 29 0d 07 12 3f 20  20 20 20 61 25 3d a4 67  |f$)...?    a%=.g|
00000f40  65 74 77 6f 72 64 28 68  25 29 3a e7 20 61 25 3d  |etword(h%):. a%=|
00000f50  30 20 8c 20 66 24 3d 22  3c 4e 6f 20 63 6f 64 65  |0 . f$="<No code|
00000f60  3e 22 20 8b 20 66 24 3d  22 26 22 2b c3 7e 28 61  |>" . f$="&"+.~(a|
00000f70  25 29 0d 07 1c 24 20 20  20 20 f2 61 6c 74 65 72  |%)...$    .alter|
00000f80  69 63 6f 6e 64 61 74 61  28 77 5f 6d 61 69 6e 25  |icondata(w_main%|
00000f90  2c 39 2c 66 24 29 0d 07  26 3f 20 20 20 20 61 25  |,9,f$)..&?    a%|
00000fa0  3d a4 67 65 74 77 6f 72  64 28 68 25 29 3a e7 20  |=.getword(h%):. |
00000fb0  61 25 3d 30 20 8c 20 66  24 3d 22 3c 4e 6f 20 63  |a%=0 . f$="<No c|
00000fc0  6f 64 65 3e 22 20 8b 20  66 24 3d 22 26 22 2b c3  |ode>" . f$="&"+.|
00000fd0  7e 28 61 25 29 0d 07 30  25 20 20 20 20 f2 61 6c  |~(a%)..0%    .al|
00000fe0  74 65 72 69 63 6f 6e 64  61 74 61 28 77 5f 6d 61  |tericondata(w_ma|
00000ff0  69 6e 25 2c 31 30 2c 66  24 29 0d 07 3a 1b 20 20  |in%,10,f$)..:.  |
00001000  20 20 74 69 74 6c 65 25  3d a4 67 65 74 77 6f 72  |  title%=.getwor|
00001010  64 28 68 25 29 0d 07 44  1b 20 20 20 20 68 65 6c  |d(h%)..D.    hel|
00001020  70 25 20 3d a4 67 65 74  77 6f 72 64 28 68 25 29  |p% =.getword(h%)|
00001030  0d 07 4e 22 20 20 20 20  63 6f 6d 6d 61 6e 64 74  |..N"    commandt|
00001040  61 62 6c 65 25 3d a4 67  65 74 77 6f 72 64 28 68  |able%=.getword(h|
00001050  25 29 0d 07 58 1b 20 20  20 20 e7 20 63 6f 6d 6d  |%)..X.    . comm|
00001060  61 6e 64 74 61 62 6c 65  25 3d 30 20 8c 0d 07 62  |andtable%=0 ...b|
00001070  13 20 20 20 20 20 20 66  24 3d 22 3c 4e 6f 3e 22  |.      f$="<No>"|
00001080  0d 07 6c 15 20 20 20 20  20 20 43 6f 6d 6d 61 6e  |..l.      Comman|
00001090  64 73 25 3d a3 0d 07 76  09 20 20 20 20 cc 0d 07  |ds%=...v.    ...|
000010a0  80 22 20 20 20 20 20 20  66 24 3d 22 26 22 2b c3  |."      f$="&"+.|
000010b0  7e 28 63 6f 6d 6d 61 6e  64 74 61 62 6c 65 25 29  |~(commandtable%)|
000010c0  0d 07 8a 15 20 20 20 20  20 20 43 6f 6d 6d 61 6e  |....      Comman|
000010d0  64 73 25 3d b9 0d 07 94  09 20 20 20 20 cd 0d 07  |ds%=.....    ...|
000010e0  9e 25 20 20 20 20 f2 61  6c 74 65 72 69 63 6f 6e  |.%    .altericon|
000010f0  64 61 74 61 28 77 5f 6d  61 69 6e 25 2c 31 36 2c  |data(w_main%,16,|
00001100  66 24 29 0d 07 a8 0f 20  20 20 20 53 57 49 73 25  |f$)....    SWIs%|
00001110  3d a3 0d 07 b2 17 20 20  20 20 61 25 3d a4 67 65  |=.....    a%=.ge|
00001120  74 77 6f 72 64 28 68 25  29 0d 07 bc 2b 20 20 20  |tword(h%)...+   |
00001130  20 e7 20 61 25 3d 30 20  84 20 61 25 3e 20 26 46  | . a%=0 . a%> &F|
00001140  46 46 46 46 46 20 84 20  28 61 25 83 36 34 3c 3e  |FFFFF . (a%.64<>|
00001150  30 29 20 8c 0d 07 c6 18  20 20 20 20 20 20 66 24  |0) .....      f$|
00001160  3d 22 3c 4e 6f 20 53 57  49 73 3e 22 0d 07 d0 1d  |="<No SWIs>"....|
00001170  20 20 20 20 20 20 53 57  49 5f 44 65 63 6f 64 65  |      SWI_Decode|
00001180  5f 54 61 62 6c 65 25 3d  30 0d 07 da 09 20 20 20  |_Table%=0....   |
00001190  20 cc 0d 07 e4 17 20 20  20 20 20 20 66 24 3d 22  | .....      f$="|
000011a0  26 22 2b c3 7e 28 61 25  29 0d 07 ee 13 20 20 20  |&"+.~(a%)....   |
000011b0  20 20 20 cf 23 20 68 25  3d 26 32 34 0d 07 f8 28  |   .# h%=&24...(|
000011c0  20 20 20 20 20 20 53 57  49 5f 44 65 63 6f 64 65  |      SWI_Decode|
000011d0  5f 54 61 62 6c 65 25 3d  a4 67 65 74 77 6f 72 64  |_Table%=.getword|
000011e0  28 68 25 29 0d 08 02 3d  20 20 20 20 20 20 e7 20  |(h%)...=      . |
000011f0  53 57 49 5f 44 65 63 6f  64 65 5f 54 61 62 6c 65  |SWI_Decode_Table|
00001200  25 3e 26 31 38 20 80 20  53 57 49 5f 44 65 63 6f  |%>&18 . SWI_Deco|
00001210  64 65 5f 54 61 62 6c 65  25 3c 64 61 74 61 25 20  |de_Table%<data% |
00001220  8c 0d 08 0c 13 20 20 20  20 20 20 20 20 53 57 49  |.....        SWI|
00001230  73 25 3d b9 0d 08 16 35  20 20 20 20 20 20 20 20  |s%=....5        |
00001240  f2 5f 43 72 65 61 74 65  5f 53 57 49 5f 57 69 6e  |._Create_SWI_Win|
00001250  64 6f 77 28 53 57 49 5f  44 65 63 6f 64 65 5f 54  |dow(SWI_Decode_T|
00001260  61 62 6c 65 25 2c 68 25  29 0d 08 20 0b 20 20 20  |able%,h%).. .   |
00001270  20 20 20 cc 0d 08 2a 1f  20 20 20 20 20 20 20 20  |   ...*.        |
00001280  53 57 49 5f 44 65 63 6f  64 65 5f 54 61 62 6c 65  |SWI_Decode_Table|
00001290  25 3d 30 0d 08 34 0b 20  20 20 20 20 20 cd 0d 08  |%=0..4.      ...|
000012a0  3e 09 20 20 20 20 cd 0d  08 48 25 20 20 20 20 f2  |>.    ...H%    .|
000012b0  61 6c 74 65 72 69 63 6f  6e 64 61 74 61 28 77 5f  |altericondata(w_|
000012c0  6d 61 69 6e 25 2c 31 33  2c 66 24 29 0d 08 52 16  |main%,13,f$)..R.|
000012d0  20 20 20 20 e7 20 74 69  74 6c 65 25 3e 26 31 38  |    . title%>&18|
000012e0  20 8c 0d 08 5c 0f 20 20  20 20 20 20 66 24 3d 22  | ...\.      f$="|
000012f0  22 0d 08 66 16 20 20 20  20 20 20 cf 23 20 68 25  |"..f.      .# h%|
00001300  3d 74 69 74 6c 65 25 0d  08 70 0b 20 20 20 20 20  |=title%..p.     |
00001310  20 f5 0d 08 7a 14 20 20  20 20 20 20 20 20 63 25  | ...z.        c%|
00001320  3d 9a 23 20 68 25 0d 08  84 14 20 20 20 20 20 20  |=.# h%....      |
00001330  20 20 e7 20 63 25 3d 39  20 8c 0d 08 8e 0f 20 20  |  . c%=9 .....  |
00001340  20 20 20 20 20 20 20 20  f5 0d 08 98 17 20 20 20  |        .....   |
00001350  20 20 20 20 20 20 20 20  20 66 24 2b 3d 22 20 22  |         f$+=" "|
00001360  0d 08 a2 1b 20 20 20 20  20 20 20 20 20 20 fd 20  |....          . |
00001370  a9 28 66 24 29 20 83 20  33 3d 30 0d 08 ac 0d 20  |.(f$) . 3=0.... |
00001380  20 20 20 20 20 20 20 cc  0d 08 b6 17 20 20 20 20  |       .....    |
00001390  20 20 20 20 20 20 66 24  2b 3d bd 28 63 25 29 0d  |      f$+=.(c%).|
000013a0  08 c0 0d 20 20 20 20 20  20 20 20 cd 0d 08 ca 10  |...        .....|
000013b0  20 20 20 20 20 20 fd 20  63 25 3d 30 0d 08 d4 11  |      . c%=0....|
000013c0  20 20 20 20 20 20 66 24  3d c0 66 24 29 0d 08 de  |      f$=.f$)...|
000013d0  09 20 20 20 20 cc 0d 08  e8 19 20 20 20 20 20 20  |.    .....      |
000013e0  66 24 3d 22 3c 4e 6f 20  74 69 74 6c 65 3e 22 0d  |f$="<No title>".|
000013f0  08 f2 09 20 20 20 20 cd  0d 08 fc 2a 20 20 20 20  |...    ....*    |
00001400  f2 61 6c 74 65 72 69 63  6f 6e 64 61 74 61 28 77  |.altericondata(w|
00001410  5f 6d 61 69 6e 25 2c 31  31 2c c0 66 24 2c 34 35  |_main%,11,.f$,45|
00001420  29 29 0d 09 06 15 20 20  20 20 e7 20 68 65 6c 70  |))....    . help|
00001430  25 3e 26 31 38 20 8c 0d  09 10 0f 20 20 20 20 20  |%>&18 .....     |
00001440  20 66 24 3d 22 22 0d 09  1a 15 20 20 20 20 20 20  | f$=""....      |
00001450  cf 23 20 68 25 3d 68 65  6c 70 25 0d 09 24 0b 20  |.# h%=help%..$. |
00001460  20 20 20 20 20 f5 0d 09  2e 14 20 20 20 20 20 20  |     .....      |
00001470  20 20 63 25 3d 9a 23 20  68 25 0d 09 38 14 20 20  |  c%=.# h%..8.  |
00001480  20 20 20 20 20 20 e7 20  63 25 3d 39 20 8c 0d 09  |      . c%=9 ...|
00001490  42 0f 20 20 20 20 20 20  20 20 20 20 f5 0d 09 4c  |B.          ...L|
000014a0  17 20 20 20 20 20 20 20  20 20 20 20 20 66 24 2b  |.            f$+|
000014b0  3d 22 20 22 0d 09 56 1b  20 20 20 20 20 20 20 20  |=" "..V.        |
000014c0  20 20 fd 20 a9 28 66 24  29 20 83 20 33 3d 30 0d  |  . .(f$) . 3=0.|
000014d0  09 60 0d 20 20 20 20 20  20 20 20 cc 0d 09 6a 17  |.`.        ...j.|
000014e0  20 20 20 20 20 20 20 20  20 20 66 24 2b 3d bd 28  |          f$+=.(|
000014f0  63 25 29 0d 09 74 0d 20  20 20 20 20 20 20 20 cd  |c%)..t.        .|
00001500  0d 09 7e 10 20 20 20 20  20 20 fd 20 63 25 3d 30  |..~.      . c%=0|
00001510  0d 09 88 11 20 20 20 20  20 20 66 24 3d c0 66 24  |....      f$=.f$|
00001520  29 0d 09 92 09 20 20 20  20 cc 0d 09 9c 18 20 20  |)....    .....  |
00001530  20 20 20 20 66 24 3d 22  3c 4e 6f 20 68 65 6c 70  |    f$="<No help|
00001540  3e 22 0d 09 a6 09 20 20  20 20 cd 0d 09 b0 2a 20  |>"....    ....* |
00001550  20 20 20 f2 61 6c 74 65  72 69 63 6f 6e 64 61 74  |   .altericondat|
00001560  61 28 77 5f 6d 61 69 6e  25 2c 31 32 2c c0 66 24  |a(w_main%,12,.f$|
00001570  2c 39 30 29 29 0d 09 ba  62 20 20 20 20 e7 20 43  |,90))...b    . C|
00001580  6f 6d 6d 61 6e 64 73 25  20 80 20 63 6f 6d 6d 61  |ommands% . comma|
00001590  6e 64 74 61 62 6c 65 25  3e 26 31 38 20 80 20 63  |ndtable%>&18 . c|
000015a0  6f 6d 6d 61 6e 64 74 61  62 6c 65 25 20 3c 20 64  |ommandtable% < d|
000015b0  61 74 61 25 20 8c 20 f2  5f 47 65 74 5f 43 6f 6d  |ata% . ._Get_Com|
000015c0  6d 61 6e 64 73 28 63 6f  6d 6d 61 6e 64 74 61 62  |mands(commandtab|
000015d0  6c 65 25 2c 68 25 29 0d  09 c4 0d 20 20 20 20 d9  |le%,h%)....    .|
000015e0  23 20 68 25 0d 09 ce 0f  20 20 20 20 71 25 21 31  |# h%....    q%!1|
000015f0  36 3d 34 0d 09 d8 22 20  20 20 20 c8 99 22 57 69  |6=4..."    .."Wi|
00001600  6d 70 5f 53 65 6e 64 4d  65 73 73 61 67 65 22 2c  |mp_SendMessage",|
00001610  31 37 2c 71 25 0d 09 e2  14 20 20 20 20 71 25 21  |17,q%....    q%!|
00001620  30 3d 77 5f 6d 61 69 6e  25 0d 09 ec 23 20 20 20  |0=w_main%...#   |
00001630  20 c8 99 22 57 69 6d 70  5f 47 65 74 57 69 6e 64  | .."Wimp_GetWind|
00001640  6f 77 53 74 61 74 65 22  2c 2c 71 25 0d 09 f6 10  |owState",,q%....|
00001650  20 20 20 20 71 25 21 32  38 3d 2d 31 0d 0a 00 1f  |    q%!28=-1....|
00001660  20 20 20 20 c8 99 22 57  69 6d 70 5f 4f 70 65 6e  |    .."Wimp_Open|
00001670  57 69 6e 64 6f 77 22 2c  2c 71 25 0d 0a 0a 31 20  |Window",,q%...1 |
00001680  20 20 20 71 25 21 30 3d  77 5f 63 6f 6d 6d 69 6e  |   q%!0=w_commin|
00001690  66 6f 25 3a c8 99 22 57  69 6d 70 5f 43 6c 6f 73  |fo%:.."Wimp_Clos|
000016a0  65 57 69 6e 64 6f 77 22  2c 2c 71 25 0d 0a 14 07  |eWindow",,q%....|
000016b0  20 20 cd 0d 0a 1e 05 cb  0d 0a 28 05 e1 0d 0a 32  |  ........(....2|
000016c0  05 3a 0d 0a 3c 1d dd 20  f2 5f 47 65 74 5f 43 6f  |.:..<.. ._Get_Co|
000016d0  6d 6d 61 6e 64 73 28 70  74 72 25 2c 68 25 29 0d  |mmands(ptr%,h%).|
000016e0  0a 46 1d ea 20 74 65 6c  25 2c 63 25 2c 64 25 2c  |.F.. tel%,c%,d%,|
000016f0  6e 24 2c 69 25 2c 70 62  25 2c 6c 25 0d 0a 50 05  |n$,i%,pb%,l%..P.|
00001700  3a 0d 0a 5a 0e cf 23 20  68 25 3d 70 74 72 25 0d  |:..Z..# h%=ptr%.|
00001710  0a 64 0a 74 65 6c 25 3d  30 0d 0a 6e 15 70 62 25  |.d.tel%=0..n.pb%|
00001720  3d 63 6f 6d 6d 61 6e 64  5f 62 75 66 66 25 0d 0a  |=command_buff%..|
00001730  78 11 6d 61 78 5f 63 6f  6d 6d 5f 77 25 3d 30 0d  |x.max_comm_w%=0.|
00001740  0a 82 05 f5 0d 0a 8c 15  20 20 63 25 3d a4 67 65  |........  c%=.ge|
00001750  74 77 6f 72 64 28 68 25  29 0d 0a 96 15 20 20 e7  |tword(h%)....  .|
00001760  20 28 63 25 80 26 46 46  29 3c 3e 30 20 8c 0d 0a  | (c%.&FF)<>0 ...|
00001770  a0 19 20 20 20 20 f4 20  2a 20 63 6f 6d 6d 61 6e  |..    . * comman|
00001780  64 20 66 6f 75 6e 64 0d  0a aa 20 20 20 20 20 63  |d found...     c|
00001790  6f 6d 6d 61 6e 64 5f 70  74 72 25 28 74 65 6c 25  |ommand_ptr%(tel%|
000017a0  2c 30 29 3d 70 62 25 0d  0a b4 0f 20 20 20 20 21  |,0)=pb%....    !|
000017b0  70 62 25 3d 63 25 0d 0a  be 0e 20 20 20 20 70 62  |pb%=c%....    pb|
000017c0  25 2b 3d 34 0d 0a c8 22  20 20 20 20 e7 20 ac 20  |%+=4..."    . . |
000017d0  a4 5f 5a 65 72 6f 42 79  74 65 49 6e 57 6f 72 64  |._ZeroByteInWord|
000017e0  28 63 25 29 20 8c 0d 0a  d2 0b 20 20 20 20 20 20  |(c%) .....      |
000017f0  f5 0d 0a dc 1b 20 20 20  20 20 20 20 20 64 25 3d  |.....        d%=|
00001800  a4 67 65 74 77 6f 72 64  28 68 25 29 0d 0a e6 13  |.getword(h%)....|
00001810  20 20 20 20 20 20 20 20  21 70 62 25 3d 64 25 0d  |        !pb%=d%.|
00001820  0a f0 12 20 20 20 20 20  20 20 20 70 62 25 2b 3d  |...        pb%+=|
00001830  34 0d 0a fa 20 20 20 20  20 20 20 fd 20 a4 5f 5a  |4...       . ._Z|
00001840  65 72 6f 42 79 74 65 49  6e 57 6f 72 64 28 64 25  |eroByteInWord(d%|
00001850  29 0d 0b 04 09 20 20 20  20 cd 0d 0b 0e 23 20 20  |)....    ....#  |
00001860  20 20 69 25 3d 70 62 25  2d 63 6f 6d 6d 61 6e 64  |  i%=pb%-command|
00001870  5f 70 74 72 25 28 74 65  6c 25 2c 30 29 0d 0b 18  |_ptr%(tel%,0)...|
00001880  2b 20 20 20 20 e7 20 69  25 20 3e 20 6d 61 78 5f  |+    . i% > max_|
00001890  63 6f 6d 6d 5f 77 25 20  8c 20 6d 61 78 5f 63 6f  |comm_w% . max_co|
000018a0  6d 6d 5f 77 25 3d 69 25  0d 0b 22 20 20 20 20 20  |mm_w%=i%.."     |
000018b0  63 6f 6d 6d 61 6e 64 5f  70 74 72 25 28 74 65 6c  |command_ptr%(tel|
000018c0  25 2c 31 29 3d 70 62 25  0d 0b 2c 12 20 20 20 20  |%,1)=pb%..,.    |
000018d0  e3 20 6c 25 3d 31 20 b8  20 34 0d 0b 36 1b 20 20  |. l%=1 . 4..6.  |
000018e0  20 20 20 20 21 70 62 25  3d a4 67 65 74 77 6f 72  |    !pb%=.getwor|
000018f0  64 28 68 25 29 0d 0b 40  10 20 20 20 20 20 20 70  |d(h%)..@.      p|
00001900  62 25 2b 3d 34 0d 0b 4a  09 20 20 20 20 ed 0d 0b  |b%+=4..J.    ...|
00001910  54 0f 20 20 20 20 74 65  6c 25 2b 3d 31 0d 0b 5e  |T.    tel%+=1..^|
00001920  07 20 20 cd 0d 0b 68 10  fd 20 28 63 25 80 26 46  |.  ...h.. (c%.&F|
00001930  46 29 3d 30 0d 0b 72 12  6d 61 78 5f 63 6f 6d 6d  |F)=0..r.max_comm|
00001940  25 3d 74 65 6c 25 0d 0b  7c 0c 62 25 21 30 20 3d  |%=tel%..|.b%!0 =|
00001950  2d 38 0d 0b 86 19 62 25  21 34 20 3d 2d 34 2d 34  |-8....b%!4 =-4-4|
00001960  30 2a 6d 61 78 5f 63 6f  6d 6d 25 0d 0b 90 1a 62  |0*max_comm%....b|
00001970  25 21 38 20 3d 6d 61 78  5f 63 6f 6d 6d 5f 77 25  |%!8 =max_comm_w%|
00001980  2a 31 36 2b 38 0d 0b 9a  0b 62 25 21 31 32 3d 34  |*16+8....b%!12=4|
00001990  0d 0b a4 22 c8 99 20 22  57 69 6d 70 5f 53 65 74  |...".. "Wimp_Set|
000019a0  45 78 74 65 6e 74 22 2c  77 5f 63 6f 6d 6d 25 2c  |Extent",w_comm%,|
000019b0  62 25 0d 0b ae 05 e1 0d  0b b8 05 3a 0d 0b c2 1a  |b%.........:....|
000019c0  dd 20 a4 5f 5a 65 72 6f  42 79 74 65 49 6e 57 6f  |. ._ZeroByteInWo|
000019d0  72 64 28 77 25 29 0d 0b  cc 08 ea 20 6c 25 0d 0b  |rd(w%)..... l%..|
000019e0  d6 0c e3 20 6c 25 3d 30  b8 33 0d 0b e0 21 20 20  |... l%=0.3...!  |
000019f0  e7 20 28 28 77 25 3e 3e  28 38 2a 6c 25 29 29 80  |. ((w%>>(8*l%)).|
00001a00  26 46 46 29 3d 30 20 8c  20 3d b9 0d 0b ea 05 ed  |&FF)=0 . =......|
00001a10  0d 0b f4 06 3d a3 0d 0b  fe 05 3a 0d 0c 08 22 dd  |....=.....:...".|
00001a20  20 f2 5f 43 72 65 61 74  65 5f 53 57 49 5f 57 69  | ._Create_SWI_Wi|
00001a30  6e 64 6f 77 28 70 74 72  25 2c 68 25 29 0d 0c 12  |ndow(ptr%,h%)...|
00001a40  19 ea 20 74 65 6c 25 2c  63 25 2c 61 25 2c 6e 24  |.. tel%,c%,a%,n$|
00001a50  2c 64 25 2c 77 25 0d 0c  1c 05 3a 0d 0c 26 0e cf  |,d%,w%....:..&..|
00001a60  23 20 68 25 3d 70 74 72  25 0d 0c 30 0a 74 65 6c  |# h%=ptr%..0.tel|
00001a70  25 3d 30 0d 0c 3a 05 f5  0d 0c 44 0e 20 20 63 25  |%=0..:....D.  c%|
00001a80  3d 9a 23 20 68 25 0d 0c  4e 0f 20 20 e7 20 63 25  |=.# h%..N.  . c%|
00001a90  3c 3e 30 20 8c 0d 0c 58  17 20 20 20 20 f4 20 2a  |<>0 ...X.    . *|
00001aa0  20 49 74 65 6d 20 66 6f  75 6e 64 21 0d 0c 62 10  | Item found!..b.|
00001ab0  20 20 20 20 6e 24 3d bd  28 63 25 29 0d 0c 6c 1e  |    n$=.(c%)..l.|
00001ac0  20 20 20 20 f4 20 2a 20  67 65 74 20 63 68 75 6e  |    . * get chun|
00001ad0  6b 2f 53 57 49 20 6e 61  6d 65 0d 0c 76 09 20 20  |k/SWI name..v.  |
00001ae0  20 20 f5 0d 0c 80 11 20  20 20 20 20 20 64 25 3d  |  .....      d%=|
00001af0  9a 23 68 25 0d 0c 8a 13  20 20 20 20 20 20 6e 24  |.#h%....      n$|
00001b00  2b 3d bd 28 64 25 29 0d  0c 94 0e 20 20 20 20 fd  |+=.(d%)....    .|
00001b10  20 64 25 3d 30 0d 0c 9e  0f 20 20 20 20 6e 24 3d  | d%=0....    n$=|
00001b20  c0 6e 24 29 0d 0c a8 20  20 20 20 20 f4 20 2a 20  |.n$)...     . * |
00001b30  27 5f 27 20 66 6f 72 20  6c 65 61 64 69 6e 67 20  |'_' for leading |
00001b40  6e 61 6d 65 0d 0c b2 1a  20 20 20 20 e7 20 74 65  |name....    . te|
00001b50  6c 25 3d 30 20 8c 20 6e  24 2b 3d 22 5f 22 0d 0c  |l%=0 . n$+="_"..|
00001b60  bc 15 20 20 20 20 53 57  49 24 28 74 65 6c 25 29  |..    SWI$(tel%)|
00001b70  3d 6e 24 0d 0c c6 1d 20  20 20 20 e7 20 a9 28 6e  |=n$....    . .(n|
00001b80  24 29 3e 77 25 20 8c 20  77 25 3d a9 28 6e 24 29  |$)>w% . w%=.(n$)|
00001b90  0d 0c d0 0f 20 20 20 20  74 65 6c 25 2b 3d 31 0d  |....    tel%+=1.|
00001ba0  0c da 07 20 20 cd 0d 0c  e4 0a fd 20 63 25 3d 30  |...  ...... c%=0|
00001bb0  0d 0c ee 12 6d 61 78 5f  73 77 69 73 25 3d 74 65  |....max_swis%=te|
00001bc0  6c 25 0d 0c f8 11 6d 61  78 5f 73 77 69 5f 77 25  |l%....max_swi_w%|
00001bd0  3d 77 25 0d 0d 02 0c 62  25 21 30 20 3d 2d 38 0d  |=w%....b%!0 =-8.|
00001be0  0d 0c 19 62 25 21 34 20  3d 2d 34 2d 34 30 2a 6d  |...b%!4 =-4-40*m|
00001bf0  61 78 5f 73 77 69 73 25  0d 0d 16 11 62 25 21 38  |ax_swis%....b%!8|
00001c00  20 3d 77 25 2a 31 36 2b  38 0d 0d 20 0b 62 25 21  | =w%*16+8.. .b%!|
00001c10  31 32 3d 34 0d 0d 2a 22  c8 99 20 22 57 69 6d 70  |12=4..*".. "Wimp|
00001c20  5f 53 65 74 45 78 74 65  6e 74 22 2c 77 5f 73 77  |_SetExtent",w_sw|
00001c30  69 73 25 2c 62 25 0d 0d  34 05 e1 0d 0d 3e 05 3a  |is%,b%..4....>.:|
00001c40  0d 0d 48 12 dd 20 a4 67  65 74 77 6f 72 64 28 68  |..H.. .getword(h|
00001c50  25 29 0d 0d 52 0e ea 20  61 25 2c 6c 25 2c 76 25  |%)..R.. a%,l%,v%|
00001c60  0d 0d 5c 0c e3 20 6c 25  3d 30 b8 33 0d 0d 66 13  |..\.. l%=0.3..f.|
00001c70  20 20 76 25 3d 9a 23 68  25 20 80 20 26 46 46 0d  |  v%=.#h% . &FF.|
00001c80  0d 70 1c 20 20 61 25 3d  61 25 20 84 20 28 76 25  |.p.  a%=a% . (v%|
00001c90  20 3c 3c 20 28 6c 25 2a  38 29 29 0d 0d 7a 05 ed  | << (l%*8))..z..|
00001ca0  0d 0d 84 07 3d 61 25 0d  0d 8e 05 3a 0d 0d 98 10  |....=a%....:....|
00001cb0  dd 20 f2 74 65 72 6d 69  6e 61 74 65 0d 0d a2 0e  |. .terminate....|
00001cc0  24 71 25 3d 22 54 41 53  4b 22 0d 0d ac 26 c8 99  |$q%="TASK"...&..|
00001cd0  20 22 57 69 6d 70 5f 43  6c 6f 73 65 44 6f 77 6e  | "Wimp_CloseDown|
00001ce0  22 2c 74 61 73 6b 68 61  6e 64 6c 65 25 2c 71 25  |",taskhandle%,q%|
00001cf0  0d 0d b6 05 e1 0d 0d c0  05 3a 0d 0d ca 10 dd 20  |.........:..... |
00001d00  f2 69 6e 69 74 6d 65 6e  75 73 0d 0d d4 08 ea 20  |.initmenus..... |
00001d10  61 25 0d 0d de 15 6d 5f  6d 61 69 6e 6d 65 6e 75  |a%....m_mainmenu|
00001d20  25 3d 6d 65 6e 75 25 0d  0d e8 12 61 25 3d 6d 5f  |%=menu%....a%=m_|
00001d30  6d 61 69 6e 6d 65 6e 75  25 0d 0d f2 16 24 61 25  |mainmenu%....$a%|
00001d40  3d 22 52 4d 20 49 6e 66  6f 22 2b bd 28 30 29 0d  |="RM Info"+.(0).|
00001d50  0d fc 10 61 25 21 31 32  3d 26 37 30 32 30 37 0d  |...a%!12=&70207.|
00001d60  0e 06 0c 61 25 21 31 36  3d 38 30 0d 0e 10 0c 61  |...a%!16=80....a|
00001d70  25 21 32 30 3d 34 30 0d  0e 1a 0b 61 25 21 32 34  |%!20=40....a%!24|
00001d80  3d 30 0d 0e 24 0b 61 25  21 32 38 3d 30 0d 0e 2e  |=0..$.a%!28=0...|
00001d90  11 61 25 21 33 32 3d 77  5f 69 6e 66 6f 25 0d 0e  |.a%!32=w_info%..|
00001da0  38 12 61 25 21 33 36 3d  26 37 30 30 39 30 33 39  |8.a%!36=&7009039|
00001db0  0d 0e 42 18 24 28 61 25  2b 34 30 29 3d 22 49 6e  |..B.$(a%+40)="In|
00001dc0  66 6f 22 2b bd 28 30 29  0d 0e 4c 0d 61 25 21 35  |fo"+.(0)..L.a%!5|
00001dd0  32 3d 26 38 30 0d 0e 56  0c 61 25 21 35 36 3d 2d  |2=&80..V.a%!56=-|
00001de0  31 0d 0e 60 12 61 25 21  36 30 3d 26 37 30 30 39  |1..`.a%!60=&7009|
00001df0  30 33 39 0d 0e 6a 18 24  28 61 25 2b 36 34 29 3d  |039..j.$(a%+64)=|
00001e00  22 51 75 69 74 22 2b bd  28 30 29 0d 0e 74 05 e1  |"Quit"+.(0)..t..|
00001e10  0d 0e 7e 05 3a 0d 0e 88  40 dd 20 f2 6d 6f 75 73  |..~.:...@. .mous|
00001e20  65 28 6d 6f 75 73 65 78  25 2c 6d 6f 75 73 65 79  |e(mousex%,mousey|
00001e30  25 2c 62 75 74 74 6f 6e  73 25 2c 68 61 6e 64 6c  |%,buttons%,handl|
00001e40  65 25 2c 69 63 6f 6e 25  2c 6f 6c 64 62 75 74 74  |e%,icon%,oldbutt|
00001e50  6f 6e 73 25 29 0d 0e 92  20 ea 20 78 31 25 2c 79  |ons%)... . x1%,y|
00001e60  31 25 2c 79 32 25 2c 69  74 65 6d 25 2c 6e 24 2c  |1%,y2%,item%,n$,|
00001e70  63 25 2c 74 25 0d 0e 9c  05 3a 0d 0e a6 12 e7 20  |c%,t%....:..... |
00001e80  62 75 74 74 6f 6e 73 25  3d 32 20 8c 0d 0e b0 11  |buttons%=2 .....|
00001e90  20 c8 8e 20 68 61 6e 64  6c 65 25 20 ca 0d 0e ba  | .. handle% ....|
00001ea0  6a 20 20 c9 20 2d 32 3a  e7 20 69 63 6f 6e 25 3d  |j  . -2:. icon%=|
00001eb0  69 5f 69 63 6f 6e 62 61  72 25 20 c8 99 20 22 57  |i_iconbar% .. "W|
00001ec0  69 6d 70 5f 43 72 65 61  74 65 4d 65 6e 75 22 2c  |imp_CreateMenu",|
00001ed0  2c 6d 5f 6d 61 69 6e 6d  65 6e 75 25 2c 6d 6f 75  |,m_mainmenu%,mou|
00001ee0  73 65 78 25 2d 36 34 2c  39 36 2b 34 30 2a 32 3a  |sex%-64,96+40*2:|
00001ef0  4d 65 6e 75 41 63 74 69  76 65 25 3d 6d 5f 6d 61  |MenuActive%=m_ma|
00001f00  69 6e 6d 65 6e 75 25 0d  0e c4 06 20 cb 0d 0e ce  |inmenu%.... ....|
00001f10  05 cd 0d 0e d8 40 e7 20  68 61 6e 64 6c 65 25 3d  |.....@. handle%=|
00001f20  77 5f 63 6f 6d 6d 25 20  80 20 28 62 75 74 74 6f  |w_comm% . (butto|
00001f30  6e 73 25 3d 31 20 84 20  62 75 74 74 6f 6e 73 25  |ns%=1 . buttons%|
00001f40  3d 32 20 84 20 62 75 74  74 6f 6e 73 25 3d 34 29  |=2 . buttons%=4)|
00001f50  20 8c 0d 0e e2 2d 20 20  21 71 25 3d 77 5f 63 6f  | ....-  !q%=w_co|
00001f60  6d 6d 25 3a c8 99 22 57  69 6d 70 5f 47 65 74 57  |mm%:.."Wimp_GetW|
00001f70  69 6e 64 6f 77 53 74 61  74 65 22 2c 2c 71 25 0d  |indowState",,q%.|
00001f80  0e ec 25 20 20 69 74 65  6d 25 3d 28 2d 71 25 21  |..%  item%=(-q%!|
00001f90  32 34 2b 71 25 21 31 36  2d 6d 6f 75 73 65 79 25  |24+q%!16-mousey%|
00001fa0  29 81 34 30 0d 0e f6 1e  20 20 e7 20 69 74 65 6d  |).40....  . item|
00001fb0  25 20 3c 3d 20 6d 61 78  5f 63 6f 6d 6d 25 2d 31  |% <= max_comm%-1|
00001fc0  20 8c 0d 0f 00 46 20 20  20 20 f2 61 6c 74 65 72  | ....F    .alter|
00001fd0  69 63 6f 6e 64 61 74 61  28 77 5f 63 6f 6d 6d 69  |icondata(w_commi|
00001fe0  6e 66 6f 25 2c 30 33 2c  22 26 22 2b c3 7e 28 63  |nfo%,03,"&"+.~(c|
00001ff0  6f 6d 6d 61 6e 64 5f 70  74 72 25 28 69 74 65 6d  |ommand_ptr%(item|
00002000  25 2c 31 29 21 30 29 29  0d 0f 0a 46 20 20 20 20  |%,1)!0))...F    |
00002010  f2 61 6c 74 65 72 69 63  6f 6e 64 61 74 61 28 77  |.altericondata(w|
00002020  5f 63 6f 6d 6d 69 6e 66  6f 25 2c 30 34 2c 22 26  |_comminfo%,04,"&|
00002030  22 2b c3 7e 28 63 6f 6d  6d 61 6e 64 5f 70 74 72  |"+.~(command_ptr|
00002040  25 28 69 74 65 6d 25 2c  31 29 21 38 29 29 0d 0f  |%(item%,1)!8))..|
00002050  14 47 20 20 20 20 f2 61  6c 74 65 72 69 63 6f 6e  |.G    .altericon|
00002060  64 61 74 61 28 77 5f 63  6f 6d 6d 69 6e 66 6f 25  |data(w_comminfo%|
00002070  2c 30 35 2c 22 26 22 2b  c3 7e 28 63 6f 6d 6d 61  |,05,"&"+.~(comma|
00002080  6e 64 5f 70 74 72 25 28  69 74 65 6d 25 2c 31 29  |nd_ptr%(item%,1)|
00002090  21 31 32 29 29 0d 0f 1e  22 20 20 20 20 63 25 3d  |!12))..."    c%=|
000020a0  63 6f 6d 6d 61 6e 64 5f  70 74 72 25 28 69 74 65  |command_ptr%(ite|
000020b0  6d 25 2c 31 29 21 34 0d  0f 28 32 20 20 20 20 f2  |m%,1)!4..(2    .|
000020c0  61 6c 74 65 72 69 63 6f  6e 64 61 74 61 28 77 5f  |altericondata(w_|
000020d0  63 6f 6d 6d 69 6e 66 6f  25 2c 31 31 2c c3 28 63  |comminfo%,11,.(c|
000020e0  25 20 80 20 26 46 46 29  29 0d 0f 32 38 20 20 20  |% . &FF))..28   |
000020f0  20 f2 61 6c 74 65 72 69  63 6f 6e 64 61 74 61 28  | .altericondata(|
00002100  77 5f 63 6f 6d 6d 69 6e  66 6f 25 2c 31 32 2c c3  |w_comminfo%,12,.|
00002110  28 28 63 25 3e 3e 31 36  29 20 80 20 26 46 46 29  |((c%>>16) . &FF)|
00002120  29 0d 0f 3c 56 20 20 20  20 e7 20 28 28 63 25 3e  |)..<V    . ((c%>|
00002130  3e 33 31 29 80 31 29 3d  31 20 8c 20 f2 6c 6f 6c  |>31).1)=1 . .lol|
00002140  69 67 68 74 69 63 6f 6e  28 77 5f 63 6f 6d 6d 69  |ighticon(w_commi|
00002150  6e 66 6f 25 2c 36 29 3a  8b 20 f2 68 69 67 68 6c  |nfo%,6):. .highl|
00002160  69 67 68 74 69 63 6f 6e  28 77 5f 63 6f 6d 6d 69  |ighticon(w_commi|
00002170  6e 66 6f 25 2c 36 29 0d  0f 46 56 20 20 20 20 e7  |nfo%,6)..FV    .|
00002180  20 28 28 63 25 3e 3e 33  30 29 80 31 29 3d 31 20  | ((c%>>30).1)=1 |
00002190  8c 20 f2 6c 6f 6c 69 67  68 74 69 63 6f 6e 28 77  |. .lolighticon(w|
000021a0  5f 63 6f 6d 6d 69 6e 66  6f 25 2c 37 29 3a 8b 20  |_comminfo%,7):. |
000021b0  f2 68 69 67 68 6c 69 67  68 74 69 63 6f 6e 28 77  |.highlighticon(w|
000021c0  5f 63 6f 6d 6d 69 6e 66  6f 25 2c 37 29 0d 0f 50  |_comminfo%,7)..P|
000021d0  56 20 20 20 20 e7 20 28  28 63 25 3e 3e 32 39 29  |V    . ((c%>>29)|
000021e0  80 31 29 3d 31 20 8c 20  f2 6c 6f 6c 69 67 68 74  |.1)=1 . .lolight|
000021f0  69 63 6f 6e 28 77 5f 63  6f 6d 6d 69 6e 66 6f 25  |icon(w_comminfo%|
00002200  2c 38 29 3a 8b 20 f2 68  69 67 68 6c 69 67 68 74  |,8):. .highlight|
00002210  69 63 6f 6e 28 77 5f 63  6f 6d 6d 69 6e 66 6f 25  |icon(w_comminfo%|
00002220  2c 38 29 0d 0f 5a 33 20  20 20 20 21 71 25 3d 77  |,8)..Z3    !q%=w|
00002230  5f 63 6f 6d 6d 69 6e 66  6f 25 3a c8 99 22 57 69  |_comminfo%:.."Wi|
00002240  6d 70 5f 47 65 74 57 69  6e 64 6f 77 53 74 61 74  |mp_GetWindowStat|
00002250  65 22 2c 2c 71 25 0d 0f  64 28 20 20 20 20 71 25  |e",,q%..d(    q%|
00002260  21 32 38 3d 2d 31 3a c8  99 22 57 69 6d 70 5f 4f  |!28=-1:.."Wimp_O|
00002270  70 65 6e 57 69 6e 64 6f  77 22 2c 2c 71 25 0d 0f  |penWindow",,q%..|
00002280  6e 07 20 20 cd 0d 0f 78  05 cd 0d 0f 82 40 e7 20  |n.  ...x.....@. |
00002290  68 61 6e 64 6c 65 25 3d  77 5f 6d 61 69 6e 25 20  |handle%=w_main% |
000022a0  80 20 28 62 75 74 74 6f  6e 73 25 3d 31 20 84 20  |. (buttons%=1 . |
000022b0  62 75 74 74 6f 6e 73 25  3d 32 20 84 20 62 75 74  |buttons%=2 . but|
000022c0  74 6f 6e 73 25 3d 34 29  20 8c 0d 0f 8c 1a 20 20  |tons%=4) .....  |
000022d0  e7 20 69 63 6f 6e 25 3d  31 34 20 80 20 53 57 49  |. icon%=14 . SWI|
000022e0  73 25 20 8c 0d 0f 96 2f  20 20 20 20 21 71 25 3d  |s% ..../    !q%=|
000022f0  77 5f 73 77 69 73 25 3a  c8 99 22 57 69 6d 70 5f  |w_swis%:.."Wimp_|
00002300  47 65 74 57 69 6e 64 6f  77 53 74 61 74 65 22 2c  |GetWindowState",|
00002310  2c 71 25 0d 0f a0 36 20  20 20 20 71 25 21 32 38  |,q%...6    q%!28|
00002320  3d 2d 31 3a 78 31 25 3d  71 25 21 34 3a 79 31 25  |=-1:x1%=q%!4:y1%|
00002330  3d 71 25 21 38 3a 78 32  25 3d 71 25 21 31 32 3a  |=q%!8:x2%=q%!12:|
00002340  79 32 25 3d 71 25 21 31  36 0d 0f aa 1b 20 20 20  |y2%=q%!16....   |
00002350  20 71 25 21 34 20 3d 6d  6f 75 73 65 78 25 2d 36  | q%!4 =mousex%-6|
00002360  34 20 2d 38 0d 0f b4 28  20 20 20 20 71 25 21 38  |4 -8...(    q%!8|
00002370  20 3d 6d 6f 75 73 65 79  25 2b 34 30 20 2d 34 2d  | =mousey%+40 -4-|
00002380  34 30 2a 6d 61 78 5f 73  77 69 73 25 0d 0f be 29  |40*max_swis%...)|
00002390  20 20 20 20 71 25 21 31  32 3d 6d 6f 75 73 65 78  |    q%!12=mousex|
000023a0  25 2d 36 34 20 2b 6d 61  78 5f 73 77 69 5f 77 25  |%-64 +max_swi_w%|
000023b0  2a 31 36 2b 38 0d 0f c8  1b 20 20 20 20 71 25 21  |*16+8....    q%!|
000023c0  31 36 3d 6d 6f 75 73 65  79 25 2b 34 30 20 2b 34  |16=mousey%+40 +4|
000023d0  0d 0f d2 38 20 20 20 20  c8 99 22 57 69 6d 70 5f  |...8    .."Wimp_|
000023e0  4f 70 65 6e 57 69 6e 64  6f 77 22 2c 2c 71 25 3a  |OpenWindow",,q%:|
000023f0  c8 99 22 57 69 6d 70 5f  43 6c 6f 73 65 57 69 6e  |.."Wimp_CloseWin|
00002400  64 6f 77 22 2c 2c 71 25  0d 0f dc 3a 20 20 20 20  |dow",,q%...:    |
00002410  c8 99 22 57 69 6d 70 5f  43 72 65 61 74 65 4d 65  |.."Wimp_CreateMe|
00002420  6e 75 22 2c 2c 77 5f 73  77 69 73 25 2c 6d 6f 75  |nu",,w_swis%,mou|
00002430  73 65 78 25 2d 36 34 2c  6d 6f 75 73 65 79 25 2b  |sex%-64,mousey%+|
00002440  34 30 0d 0f e6 30 20 20  20 20 21 71 25 3d 77 5f  |40...0    !q%=w_|
00002450  63 6f 6d 6d 69 6e 66 6f  25 3a c8 99 22 57 69 6d  |comminfo%:.."Wim|
00002460  70 5f 43 6c 6f 73 65 57  69 6e 64 6f 77 22 2c 2c  |p_CloseWindow",,|
00002470  71 25 0d 0f f0 07 20 20  cd 0d 0f fa 1e 20 20 e7  |q%....  .....  .|
00002480  20 69 63 6f 6e 25 3d 31  37 20 80 20 43 6f 6d 6d  | icon%=17 . Comm|
00002490  61 6e 64 73 25 20 8c 0d  10 04 2f 20 20 20 20 21  |ands% ..../    !|
000024a0  71 25 3d 77 5f 63 6f 6d  6d 25 3a c8 99 22 57 69  |q%=w_comm%:.."Wi|
000024b0  6d 70 5f 47 65 74 57 69  6e 64 6f 77 53 74 61 74  |mp_GetWindowStat|
000024c0  65 22 2c 2c 71 25 0d 10  0e 36 20 20 20 20 71 25  |e",,q%...6    q%|
000024d0  21 32 38 3d 2d 31 3a 78  31 25 3d 71 25 21 34 3a  |!28=-1:x1%=q%!4:|
000024e0  79 31 25 3d 71 25 21 38  3a 78 32 25 3d 71 25 21  |y1%=q%!8:x2%=q%!|
000024f0  31 32 3a 79 32 25 3d 71  25 21 31 36 0d 10 18 1b  |12:y2%=q%!16....|
00002500  20 20 20 20 71 25 21 34  20 3d 6d 6f 75 73 65 78  |    q%!4 =mousex|
00002510  25 2d 36 34 20 2d 38 0d  10 22 28 20 20 20 20 71  |%-64 -8.."(    q|
00002520  25 21 38 20 3d 6d 6f 75  73 65 79 25 2b 34 30 20  |%!8 =mousey%+40 |
00002530  2d 34 2d 34 30 2a 6d 61  78 5f 63 6f 6d 6d 25 0d  |-4-40*max_comm%.|
00002540  10 2c 2a 20 20 20 20 71  25 21 31 32 3d 6d 6f 75  |.,*    q%!12=mou|
00002550  73 65 78 25 2d 36 34 20  2b 6d 61 78 5f 63 6f 6d  |sex%-64 +max_com|
00002560  6d 5f 77 25 2a 31 36 2b  38 0d 10 36 1b 20 20 20  |m_w%*16+8..6.   |
00002570  20 71 25 21 31 36 3d 6d  6f 75 73 65 79 25 2b 34  | q%!16=mousey%+4|
00002580  30 20 2b 34 0d 10 40 38  20 20 20 20 c8 99 22 57  |0 +4..@8    .."W|
00002590  69 6d 70 5f 4f 70 65 6e  57 69 6e 64 6f 77 22 2c  |imp_OpenWindow",|
000025a0  2c 71 25 3a c8 99 22 57  69 6d 70 5f 43 6c 6f 73  |,q%:.."Wimp_Clos|
000025b0  65 57 69 6e 64 6f 77 22  2c 2c 71 25 0d 10 4a 3a  |eWindow",,q%..J:|
000025c0  20 20 20 20 c8 99 22 57  69 6d 70 5f 43 72 65 61  |    .."Wimp_Crea|
000025d0  74 65 4d 65 6e 75 22 2c  2c 77 5f 63 6f 6d 6d 25  |teMenu",,w_comm%|
000025e0  2c 6d 6f 75 73 65 78 25  2d 36 34 2c 6d 6f 75 73  |,mousex%-64,mous|
000025f0  65 79 25 2b 34 30 0d 10  54 07 20 20 cd 0d 10 5e  |ey%+40..T.  ...^|
00002600  05 cd 0d 10 68 05 e1 0d  10 72 05 3a 0d 10 7c 13  |....h....r.:..|.|
00002610  dd 20 f2 50 72 6f 67 72  61 6d 53 68 61 70 65 0d  |. .ProgramShape.|
00002620  10 86 3b c8 99 22 4f 53  5f 53 70 72 69 74 65 4f  |..;.."OS_SpriteO|
00002630  70 22 2c 26 31 32 34 2c  73 70 72 69 74 65 61 72  |p",&124,spritear|
00002640  65 61 25 2c 22 70 74 72  5f 6d 65 6e 75 22 2c 32  |ea%,"ptr_menu",2|
00002650  2c 36 2c 32 2c 2d 31 2c  2d 31 0d 10 90 05 e1 0d  |,6,2,-1,-1......|
00002660  10 9a 05 3a 0d 10 a4 1e  dd 20 f2 61 6c 74 65 72  |...:..... .alter|
00002670  69 63 6f 6e 64 61 74 61  28 68 25 2c 69 25 2c 61  |icondata(h%,i%,a|
00002680  24 29 0d 10 ae 23 ea 20  70 25 3a 70 25 3d a4 69  |$)...#. p%:p%=.i|
00002690  63 6f 6e 64 61 74 61 28  68 25 2c 69 25 29 3a 24  |condata(h%,i%):$|
000026a0  70 25 3d 61 24 0d 10 b8  31 69 62 25 21 30 3d 68  |p%=a$...1ib%!0=h|
000026b0  25 3a 69 62 25 21 34 3d  69 25 3a c8 99 20 22 57  |%:ib%!4=i%:.. "W|
000026c0  69 6d 70 5f 47 65 74 49  63 6f 6e 53 74 61 74 65  |imp_GetIconState|
000026d0  22 2c 2c 69 62 25 0d 10  c2 3f c8 99 20 22 57 69  |",,ib%...?.. "Wi|
000026e0  6d 70 5f 46 6f 72 63 65  52 65 64 72 61 77 22 2c  |mp_ForceRedraw",|
000026f0  68 25 2c 69 62 25 21 38  2b 32 2c 69 62 25 21 31  |h%,ib%!8+2,ib%!1|
00002700  32 2d 34 2c 69 62 25 21  31 36 2d 32 2c 69 62 25  |2-4,ib%!16-2,ib%|
00002710  21 32 30 2b 34 0d 10 cc  05 e1 0d 10 d6 05 3a 0d  |!20+4.........:.|
00002720  10 e0 1e dd 20 a4 69 63  6f 6e 64 61 74 61 28 68  |.... .icondata(h|
00002730  61 6e 64 6c 65 25 2c 69  63 6f 6e 25 29 0d 10 ea  |andle%,icon%)...|
00002740  39 69 62 25 21 30 3d 68  61 6e 64 6c 65 25 3a 69  |9ib%!0=handle%:i|
00002750  62 25 21 34 3d 69 63 6f  6e 25 3a c8 99 20 22 57  |b%!4=icon%:.. "W|
00002760  69 6d 70 5f 47 65 74 49  63 6f 6e 53 74 61 74 65  |imp_GetIconState|
00002770  22 2c 2c 69 62 25 0d 10  f4 0b 3d 69 62 25 21 32  |",,ib%....=ib%!2|
00002780  38 0d 10 fe 05 3a 0d 11  08 11 dd 20 f2 4d 65 6e  |8....:..... .Men|
00002790  75 53 65 6c 65 63 74 0d  11 12 08 ea 20 63 25 0d  |uSelect..... c%.|
000027a0  11 1c 3c c8 99 20 22 57  69 6d 70 5f 47 65 74 50  |..<.. "Wimp_GetP|
000027b0  6f 69 6e 74 65 72 49 6e  66 6f 22 2c 2c 62 25 3a  |ointerInfo",,b%:|
000027c0  63 25 3d a3 3a e7 20 62  25 21 38 3d 31 20 63 25  |c%=.:. b%!8=1 c%|
000027d0  3d b9 3a f4 20 61 64 6a  75 73 74 0d 11 26 14 c8  |=.:. adjust..&..|
000027e0  8e 20 4d 65 6e 75 41 63  74 69 76 65 25 20 ca 0d  |. MenuActive% ..|
000027f0  11 30 11 c9 20 6d 5f 6d  61 69 6e 6d 65 6e 75 25  |.0.. m_mainmenu%|
00002800  0d 11 3a 0f 20 20 c8 8e  20 71 25 21 30 20 ca 0d  |..:.  .. q%!0 ..|
00002810  11 44 0a 20 20 c9 20 31  3a 0d 11 4e 12 20 20 20  |.D.  . 1:..N.   |
00002820  20 f2 74 65 72 6d 69 6e  61 74 65 0d 11 58 07 20  | .terminate..X. |
00002830  20 cb 0d 11 62 2c 20 20  e7 20 63 25 20 c8 99 20  | ...b,  . c% .. |
00002840  22 57 69 6d 70 5f 43 72  65 61 74 65 4d 65 6e 75  |"Wimp_CreateMenu|
00002850  22 2c 2c 6d 5f 6d 61 69  6e 6d 65 6e 75 25 0d 11  |",,m_mainmenu%..|
00002860  6c 05 cb 0d 11 76 05 e1  0d 11 80 05 3a 0d 11 8a  |l....v......:...|
00002870  11 dd 20 a4 77 69 6e 64  6f 77 28 61 24 29 0d 11  |.. .window(a$)..|
00002880  94 08 ea 20 63 25 0d 11  9e 48 c8 99 20 22 57 69  |... c%...H.. "Wi|
00002890  6d 70 5f 4c 6f 61 64 54  65 6d 70 6c 61 74 65 22  |mp_LoadTemplate"|
000028a0  2c 2c 71 25 2c 63 75 72  62 75 66 25 2c 65 6e 64  |,,q%,curbuf%,end|
000028b0  62 75 66 25 2c 2d 31 2c  61 24 2c 30 20 b8 20 2c  |buf%,-1,a$,0 . ,|
000028c0  2c 63 75 72 62 75 66 25  2c 2c 2c 2c 63 25 0d 11  |,curbuf%,,,,c%..|
000028d0  a8 29 e7 20 61 24 3d 22  77 5f 6d 61 69 6e 22 20  |.). a$="w_main" |
000028e0  20 20 20 20 8c 20 71 25  21 36 34 3d 73 70 72 69  |    . q%!64=spri|
000028f0  74 65 61 72 65 61 25 0d  11 b2 29 e7 20 61 24 3d  |tearea%...). a$=|
00002900  22 77 5f 63 6f 6d 6d 69  6e 66 6f 22 20 8c 20 71  |"w_comminfo" . q|
00002910  25 21 36 34 3d 73 70 72  69 74 65 61 72 65 61 25  |%!64=spritearea%|
00002920  0d 11 bc 23 c8 99 20 22  57 69 6d 70 5f 43 72 65  |...#.. "Wimp_Cre|
00002930  61 74 65 57 69 6e 64 6f  77 22 2c 2c 71 25 20 b8  |ateWindow",,q% .|
00002940  20 63 25 0d 11 c6 07 3d  63 25 0d 11 d0 05 3a 0d  | c%....=c%....:.|
00002950  11 da 14 dd 20 a4 77 6f  72 6b 73 70 61 63 65 28  |.... .workspace(|
00002960  4c 25 29 0d 11 e4 3e e7  20 63 75 72 62 75 66 66  |L%)...>. curbuff|
00002970  25 2b 4c 25 3e 62 75 66  66 65 72 25 2b 6d 61 78  |%+L%>buffer%+max|
00002980  62 75 66 25 20 8c 20 85  20 31 2c 22 4e 6f 20 6d  |buf% . . 1,"No m|
00002990  6f 72 65 20 62 75 66 66  65 72 20 73 70 61 63 65  |ore buffer space|
000029a0  22 0d 11 ee 10 63 75 72  62 75 66 66 25 2b 3d 4c  |"....curbuff%+=L|
000029b0  25 0d 11 f8 10 3d 63 75  72 62 75 66 66 25 2d 4c  |%....=curbuff%-L|
000029c0  25 0d 12 02 05 3a 0d 12  0c 3c dd 20 a4 5f 57 69  |%....:...<. ._Wi|
000029d0  6d 70 5f 52 65 70 6f 72  74 45 72 72 6f 72 28 65  |mp_ReportError(e|
000029e0  72 72 6f 72 24 2c 65 72  72 6e 75 6d 6d 65 72 25  |rror$,errnummer%|
000029f0  2c 66 6c 61 67 73 25 2c  61 70 70 6c 6e 61 6d 65  |,flags%,applname|
00002a00  24 29 0d 12 16 0f 20 20  ea 20 72 65 73 75 6c 74  |$)....  . result|
00002a10  25 0d 12 20 17 20 20 62  25 21 30 20 3d 20 65 72  |%.. .  b%!0 = er|
00002a20  72 6e 75 6d 6d 65 72 25  0d 12 2a 2c 20 20 24 28  |rnummer%..*,  $(|
00002a30  62 25 2b 34 29 20 3d 20  65 72 72 6f 72 24 3a 24  |b%+4) = error$:$|
00002a40  69 62 25 20 3d 20 c0 61  70 70 6c 6e 61 6d 65 24  |ib% = .applname$|
00002a50  2c 32 30 29 0d 12 34 34  20 20 c8 99 20 22 57 69  |,20)..44  .. "Wi|
00002a60  6d 70 5f 52 65 70 6f 72  74 45 72 72 6f 72 22 2c  |mp_ReportError",|
00002a70  62 25 2c 66 6c 61 67 73  25 2c 69 62 25 20 b8 20  |b%,flags%,ib% . |
00002a80  2c 72 65 73 75 6c 74 25  0d 12 3e 0c 3d 72 65 73  |,result%..>.=res|
00002a90  75 6c 74 25 0d 12 48 05  3a 0d 12 52 22 dd 20 f2  |ult%..H.:..R". .|
00002aa0  5f 65 72 72 6f 72 28 65  72 72 6f 72 24 2c 61 70  |_error(error$,ap|
00002ab0  70 6c 69 63 61 74 69 6f  6e 24 29 0d 12 5c 0a 20  |plication$)..\. |
00002ac0  20 ea 20 64 25 0d 12 66  3b 20 20 64 25 20 3d 20  | . d%..f;  d% = |
00002ad0  a4 5f 57 69 6d 70 5f 52  65 70 6f 72 74 45 72 72  |._Wimp_ReportErr|
00002ae0  6f 72 28 65 72 72 6f 72  24 2c 30 2c 25 30 30 30  |or(error$,0,%000|
00002af0  30 31 2c 61 70 70 6c 69  63 61 74 69 6f 6e 24 29  |01,application$)|
00002b00  0d 12 70 05 e1 0d 12 7a  05 3a 0d 12 84 1b dd 20  |..p....z.:..... |
00002b10  f2 68 69 67 68 6c 69 67  68 74 69 63 6f 6e 28 68  |.highlighticon(h|
00002b20  25 2c 69 25 29 0d 12 8e  4d 69 62 25 21 30 3d 68  |%,i%)...Mib%!0=h|
00002b30  25 3a 69 62 25 21 34 3d  69 25 3a 69 62 25 21 38  |%:ib%!4=i%:ib%!8|
00002b40  3d 26 32 30 30 30 30 30  3a 69 62 25 21 31 32 3d  |=&200000:ib%!12=|
00002b50  26 32 30 30 30 30 30 3a  c8 99 22 57 69 6d 70 5f  |&200000:.."Wimp_|
00002b60  53 65 74 49 63 6f 6e 53  74 61 74 65 22 2c 2c 69  |SetIconState",,i|
00002b70  62 25 0d 12 98 05 e1 0d  12 a2 05 3a 0d 12 ac 19  |b%.........:....|
00002b80  dd 20 f2 6c 6f 6c 69 67  68 74 69 63 6f 6e 28 68  |. .lolighticon(h|
00002b90  25 2c 69 25 29 0d 12 b6  47 69 62 25 21 30 3d 68  |%,i%)...Gib%!0=h|
00002ba0  25 3a 69 62 25 21 34 3d  69 25 3a 69 62 25 21 38  |%:ib%!4=i%:ib%!8|
00002bb0  3d 30 3a 69 62 25 21 31  32 3d 26 32 30 30 30 30  |=0:ib%!12=&20000|
00002bc0  30 3a c8 99 22 57 69 6d  70 5f 53 65 74 49 63 6f  |0:.."Wimp_SetIco|
00002bd0  6e 53 74 61 74 65 22 2c  2c 69 62 25 0d 12 c0 05  |nState",,ib%....|
00002be0  e1 0d ff                                          |...|
00002be3