Home » Archimedes archive » Acorn User » AU 1997-06 B.adf » Regulars » StarInfo/Tanner/!DelDynAre/!RunImage

StarInfo/Tanner/!DelDynAre/!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 User » AU 1997-06 B.adf » Regulars
Filename: StarInfo/Tanner/!DelDynAre/!RunImage
Read OK:
File size: 3FBC bytes
Load address: 0000
Exec address: 0000
File contents
   10REM Program to delete dynamic areas.
   20REM (c) T R Tanner. 1996
   30REM Version 1: 15 Aug 96
   40DIM dyn_area_list% 5000
   50DIM menu_t1% 100
   60DIM menu_t2% 100
   70DIM menu_t3% 100
   80
   90ON ERROR ON ERROR OFF : PROC_Wimp_Error : PROC_finish
  100
  110PROC_wimp_init
  120
  130REPEAT
  140       REM             21-9876543210
  150       PROC_wimp_poll(%1100000110001)
  160UNTIL FALSE
  170END
  180
  190REM ---------+---------+---------+---------+---------+---------+---------+---------+
  200
  210DEF PROC_finish
  220ON ERROR OFF
  230SYS "Wimp_CloseDown", handle%, &4b534154
  240END
  250ENDPROC
  260
  270REM ---------+---------+---------+---------+---------+---------+---------+---------+
  280
  290DEF PROC_menu
  300LOCAL q%
  310REM Enumerate dynamic area list
  320PROC_list_dyn_areas
  330PROC_init_menu(menu_buff1%, menu_t1%)
  340PROC_menu_item("Info", &100, info_h%, &07000021, 0)
  350PROC_menu_item($menu_t2%, 0, FN_sys_areas, &07000121, menu_t2%)
  360PROC_menu_item($menu_t3%, 0, FN_user_areas, &07000121, menu_t3%)
  370PROC_menu_item("Quit", &80, -1, &07000021, 0)
  380SYS "Wimp_CreateMenu", , menu_buff1%, mouse_x% - 64, 96 + (q% - menu_buff1% - 28) / 24 * 44 TO menu_win%
  390menu% = menu_buff1%
  400ENDPROC
  410
  420REM ---------+---------+---------+---------+---------+---------+---------+---------+
  430
  440DEF FN_sys_areas
  450LOCAL q%
  460PROC_init_menu(menu_buff2%, menu_t2%)
  470PROC_select_dyn_areas(0)
  480menu_buff2%!28 = menu_buff2%!28 OR &100
  490IF q% = menu_buff2% + 28 =-1
  500= menu_buff2%
  510
  520REM ---------+---------+---------+---------+---------+---------+---------+---------+
  530
  540DEF FN_user_areas
  550LOCAL q%
  560PROC_init_menu(menu_buff3%, menu_t3%)
  570PROC_select_dyn_areas(2)
  580PROC_select_dyn_areas(1)
  590menu_buff3%!28 = menu_buff3%!28 OR &100
  600IF q% = menu_buff3% + 28 =-1
  610= menu_buff3%
  620
  630REM ---------+---------+---------+---------+---------+---------+---------+---------+
  640
  650DEF PROC_init_menu(menu_buff%, menu_t%)
  660q% = menu_buff%
  670q%!0 = menu_t%
  680q%!4 = 0
  690q%!8 = LEN($menu_t%)
  700q%?12 = 7
  710q%?13 = 2
  720q%?14 = 7
  730q%?15 = 0
  740q%!16 = 44
  750q%!20 = 44
  760q%!24 = 0
  770q% = q% + 28
  780ENDPROC
  790
  800REM ---------+---------+---------+---------+---------+---------+---------+---------+
  810
  820DEF PROC_list_dyn_areas
  830LOCAL n%, d%, e%, d$
  840n% = -1
  850d% = dyn_area_list%
  860REPEAT
  870    SYS "OS_DynamicArea", 3, n% TO , n%
  880    IF n% <> -1 THEN
  890       !d% = n%
  900       d% += 4
  910       SYS "OS_DynamicArea", 2, n% TO , , , , , , , , e%
  920       d$ = FN_zero_string(e%)
  930       $d% = d$
  940       d% += LEN(d$) + 1
  950    ENDIF
  960UNTIL n% = -1
  970!d% = -1
  980ENDPROC
  990
 1000
 1010REM ---------+---------+---------+---------+---------+---------+---------+---------+
 1020
 1030DEF PROC_select_dyn_areas(sw%)
 1040REM Return a menu with the relevant areas in numerical order
 1050LOCAL d%, cur_n%, cur_ptr%, cur_max%
 1060cur_n% = -1
 1070REPEAT
 1080      cur_ptr% = 0
 1090      cur_max% = &7FFFFFFF
 1100      d% = dyn_area_list%
 1110      WHILE !d% <> -1
 1120            IF !d% > cur_n% AND !d% < cur_max% AND FN_matched(d%, sw%) THEN
 1130               cur_ptr% = d%
 1140               cur_max% = !d%
 1150            ENDIF
 1160          d% += 4 + LEN($(d% + 4)) + 1
 1170      ENDWHILE
 1180      IF cur_ptr% <> 0 THEN
 1190         PROC_menu_item($(cur_ptr% + 4), 0, 0, &07000121, cur_ptr% + 4)
 1200         cur_n% = !cur_ptr%
 1210      ENDIF
 1220UNTIL cur_ptr% = 0
 1230IF sw% <> 2 THEN q%!(-24) = q%!(-24) OR &80
 1240ENDPROC
 1250
 1260REM ---------+---------+---------+---------+---------+---------+---------+---------+
 1270
 1280DEF FN_matched(d%, sw%)
 1290IF !d% < 256 AND sw% = 0 = TRUE
 1300IF !d% >= 256 AND !d% < 1000000000 AND sw% = 1 = TRUE
 1310REM Foul hack to get wimp sprite pool at top of user list!
 1320= !d% >= 1000000000 AND sw% = 2
 1330
 1340REM ---------+---------+---------+---------+---------+---------+---------+---------+
 1350
 1360DEF PROC_menu_select(buff%)
 1370LOCAL a$
 1380SYS "Wimp_GetPointerInfo", , wimp_buff2%
 1390SYS "Wimp_DecodeMenu", , menu%, buff%, STRING$(200, " ") TO , , , a$
 1400CASE a$ OF
 1410     WHEN "Info"
 1420
 1430     WHEN "Quit"
 1440          PROC_finish
 1450
 1460     OTHERWISE
 1470          PROC_delete_area(a$)
 1480
 1490ENDCASE
 1500IF (wimp_buff2%!8 AND 1) <> 0 THEN PROC_menu
 1510ENDPROC
 1520
 1530REM ---------+---------+---------+---------+---------+---------+---------+---------+
 1540
 1550DEF PROC_delete_area(name$)
 1560LOCAL d%, e%
 1570name$ = MID$(name$, INSTR(name$, ".") + 1)
 1580d% = dyn_area_list%
 1590WHILE !d% <> -1 AND name$ <> $(d% + 4)
 1600      d% = d% + 4 + LEN$(d% + 4) + 1
 1610ENDWHILE
 1620IF !d% = -1 ERROR 1000, "Unidentified menu entry " + name$
 1630REM Check they really want to do this
 1640!wimp_buff% = 0
 1650$(wimp_buff% + 4) = "Are you sure you want to delete area " + $(d% + 4) + "?"
 1660SYS "Wimp_ReportError", wimp_buff%, &903, prog_name$, "!deldynare", 1, 0 TO , e%
 1670IF e% = 1 THEN
 1680   SYS "XOS_DynamicArea", 1, !d% TO e%
 1681   IF e% <> 1 THEN
 1682      !e% = 0 : REM Downgrade severity a little bit
 1683      SYS "Wimp_ReportError", e%, &501, prog_name$, "!deldynare", 1, 0
 1684   ENDIF
 1690ENDIF
 1700ENDPROC
 1710
 1720REM ---------+---------+---------+---------+---------+---------+---------+---------+
 1730
 1740DEF PROC_user_message
 1750REM Received a massage from the wimp
 1760REM r1+0 = #bytes
 1770REM r1+4 = sender
 1780REM r1+8 = senders ref
 1790REM r1+12 = reply ref or 0
 1800REM r1+16 = message code
 1810REM r1+20 = data
 1820CASE wimp_buff%!16 OF
 1830     WHEN 0
 1840          PROC_finish
 1850
 1860     WHEN &0000A
 1870          PROC_save_desktop
 1880
 1890     WHEN &00502
 1900          PROC_help_info(wimp_buff%)
 1910
 1920     OTHERWISE
 1930          ERROR 1000, "Unexpected user message " + STR$~(wimp_buff%!16)
 1940
 1950ENDCASE
 1960ENDPROC
 1970
 1980REM ---------+---------+---------+---------+---------+---------+---------+---------+
 1990
 2000DEF PROC_save_desktop
 2010LOCAL l%
 2020LOCAL ERROR
 2030ON ERROR LOCAL RESTORE ERROR : PROC_ack_message(wimp_buff%) : PROC_report_error
 2040SYS "OS_ReadVarVal", "DelDynArea$Dir", wimp_buff% + 28, 256, 0, 3 TO , , l%
 2050?(wimp_buff% + 28 + l%) = 13
 2060BPUT#(wimp_buff%!20), "Filer_Run " + $(wimp_buff% + 28)
 2070ENDPROC
 2080
 2090REM ---------+---------+---------+---------+---------+---------+---------+---------+
 2100
 2110DEF PROC_mouse_click(mouse_x%, mouse_y%, mouse_button%, window_handle%, icon_handle%, old_b%)
 2120CASE window_handle% OF
 2130     WHEN -2:
 2140          IF mouse_button% = 2 PROC_menu
 2150
 2160     OTHERWISE
 2170          ERROR 1000, "Invalid window handle " + STR$window_handle% + "/" + STR$icon_handle% + " button " + STR$mouse_button%
 2180
 2190ENDCASE
 2200ENDPROC
 2210
 2220REM ---------+---------+---------+---------+---------+---------+---------+---------+
 2230
 2240REM ********************************************************************************
 2250
 2260REM W I M P   I N T E R F A C E
 2270
 2280REM ********************************************************************************
 2290
 2300REM ---------+---------+---------+---------+---------+---------+---------+---------+
 2310
 2320DEF PROC_wimp_poll(A%)
 2330SYS "Wimp_Poll", A%, wimp_buff% TO A%
 2340
 2350CASE A% OF
 2360     WHEN 0:      REM Null event
 2370
 2380     WHEN 1:      REM Redraw window
 2390          PROC_redraw_window(wimp_buff%)
 2400
 2410     WHEN 2:      REM Open Window
 2420          PROC_reopen_window(wimp_buff%)
 2430
 2440     WHEN 3:      REM Close Window
 2450          PROC_close_window(wimp_buff%!0)
 2460
 2470     WHEN 4:      REM Pointer leaving window
 2480          PROC_pointer_leaving(wimp_buff%!0)
 2490
 2500     WHEN 5:      REM Pointer entering window
 2510          PROC_pointer_entering(wimp_buff%!0)
 2520
 2530     WHEN 6:      REM Mouse Click
 2540          PROC_mouse_click(wimp_buff%!0, wimp_buff%!4, wimp_buff%!8, wimp_buff%!12, wimp_buff%!16, wimp_buff%!20)
 2550
 2560     WHEN 7:      REM User Drag box
 2570          PROC_drag_box(buff%!0, buff%!4, buff%!8, buff%!12)
 2580
 2590     WHEN 8:      REM Key Pressed
 2600          PROC_key_press(wimp_buff%!0, wimp_buff%!4, wimp_buff%!8, wimp_buff%!12, wimp_buff%!16, wimp_buff%!20, wimp_buff%!24)
 2610
 2620     WHEN 9:      REM Menu Selection
 2630          PROC_menu_select(wimp_buff%)
 2640
 2650REM     WHEN 10:     REM Scroll request
 2660REM     WHEN 11:     REM Lose caret
 2670REM     WHEN 12:     REM Gain caret
 2680REM 13 - 16 reserved
 2690
 2700     WHEN 17, 18:     REM User message (recorded)
 2710          PROC_user_message
 2720
 2730REM     WHEN 19:     REM User message acknowledged
 2740
 2750     OTHERWISE
 2760          ERROR 1000, "Unexpected Wimp_Poll " + STR$A%
 2770
 2780ENDCASE
 2790ENDPROC
 2800
 2810REM ---------+---------+---------+---------+---------+---------+---------+---------+
 2820
 2830DEF PROC_menu_item(i$, f1%, f2%, f3%, f4%)
 2840q%!0 = f1%
 2850q%!4 = f2%
 2860q%!8 = f3%
 2870$(q% + 12) = i$
 2880IF (f3% AND &100) <> 0 THEN
 2890    q%!12 = f4%
 2900    q%!16 = 0
 2910    q%!20 = LEN(i$)
 2920ENDIF
 2930q% += 24
 2940ENDPROC
 2950
 2960REM ---------+---------+---------+---------+---------+---------+---------+---------+
 2970
 2980DEF PROC_Wimp_Error
 2990LOCAL N%
 3000N% = ERR
 3010!wimp_buff2% = ABS N%
 3020IF N% < 0 THEN
 3030   $(wimp_buff2% + 4) = REPORT$
 3040ELSE
 3050   $(wimp_buff2% + 4) = REPORT$ + " at line " + STR$ERL
 3060ENDIF
 3070SYS "Wimp_ReportError", wimp_buff2%, 0, prog_name$
 3080ENDPROC
 3090
 3100REM ---------+---------+---------+---------+---------+---------+---------+---------+
 3110
 3120DEF PROC_report_error
 3130ERROR -ERR, REPORT$ + " at line " + STR$ERL
 3140ENDPROC
 3150
 3160REM ---------+---------+---------+---------+---------+---------+---------+---------+
 3170
 3180DEF PROC_wimp_init
 3190LOCAL flags%, size%, mstr%, vers%
 3200
 3210DIM wimp_buff% 512
 3220DIM wimp_buff2% 512
 3230DIM menu_buff1% 1023
 3240DIM menu_buff2% 1023
 3250DIM menu_buff3% 1023
 3260DIM mess_desc% 16
 3270DIM mess_buff% 256
 3280
 3290SYS "MessageTrans_FileInfo", , "<DelDynArea$Dir>.messages" TO , , size%
 3300DIM mess_t_buff% size%
 3310SYS "MessageTrans_OpenFile", mess_desc%, "<DelDynArea$Dir>.messages", mess_t_buff%
 3320SYS "MessageTrans_Lookup", mess_desc%, "PROG", mess_buff%, 256, 0, 0, 0, 0 TO , , mstr%
 3330prog_name$ = FN_zero_string(mstr%)
 3340$menu_t1% = prog_name$
 3350SYS "MessageTrans_Lookup", mess_desc%, "MENU_2_TITLE", mess_buff%, 256, 0, 0, 0, 0 TO , , mstr%
 3360$menu_t2% = FN_zero_string(mstr%)
 3370SYS "MessageTrans_Lookup", mess_desc%, "MENU_3_TITLE", mess_buff%, 256, 0, 0, 0, 0 TO , , mstr%
 3380$menu_t3% = FN_zero_string(mstr%)
 3390
 3400REM Things what I want to deal with
 3410wimp_buff%!0 = &00502 : REM Message_HelpRequest
 3420wimp_buff%!4 = &0000A : REM Message_SaveDesktop
 3430wimp_buff%!8 = 0
 3440SYS "Wimp_Initialise", 310, &4b534154, prog_name$, wimp_buff% TO vers%, handle%
 3450PROC_load_templates
 3460ENDPROC
 3470
 3480REM ---------+---------+---------+---------+---------+---------+---------+---------+
 3490
 3500DEF FN_zero_string(buff%)
 3510LOCAL name$
 3520name$ = ""
 3530WHILE ?buff% >= ASC" "
 3540      name$ += CHR$(?buff%)
 3550      buff% += 1
 3560ENDWHILE
 3570= name$
 3580
 3590REM ---------+---------+---------+---------+---------+---------+---------+---------+
 3600
 3610DEF PROC_load_templates
 3620LOCAL cr12$, q%
 3630LOCAL ERROR
 3640ON ERROR LOCAL RESTORE ERROR : SYS "Wimp_CloseTemplate" : PROC_report_error
 3650
 3660REM Open & load templates
 3670cr12$ = STRING$(12, CHR$13)
 3680SYS "Wimp_OpenTemplate", , "<DelDynArea$Dir>.Templates"
 3690DIM templ_buff% FN_largest_buffer
 3700
 3710info_h% = FN_load_template("ProgInfo", TRUE, templ_buff%, info_w%)
 3720
 3730SYS "Wimp_CloseTemplate"
 3740
 3750REM Generate Icon
 3760DIM q% 40
 3770!q% = -7
 3780q%!4 = 0
 3790q%!8 = 0
 3800q%!12 = 68
 3810q%!16 = 68
 3820q%!20 = %0011000000000010
 3830$(q% + 24) = "!deldynare"
 3840SYS "Wimp_CreateIcon", 0, q% TO iconbar%
 3850ENDPROC
 3860
 3870REM ---------+---------+---------+---------+---------+---------+---------+---------+
 3880
 3890DEF FN_load_template(name$, create%, RETURN buff%, RETURN data%)
 3900LOCAL handle%
 3910LOCAL size%
 3920DIM data% FN_size_indirect(name$)
 3930size% = FN_size_indirect(name$)
 3940IF buff% = 0 DIM buff% FN_size_buffer(name$)
 3950SYS "Wimp_LoadTemplate", , buff%, data%, data% + size%, -1, name$ + cr12$, 0 TO , , , , , , handle%
 3960IF handle% = 0 THEN ERROR 1000, "Can't load template " + name$
 3970IF create% THEN SYS "Wimp_CreateWindow", , buff% TO handle%
 3980=handle%
 3990
 4000REM ---------+---------+---------+---------+---------+---------+---------+---------+
 4010
 4020DEF FN_size_buffer(name$)
 4030LOCAL size%
 4040SYS "Wimp_LoadTemplate", , 0, , , , name$ + cr12$, 0 TO , size%
 4050=size%
 4060
 4070REM ---------+---------+---------+---------+---------+---------+---------+---------+
 4080
 4090DEF FN_size_indirect(name$)
 4100LOCAL size%
 4110SYS "Wimp_LoadTemplate", , 0, , , , name$ + cr12$, 0 TO , , size%
 4120=size%
 4130
 4140REM ---------+---------+---------+---------+---------+---------+---------+---------+
 4150
 4160DEF FN_largest_buffer
 4170LOCAL largest%, size%, here%, name%
 4180DIM name% 12
 4190here% = 0
 4200largest% = 0
 4210REPEAT
 4220      $name% = "*"
 4230      SYS "Wimp_LoadTemplate", , 0, , , , name%, here% TO , size%, , , , , here%
 4240      IF largest% < size% largest% = size%
 4250UNTIL here% = 0
 4260=largest%
 4270
 4280REM ---------+---------+---------+---------+---------+---------+---------+---------+
 4290
 4300DEF PROC_redraw_window(buff%)
 4310LOCAL flag%
 4320SYS "Wimp_RedrawWindow", , buff% TO flag%
 4330PROC_update_rectangles(buff%, flag%)
 4340ENDPROC
 4350
 4360REM ---------+---------+---------+---------+---------+---------+---------+---------+
 4370
 4380DEF PROC_update_window_now(buff%)
 4390LOCAL flag%
 4400SYS "Wimp_UpdateWindow", , buff% TO flag%
 4410PROC_update_rectangles(buff%, flag%)
 4420ENDPROC
 4430
 4440REM ---------+---------+---------+---------+---------+---------+---------+---------+
 4450
 4460DEF PROC_update_window_later(buff%)
 4470SYS "Wimp_ForceRedraw", buff%!0, buff%!4, buff%!8, buff%!12, buff%!16
 4480ENDPROC
 4490
 4500REM ---------+---------+---------+---------+---------+---------+---------+---------+
 4510
 4520DEF PROC_update_rectangles(buff%, flag%)
 4530WHILE flag%
 4540      PROC_redraw_this(buff%)
 4550      SYS "Wimp_GetRectangle", , buff% TO flag%
 4560ENDWHILE
 4570ENDPROC
 4580
 4590REM ---------+---------+---------+---------+---------+---------+---------+---------+
 4600
 4610DEF PROC_init_open_window(window%)
 4620LOCAL x%, y%, xi%, yi%, f%
 4630SYS "OS_ReadModeVariable", -1, 4 TO , , xi%
 4640SYS "OS_ReadModeVariable", -1, 5 TO , , yi%
 4650SYS "OS_ReadModeVariable", -1, 11 TO , , x%
 4660SYS "OS_ReadModeVariable", -1, 12 TO , , y%
 4670REM Lam the window into the middle if at all possible
 4680wimp_buff2%!0 = window%
 4690SYS "Wimp_GetWindowInfo", , wimp_buff2% OR 1
 4700wimp_buff%!0 = window%
 4710x% = (x% + 1) << xi%
 4720y% = (y% + 1) << yi%
 4730wimp_buff%!4  = (x% - (wimp_buff2%!52 - wimp_buff2%!44)) / 2
 4740wimp_buff%!8  = (y% - (wimp_buff2%!56 - wimp_buff2%!48)) / 2
 4750wimp_buff%!12 = (x% + (wimp_buff2%!52 - wimp_buff2%!44)) / 2
 4760wimp_buff%!16 = (y% + (wimp_buff2%!56 - wimp_buff2%!48)) / 2
 4770wimp_buff%!20 = 0
 4780wimp_buff%!24 = 0
 4790wimp_buff%!28 = -1
 4800IF wimp_buff%!4 < 0 OR wimp_buff%!8 < 0 THEN
 4810   PROC_reopen_window(wimp_buff2%)
 4820ELSE
 4830   PROC_reopen_window(wimp_buff%)
 4840ENDIF
 4850ENDPROC
 4860
 4870REM ---------+---------+---------+---------+---------+---------+---------+---------+
 4880
 4890DEF PROC_help_info(buff%)
 4900REM Stuff help info into buffer
 4910LOCAL mouse_x%, mouse_y%, mouse_button%, window_handle%, icon_handle%
 4920LOCAL I%, ptr%
 4930PROC_read_mouse(buff% + 20)
 4940ptr% = buff% + 20
 4950CASE window_handle% OF
 4960     WHEN -2:
 4970          ptr% = FN_add_message(ptr%, "HELP_PROG")
 4980
 4990     WHEN info_h%:
 5000          ptr% = FN_add_message(ptr%, "HELP_INFO")
 5010
 5020     WHEN menu_win%:
 5030          ptr% = FN_add_message(ptr%, "HELP_MENU_ICON_" + CHR$(icon_handle% DIV 3 + ASC"1"))
 5040
 5050     OTHERWISE
 5060REM         ptr% = FN_add_message_1(ptr%, "x at    : " + STR$mouse_x% + "|M")
 5070REM         ptr% = FN_add_message_1(ptr%, "y at    : " + STR$mouse_y% + "|M")
 5080REM         ptr% = FN_add_message_1(ptr%, "buttons : " + STR$mouse_button% + "|M")
 5090REM         ptr% = FN_add_message_1(ptr%, "window  : " + STR$~window_handle% + "|M")
 5100REM         ptr% = FN_add_message_1(ptr%, "icon    : " + STR$~icon_handle% + "|M")
 5110         ptr% = FN_add_message(ptr%, "HELP_NONE")
 5120
 5130ENDCASE
 5140?ptr% = 0
 5150buff%!0 = (ptr% - buff% + 4) AND -4
 5160PROC_reply_message(buff%, &503)
 5170ENDPROC
 5180
 5190REM ---------+---------+---------+---------+---------+---------+---------+---------+
 5200
 5210DEF FN_add_message(ptr%, token$)
 5220LOCAL mstr%
 5230SYS "MessageTrans_Lookup", mess_desc%, token$, mess_buff%, 256, 0, 0, 0, 0 TO , , mstr%
 5240= FN_add_message_1(ptr%, FN_zero_string(mstr%))
 5250
 5260REM ---------+---------+---------+---------+---------+---------+---------+---------+
 5270
 5280DEF FN_add_message_tok(ptr%, token$, a$, b$, c$, d$)
 5290LOCAL mstr%
 5300SYS "MessageTrans_Lookup", mess_desc%, token$, mess_buff%, 256, a$, b$, c$, d$ TO , , mstr%
 5310= FN_add_message_1(ptr%, FN_zero_string(mstr%))
 5320
 5330REM ---------+---------+---------+---------+---------+---------+---------+---------+
 5340
 5350DEF FN_add_message_1(ptr%, mess$)
 5360$ptr% = mess$
 5370= ptr% + LEN(mess$)
 5380
 5390REM ---------+---------+---------+---------+---------+---------+---------+---------+
 5400
 5410DEF PROC_reply_message(buff%, mess%)
 5420buff%!16 = mess%
 5430buff%!12 = buff%!8
 5440SYS "Wimp_SendMessage", 17, buff%, buff%!4
 5450ENDPROC
 5460
 5470REM ---------+---------+---------+---------+---------+---------+---------+---------+
 5480
 5490DEF PROC_ack_message(buff%)
 5500REM buff%!16 = mess%
 5510buff%!12 = buff%!8
 5520SYS "Wimp_SendMessage", 19, buff%, buff%!4
 5530ENDPROC
 5540
 5550REM ---------+---------+---------+---------+---------+---------+---------+---------+
 5560
 5570DEF PROC_read_mouse(buff%)
 5580mouse_x% = buff%!0
 5590mouse_y% = buff%!4
 5600mouse_button% = buff%!8
 5610window_handle% = buff%!12
 5620icon_handle% = buff%!16
 5630ENDPROC
 5640
 5650REM ---------+---------+---------+---------+---------+---------+---------+---------+

