home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / utilities / utilsd / evntshell / Blib / Menu < prev    next >
Unknown  |  1992-02-29  |  10.6 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text


This file was not able to be converted.
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
100% file data default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0d 00 01 10 2a 7c 73 74 | 61 72 74 20 4d 65 6e 75 |....*|st|art Menu|
|00000010| 0d 00 02 13 2a 7c 21 4d | 65 6e 75 20 4c 69 62 72 |....*|!M|enu Libr|
|00000020| 61 72 79 0d 00 03 07 2a | 7c 21 0d 00 04 34 2a 7c |ary....*||!...4*||
|00000030| 21 56 65 72 73 69 6f 6e | 20 31 2e 32 30 20 2d 20 |!Version| 1.20 - |
|00000040| 28 43 29 20 49 61 6e 20 | 50 61 6c 6d 65 72 2c 20 |(C) Ian |Palmer, |
|00000050| 31 73 74 20 4d 61 72 63 | 68 20 31 39 39 33 0d 00 |1st Marc|h 1993..|
|00000060| 05 07 2a 7c 21 0d 00 06 | 3d 2a 7c 21 54 68 69 73 |..*|!...|=*|!This|
|00000070| 20 6c 69 62 72 61 72 79 | 20 63 6f 6e 74 61 69 6e | library| contain|
|00000080| 73 20 72 6f 75 74 69 6e | 65 73 20 66 6f 72 20 62 |s routin|es for b|
|00000090| 75 69 6c 64 69 6e 67 20 | 6d 65 6e 75 73 2e 20 54 |uilding |menus. T|
|000000a0| 77 6f 0d 00 07 3f 2a 7c | 21 6d 65 74 68 6f 64 73 |wo...?*||!methods|
|000000b0| 20 61 72 65 20 73 75 70 | 70 6c 69 65 64 2c 20 6f | are sup|plied, o|
|000000c0| 6e 65 20 28 50 52 4f 43 | 6d 65 6e 75 5f 6d 61 6b |ne (PROC|menu_mak|
|000000d0| 65 6d 65 6e 75 29 20 77 | 6f 72 6b 73 20 66 72 6f |emenu) w|orks fro|
|000000e0| 6d 0d 00 08 3f 2a 7c 21 | 61 6e 20 61 72 72 61 79 |m...?*|!|an array|
|000000f0| 20 6f 66 20 6d 65 6e 75 | 20 69 74 65 6d 73 2c 20 | of menu| items, |
|00000100| 74 68 65 20 6f 74 68 65 | 72 20 75 73 65 64 73 20 |the othe|r useds |
|00000110| 73 65 76 65 72 61 6c 20 | 72 6f 75 74 69 6e 65 73 |several |routines|
|00000120| 0d 00 09 42 2a 7c 21 74 | 6f 20 62 75 69 6c 64 20 |...B*|!t|o build |
|00000130| 75 70 20 74 68 65 20 6d | 65 6e 75 20 73 74 61 67 |up the m|enu stag|
|00000140| 65 20 62 79 20 73 74 61 | 67 65 2e 20 41 6c 6c 20 |e by sta|ge. All |
|00000150| 6d 65 6e 75 73 20 61 72 | 65 20 61 73 73 69 67 6e |menus ar|e assign|
|00000160| 65 64 0d 00 0a 30 2a 7c | 21 61 20 6e 75 6d 62 65 |ed...0*||!a numbe|
|00000170| 72 20 28 30 20 75 70 77 | 61 72 64 73 29 20 74 6f |r (0 upw|ards) to|
|00000180| 20 6d 61 6b 65 20 6c 69 | 66 65 20 65 61 73 69 65 | make li|fe easie|
|00000190| 72 2e 0d 00 0b 04 0d 00 | 0c 0f 2a 7c 73 74 6f 70 |r.......|..*|stop|
|000001a0| 20 4d 65 6e 75 0d 00 0d | 19 2a 7c 73 74 61 72 74 | Menu...|.*|start|
|000001b0| 20 50 52 4f 43 6d 65 6e | 75 5f 69 6e 69 74 0d 00 | PROCmen|u_init..|
|000001c0| 0e 1e 2a 7c 21 50 52 4f | 43 6d 65 6e 75 5f 69 6e |..*|!PRO|Cmenu_in|
|000001d0| 69 74 28 20 6e 75 6d 62 | 65 72 20 29 0d 00 0f 07 |it( numb|er )....|
|000001e0| 2a 7c 21 0d 00 10 3a 2a | 7c 21 49 6e 69 74 69 61 |*|!...:*||!Initia|
|000001f0| 6c 69 73 65 73 20 74 68 | 65 20 6d 65 6e 75 20 72 |lises th|e menu r|
|00000200| 6f 75 74 69 6e 65 73 2e | 20 4d 75 73 74 20 62 65 |outines.| Must be|
|00000210| 20 63 61 6c 6c 65 64 20 | 61 66 74 65 72 0d 00 11 | called |after...|
|00000220| 40 2a 7c 21 69 6e 69 74 | 69 61 6c 69 73 61 74 69 |@*|!init|ialisati|
|00000230| 6f 6e 20 6f 66 20 74 68 | 65 20 64 79 6e 61 6d 69 |on of th|e dynami|
|00000240| 63 20 6d 65 6d 6f 72 79 | 20 6c 69 62 72 61 72 79 |c memory| library|
|00000250| 2e 20 53 65 74 73 20 75 | 70 20 74 68 65 0d 00 12 |. Sets u|p the...|
|00000260| 43 2a 7c 21 67 69 76 65 | 6e 20 27 6e 75 6d 62 65 |C*|!give|n 'numbe|
|00000270| 72 27 20 6f 66 20 6d 65 | 6e 75 73 2c 20 74 68 69 |r' of me|nus, thi|
|00000280| 73 20 6e 75 6d 62 65 72 | 20 63 61 6e 20 62 65 20 |s number| can be |
|00000290| 63 68 61 6e 67 65 64 20 | 6c 61 74 65 72 20 69 66 |changed |later if|
|000002a0| 0d 00 13 46 2a 7c 21 6d | 6f 72 65 20 61 72 65 20 |...F*|!m|ore are |
|000002b0| 72 65 71 75 69 72 65 64 | 2e 20 49 6e 20 74 68 69 |required|. In thi|
|000002c0| 73 20 6c 69 62 72 61 72 | 79 20 61 6c 6c 20 6d 65 |s librar|y all me|
|000002d0| 6e 75 73 20 61 72 65 20 | 67 69 76 65 6e 20 61 20 |nus are |given a |
|000002e0| 6e 75 6d 62 65 72 0d 00 | 14 1a 2a 7c 21 66 72 6f |number..|..*|!fro|
|000002f0| 6d 20 30 20 74 6f 20 6e | 75 6d 62 65 72 2d 31 2e |m 0 to n|umber-1.|
|00000300| 0d 00 15 13 dd f2 6d 65 | 6e 75 5f 69 6e 69 74 28 |......me|nu_init(|
|00000310| 4e 25 29 0d 00 16 08 ea | 20 41 25 0d 00 17 3b 6d |N%).....| A%...;m|
|00000320| 65 6e 75 5f 74 69 63 6b | 3d 31 3a 6d 65 6e 75 5f |enu_tick|=1:menu_|
|00000330| 64 6f 74 74 65 64 3d 32 | 3a 5f 77 69 6d 70 5f 6d |dotted=2|:_wimp_m|
|00000340| 65 6e 75 25 3d a4 6d 61 | 6c 6c 6f 63 28 28 4e 25 |enu%=.ma|lloc((N%|
|00000350| 2b 31 29 2a 34 29 0d 00 | 18 32 5f 77 69 6d 70 5f |+1)*4)..|.2_wimp_|
|00000360| 6f 6c 64 6d 65 6e 75 25 | 3d 30 3a 5f 77 69 6d 70 |oldmenu%|=0:_wimp|
|00000370| 5f 6f 6c 64 6d 78 25 3d | 30 3a 5f 77 69 6d 70 5f |_oldmx%=|0:_wimp_|
|00000380| 6f 6c 64 6d 79 25 3d 30 | 0d 00 19 37 21 5f 77 69 |oldmy%=0|...7!_wi|
|00000390| 6d 70 5f 6d 65 6e 75 25 | 3d 4e 25 3a e3 20 41 25 |mp_menu%|=N%:. A%|
|000003a0| 3d 31 20 b8 20 4e 25 3a | 21 28 5f 77 69 6d 70 5f |=1 . N%:|!(_wimp_|
|000003b0| 6d 65 6e 75 25 2b 34 2a | 41 25 29 3d 30 3a ed 0d |menu%+4*|A%)=0:..|
|000003c0| 00 1a 05 e1 0d 00 1b 04 | 0d 00 1c 18 2a 7c 73 74 |........|....*|st|
|000003d0| 6f 70 20 50 52 4f 43 6d | 65 6e 75 5f 69 6e 69 74 |op PROCm|enu_init|
|000003e0| 0d 00 1d 1b 2a 7c 73 74 | 61 72 74 20 50 52 4f 43 |....*|st|art PROC|
|000003f0| 6d 65 6e 75 5f 72 65 73 | 69 7a 65 0d 00 1e 20 2a |menu_res|ize... *|
|00000400| 7c 21 50 52 4f 43 6d 65 | 6e 75 5f 72 65 73 69 7a ||!PROCme|nu_resiz|
|00000410| 65 28 20 6e 75 6d 62 65 | 72 20 29 0d 00 1f 07 2a |e( numbe|r )....*|
|00000420| 7c 21 0d 00 20 3f 2a 7c | 21 54 68 69 73 20 73 68 ||!.. ?*||!This sh|
|00000430| 6f 75 6c 64 20 62 65 20 | 63 61 6c 6c 65 64 20 69 |ould be |called i|
|00000440| 66 20 79 6f 75 20 72 65 | 71 75 69 72 65 20 6d 6f |f you re|quire mo|
|00000450| 72 65 20 6d 65 6e 75 73 | 20 74 68 61 6e 20 79 6f |re menus| than yo|
|00000460| 75 0d 00 21 42 2a 7c 21 | 64 65 63 6c 61 72 65 64 |u..!B*|!|declared|
|00000470| 20 61 74 20 74 68 65 20 | 6d 65 6e 75 5f 69 6e 69 | at the |menu_ini|
|00000480| 74 20 73 74 61 67 65 2e | 20 54 68 65 20 27 6e 75 |t stage.| The 'nu|
|00000490| 6d 62 65 72 27 20 73 68 | 6f 75 6c 64 20 62 65 20 |mber' sh|ould be |
|000004a0| 74 68 65 0d 00 22 1b 2a | 7c 21 6e 65 77 20 6e 75 |the..".*||!new nu|
|000004b0| 6d 62 65 72 20 72 65 71 | 75 69 72 65 64 2e 0d 00 |mber req|uired...|
|000004c0| 23 15 dd f2 6d 65 6e 75 | 5f 72 65 73 69 7a 65 28 |#...menu|_resize(|
|000004d0| 4e 25 29 0d 00 24 28 ea | 20 41 25 2c 42 25 3a 42 |N%)..$(.| A%,B%:B|
|000004e0| 25 3d 21 5f 77 69 6d 70 | 5f 6d 65 6e 75 25 3a e7 |%=!_wimp|_menu%:.|
|000004f0| 20 4e 25 3c 3d 42 25 20 | 8c 20 e1 0d 00 25 22 f2 | N%<=B% |. ...%".|
|00000500| 72 65 61 6c 6c 6f 63 28 | 5f 77 69 6d 70 5f 6d 65 |realloc(|_wimp_me|
|00000510| 6e 75 25 2c 28 4e 25 2b | 31 29 2a 34 29 0d 00 26 |nu%,(N%+|1)*4)..&|
|00000520| 2a e3 20 41 25 3d 42 25 | 2b 31 20 b8 20 4e 25 3a |*. A%=B%|+1 . N%:|
|00000530| 21 28 5f 77 69 6d 70 5f | 6d 65 6e 75 25 2b 34 2a |!(_wimp_|menu%+4*|
|00000540| 41 25 29 3d 30 3a ed 0d | 00 27 05 e1 0d 00 28 04 |A%)=0:..|.'....(.|
|00000550| 0d 00 29 1a 2a 7c 73 74 | 6f 70 20 50 52 4f 43 6d |..).*|st|op PROCm|
|00000560| 65 6e 75 5f 72 65 73 69 | 7a 65 0d 00 2a 1b 2a 7c |enu_resi|ze..*.*||
|00000570| 73 74 61 72 74 20 46 4e | 6d 65 6e 75 5f 6c 61 73 |start FN|menu_las|
|00000580| 74 6d 65 6e 75 0d 00 2b | 16 2a 7c 21 46 4e 6d 65 |tmenu..+|.*|!FNme|
|00000590| 6e 75 5f 6c 61 73 74 6d | 65 6e 75 0d 00 2c 07 2a |nu_lastm|enu..,.*|
|000005a0| 7c 21 0d 00 2d 39 2a 7c | 21 52 65 74 75 72 6e 73 ||!..-9*||!Returns|
|000005b0| 20 74 68 65 20 6d 65 6e | 75 20 6e 75 6d 62 65 72 | the men|u number|
|000005c0| 20 6f 66 20 74 68 65 20 | 6c 61 73 74 20 6d 65 6e | of the |last men|
|000005d0| 75 20 70 61 73 73 65 64 | 20 74 6f 0d 00 2e 3e 2a |u passed| to...>*|
|000005e0| 7c 21 50 52 4f 43 6d 65 | 6e 75 5f 70 6f 70 75 70 ||!PROCme|nu_popup|
|000005f0| 2e 20 55 73 65 66 75 6c | 20 66 6f 72 20 61 20 67 |. Useful| for a g|
|00000600| 65 6e 65 72 61 6c 20 77 | 69 6d 70 5f 6d 65 6e 75 |eneral w|imp_menu|
|00000610| 73 65 6c 65 63 74 69 6f | 6e 0d 00 2f 33 2a 7c 21 |selectio|n../3*|!|
|00000620| 72 6f 75 74 69 6e 65 20 | 66 6f 72 20 66 69 6e 64 |routine |for find|
|00000630| 69 6e 67 20 6f 75 74 20 | 77 68 69 63 68 20 6d 65 |ing out |which me|
|00000640| 6e 75 20 77 61 73 20 75 | 73 65 64 2e 0d 00 30 13 |nu was u|sed...0.|
|00000650| dd a4 6d 65 6e 75 5f 6c | 61 73 74 6d 65 6e 75 0d |..menu_l|astmenu.|
|00000660| 00 31 13 3d 5f 77 69 6d | 70 5f 6f 6c 64 6d 65 6e |.1.=_wim|p_oldmen|
|00000670| 75 25 0d 00 32 04 0d 00 | 33 1a 2a 7c 73 74 6f 70 |u%..2...|3.*|stop|
|00000680| 20 46 4e 6d 65 6e 75 5f | 6c 61 73 74 6d 65 6e 75 | FNmenu_|lastmenu|
|00000690| 0d 00 34 1d 2a 7c 73 74 | 61 72 74 20 50 52 4f 43 |..4.*|st|art PROC|
|000006a0| 6d 65 6e 75 5f 6b 65 65 | 70 6f 70 65 6e 0d 00 35 |menu_kee|popen..5|
|000006b0| 18 2a 7c 21 50 52 4f 43 | 6d 65 6e 75 5f 6b 65 65 |.*|!PROC|menu_kee|
|000006c0| 70 6f 70 65 6e 0d 00 36 | 07 2a 7c 21 0d 00 37 23 |popen..6|.*|!..7#|
|000006d0| 2a 7c 21 54 68 69 73 20 | 69 73 20 63 61 6c 6c 65 |*|!This |is calle|
|000006e0| 64 20 62 79 20 77 69 6d | 70 5f 70 6f 6c 6c 2e 0d |d by wim|p_poll..|
|000006f0| 00 38 13 dd f2 6d 65 6e | 75 5f 6b 65 65 70 6f 70 |.8...men|u_keepop|
|00000700| 65 6e 0d 00 39 2f ea 20 | 4d 25 3a 4d 25 3d 21 28 |en..9/. |M%:M%=!(|
|00000710| 5f 77 69 6d 70 5f 6d 65 | 6e 75 25 2b 34 2a 28 5f |_wimp_me|nu%+4*(_|
|00000720| 77 69 6d 70 5f 6f 6c 64 | 6d 65 6e 75 25 2b 31 29 |wimp_old|menu%+1)|
|00000730| 29 0d 00 3a 1c c8 99 20 | 26 34 30 30 43 46 2c 2c |)..:... |&400CF,,|
|00000740| 5f 77 69 6d 70 5f 62 75 | 66 66 65 72 25 0d 00 3b |_wimp_bu|ffer%..;|
|00000750| 45 e7 20 28 5f 77 69 6d | 70 5f 62 75 66 66 65 72 |E. (_wim|p_buffer|
|00000760| 25 21 38 20 80 20 31 29 | 20 8c 20 c8 99 20 26 34 |%!8 . 1)| . .. &4|
|00000770| 30 30 44 34 2c 2c 4d 25 | 2c 5f 77 69 6d 70 5f 6f |00D4,,M%|,_wimp_o|
|00000780| 6c 64 6d 78 25 2c 5f 77 | 69 6d 70 5f 6f 6c 64 6d |ldmx%,_w|imp_oldm|
|00000790| 79 25 0d 00 3c 05 e1 0d | 00 3d 04 0d 00 3e 1c 2a |y%..<...|.=...>.*|
|000007a0| 7c 73 74 6f 70 20 50 52 | 4f 43 6d 65 6e 75 5f 6b ||stop PR|OCmenu_k|
|000007b0| 65 65 70 6f 70 65 6e 0d | 00 3f 1a 2a 7c 73 74 61 |eepopen.|.?.*|sta|
|000007c0| 72 74 20 50 52 4f 43 6d | 65 6e 75 5f 70 6f 70 75 |rt PROCm|enu_popu|
|000007d0| 70 0d 00 40 25 2a 7c 21 | 50 52 4f 43 6d 65 6e 75 |p..@%*|!|PROCmenu|
|000007e0| 5f 70 6f 70 75 70 28 20 | 6d 65 6e 75 20 2c 20 78 |_popup( |menu , x|
|000007f0| 20 2c 20 79 20 29 0d 00 | 41 07 2a 7c 21 0d 00 42 | , y )..|A.*|!..B|
|00000800| 3c 2a 7c 21 50 6f 70 73 | 20 75 70 20 74 68 65 20 |<*|!Pops| up the |
|00000810| 67 69 76 65 6e 20 6d 65 | 6e 75 20 28 6d 65 6e 75 |given me|nu (menu|
|00000820| 20 6e 75 6d 62 65 72 29 | 20 61 74 20 74 68 65 20 | number)| at the |
|00000830| 67 69 76 65 6e 20 78 2c | 79 0d 00 43 10 2a 7c 21 |given x,|y..C.*|!|
|00000840| 70 6f 73 69 74 69 6f 6e | 2e 0d 00 44 1a dd f2 6d |position|...D...m|
|00000850| 65 6e 75 5f 70 6f 70 75 | 70 28 4d 25 2c 58 25 2c |enu_popu|p(M%,X%,|
|00000860| 59 25 29 0d 00 45 50 5f | 77 69 6d 70 5f 6f 6c 64 |Y%)..EP_|wimp_old|
|00000870| 6d 65 6e 75 25 3d 4d 25 | 3a 5f 77 69 6d 70 5f 6f |menu%=M%|:_wimp_o|
|00000880| 6c 64 6d 78 25 3d 58 25 | 3a 5f 77 69 6d 70 5f 6f |ldmx%=X%|:_wimp_o|
|00000890| 6c 64 6d 79 25 3d 59 25 | 3a 4d 25 3d 21 28 5f 77 |ldmy%=Y%|:M%=!(_w|
|000008a0| 69 6d 70 5f 6d 65 6e 75 | 25 2b 34 2a 28 4d 25 2b |imp_menu|%+4*(M%+|
|000008b0| 31 29 29 0d 00 46 17 c8 | 99 20 26 34 30 30 44 34 |1))..F..|. &400D4|
|000008c0| 2c 2c 4d 25 2c 58 25 2c | 59 25 0d 00 47 05 e1 0d |,,M%,X%,|Y%..G...|
|000008d0| 00 48 04 0d 00 49 19 2a | 7c 73 74 6f 70 20 50 52 |.H...I.*||stop PR|
|000008e0| 4f 43 6d 65 6e 75 5f 70 | 6f 70 75 70 0d 00 4a 18 |OCmenu_p|opup..J.|
|000008f0| 2a 7c 73 74 61 72 74 20 | 46 4e 6d 65 6e 75 5f 77 |*|start |FNmenu_w|
|00000900| 69 64 74 68 0d 00 4b 1b | 2a 7c 21 46 4e 6d 65 6e |idth..K.|*|!FNmen|
|00000910| 75 5f 77 69 64 74 68 28 | 20 6d 65 6e 75 20 29 0d |u_width(| menu ).|
|00000920| 00 4c 07 2a 7c 21 0d 00 | 4d 41 2a 7c 21 52 65 74 |.L.*|!..|MA*|!Ret|
|00000930| 75 72 6e 73 20 74 68 65 | 20 6d 61 78 2e 20 6d 65 |urns the| max. me|
|00000940| 6e 75 20 65 6e 74 72 79 | 20 77 69 64 74 68 20 66 |nu entry| width f|
|00000950| 6f 72 20 61 20 67 69 76 | 65 6e 20 6d 65 6e 75 20 |or a giv|en menu |
|00000960| 6e 75 6d 62 65 72 2e 0d | 00 4e 32 2a 7c 21 54 68 |number..|.N2*|!Th|
|00000970| 69 73 20 69 73 20 4e 4f | 54 20 74 68 65 20 63 6f |is is NO|T the co|
|00000980| 6d 70 6c 65 74 65 20 77 | 69 64 74 68 20 6f 66 20 |mplete w|idth of |
|00000990| 74 68 65 20 6d 65 6e 75 | 2e 0d 00 4f 14 dd a4 6d |the menu|...O...m|
|000009a0| 65 6e 75 5f 77 69 64 74 | 68 28 4e 25 29 0d 00 50 |enu_widt|h(N%)..P|
|000009b0| 23 ea 20 50 25 3a 50 25 | 3d 21 28 5f 77 69 6d 70 |#. P%:P%|=!(_wimp|
|000009c0| 5f 6d 65 6e 75 25 2b 28 | 4e 25 2b 31 29 2a 34 29 |_menu%+(|N%+1)*4)|
|000009d0| 0d 00 51 0a 3d 50 25 21 | 31 36 0d 00 52 04 0d 00 |..Q.=P%!|16..R...|
|000009e0| 53 17 2a 7c 73 74 6f 70 | 20 46 4e 6d 65 6e 75 5f |S.*|stop| FNmenu_|
|000009f0| 77 69 64 74 68 0d 00 54 | 1d 2a 7c 73 74 61 72 74 |width..T|.*|start|
|00000a00| 20 46 4e 6d 65 6e 75 5f | 6d 65 6e 75 68 65 69 67 | FNmenu_|menuheig|
|00000a10| 68 74 0d 00 55 20 2a 7c | 21 46 4e 6d 65 6e 75 5f |ht..U *||!FNmenu_|
|00000a20| 6d 65 6e 75 68 65 69 67 | 68 74 28 20 6d 65 6e 75 |menuheig|ht( menu|
|00000a30| 20 29 0d 00 56 07 2a 7c | 21 0d 00 57 43 2a 7c 21 | )..V.*||!..WC*|!|
|00000a40| 52 65 74 75 72 6e 73 20 | 74 68 65 20 68 65 69 67 |Returns |the heig|
|00000a50| 68 74 20 6f 66 20 74 68 | 65 20 6d 65 6e 75 20 65 |ht of th|e menu e|
|00000a60| 6e 74 72 69 65 73 20 28 | 69 6e 63 6c 75 64 69 6e |ntries (|includin|
|00000a70| 67 20 61 6e 79 20 64 6f | 74 74 65 64 0d 00 58 28 |g any do|tted..X(|
|00000a80| 2a 7c 21 6c 69 6e 65 73 | 29 20 66 6f 72 20 74 68 |*|!lines|) for th|
|00000a90| 65 20 67 69 76 65 6e 20 | 6d 65 6e 75 20 6e 75 6d |e given |menu num|
|00000aa0| 62 65 72 2e 0d 00 59 19 | dd a4 6d 65 6e 75 5f 6d |ber...Y.|..menu_m|
|00000ab0| 65 6e 75 68 65 69 67 68 | 74 28 4e 25 29 0d 00 5a |enuheigh|t(N%)..Z|
|00000ac0| 3e ea 20 41 25 2c 48 25 | 2c 50 25 3a 4e 25 2b 3d |>. A%,H%|,P%:N%+=|
|00000ad0| 31 3a 50 25 3d 21 28 5f | 77 69 6d 70 5f 6d 65 6e |1:P%=!(_|wimp_men|
|00000ae0| 75 25 2b 34 2a 4e 25 29 | 3a 48 25 3d 30 3a 41 25 |u%+4*N%)|:H%=0:A%|
|00000af0| 3d 2d 31 3a f5 3a 41 25 | 2b 3d 31 0d 00 5b 2a 48 |=-1:.:A%|+=1..[*H|
|00000b00| 25 2b 3d 34 34 3a e7 20 | 28 21 28 50 25 2b 41 25 |%+=44:. |(!(P%+A%|
|00000b10| 2a 32 34 2b 32 38 29 20 | 80 20 32 29 20 8c 20 48 |*24+28) |. 2) . H|
|00000b20| 25 2b 3d 32 32 0d 00 5c | 1c fd 20 28 21 28 50 25 |%+=22..\|.. (!(P%|
|00000b30| 2b 41 25 2a 32 34 2b 32 | 38 29 20 80 20 31 32 38 |+A%*24+2|8) . 128|
|00000b40| 29 0d 00 5d 07 3d 48 25 | 0d 00 5e 04 0d 00 5f 1c |)..].=H%|..^..._.|
|00000b50| 2a 7c 73 74 6f 70 20 46 | 4e 6d 65 6e 75 5f 6d 65 |*|stop F|Nmenu_me|
|00000b60| 6e 75 68 65 69 67 68 74 | 0d 00 60 1d 2a 7c 73 74 |nuheight|..`.*|st|
|00000b70| 61 72 74 20 50 52 4f 43 | 6d 65 6e 75 5f 6d 61 6b |art PROC|menu_mak|
|00000b80| 65 6d 65 6e 75 0d 00 61 | 41 2a 7c 21 50 52 4f 43 |emenu..a|A*|!PROC|
|00000b90| 6d 65 6e 75 5f 6d 61 6b | 65 6d 65 6e 75 28 20 74 |menu_mak|emenu( t|
|00000ba0| 69 74 6c 65 20 2c 20 6d | 65 6e 75 20 2c 20 65 6e |itle , m|enu , en|
|00000bb0| 74 72 69 65 73 28 29 20 | 2c 20 6c 61 73 74 5f 65 |tries() |, last_e|
|00000bc0| 6e 74 72 79 20 29 0d 00 | 62 07 2a 7c 21 0d 00 63 |ntry )..|b.*|!..c|
|00000bd0| 3c 2a 7c 21 54 68 69 73 | 20 69 73 20 61 20 67 65 |<*|!This| is a ge|
|00000be0| 6e 65 72 61 6c 20 6d 65 | 6e 75 20 63 72 65 61 74 |neral me|nu creat|
|00000bf0| 69 6f 6e 20 72 6f 75 74 | 69 6e 65 20 77 68 69 63 |ion rout|ine whic|
|00000c00| 68 20 74 61 6b 65 73 20 | 61 0d 00 64 3b 2a 7c 21 |h takes |a..d;*|!|
|00000c10| 74 69 74 6c 65 20 61 6e | 64 20 61 6e 20 61 72 72 |title an|d an arr|
|00000c20| 61 79 20 6f 66 20 65 6e | 74 72 79 20 6e 61 6d 65 |ay of en|try name|
|00000c30| 73 2e 20 49 74 20 74 68 | 65 6e 20 63 72 65 61 74 |s. It th|en creat|
|00000c40| 65 73 20 61 0d 00 65 36 | 2a 7c 21 6d 65 6e 75 20 |es a..e6|*|!menu |
|00000c50| 66 6f 72 20 74 68 65 20 | 65 6e 74 72 69 65 73 20 |for the |entries |
|00000c60| 69 6e 20 74 68 65 20 61 | 72 72 61 79 20 66 72 6f |in the a|rray fro|
|00000c70| 6d 20 30 20 74 6f 20 74 | 68 65 0d 00 66 37 2a 7c |m 0 to t|he..f7*||
|00000c80| 21 6c 61 73 74 5f 65 6e | 74 72 79 27 74 68 20 61 |!last_en|try'th a|
|00000c90| 72 72 61 79 20 65 6e 74 | 72 79 2e 20 48 65 72 65 |rray ent|ry. Here|
|00000ca0| 20 61 72 65 20 73 6f 6d | 65 20 65 78 61 6d 70 6c | are som|e exampl|
|00000cb0| 65 0d 00 67 14 2a 7c 21 | 61 72 72 61 79 20 65 6e |e..g.*|!|array en|
|00000cc0| 74 72 69 65 73 0d 00 68 | 2e 2a 7c 21 20 20 70 6c |tries..h|.*|! pl|
|00000cd0| 61 69 6e 20 74 65 78 74 | 20 20 20 20 2d 20 70 6c |ain text| - pl|
|00000ce0| 61 69 6e 20 74 65 78 74 | 20 6d 65 6e 75 20 65 6e |ain text| menu en|
|00000cf0| 74 72 79 0d 00 69 35 2a | 7c 21 20 20 74 69 63 6b |try..i5*||! tick|
|00000d00| 65 64 2f 20 20 20 20 20 | 20 20 2d 20 74 68 65 20 |ed/ | - the |
|00000d10| 27 2f 27 20 6d 65 61 6e | 73 20 74 69 63 6b 20 74 |'/' mean|s tick t|
|00000d20| 68 65 20 65 6e 74 72 79 | 0d 00 6a 37 2a 7c 21 20 |he entry|..j7*|! |
|00000d30| 20 75 6e 64 65 72 6c 69 | 6e 65 5f 20 20 20 20 2d | underli|ne_ -|
|00000d40| 20 74 68 65 20 27 5f 27 | 20 6d 65 61 6e 73 20 64 | the '_'| means d|
|00000d50| 6f 74 74 65 64 20 75 6e | 64 65 72 6c 69 6e 65 0d |otted un|derline.|
|00000d60| 00 6b 35 2a 7c 21 20 20 | 61 6e 64 20 67 72 65 79 |.k5*|! |and grey|
|00000d70| 40 20 20 20 20 20 2d 20 | 74 68 65 20 27 40 27 20 |@ - |the '@' |
|00000d80| 6d 65 61 6e 73 20 67 72 | 65 79 20 6f 75 74 20 65 |means gr|ey out e|
|00000d90| 6e 74 72 79 0d 00 6c 35 | 2a 7c 21 20 20 61 6c 6c |ntry..l5|*|! all|
|00000da0| 20 74 68 72 65 65 5f 2f | 40 20 20 2d 20 75 6e 64 | three_/|@ - und|
|00000db0| 65 72 6c 69 6e 65 2c 20 | 74 69 63 6b 20 61 6e 64 |erline, |tick and|
|00000dc0| 20 67 72 65 79 20 6f 75 | 74 0d 00 6d 30 2a 7c 21 | grey ou|t..m0*|!|
|00000dd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000de0| 20 20 74 68 65 20 6f 72 | 64 65 72 20 69 73 20 69 | the or|der is i|
|00000df0| 6d 70 6f 72 74 61 6e 74 | 2e 0d 00 6e 07 2a 7c 21 |mportant|...n.*|!|
|00000e00| 0d 00 6f 30 2a 7c 21 20 | 20 73 75 62 20 6d 65 6e |..o0*|! | sub men|
|00000e10| 75 3c 33 3e 20 20 20 2d | 20 65 6e 74 72 79 20 6c |u<3> -| entry l|
|00000e20| 65 61 64 73 20 74 6f 20 | 73 75 62 20 6d 65 6e 75 |eads to |sub menu|
|00000e30| 0d 00 70 36 2a 7c 21 20 | 20 20 20 20 20 20 20 20 |..p6*|! | |
|00000e40| 20 20 20 20 20 20 20 20 | 20 6e 75 6d 62 65 72 20 | | number |
|00000e50| 33 20 28 6d 65 6e 75 20 | 33 20 6d 75 73 74 20 61 |3 (menu |3 must a|
|00000e60| 6c 72 65 61 64 79 0d 00 | 71 2c 2a 7c 21 20 20 20 |lready..|q,*|! |
|00000e70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 68 | | h|
|00000e80| 61 76 65 20 62 65 65 6e | 20 63 72 65 61 74 65 64 |ave been| created|
|00000e90| 29 2e 0d 00 72 07 2a 7c | 21 0d 00 73 33 2a 7c 21 |)...r.*||!..s3*|!|
|00000ea0| 20 20 77 72 69 74 61 62 | 6c 65 3e 31 32 33 3c 20 | writab|le>123< |
|00000eb0| 2d 20 77 72 69 74 61 62 | 6c 65 20 65 6e 74 72 79 |- writab|le entry|
|00000ec0| 20 77 69 74 68 20 62 75 | 66 66 65 72 0d 00 74 29 | with bu|ffer..t)|
|00000ed0| 2a 7c 21 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |*|! | |
|00000ee0| 20 20 20 20 20 61 74 20 | 6c 6f 63 61 74 69 6f 6e | at |location|
|00000ef0| 20 31 32 33 2e 0d 00 75 | 07 2a 7c 21 0d 00 76 33 | 123...u|.*|!..v3|
|00000f00| 2a 7c 21 20 20 73 75 62 | 3c 35 3e 40 20 20 20 20 |*|! sub|<5>@ |
|00000f10| 20 20 20 2d 20 67 72 65 | 79 65 64 20 6f 75 74 20 | - gre|yed out |
|00000f20| 73 75 62 20 6d 65 6e 75 | 20 65 6e 74 72 79 2e 0d |sub menu| entry..|
|00000f30| 00 77 25 dd f2 6d 65 6e | 75 5f 6d 61 6b 65 6d 65 |.w%..men|u_makeme|
|00000f40| 6e 75 28 54 24 2c 4e 25 | 2c 6f 70 74 73 24 28 29 |nu(T$,N%|,opts$()|
|00000f50| 2c 53 25 29 0d 00 78 25 | ea 20 58 58 25 2c 54 43 |,S%)..x%|. XX%,TC|
|00000f60| 25 2c 41 25 2c 42 25 2c | 43 25 2c 50 25 2c 4d 25 |%,A%,B%,|C%,P%,M%|
|00000f70| 2c 6d 65 6e 75 25 2c 4d | 24 0d 00 79 23 4e 25 2b |,menu%,M|$..y#N%+|
|00000f80| 3d 31 3a 6d 65 6e 75 25 | 3d 21 28 5f 77 69 6d 70 |=1:menu%|=!(_wimp|
|00000f90| 5f 6d 65 6e 75 25 2b 4e | 25 2a 34 29 0d 00 7a 0f |_menu%+N|%*4)..z.|
|00000fa0| e7 20 6d 65 6e 75 25 3d | 30 20 8c 0d 00 7b 3b 20 |. menu%=|0 ...{; |
|00000fb0| 20 6d 65 6e 75 25 3d a4 | 6d 61 6c 6c 6f 63 28 33 | menu%=.|malloc(3|
|00000fc0| 32 2b 32 34 2a 28 53 25 | 2b 31 29 29 3a 21 28 5f |2+24*(S%|+1)):!(_|
|00000fd0| 77 69 6d 70 5f 6d 65 6e | 75 25 2b 4e 25 2a 34 29 |wimp_men|u%+N%*4)|
|00000fe0| 3d 6d 65 6e 75 25 0d 00 | 7c 05 cc 0d 00 7d 5f 20 |=menu%..||....}_ |
|00000ff0| 20 e7 20 a4 73 69 7a 65 | 5f 6f 66 28 6d 65 6e 75 | . .size|_of(menu|
|00001000| 25 29 3c 28 33 32 2b 32 | 34 2a 28 53 25 2b 31 29 |%)<(32+2|4*(S%+1)|
|00001010| 29 20 8c 20 f2 72 65 61 | 6c 6c 6f 63 28 6d 65 6e |) . .rea|lloc(men|
|00001020| 75 25 2c 33 32 2b 32 34 | 2a 28 53 25 2b 31 29 29 |u%,32+24|*(S%+1))|
|00001030| 3a 21 28 5f 77 69 6d 70 | 5f 6d 65 6e 75 25 2b 4e |:!(_wimp|_menu%+N|
|00001040| 25 2a 34 29 3d 6d 65 6e | 75 25 0d 00 7e 05 cd 0d |%*4)=men|u%..~...|
|00001050| 00 7f 2b 24 6d 65 6e 75 | 25 3d 54 24 3a 6d 65 6e |..+$menu|%=T$:men|
|00001060| 75 25 3f a9 28 54 24 29 | 3d 30 3a 6d 65 6e 75 25 |u%?.(T$)|=0:menu%|
|00001070| 21 31 32 3d 26 37 30 32 | 30 37 0d 00 80 30 6d 65 |!12=&702|07...0me|
|00001080| 6e 75 25 21 31 36 3d 31 | 37 32 3a 6d 65 6e 75 25 |nu%!16=1|72:menu%|
|00001090| 21 32 30 3d 34 34 3a 6d | 65 6e 75 25 21 32 34 3d |!20=44:m|enu%!24=|
|000010a0| 30 3a 4d 25 3d a9 28 54 | 24 29 0d 00 81 47 e3 20 |0:M%=.(T|$)...G. |
|000010b0| 41 25 3d 30 20 b8 20 53 | 25 3a 4d 24 3d 6f 70 74 |A%=0 . S|%:M$=opt|
|000010c0| 73 24 28 41 25 29 3a 42 | 25 3d 30 3a 43 25 3d 2d |s$(A%):B|%=0:C%=-|
|000010d0| 31 3a 50 25 3d 6d 65 6e | 75 25 2b 32 38 2b 41 25 |1:P%=men|u%+28+A%|
|000010e0| 2a 32 34 3a 54 43 25 3d | 37 3a 58 58 25 3d 26 32 |*24:TC%=|7:XX%=&2|
|000010f0| 31 0d 00 82 34 e7 20 c2 | 4d 24 29 3d 22 40 22 20 |1...4. .|M$)="@" |
|00001100| 8c 20 42 25 3d 42 25 20 | 84 20 38 3a 4d 24 3d c0 |. B%=B% |. 8:M$=.|
|00001110| 4d 24 29 3a 54 43 25 3d | 33 3a 58 58 25 3d 26 34 |M$):TC%=|3:XX%=&4|
|00001120| 30 30 30 32 31 0d 00 83 | 22 e7 20 c2 4d 24 29 3d |00021...|". .M$)=|
|00001130| 22 2f 22 20 8c 20 42 25 | 3d 42 25 20 84 20 31 3a |"/" . B%|=B% . 1:|
|00001140| 4d 24 3d c0 4d 24 29 0d | 00 84 22 e7 20 c2 4d 24 |M$=.M$).|..". .M$|
|00001150| 29 3d 22 5f 22 20 8c 20 | 42 25 3d 42 25 20 84 20 |)="_" . |B%=B% . |
|00001160| 32 3a 4d 24 3d c0 4d 24 | 29 0d 00 85 19 e7 20 41 |2:M$=.M$|)..... A|
|00001170| 25 3d 53 25 20 8c 20 42 | 25 3d 42 25 20 84 20 31 |%=S% . B|%=B% . 1|
|00001180| 32 38 0d 00 86 10 e7 20 | c2 4d 24 29 3d 22 3c 22 |28..... |.M$)="<"|
|00001190| 20 8c 0d 00 87 45 20 20 | 42 25 3d 42 25 20 84 20 | ....E |B%=B% . |
|000011a0| 34 3a 21 50 25 3d 42 25 | 3a 50 25 21 34 3d 43 25 |4:!P%=B%|:P%!4=C%|
|000011b0| 3a 50 25 21 38 3d 28 54 | 43 25 20 80 20 26 46 46 |:P%!8=(T|C% . &FF|
|000011c0| 29 2a 26 31 30 30 30 30 | 30 30 20 84 20 26 31 30 |)*&10000|00 . &10|
|000011d0| 30 20 84 20 58 58 25 0d | 00 88 29 20 20 4d 24 3d |0 . XX%.|..) M$=|
|000011e0| c0 4d 24 29 3a 42 25 3d | a7 4d 24 2c 22 3e 22 29 |.M$):B%=|.M$,">")|
|000011f0| 3a 43 25 3d bb 28 c1 4d | 24 2c 42 25 2b 31 29 29 |:C%=.(.M|$,B%+1))|
|00001200| 0d 00 89 35 20 20 4d 24 | 3d c0 4d 24 2c 42 25 2d |...5 M$|=.M$,B%-|
|00001210| 31 29 3a 24 43 25 3d 4d | 24 3a 50 25 21 31 32 3d |1):$C%=M|$:P%!12=|
|00001220| 43 25 3a 50 25 21 31 36 | 3d 2d 31 3a 50 25 21 32 |C%:P%!16|=-1:P%!2|
|00001230| 30 3d 32 35 35 0d 00 8a | 05 cc 0d 00 8b 12 20 20 |0=255...|...... |
|00001240| e7 20 c2 4d 24 29 3d 22 | 3e 22 20 8c 0d 00 8c 2e |. .M$)="|>" .....|
|00001250| 20 20 20 20 21 50 25 3d | 42 25 3a 50 25 21 38 3d | !P%=|B%:P%!8=|
|00001260| 28 54 43 25 20 80 20 26 | 46 46 29 2a 26 31 30 30 |(TC% . &|FF)*&100|
|00001270| 30 30 30 30 20 84 20 58 | 58 25 0d 00 8d 42 20 20 |0000 . X|X%...B |
|00001280| 20 20 4d 24 3d c0 4d 24 | 29 3a 42 25 3d a7 4d 24 | M$=.M$|):B%=.M$|
|00001290| 2c 22 3c 22 29 3a 43 25 | 3d bb 28 c1 4d 24 2c 42 |,"<"):C%|=.(.M$,B|
|000012a0| 25 2b 31 29 29 3a 43 25 | 3d 21 28 5f 77 69 6d 70 |%+1)):C%|=!(_wimp|
|000012b0| 5f 6d 65 6e 75 25 2b 34 | 2a 43 25 29 0d 00 8e 28 |_menu%+4|*C%)...(|
|000012c0| 20 20 20 20 50 25 21 34 | 3d 43 25 3a 4d 24 3d c0 | P%!4|=C%:M$=.|
|000012d0| 4d 24 2c 42 25 2d 31 29 | 3a 24 28 50 25 2b 31 32 |M$,B%-1)|:$(P%+12|
|000012e0| 29 3d 4d 24 0d 00 8f 07 | 20 20 cc 0d 00 90 36 20 |)=M$....| ....6 |
|000012f0| 20 20 20 21 50 25 3d 42 | 25 3a 50 25 21 34 3d 43 | !P%=B|%:P%!4=C|
|00001300| 25 3a 50 25 21 38 3d 28 | 54 43 25 20 80 20 26 46 |%:P%!8=(|TC% . &F|
|00001310| 46 29 2a 26 31 30 30 30 | 30 30 30 20 84 20 58 58 |F)*&1000|000 . XX|
|00001320| 25 0d 00 91 24 20 20 20 | 20 24 28 50 25 2b 31 32 |%...$ | $(P%+12|
|00001330| 29 3d 4d 24 3a 3f 28 50 | 25 2b 31 32 2b a9 28 4d |)=M$:?(P|%+12+.(M|
|00001340| 24 29 29 3d 30 0d 00 92 | 07 20 20 cd 0d 00 93 1b |$))=0...|. .....|
|00001350| 20 20 e7 20 4d 25 3c a9 | 28 4d 24 29 20 8c 20 4d | . M%<.|(M$) . M|
|00001360| 25 3d a9 28 4d 24 29 0d | 00 94 05 cd 0d 00 95 18 |%=.(M$).|........|
|00001370| ed 3a 6d 65 6e 75 25 21 | 31 36 3d 31 36 2a 28 4d |.:menu%!|16=16*(M|
|00001380| 25 2b 31 29 0d 00 96 05 | e1 0d 00 97 04 0d 00 98 |%+1)....|........|
|00001390| 1c 2a 7c 73 74 6f 70 20 | 50 52 4f 43 6d 65 6e 75 |.*|stop |PROCmenu|
|000013a0| 5f 6d 61 6b 65 6d 65 6e | 75 0d 00 99 1c 2a 7c 73 |_makemen|u....*|s|
|000013b0| 74 61 72 74 20 50 52 4f | 43 6d 65 6e 75 5f 67 72 |tart PRO|Cmenu_gr|
|000013c0| 65 79 6f 75 74 0d 00 9a | 27 2a 7c 21 50 52 4f 43 |eyout...|'*|!PROC|
|000013d0| 6d 65 6e 75 5f 67 72 65 | 79 6f 75 74 28 20 6d 65 |menu_gre|yout( me|
|000013e0| 6e 75 20 2c 20 65 6e 74 | 72 79 20 29 0d 00 9b 07 |nu , ent|ry )....|
|000013f0| 2a 7c 21 0d 00 9c 3d 2a | 7c 21 47 69 76 65 6e 20 |*|!...=*||!Given |
|00001400| 61 6e 20 61 6c 72 65 61 | 64 79 20 63 72 65 61 74 |an alrea|dy creat|
|00001410| 65 64 20 6d 65 6e 75 2c | 20 77 69 6c 6c 20 67 72 |ed menu,| will gr|
|00001420| 65 79 20 6f 75 74 20 74 | 68 65 20 67 69 76 65 6e |ey out t|he given|
|00001430| 0d 00 9d 14 2a 7c 21 65 | 6e 74 72 79 20 6e 75 6d |....*|!e|ntry num|
|00001440| 62 65 72 2e 0d 00 9e 19 | dd f2 6d 65 6e 75 5f 67 |ber.....|..menu_g|
|00001450| 72 65 79 6f 75 74 28 4d | 25 2c 4e 25 29 0d 00 9f |reyout(M|%,N%)...|
|00001460| 4c ea 20 50 25 3a 50 25 | 3d 21 28 5f 77 69 6d 70 |L. P%:P%|=!(_wimp|
|00001470| 5f 6d 65 6e 75 25 2b 34 | 2a 28 4d 25 2b 31 29 29 |_menu%+4|*(M%+1))|
|00001480| 2b 33 36 2b 4e 25 2a 32 | 34 3a 21 50 25 3d 28 21 |+36+N%*2|4:!P%=(!|
|00001490| 50 25 20 80 20 26 46 46 | 42 46 46 46 46 46 29 20 |P% . &FF|BFFFFF) |
|000014a0| 84 20 26 34 30 30 30 30 | 30 0d 00 a0 05 e1 0d 00 |. &40000|0.......|
|000014b0| a1 04 0d 00 a2 1b 2a 7c | 73 74 6f 70 20 50 52 4f |......*||stop PRO|
|000014c0| 43 6d 65 6e 75 5f 67 72 | 65 79 6f 75 74 0d 00 a3 |Cmenu_gr|eyout...|
|000014d0| 1e 2a 7c 73 74 61 72 74 | 20 50 52 4f 43 6d 65 6e |.*|start| PROCmen|
|000014e0| 75 5f 75 6e 67 72 65 79 | 6f 75 74 0d 00 a4 29 2a |u_ungrey|out...)*|
|000014f0| 7c 21 50 52 4f 43 6d 65 | 6e 75 5f 75 6e 67 72 65 ||!PROCme|nu_ungre|
|00001500| 79 6f 75 74 28 20 6d 65 | 6e 75 20 2c 20 65 6e 74 |yout( me|nu , ent|
|00001510| 72 79 20 29 0d 00 a5 07 | 2a 7c 21 0d 00 a6 35 2a |ry )....|*|!...5*|
|00001520| 7c 21 47 69 76 65 6e 20 | 61 6e 20 61 6c 72 65 61 ||!Given |an alrea|
|00001530| 64 79 20 63 72 65 61 74 | 65 64 20 6d 65 6e 75 2c |dy creat|ed menu,|
|00001540| 20 77 69 6c 6c 20 65 6e | 73 75 72 65 20 74 68 65 | will en|sure the|
|00001550| 0d 00 a7 37 2a 7c 21 65 | 6e 74 72 79 20 6e 75 6d |...7*|!e|ntry num|
|00001560| 62 65 72 20 6e 20 74 68 | 65 20 67 69 76 65 6e 20 |ber n th|e given |
|00001570| 6d 65 6e 75 20 69 73 20 | 6e 6f 74 20 67 72 65 79 |menu is |not grey|
|00001580| 65 64 20 6f 75 74 2e 0d | 00 a8 1b dd f2 6d 65 6e |ed out..|.....men|
|00001590| 75 5f 75 6e 67 72 65 79 | 6f 75 74 28 4d 25 2c 4e |u_ungrey|out(M%,N|
|000015a0| 25 29 0d 00 a9 40 ea 20 | 50 25 3a 50 25 3d 21 28 |%)...@. |P%:P%=!(|
|000015b0| 5f 77 69 6d 70 5f 6d 65 | 6e 75 25 2b 34 2a 28 4d |_wimp_me|nu%+4*(M|
|000015c0| 25 2b 31 29 29 2b 33 36 | 2b 4e 25 2a 32 34 3a 21 |%+1))+36|+N%*24:!|
|000015d0| 50 25 3d 21 50 25 20 80 | 20 26 46 46 42 46 46 46 |P%=!P% .| &FFBFFF|
|000015e0| 46 46 0d 00 aa 05 e1 0d | 00 ab 04 0d 00 ac 1d 2a |FF......|.......*|
|000015f0| 7c 73 74 6f 70 20 50 52 | 4f 43 6d 65 6e 75 5f 75 ||stop PR|OCmenu_u|
|00001600| 6e 67 72 65 79 6f 75 74 | 0d 00 ad 19 2a 7c 73 74 |ngreyout|....*|st|
|00001610| 61 72 74 20 50 52 4f 43 | 6d 65 6e 75 5f 74 69 63 |art PROC|menu_tic|
|00001620| 6b 0d 00 ae 23 2a 7c 21 | 50 52 4f 43 6d 65 6e 75 |k...#*|!|PROCmenu|
|00001630| 5f 74 69 63 6b 28 20 6d | 65 6e 75 2c 20 65 6e 74 |_tick( m|enu, ent|
|00001640| 72 79 20 29 0d 00 af 07 | 2a 7c 21 0d 00 b0 2a 2a |ry )....|*|!...**|
|00001650| 7c 21 41 64 64 73 20 61 | 20 74 69 63 6b 20 74 6f ||!Adds a| tick to|
|00001660| 20 74 68 65 20 73 70 65 | 63 69 66 69 65 64 20 65 | the spe|cified e|
|00001670| 6e 74 72 79 2e 0d 00 b1 | 16 dd f2 6d 65 6e 75 5f |ntry....|...menu_|
|00001680| 74 69 63 6b 28 4d 25 2c | 4e 25 29 0d 00 b2 38 ea |tick(M%,|N%)...8.|
|00001690| 20 50 25 3a 50 25 3d 21 | 28 5f 77 69 6d 70 5f 6d | P%:P%=!|(_wimp_m|
|000016a0| 65 6e 75 25 2b 34 2a 28 | 4d 25 2b 31 29 29 2b 32 |enu%+4*(|M%+1))+2|
|000016b0| 38 2b 4e 25 2a 32 34 3a | 21 50 25 3d 21 50 25 20 |8+N%*24:|!P%=!P% |
|000016c0| 84 20 31 0d 00 b3 05 e1 | 0d 00 b4 04 0d 00 b5 18 |. 1.....|........|
|000016d0| 2a 7c 73 74 6f 70 20 50 | 52 4f 43 6d 65 6e 75 5f |*|stop P|ROCmenu_|
|000016e0| 74 69 63 6b 0d 00 b6 1b | 2a 7c 73 74 61 72 74 20 |tick....|*|start |
|000016f0| 50 52 4f 43 6d 65 6e 75 | 5f 75 6e 74 69 63 6b 0d |PROCmenu|_untick.|
|00001700| 00 b7 25 2a 7c 21 50 52 | 4f 43 6d 65 6e 75 5f 75 |..%*|!PR|OCmenu_u|
|00001710| 6e 74 69 63 6b 28 20 6d | 65 6e 75 2c 20 65 6e 74 |ntick( m|enu, ent|
|00001720| 72 79 20 29 0d 00 b8 07 | 2a 7c 21 0d 00 b9 2f 2a |ry )....|*|!.../*|
|00001730| 7c 21 52 65 6d 6f 76 65 | 73 20 61 20 74 69 63 6b ||!Remove|s a tick|
|00001740| 20 66 72 6f 6d 20 74 68 | 65 20 73 70 65 63 69 66 | from th|e specif|
|00001750| 69 65 64 20 65 6e 74 72 | 79 2e 0d 00 ba 18 dd f2 |ied entr|y.......|
|00001760| 6d 65 6e 75 5f 75 6e 74 | 69 63 6b 28 4d 25 2c 4e |menu_unt|ick(M%,N|
|00001770| 25 29 0d 00 bb 40 ea 20 | 50 25 3a 50 25 3d 21 28 |%)...@. |P%:P%=!(|
|00001780| 5f 77 69 6d 70 5f 6d 65 | 6e 75 25 2b 34 2a 28 4d |_wimp_me|nu%+4*(M|
|00001790| 25 2b 31 29 29 2b 32 38 | 2b 4e 25 2a 32 34 3a 21 |%+1))+28|+N%*24:!|
|000017a0| 50 25 3d 21 50 25 20 80 | 20 26 46 46 46 46 46 46 |P%=!P% .| &FFFFFF|
|000017b0| 46 45 0d 00 bc 05 e1 0d | 00 bd 1a 2a 7c 73 74 6f |FE......|...*|sto|
|000017c0| 70 20 50 52 4f 43 6d 65 | 6e 75 5f 75 6e 74 69 63 |p PROCme|nu_untic|
|000017d0| 6b 0d 00 be 1e 2a 7c 73 | 74 61 72 74 20 50 52 4f |k....*|s|tart PRO|
|000017e0| 43 6d 65 6e 75 5f 73 75 | 62 77 69 6e 64 6f 77 0d |Cmenu_su|bwindow.|
|000017f0| 00 bf 32 2a 7c 21 50 52 | 4f 43 6d 65 6e 75 5f 73 |..2*|!PR|OCmenu_s|
|00001800| 75 62 77 69 6e 64 6f 77 | 28 20 6d 65 6e 75 20 2c |ubwindow|( menu ,|
|00001810| 20 65 6e 74 72 79 20 2c | 20 77 69 6e 64 6f 77 20 | entry ,| window |
|00001820| 29 0d 00 c0 07 2a 7c 21 | 0d 00 c1 3d 2a 7c 21 57 |)....*|!|...=*|!W|
|00001830| 69 6c 6c 20 61 74 74 61 | 63 68 20 74 68 65 20 67 |ill atta|ch the g|
|00001840| 69 76 65 6e 20 77 69 6e | 64 6f 77 20 74 6f 20 74 |iven win|dow to t|
|00001850| 68 65 20 67 69 76 65 6e | 20 65 6e 74 72 79 20 69 |he given| entry i|
|00001860| 6e 20 74 68 65 0d 00 c2 | 12 2a 7c 21 67 69 76 65 |n the...|.*|!give|
|00001870| 6e 20 6d 65 6e 75 2e 0d | 00 c3 1e dd f2 6d 65 6e |n menu..|.....men|
|00001880| 75 5f 73 75 62 77 69 6e | 64 6f 77 28 4d 25 2c 4e |u_subwin|dow(M%,N|
|00001890| 25 2c 53 25 29 0d 00 c4 | 3a ea 20 50 25 3a 50 25 |%,S%)...|:. P%:P%|
|000018a0| 3d 21 28 5f 77 69 6d 70 | 5f 6d 65 6e 75 25 2b 34 |=!(_wimp|_menu%+4|
|000018b0| 2a 28 4d 25 2b 31 29 29 | 3a 21 28 50 25 2b 33 32 |*(M%+1))|:!(P%+32|
|000018c0| 2b 4e 25 2a 32 34 29 3d | 21 28 53 25 2d 38 29 0d |+N%*24)=|!(S%-8).|
|000018d0| 00 c5 05 e1 0d 00 c6 04 | 0d 00 c7 1d 2a 7c 73 74 |........|....*|st|
|000018e0| 6f 70 20 50 52 4f 43 6d | 65 6e 75 5f 73 75 62 77 |op PROCm|enu_subw|
|000018f0| 69 6e 64 6f 77 0d 00 c8 | 1c 2a 7c 73 74 61 72 74 |indow...|.*|start|
|00001900| 20 50 52 4f 43 6d 65 6e | 75 5f 73 75 62 6d 65 6e | PROCmen|u_submen|
|00001910| 75 0d 00 c9 32 2a 7c 21 | 50 52 4f 43 6d 65 6e 75 |u...2*|!|PROCmenu|
|00001920| 5f 73 75 62 6d 65 6e 75 | 28 20 6d 65 6e 75 20 2c |_submenu|( menu ,|
|00001930| 20 65 6e 74 72 79 20 2c | 20 73 75 62 5f 6d 65 6e | entry ,| sub_men|
|00001940| 75 20 29 0d 00 ca 07 2a | 7c 21 0d 00 cb 3f 2a 7c |u )....*||!...?*||
|00001950| 21 57 69 6c 6c 20 61 74 | 74 61 63 68 20 74 68 65 |!Will at|tach the|
|00001960| 20 67 69 76 65 6e 20 6d | 65 6e 75 20 28 73 75 62 | given m|enu (sub|
|00001970| 5f 6d 65 6e 75 29 20 74 | 6f 20 74 68 65 20 67 69 |_menu) t|o the gi|
|00001980| 76 65 6e 20 65 6e 74 72 | 79 0d 00 cc 20 2a 7c 21 |ven entr|y... *|!|
|00001990| 6f 66 20 74 68 65 20 67 | 69 76 65 6e 20 6d 65 6e |of the g|iven men|
|000019a0| 75 20 28 6d 65 6e 75 29 | 2e 0d 00 cd 1c dd f2 6d |u (menu)|.......m|
|000019b0| 65 6e 75 5f 73 75 62 6d | 65 6e 75 28 4d 25 2c 4e |enu_subm|enu(M%,N|
|000019c0| 25 2c 53 25 29 0d 00 ce | 4a ea 20 50 25 3a 50 25 |%,S%)...|J. P%:P%|
|000019d0| 3d 21 28 5f 77 69 6d 70 | 5f 6d 65 6e 75 25 2b 34 |=!(_wimp|_menu%+4|
|000019e0| 2a 28 4d 25 2b 31 29 29 | 3a 21 28 50 25 2b 33 32 |*(M%+1))|:!(P%+32|
|000019f0| 2b 4e 25 2a 32 34 29 3d | 21 28 5f 77 69 6d 70 5f |+N%*24)=|!(_wimp_|
|00001a00| 6d 65 6e 75 25 2b 34 2a | 28 53 25 2b 31 29 29 0d |menu%+4*|(S%+1)).|
|00001a10| 00 cf 05 e1 0d 00 d0 04 | 0d 00 d1 1b 2a 7c 73 74 |........|....*|st|
|00001a20| 6f 70 20 50 52 4f 43 6d | 65 6e 75 5f 73 75 62 6d |op PROCm|enu_subm|
|00001a30| 65 6e 75 0d 00 d2 20 2a | 7c 73 74 61 72 74 20 50 |enu... *||start P|
|00001a40| 52 4f 43 6d 65 6e 75 5f | 61 64 64 69 6e 64 69 72 |ROCmenu_|addindir|
|00001a50| 65 63 74 0d 00 d3 44 2a | 7c 21 50 52 4f 43 6d 65 |ect...D*||!PROCme|
|00001a60| 6e 75 5f 61 64 64 69 6e | 64 69 72 65 63 74 28 20 |nu_addin|direct( |
|00001a70| 6d 65 6e 75 20 2c 20 65 | 6e 74 72 79 20 2c 20 77 |menu , e|ntry , w|
|00001a80| 69 64 74 68 20 2c 20 66 | 6c 61 67 73 20 2c 20 62 |idth , f|lags , b|
|00001a90| 75 66 66 65 72 20 29 0d | 00 d4 07 2a 7c 21 0d 00 |uffer ).|...*|!..|
|00001aa0| d5 3b 2a 7c 21 43 72 65 | 61 74 65 73 20 61 6e 20 |.;*|!Cre|ates an |
|00001ab0| 69 6e 64 69 72 65 63 74 | 20 6d 65 6e 75 20 65 6e |indirect| menu en|
|00001ac0| 74 72 79 20 70 6f 69 6e | 74 69 6e 67 20 74 6f 20 |try poin|ting to |
|00001ad0| 74 68 65 20 67 69 76 65 | 6e 0d 00 d6 39 2a 7c 21 |the give|n...9*|!|
|00001ae0| 62 75 66 66 65 72 2e 20 | 54 68 65 20 6d 65 6e 75 |buffer. |The menu|
|00001af0| 20 65 6e 74 72 79 20 77 | 69 6c 6c 20 62 65 20 74 | entry w|ill be t|
|00001b00| 68 65 20 67 69 76 65 6e | 20 77 69 64 74 68 20 28 |he given| width (|
|00001b10| 69 6e 0d 00 d7 33 2a 7c | 21 63 68 61 72 61 63 74 |in...3*||!charact|
|00001b20| 65 72 73 29 20 77 69 64 | 65 20 61 74 20 6c 65 61 |ers) wid|e at lea|
|00001b30| 73 74 2e 20 46 6f 72 20 | 66 6c 61 67 73 20 73 65 |st. For |flags se|
|00001b40| 65 20 74 68 65 0d 00 d8 | 22 2a 7c 21 27 6d 65 6e |e the...|"*|!'men|
|00001b50| 75 5f 61 64 64 69 74 65 | 6d 27 20 64 65 73 63 72 |u_addite|m' descr|
|00001b60| 69 70 74 69 6f 6e 2e 0d | 00 d9 26 dd f2 6d 65 6e |iption..|..&..men|
|00001b70| 75 5f 61 64 64 69 6e 64 | 69 72 65 63 74 28 4d 25 |u_addind|irect(M%|
|00001b80| 2c 4e 25 2c 57 25 2c 46 | 25 2c 42 25 29 0d 00 da |,N%,W%,F|%,B%)...|
|00001b90| 08 ea 20 50 25 0d 00 db | 4d 50 25 3d 21 28 5f 77 |.. P%...|MP%=!(_w|
|00001ba0| 69 6d 70 5f 6d 65 6e 75 | 25 2b 34 2a 28 4d 25 2b |imp_menu|%+4*(M%+|
|00001bb0| 31 29 29 3a e7 20 50 25 | 3d 30 20 8c 20 85 20 30 |1)):. P%|=0 . . 0|
|00001bc0| 2c 22 4d 65 6e 75 20 6e | 75 6d 62 65 72 20 22 2b |,"Menu n|umber "+|
|00001bd0| c3 28 4d 25 29 2b 22 20 | 75 6e 64 65 66 69 6e 65 |.(M%)+" |undefine|
|00001be0| 64 22 0d 00 dc 40 21 28 | 50 25 2b 32 38 2b 4e 25 |d"...@!(|P%+28+N%|
|00001bf0| 2a 32 34 29 3d 28 21 28 | 50 25 2b 32 38 2b 4e 25 |*24)=(!(|P%+28+N%|
|00001c00| 2a 32 34 29 20 80 20 26 | 46 30 29 20 84 20 46 25 |*24) . &|F0) . F%|
|00001c10| 3a 21 28 50 25 2b 33 32 | 2b 4e 25 2a 32 34 29 3d |:!(P%+32|+N%*24)=|
|00001c20| 2d 31 0d 00 dd 4f 21 28 | 50 25 2b 33 36 2b 4e 25 |-1...O!(|P%+36+N%|
|00001c30| 2a 32 34 29 3d 26 37 30 | 30 30 31 32 31 3a 21 28 |*24)=&70|00121:!(|
|00001c40| 50 25 2b 34 30 2b 4e 25 | 2a 32 34 29 3d 42 25 3a |P%+40+N%|*24)=B%:|
|00001c50| 21 28 50 25 2b 34 34 2b | 4e 25 2a 32 34 29 3d 30 |!(P%+44+|N%*24)=0|
|00001c60| 3a 21 28 50 25 2b 34 38 | 2b 4e 25 2a 32 34 29 3d |:!(P%+48|+N%*24)=|
|00001c70| 30 0d 00 de 26 57 25 3d | 31 36 2a 28 31 2b 57 25 |0...&W%=|16*(1+W%|
|00001c80| 29 3a e7 20 57 25 3e 50 | 25 21 31 36 20 8c 20 50 |):. W%>P|%!16 . P|
|00001c90| 25 21 31 36 3d 57 25 0d | 00 df 05 e1 0d 00 e0 04 |%!16=W%.|........|
|00001ca0| 0d 00 e1 1f 2a 7c 73 74 | 6f 70 20 50 52 4f 43 6d |....*|st|op PROCm|
|00001cb0| 65 6e 75 5f 61 64 64 69 | 6e 64 69 72 65 63 74 0d |enu_addi|ndirect.|
|00001cc0| 00 e2 20 2a 7c 73 74 61 | 72 74 20 50 52 4f 43 6d |.. *|sta|rt PROCm|
|00001cd0| 65 6e 75 5f 61 64 64 77 | 72 69 74 61 62 6c 65 0d |enu_addw|ritable.|
|00001ce0| 00 e3 5a 2a 7c 21 50 52 | 4f 43 6d 65 6e 75 5f 61 |..Z*|!PR|OCmenu_a|
|00001cf0| 64 64 77 72 69 74 61 62 | 6c 65 28 20 6d 65 6e 75 |ddwritab|le( menu|
|00001d00| 20 2c 20 65 6e 74 72 79 | 20 2c 20 77 69 64 74 68 | , entry| , width|
|00001d10| 20 2c 20 66 6c 61 67 73 | 20 2c 20 62 75 66 66 65 | , flags| , buffe|
|00001d20| 72 20 2c 20 76 61 6c 69 | 64 61 74 69 6f 6e 20 2c |r , vali|dation ,|
|00001d30| 20 6c 65 6e 67 74 68 20 | 29 0d 00 e4 07 2a 7c 21 | length |)....*|!|
|00001d40| 0d 00 e5 41 2a 7c 21 53 | 69 6d 69 6c 61 72 20 74 |...A*|!S|imilar t|
|00001d50| 6f 20 74 68 65 20 6d 65 | 6e 75 5f 61 64 64 69 6e |o the me|nu_addin|
|00001d60| 64 69 72 65 63 74 2c 20 | 6f 6e 6c 79 20 61 6c 73 |direct, |only als|
|00001d70| 6f 20 6d 61 6b 65 73 20 | 74 68 65 20 65 6e 74 72 |o makes |the entr|
|00001d80| 79 0d 00 e6 44 2a 7c 21 | 77 72 69 74 61 62 6c 65 |y...D*|!|writable|
|00001d90| 20 77 69 74 68 20 67 69 | 76 65 6e 20 76 61 6c 69 | with gi|ven vali|
|00001da0| 64 61 74 69 6f 6e 20 73 | 74 72 69 6e 67 20 28 70 |dation s|tring (p|
|00001db0| 6f 69 6e 74 65 72 20 74 | 6f 29 20 61 6e 64 20 6c |ointer t|o) and l|
|00001dc0| 65 6e 67 74 68 0d 00 e7 | 35 2a 7c 21 73 68 6f 75 |ength...|5*|!shou|
|00001dd0| 6c 64 20 63 6f 6e 74 61 | 69 6e 20 74 68 65 20 6c |ld conta|in the l|
|00001de0| 65 6e 67 74 68 20 6f 66 | 20 74 68 65 20 67 69 76 |ength of| the giv|
|00001df0| 65 6e 20 62 75 66 66 65 | 72 2e 0d 00 e8 2c dd f2 |en buffe|r....,..|
|00001e00| 6d 65 6e 75 5f 61 64 64 | 77 72 69 74 61 62 6c 65 |menu_add|writable|
|00001e10| 28 4d 25 2c 4e 25 2c 57 | 25 2c 46 25 2c 42 25 2c |(M%,N%,W|%,F%,B%,|
|00001e20| 56 25 2c 4c 25 29 0d 00 | e9 08 ea 20 50 25 0d 00 |V%,L%)..|... P%..|
|00001e30| ea 4d 50 25 3d 21 28 5f | 77 69 6d 70 5f 6d 65 6e |.MP%=!(_|wimp_men|
|00001e40| 75 25 2b 34 2a 28 4d 25 | 2b 31 29 29 3a e7 20 50 |u%+4*(M%|+1)):. P|
|00001e50| 25 3d 30 20 8c 20 85 20 | 30 2c 22 4d 65 6e 75 20 |%=0 . . |0,"Menu |
|00001e60| 6e 75 6d 62 65 72 20 22 | 2b c3 28 4d 25 29 2b 22 |number "|+.(M%)+"|
|00001e70| 20 75 6e 64 65 66 69 6e | 65 64 22 0d 00 eb 44 21 | undefin|ed"...D!|
|00001e80| 28 50 25 2b 32 38 2b 4e | 25 2a 32 34 29 3d 28 21 |(P%+28+N|%*24)=(!|
|00001e90| 28 50 25 2b 32 38 2b 4e | 25 2a 32 34 29 20 80 20 |(P%+28+N|%*24) . |
|00001ea0| 26 46 30 29 20 84 20 46 | 25 20 84 20 34 3a 21 28 |&F0) . F|% . 4:!(|
|00001eb0| 50 25 2b 33 32 2b 4e 25 | 2a 32 34 29 3d 2d 31 0d |P%+32+N%|*24)=-1.|
|00001ec0| 00 ec 51 21 28 50 25 2b | 33 36 2b 4e 25 2a 32 34 |..Q!(P%+|36+N%*24|
|00001ed0| 29 3d 26 37 30 30 30 31 | 32 31 3a 21 28 50 25 2b |)=&70001|21:!(P%+|
|00001ee0| 34 30 2b 4e 25 2a 32 34 | 29 3d 42 25 3a 21 28 50 |40+N%*24|)=B%:!(P|
|00001ef0| 25 2b 34 34 2b 4e 25 2a | 32 34 29 3d 56 25 3a 21 |%+44+N%*|24)=V%:!|
|00001f00| 28 50 25 2b 34 38 2b 4e | 25 2a 32 34 29 3d 4c 25 |(P%+48+N|%*24)=L%|
|00001f10| 0d 00 ed 26 57 25 3d 31 | 36 2a 28 31 2b 57 25 29 |...&W%=1|6*(1+W%)|
|00001f20| 3a e7 20 57 25 3e 50 25 | 21 31 36 20 8c 20 50 25 |:. W%>P%|!16 . P%|
|00001f30| 21 31 36 3d 57 25 0d 00 | ee 05 e1 0d 00 ef 04 0d |!16=W%..|........|
|00001f40| 00 f0 1f 2a 7c 73 74 6f | 70 20 50 52 4f 43 6d 65 |...*|sto|p PROCme|
|00001f50| 6e 75 5f 61 64 64 77 72 | 69 74 61 62 6c 65 0d 00 |nu_addwr|itable..|
|00001f60| f1 1c 2a 7c 73 74 61 72 | 74 20 50 52 4f 43 6d 65 |..*|star|t PROCme|
|00001f70| 6e 75 5f 61 64 64 69 74 | 65 6d 0d 00 f2 36 2a 7c |nu_addit|em...6*||
|00001f80| 21 50 52 4f 43 6d 65 6e | 75 5f 61 64 64 69 74 65 |!PROCmen|u_addite|
|00001f90| 6d 28 20 6d 65 6e 75 20 | 2c 20 65 6e 74 72 79 20 |m( menu |, entry |
|00001fa0| 2c 20 69 74 65 6d 20 2c | 20 66 6c 61 67 73 20 29 |, item ,| flags )|
|00001fb0| 0d 00 f3 07 2a 7c 21 0d | 00 f4 45 2a 7c 21 43 72 |....*|!.|..E*|!Cr|
|00001fc0| 65 61 74 65 73 20 74 68 | 65 20 67 69 76 65 6e 20 |eates th|e given |
|00001fd0| 65 6e 74 72 79 20 66 6f | 72 20 74 68 65 20 67 69 |entry fo|r the gi|
|00001fe0| 76 65 6e 20 6d 65 6e 75 | 20 74 6f 20 63 6f 6e 74 |ven menu| to cont|
|00001ff0| 61 69 6e 20 61 20 73 69 | 6d 70 6c 65 0d 00 f5 45 |ain a si|mple...E|
|00002000| 2a 7c 21 74 65 78 74 20 | 65 6e 74 72 79 20 28 74 |*|!text |entry (t|
|00002010| 65 78 74 20 67 69 76 65 | 6e 20 69 6e 20 69 74 65 |ext give|n in ite|
|00002020| 6d 20 73 74 72 69 6e 67 | 29 2e 20 54 68 65 20 66 |m string|). The f|
|00002030| 6c 61 67 73 20 63 61 6e | 20 69 6e 64 69 63 61 74 |lags can| indicat|
|00002040| 65 0d 00 f6 3a 2a 7c 21 | 69 66 20 74 68 65 20 65 |e...:*|!|if the e|
|00002050| 6e 74 72 79 20 69 73 20 | 74 6f 20 62 65 20 74 69 |ntry is |to be ti|
|00002060| 63 6b 65 64 20 61 6e 64 | 2f 6f 72 20 75 6e 64 65 |cked and|/or unde|
|00002070| 72 6c 69 6e 65 64 2c 20 | 65 67 2e 0d 00 f7 07 2a |rlined, |eg.....*|
|00002080| 7c 21 0d 00 f8 3b 2a 7c | 21 20 20 50 52 4f 43 6d ||!...;*||! PROCm|
|00002090| 65 6e 75 5f 61 64 64 69 | 74 65 6d 28 30 2c 31 2c |enu_addi|tem(0,1,|
|000020a0| 22 46 61 73 74 22 2c 6d | 65 6e 75 5f 74 69 63 6b |"Fast",m|enu_tick|
|000020b0| 2b 6d 65 6e 75 5f 64 6f | 74 74 65 64 29 0d 00 f9 |+menu_do|tted)...|
|000020c0| 07 2a 7c 21 0d 00 fa 38 | 2a 7c 21 77 69 6c 6c 20 |.*|!...8|*|!will |
|000020d0| 63 72 65 61 74 65 20 74 | 68 65 20 73 65 63 6f 6e |create t|he secon|
|000020e0| 64 20 65 6e 74 72 79 20 | 69 6e 20 74 68 65 20 66 |d entry |in the f|
|000020f0| 69 72 73 74 20 6d 65 6e | 75 20 74 6f 0d 00 fb 42 |irst men|u to...B|
|00002100| 2a 7c 21 63 6f 6e 74 61 | 69 6e 20 74 68 65 20 74 |*|!conta|in the t|
|00002110| 65 78 74 20 22 46 61 73 | 74 22 20 61 6e 64 20 62 |ext "Fas|t" and b|
|00002120| 65 20 74 69 63 6b 65 64 | 20 61 6e 64 20 75 6e 64 |e ticked| and und|
|00002130| 65 72 6c 69 6e 65 64 20 | 77 69 74 68 20 61 0d 00 |erlined |with a..|
|00002140| fc 18 2a 7c 21 64 6f 74 | 74 65 64 20 75 6e 64 65 |..*|!dot|ted unde|
|00002150| 72 6c 69 6e 65 2e 0d 00 | fd 1f dd f2 6d 65 6e 75 |rline...|....menu|
|00002160| 5f 61 64 64 69 74 65 6d | 28 4d 25 2c 4e 25 2c 49 |_additem|(M%,N%,I|
|00002170| 24 2c 46 25 29 0d 00 fe | 0b ea 20 50 25 2c 57 25 |$,F%)...|.. P%,W%|
|00002180| 0d 00 ff 4d 50 25 3d 21 | 28 5f 77 69 6d 70 5f 6d |...MP%=!|(_wimp_m|
|00002190| 65 6e 75 25 2b 34 2a 28 | 4d 25 2b 31 29 29 3a e7 |enu%+4*(|M%+1)):.|
|000021a0| 20 50 25 3d 30 20 8c 20 | 85 20 30 2c 22 4d 65 6e | P%=0 . |. 0,"Men|
|000021b0| 75 20 6e 75 6d 62 65 72 | 20 22 2b c3 28 4d 25 29 |u number| "+.(M%)|
|000021c0| 2b 22 20 75 6e 64 65 66 | 69 6e 65 64 22 0d 01 00 |+" undef|ined"...|
|000021d0| 40 21 28 50 25 2b 32 38 | 2b 4e 25 2a 32 34 29 3d |@!(P%+28|+N%*24)=|
|000021e0| 28 21 28 50 25 2b 32 38 | 2b 4e 25 2a 32 34 29 20 |(!(P%+28|+N%*24) |
|000021f0| 80 20 26 46 30 29 20 84 | 20 46 25 3a 21 28 50 25 |. &F0) .| F%:!(P%|
|00002200| 2b 33 32 2b 4e 25 2a 32 | 34 29 3d 2d 31 0d 01 01 |+32+N%*2|4)=-1...|
|00002210| 44 21 28 50 25 2b 33 36 | 2b 4e 25 2a 32 34 29 3d |D!(P%+36|+N%*24)=|
|00002220| 26 37 30 30 30 30 32 31 | 3a 24 28 50 25 2b 34 30 |&7000021|:$(P%+40|
|00002230| 2b 4e 25 2a 32 34 29 3d | 49 24 3a 3f 28 50 25 2b |+N%*24)=|I$:?(P%+|
|00002240| 34 30 2b 4e 25 2a 32 34 | 2b a9 28 49 24 29 29 3d |40+N%*24|+.(I$))=|
|00002250| 30 0d 01 02 29 57 25 3d | 31 36 2a 28 31 2b a9 28 |0...)W%=|16*(1+.(|
|00002260| 49 24 29 29 3a e7 20 57 | 25 3e 50 25 21 31 36 20 |I$)):. W|%>P%!16 |
|00002270| 8c 20 50 25 21 31 36 3d | 57 25 0d 01 03 05 e1 0d |. P%!16=|W%......|
|00002280| 01 04 04 0d 01 05 1b 2a | 7c 73 74 6f 70 20 50 52 |.......*||stop PR|
|00002290| 4f 43 6d 65 6e 75 5f 61 | 64 64 69 74 65 6d 0d 01 |OCmenu_a|dditem..|
|000022a0| 06 1c 2a 7c 73 74 61 72 | 74 20 50 52 4f 43 6d 65 |..*|star|t PROCme|
|000022b0| 6e 75 5f 64 65 73 74 72 | 6f 79 0d 01 07 1f 2a 7c |nu_destr|oy....*||
|000022c0| 21 50 52 4f 43 6d 65 6e | 75 5f 64 65 73 74 72 6f |!PROCmen|u_destro|
|000022d0| 79 28 20 6d 65 6e 75 20 | 29 0d 01 08 07 2a 7c 21 |y( menu |)....*|!|
|000022e0| 0d 01 09 43 2a 7c 21 57 | 69 6c 6c 20 64 65 73 74 |...C*|!W|ill dest|
|000022f0| 72 6f 79 20 28 64 65 61 | 6c 6c 6f 63 61 74 65 20 |roy (dea|llocate |
|00002300| 74 68 65 20 6d 65 6d 6f | 72 79 20 75 73 65 64 20 |the memo|ry used |
|00002310| 62 79 29 20 74 68 65 20 | 67 69 76 65 6e 20 6d 65 |by) the |given me|
|00002320| 6e 75 2e 0d 01 0a 3f 2a | 7c 21 55 73 65 66 75 6c |nu....?*||!Useful|
|00002330| 20 69 66 20 79 6f 75 20 | 63 72 65 61 74 65 20 61 | if you |create a|
|00002340| 6e 79 20 6c 61 72 67 65 | 20 6d 65 6e 75 73 20 28 |ny large| menus (|
|00002350| 65 67 2e 20 66 6f 6e 74 | 20 73 65 6c 65 63 74 69 |eg. font| selecti|
|00002360| 6f 6e 0d 01 0b 3f 2a 7c | 21 6d 65 6e 75 73 29 2e |on...?*||!menus).|
|00002370| 20 54 68 65 72 65 20 69 | 73 20 6e 6f 20 72 65 61 | There i|s no rea|
|00002380| 6c 20 6e 65 65 64 20 74 | 6f 20 65 76 65 72 20 63 |l need t|o ever c|
|00002390| 61 6c 6c 20 74 68 69 73 | 20 72 6f 75 74 69 6e 65 |all this| routine|
|000023a0| 2e 0d 01 0c 16 dd f2 6d | 65 6e 75 5f 64 65 73 74 |.......m|enu_dest|
|000023b0| 72 6f 79 28 4d 25 29 0d | 01 0d 08 ea 20 50 25 0d |roy(M%).|.... P%.|
|000023c0| 01 0e 1e 50 25 3d 21 28 | 5f 77 69 6d 70 5f 6d 65 |...P%=!(|_wimp_me|
|000023d0| 6e 75 25 2b 34 2a 28 4d | 25 2b 31 29 29 0d 01 0f |nu%+4*(M|%+1))...|
|000023e0| 2e e7 20 50 25 20 8c 20 | f2 66 72 65 65 28 50 25 |.. P% . |.free(P%|
|000023f0| 29 3a 21 28 5f 77 69 6d | 70 5f 6d 65 6e 75 25 2b |):!(_wim|p_menu%+|
|00002400| 34 2a 28 4d 25 2b 31 29 | 29 3d 30 0d 01 10 05 e1 |4*(M%+1)|)=0.....|
|00002410| 0d 01 11 04 0d 01 12 1b | 2a 7c 73 74 6f 70 20 50 |........|*|stop P|
|00002420| 52 4f 43 6d 65 6e 75 5f | 64 65 73 74 72 6f 79 0d |ROCmenu_|destroy.|
|00002430| 01 13 1b 2a 7c 73 74 61 | 72 74 20 50 52 4f 43 6d |...*|sta|rt PROCm|
|00002440| 65 6e 75 5f 68 65 61 64 | 65 72 0d 01 14 2f 2a 7c |enu_head|er.../*||
|00002450| 21 50 52 4f 43 6d 65 6e | 75 5f 68 65 61 64 65 72 |!PROCmen|u_header|
|00002460| 28 20 74 69 74 6c 65 20 | 2c 20 6d 65 6e 75 20 2c |( title |, menu ,|
|00002470| 20 6e 75 6d 62 65 72 20 | 29 0d 01 15 07 2a 7c 21 | number |)....*|!|
|00002480| 0d 01 16 41 2a 7c 21 43 | 72 65 61 74 65 73 20 74 |...A*|!C|reates t|
|00002490| 68 65 20 68 65 61 64 65 | 72 20 66 6f 72 20 74 68 |he heade|r for th|
|000024a0| 65 20 67 69 76 65 6e 20 | 6d 65 6e 75 20 77 69 74 |e given |menu wit|
|000024b0| 68 20 74 68 65 20 67 69 | 76 65 6e 20 74 69 74 6c |h the gi|ven titl|
|000024c0| 65 0d 01 17 41 2a 7c 21 | 61 6e 64 20 74 6f 20 63 |e...A*|!|and to c|
|000024d0| 6f 6e 74 61 69 6e 20 74 | 68 65 20 67 69 76 65 6e |ontain t|he given|
|000024e0| 20 6e 75 6d 62 65 72 20 | 6f 66 20 65 6e 74 72 69 | number |of entri|
|000024f0| 65 73 2e 20 45 6e 74 72 | 69 65 73 20 73 68 6f 75 |es. Entr|ies shou|
|00002500| 6c 64 0d 01 18 3e 2a 7c | 21 74 68 65 6e 20 62 65 |ld...>*||!then be|
|00002510| 20 66 69 6c 6c 65 64 20 | 75 73 69 6e 67 20 74 68 | filled |using th|
|00002520| 65 20 6d 65 6e 75 5f 61 | 64 64 69 74 65 6d 2c 20 |e menu_a|dditem, |
|00002530| 6d 65 6e 75 5f 61 64 64 | 77 72 69 74 61 62 6c 65 |menu_add|writable|
|00002540| 0d 01 19 25 2a 7c 21 61 | 6e 64 20 6d 65 6e 75 5f |...%*|!a|nd menu_|
|00002550| 61 64 64 69 6e 64 69 72 | 65 63 74 20 72 6f 75 74 |addindir|ect rout|
|00002560| 69 6e 65 73 2e 0d 01 1a | 1b dd f2 6d 65 6e 75 5f |ines....|...menu_|
|00002570| 68 65 61 64 65 72 28 54 | 24 2c 4d 25 2c 4e 25 29 |header(T|$,M%,N%)|
|00002580| 0d 01 1b 0b ea 20 50 25 | 2c 41 25 0d 01 1c 1e 50 |..... P%|,A%....P|
|00002590| 25 3d 21 28 5f 77 69 6d | 70 5f 6d 65 6e 75 25 2b |%=!(_wim|p_menu%+|
|000025a0| 34 2a 28 4d 25 2b 31 29 | 29 0d 01 1d 0c e7 20 50 |4*(M%+1)|)..... P|
|000025b0| 25 3d 30 20 8c 0d 01 1e | 35 20 20 50 25 3d a4 6d |%=0 ....|5 P%=.m|
|000025c0| 61 6c 6c 6f 63 28 33 32 | 2b 32 34 2a 4e 25 29 3a |alloc(32|+24*N%):|
|000025d0| 21 28 5f 77 69 6d 70 5f | 6d 65 6e 75 25 2b 34 2a |!(_wimp_|menu%+4*|
|000025e0| 28 4d 25 2b 31 29 29 3d | 50 25 0d 01 1f 05 cc 0d |(M%+1))=|P%......|
|000025f0| 01 20 52 20 20 e7 20 a4 | 73 69 7a 65 5f 6f 66 28 |. R . .|size_of(|
|00002600| 50 25 29 3c 28 33 32 2b | 32 34 2a 4e 25 29 20 8c |P%)<(32+|24*N%) .|
|00002610| 20 f2 72 65 61 6c 6c 6f | 63 28 50 25 2c 33 32 2b | .reallo|c(P%,32+|
|00002620| 32 34 2a 4e 25 29 3a 21 | 28 5f 77 69 6d 70 5f 6d |24*N%):!|(_wimp_m|
|00002630| 65 6e 75 25 2b 34 2a 28 | 4d 25 2b 31 29 29 3d 50 |enu%+4*(|M%+1))=P|
|00002640| 25 0d 01 21 05 cd 0d 01 | 22 46 24 50 25 3d 54 24 |%..!....|"F$P%=T$|
|00002650| 3a 50 25 3f a9 28 54 24 | 29 3d 30 3a 50 25 21 31 |:P%?.(T$|)=0:P%!1|
|00002660| 32 3d 26 37 30 32 30 37 | 3a 50 25 21 31 36 3d 31 |2=&70207|:P%!16=1|
|00002670| 36 2a 28 31 2b a9 28 54 | 24 29 29 3a 50 25 21 32 |6*(1+.(T|$)):P%!2|
|00002680| 30 3d 34 34 3a 50 25 21 | 32 34 3d 30 0d 01 23 36 |0=44:P%!|24=0..#6|
|00002690| e3 20 41 25 3d 30 20 b8 | 20 4e 25 2d 32 3a 21 28 |. A%=0 .| N%-2:!(|
|000026a0| 50 25 2b 32 38 2b 41 25 | 2a 32 34 29 3d 30 3a ed |P%+28+A%|*24)=0:.|
|000026b0| 3a 21 28 50 25 2b 34 2b | 4e 25 2a 32 34 29 3d 31 |:!(P%+4+|N%*24)=1|
|000026c0| 32 38 0d 01 24 05 e1 0d | 01 25 04 0d 01 26 1a 2a |28..$...|.%...&.*|
|000026d0| 7c 73 74 6f 70 20 50 52 | 4f 43 6d 65 6e 75 5f 68 ||stop PR|OCmenu_h|
|000026e0| 65 61 64 65 72 0d 01 27 | 1b 2a 7c 73 74 61 72 74 |eader..'|.*|start|
|000026f0| 20 50 52 4f 43 6d 65 6e | 75 5f 72 65 6d 6f 76 65 | PROCmen|u_remove|
|00002700| 0d 01 28 16 2a 7c 21 50 | 52 4f 43 6d 65 6e 75 5f |..(.*|!P|ROCmenu_|
|00002710| 72 65 6d 6f 76 65 0d 01 | 29 07 2a 7c 21 0d 01 2a |remove..|).*|!..*|
|00002720| 38 2a 7c 21 54 68 69 73 | 20 72 6f 75 74 69 6e 65 |8*|!This| routine|
|00002730| 20 72 65 6d 6f 76 65 73 | 20 61 6e 79 20 6d 65 6e | removes| any men|
|00002740| 75 20 77 68 69 63 68 20 | 69 73 20 6f 6e 20 73 63 |u which |is on sc|
|00002750| 72 65 65 6e 2e 0d 01 2b | 12 dd 20 f2 6d 65 6e 75 |reen...+|.. .menu|
|00002760| 5f 72 65 6d 6f 76 65 0d | 01 2c 1c c8 99 20 22 57 |_remove.|.,... "W|
|00002770| 69 6d 70 5f 43 72 65 61 | 74 65 4d 65 6e 75 22 2c |imp_Crea|teMenu",|
|00002780| 2c 2d 31 0d 01 2d 05 e1 | 0d 01 2e 04 0d 01 2f 1a |,-1..-..|....../.|
|00002790| 2a 7c 73 74 6f 70 20 50 | 52 4f 43 6d 65 6e 75 5f |*|stop P|ROCmenu_|
|000027a0| 72 65 6d 6f 76 65 0d 01 | 30 1c 2a 7c 73 74 61 72 |remove..|0.*|star|
|000027b0| 74 20 50 52 4f 43 6d 65 | 6e 75 5f 6f 70 65 6e 77 |t PROCme|nu_openw|
|000027c0| 69 6e 0d 01 31 29 2a 7c | 21 50 52 4f 43 6d 65 6e |in..1)*||!PROCmen|
|000027d0| 75 5f 6f 70 65 6e 77 69 | 6e 28 20 77 69 6e 64 6f |u_openwi|n( windo|
|000027e0| 77 20 2c 20 78 20 2c 20 | 79 20 29 0d 01 32 07 2a |w , x , |y )..2.*|
|000027f0| 7c 21 0d 01 33 4c 2a 7c | 21 54 68 69 73 20 70 72 ||!..3L*||!This pr|
|00002800| 6f 63 65 64 75 72 65 20 | 6f 70 65 6e 73 20 61 20 |ocedure |opens a |
|00002810| 77 69 6e 64 6f 77 20 61 | 74 20 74 68 65 20 67 69 |window a|t the gi|
|00002820| 76 65 6e 20 63 6f 6f 72 | 64 69 6e 61 74 65 73 20 |ven coor|dinates |
|00002830| 61 73 20 61 20 74 72 61 | 6e 73 69 65 6e 74 0d 01 |as a tra|nsient..|
|00002840| 34 4a 2a 7c 21 77 69 6e | 64 6f 77 20 28 69 65 20 |4J*|!win|dow (ie |
|00002850| 61 73 20 69 66 20 69 74 | 20 77 61 73 20 6f 70 65 |as if it| was ope|
|00002860| 6e 65 64 20 66 72 6f 6d | 20 61 20 6d 65 6e 75 20 |ned from| a menu |
|00002870| 74 72 65 65 29 2e 20 49 | 74 20 77 69 6c 6c 20 74 |tree). I|t will t|
|00002880| 68 65 72 65 66 6f 72 65 | 0d 01 35 4d 2a 7c 21 64 |herefore|..5M*|!d|
|00002890| 69 73 61 70 70 65 61 72 | 20 69 6e 20 61 6c 6c 20 |isappear| in all |
|000028a0| 74 68 65 20 63 61 73 65 | 73 20 77 68 65 6e 20 61 |the case|s when a|
|000028b0| 20 6d 65 6e 75 20 77 6f | 75 6c 64 20 64 69 73 61 | menu wo|uld disa|
|000028c0| 70 70 65 61 72 2e 20 49 | 66 20 63 6f 6f 72 64 69 |ppear. I|f coordi|
|000028d0| 6e 61 74 65 73 0d 01 36 | 4e 2a 7c 21 6f 66 20 28 |nates..6|N*|!of (|
|000028e0| 2d 31 2c 2d 31 29 20 61 | 72 65 20 67 69 76 65 6e |-1,-1) a|re given|
|000028f0| 2c 20 74 68 65 6e 20 74 | 68 65 20 77 69 6e 64 6f |, then t|he windo|
|00002900| 77 20 77 69 6c 6c 20 62 | 65 20 6f 70 65 6e 65 64 |w will b|e opened|
|00002910| 20 75 6e 64 65 72 20 74 | 68 65 20 70 6f 69 6e 74 | under t|he point|
|00002920| 65 72 2e 0d 01 37 07 2a | 7c 21 0d 01 38 4b 2a 7c |er...7.*||!..8K*||
|00002930| 21 54 68 69 73 20 73 68 | 6f 75 6c 64 20 62 65 20 |!This sh|ould be |
|00002940| 75 73 65 64 20 74 6f 20 | 6f 70 65 6e 20 61 6e 79 |used to |open any|
|00002950| 20 77 69 6e 64 6f 77 73 | 20 28 73 75 63 68 20 61 | windows| (such a|
|00002960| 73 20 73 61 76 65 20 77 | 69 6e 64 6f 77 73 29 20 |s save w|indows) |
|00002970| 77 68 69 63 68 0d 01 39 | 3f 2a 7c 21 61 72 65 20 |which..9|?*|!are |
|00002980| 68 75 6e 67 20 6f 6e 20 | 61 20 6d 65 6e 75 20 74 |hung on |a menu t|
|00002990| 72 65 65 20 62 75 74 20 | 63 61 6e 20 62 65 20 61 |ree but |can be a|
|000029a0| 63 74 69 76 61 74 65 64 | 20 62 79 20 68 6f 74 6b |ctivated| by hotk|
|000029b0| 65 79 73 2e 0d 01 3a 1f | dd 20 f2 6d 65 6e 75 5f |eys...:.|. .menu_|
|000029c0| 6f 70 65 6e 77 69 6e 28 | 77 69 6e 25 2c 78 25 2c |openwin(|win%,x%,|
|000029d0| 79 25 29 0d 01 3b 15 e7 | 20 78 25 3d 2d 31 20 80 |y%)..;..| x%=-1 .|
|000029e0| 20 79 25 3d 2d 31 20 8c | 0d 01 3c 2d 20 20 c8 99 | y%=-1 .|..<- ..|
|000029f0| 20 22 57 69 6d 70 5f 47 | 65 74 50 6f 69 6e 74 65 | "Wimp_G|etPointe|
|00002a00| 72 49 6e 66 6f 22 2c 2c | 5f 77 69 6d 70 5f 62 75 |rInfo",,|_wimp_bu|
|00002a10| 66 66 65 72 25 0d 01 3d | 2b 20 20 78 25 3d 5f 77 |ffer%..=|+ x%=_w|
|00002a20| 69 6d 70 5f 62 75 66 66 | 65 72 25 21 30 3a 79 25 |imp_buff|er%!0:y%|
|00002a30| 3d 5f 77 69 6d 70 5f 62 | 75 66 66 65 72 25 21 34 |=_wimp_b|uffer%!4|
|00002a40| 0d 01 3e 05 cd 0d 01 3f | 27 c8 99 20 22 57 69 6d |..>....?|'.. "Wim|
|00002a50| 70 5f 43 72 65 61 74 65 | 4d 65 6e 75 22 2c 2c 77 |p_Create|Menu",,w|
|00002a60| 69 6e 25 21 2d 38 2c 78 | 25 2c 79 25 0d 01 40 05 |in%!-8,x|%,y%..@.|
|00002a70| e1 0d 01 41 04 0d 01 42 | 1b 2a 7c 73 74 6f 70 20 |...A...B|.*|stop |
|00002a80| 50 52 4f 43 6d 65 6e 75 | 5f 6f 70 65 6e 77 69 6e |PROCmenu|_openwin|
|00002a90| 0d ff | |.. | |
+--------+-------------------------+-------------------------+--------+--------+