Home » Archimedes archive » Micro User » MU 1992-05.adf » PD » Bits/!Largeness/!RunImage

Bits/!Largeness/!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 » Micro User » MU 1992-05.adf » PD
Filename: Bits/!Largeness/!RunImage
Read OK:
File size: 2702 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM > <Largeness$Dir>.!RunImage
   20REM By Brian.Brunswick@cl.cam.ac.uk
   30REM Apologies for sparseness of comments and BASIC.
   40
   50REM Configurable options - if I had more energy, these would all be on menus
   60
   70icback% = 0: REM icon background
   80icfore% = 2: REM icon foreground
   90winback% = 4: REM window back
  100boxfore% = 11: REM box foreground
  110speed% = 20: REM Centiseconds between window movements
  120mapspeed% = 100: REM Centiseconds between map updates
  130abso% = TRUE : REM On for once only movement
  140s% = 4 : REM shift amount for view window
  150
  160*%RMLoad <Obey$Dir>.Largeness
  170*%RMLoad <Obey$Dir>.lmouse
  180
  190msgfil$="<Largeness$Dir>.Messages"
  200SYS "MessageTrans_FileInfo",,msgfil$ TO flags%,,size%
  210DIM msgfilebuf% size%
  220DIM msgfil% 17+LENmsgfil$
  230$(msgfil%+16)=msgfil$
  240SYS "MessageTrans_OpenFile",msgfil%,msgfil%+16,msgfilebuf%
  250SYS "OS_SWINumberFromString", , "MessageTrans_Lookup" TO ml%
  260
  270DIM taskid%4: $taskid% = "TASK"
  280SYS "Wimp_Initialise", 200, !taskid%, FNmess("taskname") TO version%
  290maxh% = 100
  300DIM hb% maxh%*24
  310w% = -1
  320DIM q% 1000, r% 256
  330textsize=500
  340DIM textpos textsize
  350textend=textpos+textsize
  360PROCmode
  370
  380ON ERROR ON ERROR OFF: PROCerrorbox: PROCfinish: END
  390
  400PROCloadt("info",q%)
  410SYS "Wimp_CreateWindow", , q% TO infowindow
  420
  430DIM menu (28+2*24)
  440$menu=FNmess("mtitle"): menu!12=&70207: menu!16=192: menu!20=44: menu!24=0
  450menu!28=&00: menu!32=infowindow: menu!36=&7000011: $(menu+40)=FNmess("minfo")
  460menu!52=&80: menu!56=-1: menu!60=&7000011: $(menu+64)=FNmess("mquit")
  470
  480q%!0=-1
  490q%!4=0
  500q%!8=0
  510q%!12=86
  520q%!16=68
  530q%!20=&1700300A
  540$(q%+24)="!largeness"
  550SYS "Wimp_CreateIcon", ,q% TO baricon
  560
  570
  580PROCloadt("window",q%+4)
  590q%!4 -= 10000
  600q%!12 -= 10000
  610q%!32 += &800
  620SYS "Wimp_CreateWindow", , q%+4 TO B%
  630
  640
  650twf% = &006024 + (icfore%<<24) + (icback%<<28)
  660PROCloadt("window",q%+4)
  670q%!4 = ros% - 48 - (q%!12 - q%!4)
  680q%!12 = ros% - 48
  690q%!16 = 180 + q%!16 - q%!8
  700q%!8 = 180
  710q%?39 = winback%
  720SYS "Wimp_CreateWindow", , q%+4 TO L%
  730
  740PROCclearmap
  750
  760mapon = FALSE
  770maptime%=0
  780dragging=0
  790remap = FALSE
  800
  810REPEAT
  820  SYS "OS_ReadMonotonicTime" TO time%:
  830  IF time%>maptime% THEN
  840    IF mapon THEN PROCmakemap
  850    maptime% = time% + mapspeed%
  860  ENDIF
  870  IF dragging THEN time%=0
  880  SYS "Wimp_PollIdle", 0, q%, time%+speed% TO A%
  890  CASE A% OF
  900  WHEN 0:
  910    IF dragging THEN
  920      SYS "Wimp_GetPointerInfo", , q%
  930      q%!0+=dx
  940      q%!4+=dy
  950      PROCdodrag
  960    ELSE
  970      PROCdonudge
  980      IF remap THEN maptime% = 0: remap = FALSE
  990    ENDIF
 1000  WHEN 2: SYS "Wimp_OpenWindow", , q%
 1010  WHEN 3: SYS "Wimp_CloseWindow", , q%
 1020    mapon = FALSE
 1030  WHEN 6:
 1040    buttons = q%!8
 1050    IF q%!12=-2 THEN
 1060      CASE buttons OF
 1070      WHEN 2: SYS "Wimp_CreateMenu", , menu, q%!0-64,96+2*44
 1080      WHEN 4:
 1090          mapon = TRUE
 1100          c% = TRUE
 1110          PROCmakemap
 1120          !q% = L%
 1130          SYS "Wimp_GetWindowState", , q%
 1140          IF q%!4<0 OR q%!8<0 OR q%!12>ros% OR q%!16>tos% THEN
 1150            q%!4 = ros% - 48 - (q%!12 - q%!4)
 1160            q%!12 = ros% - 48
 1170            q%!16 = 180 + q%!16 - q%!8
 1180            q%!8 = 180
 1190          ENDIF
 1200          q%!28 = -1
 1210          SYS "Wimp_OpenWindow", , q%
 1220      WHEN 1: PROCretrieve
 1230      ENDCASE
 1240    ELSE
 1250REM Yuch, what horrible style!
 1260      dragicon = q%!16
 1270      IF buttons<16 THEN
 1280        dragwindow = 0
 1290        IF dragicon>0 AND dragicon<maxh% THEN
 1300          z% = hb%+dragicon*24
 1310          dragwindow = z%!0
 1320        ENDIF
 1330        IF dragwindow=0 THEN
 1340          z% = hb%
 1350          px = 0
 1360          py = 0
 1370        ENDIF
 1380        r%!32 = L%
 1390        SYS "Wimp_GetWindowState", , r%+32
 1400        IF dragwindow<>0 AND (buttons=4 OR buttons=1) THEN
 1410          q%!0 = dragwindow
 1420          SYS "Wimp_GetWindowState", , q%
 1430          IF buttons=1 THEN q%!28 = -2 ELSE IF r%!60=-1 THEN q%!28 = L% ELSE q%!28 = -1
 1440          SYS "Wimp_SendMessage", 2, q%, dragwindow
 1450          remap = TRUE
 1460        ENDIF
 1470        ox = r%!36 - r%!52
 1480        oy = r%!48 - r%!56
 1490        r%!20 = z%!4 + ox
 1500        r%!24 = z%!8 + oy
 1510        r%!28 = z%!12 + ox
 1520        r%!32 = z%!16 + oy
 1530        r%!36 = -32767
 1540        r%!40 = -32767
 1550        r%!44 = 32767
 1560        r%!48 = 32767
 1570      ENDIF
 1580      IF buttons>=16 OR buttons=2 THEN
 1590        dx=r%!20-q%!0
 1600        dy=r%!24-q%!4
 1610        r%!16 = 5
 1620        SYS "Wimp_DragBox", , r%+12
 1630        SYS "OS_Byte", 161, 197 TO , , wimpflags
 1640        IF wimpflags AND 1 THEN dragging = TRUE
 1650      ENDIF
 1660    ENDIF
 1670  WHEN 7:
 1680    SYS "Wimp_DragBox", , -1
 1690    PROCdodrag
 1700    dragging = FALSE
 1710  WHEN 9:
 1720    CASE q%!0 OF
 1730    WHEN 0:
 1740    WHEN 1: PROCfinish: END
 1750    ENDCASE
 1760  WHEN 17, 18
 1770    CASE q%!16 OF
 1780    WHEN 0: PROCfinish: END
 1790    WHEN &400C1:
 1800      PROCmode
 1810      PROCclearmap
 1820      PROCmakemap
 1830    ENDCASE
 1840  ENDCASE
 1850UNTIL FALSE
 1860
 1870DEF PROCdodrag
 1880q%!0 -= ox
 1890q%!4 -= oy
 1900IF dragwindow<>0 THEN
 1910  r%!0 = dragwindow
 1920  SYS "Wimp_GetWindowState", , r%
 1930  r%!12 = (q%!0 << s%) + (r%!12 - r%!4)
 1940  r%!16 = (q%!4 << s%) + (r%!16 - r%!8)
 1950  lx% = q%!0 << s%
 1960  ly% = q%!4 << s%
 1970  IF buttons AND &40 THEN IF r%!60=-1 THEN q%!44 = L% ELSE q%!44 = -1
 1980  IF lx%<>r%!4 OR ly%<>r%!8 THEN
 1990    r%!4 = lx%
 2000    r%!8 = ly%
 2010    SYS "Wimp_SendMessage", 2, r%, dragwindow
 2020    remap = TRUE
 2030  ENDIF
 2040ELSE
 2050  nx = (q%!0 << s%)
 2060  ny = (q%!4 << s%)
 2070  IF nx<>px OR nx<>py THEN PROCnudge( nx-px, ny-py )
 2080  px = nx
 2090  py = ny
 2100ENDIF
 2110ENDPROC
 2120
 2130DEF PROCmode
 2140!q% = 4: q%!4 = 5: q%!8 = 11: q%!12 = 12: q%!16 = -1
 2150SYS "OS_ReadVduVariables", q%, q%+20
 2160ros% = q%!28+1<<q%!20: tos% = q%!32+1<<q%!24
 2170ENDPROC
 2180 
 2190DEF PROCfinish
 2200*%RMKill Largeness
 2210*%RMKill LargenessMouse
 2220REM q%?0 = 1
 2230REM q%!1 = 0
 2240REM q%!5 = ros%+(tos%<<16)
 2250REM SYS "OS_Word", 21, q%
 2260SYS "Wimp_CloseDown"
 2270SYS "MessageTrans_CloseFile", msgfil%
 2280ENDPROC
 2290 
 2300DEF PROCloadt( name$, q% )
 2310LOCAL next
 2320SYS "Wimp_OpenTemplate", , "<Largeness$Dir>.Templates"
 2330SYS "Wimp_LoadTemplate", , q%, textpos, textend, -1, name$, 0 TO , , textpos, , , , next
 2340SYS "Wimp_CloseTemplate"
 2350IF next = 0 THEN SYS ml%, msgfil%, "temperr", q%, 256, name$ TO , , k%: ERROR 1, $k%
 2360ENDPROC
 2370
 2380DEF FNback
 2390LOCAL
 2400!q% = B%
 2410SYS "Wimp_GetWindowState", , q%
 2420q%!28 = -2
 2430SYS "Wimp_OpenWindow", , q%
 2440SYS "Wimp_GetWindowState", , q%
 2450= q%!28
 2460
 2470DEF PROCdonudge
 2480LOCAL dx%, dy%, x%, y%
 2490REM q%?0 = 1
 2500REM q%!1 = &80008000
 2510REM q%!5 = &7fff7fff
 2520REM SYS "OS_Word", 21, q%
 2530q%?0 = 6
 2540SYS "OS_Word", 21, q%
 2550x% = ( q%!1 << 16 ) >> 16
 2560y% = ( q%!3 << 16 ) >> 16
 2570IF x%<0 THEN dx% = -x% ELSE IF x%<ros% THEN dx% = 0 ELSE dx% = ros%-x%
 2580IF y%<0 THEN dy% = -y% ELSE IF y%<tos% THEN dy% = 0 ELSE dy% = tos%-y%
 2590IF dx%<>0 OR dy%<>0 THEN
 2600  q%?0 = 3
 2610  q%!1 = x%+dx%
 2620  q%!3 = y%+dy%
 2630  IF abso% THEN SYS "OS_Word", 21, q%
 2640  PROCnudge( dx%, dy% )
 2650ENDIF
 2660ENDPROC
 2670 
 2680DEF PROCnudge( xnudge%, ynudge% )
 2690after% = FNback
 2700WHILE after%<>-1
 2710  !q% = after%: SYS "Wimp_GetWindowState", , q%: after% = q%!28
 2720  IF !q%<>L% THEN
 2730    q%!4 += xnudge%: q%!12 += xnudge%
 2740    q%!8 += ynudge%: q%!16 += ynudge%
 2750    q%!32 = q%!32 OR 64
 2760    SYS "Wimp_SendMessage", 2, q%, q%!0
 2770  ENDIF
 2780ENDWHILE
 2790ENDPROC
 2800
 2810DEF PROCclearmap
 2820WHILE w%>=0
 2830  q%!0 = L%
 2840  q%!4 = w%
 2850  SYS "Wimp_DeleteIcon", , q%
 2860  w% -= 1
 2870ENDWHILE
 2880hb%!0 = L%
 2890hb%!4 = 0
 2900hb%!8 = 0
 2910hb%!12 = ros% >> s%
 2920hb%!16 = tos% >> s%
 2930hb%!20 = &00006004 + (boxfore%<<24)
 2940SYS "Wimp_CreateIcon", , hb%
 2950w%=0
 2960c%=TRUE
 2970ENDPROC
 2980
 2990DEF PROCmakemap
 3000LOCAL z%,i%
 3010lx% = - (ros% >> s%)
 3020ly% = - (tos% >> s%)
 3030hx% = - lx%*2
 3040hy% = - ly%*2
 3050after% = FNback
 3060i% = 0
 3070WHILE after%<>-1
 3080  q%!0 = after%: SYS "Wimp_GetWindowState", , q%: after% = q%!28
 3090  IF q%!4 > -&8000000 THEN
 3100    i% += 1
 3110    IF i%<maxh% THEN z% = hb%+i%*24 ELSE z% = q%+128
 3120    q%!4 = q%!4 >> s%
 3130    IF q%!4 < lx% THEN lx% = q%!4
 3140    q%!8 = q%!8 >> s%
 3150    IF q%!8 < ly% THEN ly% = q%!8
 3160    q%!12 = q%!12 >> s%
 3170    IF q%!12 > hx% THEN hx% = q%!12
 3180    q%!16 = q%!16 >> s%
 3190    IF q%!16 > hy% THEN hy% = q%!16
 3200    IF i%>w% OR z%!0<>q%!0 OR z%!4<>q%!4 OR z%!8<>q%!8 OR z%!12<>q%!12 OR z%!16<>q%!16 THEN
 3210      IF i%<=w% THEN
 3220        z%!0 = L%
 3230        z%!4 = i%
 3240        SYS "Wimp_DeleteIcon", , z%
 3250      ENDIF
 3260      z%!20 = twf%
 3270      z%!16 = q%!16
 3280      z%!12 = q%!12
 3290      z%!8 = q%!8
 3300      z%!4 = q%!4
 3310      z%!0 = L%
 3320      SYS "Wimp_CreateIcon", , z%
 3330      z%!0 = q%!0
 3340      c% = TRUE
 3350    ENDIF
 3360  ENDIF
 3370ENDWHILE
 3380WHILE w%>i%
 3390  q%!0 = L%
 3400  q%!4 = w%
 3410  SYS "Wimp_DeleteIcon", , q%
 3420  w%-=1
 3430  c% = TRUE
 3440ENDWHILE
 3450IF c% THEN
 3460  w% = i%
 3470  q%!0 = lx%
 3480  q%!4 = ly%
 3490  q%!8 = hx%
 3500  q%!12 = hy%
 3510  SYS "Wimp_SetExtent", L%, q%
 3520  IF mapon THEN
 3530    !q% = L%
 3540    SYS "Wimp_GetWindowState", , q%
 3550    SYS "Wimp_OpenWindow", , q%
 3560    SYS "Wimp_ForceRedraw", L%, lx%, ly%, hx%, hy%
 3570  ENDIF
 3580  c%=FALSE
 3590ENDIF
 3600ENDPROC
 3610
 3620DEF PROCretrieve
 3630after% = FNback
 3640WHILE after%<>-1
 3650  !q% = after%: SYS "Wimp_GetWindowOutline", , q%
 3660  xnudge%=ros%-q%!12
 3670  ynudge%=tos%-q%!16
 3680  IF xnudge%>0 THEN xnudge%=0
 3690  IF ynudge%>0 THEN ynudge%=0
 3700  IF q%!4<0 THEN xnudge%=-q%!4
 3710  IF q%!8<0 THEN ynudge%=-q%!8
 3720  !q% = after%: SYS "Wimp_GetWindowState", , q%: after% = q%!28
 3730  IF q%!4 > -&8000000 THEN
 3740    IF xnudge% OR ynudge% THEN
 3750      q%!4 += xnudge%: q%!12 += xnudge%
 3760      q%!8 += ynudge%: q%!16 += ynudge%
 3770      q%!32 = q%!32 OR 64
 3780      SYS "Wimp_SendMessage", 2, q%, q%!0
 3790    ENDIF
 3800  ENDIF
 3810ENDWHILE
 3820ENDPROC
 3830
 3840REM DEF PROCscatter
 3850REM LOCAL xnudge%,ynudge%
 3860REM after% = FNback
 3870REM WHILE after%<>-1
 3880REM   !q% = after%: SYS "Wimp_GetWindowOutline", , q%
 3890REM   xnudge%=(q%!12+q%!4-ros%)/4
 3900REM   ynudge%=(q%!16+q%!8-tos%)/2
 3910REM   !q% = after%: SYS "Wimp_GetWindowState", , q%: after% = q%!28
 3920REM   IF xnudge% OR ynudge% THEN
 3930REM     q%!4 += xnudge%: q%!12 += xnudge%
 3940REM     q%!8 += ynudge%: q%!16 += ynudge%
 3950REM     q%!32 = q%!32 OR 64
 3960REM     SYS "Wimp_SendMessage", 2, q%, q%!0
 3970REM   ENDIF
 3980REM ENDWHILE
 3990REM ENDPROC
 4000
 4010DEF PROCerrorbox
 4020SYS "Wimp_DragBox", , -1
 4030!q% = ERR: $( q%+4 ) = REPORT$+"( "+STR$( ERL/10 )+" )"+CHR$0
 4040SYS "Wimp_ReportError", q%, 1, FNmess("mtitle")
 4050ENDPROC
 4060
 4070DEF FNmess(a$)
 4080LOCAL k%
 4090SYS ml%, msgfil%, a$, 0 TO , , k%
 4100=$k%