&� Program to delete dynamic areas.
� (c) T R Tanner. 1996
� Version 1: 15 Aug 96
(� dyn_area_list% 5000
2� menu_t1% 100
<� menu_t2% 100
F� menu_t3% 100
P
Z'� � � � � : �_Wimp_Error : �_finish
d
n�_wimp_init
x
��
�&       �             21-9876543210
�&       �_wimp_poll(%1100000110001)
�� �
��
�
�V� ---------+---------+---------+---------+---------+---------+---------+---------+
�
�� �_finish
�	� � �
�+ș "Wimp_CloseDown", handle%, &4b534154
��
��

V� ---------+---------+---------+---------+---------+---------+---------+---------+

"� �_menu
,� q%
6!� Enumerate dynamic area list
@�_list_dyn_areas
J&�_init_menu(menu_buff1%, menu_t1%)
T4�_menu_item("Info", &100, info_h%, &07000021, 0)
^?�_menu_item($menu_t2%, 0, �_sys_areas, &07000121, menu_t2%)
h@�_menu_item($menu_t3%, 0, �_user_areas, &07000121, menu_t3%)
r.�_menu_item("Quit", &80, -1, &07000021, 0)
|jș "Wimp_CreateMenu", , menu_buff1%, mouse_x% - 64, 96 + (q% - menu_buff1% - 28) / 24 * 44 � menu_win%
�menu% = menu_buff1%
��
�
�V� ---------+---------+---------+---------+---------+---------+---------+---------+
�
�� �_sys_areas
�� q%
�&�_init_menu(menu_buff2%, menu_t2%)
��_select_dyn_areas(0)
�*menu_buff2%!28 = menu_buff2%!28 � &100
�� q% = menu_buff2% + 28 =-1
�= menu_buff2%
�
V� ---------+---------+---------+---------+---------+---------+---------+---------+

� �_user_areas
&� q%
0&�_init_menu(menu_buff3%, menu_t3%)
:�_select_dyn_areas(2)
D�_select_dyn_areas(1)
N*menu_buff3%!28 = menu_buff3%!28 � &100
X� q% = menu_buff3% + 28 =-1
b= menu_buff3%
l
vV� ---------+---------+---------+---------+---------+---------+---------+---------+
�
�&� �_init_menu(menu_buff%, menu_t%)
�q% = menu_buff%
�q%!0 = menu_t%
�q%!4 = 0
�q%!8 = �($menu_t%)
�
q%?12 = 7
�
q%?13 = 2
�
q%?14 = 7
�
q%?15 = 0
�q%!16 = 44
�q%!20 = 44
�
q%!24 = 0
q% = q% + 28
�

 V� ---------+---------+---------+---------+---------+---------+---------+---------+
*
4� �_list_dyn_areas
>� n%, d%, e%, d$
Hn% = -1
Rd% = dyn_area_list%
\�
f)    ș "OS_DynamicArea", 3, n% � , n%
p    � n% <> -1 �
z       !d% = n%
�       d% += 4
�:       ș "OS_DynamicArea", 2, n% � , , , , , , , , e%
�!       d$ = �_zero_string(e%)
�       $d% = d$
�       d% += �(d$) + 1
�	    �
�
� n% = -1
�!d% = -1
��
�
�
�V� ---------+---------+---------+---------+---------+---------+---------+---------+
�
� �_select_dyn_areas(sw%)
>� Return a menu with the relevant areas in numerical order
$� d%, cur_n%, cur_ptr%, cur_max%
$cur_n% = -1
.�
8      cur_ptr% = 0
B      cur_max% = &7FFFFFFF
L      d% = dyn_area_list%
V      ȕ !d% <> -1
`F            � !d% > cur_n% � !d% < cur_max% � �_matched(d%, sw%) �
j                cur_ptr% = d%
t!               cur_max% = !d%
~            �
�(          d% += 4 + �($(d% + 4)) + 1
�      �
�      � cur_ptr% <> 0 �
�H         �_menu_item($(cur_ptr% + 4), 0, 0, &07000121, cur_ptr% + 4)
�         cur_n% = !cur_ptr%
�      �
�� cur_ptr% = 0
�*� sw% <> 2 � q%!(-24) = q%!(-24) � &80
��
�
�V� ---------+---------+---------+---------+---------+---------+---------+---------+
�
� �_matched(d%, sw%)

� !d% < 256 � sw% = 0 = �
1� !d% >= 256 � !d% < 1000000000 � sw% = 1 = �
<� Foul hack to get wimp sprite pool at top of user list!
(!= !d% >= 1000000000 � sw% = 2
2
<V� ---------+---------+---------+---------+---------+---------+---------+---------+
F
P� �_menu_select(buff%)
Z� a$
d+ș "Wimp_GetPointerInfo", , wimp_buff2%
n?ș "Wimp_DecodeMenu", , menu%, buff%, �200, " ") � , , , a$
xȎ a$ �
�     � "Info"
�
�     � "Quit"
�          �_finish
�
�
     
�          �_delete_area(a$)
�
��
�'� (wimp_buff2%!8 � 1) <> 0 � �_menu
��
�
�V� ---------+---------+---------+---------+---------+---------+---------+---------+

� �_delete_area(name$)
� d%, e%
"%name$ = �name$, �name$, ".") + 1)
,d% = dyn_area_list%
6%ȕ !d% <> -1 � name$ <> $(d% + 4)
@&      d% = d% + 4 + �$(d% + 4) + 1
J�
T9� !d% = -1 � 1000, "Unidentified menu entry " + name$
^'� Check they really want to do this
h!wimp_buff% = 0
rQ$(wimp_buff% + 4) = "Are you sure you want to delete area " + $(d% + 4) + "?"
|Rș "Wimp_ReportError", wimp_buff%, &903, prog_name$, "!deldynare", 1, 0 � , e%
�� e% = 1 �
�(   ș "XOS_DynamicArea", 1, !d% � e%
�   � e% <> 1 �
�5      !e% = 0 : � Downgrade severity a little bit
�I      ș "Wimp_ReportError", e%, &501, prog_name$, "!deldynare", 1, 0
�   �
��
��
�
�V� ---------+---------+---------+---------+---------+---------+---------+---------+
�
�� �_user_message
�&� Received a massage from the wimp
�� r1+0 = #bytes
�� r1+4 = sender
�� r1+8 = senders ref
�� r1+12 = reply ref or 0
� r1+16 = message code
� r1+20 = data
Ȏ wimp_buff%!16 �
&     � 0
0          �_finish
:
D     � &0000A
N          �_save_desktop
X
b     � &00502
l%          �_help_info(wimp_buff%)
v
�
     
�D          � 1000, "Unexpected user message " + �~(wimp_buff%!16)
�
��
��
�
�V� ---------+---------+---------+---------+---------+---------+---------+---------+
�
�� �_save_desktop
�� l%
�� �
�:� � � � � : �_ack_message(wimp_buff%) : �_report_error
�Mș "OS_ReadVarVal", "DelDynArea$Dir", wimp_buff% + 28, 256, 0, 3 � , , l%
 ?(wimp_buff% + 28 + l%) = 13
8�#(wimp_buff%!20), "Filer_Run " + $(wimp_buff% + 28)
�
 
*V� ---------+---------+---------+---------+---------+---------+---------+---------+
4
>\� �_mouse_click(mouse_x%, mouse_y%, mouse_button%, window_handle%, icon_handle%, old_b%)
HȎ window_handle% �
R     � -2:
\(          � mouse_button% = 2 �_menu
f
p
     
zt          � 1000, "Invalid window handle " + �window_handle% + "/" + �icon_handle% + " button " + �mouse_button%
�
��
��
�
�V� ---------+---------+---------+---------+---------+---------+---------+---------+
�
�V� ********************************************************************************
�
�!� W I M P   I N T E R F A C E
�
�V� ********************************************************************************
�
�V� ---------+---------+---------+---------+---------+---------+---------+---------+
	
	� �_wimp_poll(A%)
	'ș "Wimp_Poll", A%, wimp_buff% � A%
	$
	.Ȏ A% �
	8     � 0:      � Null event
	B
	L"     � 1:      � Redraw window
	V)          �_redraw_window(wimp_buff%)
	`
	j      � 2:      � Open Window
	t)          �_reopen_window(wimp_buff%)
	~
	�!     � 3:      � Close Window
	�*          �_close_window(wimp_buff%!0)
	�
	�+     � 4:      � Pointer leaving window
	�-          �_pointer_leaving(wimp_buff%!0)
	�
	�,     � 5:      � Pointer entering window
	�.          �_pointer_entering(wimp_buff%!0)
	�
	�      � 6:      � Mouse Click
	�r          �_mouse_click(wimp_buff%!0, wimp_buff%!4, wimp_buff%!8, wimp_buff%!12, wimp_buff%!16, wimp_buff%!20)
	�
"     � 7:      � User Drag box

=          �_drag_box(buff%!0, buff%!4, buff%!8, buff%!12)

      � 8:      � Key Pressed
(          �_key_press(wimp_buff%!0, wimp_buff%!4, wimp_buff%!8, wimp_buff%!12, wimp_buff%!16, wimp_buff%!20, wimp_buff%!24)
2
<#     � 9:      � Menu Selection
F'          �_menu_select(wimp_buff%)
P
Z)�     WHEN 10:     REM Scroll request
d%�     WHEN 11:     REM Lose caret
n%�     WHEN 12:     REM Gain caret
x� 13 - 16 reserved
�
�0     � 17, 18:     � User message (recorded)
�          �_user_message
�
�4�     WHEN 19:     REM User message acknowledged
�
�
     
�3          � 1000, "Unexpected Wimp_Poll " + �A%
�
��
��
�
�V� ---------+---------+---------+---------+---------+---------+---------+---------+

)� �_menu_item(i$, f1%, f2%, f3%, f4%)
q%!0 = f1%
"q%!4 = f2%
,q%!8 = f3%
6$(q% + 12) = i$
@� (f3% � &100) <> 0 �
J    q%!12 = f4%
T    q%!16 = 0
^    q%!20 = �(i$)
h�
rq% += 24
|�
�
�V� ---------+---------+---------+---------+---------+---------+---------+---------+
�
�� �_Wimp_Error
�� N%
�
N% = �
�!wimp_buff2% = � N%
�� N% < 0 �
�   $(wimp_buff2% + 4) = �$
��
�1   $(wimp_buff2% + 4) = �$ + " at line " + Þ
��
�5ș "Wimp_ReportError", wimp_buff2%, 0, prog_name$
�

V� ---------+---------+---------+---------+---------+---------+---------+---------+
&
0� �_report_error
:� -�, �$ + " at line " + Þ
D�
N
XV� ---------+---------+---------+---------+---------+---------+---------+---------+
b
l� �_wimp_init
v!� flags%, size%, mstr%, vers%
�
�� wimp_buff% 512
�� wimp_buff2% 512
�� menu_buff1% 1023
�� menu_buff2% 1023
�� menu_buff3% 1023
�� mess_desc% 16
�� mess_buff% 256
�
�Iș "MessageTrans_FileInfo", , "<DelDynArea$Dir>.messages" � , , size%
�� mess_t_buff% size%
�Uș "MessageTrans_OpenFile", mess_desc%, "<DelDynArea$Dir>.messages", mess_t_buff%
�Yș "MessageTrans_Lookup", mess_desc%, "PROG", mess_buff%, 256, 0, 0, 0, 0 � , , mstr%

%prog_name$ = �_zero_string(mstr%)

$menu_t1% = prog_name$

aș "MessageTrans_Lookup", mess_desc%, "MENU_2_TITLE", mess_buff%, 256, 0, 0, 0, 0 � , , mstr%

 $$menu_t2% = �_zero_string(mstr%)

*aș "MessageTrans_Lookup", mess_desc%, "MENU_3_TITLE", mess_buff%, 256, 0, 0, 0, 0 � , , mstr%

4$$menu_t3% = �_zero_string(mstr%)

>

H%� Things what I want to deal with

R1wimp_buff%!0 = &00502 : � Message_HelpRequest

\1wimp_buff%!4 = &0000A : � Message_SaveDesktop

fwimp_buff%!8 = 0

pQș "Wimp_Initialise", 310, &4b534154, prog_name$, wimp_buff% � vers%, handle%

z�_load_templates

��

�

�V� ---------+---------+---------+---------+---------+---------+---------+---------+

�

�� �_zero_string(buff%)

�� name$

�name$ = ""

�ȕ ?buff% >= �" "

�      name$ += �(?buff%)

�      buff% += 1

��

�= name$

�
V� ---------+---------+---------+---------+---------+---------+---------+---------+

� �_load_templates
$� cr12$, q%
.� �
88� � � � � : ș "Wimp_CloseTemplate" : �_report_error
B
L� Open & load templates
Vcr12$ = �12, �13)
`:ș "Wimp_OpenTemplate", , "<DelDynArea$Dir>.Templates"
j"� templ_buff% �_largest_buffer
t
~Binfo_h% = �_load_template("ProgInfo", �, templ_buff%, info_w%)
�
�ș "Wimp_CloseTemplate"
�
�� Generate Icon
�� q% 40
�!q% = -7
�q%!4 = 0
�q%!8 = 0
�q%!12 = 68
�q%!16 = 68
�q%!20 = %0011000000000010
�$(q% + 24) = "!deldynare"
*ș "Wimp_CreateIcon", 0, q% � iconbar%

�

V� ---------+---------+---------+---------+---------+---------+---------+---------+
(
27� �_load_template(name$, create%, � buff%, � data%)
<
� handle%
F� size%
P"� data% �_size_indirect(name$)
Z"size% = �_size_indirect(name$)
d,� buff% = 0 � buff% �_size_buffer(name$)
neș "Wimp_LoadTemplate", , buff%, data%, data% + size%, -1, name$ + cr12$, 0 � , , , , , , handle%
x:� handle% = 0 � � 1000, "Can't load template " + name$
�9� create% � ș "Wimp_CreateWindow", , buff% � handle%
�=handle%
�
�V� ---------+---------+---------+---------+---------+---------+---------+---------+
�
�� �_size_buffer(name$)
�� size%
�Aș "Wimp_LoadTemplate", , 0, , , , name$ + cr12$, 0 � , size%
�
=size%
�
�V� ---------+---------+---------+---------+---------+---------+---------+---------+
�
�� �_size_indirect(name$)
� size%
Cș "Wimp_LoadTemplate", , 0, , , , name$ + cr12$, 0 � , , size%

=size%
"
,V� ---------+---------+---------+---------+---------+---------+---------+---------+
6
@� �_largest_buffer
J#� largest%, size%, here%, name%
T� name% 12
^
here% = 0
hlargest% = 0
r�
|      $name% = "*"
�R      ș "Wimp_LoadTemplate", , 0, , , , name%, here% � , size%, , , , , here%
�-      � largest% < size% largest% = size%
�� here% = 0
�
=largest%
�
�V� ---------+---------+---------+---------+---------+---------+---------+---------+
�
�� �_redraw_window(buff%)
�� flag%
�+ș "Wimp_RedrawWindow", , buff% � flag%
�%�_update_rectangles(buff%, flag%)
��
�
V� ---------+---------+---------+---------+---------+---------+---------+---------+

 � �_update_window_now(buff%)
&� flag%
0+ș "Wimp_UpdateWindow", , buff% � flag%
:%�_update_rectangles(buff%, flag%)
D�
N
XV� ---------+---------+---------+---------+---------+---------+---------+---------+
b
l"� �_update_window_later(buff%)
vHș "Wimp_ForceRedraw", buff%!0, buff%!4, buff%!8, buff%!12, buff%!16
��
�
�V� ---------+---------+---------+---------+---------+---------+---------+---------+
�
�'� �_update_rectangles(buff%, flag%)
�ȕ flag%
�      �_redraw_this(buff%)
�1      ș "Wimp_GetRectangle", , buff% � flag%
��
��
�
�V� ---------+---------+---------+---------+---------+---------+---------+---------+
�
!� �_init_open_window(window%)
� x%, y%, xi%, yi%, f%
-ș "OS_ReadModeVariable", -1, 4 � , , xi%
 -ș "OS_ReadModeVariable", -1, 5 � , , yi%
*-ș "OS_ReadModeVariable", -1, 11 � , , x%
4-ș "OS_ReadModeVariable", -1, 12 � , , y%
>7� Lam the window into the middle if at all possible
Hwimp_buff2%!0 = window%
R.ș "Wimp_GetWindowInfo", , wimp_buff2% � 1
\wimp_buff%!0 = window%
fx% = (x% + 1) << xi%
py% = (y% + 1) << yi%
z@wimp_buff%!4  = (x% - (wimp_buff2%!52 - wimp_buff2%!44)) / 2
�@wimp_buff%!8  = (y% - (wimp_buff2%!56 - wimp_buff2%!48)) / 2
�@wimp_buff%!12 = (x% + (wimp_buff2%!52 - wimp_buff2%!44)) / 2
�@wimp_buff%!16 = (y% + (wimp_buff2%!56 - wimp_buff2%!48)) / 2
�wimp_buff%!20 = 0
�wimp_buff%!24 = 0
�wimp_buff%!28 = -1
�+� wimp_buff%!4 < 0 � wimp_buff%!8 < 0 �
�#   �_reopen_window(wimp_buff2%)
��
�"   �_reopen_window(wimp_buff%)
��
��
�
V� ---------+---------+---------+---------+---------+---------+---------+---------+

� �_help_info(buff%)
$!� Stuff help info into buffer
.E� mouse_x%, mouse_y%, mouse_button%, window_handle%, icon_handle%
8� I%, ptr%
B�_read_mouse(buff% + 20)
Lptr% = buff% + 20
VȎ window_handle% �
`     � -2:
j5          ptr% = �_add_message(ptr%, "HELP_PROG")
t
~     � info_h%:
�5          ptr% = �_add_message(ptr%, "HELP_INFO")
�
�     � menu_win%:
�X          ptr% = �_add_message(ptr%, "HELP_MENU_ICON_" + �(icon_handle% � 3 + �"1"))
�
�
     
�O�         ptr% = FN_add_message_1(ptr%, "x at    : " + STR$mouse_x% + "|M")
�O�         ptr% = FN_add_message_1(ptr%, "y at    : " + STR$mouse_y% + "|M")
�T�         ptr% = FN_add_message_1(ptr%, "buttons : " + STR$mouse_button% + "|M")
�V�         ptr% = FN_add_message_1(ptr%, "window  : " + STR$~window_handle% + "|M")
�T�         ptr% = FN_add_message_1(ptr%, "icon    : " + STR$~icon_handle% + "|M")
�4         ptr% = �_add_message(ptr%, "HELP_NONE")


�

?ptr% = 0
%buff%!0 = (ptr% - buff% + 4) � -4
( �_reply_message(buff%, &503)
2�
<
FV� ---------+---------+---------+---------+---------+---------+---------+---------+
P
Z!� �_add_message(ptr%, token$)
d� mstr%
nYș "MessageTrans_Lookup", mess_desc%, token$, mess_buff%, 256, 0, 0, 0, 0 � , , mstr%
x1= �_add_message_1(ptr%, �_zero_string(mstr%))
�
�V� ---------+---------+---------+---------+---------+---------+---------+---------+
�
�5� �_add_message_tok(ptr%, token$, a$, b$, c$, d$)
�� mstr%
�]ș "MessageTrans_Lookup", mess_desc%, token$, mess_buff%, 256, a$, b$, c$, d$ � , , mstr%
�1= �_add_message_1(ptr%, �_zero_string(mstr%))
�
�V� ---------+---------+---------+---------+---------+---------+---------+---------+
�
�"� �_add_message_1(ptr%, mess$)
�$ptr% = mess$
�= ptr% + �(mess$)

V� ---------+---------+---------+---------+---------+---------+---------+---------+

"#� �_reply_message(buff%, mess%)
,buff%!16 = mess%
6buff%!12 = buff%!8
@-ș "Wimp_SendMessage", 17, buff%, buff%!4
J�
T
^V� ---------+---------+---------+---------+---------+---------+---------+---------+
h
r� �_ack_message(buff%)
|� buff%!16 = mess%
�buff%!12 = buff%!8
�-ș "Wimp_SendMessage", 19, buff%, buff%!4
��
�
�V� ---------+---------+---------+---------+---------+---------+---------+---------+
�
�� �_read_mouse(buff%)
�mouse_x% = buff%!0
�mouse_y% = buff%!4
�mouse_button% = buff%!8
�window_handle% = buff%!12
�icon_handle% = buff%!16
��

V� ---------+---------+---------+---------+---------+---------+---------+---------+
�
00000000  0d 00 0a 26 f4 20 50 72  6f 67 72 61 6d 20 74 6f  |...&. Program to|
00000010  20 64 65 6c 65 74 65 20  64 79 6e 61 6d 69 63 20  | delete dynamic |
00000020  61 72 65 61 73 2e 0d 00  14 1a f4 20 28 63 29 20  |areas...... (c) |
00000030  54 20 52 20 54 61 6e 6e  65 72 2e 20 31 39 39 36  |T R Tanner. 1996|
00000040  0d 00 1e 1a f4 20 56 65  72 73 69 6f 6e 20 31 3a  |..... Version 1:|
00000050  20 31 35 20 41 75 67 20  39 36 0d 00 28 19 de 20  | 15 Aug 96..(.. |
00000060  64 79 6e 5f 61 72 65 61  5f 6c 69 73 74 25 20 35  |dyn_area_list% 5|
00000070  30 30 30 0d 00 32 12 de  20 6d 65 6e 75 5f 74 31  |000..2.. menu_t1|
00000080  25 20 31 30 30 0d 00 3c  12 de 20 6d 65 6e 75 5f  |% 100..<.. menu_|
00000090  74 32 25 20 31 30 30 0d  00 46 12 de 20 6d 65 6e  |t2% 100..F.. men|
000000a0  75 5f 74 33 25 20 31 30  30 0d 00 50 04 0d 00 5a  |u_t3% 100..P...Z|
000000b0  27 ee 20 85 20 ee 20 85  20 87 20 3a 20 f2 5f 57  |'. . . . . : ._W|
000000c0  69 6d 70 5f 45 72 72 6f  72 20 3a 20 f2 5f 66 69  |imp_Error : ._fi|
000000d0  6e 69 73 68 0d 00 64 04  0d 00 6e 0f f2 5f 77 69  |nish..d...n.._wi|
000000e0  6d 70 5f 69 6e 69 74 0d  00 78 04 0d 00 82 05 f5  |mp_init..x......|
000000f0  0d 00 8c 26 20 20 20 20  20 20 20 f4 20 20 20 20  |...&       .    |
00000100  20 20 20 20 20 20 20 20  20 32 31 2d 39 38 37 36  |         21-9876|
00000110  35 34 33 32 31 30 0d 00  96 26 20 20 20 20 20 20  |543210...&      |
00000120  20 f2 5f 77 69 6d 70 5f  70 6f 6c 6c 28 25 31 31  | ._wimp_poll(%11|
00000130  30 30 30 30 30 31 31 30  30 30 31 29 0d 00 a0 07  |00000110001)....|
00000140  fd 20 a3 0d 00 aa 05 e0  0d 00 b4 04 0d 00 be 56  |. .............V|
00000150  f4 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 2d 2d 2d 2d  |. ---------+----|
00000160  2d 2d 2d 2d 2d 2b 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |-----+---------+|
00000170  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 2d 2d 2d 2d 2d 2d  |---------+------|
00000180  2d 2d 2d 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 2d 2d  |---+---------+--|
00000190  2d 2d 2d 2d 2d 2d 2d 2b  2d 2d 2d 2d 2d 2d 2d 2d  |-------+--------|
000001a0  2d 2b 0d 00 c8 04 0d 00  d2 0e dd 20 f2 5f 66 69  |-+......... ._fi|
000001b0  6e 69 73 68 0d 00 dc 09  ee 20 85 20 87 0d 00 e6  |nish..... . ....|
000001c0  2b c8 99 20 22 57 69 6d  70 5f 43 6c 6f 73 65 44  |+.. "Wimp_CloseD|
000001d0  6f 77 6e 22 2c 20 68 61  6e 64 6c 65 25 2c 20 26  |own", handle%, &|
000001e0  34 62 35 33 34 31 35 34  0d 00 f0 05 e0 0d 00 fa  |4b534154........|
000001f0  05 e1 0d 01 04 04 0d 01  0e 56 f4 20 2d 2d 2d 2d  |.........V. ----|
00000200  2d 2d 2d 2d 2d 2b 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |-----+---------+|
00000210  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 2d 2d 2d 2d 2d 2d  |---------+------|
00000220  2d 2d 2d 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 2d 2d  |---+---------+--|
00000230  2d 2d 2d 2d 2d 2d 2d 2b  2d 2d 2d 2d 2d 2d 2d 2d  |-------+--------|
00000240  2d 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 0d 01 18 04  |-+---------+....|
00000250  0d 01 22 0c dd 20 f2 5f  6d 65 6e 75 0d 01 2c 08  |..".. ._menu..,.|
00000260  ea 20 71 25 0d 01 36 21  f4 20 45 6e 75 6d 65 72  |. q%..6!. Enumer|
00000270  61 74 65 20 64 79 6e 61  6d 69 63 20 61 72 65 61  |ate dynamic area|
00000280  20 6c 69 73 74 0d 01 40  14 f2 5f 6c 69 73 74 5f  | list..@.._list_|
00000290  64 79 6e 5f 61 72 65 61  73 0d 01 4a 26 f2 5f 69  |dyn_areas..J&._i|
000002a0  6e 69 74 5f 6d 65 6e 75  28 6d 65 6e 75 5f 62 75  |nit_menu(menu_bu|
000002b0  66 66 31 25 2c 20 6d 65  6e 75 5f 74 31 25 29 0d  |ff1%, menu_t1%).|
000002c0  01 54 34 f2 5f 6d 65 6e  75 5f 69 74 65 6d 28 22  |.T4._menu_item("|
000002d0  49 6e 66 6f 22 2c 20 26  31 30 30 2c 20 69 6e 66  |Info", &100, inf|
000002e0  6f 5f 68 25 2c 20 26 30  37 30 30 30 30 32 31 2c  |o_h%, &07000021,|
000002f0  20 30 29 0d 01 5e 3f f2  5f 6d 65 6e 75 5f 69 74  | 0)..^?._menu_it|
00000300  65 6d 28 24 6d 65 6e 75  5f 74 32 25 2c 20 30 2c  |em($menu_t2%, 0,|
00000310  20 a4 5f 73 79 73 5f 61  72 65 61 73 2c 20 26 30  | ._sys_areas, &0|
00000320  37 30 30 30 31 32 31 2c  20 6d 65 6e 75 5f 74 32  |7000121, menu_t2|
00000330  25 29 0d 01 68 40 f2 5f  6d 65 6e 75 5f 69 74 65  |%)..h@._menu_ite|
00000340  6d 28 24 6d 65 6e 75 5f  74 33 25 2c 20 30 2c 20  |m($menu_t3%, 0, |
00000350  a4 5f 75 73 65 72 5f 61  72 65 61 73 2c 20 26 30  |._user_areas, &0|
00000360  37 30 30 30 31 32 31 2c  20 6d 65 6e 75 5f 74 33  |7000121, menu_t3|
00000370  25 29 0d 01 72 2e f2 5f  6d 65 6e 75 5f 69 74 65  |%)..r.._menu_ite|
00000380  6d 28 22 51 75 69 74 22  2c 20 26 38 30 2c 20 2d  |m("Quit", &80, -|
00000390  31 2c 20 26 30 37 30 30  30 30 32 31 2c 20 30 29  |1, &07000021, 0)|
000003a0  0d 01 7c 6a c8 99 20 22  57 69 6d 70 5f 43 72 65  |..|j.. "Wimp_Cre|
000003b0  61 74 65 4d 65 6e 75 22  2c 20 2c 20 6d 65 6e 75  |ateMenu", , menu|
000003c0  5f 62 75 66 66 31 25 2c  20 6d 6f 75 73 65 5f 78  |_buff1%, mouse_x|
000003d0  25 20 2d 20 36 34 2c 20  39 36 20 2b 20 28 71 25  |% - 64, 96 + (q%|
000003e0  20 2d 20 6d 65 6e 75 5f  62 75 66 66 31 25 20 2d  | - menu_buff1% -|
000003f0  20 32 38 29 20 2f 20 32  34 20 2a 20 34 34 20 b8  | 28) / 24 * 44 .|
00000400  20 6d 65 6e 75 5f 77 69  6e 25 0d 01 86 17 6d 65  | menu_win%....me|
00000410  6e 75 25 20 3d 20 6d 65  6e 75 5f 62 75 66 66 31  |nu% = menu_buff1|
00000420  25 0d 01 90 05 e1 0d 01  9a 04 0d 01 a4 56 f4 20  |%............V. |
00000430  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 2d 2d 2d 2d 2d 2d  |---------+------|
00000440  2d 2d 2d 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 2d 2d  |---+---------+--|
00000450  2d 2d 2d 2d 2d 2d 2d 2b  2d 2d 2d 2d 2d 2d 2d 2d  |-------+--------|
00000460  2d 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 2d 2d 2d 2d  |-+---------+----|
00000470  2d 2d 2d 2d 2d 2b 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |-----+---------+|
00000480  0d 01 ae 04 0d 01 b8 11  dd 20 a4 5f 73 79 73 5f  |......... ._sys_|
00000490  61 72 65 61 73 0d 01 c2  08 ea 20 71 25 0d 01 cc  |areas..... q%...|
000004a0  26 f2 5f 69 6e 69 74 5f  6d 65 6e 75 28 6d 65 6e  |&._init_menu(men|
000004b0  75 5f 62 75 66 66 32 25  2c 20 6d 65 6e 75 5f 74  |u_buff2%, menu_t|
000004c0  32 25 29 0d 01 d6 19 f2  5f 73 65 6c 65 63 74 5f  |2%)....._select_|
000004d0  64 79 6e 5f 61 72 65 61  73 28 30 29 0d 01 e0 2a  |dyn_areas(0)...*|
000004e0  6d 65 6e 75 5f 62 75 66  66 32 25 21 32 38 20 3d  |menu_buff2%!28 =|
000004f0  20 6d 65 6e 75 5f 62 75  66 66 32 25 21 32 38 20  | menu_buff2%!28 |
00000500  84 20 26 31 30 30 0d 01  ea 1f e7 20 71 25 20 3d  |. &100..... q% =|
00000510  20 6d 65 6e 75 5f 62 75  66 66 32 25 20 2b 20 32  | menu_buff2% + 2|
00000520  38 20 3d 2d 31 0d 01 f4  11 3d 20 6d 65 6e 75 5f  |8 =-1....= menu_|
00000530  62 75 66 66 32 25 0d 01  fe 04 0d 02 08 56 f4 20  |buff2%.......V. |
00000540  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 2d 2d 2d 2d 2d 2d  |---------+------|
00000550  2d 2d 2d 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 2d 2d  |---+---------+--|
00000560  2d 2d 2d 2d 2d 2d 2d 2b  2d 2d 2d 2d 2d 2d 2d 2d  |-------+--------|
00000570  2d 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 2d 2d 2d 2d  |-+---------+----|
00000580  2d 2d 2d 2d 2d 2b 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |-----+---------+|
00000590  0d 02 12 04 0d 02 1c 12  dd 20 a4 5f 75 73 65 72  |......... ._user|
000005a0  5f 61 72 65 61 73 0d 02  26 08 ea 20 71 25 0d 02  |_areas..&.. q%..|
000005b0  30 26 f2 5f 69 6e 69 74  5f 6d 65 6e 75 28 6d 65  |0&._init_menu(me|
000005c0  6e 75 5f 62 75 66 66 33  25 2c 20 6d 65 6e 75 5f  |nu_buff3%, menu_|
000005d0  74 33 25 29 0d 02 3a 19  f2 5f 73 65 6c 65 63 74  |t3%)..:.._select|
000005e0  5f 64 79 6e 5f 61 72 65  61 73 28 32 29 0d 02 44  |_dyn_areas(2)..D|
000005f0  19 f2 5f 73 65 6c 65 63  74 5f 64 79 6e 5f 61 72  |.._select_dyn_ar|
00000600  65 61 73 28 31 29 0d 02  4e 2a 6d 65 6e 75 5f 62  |eas(1)..N*menu_b|
00000610  75 66 66 33 25 21 32 38  20 3d 20 6d 65 6e 75 5f  |uff3%!28 = menu_|
00000620  62 75 66 66 33 25 21 32  38 20 84 20 26 31 30 30  |buff3%!28 . &100|
00000630  0d 02 58 1f e7 20 71 25  20 3d 20 6d 65 6e 75 5f  |..X.. q% = menu_|
00000640  62 75 66 66 33 25 20 2b  20 32 38 20 3d 2d 31 0d  |buff3% + 28 =-1.|
00000650  02 62 11 3d 20 6d 65 6e  75 5f 62 75 66 66 33 25  |.b.= menu_buff3%|
00000660  0d 02 6c 04 0d 02 76 56  f4 20 2d 2d 2d 2d 2d 2d  |..l...vV. ------|
00000670  2d 2d 2d 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 2d 2d  |---+---------+--|
00000680  2d 2d 2d 2d 2d 2d 2d 2b  2d 2d 2d 2d 2d 2d 2d 2d  |-------+--------|
00000690  2d 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 2d 2d 2d 2d  |-+---------+----|
000006a0  2d 2d 2d 2d 2d 2b 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |-----+---------+|
000006b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 0d 02 80 04 0d 02  |---------+......|
000006c0  8a 26 dd 20 f2 5f 69 6e  69 74 5f 6d 65 6e 75 28  |.&. ._init_menu(|
000006d0  6d 65 6e 75 5f 62 75 66  66 25 2c 20 6d 65 6e 75  |menu_buff%, menu|
000006e0  5f 74 25 29 0d 02 94 13  71 25 20 3d 20 6d 65 6e  |_t%)....q% = men|
000006f0  75 5f 62 75 66 66 25 0d  02 9e 12 71 25 21 30 20  |u_buff%....q%!0 |
00000700  3d 20 6d 65 6e 75 5f 74  25 0d 02 a8 0c 71 25 21  |= menu_t%....q%!|
00000710  34 20 3d 20 30 0d 02 b2  16 71 25 21 38 20 3d 20  |4 = 0....q%!8 = |
00000720  a9 28 24 6d 65 6e 75 5f  74 25 29 0d 02 bc 0d 71  |.($menu_t%)....q|
00000730  25 3f 31 32 20 3d 20 37  0d 02 c6 0d 71 25 3f 31  |%?12 = 7....q%?1|
00000740  33 20 3d 20 32 0d 02 d0  0d 71 25 3f 31 34 20 3d  |3 = 2....q%?14 =|
00000750  20 37 0d 02 da 0d 71 25  3f 31 35 20 3d 20 30 0d  | 7....q%?15 = 0.|
00000760  02 e4 0e 71 25 21 31 36  20 3d 20 34 34 0d 02 ee  |...q%!16 = 44...|
00000770  0e 71 25 21 32 30 20 3d  20 34 34 0d 02 f8 0d 71  |.q%!20 = 44....q|
00000780  25 21 32 34 20 3d 20 30  0d 03 02 10 71 25 20 3d  |%!24 = 0....q% =|
00000790  20 71 25 20 2b 20 32 38  0d 03 0c 05 e1 0d 03 16  | q% + 28........|
000007a0  04 0d 03 20 56 f4 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |... V. ---------|
000007b0  2b 2d 2d 2d 2d 2d 2d 2d  2d 2d 2b 2d 2d 2d 2d 2d  |+---------+-----|
000007c0  2d 2d 2d 2d 2b 2d 2d 2d  2d 2d 2d 2d 2d 2d 2b 2d  |----+---------+-|
000007d0  2d 2d 2d 2d 2d 2d 2d 2d  2b 2d 2d 2d 2d 2d 2d 2d  |--------+-------|
000007e0  2d 2d 2b 2d 2d 2d 2d 2d  2d 2d 2d 2d 2b 2d 2d 2d  |--+---------+---|
000007f0  2d 2d 2d 2d 2d 2d 2b 0d  03 2a 04 0d 03 34 16 dd  |------+..*...4..|
00000800  20 f2 5f 6c 69 73 74 5f  64 79 6e 5f 61 72 65 61  | ._list_dyn_area|
00000810  73 0d 03 3e 14 ea 20 6e  25 2c 20 64 25 2c 20 65  |s..>.. n%, d%, e|
00000820  25 2c 20 64 24 0d 03 48  0b 6e 25 20 3d 20 2d 31  |%, d$..H.n% = -1|
00000830  0d 03 52 17 64 25 20 3d  20 64 79 6e 5f 61 72 65  |..R.d% = dyn_are|
00000840  61 5f 6c 69 73 74 25 0d  03 5c 05 f5 0d 03 66 29  |a_list%..\....f)|
00000850  20 20 20 20 c8 99 20 22  4f 53 5f 44 79 6e 61 6d  |    .. "OS_Dynam|
00000860  69 63 41 72 65 61 22 2c  20 33 2c 20 6e 25 20 b8  |icArea", 3, n% .|
00000870  20 2c 20 6e 25 0d 03 70  14 20 20 20 20 e7 20 6e  | , n%..p.    . n|
00000880  25 20 3c 3e 20 2d 31 20  8c 0d 03 7a 13 20 20 20  |% <> -1 ...z.   |
00000890  20 20 20 20 21 64 25 20  3d 20 6e 25 0d 03 84 12  |    !d% = n%....|
000008a0  20 20 20 20 20 20 20 64  25 20 2b 3d 20 34 0d 03  |       d% += 4..|
000008b0  8e 3a 20 20 20 20 20 20  20 c8 99 20 22 4f 53 5f  |.:       .. "OS_|
000008c0  44 79 6e 61 6d 69 63 41  72 65 61 22 2c 20 32 2c  |DynamicArea", 2,|
000008d0  20 6e 25 20 b8 20 2c 20  2c 20 2c 20 2c 20 2c 20  | n% . , , , , , |
000008e0  2c 20 2c 20 2c 20 65 25  0d 03 98 21 20 20 20 20  |, , , e%...!    |
000008f0  20 20 20 64 24 20 3d 20  a4 5f 7a 65 72 6f 5f 73  |   d$ = ._zero_s|
00000900  74 72 69 6e 67 28 65 25  29 0d 03 a2 13 20 20 20  |tring(e%)....   |
00000910  20 20 20 20 24 64 25 20  3d 20 64 24 0d 03 ac 1a  |    $d% = d$....|
00000920  20 20 20 20 20 20 20 64  25 20 2b 3d 20 a9 28 64  |       d% += .(d|
00000930  24 29 20 2b 20 31 0d 03  b6 09 20 20 20 20 cd 0d  |$) + 1....    ..|
00000940  03 c0 0d fd 20 6e 25 20  3d 20 2d 31 0d 03 ca 0c  |.... n% = -1....|
00000950  21 64 25 20 3d 20 2d 31  0d 03 d4 05 e1 0d 03 de  |!d% = -1........|
00000960  04 0d 03 e8 04 0d 03 f2  56 f4 20 2d 2d 2d 2d 2d  |........V. -----|
00000970  2d 2d 2d 2d 2b 2d 2d 2d  2d 2d 2d 2d 2d 2d 2b 2d  |----+---------+-|
00000980  2d 2d 2d 2d 2d 2d 2d 2d  2b 2d 2d 2d 2d 2d 2d 2d  |--------+-------|
00000990  2d 2d 2b 2d 2d 2d 2d 2d  2d 2d 2d 2d 2b 2d 2d 2d  |--+---------+---|
000009a0  2d 2d 2d 2d 2d 2d 2b 2d  2d 2d 2d 2d 2d 2d 2d 2d  |------+---------|
000009b0  2b 2d 2d 2d 2d 2d 2d 2d  2d 2d 2b 0d 03 fc 04 0d  |+---------+.....|
000009c0  04 06 1d dd 20 f2 5f 73  65 6c 65 63 74 5f 64 79  |.... ._select_dy|
000009d0  6e 5f 61 72 65 61 73 28  73 77 25 29 0d 04 10 3e  |n_areas(sw%)...>|
000009e0  f4 20 52 65 74 75 72 6e  20 61 20 6d 65 6e 75 20  |. Return a menu |
000009f0  77 69 74 68 20 74 68 65  20 72 65 6c 65 76 61 6e  |with the relevan|
00000a00  74 20 61 72 65 61 73 20  69 6e 20 6e 75 6d 65 72  |t areas in numer|
00000a10  69 63 61 6c 20 6f 72 64  65 72 0d 04 1a 24 ea 20  |ical order...$. |
00000a20  64 25 2c 20 63 75 72 5f  6e 25 2c 20 63 75 72 5f  |d%, cur_n%, cur_|
00000a30  70 74 72 25 2c 20 63 75  72 5f 6d 61 78 25 0d 04  |ptr%, cur_max%..|
00000a40  24 0f 63 75 72 5f 6e 25  20 3d 20 2d 31 0d 04 2e  |$.cur_n% = -1...|
00000a50  05 f5 0d 04 38 16 20 20  20 20 20 20 63 75 72 5f  |....8.      cur_|
00000a60  70 74 72 25 20 3d 20 30  0d 04 42 1e 20 20 20 20  |ptr% = 0..B.    |
00000a70  20 20 63 75 72 5f 6d 61  78 25 20 3d 20 26 37 46  |  cur_max% = &7F|
00000a80  46 46 46 46 46 46 0d 04  4c 1d 20 20 20 20 20 20  |FFFFFF..L.      |
00000a90  64 25 20 3d 20 64 79 6e  5f 61 72 65 61 5f 6c 69  |d% = dyn_area_li|
00000aa0  73 74 25 0d 04 56 16 20  20 20 20 20 20 c8 95 20  |st%..V.      .. |
00000ab0  21 64 25 20 3c 3e 20 2d  31 0d 04 60 46 20 20 20  |!d% <> -1..`F   |
00000ac0  20 20 20 20 20 20 20 20  20 e7 20 21 64 25 20 3e  |         . !d% >|
00000ad0  20 63 75 72 5f 6e 25 20  80 20 21 64 25 20 3c 20  | cur_n% . !d% < |
00000ae0  63 75 72 5f 6d 61 78 25  20 80 20 a4 5f 6d 61 74  |cur_max% . ._mat|
00000af0  63 68 65 64 28 64 25 2c  20 73 77 25 29 20 8c 0d  |ched(d%, sw%) ..|
00000b00  04 6a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.j              |
00000b10  20 20 63 75 72 5f 70 74  72 25 20 3d 20 64 25 0d  |  cur_ptr% = d%.|
00000b20  04 74 21 20 20 20 20 20  20 20 20 20 20 20 20 20  |.t!             |
00000b30  20 20 63 75 72 5f 6d 61  78 25 20 3d 20 21 64 25  |  cur_max% = !d%|
00000b40  0d 04 7e 11 20 20 20 20  20 20 20 20 20 20 20 20  |..~.            |
00000b50  cd 0d 04 88 28 20 20 20  20 20 20 20 20 20 20 64  |....(          d|
00000b60  25 20 2b 3d 20 34 20 2b  20 a9 28 24 28 64 25 20  |% += 4 + .($(d% |
00000b70  2b 20 34 29 29 20 2b 20  31 0d 04 92 0b 20 20 20  |+ 4)) + 1....   |
00000b80  20 20 20 ce 0d 04 9c 1b  20 20 20 20 20 20 e7 20  |   .....      . |
00000b90  63 75 72 5f 70 74 72 25  20 3c 3e 20 30 20 8c 0d  |cur_ptr% <> 0 ..|
00000ba0  04 a6 48 20 20 20 20 20  20 20 20 20 f2 5f 6d 65  |..H         ._me|
00000bb0  6e 75 5f 69 74 65 6d 28  24 28 63 75 72 5f 70 74  |nu_item($(cur_pt|
00000bc0  72 25 20 2b 20 34 29 2c  20 30 2c 20 30 2c 20 26  |r% + 4), 0, 0, &|
00000bd0  30 37 30 30 30 31 32 31  2c 20 63 75 72 5f 70 74  |07000121, cur_pt|
00000be0  72 25 20 2b 20 34 29 0d  04 b0 1f 20 20 20 20 20  |r% + 4)....     |
00000bf0  20 20 20 20 63 75 72 5f  6e 25 20 3d 20 21 63 75  |    cur_n% = !cu|
00000c00  72 5f 70 74 72 25 0d 04  ba 0b 20 20 20 20 20 20  |r_ptr%....      |
00000c10  cd 0d 04 c4 12 fd 20 63  75 72 5f 70 74 72 25 20  |...... cur_ptr% |
00000c20  3d 20 30 0d 04 ce 2a e7  20 73 77 25 20 3c 3e 20  |= 0...*. sw% <> |
00000c30  32 20 8c 20 71 25 21 28  2d 32 34 29 20 3d 20 71  |2 . q%!(-24) = q|
00000c40  25 21 28 2d 32 34 29 20  84 20 26 38 30 0d 04 d8  |%!(-24) . &80...|
00000c50  05 e1 0d 04 e2 04 0d 04  ec 56 f4 20 2d 2d 2d 2d  |.........V. ----|
00000c60  2d 2d 2d 2d 2d 2b 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |-----+---------+|
00000c70  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 2d 2d 2d 2d 2d 2d  |---------+------|
00000c80  2d 2d 2d 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 2d 2d  |---+---------+--|
00000c90  2d 2d 2d 2d 2d 2d 2d 2b  2d 2d 2d 2d 2d 2d 2d 2d  |-------+--------|
00000ca0  2d 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 0d 04 f6 04  |-+---------+....|
00000cb0  0d 05 00 18 dd 20 a4 5f  6d 61 74 63 68 65 64 28  |..... ._matched(|
00000cc0  64 25 2c 20 73 77 25 29  0d 05 0a 1d e7 20 21 64  |d%, sw%)..... !d|
00000cd0  25 20 3c 20 32 35 36 20  80 20 73 77 25 20 3d 20  |% < 256 . sw% = |
00000ce0  30 20 3d 20 b9 0d 05 14  31 e7 20 21 64 25 20 3e  |0 = ....1. !d% >|
00000cf0  3d 20 32 35 36 20 80 20  21 64 25 20 3c 20 31 30  |= 256 . !d% < 10|
00000d00  30 30 30 30 30 30 30 30  20 80 20 73 77 25 20 3d  |00000000 . sw% =|
00000d10  20 31 20 3d 20 b9 0d 05  1e 3c f4 20 46 6f 75 6c  | 1 = ....<. Foul|
00000d20  20 68 61 63 6b 20 74 6f  20 67 65 74 20 77 69 6d  | hack to get wim|
00000d30  70 20 73 70 72 69 74 65  20 70 6f 6f 6c 20 61 74  |p sprite pool at|
00000d40  20 74 6f 70 20 6f 66 20  75 73 65 72 20 6c 69 73  | top of user lis|
00000d50  74 21 0d 05 28 21 3d 20  21 64 25 20 3e 3d 20 31  |t!..(!= !d% >= 1|
00000d60  30 30 30 30 30 30 30 30  30 20 80 20 73 77 25 20  |000000000 . sw% |
00000d70  3d 20 32 0d 05 32 04 0d  05 3c 56 f4 20 2d 2d 2d  |= 2..2...<V. ---|
00000d80  2d 2d 2d 2d 2d 2d 2b 2d  2d 2d 2d 2d 2d 2d 2d 2d  |------+---------|
00000d90  2b 2d 2d 2d 2d 2d 2d 2d  2d 2d 2b 2d 2d 2d 2d 2d  |+---------+-----|
00000da0  2d 2d 2d 2d 2b 2d 2d 2d  2d 2d 2d 2d 2d 2d 2b 2d  |----+---------+-|
00000db0  2d 2d 2d 2d 2d 2d 2d 2d  2b 2d 2d 2d 2d 2d 2d 2d  |--------+-------|
00000dc0  2d 2d 2b 2d 2d 2d 2d 2d  2d 2d 2d 2d 2b 0d 05 46  |--+---------+..F|
00000dd0  04 0d 05 50 1a dd 20 f2  5f 6d 65 6e 75 5f 73 65  |...P.. ._menu_se|
00000de0  6c 65 63 74 28 62 75 66  66 25 29 0d 05 5a 08 ea  |lect(buff%)..Z..|
00000df0  20 61 24 0d 05 64 2b c8  99 20 22 57 69 6d 70 5f  | a$..d+.. "Wimp_|
00000e00  47 65 74 50 6f 69 6e 74  65 72 49 6e 66 6f 22 2c  |GetPointerInfo",|
00000e10  20 2c 20 77 69 6d 70 5f  62 75 66 66 32 25 0d 05  | , wimp_buff2%..|
00000e20  6e 3f c8 99 20 22 57 69  6d 70 5f 44 65 63 6f 64  |n?.. "Wimp_Decod|
00000e30  65 4d 65 6e 75 22 2c 20  2c 20 6d 65 6e 75 25 2c  |eMenu", , menu%,|
00000e40  20 62 75 66 66 25 2c 20  c4 32 30 30 2c 20 22 20  | buff%, .200, " |
00000e50  22 29 20 b8 20 2c 20 2c  20 2c 20 61 24 0d 05 78  |") . , , , a$..x|
00000e60  0b c8 8e 20 61 24 20 ca  0d 05 82 11 20 20 20 20  |... a$ .....    |
00000e70  20 c9 20 22 49 6e 66 6f  22 0d 05 8c 04 0d 05 96  | . "Info".......|
00000e80  11 20 20 20 20 20 c9 20  22 51 75 69 74 22 0d 05  |.     . "Quit"..|
00000e90  a0 16 20 20 20 20 20 20  20 20 20 20 f2 5f 66 69  |..          ._fi|
00000ea0  6e 69 73 68 0d 05 aa 04  0d 05 b4 0a 20 20 20 20  |nish........    |
00000eb0  20 7f 0d 05 be 1f 20 20  20 20 20 20 20 20 20 20  | .....          |
00000ec0  f2 5f 64 65 6c 65 74 65  5f 61 72 65 61 28 61 24  |._delete_area(a$|
00000ed0  29 0d 05 c8 04 0d 05 d2  05 cb 0d 05 dc 27 e7 20  |)............'. |
00000ee0  28 77 69 6d 70 5f 62 75  66 66 32 25 21 38 20 80  |(wimp_buff2%!8 .|
00000ef0  20 31 29 20 3c 3e 20 30  20 8c 20 f2 5f 6d 65 6e  | 1) <> 0 . ._men|
00000f00  75 0d 05 e6 05 e1 0d 05  f0 04 0d 05 fa 56 f4 20  |u............V. |
00000f10  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 2d 2d 2d 2d 2d 2d  |---------+------|
00000f20  2d 2d 2d 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 2d 2d  |---+---------+--|
00000f30  2d 2d 2d 2d 2d 2d 2d 2b  2d 2d 2d 2d 2d 2d 2d 2d  |-------+--------|
00000f40  2d 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 2d 2d 2d 2d  |-+---------+----|
00000f50  2d 2d 2d 2d 2d 2b 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |-----+---------+|
00000f60  0d 06 04 04 0d 06 0e 1a  dd 20 f2 5f 64 65 6c 65  |......... ._dele|
00000f70  74 65 5f 61 72 65 61 28  6e 61 6d 65 24 29 0d 06  |te_area(name$)..|
00000f80  18 0c ea 20 64 25 2c 20  65 25 0d 06 22 25 6e 61  |... d%, e%.."%na|
00000f90  6d 65 24 20 3d 20 c1 6e  61 6d 65 24 2c 20 a7 6e  |me$ = .name$, .n|
00000fa0  61 6d 65 24 2c 20 22 2e  22 29 20 2b 20 31 29 0d  |ame$, ".") + 1).|
00000fb0  06 2c 17 64 25 20 3d 20  64 79 6e 5f 61 72 65 61  |.,.d% = dyn_area|
00000fc0  5f 6c 69 73 74 25 0d 06  36 25 c8 95 20 21 64 25  |_list%..6%.. !d%|
00000fd0  20 3c 3e 20 2d 31 20 80  20 6e 61 6d 65 24 20 3c  | <> -1 . name$ <|
00000fe0  3e 20 24 28 64 25 20 2b  20 34 29 0d 06 40 26 20  |> $(d% + 4)..@& |
00000ff0  20 20 20 20 20 64 25 20  3d 20 64 25 20 2b 20 34  |     d% = d% + 4|
00001000  20 2b 20 a9 24 28 64 25  20 2b 20 34 29 20 2b 20  | + .$(d% + 4) + |
00001010  31 0d 06 4a 05 ce 0d 06  54 39 e7 20 21 64 25 20  |1..J....T9. !d% |
00001020  3d 20 2d 31 20 85 20 31  30 30 30 2c 20 22 55 6e  |= -1 . 1000, "Un|
00001030  69 64 65 6e 74 69 66 69  65 64 20 6d 65 6e 75 20  |identified menu |
00001040  65 6e 74 72 79 20 22 20  2b 20 6e 61 6d 65 24 0d  |entry " + name$.|
00001050  06 5e 27 f4 20 43 68 65  63 6b 20 74 68 65 79 20  |.^'. Check they |
00001060  72 65 61 6c 6c 79 20 77  61 6e 74 20 74 6f 20 64  |really want to d|
00001070  6f 20 74 68 69 73 0d 06  68 13 21 77 69 6d 70 5f  |o this..h.!wimp_|
00001080  62 75 66 66 25 20 3d 20  30 0d 06 72 51 24 28 77  |buff% = 0..rQ$(w|
00001090  69 6d 70 5f 62 75 66 66  25 20 2b 20 34 29 20 3d  |imp_buff% + 4) =|
000010a0  20 22 41 72 65 20 79 6f  75 20 73 75 72 65 20 79  | "Are you sure y|
000010b0  6f 75 20 77 61 6e 74 20  74 6f 20 64 65 6c 65 74  |ou want to delet|
000010c0  65 20 61 72 65 61 20 22  20 2b 20 24 28 64 25 20  |e area " + $(d% |
000010d0  2b 20 34 29 20 2b 20 22  3f 22 0d 06 7c 52 c8 99  |+ 4) + "?"..|R..|
000010e0  20 22 57 69 6d 70 5f 52  65 70 6f 72 74 45 72 72  | "Wimp_ReportErr|
000010f0  6f 72 22 2c 20 77 69 6d  70 5f 62 75 66 66 25 2c  |or", wimp_buff%,|
00001100  20 26 39 30 33 2c 20 70  72 6f 67 5f 6e 61 6d 65  | &903, prog_name|
00001110  24 2c 20 22 21 64 65 6c  64 79 6e 61 72 65 22 2c  |$, "!deldynare",|
00001120  20 31 2c 20 30 20 b8 20  2c 20 65 25 0d 06 86 0e  | 1, 0 . , e%....|
00001130  e7 20 65 25 20 3d 20 31  20 8c 0d 06 90 28 20 20  |. e% = 1 ....(  |
00001140  20 c8 99 20 22 58 4f 53  5f 44 79 6e 61 6d 69 63  | .. "XOS_Dynamic|
00001150  41 72 65 61 22 2c 20 31  2c 20 21 64 25 20 b8 20  |Area", 1, !d% . |
00001160  65 25 0d 06 91 12 20 20  20 e7 20 65 25 20 3c 3e  |e%....   . e% <>|
00001170  20 31 20 8c 0d 06 92 35  20 20 20 20 20 20 21 65  | 1 ....5      !e|
00001180  25 20 3d 20 30 20 3a 20  f4 20 44 6f 77 6e 67 72  |% = 0 : . Downgr|
00001190  61 64 65 20 73 65 76 65  72 69 74 79 20 61 20 6c  |ade severity a l|
000011a0  69 74 74 6c 65 20 62 69  74 0d 06 93 49 20 20 20  |ittle bit...I   |
000011b0  20 20 20 c8 99 20 22 57  69 6d 70 5f 52 65 70 6f  |   .. "Wimp_Repo|
000011c0  72 74 45 72 72 6f 72 22  2c 20 65 25 2c 20 26 35  |rtError", e%, &5|
000011d0  30 31 2c 20 70 72 6f 67  5f 6e 61 6d 65 24 2c 20  |01, prog_name$, |
000011e0  22 21 64 65 6c 64 79 6e  61 72 65 22 2c 20 31 2c  |"!deldynare", 1,|
000011f0  20 30 0d 06 94 08 20 20  20 cd 0d 06 9a 05 cd 0d  | 0....   .......|
00001200  06 a4 05 e1 0d 06 ae 04  0d 06 b8 56 f4 20 2d 2d  |...........V. --|
00001210  2d 2d 2d 2d 2d 2d 2d 2b  2d 2d 2d 2d 2d 2d 2d 2d  |-------+--------|
00001220  2d 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 2d 2d 2d 2d  |-+---------+----|
00001230  2d 2d 2d 2d 2d 2b 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |-----+---------+|
00001240  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 2d 2d 2d 2d 2d 2d  |---------+------|
00001250  2d 2d 2d 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 0d 06  |---+---------+..|
00001260  c2 04 0d 06 cc 14 dd 20  f2 5f 75 73 65 72 5f 6d  |....... ._user_m|
00001270  65 73 73 61 67 65 0d 06  d6 26 f4 20 52 65 63 65  |essage...&. Rece|
00001280  69 76 65 64 20 61 20 6d  61 73 73 61 67 65 20 66  |ived a massage f|
00001290  72 6f 6d 20 74 68 65 20  77 69 6d 70 0d 06 e0 13  |rom the wimp....|
000012a0  f4 20 72 31 2b 30 20 3d  20 23 62 79 74 65 73 0d  |. r1+0 = #bytes.|
000012b0  06 ea 13 f4 20 72 31 2b  34 20 3d 20 73 65 6e 64  |.... r1+4 = send|
000012c0  65 72 0d 06 f4 18 f4 20  72 31 2b 38 20 3d 20 73  |er..... r1+8 = s|
000012d0  65 6e 64 65 72 73 20 72  65 66 0d 06 fe 1c f4 20  |enders ref..... |
000012e0  72 31 2b 31 32 20 3d 20  72 65 70 6c 79 20 72 65  |r1+12 = reply re|
000012f0  66 20 6f 72 20 30 0d 07  08 1a f4 20 72 31 2b 31  |f or 0..... r1+1|
00001300  36 20 3d 20 6d 65 73 73  61 67 65 20 63 6f 64 65  |6 = message code|
00001310  0d 07 12 12 f4 20 72 31  2b 32 30 20 3d 20 64 61  |..... r1+20 = da|
00001320  74 61 0d 07 1c 16 c8 8e  20 77 69 6d 70 5f 62 75  |ta...... wimp_bu|
00001330  66 66 25 21 31 36 20 ca  0d 07 26 0c 20 20 20 20  |ff%!16 ...&.    |
00001340  20 c9 20 30 0d 07 30 16  20 20 20 20 20 20 20 20  | . 0..0.        |
00001350  20 20 f2 5f 66 69 6e 69  73 68 0d 07 3a 04 0d 07  |  ._finish..:...|
00001360  44 11 20 20 20 20 20 c9  20 26 30 30 30 30 41 0d  |D.     . &0000A.|
00001370  07 4e 1c 20 20 20 20 20  20 20 20 20 20 f2 5f 73  |.N.          ._s|
00001380  61 76 65 5f 64 65 73 6b  74 6f 70 0d 07 58 04 0d  |ave_desktop..X..|
00001390  07 62 11 20 20 20 20 20  c9 20 26 30 30 35 30 32  |.b.     . &00502|
000013a0  0d 07 6c 25 20 20 20 20  20 20 20 20 20 20 f2 5f  |..l%          ._|
000013b0  68 65 6c 70 5f 69 6e 66  6f 28 77 69 6d 70 5f 62  |help_info(wimp_b|
000013c0  75 66 66 25 29 0d 07 76  04 0d 07 80 0a 20 20 20  |uff%)..v.....   |
000013d0  20 20 7f 0d 07 8a 44 20  20 20 20 20 20 20 20 20  |  ....D         |
000013e0  20 85 20 31 30 30 30 2c  20 22 55 6e 65 78 70 65  | . 1000, "Unexpe|
000013f0  63 74 65 64 20 75 73 65  72 20 6d 65 73 73 61 67  |cted user messag|
00001400  65 20 22 20 2b 20 c3 7e  28 77 69 6d 70 5f 62 75  |e " + .~(wimp_bu|
00001410  66 66 25 21 31 36 29 0d  07 94 04 0d 07 9e 05 cb  |ff%!16).........|
00001420  0d 07 a8 05 e1 0d 07 b2  04 0d 07 bc 56 f4 20 2d  |............V. -|
00001430  2d 2d 2d 2d 2d 2d 2d 2d  2b 2d 2d 2d 2d 2d 2d 2d  |--------+-------|
00001440  2d 2d 2b 2d 2d 2d 2d 2d  2d 2d 2d 2d 2b 2d 2d 2d  |--+---------+---|
00001450  2d 2d 2d 2d 2d 2d 2b 2d  2d 2d 2d 2d 2d 2d 2d 2d  |------+---------|
00001460  2b 2d 2d 2d 2d 2d 2d 2d  2d 2d 2b 2d 2d 2d 2d 2d  |+---------+-----|
00001470  2d 2d 2d 2d 2b 2d 2d 2d  2d 2d 2d 2d 2d 2d 2b 0d  |----+---------+.|
00001480  07 c6 04 0d 07 d0 14 dd  20 f2 5f 73 61 76 65 5f  |........ ._save_|
00001490  64 65 73 6b 74 6f 70 0d  07 da 08 ea 20 6c 25 0d  |desktop..... l%.|
000014a0  07 e4 07 ea 20 85 0d 07  ee 3a ee 20 85 20 ea 20  |.... ....:. . . |
000014b0  f7 20 85 20 3a 20 f2 5f  61 63 6b 5f 6d 65 73 73  |. . : ._ack_mess|
000014c0  61 67 65 28 77 69 6d 70  5f 62 75 66 66 25 29 20  |age(wimp_buff%) |
000014d0  3a 20 f2 5f 72 65 70 6f  72 74 5f 65 72 72 6f 72  |: ._report_error|
000014e0  0d 07 f8 4d c8 99 20 22  4f 53 5f 52 65 61 64 56  |...M.. "OS_ReadV|
000014f0  61 72 56 61 6c 22 2c 20  22 44 65 6c 44 79 6e 41  |arVal", "DelDynA|
00001500  72 65 61 24 44 69 72 22  2c 20 77 69 6d 70 5f 62  |rea$Dir", wimp_b|
00001510  75 66 66 25 20 2b 20 32  38 2c 20 32 35 36 2c 20  |uff% + 28, 256, |
00001520  30 2c 20 33 20 b8 20 2c  20 2c 20 6c 25 0d 08 02  |0, 3 . , , l%...|
00001530  20 3f 28 77 69 6d 70 5f  62 75 66 66 25 20 2b 20  | ?(wimp_buff% + |
00001540  32 38 20 2b 20 6c 25 29  20 3d 20 31 33 0d 08 0c  |28 + l%) = 13...|
00001550  38 d5 23 28 77 69 6d 70  5f 62 75 66 66 25 21 32  |8.#(wimp_buff%!2|
00001560  30 29 2c 20 22 46 69 6c  65 72 5f 52 75 6e 20 22  |0), "Filer_Run "|
00001570  20 2b 20 24 28 77 69 6d  70 5f 62 75 66 66 25 20  | + $(wimp_buff% |
00001580  2b 20 32 38 29 0d 08 16  05 e1 0d 08 20 04 0d 08  |+ 28)....... ...|
00001590  2a 56 f4 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 2d 2d  |*V. ---------+--|
000015a0  2d 2d 2d 2d 2d 2d 2d 2b  2d 2d 2d 2d 2d 2d 2d 2d  |-------+--------|
000015b0  2d 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 2d 2d 2d 2d  |-+---------+----|
000015c0  2d 2d 2d 2d 2d 2b 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |-----+---------+|
000015d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 2d 2d 2d 2d 2d 2d  |---------+------|
000015e0  2d 2d 2d 2b 0d 08 34 04  0d 08 3e 5c dd 20 f2 5f  |---+..4...>\. ._|
000015f0  6d 6f 75 73 65 5f 63 6c  69 63 6b 28 6d 6f 75 73  |mouse_click(mous|
00001600  65 5f 78 25 2c 20 6d 6f  75 73 65 5f 79 25 2c 20  |e_x%, mouse_y%, |
00001610  6d 6f 75 73 65 5f 62 75  74 74 6f 6e 25 2c 20 77  |mouse_button%, w|
00001620  69 6e 64 6f 77 5f 68 61  6e 64 6c 65 25 2c 20 69  |indow_handle%, i|
00001630  63 6f 6e 5f 68 61 6e 64  6c 65 25 2c 20 6f 6c 64  |con_handle%, old|
00001640  5f 62 25 29 0d 08 48 17  c8 8e 20 77 69 6e 64 6f  |_b%)..H... windo|
00001650  77 5f 68 61 6e 64 6c 65  25 20 ca 0d 08 52 0e 20  |w_handle% ...R. |
00001660  20 20 20 20 c9 20 2d 32  3a 0d 08 5c 28 20 20 20  |    . -2:..\(   |
00001670  20 20 20 20 20 20 20 e7  20 6d 6f 75 73 65 5f 62  |       . mouse_b|
00001680  75 74 74 6f 6e 25 20 3d  20 32 20 f2 5f 6d 65 6e  |utton% = 2 ._men|
00001690  75 0d 08 66 04 0d 08 70  0a 20 20 20 20 20 7f 0d  |u..f...p.     ..|
000016a0  08 7a 74 20 20 20 20 20  20 20 20 20 20 85 20 31  |.zt          . 1|
000016b0  30 30 30 2c 20 22 49 6e  76 61 6c 69 64 20 77 69  |000, "Invalid wi|
000016c0  6e 64 6f 77 20 68 61 6e  64 6c 65 20 22 20 2b 20  |ndow handle " + |
000016d0  c3 77 69 6e 64 6f 77 5f  68 61 6e 64 6c 65 25 20  |.window_handle% |
000016e0  2b 20 22 2f 22 20 2b 20  c3 69 63 6f 6e 5f 68 61  |+ "/" + .icon_ha|
000016f0  6e 64 6c 65 25 20 2b 20  22 20 62 75 74 74 6f 6e  |ndle% + " button|
00001700  20 22 20 2b 20 c3 6d 6f  75 73 65 5f 62 75 74 74  | " + .mouse_butt|
00001710  6f 6e 25 0d 08 84 04 0d  08 8e 05 cb 0d 08 98 05  |on%.............|
00001720  e1 0d 08 a2 04 0d 08 ac  56 f4 20 2d 2d 2d 2d 2d  |........V. -----|
00001730  2d 2d 2d 2d 2b 2d 2d 2d  2d 2d 2d 2d 2d 2d 2b 2d  |----+---------+-|
00001740  2d 2d 2d 2d 2d 2d 2d 2d  2b 2d 2d 2d 2d 2d 2d 2d  |--------+-------|
00001750  2d 2d 2b 2d 2d 2d 2d 2d  2d 2d 2d 2d 2b 2d 2d 2d  |--+---------+---|
00001760  2d 2d 2d 2d 2d 2d 2b 2d  2d 2d 2d 2d 2d 2d 2d 2d  |------+---------|
00001770  2b 2d 2d 2d 2d 2d 2d 2d  2d 2d 2b 0d 08 b6 04 0d  |+---------+.....|
00001780  08 c0 56 f4 20 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |..V. ***********|
00001790  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000017d0  2a 2a 2a 2a 2a 0d 08 ca  04 0d 08 d4 21 f4 20 57  |*****.......!. W|
000017e0  20 49 20 4d 20 50 20 20  20 49 20 4e 20 54 20 45  | I M P   I N T E|
000017f0  20 52 20 46 20 41 20 43  20 45 0d 08 de 04 0d 08  | R F A C E......|
00001800  e8 56 f4 20 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |.V. ************|
00001810  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00001850  2a 2a 2a 2a 0d 08 f2 04  0d 08 fc 56 f4 20 2d 2d  |****.......V. --|
00001860  2d 2d 2d 2d 2d 2d 2d 2b  2d 2d 2d 2d 2d 2d 2d 2d  |-------+--------|
00001870  2d 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 2d 2d 2d 2d  |-+---------+----|
00001880  2d 2d 2d 2d 2d 2b 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |-----+---------+|
00001890  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 2d 2d 2d 2d 2d 2d  |---------+------|
000018a0  2d 2d 2d 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 0d 09  |---+---------+..|
000018b0  06 04 0d 09 10 15 dd 20  f2 5f 77 69 6d 70 5f 70  |....... ._wimp_p|
000018c0  6f 6c 6c 28 41 25 29 0d  09 1a 27 c8 99 20 22 57  |oll(A%)...'.. "W|
000018d0  69 6d 70 5f 50 6f 6c 6c  22 2c 20 41 25 2c 20 77  |imp_Poll", A%, w|
000018e0  69 6d 70 5f 62 75 66 66  25 20 b8 20 41 25 0d 09  |imp_buff% . A%..|
000018f0  24 04 0d 09 2e 0b c8 8e  20 41 25 20 ca 0d 09 38  |$....... A% ...8|
00001900  1f 20 20 20 20 20 c9 20  30 3a 20 20 20 20 20 20  |.     . 0:      |
00001910  f4 20 4e 75 6c 6c 20 65  76 65 6e 74 0d 09 42 04  |. Null event..B.|
00001920  0d 09 4c 22 20 20 20 20  20 c9 20 31 3a 20 20 20  |..L"     . 1:   |
00001930  20 20 20 f4 20 52 65 64  72 61 77 20 77 69 6e 64  |   . Redraw wind|
00001940  6f 77 0d 09 56 29 20 20  20 20 20 20 20 20 20 20  |ow..V)          |
00001950  f2 5f 72 65 64 72 61 77  5f 77 69 6e 64 6f 77 28  |._redraw_window(|
00001960  77 69 6d 70 5f 62 75 66  66 25 29 0d 09 60 04 0d  |wimp_buff%)..`..|
00001970  09 6a 20 20 20 20 20 20  c9 20 32 3a 20 20 20 20  |.j      . 2:    |
00001980  20 20 f4 20 4f 70 65 6e  20 57 69 6e 64 6f 77 0d  |  . Open Window.|
00001990  09 74 29 20 20 20 20 20  20 20 20 20 20 f2 5f 72  |.t)          ._r|
000019a0  65 6f 70 65 6e 5f 77 69  6e 64 6f 77 28 77 69 6d  |eopen_window(wim|
000019b0  70 5f 62 75 66 66 25 29  0d 09 7e 04 0d 09 88 21  |p_buff%)..~....!|
000019c0  20 20 20 20 20 c9 20 33  3a 20 20 20 20 20 20 f4  |     . 3:      .|
000019d0  20 43 6c 6f 73 65 20 57  69 6e 64 6f 77 0d 09 92  | Close Window...|
000019e0  2a 20 20 20 20 20 20 20  20 20 20 f2 5f 63 6c 6f  |*          ._clo|
000019f0  73 65 5f 77 69 6e 64 6f  77 28 77 69 6d 70 5f 62  |se_window(wimp_b|
00001a00  75 66 66 25 21 30 29 0d  09 9c 04 0d 09 a6 2b 20  |uff%!0).......+ |
00001a10  20 20 20 20 c9 20 34 3a  20 20 20 20 20 20 f4 20  |    . 4:      . |
00001a20  50 6f 69 6e 74 65 72 20  6c 65 61 76 69 6e 67 20  |Pointer leaving |
00001a30  77 69 6e 64 6f 77 0d 09  b0 2d 20 20 20 20 20 20  |window...-      |
00001a40  20 20 20 20 f2 5f 70 6f  69 6e 74 65 72 5f 6c 65  |    ._pointer_le|
00001a50  61 76 69 6e 67 28 77 69  6d 70 5f 62 75 66 66 25  |aving(wimp_buff%|
00001a60  21 30 29 0d 09 ba 04 0d  09 c4 2c 20 20 20 20 20  |!0).......,     |
00001a70  c9 20 35 3a 20 20 20 20  20 20 f4 20 50 6f 69 6e  |. 5:      . Poin|
00001a80  74 65 72 20 65 6e 74 65  72 69 6e 67 20 77 69 6e  |ter entering win|
00001a90  64 6f 77 0d 09 ce 2e 20  20 20 20 20 20 20 20 20  |dow....         |
00001aa0  20 f2 5f 70 6f 69 6e 74  65 72 5f 65 6e 74 65 72  | ._pointer_enter|
00001ab0  69 6e 67 28 77 69 6d 70  5f 62 75 66 66 25 21 30  |ing(wimp_buff%!0|
00001ac0  29 0d 09 d8 04 0d 09 e2  20 20 20 20 20 20 c9 20  |).......      . |
00001ad0  36 3a 20 20 20 20 20 20  f4 20 4d 6f 75 73 65 20  |6:      . Mouse |
00001ae0  43 6c 69 63 6b 0d 09 ec  72 20 20 20 20 20 20 20  |Click...r       |
00001af0  20 20 20 f2 5f 6d 6f 75  73 65 5f 63 6c 69 63 6b  |   ._mouse_click|
00001b00  28 77 69 6d 70 5f 62 75  66 66 25 21 30 2c 20 77  |(wimp_buff%!0, w|
00001b10  69 6d 70 5f 62 75 66 66  25 21 34 2c 20 77 69 6d  |imp_buff%!4, wim|
00001b20  70 5f 62 75 66 66 25 21  38 2c 20 77 69 6d 70 5f  |p_buff%!8, wimp_|
00001b30  62 75 66 66 25 21 31 32  2c 20 77 69 6d 70 5f 62  |buff%!12, wimp_b|
00001b40  75 66 66 25 21 31 36 2c  20 77 69 6d 70 5f 62 75  |uff%!16, wimp_bu|
00001b50  66 66 25 21 32 30 29 0d  09 f6 04 0d 0a 00 22 20  |ff%!20)......." |
00001b60  20 20 20 20 c9 20 37 3a  20 20 20 20 20 20 f4 20  |    . 7:      . |
00001b70  55 73 65 72 20 44 72 61  67 20 62 6f 78 0d 0a 0a  |User Drag box...|
00001b80  3d 20 20 20 20 20 20 20  20 20 20 f2 5f 64 72 61  |=          ._dra|
00001b90  67 5f 62 6f 78 28 62 75  66 66 25 21 30 2c 20 62  |g_box(buff%!0, b|
00001ba0  75 66 66 25 21 34 2c 20  62 75 66 66 25 21 38 2c  |uff%!4, buff%!8,|
00001bb0  20 62 75 66 66 25 21 31  32 29 0d 0a 14 04 0d 0a  | buff%!12)......|
00001bc0  1e 20 20 20 20 20 20 c9  20 38 3a 20 20 20 20 20  |.      . 8:     |
00001bd0  20 f4 20 4b 65 79 20 50  72 65 73 73 65 64 0d 0a  | . Key Pressed..|
00001be0  28 7f 20 20 20 20 20 20  20 20 20 20 f2 5f 6b 65  |(.          ._ke|
00001bf0  79 5f 70 72 65 73 73 28  77 69 6d 70 5f 62 75 66  |y_press(wimp_buf|
00001c00  66 25 21 30 2c 20 77 69  6d 70 5f 62 75 66 66 25  |f%!0, wimp_buff%|
00001c10  21 34 2c 20 77 69 6d 70  5f 62 75 66 66 25 21 38  |!4, wimp_buff%!8|
00001c20  2c 20 77 69 6d 70 5f 62  75 66 66 25 21 31 32 2c  |, wimp_buff%!12,|
00001c30  20 77 69 6d 70 5f 62 75  66 66 25 21 31 36 2c 20  | wimp_buff%!16, |
00001c40  77 69 6d 70 5f 62 75 66  66 25 21 32 30 2c 20 77  |wimp_buff%!20, w|
00001c50  69 6d 70 5f 62 75 66 66  25 21 32 34 29 0d 0a 32  |imp_buff%!24)..2|
00001c60  04 0d 0a 3c 23 20 20 20  20 20 c9 20 39 3a 20 20  |...<#     . 9:  |
00001c70  20 20 20 20 f4 20 4d 65  6e 75 20 53 65 6c 65 63  |    . Menu Selec|
00001c80  74 69 6f 6e 0d 0a 46 27  20 20 20 20 20 20 20 20  |tion..F'        |
00001c90  20 20 f2 5f 6d 65 6e 75  5f 73 65 6c 65 63 74 28  |  ._menu_select(|
00001ca0  77 69 6d 70 5f 62 75 66  66 25 29 0d 0a 50 04 0d  |wimp_buff%)..P..|
00001cb0  0a 5a 29 f4 20 20 20 20  20 57 48 45 4e 20 31 30  |.Z).     WHEN 10|
00001cc0  3a 20 20 20 20 20 52 45  4d 20 53 63 72 6f 6c 6c  |:     REM Scroll|
00001cd0  20 72 65 71 75 65 73 74  0d 0a 64 25 f4 20 20 20  | request..d%.   |
00001ce0  20 20 57 48 45 4e 20 31  31 3a 20 20 20 20 20 52  |  WHEN 11:     R|
00001cf0  45 4d 20 4c 6f 73 65 20  63 61 72 65 74 0d 0a 6e  |EM Lose caret..n|
00001d00  25 f4 20 20 20 20 20 57  48 45 4e 20 31 32 3a 20  |%.     WHEN 12: |
00001d10  20 20 20 20 52 45 4d 20  47 61 69 6e 20 63 61 72  |    REM Gain car|
00001d20  65 74 0d 0a 78 16 f4 20  31 33 20 2d 20 31 36 20  |et..x.. 13 - 16 |
00001d30  72 65 73 65 72 76 65 64  0d 0a 82 04 0d 0a 8c 30  |reserved.......0|
00001d40  20 20 20 20 20 c9 20 31  37 2c 20 31 38 3a 20 20  |     . 17, 18:  |
00001d50  20 20 20 f4 20 55 73 65  72 20 6d 65 73 73 61 67  |   . User messag|
00001d60  65 20 28 72 65 63 6f 72  64 65 64 29 0d 0a 96 1c  |e (recorded)....|
00001d70  20 20 20 20 20 20 20 20  20 20 f2 5f 75 73 65 72  |          ._user|
00001d80  5f 6d 65 73 73 61 67 65  0d 0a a0 04 0d 0a aa 34  |_message.......4|
00001d90  f4 20 20 20 20 20 57 48  45 4e 20 31 39 3a 20 20  |.     WHEN 19:  |
00001da0  20 20 20 52 45 4d 20 55  73 65 72 20 6d 65 73 73  |   REM User mess|
00001db0  61 67 65 20 61 63 6b 6e  6f 77 6c 65 64 67 65 64  |age acknowledged|
00001dc0  0d 0a b4 04 0d 0a be 0a  20 20 20 20 20 7f 0d 0a  |........     ...|
00001dd0  c8 33 20 20 20 20 20 20  20 20 20 20 85 20 31 30  |.3          . 10|
00001de0  30 30 2c 20 22 55 6e 65  78 70 65 63 74 65 64 20  |00, "Unexpected |
00001df0  57 69 6d 70 5f 50 6f 6c  6c 20 22 20 2b 20 c3 41  |Wimp_Poll " + .A|
00001e00  25 0d 0a d2 04 0d 0a dc  05 cb 0d 0a e6 05 e1 0d  |%...............|
00001e10  0a f0 04 0d 0a fa 56 f4  20 2d 2d 2d 2d 2d 2d 2d  |......V. -------|
00001e20  2d 2d 2b 2d 2d 2d 2d 2d  2d 2d 2d 2d 2b 2d 2d 2d  |--+---------+---|
00001e30  2d 2d 2d 2d 2d 2d 2b 2d  2d 2d 2d 2d 2d 2d 2d 2d  |------+---------|
00001e40  2b 2d 2d 2d 2d 2d 2d 2d  2d 2d 2b 2d 2d 2d 2d 2d  |+---------+-----|
00001e50  2d 2d 2d 2d 2b 2d 2d 2d  2d 2d 2d 2d 2d 2d 2b 2d  |----+---------+-|
00001e60  2d 2d 2d 2d 2d 2d 2d 2d  2b 0d 0b 04 04 0d 0b 0e  |--------+.......|
00001e70  29 dd 20 f2 5f 6d 65 6e  75 5f 69 74 65 6d 28 69  |). ._menu_item(i|
00001e80  24 2c 20 66 31 25 2c 20  66 32 25 2c 20 66 33 25  |$, f1%, f2%, f3%|
00001e90  2c 20 66 34 25 29 0d 0b  18 0e 71 25 21 30 20 3d  |, f4%)....q%!0 =|
00001ea0  20 66 31 25 0d 0b 22 0e  71 25 21 34 20 3d 20 66  | f1%..".q%!4 = f|
00001eb0  32 25 0d 0b 2c 0e 71 25  21 38 20 3d 20 66 33 25  |2%..,.q%!8 = f3%|
00001ec0  0d 0b 36 13 24 28 71 25  20 2b 20 31 32 29 20 3d  |..6.$(q% + 12) =|
00001ed0  20 69 24 0d 0b 40 19 e7  20 28 66 33 25 20 80 20  | i$..@.. (f3% . |
00001ee0  26 31 30 30 29 20 3c 3e  20 30 20 8c 0d 0b 4a 13  |&100) <> 0 ...J.|
00001ef0  20 20 20 20 71 25 21 31  32 20 3d 20 66 34 25 0d  |    q%!12 = f4%.|
00001f00  0b 54 11 20 20 20 20 71  25 21 31 36 20 3d 20 30  |.T.    q%!16 = 0|
00001f10  0d 0b 5e 15 20 20 20 20  71 25 21 32 30 20 3d 20  |..^.    q%!20 = |
00001f20  a9 28 69 24 29 0d 0b 68  05 cd 0d 0b 72 0c 71 25  |.(i$)..h....r.q%|
00001f30  20 2b 3d 20 32 34 0d 0b  7c 05 e1 0d 0b 86 04 0d  | += 24..|.......|
00001f40  0b 90 56 f4 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2b 2d  |..V. ---------+-|
00001f50  2d 2d 2d 2d 2d 2d 2d 2d  2b 2d 2d 2d 2d 2d 2d 2d  |--------+-------|
00001f60  2d 2d 2b 2d 2d 2d 2d 2d  2d 2d 2d 2d 2b 2d 2d 2d  |--+---------+---|
00001f70  2d 2d 2d 2d 2d 2d 2b 2d  2d 2d 2d 2d 2d 2d 2d 2d  |------+---------|
00001f80  2b 2d 2d 2d 2d 2d 2d 2d  2d 2d 2b 2d 2d 2d 2d 2d  |+---------+-----|
00001f90  2d 2d 2d 2d 2b 0d 0b 9a  04 0d 0b a4 12 dd 20 f2  |----+......... .|
00001fa0  5f 57 69 6d 70 5f 45 72  72 6f 72 0d 0b ae 08 ea  |_Wimp_Error.....|
00001fb0  20 4e 25 0d 0b b8 0a 4e  25 20 3d 20 9f 0d 0b c2  | N%....N% = ....|
00001fc0  17 21 77 69 6d 70 5f 62  75 66 66 32 25 20 3d 20  |.!wimp_buff2% = |
00001fd0  94 20 4e 25 0d 0b cc 0e  e7 20 4e 25 20 3c 20 30  |. N%..... N% < 0|
00001fe0  20 8c 0d 0b d6 1e 20 20  20 24 28 77 69 6d 70 5f  | .....   $(wimp_|
00001ff0  62 75 66 66 32 25 20 2b  20 34 29 20 3d 20 f6 24  |buff2% + 4) = .$|
00002000  0d 0b e0 05 cc 0d 0b ea  31 20 20 20 24 28 77 69  |........1   $(wi|
00002010  6d 70 5f 62 75 66 66 32  25 20 2b 20 34 29 20 3d  |mp_buff2% + 4) =|
00002020  20 f6 24 20 2b 20 22 20  61 74 20 6c 69 6e 65 20  | .$ + " at line |
00002030  22 20 2b 20 c3 9e 0d 0b  f4 05 cd 0d 0b fe 35 c8  |" + ..........5.|
00002040  99 20 22 57 69 6d 70 5f  52 65 70 6f 72 74 45 72  |. "Wimp_ReportEr|
00002050  72 6f 72 22 2c 20 77 69  6d 70 5f 62 75 66 66 32  |ror", wimp_buff2|
00002060  25 2c 20 30 2c 20 70 72  6f 67 5f 6e 61 6d 65 24  |%, 0, prog_name$|
00002070  0d 0c 08 05 e1 0d 0c 12  04 0d 0c 1c 56 f4 20 2d  |............V. -|
00002080  2d 2d 2d 2d 2d 2d 2d 2d  2b 2d 2d 2d 2d 2d 2d 2d  |--------+-------|
00002090  2d 2d 2b 2d 2d 2d 2d 2d  2d 2d 2d 2d 2b 2d 2d 2d  |--+---------+---|
000020a0  2d 2d 2d 2d 2d 2d 2b 2d  2d 2d 2d 2d 2d 2d 2d 2d  |------+---------|
000020b0  2b 2d 2d 2d 2d 2d 2d 2d  2d 2d 2b 2d 2d 2d 2d 2d  |+---------+-----|
000020c0  2d 2d 2d 2d 2b 2d 2d 2d  2d 2d 2d 2d 2d 2d 2b 0d  |----+---------+.|
000020d0  0c 26 04 0d 0c 30 14 dd  20 f2 5f 72 65 70 6f 72  |.&...0.. ._repor|
000020e0  74 5f 65 72 72 6f 72 0d  0c 3a 1f 85 20 2d 9f 2c  |t_error..:.. -.,|
000020f0  20 f6 24 20 2b 20 22 20  61 74 20 6c 69 6e 65 20  | .$ + " at line |
00002100  22 20 2b 20 c3 9e 0d 0c  44 05 e1 0d 0c 4e 04 0d  |" + ....D....N..|
00002110  0c 58 56 f4 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2b 2d  |.XV. ---------+-|
00002120  2d 2d 2d 2d 2d 2d 2d 2d  2b 2d 2d 2d 2d 2d 2d 2d  |--------+-------|
00002130  2d 2d 2b 2d 2d 2d 2d 2d  2d 2d 2d 2d 2b 2d 2d 2d  |--+---------+---|
00002140  2d 2d 2d 2d 2d 2d 2b 2d  2d 2d 2d 2d 2d 2d 2d 2d  |------+---------|
00002150  2b 2d 2d 2d 2d 2d 2d 2d  2d 2d 2b 2d 2d 2d 2d 2d  |+---------+-----|
00002160  2d 2d 2d 2d 2b 0d 0c 62  04 0d 0c 6c 11 dd 20 f2  |----+..b...l.. .|
00002170  5f 77 69 6d 70 5f 69 6e  69 74 0d 0c 76 21 ea 20  |_wimp_init..v!. |
00002180  66 6c 61 67 73 25 2c 20  73 69 7a 65 25 2c 20 6d  |flags%, size%, m|
00002190  73 74 72 25 2c 20 76 65  72 73 25 0d 0c 80 04 0d  |str%, vers%.....|
000021a0  0c 8a 14 de 20 77 69 6d  70 5f 62 75 66 66 25 20  |.... wimp_buff% |
000021b0  35 31 32 0d 0c 94 15 de  20 77 69 6d 70 5f 62 75  |512..... wimp_bu|
000021c0  66 66 32 25 20 35 31 32  0d 0c 9e 16 de 20 6d 65  |ff2% 512..... me|
000021d0  6e 75 5f 62 75 66 66 31  25 20 31 30 32 33 0d 0c  |nu_buff1% 1023..|
000021e0  a8 16 de 20 6d 65 6e 75  5f 62 75 66 66 32 25 20  |... menu_buff2% |
000021f0  31 30 32 33 0d 0c b2 16  de 20 6d 65 6e 75 5f 62  |1023..... menu_b|
00002200  75 66 66 33 25 20 31 30  32 33 0d 0c bc 13 de 20  |uff3% 1023..... |
00002210  6d 65 73 73 5f 64 65 73  63 25 20 31 36 0d 0c c6  |mess_desc% 16...|
00002220  14 de 20 6d 65 73 73 5f  62 75 66 66 25 20 32 35  |.. mess_buff% 25|
00002230  36 0d 0c d0 04 0d 0c da  49 c8 99 20 22 4d 65 73  |6.......I.. "Mes|
00002240  73 61 67 65 54 72 61 6e  73 5f 46 69 6c 65 49 6e  |sageTrans_FileIn|
00002250  66 6f 22 2c 20 2c 20 22  3c 44 65 6c 44 79 6e 41  |fo", , "<DelDynA|
00002260  72 65 61 24 44 69 72 3e  2e 6d 65 73 73 61 67 65  |rea$Dir>.message|
00002270  73 22 20 b8 20 2c 20 2c  20 73 69 7a 65 25 0d 0c  |s" . , , size%..|
00002280  e4 18 de 20 6d 65 73 73  5f 74 5f 62 75 66 66 25  |... mess_t_buff%|
00002290  20 73 69 7a 65 25 0d 0c  ee 55 c8 99 20 22 4d 65  | size%...U.. "Me|
000022a0  73 73 61 67 65 54 72 61  6e 73 5f 4f 70 65 6e 46  |ssageTrans_OpenF|
000022b0  69 6c 65 22 2c 20 6d 65  73 73 5f 64 65 73 63 25  |ile", mess_desc%|
000022c0  2c 20 22 3c 44 65 6c 44  79 6e 41 72 65 61 24 44  |, "<DelDynArea$D|
000022d0  69 72 3e 2e 6d 65 73 73  61 67 65 73 22 2c 20 6d  |ir>.messages", m|
000022e0  65 73 73 5f 74 5f 62 75  66 66 25 0d 0c f8 59 c8  |ess_t_buff%...Y.|
000022f0  99 20 22 4d 65 73 73 61  67 65 54 72 61 6e 73 5f  |. "MessageTrans_|
00002300  4c 6f 6f 6b 75 70 22 2c  20 6d 65 73 73 5f 64 65  |Lookup", mess_de|
00002310  73 63 25 2c 20 22 50 52  4f 47 22 2c 20 6d 65 73  |sc%, "PROG", mes|
00002320  73 5f 62 75 66 66 25 2c  20 32 35 36 2c 20 30 2c  |s_buff%, 256, 0,|
00002330  20 30 2c 20 30 2c 20 30  20 b8 20 2c 20 2c 20 6d  | 0, 0, 0 . , , m|
00002340  73 74 72 25 0d 0d 02 25  70 72 6f 67 5f 6e 61 6d  |str%...%prog_nam|
00002350  65 24 20 3d 20 a4 5f 7a  65 72 6f 5f 73 74 72 69  |e$ = ._zero_stri|
00002360  6e 67 28 6d 73 74 72 25  29 0d 0d 0c 1a 24 6d 65  |ng(mstr%)....$me|
00002370  6e 75 5f 74 31 25 20 3d  20 70 72 6f 67 5f 6e 61  |nu_t1% = prog_na|
00002380  6d 65 24 0d 0d 16 61 c8  99 20 22 4d 65 73 73 61  |me$...a.. "Messa|
00002390  67 65 54 72 61 6e 73 5f  4c 6f 6f 6b 75 70 22 2c  |geTrans_Lookup",|
000023a0  20 6d 65 73 73 5f 64 65  73 63 25 2c 20 22 4d 45  | mess_desc%, "ME|
000023b0  4e 55 5f 32 5f 54 49 54  4c 45 22 2c 20 6d 65 73  |NU_2_TITLE", mes|
000023c0  73 5f 62 75 66 66 25 2c  20 32 35 36 2c 20 30 2c  |s_buff%, 256, 0,|
000023d0  20 30 2c 20 30 2c 20 30  20 b8 20 2c 20 2c 20 6d  | 0, 0, 0 . , , m|
000023e0  73 74 72 25 0d 0d 20 24  24 6d 65 6e 75 5f 74 32  |str%.. $$menu_t2|
000023f0  25 20 3d 20 a4 5f 7a 65  72 6f 5f 73 74 72 69 6e  |% = ._zero_strin|
00002400  67 28 6d 73 74 72 25 29  0d 0d 2a 61 c8 99 20 22  |g(mstr%)..*a.. "|
00002410  4d 65 73 73 61 67 65 54  72 61 6e 73 5f 4c 6f 6f  |MessageTrans_Loo|
00002420  6b 75 70 22 2c 20 6d 65  73 73 5f 64 65 73 63 25  |kup", mess_desc%|
00002430  2c 20 22 4d 45 4e 55 5f  33 5f 54 49 54 4c 45 22  |, "MENU_3_TITLE"|
00002440  2c 20 6d 65 73 73 5f 62  75 66 66 25 2c 20 32 35  |, mess_buff%, 25|
00002450  36 2c 20 30 2c 20 30 2c  20 30 2c 20 30 20 b8 20  |6, 0, 0, 0, 0 . |
00002460  2c 20 2c 20 6d 73 74 72  25 0d 0d 34 24 24 6d 65  |, , mstr%..4$$me|
00002470  6e 75 5f 74 33 25 20 3d  20 a4 5f 7a 65 72 6f 5f  |nu_t3% = ._zero_|
00002480  73 74 72 69 6e 67 28 6d  73 74 72 25 29 0d 0d 3e  |string(mstr%)..>|
00002490  04 0d 0d 48 25 f4 20 54  68 69 6e 67 73 20 77 68  |...H%. Things wh|
000024a0  61 74 20 49 20 77 61 6e  74 20 74 6f 20 64 65 61  |at I want to dea|
000024b0  6c 20 77 69 74 68 0d 0d  52 31 77 69 6d 70 5f 62  |l with..R1wimp_b|
000024c0  75 66 66 25 21 30 20 3d  20 26 30 30 35 30 32 20  |uff%!0 = &00502 |
000024d0  3a 20 f4 20 4d 65 73 73  61 67 65 5f 48 65 6c 70  |: . Message_Help|
000024e0  52 65 71 75 65 73 74 0d  0d 5c 31 77 69 6d 70 5f  |Request..\1wimp_|
000024f0  62 75 66 66 25 21 34 20  3d 20 26 30 30 30 30 41  |buff%!4 = &0000A|
00002500  20 3a 20 f4 20 4d 65 73  73 61 67 65 5f 53 61 76  | : . Message_Sav|
00002510  65 44 65 73 6b 74 6f 70  0d 0d 66 14 77 69 6d 70  |eDesktop..f.wimp|
00002520  5f 62 75 66 66 25 21 38  20 3d 20 30 0d 0d 70 51  |_buff%!8 = 0..pQ|
00002530  c8 99 20 22 57 69 6d 70  5f 49 6e 69 74 69 61 6c  |.. "Wimp_Initial|
00002540  69 73 65 22 2c 20 33 31  30 2c 20 26 34 62 35 33  |ise", 310, &4b53|
00002550  34 31 35 34 2c 20 70 72  6f 67 5f 6e 61 6d 65 24  |4154, prog_name$|
00002560  2c 20 77 69 6d 70 5f 62  75 66 66 25 20 b8 20 76  |, wimp_buff% . v|
00002570  65 72 73 25 2c 20 68 61  6e 64 6c 65 25 0d 0d 7a  |ers%, handle%..z|
00002580  14 f2 5f 6c 6f 61 64 5f  74 65 6d 70 6c 61 74 65  |.._load_template|
00002590  73 0d 0d 84 05 e1 0d 0d  8e 04 0d 0d 98 56 f4 20  |s............V. |
000025a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 2d 2d 2d 2d 2d 2d  |---------+------|
000025b0  2d 2d 2d 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 2d 2d  |---+---------+--|
000025c0  2d 2d 2d 2d 2d 2d 2d 2b  2d 2d 2d 2d 2d 2d 2d 2d  |-------+--------|
000025d0  2d 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 2d 2d 2d 2d  |-+---------+----|
000025e0  2d 2d 2d 2d 2d 2b 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |-----+---------+|
000025f0  0d 0d a2 04 0d 0d ac 1a  dd 20 a4 5f 7a 65 72 6f  |......... ._zero|
00002600  5f 73 74 72 69 6e 67 28  62 75 66 66 25 29 0d 0d  |_string(buff%)..|
00002610  b6 0b ea 20 6e 61 6d 65  24 0d 0d c0 0e 6e 61 6d  |... name$....nam|
00002620  65 24 20 3d 20 22 22 0d  0d ca 15 c8 95 20 3f 62  |e$ = ""...... ?b|
00002630  75 66 66 25 20 3e 3d 20  97 22 20 22 0d 0d d4 1c  |uff% >= ." "....|
00002640  20 20 20 20 20 20 6e 61  6d 65 24 20 2b 3d 20 bd  |      name$ += .|
00002650  28 3f 62 75 66 66 25 29  0d 0d de 14 20 20 20 20  |(?buff%)....    |
00002660  20 20 62 75 66 66 25 20  2b 3d 20 31 0d 0d e8 05  |  buff% += 1....|
00002670  ce 0d 0d f2 0b 3d 20 6e  61 6d 65 24 0d 0d fc 04  |.....= name$....|
00002680  0d 0e 06 56 f4 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |...V. ---------+|
00002690  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 2d 2d 2d 2d 2d 2d  |---------+------|
000026a0  2d 2d 2d 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 2d 2d  |---+---------+--|
000026b0  2d 2d 2d 2d 2d 2d 2d 2b  2d 2d 2d 2d 2d 2d 2d 2d  |-------+--------|
000026c0  2d 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 2d 2d 2d 2d  |-+---------+----|
000026d0  2d 2d 2d 2d 2d 2b 0d 0e  10 04 0d 0e 1a 16 dd 20  |-----+......... |
000026e0  f2 5f 6c 6f 61 64 5f 74  65 6d 70 6c 61 74 65 73  |._load_templates|
000026f0  0d 0e 24 0f ea 20 63 72  31 32 24 2c 20 71 25 0d  |..$.. cr12$, q%.|
00002700  0e 2e 07 ea 20 85 0d 0e  38 38 ee 20 85 20 ea 20  |.... ...88. . . |
00002710  f7 20 85 20 3a 20 c8 99  20 22 57 69 6d 70 5f 43  |. . : .. "Wimp_C|
00002720  6c 6f 73 65 54 65 6d 70  6c 61 74 65 22 20 3a 20  |loseTemplate" : |
00002730  f2 5f 72 65 70 6f 72 74  5f 65 72 72 6f 72 0d 0e  |._report_error..|
00002740  42 04 0d 0e 4c 1b f4 20  4f 70 65 6e 20 26 20 6c  |B...L.. Open & l|
00002750  6f 61 64 20 74 65 6d 70  6c 61 74 65 73 0d 0e 56  |oad templates..V|
00002760  15 63 72 31 32 24 20 3d  20 c4 31 32 2c 20 bd 31  |.cr12$ = .12, .1|
00002770  33 29 0d 0e 60 3a c8 99  20 22 57 69 6d 70 5f 4f  |3)..`:.. "Wimp_O|
00002780  70 65 6e 54 65 6d 70 6c  61 74 65 22 2c 20 2c 20  |penTemplate", , |
00002790  22 3c 44 65 6c 44 79 6e  41 72 65 61 24 44 69 72  |"<DelDynArea$Dir|
000027a0  3e 2e 54 65 6d 70 6c 61  74 65 73 22 0d 0e 6a 22  |>.Templates"..j"|
000027b0  de 20 74 65 6d 70 6c 5f  62 75 66 66 25 20 a4 5f  |. templ_buff% ._|
000027c0  6c 61 72 67 65 73 74 5f  62 75 66 66 65 72 0d 0e  |largest_buffer..|
000027d0  74 04 0d 0e 7e 42 69 6e  66 6f 5f 68 25 20 3d 20  |t...~Binfo_h% = |
000027e0  a4 5f 6c 6f 61 64 5f 74  65 6d 70 6c 61 74 65 28  |._load_template(|
000027f0  22 50 72 6f 67 49 6e 66  6f 22 2c 20 b9 2c 20 74  |"ProgInfo", ., t|
00002800  65 6d 70 6c 5f 62 75 66  66 25 2c 20 69 6e 66 6f  |empl_buff%, info|
00002810  5f 77 25 29 0d 0e 88 04  0d 0e 92 1b c8 99 20 22  |_w%).......... "|
00002820  57 69 6d 70 5f 43 6c 6f  73 65 54 65 6d 70 6c 61  |Wimp_CloseTempla|
00002830  74 65 22 0d 0e 9c 04 0d  0e a6 13 f4 20 47 65 6e  |te"......... Gen|
00002840  65 72 61 74 65 20 49 63  6f 6e 0d 0e b0 0b de 20  |erate Icon..... |
00002850  71 25 20 34 30 0d 0e ba  0c 21 71 25 20 3d 20 2d  |q% 40....!q% = -|
00002860  37 0d 0e c4 0c 71 25 21  34 20 3d 20 30 0d 0e ce  |7....q%!4 = 0...|
00002870  0c 71 25 21 38 20 3d 20  30 0d 0e d8 0e 71 25 21  |.q%!8 = 0....q%!|
00002880  31 32 20 3d 20 36 38 0d  0e e2 0e 71 25 21 31 36  |12 = 68....q%!16|
00002890  20 3d 20 36 38 0d 0e ec  1d 71 25 21 32 30 20 3d  | = 68....q%!20 =|
000028a0  20 25 30 30 31 31 30 30  30 30 30 30 30 30 30 30  | %00110000000000|
000028b0  31 30 0d 0e f6 1d 24 28  71 25 20 2b 20 32 34 29  |10....$(q% + 24)|
000028c0  20 3d 20 22 21 64 65 6c  64 79 6e 61 72 65 22 0d  | = "!deldynare".|
000028d0  0f 00 2a c8 99 20 22 57  69 6d 70 5f 43 72 65 61  |..*.. "Wimp_Crea|
000028e0  74 65 49 63 6f 6e 22 2c  20 30 2c 20 71 25 20 b8  |teIcon", 0, q% .|
000028f0  20 69 63 6f 6e 62 61 72  25 0d 0f 0a 05 e1 0d 0f  | iconbar%.......|
00002900  14 04 0d 0f 1e 56 f4 20  2d 2d 2d 2d 2d 2d 2d 2d  |.....V. --------|
00002910  2d 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 2d 2d 2d 2d  |-+---------+----|
00002920  2d 2d 2d 2d 2d 2b 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |-----+---------+|
00002930  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 2d 2d 2d 2d 2d 2d  |---------+------|
00002940  2d 2d 2d 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 2d 2d  |---+---------+--|
00002950  2d 2d 2d 2d 2d 2d 2d 2b  0d 0f 28 04 0d 0f 32 37  |-------+..(...27|
00002960  dd 20 a4 5f 6c 6f 61 64  5f 74 65 6d 70 6c 61 74  |. ._load_templat|
00002970  65 28 6e 61 6d 65 24 2c  20 63 72 65 61 74 65 25  |e(name$, create%|
00002980  2c 20 f8 20 62 75 66 66  25 2c 20 f8 20 64 61 74  |, . buff%, . dat|
00002990  61 25 29 0d 0f 3c 0d ea  20 68 61 6e 64 6c 65 25  |a%)..<.. handle%|
000029a0  0d 0f 46 0b ea 20 73 69  7a 65 25 0d 0f 50 22 de  |..F.. size%..P".|
000029b0  20 64 61 74 61 25 20 a4  5f 73 69 7a 65 5f 69 6e  | data% ._size_in|
000029c0  64 69 72 65 63 74 28 6e  61 6d 65 24 29 0d 0f 5a  |direct(name$)..Z|
000029d0  22 73 69 7a 65 25 20 3d  20 a4 5f 73 69 7a 65 5f  |"size% = ._size_|
000029e0  69 6e 64 69 72 65 63 74  28 6e 61 6d 65 24 29 0d  |indirect(name$).|
000029f0  0f 64 2c e7 20 62 75 66  66 25 20 3d 20 30 20 de  |.d,. buff% = 0 .|
00002a00  20 62 75 66 66 25 20 a4  5f 73 69 7a 65 5f 62 75  | buff% ._size_bu|
00002a10  66 66 65 72 28 6e 61 6d  65 24 29 0d 0f 6e 65 c8  |ffer(name$)..ne.|
00002a20  99 20 22 57 69 6d 70 5f  4c 6f 61 64 54 65 6d 70  |. "Wimp_LoadTemp|
00002a30  6c 61 74 65 22 2c 20 2c  20 62 75 66 66 25 2c 20  |late", , buff%, |
00002a40  64 61 74 61 25 2c 20 64  61 74 61 25 20 2b 20 73  |data%, data% + s|
00002a50  69 7a 65 25 2c 20 2d 31  2c 20 6e 61 6d 65 24 20  |ize%, -1, name$ |
00002a60  2b 20 63 72 31 32 24 2c  20 30 20 b8 20 2c 20 2c  |+ cr12$, 0 . , ,|
00002a70  20 2c 20 2c 20 2c 20 2c  20 68 61 6e 64 6c 65 25  | , , , , handle%|
00002a80  0d 0f 78 3a e7 20 68 61  6e 64 6c 65 25 20 3d 20  |..x:. handle% = |
00002a90  30 20 8c 20 85 20 31 30  30 30 2c 20 22 43 61 6e  |0 . . 1000, "Can|
00002aa0  27 74 20 6c 6f 61 64 20  74 65 6d 70 6c 61 74 65  |'t load template|
00002ab0  20 22 20 2b 20 6e 61 6d  65 24 0d 0f 82 39 e7 20  | " + name$...9. |
00002ac0  63 72 65 61 74 65 25 20  8c 20 c8 99 20 22 57 69  |create% . .. "Wi|
00002ad0  6d 70 5f 43 72 65 61 74  65 57 69 6e 64 6f 77 22  |mp_CreateWindow"|
00002ae0  2c 20 2c 20 62 75 66 66  25 20 b8 20 68 61 6e 64  |, , buff% . hand|
00002af0  6c 65 25 0d 0f 8c 0c 3d  68 61 6e 64 6c 65 25 0d  |le%....=handle%.|
00002b00  0f 96 04 0d 0f a0 56 f4  20 2d 2d 2d 2d 2d 2d 2d  |......V. -------|
00002b10  2d 2d 2b 2d 2d 2d 2d 2d  2d 2d 2d 2d 2b 2d 2d 2d  |--+---------+---|
00002b20  2d 2d 2d 2d 2d 2d 2b 2d  2d 2d 2d 2d 2d 2d 2d 2d  |------+---------|
00002b30  2b 2d 2d 2d 2d 2d 2d 2d  2d 2d 2b 2d 2d 2d 2d 2d  |+---------+-----|
00002b40  2d 2d 2d 2d 2b 2d 2d 2d  2d 2d 2d 2d 2d 2d 2b 2d  |----+---------+-|
00002b50  2d 2d 2d 2d 2d 2d 2d 2d  2b 0d 0f aa 04 0d 0f b4  |--------+.......|
00002b60  1a dd 20 a4 5f 73 69 7a  65 5f 62 75 66 66 65 72  |.. ._size_buffer|
00002b70  28 6e 61 6d 65 24 29 0d  0f be 0b ea 20 73 69 7a  |(name$)..... siz|
00002b80  65 25 0d 0f c8 41 c8 99  20 22 57 69 6d 70 5f 4c  |e%...A.. "Wimp_L|
00002b90  6f 61 64 54 65 6d 70 6c  61 74 65 22 2c 20 2c 20  |oadTemplate", , |
00002ba0  30 2c 20 2c 20 2c 20 2c  20 6e 61 6d 65 24 20 2b  |0, , , , name$ +|
00002bb0  20 63 72 31 32 24 2c 20  30 20 b8 20 2c 20 73 69  | cr12$, 0 . , si|
00002bc0  7a 65 25 0d 0f d2 0a 3d  73 69 7a 65 25 0d 0f dc  |ze%....=size%...|
00002bd0  04 0d 0f e6 56 f4 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |....V. ---------|
00002be0  2b 2d 2d 2d 2d 2d 2d 2d  2d 2d 2b 2d 2d 2d 2d 2d  |+---------+-----|
00002bf0  2d 2d 2d 2d 2b 2d 2d 2d  2d 2d 2d 2d 2d 2d 2b 2d  |----+---------+-|
00002c00  2d 2d 2d 2d 2d 2d 2d 2d  2b 2d 2d 2d 2d 2d 2d 2d  |--------+-------|
00002c10  2d 2d 2b 2d 2d 2d 2d 2d  2d 2d 2d 2d 2b 2d 2d 2d  |--+---------+---|
00002c20  2d 2d 2d 2d 2d 2d 2b 0d  0f f0 04 0d 0f fa 1c dd  |------+.........|
00002c30  20 a4 5f 73 69 7a 65 5f  69 6e 64 69 72 65 63 74  | ._size_indirect|
00002c40  28 6e 61 6d 65 24 29 0d  10 04 0b ea 20 73 69 7a  |(name$)..... siz|
00002c50  65 25 0d 10 0e 43 c8 99  20 22 57 69 6d 70 5f 4c  |e%...C.. "Wimp_L|
00002c60  6f 61 64 54 65 6d 70 6c  61 74 65 22 2c 20 2c 20  |oadTemplate", , |
00002c70  30 2c 20 2c 20 2c 20 2c  20 6e 61 6d 65 24 20 2b  |0, , , , name$ +|
00002c80  20 63 72 31 32 24 2c 20  30 20 b8 20 2c 20 2c 20  | cr12$, 0 . , , |
00002c90  73 69 7a 65 25 0d 10 18  0a 3d 73 69 7a 65 25 0d  |size%....=size%.|
00002ca0  10 22 04 0d 10 2c 56 f4  20 2d 2d 2d 2d 2d 2d 2d  |."...,V. -------|
00002cb0  2d 2d 2b 2d 2d 2d 2d 2d  2d 2d 2d 2d 2b 2d 2d 2d  |--+---------+---|
00002cc0  2d 2d 2d 2d 2d 2d 2b 2d  2d 2d 2d 2d 2d 2d 2d 2d  |------+---------|
00002cd0  2b 2d 2d 2d 2d 2d 2d 2d  2d 2d 2b 2d 2d 2d 2d 2d  |+---------+-----|
00002ce0  2d 2d 2d 2d 2b 2d 2d 2d  2d 2d 2d 2d 2d 2d 2b 2d  |----+---------+-|
00002cf0  2d 2d 2d 2d 2d 2d 2d 2d  2b 0d 10 36 04 0d 10 40  |--------+..6...@|
00002d00  16 dd 20 a4 5f 6c 61 72  67 65 73 74 5f 62 75 66  |.. ._largest_buf|
00002d10  66 65 72 0d 10 4a 23 ea  20 6c 61 72 67 65 73 74  |fer..J#. largest|
00002d20  25 2c 20 73 69 7a 65 25  2c 20 68 65 72 65 25 2c  |%, size%, here%,|
00002d30  20 6e 61 6d 65 25 0d 10  54 0e de 20 6e 61 6d 65  | name%..T.. name|
00002d40  25 20 31 32 0d 10 5e 0d  68 65 72 65 25 20 3d 20  |% 12..^.here% = |
00002d50  30 0d 10 68 10 6c 61 72  67 65 73 74 25 20 3d 20  |0..h.largest% = |
00002d60  30 0d 10 72 05 f5 0d 10  7c 16 20 20 20 20 20 20  |0..r....|.      |
00002d70  24 6e 61 6d 65 25 20 3d  20 22 2a 22 0d 10 86 52  |$name% = "*"...R|
00002d80  20 20 20 20 20 20 c8 99  20 22 57 69 6d 70 5f 4c  |      .. "Wimp_L|
00002d90  6f 61 64 54 65 6d 70 6c  61 74 65 22 2c 20 2c 20  |oadTemplate", , |
00002da0  30 2c 20 2c 20 2c 20 2c  20 6e 61 6d 65 25 2c 20  |0, , , , name%, |
00002db0  68 65 72 65 25 20 b8 20  2c 20 73 69 7a 65 25 2c  |here% . , size%,|
00002dc0  20 2c 20 2c 20 2c 20 2c  20 68 65 72 65 25 0d 10  | , , , , here%..|
00002dd0  90 2d 20 20 20 20 20 20  e7 20 6c 61 72 67 65 73  |.-      . larges|
00002de0  74 25 20 3c 20 73 69 7a  65 25 20 6c 61 72 67 65  |t% < size% large|
00002df0  73 74 25 20 3d 20 73 69  7a 65 25 0d 10 9a 0f fd  |st% = size%.....|
00002e00  20 68 65 72 65 25 20 3d  20 30 0d 10 a4 0d 3d 6c  | here% = 0....=l|
00002e10  61 72 67 65 73 74 25 0d  10 ae 04 0d 10 b8 56 f4  |argest%.......V.|
00002e20  20 2d 2d 2d 2d 2d 2d 2d  2d 2d 2b 2d 2d 2d 2d 2d  | ---------+-----|
00002e30  2d 2d 2d 2d 2b 2d 2d 2d  2d 2d 2d 2d 2d 2d 2b 2d  |----+---------+-|
00002e40  2d 2d 2d 2d 2d 2d 2d 2d  2b 2d 2d 2d 2d 2d 2d 2d  |--------+-------|
00002e50  2d 2d 2b 2d 2d 2d 2d 2d  2d 2d 2d 2d 2b 2d 2d 2d  |--+---------+---|
00002e60  2d 2d 2d 2d 2d 2d 2b 2d  2d 2d 2d 2d 2d 2d 2d 2d  |------+---------|
00002e70  2b 0d 10 c2 04 0d 10 cc  1c dd 20 f2 5f 72 65 64  |+......... ._red|
00002e80  72 61 77 5f 77 69 6e 64  6f 77 28 62 75 66 66 25  |raw_window(buff%|
00002e90  29 0d 10 d6 0b ea 20 66  6c 61 67 25 0d 10 e0 2b  |)..... flag%...+|
00002ea0  c8 99 20 22 57 69 6d 70  5f 52 65 64 72 61 77 57  |.. "Wimp_RedrawW|
00002eb0  69 6e 64 6f 77 22 2c 20  2c 20 62 75 66 66 25 20  |indow", , buff% |
00002ec0  b8 20 66 6c 61 67 25 0d  10 ea 25 f2 5f 75 70 64  |. flag%...%._upd|
00002ed0  61 74 65 5f 72 65 63 74  61 6e 67 6c 65 73 28 62  |ate_rectangles(b|
00002ee0  75 66 66 25 2c 20 66 6c  61 67 25 29 0d 10 f4 05  |uff%, flag%)....|
00002ef0  e1 0d 10 fe 04 0d 11 08  56 f4 20 2d 2d 2d 2d 2d  |........V. -----|
00002f00  2d 2d 2d 2d 2b 2d 2d 2d  2d 2d 2d 2d 2d 2d 2b 2d  |----+---------+-|
00002f10  2d 2d 2d 2d 2d 2d 2d 2d  2b 2d 2d 2d 2d 2d 2d 2d  |--------+-------|
00002f20  2d 2d 2b 2d 2d 2d 2d 2d  2d 2d 2d 2d 2b 2d 2d 2d  |--+---------+---|
00002f30  2d 2d 2d 2d 2d 2d 2b 2d  2d 2d 2d 2d 2d 2d 2d 2d  |------+---------|
00002f40  2b 2d 2d 2d 2d 2d 2d 2d  2d 2d 2b 0d 11 12 04 0d  |+---------+.....|
00002f50  11 1c 20 dd 20 f2 5f 75  70 64 61 74 65 5f 77 69  |.. . ._update_wi|
00002f60  6e 64 6f 77 5f 6e 6f 77  28 62 75 66 66 25 29 0d  |ndow_now(buff%).|
00002f70  11 26 0b ea 20 66 6c 61  67 25 0d 11 30 2b c8 99  |.&.. flag%..0+..|
00002f80  20 22 57 69 6d 70 5f 55  70 64 61 74 65 57 69 6e  | "Wimp_UpdateWin|
00002f90  64 6f 77 22 2c 20 2c 20  62 75 66 66 25 20 b8 20  |dow", , buff% . |
00002fa0  66 6c 61 67 25 0d 11 3a  25 f2 5f 75 70 64 61 74  |flag%..:%._updat|
00002fb0  65 5f 72 65 63 74 61 6e  67 6c 65 73 28 62 75 66  |e_rectangles(buf|
00002fc0  66 25 2c 20 66 6c 61 67  25 29 0d 11 44 05 e1 0d  |f%, flag%)..D...|
00002fd0  11 4e 04 0d 11 58 56 f4  20 2d 2d 2d 2d 2d 2d 2d  |.N...XV. -------|
00002fe0  2d 2d 2b 2d 2d 2d 2d 2d  2d 2d 2d 2d 2b 2d 2d 2d  |--+---------+---|
00002ff0  2d 2d 2d 2d 2d 2d 2b 2d  2d 2d 2d 2d 2d 2d 2d 2d  |------+---------|
00003000  2b 2d 2d 2d 2d 2d 2d 2d  2d 2d 2b 2d 2d 2d 2d 2d  |+---------+-----|
00003010  2d 2d 2d 2d 2b 2d 2d 2d  2d 2d 2d 2d 2d 2d 2b 2d  |----+---------+-|
00003020  2d 2d 2d 2d 2d 2d 2d 2d  2b 0d 11 62 04 0d 11 6c  |--------+..b...l|
00003030  22 dd 20 f2 5f 75 70 64  61 74 65 5f 77 69 6e 64  |". ._update_wind|
00003040  6f 77 5f 6c 61 74 65 72  28 62 75 66 66 25 29 0d  |ow_later(buff%).|
00003050  11 76 48 c8 99 20 22 57  69 6d 70 5f 46 6f 72 63  |.vH.. "Wimp_Forc|
00003060  65 52 65 64 72 61 77 22  2c 20 62 75 66 66 25 21  |eRedraw", buff%!|
00003070  30 2c 20 62 75 66 66 25  21 34 2c 20 62 75 66 66  |0, buff%!4, buff|
00003080  25 21 38 2c 20 62 75 66  66 25 21 31 32 2c 20 62  |%!8, buff%!12, b|
00003090  75 66 66 25 21 31 36 0d  11 80 05 e1 0d 11 8a 04  |uff%!16.........|
000030a0  0d 11 94 56 f4 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |...V. ---------+|
000030b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 2d 2d 2d 2d 2d 2d  |---------+------|
000030c0  2d 2d 2d 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 2d 2d  |---+---------+--|
000030d0  2d 2d 2d 2d 2d 2d 2d 2b  2d 2d 2d 2d 2d 2d 2d 2d  |-------+--------|
000030e0  2d 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 2d 2d 2d 2d  |-+---------+----|
000030f0  2d 2d 2d 2d 2d 2b 0d 11  9e 04 0d 11 a8 27 dd 20  |-----+.......'. |
00003100  f2 5f 75 70 64 61 74 65  5f 72 65 63 74 61 6e 67  |._update_rectang|
00003110  6c 65 73 28 62 75 66 66  25 2c 20 66 6c 61 67 25  |les(buff%, flag%|
00003120  29 0d 11 b2 0c c8 95 20  66 6c 61 67 25 0d 11 bc  |)...... flag%...|
00003130  1e 20 20 20 20 20 20 f2  5f 72 65 64 72 61 77 5f  |.      ._redraw_|
00003140  74 68 69 73 28 62 75 66  66 25 29 0d 11 c6 31 20  |this(buff%)...1 |
00003150  20 20 20 20 20 c8 99 20  22 57 69 6d 70 5f 47 65  |     .. "Wimp_Ge|
00003160  74 52 65 63 74 61 6e 67  6c 65 22 2c 20 2c 20 62  |tRectangle", , b|
00003170  75 66 66 25 20 b8 20 66  6c 61 67 25 0d 11 d0 05  |uff% . flag%....|
00003180  ce 0d 11 da 05 e1 0d 11  e4 04 0d 11 ee 56 f4 20  |.............V. |
00003190  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 2d 2d 2d 2d 2d 2d  |---------+------|
000031a0  2d 2d 2d 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 2d 2d  |---+---------+--|
000031b0  2d 2d 2d 2d 2d 2d 2d 2b  2d 2d 2d 2d 2d 2d 2d 2d  |-------+--------|
000031c0  2d 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 2d 2d 2d 2d  |-+---------+----|
000031d0  2d 2d 2d 2d 2d 2b 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |-----+---------+|
000031e0  0d 11 f8 04 0d 12 02 21  dd 20 f2 5f 69 6e 69 74  |.......!. ._init|
000031f0  5f 6f 70 65 6e 5f 77 69  6e 64 6f 77 28 77 69 6e  |_open_window(win|
00003200  64 6f 77 25 29 0d 12 0c  1a ea 20 78 25 2c 20 79  |dow%)..... x%, y|
00003210  25 2c 20 78 69 25 2c 20  79 69 25 2c 20 66 25 0d  |%, xi%, yi%, f%.|
00003220  12 16 2d c8 99 20 22 4f  53 5f 52 65 61 64 4d 6f  |..-.. "OS_ReadMo|
00003230  64 65 56 61 72 69 61 62  6c 65 22 2c 20 2d 31 2c  |deVariable", -1,|
00003240  20 34 20 b8 20 2c 20 2c  20 78 69 25 0d 12 20 2d  | 4 . , , xi%.. -|
00003250  c8 99 20 22 4f 53 5f 52  65 61 64 4d 6f 64 65 56  |.. "OS_ReadModeV|
00003260  61 72 69 61 62 6c 65 22  2c 20 2d 31 2c 20 35 20  |ariable", -1, 5 |
00003270  b8 20 2c 20 2c 20 79 69  25 0d 12 2a 2d c8 99 20  |. , , yi%..*-.. |
00003280  22 4f 53 5f 52 65 61 64  4d 6f 64 65 56 61 72 69  |"OS_ReadModeVari|
00003290  61 62 6c 65 22 2c 20 2d  31 2c 20 31 31 20 b8 20  |able", -1, 11 . |
000032a0  2c 20 2c 20 78 25 0d 12  34 2d c8 99 20 22 4f 53  |, , x%..4-.. "OS|
000032b0  5f 52 65 61 64 4d 6f 64  65 56 61 72 69 61 62 6c  |_ReadModeVariabl|
000032c0  65 22 2c 20 2d 31 2c 20  31 32 20 b8 20 2c 20 2c  |e", -1, 12 . , ,|
000032d0  20 79 25 0d 12 3e 37 f4  20 4c 61 6d 20 74 68 65  | y%..>7. Lam the|
000032e0  20 77 69 6e 64 6f 77 20  69 6e 74 6f 20 74 68 65  | window into the|
000032f0  20 6d 69 64 64 6c 65 20  69 66 20 61 74 20 61 6c  | middle if at al|
00003300  6c 20 70 6f 73 73 69 62  6c 65 0d 12 48 1b 77 69  |l possible..H.wi|
00003310  6d 70 5f 62 75 66 66 32  25 21 30 20 3d 20 77 69  |mp_buff2%!0 = wi|
00003320  6e 64 6f 77 25 0d 12 52  2e c8 99 20 22 57 69 6d  |ndow%..R... "Wim|
00003330  70 5f 47 65 74 57 69 6e  64 6f 77 49 6e 66 6f 22  |p_GetWindowInfo"|
00003340  2c 20 2c 20 77 69 6d 70  5f 62 75 66 66 32 25 20  |, , wimp_buff2% |
00003350  84 20 31 0d 12 5c 1a 77  69 6d 70 5f 62 75 66 66  |. 1..\.wimp_buff|
00003360  25 21 30 20 3d 20 77 69  6e 64 6f 77 25 0d 12 66  |%!0 = window%..f|
00003370  18 78 25 20 3d 20 28 78  25 20 2b 20 31 29 20 3c  |.x% = (x% + 1) <|
00003380  3c 20 78 69 25 0d 12 70  18 79 25 20 3d 20 28 79  |< xi%..p.y% = (y|
00003390  25 20 2b 20 31 29 20 3c  3c 20 79 69 25 0d 12 7a  |% + 1) << yi%..z|
000033a0  40 77 69 6d 70 5f 62 75  66 66 25 21 34 20 20 3d  |@wimp_buff%!4  =|
000033b0  20 28 78 25 20 2d 20 28  77 69 6d 70 5f 62 75 66  | (x% - (wimp_buf|
000033c0  66 32 25 21 35 32 20 2d  20 77 69 6d 70 5f 62 75  |f2%!52 - wimp_bu|
000033d0  66 66 32 25 21 34 34 29  29 20 2f 20 32 0d 12 84  |ff2%!44)) / 2...|
000033e0  40 77 69 6d 70 5f 62 75  66 66 25 21 38 20 20 3d  |@wimp_buff%!8  =|
000033f0  20 28 79 25 20 2d 20 28  77 69 6d 70 5f 62 75 66  | (y% - (wimp_buf|
00003400  66 32 25 21 35 36 20 2d  20 77 69 6d 70 5f 62 75  |f2%!56 - wimp_bu|
00003410  66 66 32 25 21 34 38 29  29 20 2f 20 32 0d 12 8e  |ff2%!48)) / 2...|
00003420  40 77 69 6d 70 5f 62 75  66 66 25 21 31 32 20 3d  |@wimp_buff%!12 =|
00003430  20 28 78 25 20 2b 20 28  77 69 6d 70 5f 62 75 66  | (x% + (wimp_buf|
00003440  66 32 25 21 35 32 20 2d  20 77 69 6d 70 5f 62 75  |f2%!52 - wimp_bu|
00003450  66 66 32 25 21 34 34 29  29 20 2f 20 32 0d 12 98  |ff2%!44)) / 2...|
00003460  40 77 69 6d 70 5f 62 75  66 66 25 21 31 36 20 3d  |@wimp_buff%!16 =|
00003470  20 28 79 25 20 2b 20 28  77 69 6d 70 5f 62 75 66  | (y% + (wimp_buf|
00003480  66 32 25 21 35 36 20 2d  20 77 69 6d 70 5f 62 75  |f2%!56 - wimp_bu|
00003490  66 66 32 25 21 34 38 29  29 20 2f 20 32 0d 12 a2  |ff2%!48)) / 2...|
000034a0  15 77 69 6d 70 5f 62 75  66 66 25 21 32 30 20 3d  |.wimp_buff%!20 =|
000034b0  20 30 0d 12 ac 15 77 69  6d 70 5f 62 75 66 66 25  | 0....wimp_buff%|
000034c0  21 32 34 20 3d 20 30 0d  12 b6 16 77 69 6d 70 5f  |!24 = 0....wimp_|
000034d0  62 75 66 66 25 21 32 38  20 3d 20 2d 31 0d 12 c0  |buff%!28 = -1...|
000034e0  2b e7 20 77 69 6d 70 5f  62 75 66 66 25 21 34 20  |+. wimp_buff%!4 |
000034f0  3c 20 30 20 84 20 77 69  6d 70 5f 62 75 66 66 25  |< 0 . wimp_buff%|
00003500  21 38 20 3c 20 30 20 8c  0d 12 ca 23 20 20 20 f2  |!8 < 0 ....#   .|
00003510  5f 72 65 6f 70 65 6e 5f  77 69 6e 64 6f 77 28 77  |_reopen_window(w|
00003520  69 6d 70 5f 62 75 66 66  32 25 29 0d 12 d4 05 cc  |imp_buff2%).....|
00003530  0d 12 de 22 20 20 20 f2  5f 72 65 6f 70 65 6e 5f  |..."   ._reopen_|
00003540  77 69 6e 64 6f 77 28 77  69 6d 70 5f 62 75 66 66  |window(wimp_buff|
00003550  25 29 0d 12 e8 05 cd 0d  12 f2 05 e1 0d 12 fc 04  |%)..............|
00003560  0d 13 06 56 f4 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |...V. ---------+|
00003570  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 2d 2d 2d 2d 2d 2d  |---------+------|
00003580  2d 2d 2d 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 2d 2d  |---+---------+--|
00003590  2d 2d 2d 2d 2d 2d 2d 2b  2d 2d 2d 2d 2d 2d 2d 2d  |-------+--------|
000035a0  2d 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 2d 2d 2d 2d  |-+---------+----|
000035b0  2d 2d 2d 2d 2d 2b 0d 13  10 04 0d 13 1a 18 dd 20  |-----+......... |
000035c0  f2 5f 68 65 6c 70 5f 69  6e 66 6f 28 62 75 66 66  |._help_info(buff|
000035d0  25 29 0d 13 24 21 f4 20  53 74 75 66 66 20 68 65  |%)..$!. Stuff he|
000035e0  6c 70 20 69 6e 66 6f 20  69 6e 74 6f 20 62 75 66  |lp info into buf|
000035f0  66 65 72 0d 13 2e 45 ea  20 6d 6f 75 73 65 5f 78  |fer...E. mouse_x|
00003600  25 2c 20 6d 6f 75 73 65  5f 79 25 2c 20 6d 6f 75  |%, mouse_y%, mou|
00003610  73 65 5f 62 75 74 74 6f  6e 25 2c 20 77 69 6e 64  |se_button%, wind|
00003620  6f 77 5f 68 61 6e 64 6c  65 25 2c 20 69 63 6f 6e  |ow_handle%, icon|
00003630  5f 68 61 6e 64 6c 65 25  0d 13 38 0e ea 20 49 25  |_handle%..8.. I%|
00003640  2c 20 70 74 72 25 0d 13  42 1c f2 5f 72 65 61 64  |, ptr%..B.._read|
00003650  5f 6d 6f 75 73 65 28 62  75 66 66 25 20 2b 20 32  |_mouse(buff% + 2|
00003660  30 29 0d 13 4c 15 70 74  72 25 20 3d 20 62 75 66  |0)..L.ptr% = buf|
00003670  66 25 20 2b 20 32 30 0d  13 56 17 c8 8e 20 77 69  |f% + 20..V... wi|
00003680  6e 64 6f 77 5f 68 61 6e  64 6c 65 25 20 ca 0d 13  |ndow_handle% ...|
00003690  60 0e 20 20 20 20 20 c9  20 2d 32 3a 0d 13 6a 35  |`.     . -2:..j5|
000036a0  20 20 20 20 20 20 20 20  20 20 70 74 72 25 20 3d  |          ptr% =|
000036b0  20 a4 5f 61 64 64 5f 6d  65 73 73 61 67 65 28 70  | ._add_message(p|
000036c0  74 72 25 2c 20 22 48 45  4c 50 5f 50 52 4f 47 22  |tr%, "HELP_PROG"|
000036d0  29 0d 13 74 04 0d 13 7e  13 20 20 20 20 20 c9 20  |)..t...~.     . |
000036e0  69 6e 66 6f 5f 68 25 3a  0d 13 88 35 20 20 20 20  |info_h%:...5    |
000036f0  20 20 20 20 20 20 70 74  72 25 20 3d 20 a4 5f 61  |      ptr% = ._a|
00003700  64 64 5f 6d 65 73 73 61  67 65 28 70 74 72 25 2c  |dd_message(ptr%,|
00003710  20 22 48 45 4c 50 5f 49  4e 46 4f 22 29 0d 13 92  | "HELP_INFO")...|
00003720  04 0d 13 9c 15 20 20 20  20 20 c9 20 6d 65 6e 75  |.....     . menu|
00003730  5f 77 69 6e 25 3a 0d 13  a6 58 20 20 20 20 20 20  |_win%:...X      |
00003740  20 20 20 20 70 74 72 25  20 3d 20 a4 5f 61 64 64  |    ptr% = ._add|
00003750  5f 6d 65 73 73 61 67 65  28 70 74 72 25 2c 20 22  |_message(ptr%, "|
00003760  48 45 4c 50 5f 4d 45 4e  55 5f 49 43 4f 4e 5f 22  |HELP_MENU_ICON_"|
00003770  20 2b 20 bd 28 69 63 6f  6e 5f 68 61 6e 64 6c 65  | + .(icon_handle|
00003780  25 20 81 20 33 20 2b 20  97 22 31 22 29 29 0d 13  |% . 3 + ."1"))..|
00003790  b0 04 0d 13 ba 0a 20 20  20 20 20 7f 0d 13 c4 4f  |......     ....O|
000037a0  f4 20 20 20 20 20 20 20  20 20 70 74 72 25 20 3d  |.         ptr% =|
000037b0  20 46 4e 5f 61 64 64 5f  6d 65 73 73 61 67 65 5f  | FN_add_message_|
000037c0  31 28 70 74 72 25 2c 20  22 78 20 61 74 20 20 20  |1(ptr%, "x at   |
000037d0  20 3a 20 22 20 2b 20 53  54 52 24 6d 6f 75 73 65  | : " + STR$mouse|
000037e0  5f 78 25 20 2b 20 22 7c  4d 22 29 0d 13 ce 4f f4  |_x% + "|M")...O.|
000037f0  20 20 20 20 20 20 20 20  20 70 74 72 25 20 3d 20  |         ptr% = |
00003800  46 4e 5f 61 64 64 5f 6d  65 73 73 61 67 65 5f 31  |FN_add_message_1|
00003810  28 70 74 72 25 2c 20 22  79 20 61 74 20 20 20 20  |(ptr%, "y at    |
00003820  3a 20 22 20 2b 20 53 54  52 24 6d 6f 75 73 65 5f  |: " + STR$mouse_|
00003830  79 25 20 2b 20 22 7c 4d  22 29 0d 13 d8 54 f4 20  |y% + "|M")...T. |
00003840  20 20 20 20 20 20 20 20  70 74 72 25 20 3d 20 46  |        ptr% = F|
00003850  4e 5f 61 64 64 5f 6d 65  73 73 61 67 65 5f 31 28  |N_add_message_1(|
00003860  70 74 72 25 2c 20 22 62  75 74 74 6f 6e 73 20 3a  |ptr%, "buttons :|
00003870  20 22 20 2b 20 53 54 52  24 6d 6f 75 73 65 5f 62  | " + STR$mouse_b|
00003880  75 74 74 6f 6e 25 20 2b  20 22 7c 4d 22 29 0d 13  |utton% + "|M")..|
00003890  e2 56 f4 20 20 20 20 20  20 20 20 20 70 74 72 25  |.V.         ptr%|
000038a0  20 3d 20 46 4e 5f 61 64  64 5f 6d 65 73 73 61 67  | = FN_add_messag|
000038b0  65 5f 31 28 70 74 72 25  2c 20 22 77 69 6e 64 6f  |e_1(ptr%, "windo|
000038c0  77 20 20 3a 20 22 20 2b  20 53 54 52 24 7e 77 69  |w  : " + STR$~wi|
000038d0  6e 64 6f 77 5f 68 61 6e  64 6c 65 25 20 2b 20 22  |ndow_handle% + "|
000038e0  7c 4d 22 29 0d 13 ec 54  f4 20 20 20 20 20 20 20  ||M")...T.       |
000038f0  20 20 70 74 72 25 20 3d  20 46 4e 5f 61 64 64 5f  |  ptr% = FN_add_|
00003900  6d 65 73 73 61 67 65 5f  31 28 70 74 72 25 2c 20  |message_1(ptr%, |
00003910  22 69 63 6f 6e 20 20 20  20 3a 20 22 20 2b 20 53  |"icon    : " + S|
00003920  54 52 24 7e 69 63 6f 6e  5f 68 61 6e 64 6c 65 25  |TR$~icon_handle%|
00003930  20 2b 20 22 7c 4d 22 29  0d 13 f6 34 20 20 20 20  | + "|M")...4    |
00003940  20 20 20 20 20 70 74 72  25 20 3d 20 a4 5f 61 64  |     ptr% = ._ad|
00003950  64 5f 6d 65 73 73 61 67  65 28 70 74 72 25 2c 20  |d_message(ptr%, |
00003960  22 48 45 4c 50 5f 4e 4f  4e 45 22 29 0d 14 00 04  |"HELP_NONE")....|
00003970  0d 14 0a 05 cb 0d 14 14  0d 3f 70 74 72 25 20 3d  |.........?ptr% =|
00003980  20 30 0d 14 1e 25 62 75  66 66 25 21 30 20 3d 20  | 0...%buff%!0 = |
00003990  28 70 74 72 25 20 2d 20  62 75 66 66 25 20 2b 20  |(ptr% - buff% + |
000039a0  34 29 20 80 20 2d 34 0d  14 28 20 f2 5f 72 65 70  |4) . -4..( ._rep|
000039b0  6c 79 5f 6d 65 73 73 61  67 65 28 62 75 66 66 25  |ly_message(buff%|
000039c0  2c 20 26 35 30 33 29 0d  14 32 05 e1 0d 14 3c 04  |, &503)..2....<.|
000039d0  0d 14 46 56 f4 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |..FV. ---------+|
000039e0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 2d 2d 2d 2d 2d 2d  |---------+------|
000039f0  2d 2d 2d 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 2d 2d  |---+---------+--|
00003a00  2d 2d 2d 2d 2d 2d 2d 2b  2d 2d 2d 2d 2d 2d 2d 2d  |-------+--------|
00003a10  2d 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 2d 2d 2d 2d  |-+---------+----|
00003a20  2d 2d 2d 2d 2d 2b 0d 14  50 04 0d 14 5a 21 dd 20  |-----+..P...Z!. |
00003a30  a4 5f 61 64 64 5f 6d 65  73 73 61 67 65 28 70 74  |._add_message(pt|
00003a40  72 25 2c 20 74 6f 6b 65  6e 24 29 0d 14 64 0b ea  |r%, token$)..d..|
00003a50  20 6d 73 74 72 25 0d 14  6e 59 c8 99 20 22 4d 65  | mstr%..nY.. "Me|
00003a60  73 73 61 67 65 54 72 61  6e 73 5f 4c 6f 6f 6b 75  |ssageTrans_Looku|
00003a70  70 22 2c 20 6d 65 73 73  5f 64 65 73 63 25 2c 20  |p", mess_desc%, |
00003a80  74 6f 6b 65 6e 24 2c 20  6d 65 73 73 5f 62 75 66  |token$, mess_buf|
00003a90  66 25 2c 20 32 35 36 2c  20 30 2c 20 30 2c 20 30  |f%, 256, 0, 0, 0|
00003aa0  2c 20 30 20 b8 20 2c 20  2c 20 6d 73 74 72 25 0d  |, 0 . , , mstr%.|
00003ab0  14 78 31 3d 20 a4 5f 61  64 64 5f 6d 65 73 73 61  |.x1= ._add_messa|
00003ac0  67 65 5f 31 28 70 74 72  25 2c 20 a4 5f 7a 65 72  |ge_1(ptr%, ._zer|
00003ad0  6f 5f 73 74 72 69 6e 67  28 6d 73 74 72 25 29 29  |o_string(mstr%))|
00003ae0  0d 14 82 04 0d 14 8c 56  f4 20 2d 2d 2d 2d 2d 2d  |.......V. ------|
00003af0  2d 2d 2d 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 2d 2d  |---+---------+--|
00003b00  2d 2d 2d 2d 2d 2d 2d 2b  2d 2d 2d 2d 2d 2d 2d 2d  |-------+--------|
00003b10  2d 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 2d 2d 2d 2d  |-+---------+----|
00003b20  2d 2d 2d 2d 2d 2b 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |-----+---------+|
00003b30  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 0d 14 96 04 0d 14  |---------+......|
00003b40  a0 35 dd 20 a4 5f 61 64  64 5f 6d 65 73 73 61 67  |.5. ._add_messag|
00003b50  65 5f 74 6f 6b 28 70 74  72 25 2c 20 74 6f 6b 65  |e_tok(ptr%, toke|
00003b60  6e 24 2c 20 61 24 2c 20  62 24 2c 20 63 24 2c 20  |n$, a$, b$, c$, |
00003b70  64 24 29 0d 14 aa 0b ea  20 6d 73 74 72 25 0d 14  |d$)..... mstr%..|
00003b80  b4 5d c8 99 20 22 4d 65  73 73 61 67 65 54 72 61  |.].. "MessageTra|
00003b90  6e 73 5f 4c 6f 6f 6b 75  70 22 2c 20 6d 65 73 73  |ns_Lookup", mess|
00003ba0  5f 64 65 73 63 25 2c 20  74 6f 6b 65 6e 24 2c 20  |_desc%, token$, |
00003bb0  6d 65 73 73 5f 62 75 66  66 25 2c 20 32 35 36 2c  |mess_buff%, 256,|
00003bc0  20 61 24 2c 20 62 24 2c  20 63 24 2c 20 64 24 20  | a$, b$, c$, d$ |
00003bd0  b8 20 2c 20 2c 20 6d 73  74 72 25 0d 14 be 31 3d  |. , , mstr%...1=|
00003be0  20 a4 5f 61 64 64 5f 6d  65 73 73 61 67 65 5f 31  | ._add_message_1|
00003bf0  28 70 74 72 25 2c 20 a4  5f 7a 65 72 6f 5f 73 74  |(ptr%, ._zero_st|
00003c00  72 69 6e 67 28 6d 73 74  72 25 29 29 0d 14 c8 04  |ring(mstr%))....|
00003c10  0d 14 d2 56 f4 20 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |...V. ---------+|
00003c20  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 2d 2d 2d 2d 2d 2d  |---------+------|
00003c30  2d 2d 2d 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 2d 2d  |---+---------+--|
00003c40  2d 2d 2d 2d 2d 2d 2d 2b  2d 2d 2d 2d 2d 2d 2d 2d  |-------+--------|
00003c50  2d 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 2d 2d 2d 2d  |-+---------+----|
00003c60  2d 2d 2d 2d 2d 2b 0d 14  dc 04 0d 14 e6 22 dd 20  |-----+.......". |
00003c70  a4 5f 61 64 64 5f 6d 65  73 73 61 67 65 5f 31 28  |._add_message_1(|
00003c80  70 74 72 25 2c 20 6d 65  73 73 24 29 0d 14 f0 11  |ptr%, mess$)....|
00003c90  24 70 74 72 25 20 3d 20  6d 65 73 73 24 0d 14 fa  |$ptr% = mess$...|
00003ca0  15 3d 20 70 74 72 25 20  2b 20 a9 28 6d 65 73 73  |.= ptr% + .(mess|
00003cb0  24 29 0d 15 04 04 0d 15  0e 56 f4 20 2d 2d 2d 2d  |$).......V. ----|
00003cc0  2d 2d 2d 2d 2d 2b 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |-----+---------+|
00003cd0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 2d 2d 2d 2d 2d 2d  |---------+------|
00003ce0  2d 2d 2d 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 2d 2d  |---+---------+--|
00003cf0  2d 2d 2d 2d 2d 2d 2d 2b  2d 2d 2d 2d 2d 2d 2d 2d  |-------+--------|
00003d00  2d 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 0d 15 18 04  |-+---------+....|
00003d10  0d 15 22 23 dd 20 f2 5f  72 65 70 6c 79 5f 6d 65  |.."#. ._reply_me|
00003d20  73 73 61 67 65 28 62 75  66 66 25 2c 20 6d 65 73  |ssage(buff%, mes|
00003d30  73 25 29 0d 15 2c 14 62  75 66 66 25 21 31 36 20  |s%)..,.buff%!16 |
00003d40  3d 20 6d 65 73 73 25 0d  15 36 16 62 75 66 66 25  |= mess%..6.buff%|
00003d50  21 31 32 20 3d 20 62 75  66 66 25 21 38 0d 15 40  |!12 = buff%!8..@|
00003d60  2d c8 99 20 22 57 69 6d  70 5f 53 65 6e 64 4d 65  |-.. "Wimp_SendMe|
00003d70  73 73 61 67 65 22 2c 20  31 37 2c 20 62 75 66 66  |ssage", 17, buff|
00003d80  25 2c 20 62 75 66 66 25  21 34 0d 15 4a 05 e1 0d  |%, buff%!4..J...|
00003d90  15 54 04 0d 15 5e 56 f4  20 2d 2d 2d 2d 2d 2d 2d  |.T...^V. -------|
00003da0  2d 2d 2b 2d 2d 2d 2d 2d  2d 2d 2d 2d 2b 2d 2d 2d  |--+---------+---|
00003db0  2d 2d 2d 2d 2d 2d 2b 2d  2d 2d 2d 2d 2d 2d 2d 2d  |------+---------|
00003dc0  2b 2d 2d 2d 2d 2d 2d 2d  2d 2d 2b 2d 2d 2d 2d 2d  |+---------+-----|
00003dd0  2d 2d 2d 2d 2b 2d 2d 2d  2d 2d 2d 2d 2d 2d 2b 2d  |----+---------+-|
00003de0  2d 2d 2d 2d 2d 2d 2d 2d  2b 0d 15 68 04 0d 15 72  |--------+..h...r|
00003df0  1a dd 20 f2 5f 61 63 6b  5f 6d 65 73 73 61 67 65  |.. ._ack_message|
00003e00  28 62 75 66 66 25 29 0d  15 7c 16 f4 20 62 75 66  |(buff%)..|.. buf|
00003e10  66 25 21 31 36 20 3d 20  6d 65 73 73 25 0d 15 86  |f%!16 = mess%...|
00003e20  16 62 75 66 66 25 21 31  32 20 3d 20 62 75 66 66  |.buff%!12 = buff|
00003e30  25 21 38 0d 15 90 2d c8  99 20 22 57 69 6d 70 5f  |%!8...-.. "Wimp_|
00003e40  53 65 6e 64 4d 65 73 73  61 67 65 22 2c 20 31 39  |SendMessage", 19|
00003e50  2c 20 62 75 66 66 25 2c  20 62 75 66 66 25 21 34  |, buff%, buff%!4|
00003e60  0d 15 9a 05 e1 0d 15 a4  04 0d 15 ae 56 f4 20 2d  |............V. -|
00003e70  2d 2d 2d 2d 2d 2d 2d 2d  2b 2d 2d 2d 2d 2d 2d 2d  |--------+-------|
00003e80  2d 2d 2b 2d 2d 2d 2d 2d  2d 2d 2d 2d 2b 2d 2d 2d  |--+---------+---|
00003e90  2d 2d 2d 2d 2d 2d 2b 2d  2d 2d 2d 2d 2d 2d 2d 2d  |------+---------|
00003ea0  2b 2d 2d 2d 2d 2d 2d 2d  2d 2d 2b 2d 2d 2d 2d 2d  |+---------+-----|
00003eb0  2d 2d 2d 2d 2b 2d 2d 2d  2d 2d 2d 2d 2d 2d 2b 0d  |----+---------+.|
00003ec0  15 b8 04 0d 15 c2 19 dd  20 f2 5f 72 65 61 64 5f  |........ ._read_|
00003ed0  6d 6f 75 73 65 28 62 75  66 66 25 29 0d 15 cc 16  |mouse(buff%)....|
00003ee0  6d 6f 75 73 65 5f 78 25  20 3d 20 62 75 66 66 25  |mouse_x% = buff%|
00003ef0  21 30 0d 15 d6 16 6d 6f  75 73 65 5f 79 25 20 3d  |!0....mouse_y% =|
00003f00  20 62 75 66 66 25 21 34  0d 15 e0 1b 6d 6f 75 73  | buff%!4....mous|
00003f10  65 5f 62 75 74 74 6f 6e  25 20 3d 20 62 75 66 66  |e_button% = buff|
00003f20  25 21 38 0d 15 ea 1d 77  69 6e 64 6f 77 5f 68 61  |%!8....window_ha|
00003f30  6e 64 6c 65 25 20 3d 20  62 75 66 66 25 21 31 32  |ndle% = buff%!12|
00003f40  0d 15 f4 1b 69 63 6f 6e  5f 68 61 6e 64 6c 65 25  |....icon_handle%|
00003f50  20 3d 20 62 75 66 66 25  21 31 36 0d 15 fe 05 e1  | = buff%!16.....|
00003f60  0d 16 08 04 0d 16 12 56  f4 20 2d 2d 2d 2d 2d 2d  |.......V. ------|
00003f70  2d 2d 2d 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 2d 2d  |---+---------+--|
00003f80  2d 2d 2d 2d 2d 2d 2d 2b  2d 2d 2d 2d 2d 2d 2d 2d  |-------+--------|
00003f90  2d 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 2d 2d 2d 2d  |-+---------+----|
00003fa0  2d 2d 2d 2d 2d 2b 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |-----+---------+|
00003fb0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2b 0d ff              |---------+..|
00003fbc