!� > <Largeness$Dir>.!RunImage
%� By Brian.Brunswick@cl.cam.ac.uk
5� Apologies for sparseness of comments and BASIC.
(
2N� Configurable options - if I had more energy, these would all be on menus
<
F"icback% = 0: � icon background
P"icfore% = 2: � icon foreground
Zwinback% = 4: � window back
d#boxfore% = 11: � box foreground
n8speed% = 20: � Centiseconds between window movements
x7mapspeed% = 100: � Centiseconds between map updates
�+abso% = � : � On for once only movement
�+s% = 4 : � shift amount for view window
�
�!*%RMLoad <Obey$Dir>.Largeness
�*%RMLoad <Obey$Dir>.lmouse
�
�&msgfil$="<Largeness$Dir>.Messages"
�7ș "MessageTrans_FileInfo",,msgfil$ � flags%,,size%
�� msgfilebuf% size%
�� msgfil% 17+�msgfil$
�$(msgfil%+16)=msgfil$
�=ș "MessageTrans_OpenFile",msgfil%,msgfil%+16,msgfilebuf%
�>ș "OS_SWINumberFromString", , "MessageTrans_Lookup" � ml%

!� taskid%4: $taskid% = "TASK"
Eș "Wimp_Initialise", 200, !taskid%, �mess("taskname") � version%
"maxh% = 100
,� hb% maxh%*24
6w% = -1
@� q% 1000, r% 256
Jtextsize=500
T� textpos textsize
^textend=textpos+textsize
h	�mode
r
|$� � � � �: �errorbox: �finish: �
�
��loadt("info",q%)
�-ș "Wimp_CreateWindow", , q% � infowindow
�
�� menu (28+2*24)
�M$menu=�mess("mtitle"): menu!12=&70207: menu!16=192: menu!20=44: menu!24=0
�Pmenu!28=&00: menu!32=infowindow: menu!36=&7000011: $(menu+40)=�mess("minfo")
�Hmenu!52=&80: menu!56=-1: menu!60=&7000011: $(menu+64)=�mess("mquit")
�
�q%!0=-1
�
q%!4=0
�
q%!8=0
�q%!12=86
q%!16=68
q%!20=&1700300A
$(q%+24)="!largeness"
&'ș "Wimp_CreateIcon", ,q% � baricon
0
:
D�loadt("window",q%+4)
Nq%!4 -= 10000
Xq%!12 -= 10000
bq%!32 += &800
l'ș "Wimp_CreateWindow", , q%+4 � B%
v
�
�2twf% = &006024 + (icfore%<<24) + (icback%<<28)
��loadt("window",q%+4)
�%q%!4 = ros% - 48 - (q%!12 - q%!4)
�q%!12 = ros% - 48
�q%!16 = 180 + q%!16 - q%!8
�q%!8 = 180
�q%?39 = winback%
�'ș "Wimp_CreateWindow", , q%+4 � L%
�
�
�clearmap
�
�
mapon = �
maptime%=0
dragging=0

remap = �
 
*�
4(  ș "OS_ReadMonotonicTime" � time%:
>  � time%>maptime% �
H    � mapon � �makemap
R$    maptime% = time% + mapspeed%
\  �
f  � dragging � time%=0
p2  ș "Wimp_PollIdle", 0, q%, time%+speed% � A%
z
  Ȏ A% �
�
  � 0:
�    � dragging �
�(      ș "Wimp_GetPointerInfo", , q%
�      q%!0+=dx
�      q%!4+=dy
�      �dodrag
�	    �
�      �donudge
�+      � remap � maptime% = 0: remap = �
�	    �
�%  � 2: ș "Wimp_OpenWindow", , q%
�&  � 3: ș "Wimp_CloseWindow", , q%
�    mapon = �

  � 6:
    buttons = q%!8
    � q%!12=-2 �
$      Ȏ buttons �
.<      � 2: ș "Wimp_CreateMenu", , menu, q%!0-64,96+2*44
8      � 4:
B          mapon = �
L          c% = �
V          �makemap
`          !q% = L%
j,          ș "Wimp_GetWindowState", , q%
t;          � q%!4<0 � q%!8<0 � q%!12>ros% � q%!16>tos% �
~1            q%!4 = ros% - 48 - (q%!12 - q%!4)
�!            q%!12 = ros% - 48
�*            q%!16 = 180 + q%!16 - q%!8
�            q%!8 = 180
�          �
�          q%!28 = -1
�(          ș "Wimp_OpenWindow", , q%
�      � 1: �retrieve
�      �
�	    �
� � Yuch, what horrible style!
�      dragicon = q%!16
�      � buttons<16 �
        dragwindow = 0

+        � dragicon>0 � dragicon<maxh% �
"          z% = hb%+dragicon*24
          dragwindow = z%!0
(
        �
2        � dragwindow=0 �
<          z% = hb%
F          px = 0
P          py = 0
Z
        �
d        r%!32 = L%
n-        ș "Wimp_GetWindowState", , r%+32
x7        � dragwindow<>0 � (buttons=4 � buttons=1) �
�          q%!0 = dragwindow
�,          ș "Wimp_GetWindowState", , q%
�M          � buttons=1 � q%!28 = -2 � � r%!60=-1 � q%!28 = L% � q%!28 = -1
�6          ș "Wimp_SendMessage", 2, q%, dragwindow
�          remap = �
�
        �
�        ox = r%!36 - r%!52
�        oy = r%!48 - r%!56
�        r%!20 = z%!4 + ox
�        r%!24 = z%!8 + oy
�        r%!28 = z%!12 + ox
�        r%!32 = z%!16 + oy
�        r%!36 = -32767
        r%!40 = -32767
        r%!44 = 32767
        r%!48 = 32767
"      �
,%      � buttons>=16 � buttons=2 �
6        dx=r%!20-q%!0
@        dy=r%!24-q%!4
J        r%!16 = 5
T&        ș "Wimp_DragBox", , r%+12
^2        ș "OS_Byte", 161, 197 � , , wimpflags
h*        � wimpflags � 1 � dragging = �
r      �
|	    �
�
  � 7:
�    ș "Wimp_DragBox", , -1
�    �dodrag
�    dragging = �
�
  � 9:
�    Ȏ q%!0 �
�    � 0:
�    � 1: �finish: �
�	    �
�  � 17, 18
�    Ȏ q%!16 �
�    � 0: �finish: �
�    � &400C1:
      �mode
      �clearmap
      �makemap
&	    �
0  �
:� �
D
N
� �dodrag
Xq%!0 -= ox
bq%!4 -= oy
l� dragwindow<>0 �
v  r%!0 = dragwindow
�$  ș "Wimp_GetWindowState", , r%
�+  r%!12 = (q%!0 << s%) + (r%!12 - r%!4)
�+  r%!16 = (q%!4 << s%) + (r%!16 - r%!8)
�  lx% = q%!0 << s%
�  ly% = q%!4 << s%
�<  � buttons � &40 � � r%!60=-1 � q%!44 = L% � q%!44 = -1
�  � lx%<>r%!4 � ly%<>r%!8 �
�    r%!4 = lx%
�    r%!8 = ly%
�0    ș "Wimp_SendMessage", 2, r%, dragwindow
�    remap = �
�  �
��
  nx = (q%!0 << s%)
  ny = (q%!4 << s%)
0  � nx<>px � nx<>py � �nudge( nx-px, ny-py )
 
  px = nx
*
  py = ny
4�
>�
H
R� �mode
\8!q% = 4: q%!4 = 5: q%!8 = 11: q%!12 = 12: q%!16 = -1
f'ș "OS_ReadVduVariables", q%, q%+20
p0ros% = q%!28+1<<q%!20: tos% = q%!32+1<<q%!24
z�
� 
�
� �finish
�*%RMKill Largeness
�*%RMKill LargenessMouse
�� q%?0 = 1
�� q%!1 = 0
�� q%!5 = ros%+(tos%<<16)
�� SYS "OS_Word", 21, q%
�ș "Wimp_CloseDown"
�(ș "MessageTrans_CloseFile", msgfil%
��
� 
�� �loadt( name$, q% )
	
� next
	9ș "Wimp_OpenTemplate", , "<Largeness$Dir>.Templates"
	Zș "Wimp_LoadTemplate", , q%, textpos, textend, -1, name$, 0 � , , textpos, , , , next
	$ș "Wimp_CloseTemplate"
	.N� next = 0 � ș ml%, msgfil%, "temperr", q%, 256, name$ � , , k%: � 1, $k%
	8�
	B
	L� �back
	V�
	`!q% = B%
	j"ș "Wimp_GetWindowState", , q%
	tq%!28 = -2
	~ș "Wimp_OpenWindow", , q%
	�"ș "Wimp_GetWindowState", , q%
	�= q%!28
	�
	�� �donudge
	�� dx%, dy%, x%, y%
	�� q%?0 = 1
	�� q%!1 = &80008000
	�� q%!5 = &7fff7fff
	�� SYS "OS_Word", 21, q%
	�q%?0 = 6
	�ș "OS_Word", 21, q%
	�x% = ( q%!1 << 16 ) >> 16
y% = ( q%!3 << 16 ) >> 16

<� x%<0 � dx% = -x% � � x%<ros% � dx% = 0 � dx% = ros%-x%
<� y%<0 � dy% = -y% � � y%<tos% � dy% = 0 � dy% = tos%-y%
� dx%<>0 � dy%<>0 �
(  q%?0 = 3
2  q%!1 = x%+dx%
<  q%!3 = y%+dy%
F$  � abso% � ș "OS_Word", 21, q%
P  �nudge( dx%, dy% )
Z�
d�
n 
x � �nudge( xnudge%, ynudge% )
�after% = �back
�ȕ after%<>-1
�B  !q% = after%: ș "Wimp_GetWindowState", , q%: after% = q%!28
�  � !q%<>L% �
�)    q%!4 += xnudge%: q%!12 += xnudge%
�)    q%!8 += ynudge%: q%!16 += ynudge%
�    q%!32 = q%!32 � 64
�*    ș "Wimp_SendMessage", 2, q%, q%!0
�  �
��
��
�
�� �clearmap
ȕ w%>=0
  q%!0 = L%
  q%!4 = w%
"   ș "Wimp_DeleteIcon", , q%
,
  w% -= 1
6�
@hb%!0 = L%
J
hb%!4 = 0
T
hb%!8 = 0
^hb%!12 = ros% >> s%
hhb%!16 = tos% >> s%
r'hb%!20 = &00006004 + (boxfore%<<24)
|ș "Wimp_CreateIcon", , hb%
�w%=0
�c%=�
��
�
�� �makemap
�� z%,i%
�lx% = - (ros% >> s%)
�ly% = - (tos% >> s%)
�hx% = - lx%*2
�hy% = - ly%*2
�after% = �back
�
i% = 0
�ȕ after%<>-1
C  q%!0 = after%: ș "Wimp_GetWindowState", , q%: after% = q%!28
  � q%!4 > -&8000000 �
    i% += 1
&1    � i%<maxh% � z% = hb%+i%*24 � z% = q%+128
0    q%!4 = q%!4 >> s%
:!    � q%!4 < lx% � lx% = q%!4
D    q%!8 = q%!8 >> s%
N!    � q%!8 < ly% � ly% = q%!8
X    q%!12 = q%!12 >> s%
b#    � q%!12 > hx% � hx% = q%!12
l    q%!16 = q%!16 >> s%
v#    � q%!16 > hy% � hy% = q%!16
�V    � i%>w% � z%!0<>q%!0 � z%!4<>q%!4 � z%!8<>q%!8 � z%!12<>q%!12 � z%!16<>q%!16 �
�      � i%<=w% �
�        z%!0 = L%
�        z%!4 = i%
�&        ș "Wimp_DeleteIcon", , z%
�      �
�      z%!20 = twf%
�      z%!16 = q%!16
�      z%!12 = q%!12
�      z%!8 = q%!8
�      z%!4 = q%!4
�      z%!0 = L%
�$      ș "Wimp_CreateIcon", , z%

      z%!0 = q%!0

      c% = �

	    �

   �

*�

4ȕ w%>i%

>  q%!0 = L%

H  q%!4 = w%

R   ș "Wimp_DeleteIcon", , q%

\  w%-=1

f  c% = �

p�

z
� c% �

�
  w% = i%

�  q%!0 = lx%

�  q%!4 = ly%

�  q%!8 = hx%

�  q%!12 = hy%

�!  ș "Wimp_SetExtent", L%, q%

�  � mapon �

�    !q% = L%

�&    ș "Wimp_GetWindowState", , q%

�"    ș "Wimp_OpenWindow", , q%

�5    ș "Wimp_ForceRedraw", L%, lx%, ly%, hx%, hy%

�  �

�
  c%=�
�
�

$� �retrieve
.after% = �back
8ȕ after%<>-1
B4  !q% = after%: ș "Wimp_GetWindowOutline", , q%
L  xnudge%=ros%-q%!12
V  ynudge%=tos%-q%!16
`  � xnudge%>0 � xnudge%=0
j  � ynudge%>0 � ynudge%=0
t  � q%!4<0 � xnudge%=-q%!4
~  � q%!8<0 � ynudge%=-q%!8
�B  !q% = after%: ș "Wimp_GetWindowState", , q%: after% = q%!28
�  � q%!4 > -&8000000 �
�    � xnudge% � ynudge% �
�+      q%!4 += xnudge%: q%!12 += xnudge%
�+      q%!8 += ynudge%: q%!16 += ynudge%
�      q%!32 = q%!32 � 64
�,      ș "Wimp_SendMessage", 2, q%, q%!0
�	    �
�  �
��
��
�
� DEF PROCscatter

� LOCAL xnudge%,ynudge%
� after% = FNback
� WHILE after%<>-1
(7�   !q% = after%: SYS "Wimp_GetWindowOutline", , q%
2#�   xnudge%=(q%!12+q%!4-ros%)/4
<#�   ynudge%=(q%!16+q%!8-tos%)/2
FE�   !q% = after%: SYS "Wimp_GetWindowState", , q%: after% = q%!28
P"�   IF xnudge% OR ynudge% THEN
Z+�     q%!4 += xnudge%: q%!12 += xnudge%
d+�     q%!8 += ynudge%: q%!16 += ynudge%
n�     q%!32 = q%!32 OR 64
x-�     SYS "Wimp_SendMessage", 2, q%, q%!0
�
�   ENDIF
�� ENDWHILE
�
� ENDPROC
�
�� �errorbox
�ș "Wimp_DragBox", , -1
�2!q% = �: $( q%+4 ) = �$+"( "+�( �/10 )+" )"+�0
�1ș "Wimp_ReportError", q%, 1, �mess("mtitle")
��
�
�� �mess(a$)
�� k%
�#ș ml%, msgfil%, a$, 0 � , , k%
=$k%
�
00000000  0d 00 0a 21 f4 20 3e 20  3c 4c 61 72 67 65 6e 65  |...!. > <Largene|
00000010  73 73 24 44 69 72 3e 2e  21 52 75 6e 49 6d 61 67  |ss$Dir>.!RunImag|
00000020  65 0d 00 14 25 f4 20 42  79 20 42 72 69 61 6e 2e  |e...%. By Brian.|
00000030  42 72 75 6e 73 77 69 63  6b 40 63 6c 2e 63 61 6d  |Brunswick@cl.cam|
00000040  2e 61 63 2e 75 6b 0d 00  1e 35 f4 20 41 70 6f 6c  |.ac.uk...5. Apol|
00000050  6f 67 69 65 73 20 66 6f  72 20 73 70 61 72 73 65  |ogies for sparse|
00000060  6e 65 73 73 20 6f 66 20  63 6f 6d 6d 65 6e 74 73  |ness of comments|
00000070  20 61 6e 64 20 42 41 53  49 43 2e 0d 00 28 04 0d  | and BASIC...(..|
00000080  00 32 4e f4 20 43 6f 6e  66 69 67 75 72 61 62 6c  |.2N. Configurabl|
00000090  65 20 6f 70 74 69 6f 6e  73 20 2d 20 69 66 20 49  |e options - if I|
000000a0  20 68 61 64 20 6d 6f 72  65 20 65 6e 65 72 67 79  | had more energy|
000000b0  2c 20 74 68 65 73 65 20  77 6f 75 6c 64 20 61 6c  |, these would al|
000000c0  6c 20 62 65 20 6f 6e 20  6d 65 6e 75 73 0d 00 3c  |l be on menus..<|
000000d0  04 0d 00 46 22 69 63 62  61 63 6b 25 20 3d 20 30  |...F"icback% = 0|
000000e0  3a 20 f4 20 69 63 6f 6e  20 62 61 63 6b 67 72 6f  |: . icon backgro|
000000f0  75 6e 64 0d 00 50 22 69  63 66 6f 72 65 25 20 3d  |und..P"icfore% =|
00000100  20 32 3a 20 f4 20 69 63  6f 6e 20 66 6f 72 65 67  | 2: . icon foreg|
00000110  72 6f 75 6e 64 0d 00 5a  1f 77 69 6e 62 61 63 6b  |round..Z.winback|
00000120  25 20 3d 20 34 3a 20 f4  20 77 69 6e 64 6f 77 20  |% = 4: . window |
00000130  62 61 63 6b 0d 00 64 23  62 6f 78 66 6f 72 65 25  |back..d#boxfore%|
00000140  20 3d 20 31 31 3a 20 f4  20 62 6f 78 20 66 6f 72  | = 11: . box for|
00000150  65 67 72 6f 75 6e 64 0d  00 6e 38 73 70 65 65 64  |eground..n8speed|
00000160  25 20 3d 20 32 30 3a 20  f4 20 43 65 6e 74 69 73  |% = 20: . Centis|
00000170  65 63 6f 6e 64 73 20 62  65 74 77 65 65 6e 20 77  |econds between w|
00000180  69 6e 64 6f 77 20 6d 6f  76 65 6d 65 6e 74 73 0d  |indow movements.|
00000190  00 78 37 6d 61 70 73 70  65 65 64 25 20 3d 20 31  |.x7mapspeed% = 1|
000001a0  30 30 3a 20 f4 20 43 65  6e 74 69 73 65 63 6f 6e  |00: . Centisecon|
000001b0  64 73 20 62 65 74 77 65  65 6e 20 6d 61 70 20 75  |ds between map u|
000001c0  70 64 61 74 65 73 0d 00  82 2b 61 62 73 6f 25 20  |pdates...+abso% |
000001d0  3d 20 b9 20 3a 20 f4 20  4f 6e 20 66 6f 72 20 6f  |= . : . On for o|
000001e0  6e 63 65 20 6f 6e 6c 79  20 6d 6f 76 65 6d 65 6e  |nce only movemen|
000001f0  74 0d 00 8c 2b 73 25 20  3d 20 34 20 3a 20 f4 20  |t...+s% = 4 : . |
00000200  73 68 69 66 74 20 61 6d  6f 75 6e 74 20 66 6f 72  |shift amount for|
00000210  20 76 69 65 77 20 77 69  6e 64 6f 77 0d 00 96 04  | view window....|
00000220  0d 00 a0 21 2a 25 52 4d  4c 6f 61 64 20 3c 4f 62  |...!*%RMLoad <Ob|
00000230  65 79 24 44 69 72 3e 2e  4c 61 72 67 65 6e 65 73  |ey$Dir>.Largenes|
00000240  73 0d 00 aa 1e 2a 25 52  4d 4c 6f 61 64 20 3c 4f  |s....*%RMLoad <O|
00000250  62 65 79 24 44 69 72 3e  2e 6c 6d 6f 75 73 65 0d  |bey$Dir>.lmouse.|
00000260  00 b4 04 0d 00 be 26 6d  73 67 66 69 6c 24 3d 22  |......&msgfil$="|
00000270  3c 4c 61 72 67 65 6e 65  73 73 24 44 69 72 3e 2e  |<Largeness$Dir>.|
00000280  4d 65 73 73 61 67 65 73  22 0d 00 c8 37 c8 99 20  |Messages"...7.. |
00000290  22 4d 65 73 73 61 67 65  54 72 61 6e 73 5f 46 69  |"MessageTrans_Fi|
000002a0  6c 65 49 6e 66 6f 22 2c  2c 6d 73 67 66 69 6c 24  |leInfo",,msgfil$|
000002b0  20 b8 20 66 6c 61 67 73  25 2c 2c 73 69 7a 65 25  | . flags%,,size%|
000002c0  0d 00 d2 17 de 20 6d 73  67 66 69 6c 65 62 75 66  |..... msgfilebuf|
000002d0  25 20 73 69 7a 65 25 0d  00 dc 19 de 20 6d 73 67  |% size%..... msg|
000002e0  66 69 6c 25 20 31 37 2b  a9 6d 73 67 66 69 6c 24  |fil% 17+.msgfil$|
000002f0  0d 00 e6 19 24 28 6d 73  67 66 69 6c 25 2b 31 36  |....$(msgfil%+16|
00000300  29 3d 6d 73 67 66 69 6c  24 0d 00 f0 3d c8 99 20  |)=msgfil$...=.. |
00000310  22 4d 65 73 73 61 67 65  54 72 61 6e 73 5f 4f 70  |"MessageTrans_Op|
00000320  65 6e 46 69 6c 65 22 2c  6d 73 67 66 69 6c 25 2c  |enFile",msgfil%,|
00000330  6d 73 67 66 69 6c 25 2b  31 36 2c 6d 73 67 66 69  |msgfil%+16,msgfi|
00000340  6c 65 62 75 66 25 0d 00  fa 3e c8 99 20 22 4f 53  |lebuf%...>.. "OS|
00000350  5f 53 57 49 4e 75 6d 62  65 72 46 72 6f 6d 53 74  |_SWINumberFromSt|
00000360  72 69 6e 67 22 2c 20 2c  20 22 4d 65 73 73 61 67  |ring", , "Messag|
00000370  65 54 72 61 6e 73 5f 4c  6f 6f 6b 75 70 22 20 b8  |eTrans_Lookup" .|
00000380  20 6d 6c 25 0d 01 04 04  0d 01 0e 21 de 20 74 61  | ml%.......!. ta|
00000390  73 6b 69 64 25 34 3a 20  24 74 61 73 6b 69 64 25  |skid%4: $taskid%|
000003a0  20 3d 20 22 54 41 53 4b  22 0d 01 18 45 c8 99 20  | = "TASK"...E.. |
000003b0  22 57 69 6d 70 5f 49 6e  69 74 69 61 6c 69 73 65  |"Wimp_Initialise|
000003c0  22 2c 20 32 30 30 2c 20  21 74 61 73 6b 69 64 25  |", 200, !taskid%|
000003d0  2c 20 a4 6d 65 73 73 28  22 74 61 73 6b 6e 61 6d  |, .mess("tasknam|
000003e0  65 22 29 20 b8 20 76 65  72 73 69 6f 6e 25 0d 01  |e") . version%..|
000003f0  22 0f 6d 61 78 68 25 20  3d 20 31 30 30 0d 01 2c  |".maxh% = 100..,|
00000400  12 de 20 68 62 25 20 6d  61 78 68 25 2a 32 34 0d  |.. hb% maxh%*24.|
00000410  01 36 0b 77 25 20 3d 20  2d 31 0d 01 40 15 de 20  |.6.w% = -1..@.. |
00000420  71 25 20 31 30 30 30 2c  20 72 25 20 32 35 36 0d  |q% 1000, r% 256.|
00000430  01 4a 10 74 65 78 74 73  69 7a 65 3d 35 30 30 0d  |.J.textsize=500.|
00000440  01 54 16 de 20 74 65 78  74 70 6f 73 20 74 65 78  |.T.. textpos tex|
00000450  74 73 69 7a 65 0d 01 5e  1c 74 65 78 74 65 6e 64  |tsize..^.textend|
00000460  3d 74 65 78 74 70 6f 73  2b 74 65 78 74 73 69 7a  |=textpos+textsiz|
00000470  65 0d 01 68 09 f2 6d 6f  64 65 0d 01 72 04 0d 01  |e..h..mode..r...|
00000480  7c 24 ee 20 85 20 ee 20  85 20 87 3a 20 f2 65 72  ||$. . . . .: .er|
00000490  72 6f 72 62 6f 78 3a 20  f2 66 69 6e 69 73 68 3a  |rorbox: .finish:|
000004a0  20 e0 0d 01 86 04 0d 01  90 15 f2 6c 6f 61 64 74  | ..........loadt|
000004b0  28 22 69 6e 66 6f 22 2c  71 25 29 0d 01 9a 2d c8  |("info",q%)...-.|
000004c0  99 20 22 57 69 6d 70 5f  43 72 65 61 74 65 57 69  |. "Wimp_CreateWi|
000004d0  6e 64 6f 77 22 2c 20 2c  20 71 25 20 b8 20 69 6e  |ndow", , q% . in|
000004e0  66 6f 77 69 6e 64 6f 77  0d 01 a4 04 0d 01 ae 14  |fowindow........|
000004f0  de 20 6d 65 6e 75 20 28  32 38 2b 32 2a 32 34 29  |. menu (28+2*24)|
00000500  0d 01 b8 4d 24 6d 65 6e  75 3d a4 6d 65 73 73 28  |...M$menu=.mess(|
00000510  22 6d 74 69 74 6c 65 22  29 3a 20 6d 65 6e 75 21  |"mtitle"): menu!|
00000520  31 32 3d 26 37 30 32 30  37 3a 20 6d 65 6e 75 21  |12=&70207: menu!|
00000530  31 36 3d 31 39 32 3a 20  6d 65 6e 75 21 32 30 3d  |16=192: menu!20=|
00000540  34 34 3a 20 6d 65 6e 75  21 32 34 3d 30 0d 01 c2  |44: menu!24=0...|
00000550  50 6d 65 6e 75 21 32 38  3d 26 30 30 3a 20 6d 65  |Pmenu!28=&00: me|
00000560  6e 75 21 33 32 3d 69 6e  66 6f 77 69 6e 64 6f 77  |nu!32=infowindow|
00000570  3a 20 6d 65 6e 75 21 33  36 3d 26 37 30 30 30 30  |: menu!36=&70000|
00000580  31 31 3a 20 24 28 6d 65  6e 75 2b 34 30 29 3d a4  |11: $(menu+40)=.|
00000590  6d 65 73 73 28 22 6d 69  6e 66 6f 22 29 0d 01 cc  |mess("minfo")...|
000005a0  48 6d 65 6e 75 21 35 32  3d 26 38 30 3a 20 6d 65  |Hmenu!52=&80: me|
000005b0  6e 75 21 35 36 3d 2d 31  3a 20 6d 65 6e 75 21 36  |nu!56=-1: menu!6|
000005c0  30 3d 26 37 30 30 30 30  31 31 3a 20 24 28 6d 65  |0=&7000011: $(me|
000005d0  6e 75 2b 36 34 29 3d a4  6d 65 73 73 28 22 6d 71  |nu+64)=.mess("mq|
000005e0  75 69 74 22 29 0d 01 d6  04 0d 01 e0 0b 71 25 21  |uit")........q%!|
000005f0  30 3d 2d 31 0d 01 ea 0a  71 25 21 34 3d 30 0d 01  |0=-1....q%!4=0..|
00000600  f4 0a 71 25 21 38 3d 30  0d 01 fe 0c 71 25 21 31  |..q%!8=0....q%!1|
00000610  32 3d 38 36 0d 02 08 0c  71 25 21 31 36 3d 36 38  |2=86....q%!16=68|
00000620  0d 02 12 13 71 25 21 32  30 3d 26 31 37 30 30 33  |....q%!20=&17003|
00000630  30 30 41 0d 02 1c 19 24  28 71 25 2b 32 34 29 3d  |00A....$(q%+24)=|
00000640  22 21 6c 61 72 67 65 6e  65 73 73 22 0d 02 26 27  |"!largeness"..&'|
00000650  c8 99 20 22 57 69 6d 70  5f 43 72 65 61 74 65 49  |.. "Wimp_CreateI|
00000660  63 6f 6e 22 2c 20 2c 71  25 20 b8 20 62 61 72 69  |con", ,q% . bari|
00000670  63 6f 6e 0d 02 30 04 0d  02 3a 04 0d 02 44 19 f2  |con..0...:...D..|
00000680  6c 6f 61 64 74 28 22 77  69 6e 64 6f 77 22 2c 71  |loadt("window",q|
00000690  25 2b 34 29 0d 02 4e 11  71 25 21 34 20 2d 3d 20  |%+4)..N.q%!4 -= |
000006a0  31 30 30 30 30 0d 02 58  12 71 25 21 31 32 20 2d  |10000..X.q%!12 -|
000006b0  3d 20 31 30 30 30 30 0d  02 62 11 71 25 21 33 32  |= 10000..b.q%!32|
000006c0  20 2b 3d 20 26 38 30 30  0d 02 6c 27 c8 99 20 22  | += &800..l'.. "|
000006d0  57 69 6d 70 5f 43 72 65  61 74 65 57 69 6e 64 6f  |Wimp_CreateWindo|
000006e0  77 22 2c 20 2c 20 71 25  2b 34 20 b8 20 42 25 0d  |w", , q%+4 . B%.|
000006f0  02 76 04 0d 02 80 04 0d  02 8a 32 74 77 66 25 20  |.v........2twf% |
00000700  3d 20 26 30 30 36 30 32  34 20 2b 20 28 69 63 66  |= &006024 + (icf|
00000710  6f 72 65 25 3c 3c 32 34  29 20 2b 20 28 69 63 62  |ore%<<24) + (icb|
00000720  61 63 6b 25 3c 3c 32 38  29 0d 02 94 19 f2 6c 6f  |ack%<<28).....lo|
00000730  61 64 74 28 22 77 69 6e  64 6f 77 22 2c 71 25 2b  |adt("window",q%+|
00000740  34 29 0d 02 9e 25 71 25  21 34 20 3d 20 72 6f 73  |4)...%q%!4 = ros|
00000750  25 20 2d 20 34 38 20 2d  20 28 71 25 21 31 32 20  |% - 48 - (q%!12 |
00000760  2d 20 71 25 21 34 29 0d  02 a8 15 71 25 21 31 32  |- q%!4)....q%!12|
00000770  20 3d 20 72 6f 73 25 20  2d 20 34 38 0d 02 b2 1e  | = ros% - 48....|
00000780  71 25 21 31 36 20 3d 20  31 38 30 20 2b 20 71 25  |q%!16 = 180 + q%|
00000790  21 31 36 20 2d 20 71 25  21 38 0d 02 bc 0e 71 25  |!16 - q%!8....q%|
000007a0  21 38 20 3d 20 31 38 30  0d 02 c6 14 71 25 3f 33  |!8 = 180....q%?3|
000007b0  39 20 3d 20 77 69 6e 62  61 63 6b 25 0d 02 d0 27  |9 = winback%...'|
000007c0  c8 99 20 22 57 69 6d 70  5f 43 72 65 61 74 65 57  |.. "Wimp_CreateW|
000007d0  69 6e 64 6f 77 22 2c 20  2c 20 71 25 2b 34 20 b8  |indow", , q%+4 .|
000007e0  20 4c 25 0d 02 da 04 0d  02 e4 0d f2 63 6c 65 61  | L%.........clea|
000007f0  72 6d 61 70 0d 02 ee 04  0d 02 f8 0d 6d 61 70 6f  |rmap........mapo|
00000800  6e 20 3d 20 a3 0d 03 02  0e 6d 61 70 74 69 6d 65  |n = .....maptime|
00000810  25 3d 30 0d 03 0c 0e 64  72 61 67 67 69 6e 67 3d  |%=0....dragging=|
00000820  30 0d 03 16 0d 72 65 6d  61 70 20 3d 20 a3 0d 03  |0....remap = ...|
00000830  20 04 0d 03 2a 05 f5 0d  03 34 28 20 20 c8 99 20  | ...*....4(  .. |
00000840  22 4f 53 5f 52 65 61 64  4d 6f 6e 6f 74 6f 6e 69  |"OS_ReadMonotoni|
00000850  63 54 69 6d 65 22 20 b8  20 74 69 6d 65 25 3a 0d  |cTime" . time%:.|
00000860  03 3e 18 20 20 e7 20 74  69 6d 65 25 3e 6d 61 70  |.>.  . time%>map|
00000870  74 69 6d 65 25 20 8c 0d  03 48 1a 20 20 20 20 e7  |time% ...H.    .|
00000880  20 6d 61 70 6f 6e 20 8c  20 f2 6d 61 6b 65 6d 61  | mapon . .makema|
00000890  70 0d 03 52 24 20 20 20  20 6d 61 70 74 69 6d 65  |p..R$    maptime|
000008a0  25 20 3d 20 74 69 6d 65  25 20 2b 20 6d 61 70 73  |% = time% + maps|
000008b0  70 65 65 64 25 0d 03 5c  07 20 20 cd 0d 03 66 1a  |peed%..\.  ...f.|
000008c0  20 20 e7 20 64 72 61 67  67 69 6e 67 20 8c 20 74  |  . dragging . t|
000008d0  69 6d 65 25 3d 30 0d 03  70 32 20 20 c8 99 20 22  |ime%=0..p2  .. "|
000008e0  57 69 6d 70 5f 50 6f 6c  6c 49 64 6c 65 22 2c 20  |Wimp_PollIdle", |
000008f0  30 2c 20 71 25 2c 20 74  69 6d 65 25 2b 73 70 65  |0, q%, time%+spe|
00000900  65 64 25 20 b8 20 41 25  0d 03 7a 0d 20 20 c8 8e  |ed% . A%..z.  ..|
00000910  20 41 25 20 ca 0d 03 84  0a 20 20 c9 20 30 3a 0d  | A% .....  . 0:.|
00000920  03 8e 14 20 20 20 20 e7  20 64 72 61 67 67 69 6e  |...    . draggin|
00000930  67 20 8c 0d 03 98 28 20  20 20 20 20 20 c8 99 20  |g ....(      .. |
00000940  22 57 69 6d 70 5f 47 65  74 50 6f 69 6e 74 65 72  |"Wimp_GetPointer|
00000950  49 6e 66 6f 22 2c 20 2c  20 71 25 0d 03 a2 12 20  |Info", , q%.... |
00000960  20 20 20 20 20 71 25 21  30 2b 3d 64 78 0d 03 ac  |     q%!0+=dx...|
00000970  12 20 20 20 20 20 20 71  25 21 34 2b 3d 64 79 0d  |.      q%!4+=dy.|
00000980  03 b6 11 20 20 20 20 20  20 f2 64 6f 64 72 61 67  |...      .dodrag|
00000990  0d 03 c0 09 20 20 20 20  cc 0d 03 ca 12 20 20 20  |....    .....   |
000009a0  20 20 20 f2 64 6f 6e 75  64 67 65 0d 03 d4 2b 20  |   .donudge...+ |
000009b0  20 20 20 20 20 e7 20 72  65 6d 61 70 20 8c 20 6d  |     . remap . m|
000009c0  61 70 74 69 6d 65 25 20  3d 20 30 3a 20 72 65 6d  |aptime% = 0: rem|
000009d0  61 70 20 3d 20 a3 0d 03  de 09 20 20 20 20 cd 0d  |ap = .....    ..|
000009e0  03 e8 25 20 20 c9 20 32  3a 20 c8 99 20 22 57 69  |..%  . 2: .. "Wi|
000009f0  6d 70 5f 4f 70 65 6e 57  69 6e 64 6f 77 22 2c 20  |mp_OpenWindow", |
00000a00  2c 20 71 25 0d 03 f2 26  20 20 c9 20 33 3a 20 c8  |, q%...&  . 3: .|
00000a10  99 20 22 57 69 6d 70 5f  43 6c 6f 73 65 57 69 6e  |. "Wimp_CloseWin|
00000a20  64 6f 77 22 2c 20 2c 20  71 25 0d 03 fc 11 20 20  |dow", , q%....  |
00000a30  20 20 6d 61 70 6f 6e 20  3d 20 a3 0d 04 06 0a 20  |  mapon = ..... |
00000a40  20 c9 20 36 3a 0d 04 10  16 20 20 20 20 62 75 74  | . 6:....    but|
00000a50  74 6f 6e 73 20 3d 20 71  25 21 38 0d 04 1a 14 20  |tons = q%!8.... |
00000a60  20 20 20 e7 20 71 25 21  31 32 3d 2d 32 20 8c 0d  |   . q%!12=-2 ..|
00000a70  04 24 16 20 20 20 20 20  20 c8 8e 20 62 75 74 74  |.$.      .. butt|
00000a80  6f 6e 73 20 ca 0d 04 2e  3c 20 20 20 20 20 20 c9  |ons ....<      .|
00000a90  20 32 3a 20 c8 99 20 22  57 69 6d 70 5f 43 72 65  | 2: .. "Wimp_Cre|
00000aa0  61 74 65 4d 65 6e 75 22  2c 20 2c 20 6d 65 6e 75  |ateMenu", , menu|
00000ab0  2c 20 71 25 21 30 2d 36  34 2c 39 36 2b 32 2a 34  |, q%!0-64,96+2*4|
00000ac0  34 0d 04 38 0e 20 20 20  20 20 20 c9 20 34 3a 0d  |4..8.      . 4:.|
00000ad0  04 42 17 20 20 20 20 20  20 20 20 20 20 6d 61 70  |.B.          map|
00000ae0  6f 6e 20 3d 20 b9 0d 04  4c 14 20 20 20 20 20 20  |on = ...L.      |
00000af0  20 20 20 20 63 25 20 3d  20 b9 0d 04 56 16 20 20  |    c% = ...V.  |
00000b00  20 20 20 20 20 20 20 20  f2 6d 61 6b 65 6d 61 70  |        .makemap|
00000b10  0d 04 60 16 20 20 20 20  20 20 20 20 20 20 21 71  |..`.          !q|
00000b20  25 20 3d 20 4c 25 0d 04  6a 2c 20 20 20 20 20 20  |% = L%..j,      |
00000b30  20 20 20 20 c8 99 20 22  57 69 6d 70 5f 47 65 74  |    .. "Wimp_Get|
00000b40  57 69 6e 64 6f 77 53 74  61 74 65 22 2c 20 2c 20  |WindowState", , |
00000b50  71 25 0d 04 74 3b 20 20  20 20 20 20 20 20 20 20  |q%..t;          |
00000b60  e7 20 71 25 21 34 3c 30  20 84 20 71 25 21 38 3c  |. q%!4<0 . q%!8<|
00000b70  30 20 84 20 71 25 21 31  32 3e 72 6f 73 25 20 84  |0 . q%!12>ros% .|
00000b80  20 71 25 21 31 36 3e 74  6f 73 25 20 8c 0d 04 7e  | q%!16>tos% ...~|
00000b90  31 20 20 20 20 20 20 20  20 20 20 20 20 71 25 21  |1            q%!|
00000ba0  34 20 3d 20 72 6f 73 25  20 2d 20 34 38 20 2d 20  |4 = ros% - 48 - |
00000bb0  28 71 25 21 31 32 20 2d  20 71 25 21 34 29 0d 04  |(q%!12 - q%!4)..|
00000bc0  88 21 20 20 20 20 20 20  20 20 20 20 20 20 71 25  |.!            q%|
00000bd0  21 31 32 20 3d 20 72 6f  73 25 20 2d 20 34 38 0d  |!12 = ros% - 48.|
00000be0  04 92 2a 20 20 20 20 20  20 20 20 20 20 20 20 71  |..*            q|
00000bf0  25 21 31 36 20 3d 20 31  38 30 20 2b 20 71 25 21  |%!16 = 180 + q%!|
00000c00  31 36 20 2d 20 71 25 21  38 0d 04 9c 1a 20 20 20  |16 - q%!8....   |
00000c10  20 20 20 20 20 20 20 20  20 71 25 21 38 20 3d 20  |         q%!8 = |
00000c20  31 38 30 0d 04 a6 0f 20  20 20 20 20 20 20 20 20  |180....         |
00000c30  20 cd 0d 04 b0 18 20 20  20 20 20 20 20 20 20 20  | .....          |
00000c40  71 25 21 32 38 20 3d 20  2d 31 0d 04 ba 28 20 20  |q%!28 = -1...(  |
00000c50  20 20 20 20 20 20 20 20  c8 99 20 22 57 69 6d 70  |        .. "Wimp|
00000c60  5f 4f 70 65 6e 57 69 6e  64 6f 77 22 2c 20 2c 20  |_OpenWindow", , |
00000c70  71 25 0d 04 c4 18 20 20  20 20 20 20 c9 20 31 3a  |q%....      . 1:|
00000c80  20 f2 72 65 74 72 69 65  76 65 0d 04 ce 0b 20 20  | .retrieve....  |
00000c90  20 20 20 20 cb 0d 04 d8  09 20 20 20 20 cc 0d 04  |    .....    ...|
00000ca0  e2 20 f4 20 59 75 63 68  2c 20 77 68 61 74 20 68  |. . Yuch, what h|
00000cb0  6f 72 72 69 62 6c 65 20  73 74 79 6c 65 21 0d 04  |orrible style!..|
00000cc0  ec 1a 20 20 20 20 20 20  64 72 61 67 69 63 6f 6e  |..      dragicon|
00000cd0  20 3d 20 71 25 21 31 36  0d 04 f6 18 20 20 20 20  | = q%!16....    |
00000ce0  20 20 e7 20 62 75 74 74  6f 6e 73 3c 31 36 20 8c  |  . buttons<16 .|
00000cf0  0d 05 00 1a 20 20 20 20  20 20 20 20 64 72 61 67  |....        drag|
00000d00  77 69 6e 64 6f 77 20 3d  20 30 0d 05 0a 2b 20 20  |window = 0...+  |
00000d10  20 20 20 20 20 20 e7 20  64 72 61 67 69 63 6f 6e  |      . dragicon|
00000d20  3e 30 20 80 20 64 72 61  67 69 63 6f 6e 3c 6d 61  |>0 . dragicon<ma|
00000d30  78 68 25 20 8c 0d 05 14  22 20 20 20 20 20 20 20  |xh% ...."       |
00000d40  20 20 20 7a 25 20 3d 20  68 62 25 2b 64 72 61 67  |   z% = hb%+drag|
00000d50  69 63 6f 6e 2a 32 34 0d  05 1e 1f 20 20 20 20 20  |icon*24....     |
00000d60  20 20 20 20 20 64 72 61  67 77 69 6e 64 6f 77 20  |     dragwindow |
00000d70  3d 20 7a 25 21 30 0d 05  28 0d 20 20 20 20 20 20  |= z%!0..(.      |
00000d80  20 20 cd 0d 05 32 1c 20  20 20 20 20 20 20 20 e7  |  ...2.        .|
00000d90  20 64 72 61 67 77 69 6e  64 6f 77 3d 30 20 8c 0d  | dragwindow=0 ..|
00000da0  05 3c 16 20 20 20 20 20  20 20 20 20 20 7a 25 20  |.<.          z% |
00000db0  3d 20 68 62 25 0d 05 46  14 20 20 20 20 20 20 20  |= hb%..F.       |
00000dc0  20 20 20 70 78 20 3d 20  30 0d 05 50 14 20 20 20  |   px = 0..P.   |
00000dd0  20 20 20 20 20 20 20 70  79 20 3d 20 30 0d 05 5a  |       py = 0..Z|
00000de0  0d 20 20 20 20 20 20 20  20 cd 0d 05 64 16 20 20  |.        ...d.  |
00000df0  20 20 20 20 20 20 72 25  21 33 32 20 3d 20 4c 25  |      r%!32 = L%|
00000e00  0d 05 6e 2d 20 20 20 20  20 20 20 20 c8 99 20 22  |..n-        .. "|
00000e10  57 69 6d 70 5f 47 65 74  57 69 6e 64 6f 77 53 74  |Wimp_GetWindowSt|
00000e20  61 74 65 22 2c 20 2c 20  72 25 2b 33 32 0d 05 78  |ate", , r%+32..x|
00000e30  37 20 20 20 20 20 20 20  20 e7 20 64 72 61 67 77  |7        . dragw|
00000e40  69 6e 64 6f 77 3c 3e 30  20 80 20 28 62 75 74 74  |indow<>0 . (butt|
00000e50  6f 6e 73 3d 34 20 84 20  62 75 74 74 6f 6e 73 3d  |ons=4 . buttons=|
00000e60  31 29 20 8c 0d 05 82 1f  20 20 20 20 20 20 20 20  |1) .....        |
00000e70  20 20 71 25 21 30 20 3d  20 64 72 61 67 77 69 6e  |  q%!0 = dragwin|
00000e80  64 6f 77 0d 05 8c 2c 20  20 20 20 20 20 20 20 20  |dow...,         |
00000e90  20 c8 99 20 22 57 69 6d  70 5f 47 65 74 57 69 6e  | .. "Wimp_GetWin|
00000ea0  64 6f 77 53 74 61 74 65  22 2c 20 2c 20 71 25 0d  |dowState", , q%.|
00000eb0  05 96 4d 20 20 20 20 20  20 20 20 20 20 e7 20 62  |..M          . b|
00000ec0  75 74 74 6f 6e 73 3d 31  20 8c 20 71 25 21 32 38  |uttons=1 . q%!28|
00000ed0  20 3d 20 2d 32 20 8b 20  e7 20 72 25 21 36 30 3d  | = -2 . . r%!60=|
00000ee0  2d 31 20 8c 20 71 25 21  32 38 20 3d 20 4c 25 20  |-1 . q%!28 = L% |
00000ef0  8b 20 71 25 21 32 38 20  3d 20 2d 31 0d 05 a0 36  |. q%!28 = -1...6|
00000f00  20 20 20 20 20 20 20 20  20 20 c8 99 20 22 57 69  |          .. "Wi|
00000f10  6d 70 5f 53 65 6e 64 4d  65 73 73 61 67 65 22 2c  |mp_SendMessage",|
00000f20  20 32 2c 20 71 25 2c 20  64 72 61 67 77 69 6e 64  | 2, q%, dragwind|
00000f30  6f 77 0d 05 aa 17 20 20  20 20 20 20 20 20 20 20  |ow....          |
00000f40  72 65 6d 61 70 20 3d 20  b9 0d 05 b4 0d 20 20 20  |remap = .....   |
00000f50  20 20 20 20 20 cd 0d 05  be 1e 20 20 20 20 20 20  |     .....      |
00000f60  20 20 6f 78 20 3d 20 72  25 21 33 36 20 2d 20 72  |  ox = r%!36 - r|
00000f70  25 21 35 32 0d 05 c8 1e  20 20 20 20 20 20 20 20  |%!52....        |
00000f80  6f 79 20 3d 20 72 25 21  34 38 20 2d 20 72 25 21  |oy = r%!48 - r%!|
00000f90  35 36 0d 05 d2 1d 20 20  20 20 20 20 20 20 72 25  |56....        r%|
00000fa0  21 32 30 20 3d 20 7a 25  21 34 20 2b 20 6f 78 0d  |!20 = z%!4 + ox.|
00000fb0  05 dc 1d 20 20 20 20 20  20 20 20 72 25 21 32 34  |...        r%!24|
00000fc0  20 3d 20 7a 25 21 38 20  2b 20 6f 79 0d 05 e6 1e  | = z%!8 + oy....|
00000fd0  20 20 20 20 20 20 20 20  72 25 21 32 38 20 3d 20  |        r%!28 = |
00000fe0  7a 25 21 31 32 20 2b 20  6f 78 0d 05 f0 1e 20 20  |z%!12 + ox....  |
00000ff0  20 20 20 20 20 20 72 25  21 33 32 20 3d 20 7a 25  |      r%!32 = z%|
00001000  21 31 36 20 2b 20 6f 79  0d 05 fa 1a 20 20 20 20  |!16 + oy....    |
00001010  20 20 20 20 72 25 21 33  36 20 3d 20 2d 33 32 37  |    r%!36 = -327|
00001020  36 37 0d 06 04 1a 20 20  20 20 20 20 20 20 72 25  |67....        r%|
00001030  21 34 30 20 3d 20 2d 33  32 37 36 37 0d 06 0e 19  |!40 = -32767....|
00001040  20 20 20 20 20 20 20 20  72 25 21 34 34 20 3d 20  |        r%!44 = |
00001050  33 32 37 36 37 0d 06 18  19 20 20 20 20 20 20 20  |32767....       |
00001060  20 72 25 21 34 38 20 3d  20 33 32 37 36 37 0d 06  | r%!48 = 32767..|
00001070  22 0b 20 20 20 20 20 20  cd 0d 06 2c 25 20 20 20  |".      ...,%   |
00001080  20 20 20 e7 20 62 75 74  74 6f 6e 73 3e 3d 31 36  |   . buttons>=16|
00001090  20 84 20 62 75 74 74 6f  6e 73 3d 32 20 8c 0d 06  | . buttons=2 ...|
000010a0  36 19 20 20 20 20 20 20  20 20 64 78 3d 72 25 21  |6.        dx=r%!|
000010b0  32 30 2d 71 25 21 30 0d  06 40 19 20 20 20 20 20  |20-q%!0..@.     |
000010c0  20 20 20 64 79 3d 72 25  21 32 34 2d 71 25 21 34  |   dy=r%!24-q%!4|
000010d0  0d 06 4a 15 20 20 20 20  20 20 20 20 72 25 21 31  |..J.        r%!1|
000010e0  36 20 3d 20 35 0d 06 54  26 20 20 20 20 20 20 20  |6 = 5..T&       |
000010f0  20 c8 99 20 22 57 69 6d  70 5f 44 72 61 67 42 6f  | .. "Wimp_DragBo|
00001100  78 22 2c 20 2c 20 72 25  2b 31 32 0d 06 5e 32 20  |x", , r%+12..^2 |
00001110  20 20 20 20 20 20 20 c8  99 20 22 4f 53 5f 42 79  |       .. "OS_By|
00001120  74 65 22 2c 20 31 36 31  2c 20 31 39 37 20 b8 20  |te", 161, 197 . |
00001130  2c 20 2c 20 77 69 6d 70  66 6c 61 67 73 0d 06 68  |, , wimpflags..h|
00001140  2a 20 20 20 20 20 20 20  20 e7 20 77 69 6d 70 66  |*        . wimpf|
00001150  6c 61 67 73 20 80 20 31  20 8c 20 64 72 61 67 67  |lags . 1 . dragg|
00001160  69 6e 67 20 3d 20 b9 0d  06 72 0b 20 20 20 20 20  |ing = ...r.     |
00001170  20 cd 0d 06 7c 09 20 20  20 20 cd 0d 06 86 0a 20  | ...|.    ..... |
00001180  20 c9 20 37 3a 0d 06 90  1f 20 20 20 20 c8 99 20  | . 7:....    .. |
00001190  22 57 69 6d 70 5f 44 72  61 67 42 6f 78 22 2c 20  |"Wimp_DragBox", |
000011a0  2c 20 2d 31 0d 06 9a 0f  20 20 20 20 f2 64 6f 64  |, -1....    .dod|
000011b0  72 61 67 0d 06 a4 14 20  20 20 20 64 72 61 67 67  |rag....    dragg|
000011c0  69 6e 67 20 3d 20 a3 0d  06 ae 0a 20 20 c9 20 39  |ing = .....  . 9|
000011d0  3a 0d 06 b8 11 20 20 20  20 c8 8e 20 71 25 21 30  |:....    .. q%!0|
000011e0  20 ca 0d 06 c2 0c 20 20  20 20 c9 20 30 3a 0d 06  | .....    . 0:..|
000011f0  cc 17 20 20 20 20 c9 20  31 3a 20 f2 66 69 6e 69  |..    . 1: .fini|
00001200  73 68 3a 20 e0 0d 06 d6  09 20 20 20 20 cb 0d 06  |sh: .....    ...|
00001210  e0 0e 20 20 c9 20 31 37  2c 20 31 38 0d 06 ea 12  |..  . 17, 18....|
00001220  20 20 20 20 c8 8e 20 71  25 21 31 36 20 ca 0d 06  |    .. q%!16 ...|
00001230  f4 17 20 20 20 20 c9 20  30 3a 20 f2 66 69 6e 69  |..    . 0: .fini|
00001240  73 68 3a 20 e0 0d 06 fe  11 20 20 20 20 c9 20 26  |sh: .....    . &|
00001250  34 30 30 43 31 3a 0d 07  08 0f 20 20 20 20 20 20  |400C1:....      |
00001260  f2 6d 6f 64 65 0d 07 12  13 20 20 20 20 20 20 f2  |.mode....      .|
00001270  63 6c 65 61 72 6d 61 70  0d 07 1c 12 20 20 20 20  |clearmap....    |
00001280  20 20 f2 6d 61 6b 65 6d  61 70 0d 07 26 09 20 20  |  .makemap..&.  |
00001290  20 20 cb 0d 07 30 07 20  20 cb 0d 07 3a 07 fd 20  |  ...0.  ...:.. |
000012a0  a3 0d 07 44 04 0d 07 4e  0d dd 20 f2 64 6f 64 72  |...D...N.. .dodr|
000012b0  61 67 0d 07 58 0e 71 25  21 30 20 2d 3d 20 6f 78  |ag..X.q%!0 -= ox|
000012c0  0d 07 62 0e 71 25 21 34  20 2d 3d 20 6f 79 0d 07  |..b.q%!4 -= oy..|
000012d0  6c 15 e7 20 64 72 61 67  77 69 6e 64 6f 77 3c 3e  |l.. dragwindow<>|
000012e0  30 20 8c 0d 07 76 17 20  20 72 25 21 30 20 3d 20  |0 ...v.  r%!0 = |
000012f0  64 72 61 67 77 69 6e 64  6f 77 0d 07 80 24 20 20  |dragwindow...$  |
00001300  c8 99 20 22 57 69 6d 70  5f 47 65 74 57 69 6e 64  |.. "Wimp_GetWind|
00001310  6f 77 53 74 61 74 65 22  2c 20 2c 20 72 25 0d 07  |owState", , r%..|
00001320  8a 2b 20 20 72 25 21 31  32 20 3d 20 28 71 25 21  |.+  r%!12 = (q%!|
00001330  30 20 3c 3c 20 73 25 29  20 2b 20 28 72 25 21 31  |0 << s%) + (r%!1|
00001340  32 20 2d 20 72 25 21 34  29 0d 07 94 2b 20 20 72  |2 - r%!4)...+  r|
00001350  25 21 31 36 20 3d 20 28  71 25 21 34 20 3c 3c 20  |%!16 = (q%!4 << |
00001360  73 25 29 20 2b 20 28 72  25 21 31 36 20 2d 20 72  |s%) + (r%!16 - r|
00001370  25 21 38 29 0d 07 9e 16  20 20 6c 78 25 20 3d 20  |%!8)....  lx% = |
00001380  71 25 21 30 20 3c 3c 20  73 25 0d 07 a8 16 20 20  |q%!0 << s%....  |
00001390  6c 79 25 20 3d 20 71 25  21 34 20 3c 3c 20 73 25  |ly% = q%!4 << s%|
000013a0  0d 07 b2 3c 20 20 e7 20  62 75 74 74 6f 6e 73 20  |...<  . buttons |
000013b0  80 20 26 34 30 20 8c 20  e7 20 72 25 21 36 30 3d  |. &40 . . r%!60=|
000013c0  2d 31 20 8c 20 71 25 21  34 34 20 3d 20 4c 25 20  |-1 . q%!44 = L% |
000013d0  8b 20 71 25 21 34 34 20  3d 20 2d 31 0d 07 bc 1f  |. q%!44 = -1....|
000013e0  20 20 e7 20 6c 78 25 3c  3e 72 25 21 34 20 84 20  |  . lx%<>r%!4 . |
000013f0  6c 79 25 3c 3e 72 25 21  38 20 8c 0d 07 c6 12 20  |ly%<>r%!8 ..... |
00001400  20 20 20 72 25 21 34 20  3d 20 6c 78 25 0d 07 d0  |   r%!4 = lx%...|
00001410  12 20 20 20 20 72 25 21  38 20 3d 20 6c 79 25 0d  |.    r%!8 = ly%.|
00001420  07 da 30 20 20 20 20 c8  99 20 22 57 69 6d 70 5f  |..0    .. "Wimp_|
00001430  53 65 6e 64 4d 65 73 73  61 67 65 22 2c 20 32 2c  |SendMessage", 2,|
00001440  20 72 25 2c 20 64 72 61  67 77 69 6e 64 6f 77 0d  | r%, dragwindow.|
00001450  07 e4 11 20 20 20 20 72  65 6d 61 70 20 3d 20 b9  |...    remap = .|
00001460  0d 07 ee 07 20 20 cd 0d  07 f8 05 cc 0d 08 02 17  |....  ..........|
00001470  20 20 6e 78 20 3d 20 28  71 25 21 30 20 3c 3c 20  |  nx = (q%!0 << |
00001480  73 25 29 0d 08 0c 17 20  20 6e 79 20 3d 20 28 71  |s%)....  ny = (q|
00001490  25 21 34 20 3c 3c 20 73  25 29 0d 08 16 30 20 20  |%!4 << s%)...0  |
000014a0  e7 20 6e 78 3c 3e 70 78  20 84 20 6e 78 3c 3e 70  |. nx<>px . nx<>p|
000014b0  79 20 8c 20 f2 6e 75 64  67 65 28 20 6e 78 2d 70  |y . .nudge( nx-p|
000014c0  78 2c 20 6e 79 2d 70 79  20 29 0d 08 20 0d 20 20  |x, ny-py ).. .  |
000014d0  70 78 20 3d 20 6e 78 0d  08 2a 0d 20 20 70 79 20  |px = nx..*.  py |
000014e0  3d 20 6e 79 0d 08 34 05  cd 0d 08 3e 05 e1 0d 08  |= ny..4....>....|
000014f0  48 04 0d 08 52 0b dd 20  f2 6d 6f 64 65 0d 08 5c  |H...R.. .mode..\|
00001500  38 21 71 25 20 3d 20 34  3a 20 71 25 21 34 20 3d  |8!q% = 4: q%!4 =|
00001510  20 35 3a 20 71 25 21 38  20 3d 20 31 31 3a 20 71  | 5: q%!8 = 11: q|
00001520  25 21 31 32 20 3d 20 31  32 3a 20 71 25 21 31 36  |%!12 = 12: q%!16|
00001530  20 3d 20 2d 31 0d 08 66  27 c8 99 20 22 4f 53 5f  | = -1..f'.. "OS_|
00001540  52 65 61 64 56 64 75 56  61 72 69 61 62 6c 65 73  |ReadVduVariables|
00001550  22 2c 20 71 25 2c 20 71  25 2b 32 30 0d 08 70 30  |", q%, q%+20..p0|
00001560  72 6f 73 25 20 3d 20 71  25 21 32 38 2b 31 3c 3c  |ros% = q%!28+1<<|
00001570  71 25 21 32 30 3a 20 74  6f 73 25 20 3d 20 71 25  |q%!20: tos% = q%|
00001580  21 33 32 2b 31 3c 3c 71  25 21 32 34 0d 08 7a 05  |!32+1<<q%!24..z.|
00001590  e1 0d 08 84 05 20 0d 08  8e 0d dd 20 f2 66 69 6e  |..... ..... .fin|
000015a0  69 73 68 0d 08 98 16 2a  25 52 4d 4b 69 6c 6c 20  |ish....*%RMKill |
000015b0  4c 61 72 67 65 6e 65 73  73 0d 08 a2 1b 2a 25 52  |Largeness....*%R|
000015c0  4d 4b 69 6c 6c 20 4c 61  72 67 65 6e 65 73 73 4d  |MKill LargenessM|
000015d0  6f 75 73 65 0d 08 ac 0e  f4 20 71 25 3f 30 20 3d  |ouse..... q%?0 =|
000015e0  20 31 0d 08 b6 0e f4 20  71 25 21 31 20 3d 20 30  | 1..... q%!1 = 0|
000015f0  0d 08 c0 1c f4 20 71 25  21 35 20 3d 20 72 6f 73  |..... q%!5 = ros|
00001600  25 2b 28 74 6f 73 25 3c  3c 31 36 29 0d 08 ca 1b  |%+(tos%<<16)....|
00001610  f4 20 53 59 53 20 22 4f  53 5f 57 6f 72 64 22 2c  |. SYS "OS_Word",|
00001620  20 32 31 2c 20 71 25 0d  08 d4 17 c8 99 20 22 57  | 21, q%...... "W|
00001630  69 6d 70 5f 43 6c 6f 73  65 44 6f 77 6e 22 0d 08  |imp_CloseDown"..|
00001640  de 28 c8 99 20 22 4d 65  73 73 61 67 65 54 72 61  |.(.. "MessageTra|
00001650  6e 73 5f 43 6c 6f 73 65  46 69 6c 65 22 2c 20 6d  |ns_CloseFile", m|
00001660  73 67 66 69 6c 25 0d 08  e8 05 e1 0d 08 f2 05 20  |sgfil%......... |
00001670  0d 08 fc 19 dd 20 f2 6c  6f 61 64 74 28 20 6e 61  |..... .loadt( na|
00001680  6d 65 24 2c 20 71 25 20  29 0d 09 06 0a ea 20 6e  |me$, q% )..... n|
00001690  65 78 74 0d 09 10 39 c8  99 20 22 57 69 6d 70 5f  |ext...9.. "Wimp_|
000016a0  4f 70 65 6e 54 65 6d 70  6c 61 74 65 22 2c 20 2c  |OpenTemplate", ,|
000016b0  20 22 3c 4c 61 72 67 65  6e 65 73 73 24 44 69 72  | "<Largeness$Dir|
000016c0  3e 2e 54 65 6d 70 6c 61  74 65 73 22 0d 09 1a 5a  |>.Templates"...Z|
000016d0  c8 99 20 22 57 69 6d 70  5f 4c 6f 61 64 54 65 6d  |.. "Wimp_LoadTem|
000016e0  70 6c 61 74 65 22 2c 20  2c 20 71 25 2c 20 74 65  |plate", , q%, te|
000016f0  78 74 70 6f 73 2c 20 74  65 78 74 65 6e 64 2c 20  |xtpos, textend, |
00001700  2d 31 2c 20 6e 61 6d 65  24 2c 20 30 20 b8 20 2c  |-1, name$, 0 . ,|
00001710  20 2c 20 74 65 78 74 70  6f 73 2c 20 2c 20 2c 20  | , textpos, , , |
00001720  2c 20 6e 65 78 74 0d 09  24 1b c8 99 20 22 57 69  |, next..$... "Wi|
00001730  6d 70 5f 43 6c 6f 73 65  54 65 6d 70 6c 61 74 65  |mp_CloseTemplate|
00001740  22 0d 09 2e 4e e7 20 6e  65 78 74 20 3d 20 30 20  |"...N. next = 0 |
00001750  8c 20 c8 99 20 6d 6c 25  2c 20 6d 73 67 66 69 6c  |. .. ml%, msgfil|
00001760  25 2c 20 22 74 65 6d 70  65 72 72 22 2c 20 71 25  |%, "temperr", q%|
00001770  2c 20 32 35 36 2c 20 6e  61 6d 65 24 20 b8 20 2c  |, 256, name$ . ,|
00001780  20 2c 20 6b 25 3a 20 85  20 31 2c 20 24 6b 25 0d  | , k%: . 1, $k%.|
00001790  09 38 05 e1 0d 09 42 04  0d 09 4c 0b dd 20 a4 62  |.8....B...L.. .b|
000017a0  61 63 6b 0d 09 56 05 ea  0d 09 60 0c 21 71 25 20  |ack..V....`.!q% |
000017b0  3d 20 42 25 0d 09 6a 22  c8 99 20 22 57 69 6d 70  |= B%..j".. "Wimp|
000017c0  5f 47 65 74 57 69 6e 64  6f 77 53 74 61 74 65 22  |_GetWindowState"|
000017d0  2c 20 2c 20 71 25 0d 09  74 0e 71 25 21 32 38 20  |, , q%..t.q%!28 |
000017e0  3d 20 2d 32 0d 09 7e 1e  c8 99 20 22 57 69 6d 70  |= -2..~... "Wimp|
000017f0  5f 4f 70 65 6e 57 69 6e  64 6f 77 22 2c 20 2c 20  |_OpenWindow", , |
00001800  71 25 0d 09 88 22 c8 99  20 22 57 69 6d 70 5f 47  |q%...".. "Wimp_G|
00001810  65 74 57 69 6e 64 6f 77  53 74 61 74 65 22 2c 20  |etWindowState", |
00001820  2c 20 71 25 0d 09 92 0b  3d 20 71 25 21 32 38 0d  |, q%....= q%!28.|
00001830  09 9c 04 0d 09 a6 0e dd  20 f2 64 6f 6e 75 64 67  |........ .donudg|
00001840  65 0d 09 b0 16 ea 20 64  78 25 2c 20 64 79 25 2c  |e..... dx%, dy%,|
00001850  20 78 25 2c 20 79 25 0d  09 ba 0e f4 20 71 25 3f  | x%, y%..... q%?|
00001860  30 20 3d 20 31 0d 09 c4  16 f4 20 71 25 21 31 20  |0 = 1..... q%!1 |
00001870  3d 20 26 38 30 30 30 38  30 30 30 0d 09 ce 16 f4  |= &80008000.....|
00001880  20 71 25 21 35 20 3d 20  26 37 66 66 66 37 66 66  | q%!5 = &7fff7ff|
00001890  66 0d 09 d8 1b f4 20 53  59 53 20 22 4f 53 5f 57  |f..... SYS "OS_W|
000018a0  6f 72 64 22 2c 20 32 31  2c 20 71 25 0d 09 e2 0c  |ord", 21, q%....|
000018b0  71 25 3f 30 20 3d 20 36  0d 09 ec 18 c8 99 20 22  |q%?0 = 6...... "|
000018c0  4f 53 5f 57 6f 72 64 22  2c 20 32 31 2c 20 71 25  |OS_Word", 21, q%|
000018d0  0d 09 f6 1d 78 25 20 3d  20 28 20 71 25 21 31 20  |....x% = ( q%!1 |
000018e0  3c 3c 20 31 36 20 29 20  3e 3e 20 31 36 0d 0a 00  |<< 16 ) >> 16...|
000018f0  1d 79 25 20 3d 20 28 20  71 25 21 33 20 3c 3c 20  |.y% = ( q%!3 << |
00001900  31 36 20 29 20 3e 3e 20  31 36 0d 0a 0a 3c e7 20  |16 ) >> 16...<. |
00001910  78 25 3c 30 20 8c 20 64  78 25 20 3d 20 2d 78 25  |x%<0 . dx% = -x%|
00001920  20 8b 20 e7 20 78 25 3c  72 6f 73 25 20 8c 20 64  | . . x%<ros% . d|
00001930  78 25 20 3d 20 30 20 8b  20 64 78 25 20 3d 20 72  |x% = 0 . dx% = r|
00001940  6f 73 25 2d 78 25 0d 0a  14 3c e7 20 79 25 3c 30  |os%-x%...<. y%<0|
00001950  20 8c 20 64 79 25 20 3d  20 2d 79 25 20 8b 20 e7  | . dy% = -y% . .|
00001960  20 79 25 3c 74 6f 73 25  20 8c 20 64 79 25 20 3d  | y%<tos% . dy% =|
00001970  20 30 20 8b 20 64 79 25  20 3d 20 74 6f 73 25 2d  | 0 . dy% = tos%-|
00001980  79 25 0d 0a 1e 17 e7 20  64 78 25 3c 3e 30 20 84  |y%..... dx%<>0 .|
00001990  20 64 79 25 3c 3e 30 20  8c 0d 0a 28 0e 20 20 71  | dy%<>0 ...(.  q|
000019a0  25 3f 30 20 3d 20 33 0d  0a 32 13 20 20 71 25 21  |%?0 = 3..2.  q%!|
000019b0  31 20 3d 20 78 25 2b 64  78 25 0d 0a 3c 13 20 20  |1 = x%+dx%..<.  |
000019c0  71 25 21 33 20 3d 20 79  25 2b 64 79 25 0d 0a 46  |q%!3 = y%+dy%..F|
000019d0  24 20 20 e7 20 61 62 73  6f 25 20 8c 20 c8 99 20  |$  . abso% . .. |
000019e0  22 4f 53 5f 57 6f 72 64  22 2c 20 32 31 2c 20 71  |"OS_Word", 21, q|
000019f0  25 0d 0a 50 18 20 20 f2  6e 75 64 67 65 28 20 64  |%..P.  .nudge( d|
00001a00  78 25 2c 20 64 79 25 20  29 0d 0a 5a 05 cd 0d 0a  |x%, dy% )..Z....|
00001a10  64 05 e1 0d 0a 6e 05 20  0d 0a 78 20 dd 20 f2 6e  |d....n. ..x . .n|
00001a20  75 64 67 65 28 20 78 6e  75 64 67 65 25 2c 20 79  |udge( xnudge%, y|
00001a30  6e 75 64 67 65 25 20 29  0d 0a 82 12 61 66 74 65  |nudge% )....afte|
00001a40  72 25 20 3d 20 a4 62 61  63 6b 0d 0a 8c 11 c8 95  |r% = .back......|
00001a50  20 61 66 74 65 72 25 3c  3e 2d 31 0d 0a 96 42 20  | after%<>-1...B |
00001a60  20 21 71 25 20 3d 20 61  66 74 65 72 25 3a 20 c8  | !q% = after%: .|
00001a70  99 20 22 57 69 6d 70 5f  47 65 74 57 69 6e 64 6f  |. "Wimp_GetWindo|
00001a80  77 53 74 61 74 65 22 2c  20 2c 20 71 25 3a 20 61  |wState", , q%: a|
00001a90  66 74 65 72 25 20 3d 20  71 25 21 32 38 0d 0a a0  |fter% = q%!28...|
00001aa0  11 20 20 e7 20 21 71 25  3c 3e 4c 25 20 8c 0d 0a  |.  . !q%<>L% ...|
00001ab0  aa 29 20 20 20 20 71 25  21 34 20 2b 3d 20 78 6e  |.)    q%!4 += xn|
00001ac0  75 64 67 65 25 3a 20 71  25 21 31 32 20 2b 3d 20  |udge%: q%!12 += |
00001ad0  78 6e 75 64 67 65 25 0d  0a b4 29 20 20 20 20 71  |xnudge%...)    q|
00001ae0  25 21 38 20 2b 3d 20 79  6e 75 64 67 65 25 3a 20  |%!8 += ynudge%: |
00001af0  71 25 21 31 36 20 2b 3d  20 79 6e 75 64 67 65 25  |q%!16 += ynudge%|
00001b00  0d 0a be 1a 20 20 20 20  71 25 21 33 32 20 3d 20  |....    q%!32 = |
00001b10  71 25 21 33 32 20 84 20  36 34 0d 0a c8 2a 20 20  |q%!32 . 64...*  |
00001b20  20 20 c8 99 20 22 57 69  6d 70 5f 53 65 6e 64 4d  |  .. "Wimp_SendM|
00001b30  65 73 73 61 67 65 22 2c  20 32 2c 20 71 25 2c 20  |essage", 2, q%, |
00001b40  71 25 21 30 0d 0a d2 07  20 20 cd 0d 0a dc 05 ce  |q%!0....  ......|
00001b50  0d 0a e6 05 e1 0d 0a f0  04 0d 0a fa 0f dd 20 f2  |.............. .|
00001b60  63 6c 65 61 72 6d 61 70  0d 0b 04 0c c8 95 20 77  |clearmap...... w|
00001b70  25 3e 3d 30 0d 0b 0e 0f  20 20 71 25 21 30 20 3d  |%>=0....  q%!0 =|
00001b80  20 4c 25 0d 0b 18 0f 20  20 71 25 21 34 20 3d 20  | L%....  q%!4 = |
00001b90  77 25 0d 0b 22 20 20 20  c8 99 20 22 57 69 6d 70  |w%.."   .. "Wimp|
00001ba0  5f 44 65 6c 65 74 65 49  63 6f 6e 22 2c 20 2c 20  |_DeleteIcon", , |
00001bb0  71 25 0d 0b 2c 0d 20 20  77 25 20 2d 3d 20 31 0d  |q%..,.  w% -= 1.|
00001bc0  0b 36 05 ce 0d 0b 40 0e  68 62 25 21 30 20 3d 20  |.6....@.hb%!0 = |
00001bd0  4c 25 0d 0b 4a 0d 68 62  25 21 34 20 3d 20 30 0d  |L%..J.hb%!4 = 0.|
00001be0  0b 54 0d 68 62 25 21 38  20 3d 20 30 0d 0b 5e 17  |.T.hb%!8 = 0..^.|
00001bf0  68 62 25 21 31 32 20 3d  20 72 6f 73 25 20 3e 3e  |hb%!12 = ros% >>|
00001c00  20 73 25 0d 0b 68 17 68  62 25 21 31 36 20 3d 20  | s%..h.hb%!16 = |
00001c10  74 6f 73 25 20 3e 3e 20  73 25 0d 0b 72 27 68 62  |tos% >> s%..r'hb|
00001c20  25 21 32 30 20 3d 20 26  30 30 30 30 36 30 30 34  |%!20 = &00006004|
00001c30  20 2b 20 28 62 6f 78 66  6f 72 65 25 3c 3c 32 34  | + (boxfore%<<24|
00001c40  29 0d 0b 7c 1f c8 99 20  22 57 69 6d 70 5f 43 72  |)..|... "Wimp_Cr|
00001c50  65 61 74 65 49 63 6f 6e  22 2c 20 2c 20 68 62 25  |eateIcon", , hb%|
00001c60  0d 0b 86 08 77 25 3d 30  0d 0b 90 08 63 25 3d b9  |....w%=0....c%=.|
00001c70  0d 0b 9a 05 e1 0d 0b a4  04 0d 0b ae 0e dd 20 f2  |.............. .|
00001c80  6d 61 6b 65 6d 61 70 0d  0b b8 0b ea 20 7a 25 2c  |makemap..... z%,|
00001c90  69 25 0d 0b c2 18 6c 78  25 20 3d 20 2d 20 28 72  |i%....lx% = - (r|
00001ca0  6f 73 25 20 3e 3e 20 73  25 29 0d 0b cc 18 6c 79  |os% >> s%)....ly|
00001cb0  25 20 3d 20 2d 20 28 74  6f 73 25 20 3e 3e 20 73  |% = - (tos% >> s|
00001cc0  25 29 0d 0b d6 11 68 78  25 20 3d 20 2d 20 6c 78  |%)....hx% = - lx|
00001cd0  25 2a 32 0d 0b e0 11 68  79 25 20 3d 20 2d 20 6c  |%*2....hy% = - l|
00001ce0  79 25 2a 32 0d 0b ea 12  61 66 74 65 72 25 20 3d  |y%*2....after% =|
00001cf0  20 a4 62 61 63 6b 0d 0b  f4 0a 69 25 20 3d 20 30  | .back....i% = 0|
00001d00  0d 0b fe 11 c8 95 20 61  66 74 65 72 25 3c 3e 2d  |...... after%<>-|
00001d10  31 0d 0c 08 43 20 20 71  25 21 30 20 3d 20 61 66  |1...C  q%!0 = af|
00001d20  74 65 72 25 3a 20 c8 99  20 22 57 69 6d 70 5f 47  |ter%: .. "Wimp_G|
00001d30  65 74 57 69 6e 64 6f 77  53 74 61 74 65 22 2c 20  |etWindowState", |
00001d40  2c 20 71 25 3a 20 61 66  74 65 72 25 20 3d 20 71  |, q%: after% = q|
00001d50  25 21 32 38 0d 0c 12 1a  20 20 e7 20 71 25 21 34  |%!28....  . q%!4|
00001d60  20 3e 20 2d 26 38 30 30  30 30 30 30 20 8c 0d 0c  | > -&8000000 ...|
00001d70  1c 0f 20 20 20 20 69 25  20 2b 3d 20 31 0d 0c 26  |..    i% += 1..&|
00001d80  31 20 20 20 20 e7 20 69  25 3c 6d 61 78 68 25 20  |1    . i%<maxh% |
00001d90  8c 20 7a 25 20 3d 20 68  62 25 2b 69 25 2a 32 34  |. z% = hb%+i%*24|
00001da0  20 8b 20 7a 25 20 3d 20  71 25 2b 31 32 38 0d 0c  | . z% = q%+128..|
00001db0  30 19 20 20 20 20 71 25  21 34 20 3d 20 71 25 21  |0.    q%!4 = q%!|
00001dc0  34 20 3e 3e 20 73 25 0d  0c 3a 21 20 20 20 20 e7  |4 >> s%..:!    .|
00001dd0  20 71 25 21 34 20 3c 20  6c 78 25 20 8c 20 6c 78  | q%!4 < lx% . lx|
00001de0  25 20 3d 20 71 25 21 34  0d 0c 44 19 20 20 20 20  |% = q%!4..D.    |
00001df0  71 25 21 38 20 3d 20 71  25 21 38 20 3e 3e 20 73  |q%!8 = q%!8 >> s|
00001e00  25 0d 0c 4e 21 20 20 20  20 e7 20 71 25 21 38 20  |%..N!    . q%!8 |
00001e10  3c 20 6c 79 25 20 8c 20  6c 79 25 20 3d 20 71 25  |< ly% . ly% = q%|
00001e20  21 38 0d 0c 58 1b 20 20  20 20 71 25 21 31 32 20  |!8..X.    q%!12 |
00001e30  3d 20 71 25 21 31 32 20  3e 3e 20 73 25 0d 0c 62  |= q%!12 >> s%..b|
00001e40  23 20 20 20 20 e7 20 71  25 21 31 32 20 3e 20 68  |#    . q%!12 > h|
00001e50  78 25 20 8c 20 68 78 25  20 3d 20 71 25 21 31 32  |x% . hx% = q%!12|
00001e60  0d 0c 6c 1b 20 20 20 20  71 25 21 31 36 20 3d 20  |..l.    q%!16 = |
00001e70  71 25 21 31 36 20 3e 3e  20 73 25 0d 0c 76 23 20  |q%!16 >> s%..v# |
00001e80  20 20 20 e7 20 71 25 21  31 36 20 3e 20 68 79 25  |   . q%!16 > hy%|
00001e90  20 8c 20 68 79 25 20 3d  20 71 25 21 31 36 0d 0c  | . hy% = q%!16..|
00001ea0  80 56 20 20 20 20 e7 20  69 25 3e 77 25 20 84 20  |.V    . i%>w% . |
00001eb0  7a 25 21 30 3c 3e 71 25  21 30 20 84 20 7a 25 21  |z%!0<>q%!0 . z%!|
00001ec0  34 3c 3e 71 25 21 34 20  84 20 7a 25 21 38 3c 3e  |4<>q%!4 . z%!8<>|
00001ed0  71 25 21 38 20 84 20 7a  25 21 31 32 3c 3e 71 25  |q%!8 . z%!12<>q%|
00001ee0  21 31 32 20 84 20 7a 25  21 31 36 3c 3e 71 25 21  |!12 . z%!16<>q%!|
00001ef0  31 36 20 8c 0d 0c 8a 14  20 20 20 20 20 20 e7 20  |16 .....      . |
00001f00  69 25 3c 3d 77 25 20 8c  0d 0c 94 15 20 20 20 20  |i%<=w% .....    |
00001f10  20 20 20 20 7a 25 21 30  20 3d 20 4c 25 0d 0c 9e  |    z%!0 = L%...|
00001f20  15 20 20 20 20 20 20 20  20 7a 25 21 34 20 3d 20  |.        z%!4 = |
00001f30  69 25 0d 0c a8 26 20 20  20 20 20 20 20 20 c8 99  |i%...&        ..|
00001f40  20 22 57 69 6d 70 5f 44  65 6c 65 74 65 49 63 6f  | "Wimp_DeleteIco|
00001f50  6e 22 2c 20 2c 20 7a 25  0d 0c b2 0b 20 20 20 20  |n", , z%....    |
00001f60  20 20 cd 0d 0c bc 16 20  20 20 20 20 20 7a 25 21  |  .....      z%!|
00001f70  32 30 20 3d 20 74 77 66  25 0d 0c c6 17 20 20 20  |20 = twf%....   |
00001f80  20 20 20 7a 25 21 31 36  20 3d 20 71 25 21 31 36  |   z%!16 = q%!16|
00001f90  0d 0c d0 17 20 20 20 20  20 20 7a 25 21 31 32 20  |....      z%!12 |
00001fa0  3d 20 71 25 21 31 32 0d  0c da 15 20 20 20 20 20  |= q%!12....     |
00001fb0  20 7a 25 21 38 20 3d 20  71 25 21 38 0d 0c e4 15  | z%!8 = q%!8....|
00001fc0  20 20 20 20 20 20 7a 25  21 34 20 3d 20 71 25 21  |      z%!4 = q%!|
00001fd0  34 0d 0c ee 13 20 20 20  20 20 20 7a 25 21 30 20  |4....      z%!0 |
00001fe0  3d 20 4c 25 0d 0c f8 24  20 20 20 20 20 20 c8 99  |= L%...$      ..|
00001ff0  20 22 57 69 6d 70 5f 43  72 65 61 74 65 49 63 6f  | "Wimp_CreateIco|
00002000  6e 22 2c 20 2c 20 7a 25  0d 0d 02 15 20 20 20 20  |n", , z%....    |
00002010  20 20 7a 25 21 30 20 3d  20 71 25 21 30 0d 0d 0c  |  z%!0 = q%!0...|
00002020  10 20 20 20 20 20 20 63  25 20 3d 20 b9 0d 0d 16  |.      c% = ....|
00002030  09 20 20 20 20 cd 0d 0d  20 07 20 20 cd 0d 0d 2a  |.    ... .  ...*|
00002040  05 ce 0d 0d 34 0c c8 95  20 77 25 3e 69 25 0d 0d  |....4... w%>i%..|
00002050  3e 0f 20 20 71 25 21 30  20 3d 20 4c 25 0d 0d 48  |>.  q%!0 = L%..H|
00002060  0f 20 20 71 25 21 34 20  3d 20 77 25 0d 0d 52 20  |.  q%!4 = w%..R |
00002070  20 20 c8 99 20 22 57 69  6d 70 5f 44 65 6c 65 74  |  .. "Wimp_Delet|
00002080  65 49 63 6f 6e 22 2c 20  2c 20 71 25 0d 0d 5c 0b  |eIcon", , q%..\.|
00002090  20 20 77 25 2d 3d 31 0d  0d 66 0c 20 20 63 25 20  |  w%-=1..f.  c% |
000020a0  3d 20 b9 0d 0d 70 05 ce  0d 0d 7a 0a e7 20 63 25  |= ...p....z.. c%|
000020b0  20 8c 0d 0d 84 0d 20 20  77 25 20 3d 20 69 25 0d  | .....  w% = i%.|
000020c0  0d 8e 10 20 20 71 25 21  30 20 3d 20 6c 78 25 0d  |...  q%!0 = lx%.|
000020d0  0d 98 10 20 20 71 25 21  34 20 3d 20 6c 79 25 0d  |...  q%!4 = ly%.|
000020e0  0d a2 10 20 20 71 25 21  38 20 3d 20 68 78 25 0d  |...  q%!8 = hx%.|
000020f0  0d ac 11 20 20 71 25 21  31 32 20 3d 20 68 79 25  |...  q%!12 = hy%|
00002100  0d 0d b6 21 20 20 c8 99  20 22 57 69 6d 70 5f 53  |...!  .. "Wimp_S|
00002110  65 74 45 78 74 65 6e 74  22 2c 20 4c 25 2c 20 71  |etExtent", L%, q|
00002120  25 0d 0d c0 0f 20 20 e7  20 6d 61 70 6f 6e 20 8c  |%....  . mapon .|
00002130  0d 0d ca 10 20 20 20 20  21 71 25 20 3d 20 4c 25  |....    !q% = L%|
00002140  0d 0d d4 26 20 20 20 20  c8 99 20 22 57 69 6d 70  |...&    .. "Wimp|
00002150  5f 47 65 74 57 69 6e 64  6f 77 53 74 61 74 65 22  |_GetWindowState"|
00002160  2c 20 2c 20 71 25 0d 0d  de 22 20 20 20 20 c8 99  |, , q%..."    ..|
00002170  20 22 57 69 6d 70 5f 4f  70 65 6e 57 69 6e 64 6f  | "Wimp_OpenWindo|
00002180  77 22 2c 20 2c 20 71 25  0d 0d e8 35 20 20 20 20  |w", , q%...5    |
00002190  c8 99 20 22 57 69 6d 70  5f 46 6f 72 63 65 52 65  |.. "Wimp_ForceRe|
000021a0  64 72 61 77 22 2c 20 4c  25 2c 20 6c 78 25 2c 20  |draw", L%, lx%, |
000021b0  6c 79 25 2c 20 68 78 25  2c 20 68 79 25 0d 0d f2  |ly%, hx%, hy%...|
000021c0  07 20 20 cd 0d 0d fc 0a  20 20 63 25 3d a3 0d 0e  |.  .....  c%=...|
000021d0  06 05 cd 0d 0e 10 05 e1  0d 0e 1a 04 0d 0e 24 0f  |..............$.|
000021e0  dd 20 f2 72 65 74 72 69  65 76 65 0d 0e 2e 12 61  |. .retrieve....a|
000021f0  66 74 65 72 25 20 3d 20  a4 62 61 63 6b 0d 0e 38  |fter% = .back..8|
00002200  11 c8 95 20 61 66 74 65  72 25 3c 3e 2d 31 0d 0e  |... after%<>-1..|
00002210  42 34 20 20 21 71 25 20  3d 20 61 66 74 65 72 25  |B4  !q% = after%|
00002220  3a 20 c8 99 20 22 57 69  6d 70 5f 47 65 74 57 69  |: .. "Wimp_GetWi|
00002230  6e 64 6f 77 4f 75 74 6c  69 6e 65 22 2c 20 2c 20  |ndowOutline", , |
00002240  71 25 0d 0e 4c 18 20 20  78 6e 75 64 67 65 25 3d  |q%..L.  xnudge%=|
00002250  72 6f 73 25 2d 71 25 21  31 32 0d 0e 56 18 20 20  |ros%-q%!12..V.  |
00002260  79 6e 75 64 67 65 25 3d  74 6f 73 25 2d 71 25 21  |ynudge%=tos%-q%!|
00002270  31 36 0d 0e 60 1d 20 20  e7 20 78 6e 75 64 67 65  |16..`.  . xnudge|
00002280  25 3e 30 20 8c 20 78 6e  75 64 67 65 25 3d 30 0d  |%>0 . xnudge%=0.|
00002290  0e 6a 1d 20 20 e7 20 79  6e 75 64 67 65 25 3e 30  |.j.  . ynudge%>0|
000022a0  20 8c 20 79 6e 75 64 67  65 25 3d 30 0d 0e 74 1e  | . ynudge%=0..t.|
000022b0  20 20 e7 20 71 25 21 34  3c 30 20 8c 20 78 6e 75  |  . q%!4<0 . xnu|
000022c0  64 67 65 25 3d 2d 71 25  21 34 0d 0e 7e 1e 20 20  |dge%=-q%!4..~.  |
000022d0  e7 20 71 25 21 38 3c 30  20 8c 20 79 6e 75 64 67  |. q%!8<0 . ynudg|
000022e0  65 25 3d 2d 71 25 21 38  0d 0e 88 42 20 20 21 71  |e%=-q%!8...B  !q|
000022f0  25 20 3d 20 61 66 74 65  72 25 3a 20 c8 99 20 22  |% = after%: .. "|
00002300  57 69 6d 70 5f 47 65 74  57 69 6e 64 6f 77 53 74  |Wimp_GetWindowSt|
00002310  61 74 65 22 2c 20 2c 20  71 25 3a 20 61 66 74 65  |ate", , q%: afte|
00002320  72 25 20 3d 20 71 25 21  32 38 0d 0e 92 1a 20 20  |r% = q%!28....  |
00002330  e7 20 71 25 21 34 20 3e  20 2d 26 38 30 30 30 30  |. q%!4 > -&80000|
00002340  30 30 20 8c 0d 0e 9c 1d  20 20 20 20 e7 20 78 6e  |00 .....    . xn|
00002350  75 64 67 65 25 20 84 20  79 6e 75 64 67 65 25 20  |udge% . ynudge% |
00002360  8c 0d 0e a6 2b 20 20 20  20 20 20 71 25 21 34 20  |....+      q%!4 |
00002370  2b 3d 20 78 6e 75 64 67  65 25 3a 20 71 25 21 31  |+= xnudge%: q%!1|
00002380  32 20 2b 3d 20 78 6e 75  64 67 65 25 0d 0e b0 2b  |2 += xnudge%...+|
00002390  20 20 20 20 20 20 71 25  21 38 20 2b 3d 20 79 6e  |      q%!8 += yn|
000023a0  75 64 67 65 25 3a 20 71  25 21 31 36 20 2b 3d 20  |udge%: q%!16 += |
000023b0  79 6e 75 64 67 65 25 0d  0e ba 1c 20 20 20 20 20  |ynudge%....     |
000023c0  20 71 25 21 33 32 20 3d  20 71 25 21 33 32 20 84  | q%!32 = q%!32 .|
000023d0  20 36 34 0d 0e c4 2c 20  20 20 20 20 20 c8 99 20  | 64...,      .. |
000023e0  22 57 69 6d 70 5f 53 65  6e 64 4d 65 73 73 61 67  |"Wimp_SendMessag|
000023f0  65 22 2c 20 32 2c 20 71  25 2c 20 71 25 21 30 0d  |e", 2, q%, q%!0.|
00002400  0e ce 09 20 20 20 20 cd  0d 0e d8 07 20 20 cd 0d  |...    .....  ..|
00002410  0e e2 05 ce 0d 0e ec 05  e1 0d 0e f6 04 0d 0f 00  |................|
00002420  15 f4 20 44 45 46 20 50  52 4f 43 73 63 61 74 74  |.. DEF PROCscatt|
00002430  65 72 0d 0f 0a 1b f4 20  4c 4f 43 41 4c 20 78 6e  |er..... LOCAL xn|
00002440  75 64 67 65 25 2c 79 6e  75 64 67 65 25 0d 0f 14  |udge%,ynudge%...|
00002450  15 f4 20 61 66 74 65 72  25 20 3d 20 46 4e 62 61  |.. after% = FNba|
00002460  63 6b 0d 0f 1e 16 f4 20  57 48 49 4c 45 20 61 66  |ck..... WHILE af|
00002470  74 65 72 25 3c 3e 2d 31  0d 0f 28 37 f4 20 20 20  |ter%<>-1..(7.   |
00002480  21 71 25 20 3d 20 61 66  74 65 72 25 3a 20 53 59  |!q% = after%: SY|
00002490  53 20 22 57 69 6d 70 5f  47 65 74 57 69 6e 64 6f  |S "Wimp_GetWindo|
000024a0  77 4f 75 74 6c 69 6e 65  22 2c 20 2c 20 71 25 0d  |wOutline", , q%.|
000024b0  0f 32 23 f4 20 20 20 78  6e 75 64 67 65 25 3d 28  |.2#.   xnudge%=(|
000024c0  71 25 21 31 32 2b 71 25  21 34 2d 72 6f 73 25 29  |q%!12+q%!4-ros%)|
000024d0  2f 34 0d 0f 3c 23 f4 20  20 20 79 6e 75 64 67 65  |/4..<#.   ynudge|
000024e0  25 3d 28 71 25 21 31 36  2b 71 25 21 38 2d 74 6f  |%=(q%!16+q%!8-to|
000024f0  73 25 29 2f 32 0d 0f 46  45 f4 20 20 20 21 71 25  |s%)/2..FE.   !q%|
00002500  20 3d 20 61 66 74 65 72  25 3a 20 53 59 53 20 22  | = after%: SYS "|
00002510  57 69 6d 70 5f 47 65 74  57 69 6e 64 6f 77 53 74  |Wimp_GetWindowSt|
00002520  61 74 65 22 2c 20 2c 20  71 25 3a 20 61 66 74 65  |ate", , q%: afte|
00002530  72 25 20 3d 20 71 25 21  32 38 0d 0f 50 22 f4 20  |r% = q%!28..P". |
00002540  20 20 49 46 20 78 6e 75  64 67 65 25 20 4f 52 20  |  IF xnudge% OR |
00002550  79 6e 75 64 67 65 25 20  54 48 45 4e 0d 0f 5a 2b  |ynudge% THEN..Z+|
00002560  f4 20 20 20 20 20 71 25  21 34 20 2b 3d 20 78 6e  |.     q%!4 += xn|
00002570  75 64 67 65 25 3a 20 71  25 21 31 32 20 2b 3d 20  |udge%: q%!12 += |
00002580  78 6e 75 64 67 65 25 0d  0f 64 2b f4 20 20 20 20  |xnudge%..d+.    |
00002590  20 71 25 21 38 20 2b 3d  20 79 6e 75 64 67 65 25  | q%!8 += ynudge%|
000025a0  3a 20 71 25 21 31 36 20  2b 3d 20 79 6e 75 64 67  |: q%!16 += ynudg|
000025b0  65 25 0d 0f 6e 1d f4 20  20 20 20 20 71 25 21 33  |e%..n..     q%!3|
000025c0  32 20 3d 20 71 25 21 33  32 20 4f 52 20 36 34 0d  |2 = q%!32 OR 64.|
000025d0  0f 78 2d f4 20 20 20 20  20 53 59 53 20 22 57 69  |.x-.     SYS "Wi|
000025e0  6d 70 5f 53 65 6e 64 4d  65 73 73 61 67 65 22 2c  |mp_SendMessage",|
000025f0  20 32 2c 20 71 25 2c 20  71 25 21 30 0d 0f 82 0d  | 2, q%, q%!0....|
00002600  f4 20 20 20 45 4e 44 49  46 0d 0f 8c 0e f4 20 45  |.   ENDIF..... E|
00002610  4e 44 57 48 49 4c 45 0d  0f 96 0d f4 20 45 4e 44  |NDWHILE..... END|
00002620  50 52 4f 43 0d 0f a0 04  0d 0f aa 0f dd 20 f2 65  |PROC......... .e|
00002630  72 72 6f 72 62 6f 78 0d  0f b4 1b c8 99 20 22 57  |rrorbox...... "W|
00002640  69 6d 70 5f 44 72 61 67  42 6f 78 22 2c 20 2c 20  |imp_DragBox", , |
00002650  2d 31 0d 0f be 32 21 71  25 20 3d 20 9f 3a 20 24  |-1...2!q% = .: $|
00002660  28 20 71 25 2b 34 20 29  20 3d 20 f6 24 2b 22 28  |( q%+4 ) = .$+"(|
00002670  20 22 2b c3 28 20 9e 2f  31 30 20 29 2b 22 20 29  | "+.( ./10 )+" )|
00002680  22 2b bd 30 0d 0f c8 31  c8 99 20 22 57 69 6d 70  |"+.0...1.. "Wimp|
00002690  5f 52 65 70 6f 72 74 45  72 72 6f 72 22 2c 20 71  |_ReportError", q|
000026a0  25 2c 20 31 2c 20 a4 6d  65 73 73 28 22 6d 74 69  |%, 1, .mess("mti|
000026b0  74 6c 65 22 29 0d 0f d2  05 e1 0d 0f dc 04 0d 0f  |tle")...........|
000026c0  e6 0f dd 20 a4 6d 65 73  73 28 61 24 29 0d 0f f0  |... .mess(a$)...|
000026d0  08 ea 20 6b 25 0d 0f fa  23 c8 99 20 6d 6c 25 2c  |.. k%...#.. ml%,|
000026e0  20 6d 73 67 66 69 6c 25  2c 20 61 24 2c 20 30 20  | msgfil%, a$, 0 |
000026f0  b8 20 2c 20 2c 20 6b 25  0d 10 04 08 3d 24 6b 25  |. , , k%....=$k%|
00002700  0d ff                                             |..|
00002702