home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / languages / panebasic / lib / blib2 / Blib / Menu < prev    next >
Unknown  |  1992-12-13  |  9.7 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
100% xdgMime image/x-tga default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0d 00 0a 10 2a 7c 73 74 | 61 72 74 20 4d 65 6e 75 |....*|st|art Menu|
|00000010| 0d 00 14 13 2a 7c 21 4d | 65 6e 75 20 4c 69 62 72 |....*|!M|enu Libr|
|00000020| 61 72 79 0d 00 1e 07 2a | 7c 21 0d 00 28 3d 2a 7c |ary....*||!..(=*||
|00000030| 21 54 68 69 73 20 6c 69 | 62 72 61 72 79 20 63 6f |!This li|brary co|
|00000040| 6e 74 61 69 6e 73 20 72 | 6f 75 74 69 6e 65 73 20 |ntains r|outines |
|00000050| 66 6f 72 20 62 75 69 6c | 64 69 6e 67 20 6d 65 6e |for buil|ding men|
|00000060| 75 73 2e 20 54 77 6f 0d | 00 32 3f 2a 7c 21 6d 65 |us. Two.|.2?*|!me|
|00000070| 74 68 6f 64 73 20 61 72 | 65 20 73 75 70 70 6c 69 |thods ar|e suppli|
|00000080| 65 64 2c 20 6f 6e 65 20 | 28 50 52 4f 43 6d 65 6e |ed, one |(PROCmen|
|00000090| 75 5f 6d 61 6b 65 6d 65 | 6e 75 29 20 77 6f 72 6b |u_makeme|nu) work|
|000000a0| 73 20 66 72 6f 6d 0d 00 | 3c 3f 2a 7c 21 61 6e 20 |s from..|<?*|!an |
|000000b0| 61 72 72 61 79 20 6f 66 | 20 6d 65 6e 75 20 69 74 |array of| menu it|
|000000c0| 65 6d 73 2c 20 74 68 65 | 20 6f 74 68 65 72 20 75 |ems, the| other u|
|000000d0| 73 65 64 73 20 73 65 76 | 65 72 61 6c 20 72 6f 75 |seds sev|eral rou|
|000000e0| 74 69 6e 65 73 0d 00 46 | 42 2a 7c 21 74 6f 20 62 |tines..F|B*|!to b|
|000000f0| 75 69 6c 64 20 75 70 20 | 74 68 65 20 6d 65 6e 75 |uild up |the menu|
|00000100| 20 73 74 61 67 65 20 62 | 79 20 73 74 61 67 65 2e | stage b|y stage.|
|00000110| 20 41 6c 6c 20 6d 65 6e | 75 73 20 61 72 65 20 61 | All men|us are a|
|00000120| 73 73 69 67 6e 65 64 0d | 00 50 30 2a 7c 21 61 20 |ssigned.|.P0*|!a |
|00000130| 6e 75 6d 62 65 72 20 28 | 30 20 75 70 77 61 72 64 |number (|0 upward|
|00000140| 73 29 20 74 6f 20 6d 61 | 6b 65 20 6c 69 66 65 20 |s) to ma|ke life |
|00000150| 65 61 73 69 65 72 2e 0d | 00 5a 04 0d 00 64 0f 2a |easier..|.Z...d.*|
|00000160| 7c 73 74 6f 70 20 4d 65 | 6e 75 0d 00 6e 19 2a 7c ||stop Me|nu..n.*||
|00000170| 73 74 61 72 74 20 50 52 | 4f 43 6d 65 6e 75 5f 69 |start PR|OCmenu_i|
|00000180| 6e 69 74 0d 00 78 1e 2a | 7c 21 50 52 4f 43 6d 65 |nit..x.*||!PROCme|
|00000190| 6e 75 5f 69 6e 69 74 28 | 20 6e 75 6d 62 65 72 20 |nu_init(| number |
|000001a0| 29 0d 00 82 07 2a 7c 21 | 0d 00 8c 3a 2a 7c 21 49 |)....*|!|...:*|!I|
|000001b0| 6e 69 74 69 61 6c 69 73 | 65 73 20 74 68 65 20 6d |nitialis|es the m|
|000001c0| 65 6e 75 20 72 6f 75 74 | 69 6e 65 73 2e 20 4d 75 |enu rout|ines. Mu|
|000001d0| 73 74 20 62 65 20 63 61 | 6c 6c 65 64 20 61 66 74 |st be ca|lled aft|
|000001e0| 65 72 0d 00 96 40 2a 7c | 21 69 6e 69 74 69 61 6c |er...@*||!initial|
|000001f0| 69 73 61 74 69 6f 6e 20 | 6f 66 20 74 68 65 20 64 |isation |of the d|
|00000200| 79 6e 61 6d 69 63 20 6d | 65 6d 6f 72 79 20 6c 69 |ynamic m|emory li|
|00000210| 62 72 61 72 79 2e 20 53 | 65 74 73 20 75 70 20 74 |brary. S|ets up t|
|00000220| 68 65 0d 00 a0 43 2a 7c | 21 67 69 76 65 6e 20 27 |he...C*||!given '|
|00000230| 6e 75 6d 62 65 72 27 20 | 6f 66 20 6d 65 6e 75 73 |number' |of menus|
|00000240| 2c 20 74 68 69 73 20 6e | 75 6d 62 65 72 20 63 61 |, this n|umber ca|
|00000250| 6e 20 62 65 20 63 68 61 | 6e 67 65 64 20 6c 61 74 |n be cha|nged lat|
|00000260| 65 72 20 69 66 0d 00 aa | 46 2a 7c 21 6d 6f 72 65 |er if...|F*|!more|
|00000270| 20 61 72 65 20 72 65 71 | 75 69 72 65 64 2e 20 49 | are req|uired. I|
|00000280| 6e 20 74 68 69 73 20 6c | 69 62 72 61 72 79 20 61 |n this l|ibrary a|
|00000290| 6c 6c 20 6d 65 6e 75 73 | 20 61 72 65 20 67 69 76 |ll menus| are giv|
|000002a0| 65 6e 20 61 20 6e 75 6d | 62 65 72 0d 00 b4 1a 2a |en a num|ber....*|
|000002b0| 7c 21 66 72 6f 6d 20 30 | 20 74 6f 20 6e 75 6d 62 ||!from 0| to numb|
|000002c0| 65 72 2d 31 2e 0d 00 be | 13 dd f2 6d 65 6e 75 5f |er-1....|...menu_|
|000002d0| 69 6e 69 74 28 4e 25 29 | 0d 00 c8 08 ea 20 41 25 |init(N%)|..... A%|
|000002e0| 0d 00 d2 3b 6d 65 6e 75 | 5f 74 69 63 6b 3d 31 3a |...;menu|_tick=1:|
|000002f0| 6d 65 6e 75 5f 64 6f 74 | 74 65 64 3d 32 3a 5f 77 |menu_dot|ted=2:_w|
|00000300| 69 6d 70 5f 6d 65 6e 75 | 25 3d a4 6d 61 6c 6c 6f |imp_menu|%=.mallo|
|00000310| 63 28 28 4e 25 2b 31 29 | 2a 34 29 0d 00 dc 32 5f |c((N%+1)|*4)...2_|
|00000320| 77 69 6d 70 5f 6f 6c 64 | 6d 65 6e 75 25 3d 30 3a |wimp_old|menu%=0:|
|00000330| 5f 77 69 6d 70 5f 6f 6c | 64 6d 78 25 3d 30 3a 5f |_wimp_ol|dmx%=0:_|
|00000340| 77 69 6d 70 5f 6f 6c 64 | 6d 79 25 3d 30 0d 00 e6 |wimp_old|my%=0...|
|00000350| 37 21 5f 77 69 6d 70 5f | 6d 65 6e 75 25 3d 4e 25 |7!_wimp_|menu%=N%|
|00000360| 3a e3 20 41 25 3d 31 20 | b8 20 4e 25 3a 21 28 5f |:. A%=1 |. N%:!(_|
|00000370| 77 69 6d 70 5f 6d 65 6e | 75 25 2b 34 2a 41 25 29 |wimp_men|u%+4*A%)|
|00000380| 3d 30 3a ed 0d 00 f0 05 | e1 0d 00 fa 04 0d 01 04 |=0:.....|........|
|00000390| 18 2a 7c 73 74 6f 70 20 | 50 52 4f 43 6d 65 6e 75 |.*|stop |PROCmenu|
|000003a0| 5f 69 6e 69 74 0d 01 0e | 1b 2a 7c 73 74 61 72 74 |_init...|.*|start|
|000003b0| 20 50 52 4f 43 6d 65 6e | 75 5f 72 65 73 69 7a 65 | PROCmen|u_resize|
|000003c0| 0d 01 18 20 2a 7c 21 50 | 52 4f 43 6d 65 6e 75 5f |... *|!P|ROCmenu_|
|000003d0| 72 65 73 69 7a 65 28 20 | 6e 75 6d 62 65 72 20 29 |resize( |number )|
|000003e0| 0d 01 22 07 2a 7c 21 0d | 01 2c 3f 2a 7c 21 54 68 |..".*|!.|.,?*|!Th|
|000003f0| 69 73 20 73 68 6f 75 6c | 64 20 62 65 20 63 61 6c |is shoul|d be cal|
|00000400| 6c 65 64 20 69 66 20 79 | 6f 75 20 72 65 71 75 69 |led if y|ou requi|
|00000410| 72 65 20 6d 6f 72 65 20 | 6d 65 6e 75 73 20 74 68 |re more |menus th|
|00000420| 61 6e 20 79 6f 75 0d 01 | 36 42 2a 7c 21 64 65 63 |an you..|6B*|!dec|
|00000430| 6c 61 72 65 64 20 61 74 | 20 74 68 65 20 6d 65 6e |lared at| the men|
|00000440| 75 5f 69 6e 69 74 20 73 | 74 61 67 65 2e 20 54 68 |u_init s|tage. Th|
|00000450| 65 20 27 6e 75 6d 62 65 | 72 27 20 73 68 6f 75 6c |e 'numbe|r' shoul|
|00000460| 64 20 62 65 20 74 68 65 | 0d 01 40 1b 2a 7c 21 6e |d be the|..@.*|!n|
|00000470| 65 77 20 6e 75 6d 62 65 | 72 20 72 65 71 75 69 72 |ew numbe|r requir|
|00000480| 65 64 2e 0d 01 4a 15 dd | f2 6d 65 6e 75 5f 72 65 |ed...J..|.menu_re|
|00000490| 73 69 7a 65 28 4e 25 29 | 0d 01 54 28 ea 20 41 25 |size(N%)|..T(. A%|
|000004a0| 2c 42 25 3a 42 25 3d 21 | 5f 77 69 6d 70 5f 6d 65 |,B%:B%=!|_wimp_me|
|000004b0| 6e 75 25 3a e7 20 4e 25 | 3c 3d 42 25 20 8c 20 e1 |nu%:. N%|<=B% . .|
|000004c0| 0d 01 5e 22 f2 72 65 61 | 6c 6c 6f 63 28 5f 77 69 |..^".rea|lloc(_wi|
|000004d0| 6d 70 5f 6d 65 6e 75 25 | 2c 28 4e 25 2b 31 29 2a |mp_menu%|,(N%+1)*|
|000004e0| 34 29 0d 01 68 2a e3 20 | 41 25 3d 42 25 2b 31 20 |4)..h*. |A%=B%+1 |
|000004f0| b8 20 4e 25 3a 21 28 5f | 77 69 6d 70 5f 6d 65 6e |. N%:!(_|wimp_men|
|00000500| 75 25 2b 34 2a 41 25 29 | 3d 30 3a ed 0d 01 72 05 |u%+4*A%)|=0:...r.|
|00000510| e1 0d 01 7c 04 0d 01 86 | 1a 2a 7c 73 74 6f 70 20 |...|....|.*|stop |
|00000520| 50 52 4f 43 6d 65 6e 75 | 5f 72 65 73 69 7a 65 0d |PROCmenu|_resize.|
|00000530| 01 90 1b 2a 7c 73 74 61 | 72 74 20 46 4e 6d 65 6e |...*|sta|rt FNmen|
|00000540| 75 5f 6c 61 73 74 6d 65 | 6e 75 0d 01 9a 16 2a 7c |u_lastme|nu....*||
|00000550| 21 46 4e 6d 65 6e 75 5f | 6c 61 73 74 6d 65 6e 75 |!FNmenu_|lastmenu|
|00000560| 0d 01 a4 07 2a 7c 21 0d | 01 ae 39 2a 7c 21 52 65 |....*|!.|..9*|!Re|
|00000570| 74 75 72 6e 73 20 74 68 | 65 20 6d 65 6e 75 20 6e |turns th|e menu n|
|00000580| 75 6d 62 65 72 20 6f 66 | 20 74 68 65 20 6c 61 73 |umber of| the las|
|00000590| 74 20 6d 65 6e 75 20 70 | 61 73 73 65 64 20 74 6f |t menu p|assed to|
|000005a0| 0d 01 b8 3e 2a 7c 21 50 | 52 4f 43 6d 65 6e 75 5f |...>*|!P|ROCmenu_|
|000005b0| 70 6f 70 75 70 2e 20 55 | 73 65 66 75 6c 20 66 6f |popup. U|seful fo|
|000005c0| 72 20 61 20 67 65 6e 65 | 72 61 6c 20 77 69 6d 70 |r a gene|ral wimp|
|000005d0| 5f 6d 65 6e 75 73 65 6c | 65 63 74 69 6f 6e 0d 01 |_menusel|ection..|
|000005e0| c2 33 2a 7c 21 72 6f 75 | 74 69 6e 65 20 66 6f 72 |.3*|!rou|tine for|
|000005f0| 20 66 69 6e 64 69 6e 67 | 20 6f 75 74 20 77 68 69 | finding| out whi|
|00000600| 63 68 20 6d 65 6e 75 20 | 77 61 73 20 75 73 65 64 |ch menu |was used|
|00000610| 2e 0d 01 cc 13 dd a4 6d | 65 6e 75 5f 6c 61 73 74 |.......m|enu_last|
|00000620| 6d 65 6e 75 0d 01 d6 13 | 3d 5f 77 69 6d 70 5f 6f |menu....|=_wimp_o|
|00000630| 6c 64 6d 65 6e 75 25 0d | 01 e0 04 0d 01 ea 1a 2a |ldmenu%.|.......*|
|00000640| 7c 73 74 6f 70 20 46 4e | 6d 65 6e 75 5f 6c 61 73 ||stop FN|menu_las|
|00000650| 74 6d 65 6e 75 0d 01 f4 | 1d 2a 7c 73 74 61 72 74 |tmenu...|.*|start|
|00000660| 20 50 52 4f 43 6d 65 6e | 75 5f 6b 65 65 70 6f 70 | PROCmen|u_keepop|
|00000670| 65 6e 0d 01 fe 18 2a 7c | 21 50 52 4f 43 6d 65 6e |en....*||!PROCmen|
|00000680| 75 5f 6b 65 65 70 6f 70 | 65 6e 0d 02 08 07 2a 7c |u_keepop|en....*||
|00000690| 21 0d 02 12 23 2a 7c 21 | 54 68 69 73 20 69 73 20 |!...#*|!|This is |
|000006a0| 63 61 6c 6c 65 64 20 62 | 79 20 77 69 6d 70 5f 70 |called b|y wimp_p|
|000006b0| 6f 6c 6c 2e 0d 02 1c 13 | dd f2 6d 65 6e 75 5f 6b |oll.....|..menu_k|
|000006c0| 65 65 70 6f 70 65 6e 0d | 02 26 2f ea 20 4d 25 3a |eepopen.|.&/. M%:|
|000006d0| 4d 25 3d 21 28 5f 77 69 | 6d 70 5f 6d 65 6e 75 25 |M%=!(_wi|mp_menu%|
|000006e0| 2b 34 2a 28 5f 77 69 6d | 70 5f 6f 6c 64 6d 65 6e |+4*(_wim|p_oldmen|
|000006f0| 75 25 2b 31 29 29 0d 02 | 30 1c c8 99 20 26 34 30 |u%+1))..|0... &40|
|00000700| 30 43 46 2c 2c 5f 77 69 | 6d 70 5f 62 75 66 66 65 |0CF,,_wi|mp_buffe|
|00000710| 72 25 0d 02 3a 45 e7 20 | 28 5f 77 69 6d 70 5f 62 |r%..:E. |(_wimp_b|
|00000720| 75 66 66 65 72 25 21 38 | 20 80 20 31 29 20 8c 20 |uffer%!8| . 1) . |
|00000730| c8 99 20 26 34 30 30 44 | 34 2c 2c 4d 25 2c 5f 77 |.. &400D|4,,M%,_w|
|00000740| 69 6d 70 5f 6f 6c 64 6d | 78 25 2c 5f 77 69 6d 70 |imp_oldm|x%,_wimp|
|00000750| 5f 6f 6c 64 6d 79 25 0d | 02 44 05 e1 0d 02 4e 04 |_oldmy%.|.D....N.|
|00000760| 0d 02 58 1c 2a 7c 73 74 | 6f 70 20 50 52 4f 43 6d |..X.*|st|op PROCm|
|00000770| 65 6e 75 5f 6b 65 65 70 | 6f 70 65 6e 0d 02 62 1a |enu_keep|open..b.|
|00000780| 2a 7c 73 74 61 72 74 20 | 50 52 4f 43 6d 65 6e 75 |*|start |PROCmenu|
|00000790| 5f 70 6f 70 75 70 0d 02 | 6c 25 2a 7c 21 50 52 4f |_popup..|l%*|!PRO|
|000007a0| 43 6d 65 6e 75 5f 70 6f | 70 75 70 28 20 6d 65 6e |Cmenu_po|pup( men|
|000007b0| 75 20 2c 20 78 20 2c 20 | 79 20 29 0d 02 76 07 2a |u , x , |y )..v.*|
|000007c0| 7c 21 0d 02 80 3c 2a 7c | 21 50 6f 70 73 20 75 70 ||!...<*||!Pops up|
|000007d0| 20 74 68 65 20 67 69 76 | 65 6e 20 6d 65 6e 75 20 | the giv|en menu |
|000007e0| 28 6d 65 6e 75 20 6e 75 | 6d 62 65 72 29 20 61 74 |(menu nu|mber) at|
|000007f0| 20 74 68 65 20 67 69 76 | 65 6e 20 78 2c 79 0d 02 | the giv|en x,y..|
|00000800| 8a 10 2a 7c 21 70 6f 73 | 69 74 69 6f 6e 2e 0d 02 |..*|!pos|ition...|
|00000810| 94 1a dd f2 6d 65 6e 75 | 5f 70 6f 70 75 70 28 4d |....menu|_popup(M|
|00000820| 25 2c 58 25 2c 59 25 29 | 0d 02 9e 50 5f 77 69 6d |%,X%,Y%)|...P_wim|
|00000830| 70 5f 6f 6c 64 6d 65 6e | 75 25 3d 4d 25 3a 5f 77 |p_oldmen|u%=M%:_w|
|00000840| 69 6d 70 5f 6f 6c 64 6d | 78 25 3d 58 25 3a 5f 77 |imp_oldm|x%=X%:_w|
|00000850| 69 6d 70 5f 6f 6c 64 6d | 79 25 3d 59 25 3a 4d 25 |imp_oldm|y%=Y%:M%|
|00000860| 3d 21 28 5f 77 69 6d 70 | 5f 6d 65 6e 75 25 2b 34 |=!(_wimp|_menu%+4|
|00000870| 2a 28 4d 25 2b 31 29 29 | 0d 02 a8 17 c8 99 20 26 |*(M%+1))|...... &|
|00000880| 34 30 30 44 34 2c 2c 4d | 25 2c 58 25 2c 59 25 0d |400D4,,M|%,X%,Y%.|
|00000890| 02 b2 05 e1 0d 02 bc 04 | 0d 02 c6 19 2a 7c 73 74 |........|....*|st|
|000008a0| 6f 70 20 50 52 4f 43 6d | 65 6e 75 5f 70 6f 70 75 |op PROCm|enu_popu|
|000008b0| 70 0d 02 d0 18 2a 7c 73 | 74 61 72 74 20 46 4e 6d |p....*|s|tart FNm|
|000008c0| 65 6e 75 5f 77 69 64 74 | 68 0d 02 da 1b 2a 7c 21 |enu_widt|h....*|!|
|000008d0| 46 4e 6d 65 6e 75 5f 77 | 69 64 74 68 28 20 6d 65 |FNmenu_w|idth( me|
|000008e0| 6e 75 20 29 0d 02 e4 07 | 2a 7c 21 0d 02 ee 41 2a |nu )....|*|!...A*|
|000008f0| 7c 21 52 65 74 75 72 6e | 73 20 74 68 65 20 6d 61 ||!Return|s the ma|
|00000900| 78 2e 20 6d 65 6e 75 20 | 65 6e 74 72 79 20 77 69 |x. menu |entry wi|
|00000910| 64 74 68 20 66 6f 72 20 | 61 20 67 69 76 65 6e 20 |dth for |a given |
|00000920| 6d 65 6e 75 20 6e 75 6d | 62 65 72 2e 0d 02 f8 32 |menu num|ber....2|
|00000930| 2a 7c 21 54 68 69 73 20 | 69 73 20 4e 4f 54 20 74 |*|!This |is NOT t|
|00000940| 68 65 20 63 6f 6d 70 6c | 65 74 65 20 77 69 64 74 |he compl|ete widt|
|00000950| 68 20 6f 66 20 74 68 65 | 20 6d 65 6e 75 2e 0d 03 |h of the| menu...|
|00000960| 02 14 dd a4 6d 65 6e 75 | 5f 77 69 64 74 68 28 4e |....menu|_width(N|
|00000970| 25 29 0d 03 0c 23 ea 20 | 50 25 3a 50 25 3d 21 28 |%)...#. |P%:P%=!(|
|00000980| 5f 77 69 6d 70 5f 6d 65 | 6e 75 25 2b 28 4e 25 2b |_wimp_me|nu%+(N%+|
|00000990| 31 29 2a 34 29 0d 03 16 | 0a 3d 50 25 21 31 36 0d |1)*4)...|.=P%!16.|
|000009a0| 03 20 04 0d 03 2a 17 2a | 7c 73 74 6f 70 20 46 4e |. ...*.*||stop FN|
|000009b0| 6d 65 6e 75 5f 77 69 64 | 74 68 0d 03 34 1d 2a 7c |menu_wid|th..4.*||
|000009c0| 73 74 61 72 74 20 46 4e | 6d 65 6e 75 5f 6d 65 6e |start FN|menu_men|
|000009d0| 75 68 65 69 67 68 74 0d | 03 3e 20 2a 7c 21 46 4e |uheight.|.> *|!FN|
|000009e0| 6d 65 6e 75 5f 6d 65 6e | 75 68 65 69 67 68 74 28 |menu_men|uheight(|
|000009f0| 20 6d 65 6e 75 20 29 0d | 03 48 07 2a 7c 21 0d 03 | menu ).|.H.*|!..|
|00000a00| 52 43 2a 7c 21 52 65 74 | 75 72 6e 73 20 74 68 65 |RC*|!Ret|urns the|
|00000a10| 20 68 65 69 67 68 74 20 | 6f 66 20 74 68 65 20 6d | height |of the m|
|00000a20| 65 6e 75 20 65 6e 74 72 | 69 65 73 20 28 69 6e 63 |enu entr|ies (inc|
|00000a30| 6c 75 64 69 6e 67 20 61 | 6e 79 20 64 6f 74 74 65 |luding a|ny dotte|
|00000a40| 64 0d 03 5c 28 2a 7c 21 | 6c 69 6e 65 73 29 20 66 |d..\(*|!|lines) f|
|00000a50| 6f 72 20 74 68 65 20 67 | 69 76 65 6e 20 6d 65 6e |or the g|iven men|
|00000a60| 75 20 6e 75 6d 62 65 72 | 2e 0d 03 66 19 dd a4 6d |u number|...f...m|
|00000a70| 65 6e 75 5f 6d 65 6e 75 | 68 65 69 67 68 74 28 4e |enu_menu|height(N|
|00000a80| 25 29 0d 03 70 3e ea 20 | 41 25 2c 48 25 2c 50 25 |%)..p>. |A%,H%,P%|
|00000a90| 3a 4e 25 2b 3d 31 3a 50 | 25 3d 21 28 5f 77 69 6d |:N%+=1:P|%=!(_wim|
|00000aa0| 70 5f 6d 65 6e 75 25 2b | 34 2a 4e 25 29 3a 48 25 |p_menu%+|4*N%):H%|
|00000ab0| 3d 30 3a 41 25 3d 2d 31 | 3a f5 3a 41 25 2b 3d 31 |=0:A%=-1|:.:A%+=1|
|00000ac0| 0d 03 7a 2a 48 25 2b 3d | 34 34 3a e7 20 28 21 28 |..z*H%+=|44:. (!(|
|00000ad0| 50 25 2b 41 25 2a 32 34 | 2b 32 38 29 20 80 20 32 |P%+A%*24|+28) . 2|
|00000ae0| 29 20 8c 20 48 25 2b 3d | 32 32 0d 03 84 1c fd 20 |) . H%+=|22..... |
|00000af0| 28 21 28 50 25 2b 41 25 | 2a 32 34 2b 32 38 29 20 |(!(P%+A%|*24+28) |
|00000b00| 80 20 31 32 38 29 0d 03 | 8e 07 3d 48 25 0d 03 98 |. 128)..|..=H%...|
|00000b10| 04 0d 03 a2 1c 2a 7c 73 | 74 6f 70 20 46 4e 6d 65 |.....*|s|top FNme|
|00000b20| 6e 75 5f 6d 65 6e 75 68 | 65 69 67 68 74 0d 03 ac |nu_menuh|eight...|
|00000b30| 1d 2a 7c 73 74 61 72 74 | 20 50 52 4f 43 6d 65 6e |.*|start| PROCmen|
|00000b40| 75 5f 6d 61 6b 65 6d 65 | 6e 75 0d 03 b6 41 2a 7c |u_makeme|nu...A*||
|00000b50| 21 50 52 4f 43 6d 65 6e | 75 5f 6d 61 6b 65 6d 65 |!PROCmen|u_makeme|
|00000b60| 6e 75 28 20 74 69 74 6c | 65 20 2c 20 6d 65 6e 75 |nu( titl|e , menu|
|00000b70| 20 2c 20 65 6e 74 72 69 | 65 73 28 29 20 2c 20 6c | , entri|es() , l|
|00000b80| 61 73 74 5f 65 6e 74 72 | 79 20 29 0d 03 c0 07 2a |ast_entr|y )....*|
|00000b90| 7c 21 0d 03 ca 3c 2a 7c | 21 54 68 69 73 20 69 73 ||!...<*||!This is|
|00000ba0| 20 61 20 67 65 6e 65 72 | 61 6c 20 6d 65 6e 75 20 | a gener|al menu |
|00000bb0| 63 72 65 61 74 69 6f 6e | 20 72 6f 75 74 69 6e 65 |creation| routine|
|00000bc0| 20 77 68 69 63 68 20 74 | 61 6b 65 73 20 61 0d 03 | which t|akes a..|
|00000bd0| d4 3b 2a 7c 21 74 69 74 | 6c 65 20 61 6e 64 20 61 |.;*|!tit|le and a|
|00000be0| 6e 20 61 72 72 61 79 20 | 6f 66 20 65 6e 74 72 79 |n array |of entry|
|00000bf0| 20 6e 61 6d 65 73 2e 20 | 49 74 20 74 68 65 6e 20 | names. |It then |
|00000c00| 63 72 65 61 74 65 73 20 | 61 0d 03 de 36 2a 7c 21 |creates |a...6*|!|
|00000c10| 6d 65 6e 75 20 66 6f 72 | 20 74 68 65 20 65 6e 74 |menu for| the ent|
|00000c20| 72 69 65 73 20 69 6e 20 | 74 68 65 20 61 72 72 61 |ries in |the arra|
|00000c30| 79 20 66 72 6f 6d 20 30 | 20 74 6f 20 74 68 65 0d |y from 0| to the.|
|00000c40| 03 e8 37 2a 7c 21 6c 61 | 73 74 5f 65 6e 74 72 79 |..7*|!la|st_entry|
|00000c50| 27 74 68 20 61 72 72 61 | 79 20 65 6e 74 72 79 2e |'th arra|y entry.|
|00000c60| 20 48 65 72 65 20 61 72 | 65 20 73 6f 6d 65 20 65 | Here ar|e some e|
|00000c70| 78 61 6d 70 6c 65 0d 03 | f2 14 2a 7c 21 61 72 72 |xample..|..*|!arr|
|00000c80| 61 79 20 65 6e 74 72 69 | 65 73 0d 03 fc 2e 2a 7c |ay entri|es....*||
|00000c90| 21 20 20 70 6c 61 69 6e | 20 74 65 78 74 20 20 20 |! plain| text |
|00000ca0| 20 2d 20 70 6c 61 69 6e | 20 74 65 78 74 20 6d 65 | - plain| text me|
|00000cb0| 6e 75 20 65 6e 74 72 79 | 0d 04 06 35 2a 7c 21 20 |nu entry|...5*|! |
|00000cc0| 20 74 69 63 6b 65 64 2f | 20 20 20 20 20 20 20 2d | ticked/| -|
|00000cd0| 20 74 68 65 20 27 2f 27 | 20 6d 65 61 6e 73 20 74 | the '/'| means t|
|00000ce0| 69 63 6b 20 74 68 65 20 | 65 6e 74 72 79 0d 04 10 |ick the |entry...|
|00000cf0| 37 2a 7c 21 20 20 75 6e | 64 65 72 6c 69 6e 65 5f |7*|! un|derline_|
|00000d00| 20 20 20 20 2d 20 74 68 | 65 20 27 5f 27 20 6d 65 | - th|e '_' me|
|00000d10| 61 6e 73 20 64 6f 74 74 | 65 64 20 75 6e 64 65 72 |ans dott|ed under|
|00000d20| 6c 69 6e 65 0d 04 1a 35 | 2a 7c 21 20 20 61 6e 64 |line...5|*|! and|
|00000d30| 20 67 72 65 79 40 20 20 | 20 20 20 2d 20 74 68 65 | grey@ | - the|
|00000d40| 20 27 40 27 20 6d 65 61 | 6e 73 20 67 72 65 79 20 | '@' mea|ns grey |
|00000d50| 6f 75 74 20 65 6e 74 72 | 79 0d 04 24 35 2a 7c 21 |out entr|y..$5*|!|
|00000d60| 20 20 61 6c 6c 20 74 68 | 72 65 65 5f 2f 40 20 20 | all th|ree_/@ |
|00000d70| 2d 20 75 6e 64 65 72 6c | 69 6e 65 2c 20 74 69 63 |- underl|ine, tic|
|00000d80| 6b 20 61 6e 64 20 67 72 | 65 79 20 6f 75 74 0d 04 |k and gr|ey out..|
|00000d90| 2e 30 2a 7c 21 20 20 20 | 20 20 20 20 20 20 20 20 |.0*|! | |
|00000da0| 20 20 20 20 20 20 20 74 | 68 65 20 6f 72 64 65 72 | t|he order|
|00000db0| 20 69 73 20 69 6d 70 6f | 72 74 61 6e 74 2e 0d 04 | is impo|rtant...|
|00000dc0| 38 07 2a 7c 21 0d 04 42 | 30 2a 7c 21 20 20 73 75 |8.*|!..B|0*|! su|
|00000dd0| 62 20 6d 65 6e 75 3c 33 | 3e 20 20 20 2d 20 65 6e |b menu<3|> - en|
|00000de0| 74 72 79 20 6c 65 61 64 | 73 20 74 6f 20 73 75 62 |try lead|s to sub|
|00000df0| 20 6d 65 6e 75 0d 04 4c | 36 2a 7c 21 20 20 20 20 | menu..L|6*|! |
|00000e00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 6e 75 | | nu|
|00000e10| 6d 62 65 72 20 33 20 28 | 6d 65 6e 75 20 33 20 6d |mber 3 (|menu 3 m|
|00000e20| 75 73 74 20 61 6c 72 65 | 61 64 79 0d 04 56 2c 2a |ust alre|ady..V,*|
|00000e30| 7c 21 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 ||! | |
|00000e40| 20 20 20 20 68 61 76 65 | 20 62 65 65 6e 20 63 72 | have| been cr|
|00000e50| 65 61 74 65 64 29 2e 0d | 04 60 07 2a 7c 21 0d 04 |eated)..|.`.*|!..|
|00000e60| 6a 33 2a 7c 21 20 20 77 | 72 69 74 61 62 6c 65 3e |j3*|! w|ritable>|
|00000e70| 31 32 33 3c 20 2d 20 77 | 72 69 74 61 62 6c 65 20 |123< - w|ritable |
|00000e80| 65 6e 74 72 79 20 77 69 | 74 68 20 62 75 66 66 65 |entry wi|th buffe|
|00000e90| 72 0d 04 74 29 2a 7c 21 | 20 20 20 20 20 20 20 20 |r..t)*|!| |
|00000ea0| 20 20 20 20 20 20 20 20 | 20 20 61 74 20 6c 6f 63 | | at loc|
|00000eb0| 61 74 69 6f 6e 20 31 32 | 33 2e 0d 04 7e 07 2a 7c |ation 12|3...~.*||
|00000ec0| 21 0d 04 88 33 2a 7c 21 | 20 20 73 75 62 3c 35 3e |!...3*|!| sub<5>|
|00000ed0| 40 20 20 20 20 20 20 20 | 2d 20 67 72 65 79 65 64 |@ |- greyed|
|00000ee0| 20 6f 75 74 20 73 75 62 | 20 6d 65 6e 75 20 65 6e | out sub| menu en|
|00000ef0| 74 72 79 2e 0d 04 92 25 | dd f2 6d 65 6e 75 5f 6d |try....%|..menu_m|
|00000f00| 61 6b 65 6d 65 6e 75 28 | 54 24 2c 4e 25 2c 6f 70 |akemenu(|T$,N%,op|
|00000f10| 74 73 24 28 29 2c 53 25 | 29 0d 04 9c 25 ea 20 58 |ts$(),S%|)...%. X|
|00000f20| 58 25 2c 54 43 25 2c 41 | 25 2c 42 25 2c 43 25 2c |X%,TC%,A|%,B%,C%,|
|00000f30| 50 25 2c 4d 25 2c 6d 65 | 6e 75 25 2c 4d 24 0d 04 |P%,M%,me|nu%,M$..|
|00000f40| a6 23 4e 25 2b 3d 31 3a | 6d 65 6e 75 25 3d 21 28 |.#N%+=1:|menu%=!(|
|00000f50| 5f 77 69 6d 70 5f 6d 65 | 6e 75 25 2b 4e 25 2a 34 |_wimp_me|nu%+N%*4|
|00000f60| 29 0d 04 b0 0f e7 20 6d | 65 6e 75 25 3d 30 20 8c |)..... m|enu%=0 .|
|00000f70| 0d 04 ba 3b 20 20 6d 65 | 6e 75 25 3d a4 6d 61 6c |...; me|nu%=.mal|
|00000f80| 6c 6f 63 28 33 32 2b 32 | 34 2a 28 53 25 2b 31 29 |loc(32+2|4*(S%+1)|
|00000f90| 29 3a 21 28 5f 77 69 6d | 70 5f 6d 65 6e 75 25 2b |):!(_wim|p_menu%+|
|00000fa0| 4e 25 2a 34 29 3d 6d 65 | 6e 75 25 0d 04 c4 05 cc |N%*4)=me|nu%.....|
|00000fb0| 0d 04 ce 5f 20 20 e7 20 | a4 73 69 7a 65 5f 6f 66 |..._ . |.size_of|
|00000fc0| 28 6d 65 6e 75 25 29 3c | 28 33 32 2b 32 34 2a 28 |(menu%)<|(32+24*(|
|00000fd0| 53 25 2b 31 29 29 20 8c | 20 f2 72 65 61 6c 6c 6f |S%+1)) .| .reallo|
|00000fe0| 63 28 6d 65 6e 75 25 2c | 33 32 2b 32 34 2a 28 53 |c(menu%,|32+24*(S|
|00000ff0| 25 2b 31 29 29 3a 21 28 | 5f 77 69 6d 70 5f 6d 65 |%+1)):!(|_wimp_me|
|00001000| 6e 75 25 2b 4e 25 2a 34 | 29 3d 6d 65 6e 75 25 0d |nu%+N%*4|)=menu%.|
|00001010| 04 d8 05 cd 0d 04 e2 2b | 24 6d 65 6e 75 25 3d 54 |.......+|$menu%=T|
|00001020| 24 3a 6d 65 6e 75 25 3f | a9 28 54 24 29 3d 30 3a |$:menu%?|.(T$)=0:|
|00001030| 6d 65 6e 75 25 21 31 32 | 3d 26 37 30 32 30 37 0d |menu%!12|=&70207.|
|00001040| 04 ec 30 6d 65 6e 75 25 | 21 31 36 3d 31 37 32 3a |..0menu%|!16=172:|
|00001050| 6d 65 6e 75 25 21 32 30 | 3d 34 34 3a 6d 65 6e 75 |menu%!20|=44:menu|
|00001060| 25 21 32 34 3d 30 3a 4d | 25 3d a9 28 54 24 29 0d |%!24=0:M|%=.(T$).|
|00001070| 04 f6 47 e3 20 41 25 3d | 30 20 b8 20 53 25 3a 4d |..G. A%=|0 . S%:M|
|00001080| 24 3d 6f 70 74 73 24 28 | 41 25 29 3a 42 25 3d 30 |$=opts$(|A%):B%=0|
|00001090| 3a 43 25 3d 2d 31 3a 50 | 25 3d 6d 65 6e 75 25 2b |:C%=-1:P|%=menu%+|
|000010a0| 32 38 2b 41 25 2a 32 34 | 3a 54 43 25 3d 37 3a 58 |28+A%*24|:TC%=7:X|
|000010b0| 58 25 3d 26 32 31 0d 05 | 00 34 e7 20 c2 4d 24 29 |X%=&21..|.4. .M$)|
|000010c0| 3d 22 40 22 20 8c 20 42 | 25 3d 42 25 20 84 20 38 |="@" . B|%=B% . 8|
|000010d0| 3a 4d 24 3d c0 4d 24 29 | 3a 54 43 25 3d 33 3a 58 |:M$=.M$)|:TC%=3:X|
|000010e0| 58 25 3d 26 34 30 30 30 | 32 31 0d 05 0a 22 e7 20 |X%=&4000|21...". |
|000010f0| c2 4d 24 29 3d 22 2f 22 | 20 8c 20 42 25 3d 42 25 |.M$)="/"| . B%=B%|
|00001100| 20 84 20 31 3a 4d 24 3d | c0 4d 24 29 0d 05 14 22 | . 1:M$=|.M$)..."|
|00001110| e7 20 c2 4d 24 29 3d 22 | 5f 22 20 8c 20 42 25 3d |. .M$)="|_" . B%=|
|00001120| 42 25 20 84 20 32 3a 4d | 24 3d c0 4d 24 29 0d 05 |B% . 2:M|$=.M$)..|
|00001130| 1e 19 e7 20 41 25 3d 53 | 25 20 8c 20 42 25 3d 42 |... A%=S|% . B%=B|
|00001140| 25 20 84 20 31 32 38 0d | 05 28 10 e7 20 c2 4d 24 |% . 128.|.(.. .M$|
|00001150| 29 3d 22 3c 22 20 8c 0d | 05 32 45 20 20 42 25 3d |)="<" ..|.2E B%=|
|00001160| 42 25 20 84 20 34 3a 21 | 50 25 3d 42 25 3a 50 25 |B% . 4:!|P%=B%:P%|
|00001170| 21 34 3d 43 25 3a 50 25 | 21 38 3d 28 54 43 25 20 |!4=C%:P%|!8=(TC% |
|00001180| 80 20 26 46 46 29 2a 26 | 31 30 30 30 30 30 30 20 |. &FF)*&|1000000 |
|00001190| 84 20 26 31 30 30 20 84 | 20 58 58 25 0d 05 3c 29 |. &100 .| XX%..<)|
|000011a0| 20 20 4d 24 3d c0 4d 24 | 29 3a 42 25 3d a7 4d 24 | M$=.M$|):B%=.M$|
|000011b0| 2c 22 3e 22 29 3a 43 25 | 3d bb 28 c1 4d 24 2c 42 |,">"):C%|=.(.M$,B|
|000011c0| 25 2b 31 29 29 0d 05 46 | 35 20 20 4d 24 3d c0 4d |%+1))..F|5 M$=.M|
|000011d0| 24 2c 42 25 2d 31 29 3a | 24 43 25 3d 4d 24 3a 50 |$,B%-1):|$C%=M$:P|
|000011e0| 25 21 31 32 3d 43 25 3a | 50 25 21 31 36 3d 2d 31 |%!12=C%:|P%!16=-1|
|000011f0| 3a 50 25 21 32 30 3d 32 | 35 35 0d 05 50 05 cc 0d |:P%!20=2|55..P...|
|00001200| 05 5a 12 20 20 e7 20 c2 | 4d 24 29 3d 22 3e 22 20 |.Z. . .|M$)=">" |
|00001210| 8c 0d 05 64 2e 20 20 20 | 20 21 50 25 3d 42 25 3a |...d. | !P%=B%:|
|00001220| 50 25 21 38 3d 28 54 43 | 25 20 80 20 26 46 46 29 |P%!8=(TC|% . &FF)|
|00001230| 2a 26 31 30 30 30 30 30 | 30 20 84 20 58 58 25 0d |*&100000|0 . XX%.|
|00001240| 05 6e 42 20 20 20 20 4d | 24 3d c0 4d 24 29 3a 42 |.nB M|$=.M$):B|
|00001250| 25 3d a7 4d 24 2c 22 3c | 22 29 3a 43 25 3d bb 28 |%=.M$,"<|"):C%=.(|
|00001260| c1 4d 24 2c 42 25 2b 31 | 29 29 3a 43 25 3d 21 28 |.M$,B%+1|)):C%=!(|
|00001270| 5f 77 69 6d 70 5f 6d 65 | 6e 75 25 2b 34 2a 43 25 |_wimp_me|nu%+4*C%|
|00001280| 29 0d 05 78 28 20 20 20 | 20 50 25 21 34 3d 43 25 |)..x( | P%!4=C%|
|00001290| 3a 4d 24 3d c0 4d 24 2c | 42 25 2d 31 29 3a 24 28 |:M$=.M$,|B%-1):$(|
|000012a0| 50 25 2b 31 32 29 3d 4d | 24 0d 05 82 07 20 20 cc |P%+12)=M|$.... .|
|000012b0| 0d 05 8c 36 20 20 20 20 | 21 50 25 3d 42 25 3a 50 |...6 |!P%=B%:P|
|000012c0| 25 21 34 3d 43 25 3a 50 | 25 21 38 3d 28 54 43 25 |%!4=C%:P|%!8=(TC%|
|000012d0| 20 80 20 26 46 46 29 2a | 26 31 30 30 30 30 30 30 | . &FF)*|&1000000|
|000012e0| 20 84 20 58 58 25 0d 05 | 96 24 20 20 20 20 24 28 | . XX%..|.$ $(|
|000012f0| 50 25 2b 31 32 29 3d 4d | 24 3a 3f 28 50 25 2b 31 |P%+12)=M|$:?(P%+1|
|00001300| 32 2b a9 28 4d 24 29 29 | 3d 30 0d 05 a0 07 20 20 |2+.(M$))|=0.... |
|00001310| cd 0d 05 aa 1b 20 20 e7 | 20 4d 25 3c a9 28 4d 24 |..... .| M%<.(M$|
|00001320| 29 20 8c 20 4d 25 3d a9 | 28 4d 24 29 0d 05 b4 05 |) . M%=.|(M$)....|
|00001330| cd 0d 05 be 18 ed 3a 6d | 65 6e 75 25 21 31 36 3d |......:m|enu%!16=|
|00001340| 31 36 2a 28 4d 25 2b 31 | 29 0d 05 c8 05 e1 0d 05 |16*(M%+1|).......|
|00001350| d2 04 0d 05 dc 1c 2a 7c | 73 74 6f 70 20 50 52 4f |......*||stop PRO|
|00001360| 43 6d 65 6e 75 5f 6d 61 | 6b 65 6d 65 6e 75 0d 05 |Cmenu_ma|kemenu..|
|00001370| e6 1c 2a 7c 73 74 61 72 | 74 20 50 52 4f 43 6d 65 |..*|star|t PROCme|
|00001380| 6e 75 5f 67 72 65 79 6f | 75 74 0d 05 f0 27 2a 7c |nu_greyo|ut...'*||
|00001390| 21 50 52 4f 43 6d 65 6e | 75 5f 67 72 65 79 6f 75 |!PROCmen|u_greyou|
|000013a0| 74 28 20 6d 65 6e 75 20 | 2c 20 65 6e 74 72 79 20 |t( menu |, entry |
|000013b0| 29 0d 05 fa 07 2a 7c 21 | 0d 06 04 3d 2a 7c 21 47 |)....*|!|...=*|!G|
|000013c0| 69 76 65 6e 20 61 6e 20 | 61 6c 72 65 61 64 79 20 |iven an |already |
|000013d0| 63 72 65 61 74 65 64 20 | 6d 65 6e 75 2c 20 77 69 |created |menu, wi|
|000013e0| 6c 6c 20 67 72 65 79 20 | 6f 75 74 20 74 68 65 20 |ll grey |out the |
|000013f0| 67 69 76 65 6e 0d 06 0e | 14 2a 7c 21 65 6e 74 72 |given...|.*|!entr|
|00001400| 79 20 6e 75 6d 62 65 72 | 2e 0d 06 18 19 dd f2 6d |y number|.......m|
|00001410| 65 6e 75 5f 67 72 65 79 | 6f 75 74 28 4d 25 2c 4e |enu_grey|out(M%,N|
|00001420| 25 29 0d 06 22 4c ea 20 | 50 25 3a 50 25 3d 21 28 |%).."L. |P%:P%=!(|
|00001430| 5f 77 69 6d 70 5f 6d 65 | 6e 75 25 2b 34 2a 28 4d |_wimp_me|nu%+4*(M|
|00001440| 25 2b 31 29 29 2b 33 36 | 2b 4e 25 2a 32 34 3a 21 |%+1))+36|+N%*24:!|
|00001450| 50 25 3d 28 21 50 25 20 | 80 20 26 46 46 42 46 46 |P%=(!P% |. &FFBFF|
|00001460| 46 46 46 29 20 84 20 26 | 34 30 30 30 30 30 0d 06 |FFF) . &|400000..|
|00001470| 2c 05 e1 0d 06 36 04 0d | 06 40 1b 2a 7c 73 74 6f |,....6..|.@.*|sto|
|00001480| 70 20 50 52 4f 43 6d 65 | 6e 75 5f 67 72 65 79 6f |p PROCme|nu_greyo|
|00001490| 75 74 0d 06 4a 1e 2a 7c | 73 74 61 72 74 20 50 52 |ut..J.*||start PR|
|000014a0| 4f 43 6d 65 6e 75 5f 75 | 6e 67 72 65 79 6f 75 74 |OCmenu_u|ngreyout|
|000014b0| 0d 06 54 29 2a 7c 21 50 | 52 4f 43 6d 65 6e 75 5f |..T)*|!P|ROCmenu_|
|000014c0| 75 6e 67 72 65 79 6f 75 | 74 28 20 6d 65 6e 75 20 |ungreyou|t( menu |
|000014d0| 2c 20 65 6e 74 72 79 20 | 29 0d 06 5e 07 2a 7c 21 |, entry |)..^.*|!|
|000014e0| 0d 06 68 35 2a 7c 21 47 | 69 76 65 6e 20 61 6e 20 |..h5*|!G|iven an |
|000014f0| 61 6c 72 65 61 64 79 20 | 63 72 65 61 74 65 64 20 |already |created |
|00001500| 6d 65 6e 75 2c 20 77 69 | 6c 6c 20 65 6e 73 75 72 |menu, wi|ll ensur|
|00001510| 65 20 74 68 65 0d 06 72 | 37 2a 7c 21 65 6e 74 72 |e the..r|7*|!entr|
|00001520| 79 20 6e 75 6d 62 65 72 | 20 6e 20 74 68 65 20 67 |y number| n the g|
|00001530| 69 76 65 6e 20 6d 65 6e | 75 20 69 73 20 6e 6f 74 |iven men|u is not|
|00001540| 20 67 72 65 79 65 64 20 | 6f 75 74 2e 0d 06 7c 1b | greyed |out...|.|
|00001550| dd f2 6d 65 6e 75 5f 75 | 6e 67 72 65 79 6f 75 74 |..menu_u|ngreyout|
|00001560| 28 4d 25 2c 4e 25 29 0d | 06 86 40 ea 20 50 25 3a |(M%,N%).|..@. P%:|
|00001570| 50 25 3d 21 28 5f 77 69 | 6d 70 5f 6d 65 6e 75 25 |P%=!(_wi|mp_menu%|
|00001580| 2b 34 2a 28 4d 25 2b 31 | 29 29 2b 33 36 2b 4e 25 |+4*(M%+1|))+36+N%|
|00001590| 2a 32 34 3a 21 50 25 3d | 21 50 25 20 80 20 26 46 |*24:!P%=|!P% . &F|
|000015a0| 46 42 46 46 46 46 46 0d | 06 90 05 e1 0d 06 9a 04 |FBFFFFF.|........|
|000015b0| 0d 06 a4 1d 2a 7c 73 74 | 6f 70 20 50 52 4f 43 6d |....*|st|op PROCm|
|000015c0| 65 6e 75 5f 75 6e 67 72 | 65 79 6f 75 74 0d 06 ae |enu_ungr|eyout...|
|000015d0| 19 2a 7c 73 74 61 72 74 | 20 50 52 4f 43 6d 65 6e |.*|start| PROCmen|
|000015e0| 75 5f 74 69 63 6b 0d 06 | b8 23 2a 7c 21 50 52 4f |u_tick..|.#*|!PRO|
|000015f0| 43 6d 65 6e 75 5f 74 69 | 63 6b 28 20 6d 65 6e 75 |Cmenu_ti|ck( menu|
|00001600| 2c 20 65 6e 74 72 79 20 | 29 0d 06 c2 07 2a 7c 21 |, entry |)....*|!|
|00001610| 0d 06 cc 2a 2a 7c 21 41 | 64 64 73 20 61 20 74 69 |...**|!A|dds a ti|
|00001620| 63 6b 20 74 6f 20 74 68 | 65 20 73 70 65 63 69 66 |ck to th|e specif|
|00001630| 69 65 64 20 65 6e 74 72 | 79 2e 0d 06 d6 16 dd f2 |ied entr|y.......|
|00001640| 6d 65 6e 75 5f 74 69 63 | 6b 28 4d 25 2c 4e 25 29 |menu_tic|k(M%,N%)|
|00001650| 0d 06 e0 38 ea 20 50 25 | 3a 50 25 3d 21 28 5f 77 |...8. P%|:P%=!(_w|
|00001660| 69 6d 70 5f 6d 65 6e 75 | 25 2b 34 2a 28 4d 25 2b |imp_menu|%+4*(M%+|
|00001670| 31 29 29 2b 33 36 2b 4e | 25 2a 32 34 3a 21 50 25 |1))+36+N|%*24:!P%|
|00001680| 3d 21 50 25 20 84 20 31 | 0d 06 ea 05 e1 0d 06 f4 |=!P% . 1|........|
|00001690| 04 0d 06 fe 18 2a 7c 73 | 74 6f 70 20 50 52 4f 43 |.....*|s|top PROC|
|000016a0| 6d 65 6e 75 5f 74 69 63 | 6b 0d 07 08 1b 2a 7c 73 |menu_tic|k....*|s|
|000016b0| 74 61 72 74 20 50 52 4f | 43 6d 65 6e 75 5f 75 6e |tart PRO|Cmenu_un|
|000016c0| 74 69 63 6b 0d 07 12 25 | 2a 7c 21 50 52 4f 43 6d |tick...%|*|!PROCm|
|000016d0| 65 6e 75 5f 75 6e 74 69 | 63 6b 28 20 6d 65 6e 75 |enu_unti|ck( menu|
|000016e0| 2c 20 65 6e 74 72 79 20 | 29 0d 07 1c 07 2a 7c 21 |, entry |)....*|!|
|000016f0| 0d 07 26 2f 2a 7c 21 52 | 65 6d 6f 76 65 73 20 61 |..&/*|!R|emoves a|
|00001700| 20 74 69 63 6b 20 66 72 | 6f 6d 20 74 68 65 20 73 | tick fr|om the s|
|00001710| 70 65 63 69 66 69 65 64 | 20 65 6e 74 72 79 2e 0d |pecified| entry..|
|00001720| 07 30 18 dd f2 6d 65 6e | 75 5f 75 6e 74 69 63 6b |.0...men|u_untick|
|00001730| 28 4d 25 2c 4e 25 29 0d | 07 3a 40 ea 20 50 25 3a |(M%,N%).|.:@. P%:|
|00001740| 50 25 3d 21 28 5f 77 69 | 6d 70 5f 6d 65 6e 75 25 |P%=!(_wi|mp_menu%|
|00001750| 2b 34 2a 28 4d 25 2b 31 | 29 29 2b 33 36 2b 4e 25 |+4*(M%+1|))+36+N%|
|00001760| 2a 32 34 3a 21 50 25 3d | 21 50 25 20 80 20 26 46 |*24:!P%=|!P% . &F|
|00001770| 46 46 46 46 46 46 45 0d | 07 44 05 e1 0d 07 4e 1a |FFFFFFE.|.D....N.|
|00001780| 2a 7c 73 74 6f 70 20 50 | 52 4f 43 6d 65 6e 75 5f |*|stop P|ROCmenu_|
|00001790| 75 6e 74 69 63 6b 0d 07 | 58 1e 2a 7c 73 74 61 72 |untick..|X.*|star|
|000017a0| 74 20 50 52 4f 43 6d 65 | 6e 75 5f 73 75 62 77 69 |t PROCme|nu_subwi|
|000017b0| 6e 64 6f 77 0d 07 62 32 | 2a 7c 21 50 52 4f 43 6d |ndow..b2|*|!PROCm|
|000017c0| 65 6e 75 5f 73 75 62 77 | 69 6e 64 6f 77 28 20 6d |enu_subw|indow( m|
|000017d0| 65 6e 75 20 2c 20 65 6e | 74 72 79 20 2c 20 77 69 |enu , en|try , wi|
|000017e0| 6e 64 6f 77 20 29 0d 07 | 6c 07 2a 7c 21 0d 07 76 |ndow )..|l.*|!..v|
|000017f0| 3d 2a 7c 21 57 69 6c 6c | 20 61 74 74 61 63 68 20 |=*|!Will| attach |
|00001800| 74 68 65 20 67 69 76 65 | 6e 20 77 69 6e 64 6f 77 |the give|n window|
|00001810| 20 74 6f 20 74 68 65 20 | 67 69 76 65 6e 20 65 6e | to the |given en|
|00001820| 74 72 79 20 69 6e 20 74 | 68 65 0d 07 80 12 2a 7c |try in t|he....*||
|00001830| 21 67 69 76 65 6e 20 6d | 65 6e 75 2e 0d 07 8a 1e |!given m|enu.....|
|00001840| dd f2 6d 65 6e 75 5f 73 | 75 62 77 69 6e 64 6f 77 |..menu_s|ubwindow|
|00001850| 28 4d 25 2c 4e 25 2c 53 | 25 29 0d 07 94 3a ea 20 |(M%,N%,S|%)...:. |
|00001860| 50 25 3a 50 25 3d 21 28 | 5f 77 69 6d 70 5f 6d 65 |P%:P%=!(|_wimp_me|
|00001870| 6e 75 25 2b 34 2a 28 4d | 25 2b 31 29 29 3a 21 28 |nu%+4*(M|%+1)):!(|
|00001880| 50 25 2b 33 32 2b 4e 25 | 2a 32 34 29 3d 21 28 53 |P%+32+N%|*24)=!(S|
|00001890| 25 2d 38 29 0d 07 9e 05 | e1 0d 07 a8 04 0d 07 b2 |%-8)....|........|
|000018a0| 1d 2a 7c 73 74 6f 70 20 | 50 52 4f 43 6d 65 6e 75 |.*|stop |PROCmenu|
|000018b0| 5f 73 75 62 77 69 6e 64 | 6f 77 0d 07 bc 1c 2a 7c |_subwind|ow....*||
|000018c0| 73 74 61 72 74 20 50 52 | 4f 43 6d 65 6e 75 5f 73 |start PR|OCmenu_s|
|000018d0| 75 62 6d 65 6e 75 0d 07 | c6 32 2a 7c 21 50 52 4f |ubmenu..|.2*|!PRO|
|000018e0| 43 6d 65 6e 75 5f 73 75 | 62 6d 65 6e 75 28 20 6d |Cmenu_su|bmenu( m|
|000018f0| 65 6e 75 20 2c 20 65 6e | 74 72 79 20 2c 20 73 75 |enu , en|try , su|
|00001900| 62 5f 6d 65 6e 75 20 29 | 0d 07 d0 07 2a 7c 21 0d |b_menu )|....*|!.|
|00001910| 07 da 3f 2a 7c 21 57 69 | 6c 6c 20 61 74 74 61 63 |..?*|!Wi|ll attac|
|00001920| 68 20 74 68 65 20 67 69 | 76 65 6e 20 6d 65 6e 75 |h the gi|ven menu|
|00001930| 20 28 73 75 62 5f 6d 65 | 6e 75 29 20 74 6f 20 74 | (sub_me|nu) to t|
|00001940| 68 65 20 67 69 76 65 6e | 20 65 6e 74 72 79 0d 07 |he given| entry..|
|00001950| e4 20 2a 7c 21 6f 66 20 | 74 68 65 20 67 69 76 65 |. *|!of |the give|
|00001960| 6e 20 6d 65 6e 75 20 28 | 6d 65 6e 75 29 2e 0d 07 |n menu (|menu)...|
|00001970| ee 1c dd f2 6d 65 6e 75 | 5f 73 75 62 6d 65 6e 75 |....menu|_submenu|
|00001980| 28 4d 25 2c 4e 25 2c 53 | 25 29 0d 07 f8 4a ea 20 |(M%,N%,S|%)...J. |
|00001990| 50 25 3a 50 25 3d 21 28 | 5f 77 69 6d 70 5f 6d 65 |P%:P%=!(|_wimp_me|
|000019a0| 6e 75 25 2b 34 2a 28 4d | 25 2b 31 29 29 3a 21 28 |nu%+4*(M|%+1)):!(|
|000019b0| 50 25 2b 33 32 2b 4e 25 | 2a 32 34 29 3d 21 28 5f |P%+32+N%|*24)=!(_|
|000019c0| 77 69 6d 70 5f 6d 65 6e | 75 25 2b 34 2a 28 53 25 |wimp_men|u%+4*(S%|
|000019d0| 2b 31 29 29 0d 08 02 05 | e1 0d 08 0c 04 0d 08 16 |+1))....|........|
|000019e0| 1b 2a 7c 73 74 6f 70 20 | 50 52 4f 43 6d 65 6e 75 |.*|stop |PROCmenu|
|000019f0| 5f 73 75 62 6d 65 6e 75 | 0d 08 20 20 2a 7c 73 74 |_submenu|.. *|st|
|00001a00| 61 72 74 20 50 52 4f 43 | 6d 65 6e 75 5f 61 64 64 |art PROC|menu_add|
|00001a10| 69 6e 64 69 72 65 63 74 | 0d 08 2a 44 2a 7c 21 50 |indirect|..*D*|!P|
|00001a20| 52 4f 43 6d 65 6e 75 5f | 61 64 64 69 6e 64 69 72 |ROCmenu_|addindir|
|00001a30| 65 63 74 28 20 6d 65 6e | 75 20 2c 20 65 6e 74 72 |ect( men|u , entr|
|00001a40| 79 20 2c 20 77 69 64 74 | 68 20 2c 20 66 6c 61 67 |y , widt|h , flag|
|00001a50| 73 20 2c 20 62 75 66 66 | 65 72 20 29 0d 08 34 07 |s , buff|er )..4.|
|00001a60| 2a 7c 21 0d 08 3e 3b 2a | 7c 21 43 72 65 61 74 65 |*|!..>;*||!Create|
|00001a70| 73 20 61 6e 20 69 6e 64 | 69 72 65 63 74 20 6d 65 |s an ind|irect me|
|00001a80| 6e 75 20 65 6e 74 72 79 | 20 70 6f 69 6e 74 69 6e |nu entry| pointin|
|00001a90| 67 20 74 6f 20 74 68 65 | 20 67 69 76 65 6e 0d 08 |g to the| given..|
|00001aa0| 48 39 2a 7c 21 62 75 66 | 66 65 72 2e 20 54 68 65 |H9*|!buf|fer. The|
|00001ab0| 20 6d 65 6e 75 20 65 6e | 74 72 79 20 77 69 6c 6c | menu en|try will|
|00001ac0| 20 62 65 20 74 68 65 20 | 67 69 76 65 6e 20 77 69 | be the |given wi|
|00001ad0| 64 74 68 20 28 69 6e 0d | 08 52 33 2a 7c 21 63 68 |dth (in.|.R3*|!ch|
|00001ae0| 61 72 61 63 74 65 72 73 | 29 20 77 69 64 65 20 61 |aracters|) wide a|
|00001af0| 74 20 6c 65 61 73 74 2e | 20 46 6f 72 20 66 6c 61 |t least.| For fla|
|00001b00| 67 73 20 73 65 65 20 74 | 68 65 0d 08 5c 22 2a 7c |gs see t|he..\"*||
|00001b10| 21 27 6d 65 6e 75 5f 61 | 64 64 69 74 65 6d 27 20 |!'menu_a|dditem' |
|00001b20| 64 65 73 63 72 69 70 74 | 69 6f 6e 2e 0d 08 66 26 |descript|ion...f&|
|00001b30| dd f2 6d 65 6e 75 5f 61 | 64 64 69 6e 64 69 72 65 |..menu_a|ddindire|
|00001b40| 63 74 28 4d 25 2c 4e 25 | 2c 57 25 2c 46 25 2c 42 |ct(M%,N%|,W%,F%,B|
|00001b50| 25 29 0d 08 70 08 ea 20 | 50 25 0d 08 7a 4d 50 25 |%)..p.. |P%..zMP%|
|00001b60| 3d 21 28 5f 77 69 6d 70 | 5f 6d 65 6e 75 25 2b 34 |=!(_wimp|_menu%+4|
|00001b70| 2a 28 4d 25 2b 31 29 29 | 3a e7 20 50 25 3d 30 20 |*(M%+1))|:. P%=0 |
|00001b80| 8c 20 85 20 30 2c 22 4d | 65 6e 75 20 6e 75 6d 62 |. . 0,"M|enu numb|
|00001b90| 65 72 20 22 2b c3 28 4d | 25 29 2b 22 20 75 6e 64 |er "+.(M|%)+" und|
|00001ba0| 65 66 69 6e 65 64 22 0d | 08 84 40 21 28 50 25 2b |efined".|..@!(P%+|
|00001bb0| 32 38 2b 4e 25 2a 32 34 | 29 3d 28 21 28 50 25 2b |28+N%*24|)=(!(P%+|
|00001bc0| 32 38 2b 4e 25 2a 32 34 | 29 20 80 20 26 46 30 29 |28+N%*24|) . &F0)|
|00001bd0| 20 84 20 46 25 3a 21 28 | 50 25 2b 33 32 2b 4e 25 | . F%:!(|P%+32+N%|
|00001be0| 2a 32 34 29 3d 2d 31 0d | 08 8e 4f 21 28 50 25 2b |*24)=-1.|..O!(P%+|
|00001bf0| 33 36 2b 4e 25 2a 32 34 | 29 3d 26 37 30 30 30 31 |36+N%*24|)=&70001|
|00001c00| 32 31 3a 21 28 50 25 2b | 34 30 2b 4e 25 2a 32 34 |21:!(P%+|40+N%*24|
|00001c10| 29 3d 42 25 3a 21 28 50 | 25 2b 34 34 2b 4e 25 2a |)=B%:!(P|%+44+N%*|
|00001c20| 32 34 29 3d 30 3a 21 28 | 50 25 2b 34 38 2b 4e 25 |24)=0:!(|P%+48+N%|
|00001c30| 2a 32 34 29 3d 30 0d 08 | 98 26 57 25 3d 31 36 2a |*24)=0..|.&W%=16*|
|00001c40| 28 31 2b 57 25 29 3a e7 | 20 57 25 3e 50 25 21 31 |(1+W%):.| W%>P%!1|
|00001c50| 36 20 8c 20 50 25 21 31 | 36 3d 57 25 0d 08 a2 05 |6 . P%!1|6=W%....|
|00001c60| e1 0d 08 ac 04 0d 08 b6 | 1f 2a 7c 73 74 6f 70 20 |........|.*|stop |
|00001c70| 50 52 4f 43 6d 65 6e 75 | 5f 61 64 64 69 6e 64 69 |PROCmenu|_addindi|
|00001c80| 72 65 63 74 0d 08 c0 20 | 2a 7c 73 74 61 72 74 20 |rect... |*|start |
|00001c90| 50 52 4f 43 6d 65 6e 75 | 5f 61 64 64 77 72 69 74 |PROCmenu|_addwrit|
|00001ca0| 61 62 6c 65 0d 08 ca 5a | 2a 7c 21 50 52 4f 43 6d |able...Z|*|!PROCm|
|00001cb0| 65 6e 75 5f 61 64 64 77 | 72 69 74 61 62 6c 65 28 |enu_addw|ritable(|
|00001cc0| 20 6d 65 6e 75 20 2c 20 | 65 6e 74 72 79 20 2c 20 | menu , |entry , |
|00001cd0| 77 69 64 74 68 20 2c 20 | 66 6c 61 67 73 20 2c 20 |width , |flags , |
|00001ce0| 62 75 66 66 65 72 20 2c | 20 76 61 6c 69 64 61 74 |buffer ,| validat|
|00001cf0| 69 6f 6e 20 2c 20 6c 65 | 6e 67 74 68 20 29 0d 08 |ion , le|ngth )..|
|00001d00| d4 07 2a 7c 21 0d 08 de | 41 2a 7c 21 53 69 6d 69 |..*|!...|A*|!Simi|
|00001d10| 6c 61 72 20 74 6f 20 74 | 68 65 20 6d 65 6e 75 5f |lar to t|he menu_|
|00001d20| 61 64 64 69 6e 64 69 72 | 65 63 74 2c 20 6f 6e 6c |addindir|ect, onl|
|00001d30| 79 20 61 6c 73 6f 20 6d | 61 6b 65 73 20 74 68 65 |y also m|akes the|
|00001d40| 20 65 6e 74 72 79 0d 08 | e8 44 2a 7c 21 77 72 69 | entry..|.D*|!wri|
|00001d50| 74 61 62 6c 65 20 77 69 | 74 68 20 67 69 76 65 6e |table wi|th given|
|00001d60| 20 76 61 6c 69 64 61 74 | 69 6f 6e 20 73 74 72 69 | validat|ion stri|
|00001d70| 6e 67 20 28 70 6f 69 6e | 74 65 72 20 74 6f 29 20 |ng (poin|ter to) |
|00001d80| 61 6e 64 20 6c 65 6e 67 | 74 68 0d 08 f2 35 2a 7c |and leng|th...5*||
|00001d90| 21 73 68 6f 75 6c 64 20 | 63 6f 6e 74 61 69 6e 20 |!should |contain |
|00001da0| 74 68 65 20 6c 65 6e 67 | 74 68 20 6f 66 20 74 68 |the leng|th of th|
|00001db0| 65 20 67 69 76 65 6e 20 | 62 75 66 66 65 72 2e 0d |e given |buffer..|
|00001dc0| 08 fc 2c dd f2 6d 65 6e | 75 5f 61 64 64 77 72 69 |..,..men|u_addwri|
|00001dd0| 74 61 62 6c 65 28 4d 25 | 2c 4e 25 2c 57 25 2c 46 |table(M%|,N%,W%,F|
|00001de0| 25 2c 42 25 2c 56 25 2c | 4c 25 29 0d 09 06 08 ea |%,B%,V%,|L%).....|
|00001df0| 20 50 25 0d 09 10 4d 50 | 25 3d 21 28 5f 77 69 6d | P%...MP|%=!(_wim|
|00001e00| 70 5f 6d 65 6e 75 25 2b | 34 2a 28 4d 25 2b 31 29 |p_menu%+|4*(M%+1)|
|00001e10| 29 3a e7 20 50 25 3d 30 | 20 8c 20 85 20 30 2c 22 |):. P%=0| . . 0,"|
|00001e20| 4d 65 6e 75 20 6e 75 6d | 62 65 72 20 22 2b c3 28 |Menu num|ber "+.(|
|00001e30| 4d 25 29 2b 22 20 75 6e | 64 65 66 69 6e 65 64 22 |M%)+" un|defined"|
|00001e40| 0d 09 1a 44 21 28 50 25 | 2b 32 38 2b 4e 25 2a 32 |...D!(P%|+28+N%*2|
|00001e50| 34 29 3d 28 21 28 50 25 | 2b 32 38 2b 4e 25 2a 32 |4)=(!(P%|+28+N%*2|
|00001e60| 34 29 20 80 20 26 46 30 | 29 20 84 20 46 25 20 84 |4) . &F0|) . F% .|
|00001e70| 20 34 3a 21 28 50 25 2b | 33 32 2b 4e 25 2a 32 34 | 4:!(P%+|32+N%*24|
|00001e80| 29 3d 2d 31 0d 09 24 51 | 21 28 50 25 2b 33 36 2b |)=-1..$Q|!(P%+36+|
|00001e90| 4e 25 2a 32 34 29 3d 26 | 37 30 30 30 31 32 31 3a |N%*24)=&|7000121:|
|00001ea0| 21 28 50 25 2b 34 30 2b | 4e 25 2a 32 34 29 3d 42 |!(P%+40+|N%*24)=B|
|00001eb0| 25 3a 21 28 50 25 2b 34 | 34 2b 4e 25 2a 32 34 29 |%:!(P%+4|4+N%*24)|
|00001ec0| 3d 56 25 3a 21 28 50 25 | 2b 34 38 2b 4e 25 2a 32 |=V%:!(P%|+48+N%*2|
|00001ed0| 34 29 3d 4c 25 0d 09 2e | 26 57 25 3d 31 36 2a 28 |4)=L%...|&W%=16*(|
|00001ee0| 31 2b 57 25 29 3a e7 20 | 57 25 3e 50 25 21 31 36 |1+W%):. |W%>P%!16|
|00001ef0| 20 8c 20 50 25 21 31 36 | 3d 57 25 0d 09 38 05 e1 | . P%!16|=W%..8..|
|00001f00| 0d 09 42 04 0d 09 4c 1f | 2a 7c 73 74 6f 70 20 50 |..B...L.|*|stop P|
|00001f10| 52 4f 43 6d 65 6e 75 5f | 61 64 64 77 72 69 74 61 |ROCmenu_|addwrita|
|00001f20| 62 6c 65 0d 09 56 1c 2a | 7c 73 74 61 72 74 20 50 |ble..V.*||start P|
|00001f30| 52 4f 43 6d 65 6e 75 5f | 61 64 64 69 74 65 6d 0d |ROCmenu_|additem.|
|00001f40| 09 60 36 2a 7c 21 50 52 | 4f 43 6d 65 6e 75 5f 61 |.`6*|!PR|OCmenu_a|
|00001f50| 64 64 69 74 65 6d 28 20 | 6d 65 6e 75 20 2c 20 65 |dditem( |menu , e|
|00001f60| 6e 74 72 79 20 2c 20 69 | 74 65 6d 20 2c 20 66 6c |ntry , i|tem , fl|
|00001f70| 61 67 73 20 29 0d 09 6a | 07 2a 7c 21 0d 09 74 45 |ags )..j|.*|!..tE|
|00001f80| 2a 7c 21 43 72 65 61 74 | 65 73 20 74 68 65 20 67 |*|!Creat|es the g|
|00001f90| 69 76 65 6e 20 65 6e 74 | 72 79 20 66 6f 72 20 74 |iven ent|ry for t|
|00001fa0| 68 65 20 67 69 76 65 6e | 20 6d 65 6e 75 20 74 6f |he given| menu to|
|00001fb0| 20 63 6f 6e 74 61 69 6e | 20 61 20 73 69 6d 70 6c | contain| a simpl|
|00001fc0| 65 0d 09 7e 45 2a 7c 21 | 74 65 78 74 20 65 6e 74 |e..~E*|!|text ent|
|00001fd0| 72 79 20 28 74 65 78 74 | 20 67 69 76 65 6e 20 69 |ry (text| given i|
|00001fe0| 6e 20 69 74 65 6d 20 73 | 74 72 69 6e 67 29 2e 20 |n item s|tring). |
|00001ff0| 54 68 65 20 66 6c 61 67 | 73 20 63 61 6e 20 69 6e |The flag|s can in|
|00002000| 64 69 63 61 74 65 0d 09 | 88 3a 2a 7c 21 69 66 20 |dicate..|.:*|!if |
|00002010| 74 68 65 20 65 6e 74 72 | 79 20 69 73 20 74 6f 20 |the entr|y is to |
|00002020| 62 65 20 74 69 63 6b 65 | 64 20 61 6e 64 2f 6f 72 |be ticke|d and/or|
|00002030| 20 75 6e 64 65 72 6c 69 | 6e 65 64 2c 20 65 67 2e | underli|ned, eg.|
|00002040| 0d 09 92 07 2a 7c 21 0d | 09 9c 3b 2a 7c 21 20 20 |....*|!.|..;*|! |
|00002050| 50 52 4f 43 6d 65 6e 75 | 5f 61 64 64 69 74 65 6d |PROCmenu|_additem|
|00002060| 28 30 2c 31 2c 22 46 61 | 73 74 22 2c 6d 65 6e 75 |(0,1,"Fa|st",menu|
|00002070| 5f 74 69 63 6b 2b 6d 65 | 6e 75 5f 64 6f 74 74 65 |_tick+me|nu_dotte|
|00002080| 64 29 0d 09 a6 07 2a 7c | 21 0d 09 b0 38 2a 7c 21 |d)....*||!...8*|!|
|00002090| 77 69 6c 6c 20 63 72 65 | 61 74 65 20 74 68 65 20 |will cre|ate the |
|000020a0| 73 65 63 6f 6e 64 20 65 | 6e 74 72 79 20 69 6e 20 |second e|ntry in |
|000020b0| 74 68 65 20 66 69 72 73 | 74 20 6d 65 6e 75 20 74 |the firs|t menu t|
|000020c0| 6f 0d 09 ba 42 2a 7c 21 | 63 6f 6e 74 61 69 6e 20 |o...B*|!|contain |
|000020d0| 74 68 65 20 74 65 78 74 | 20 22 46 61 73 74 22 20 |the text| "Fast" |
|000020e0| 61 6e 64 20 62 65 20 74 | 69 63 6b 65 64 20 61 6e |and be t|icked an|
|000020f0| 64 20 75 6e 64 65 72 6c | 69 6e 65 64 20 77 69 74 |d underl|ined wit|
|00002100| 68 20 61 0d 09 c4 18 2a | 7c 21 64 6f 74 74 65 64 |h a....*||!dotted|
|00002110| 20 75 6e 64 65 72 6c 69 | 6e 65 2e 0d 09 ce 1f dd | underli|ne......|
|00002120| f2 6d 65 6e 75 5f 61 64 | 64 69 74 65 6d 28 4d 25 |.menu_ad|ditem(M%|
|00002130| 2c 4e 25 2c 49 24 2c 46 | 25 29 0d 09 d8 0b ea 20 |,N%,I$,F|%)..... |
|00002140| 50 25 2c 57 25 0d 09 e2 | 4d 50 25 3d 21 28 5f 77 |P%,W%...|MP%=!(_w|
|00002150| 69 6d 70 5f 6d 65 6e 75 | 25 2b 34 2a 28 4d 25 2b |imp_menu|%+4*(M%+|
|00002160| 31 29 29 3a e7 20 50 25 | 3d 30 20 8c 20 85 20 30 |1)):. P%|=0 . . 0|
|00002170| 2c 22 4d 65 6e 75 20 6e | 75 6d 62 65 72 20 22 2b |,"Menu n|umber "+|
|00002180| c3 28 4d 25 29 2b 22 20 | 75 6e 64 65 66 69 6e 65 |.(M%)+" |undefine|
|00002190| 64 22 0d 09 ec 40 21 28 | 50 25 2b 32 38 2b 4e 25 |d"...@!(|P%+28+N%|
|000021a0| 2a 32 34 29 3d 28 21 28 | 50 25 2b 32 38 2b 4e 25 |*24)=(!(|P%+28+N%|
|000021b0| 2a 32 34 29 20 80 20 26 | 46 30 29 20 84 20 46 25 |*24) . &|F0) . F%|
|000021c0| 3a 21 28 50 25 2b 33 32 | 2b 4e 25 2a 32 34 29 3d |:!(P%+32|+N%*24)=|
|000021d0| 2d 31 0d 09 f6 44 21 28 | 50 25 2b 33 36 2b 4e 25 |-1...D!(|P%+36+N%|
|000021e0| 2a 32 34 29 3d 26 37 30 | 30 30 30 32 31 3a 24 28 |*24)=&70|00021:$(|
|000021f0| 50 25 2b 34 30 2b 4e 25 | 2a 32 34 29 3d 49 24 3a |P%+40+N%|*24)=I$:|
|00002200| 3f 28 50 25 2b 34 30 2b | 4e 25 2a 32 34 2b a9 28 |?(P%+40+|N%*24+.(|
|00002210| 49 24 29 29 3d 30 0d 0a | 00 29 57 25 3d 31 36 2a |I$))=0..|.)W%=16*|
|00002220| 28 31 2b a9 28 49 24 29 | 29 3a e7 20 57 25 3e 50 |(1+.(I$)|):. W%>P|
|00002230| 25 21 31 36 20 8c 20 50 | 25 21 31 36 3d 57 25 0d |%!16 . P|%!16=W%.|
|00002240| 0a 0a 05 e1 0d 0a 14 04 | 0d 0a 1e 1b 2a 7c 73 74 |........|....*|st|
|00002250| 6f 70 20 50 52 4f 43 6d | 65 6e 75 5f 61 64 64 69 |op PROCm|enu_addi|
|00002260| 74 65 6d 0d 0a 28 1c 2a | 7c 73 74 61 72 74 20 50 |tem..(.*||start P|
|00002270| 52 4f 43 6d 65 6e 75 5f | 64 65 73 74 72 6f 79 0d |ROCmenu_|destroy.|
|00002280| 0a 32 1f 2a 7c 21 50 52 | 4f 43 6d 65 6e 75 5f 64 |.2.*|!PR|OCmenu_d|
|00002290| 65 73 74 72 6f 79 28 20 | 6d 65 6e 75 20 29 0d 0a |estroy( |menu )..|
|000022a0| 3c 07 2a 7c 21 0d 0a 46 | 43 2a 7c 21 57 69 6c 6c |<.*|!..F|C*|!Will|
|000022b0| 20 64 65 73 74 72 6f 79 | 20 28 64 65 61 6c 6c 6f | destroy| (deallo|
|000022c0| 63 61 74 65 20 74 68 65 | 20 6d 65 6d 6f 72 79 20 |cate the| memory |
|000022d0| 75 73 65 64 20 62 79 29 | 20 74 68 65 20 67 69 76 |used by)| the giv|
|000022e0| 65 6e 20 6d 65 6e 75 2e | 0d 0a 50 3f 2a 7c 21 55 |en menu.|..P?*|!U|
|000022f0| 73 65 66 75 6c 20 69 66 | 20 79 6f 75 20 63 72 65 |seful if| you cre|
|00002300| 61 74 65 20 61 6e 79 20 | 6c 61 72 67 65 20 6d 65 |ate any |large me|
|00002310| 6e 75 73 20 28 65 67 2e | 20 66 6f 6e 74 20 73 65 |nus (eg.| font se|
|00002320| 6c 65 63 74 69 6f 6e 0d | 0a 5a 3f 2a 7c 21 6d 65 |lection.|.Z?*|!me|
|00002330| 6e 75 73 29 2e 20 54 68 | 65 72 65 20 69 73 20 6e |nus). Th|ere is n|
|00002340| 6f 20 72 65 61 6c 20 6e | 65 65 64 20 74 6f 20 65 |o real n|eed to e|
|00002350| 76 65 72 20 63 61 6c 6c | 20 74 68 69 73 20 72 6f |ver call| this ro|
|00002360| 75 74 69 6e 65 2e 0d 0a | 64 16 dd f2 6d 65 6e 75 |utine...|d...menu|
|00002370| 5f 64 65 73 74 72 6f 79 | 28 4d 25 29 0d 0a 6e 08 |_destroy|(M%)..n.|
|00002380| ea 20 50 25 0d 0a 78 1e | 50 25 3d 21 28 5f 77 69 |. P%..x.|P%=!(_wi|
|00002390| 6d 70 5f 6d 65 6e 75 25 | 2b 34 2a 28 4d 25 2b 31 |mp_menu%|+4*(M%+1|
|000023a0| 29 29 0d 0a 82 2e e7 20 | 50 25 20 8c 20 f2 66 72 |))..... |P% . .fr|
|000023b0| 65 65 28 50 25 29 3a 21 | 28 5f 77 69 6d 70 5f 6d |ee(P%):!|(_wimp_m|
|000023c0| 65 6e 75 25 2b 34 2a 28 | 4d 25 2b 31 29 29 3d 30 |enu%+4*(|M%+1))=0|
|000023d0| 0d 0a 8c 05 e1 0d 0a 96 | 04 0d 0a a0 1b 2a 7c 73 |........|.....*|s|
|000023e0| 74 6f 70 20 50 52 4f 43 | 6d 65 6e 75 5f 64 65 73 |top PROC|menu_des|
|000023f0| 74 72 6f 79 0d 0a aa 1b | 2a 7c 73 74 61 72 74 20 |troy....|*|start |
|00002400| 50 52 4f 43 6d 65 6e 75 | 5f 68 65 61 64 65 72 0d |PROCmenu|_header.|
|00002410| 0a b4 2f 2a 7c 21 50 52 | 4f 43 6d 65 6e 75 5f 68 |../*|!PR|OCmenu_h|
|00002420| 65 61 64 65 72 28 20 74 | 69 74 6c 65 20 2c 20 6d |eader( t|itle , m|
|00002430| 65 6e 75 20 2c 20 6e 75 | 6d 62 65 72 20 29 0d 0a |enu , nu|mber )..|
|00002440| be 07 2a 7c 21 0d 0a c8 | 41 2a 7c 21 43 72 65 61 |..*|!...|A*|!Crea|
|00002450| 74 65 73 20 74 68 65 20 | 68 65 61 64 65 72 20 66 |tes the |header f|
|00002460| 6f 72 20 74 68 65 20 67 | 69 76 65 6e 20 6d 65 6e |or the g|iven men|
|00002470| 75 20 77 69 74 68 20 74 | 68 65 20 67 69 76 65 6e |u with t|he given|
|00002480| 20 74 69 74 6c 65 0d 0a | d2 41 2a 7c 21 61 6e 64 | title..|.A*|!and|
|00002490| 20 74 6f 20 63 6f 6e 74 | 61 69 6e 20 74 68 65 20 | to cont|ain the |
|000024a0| 67 69 76 65 6e 20 6e 75 | 6d 62 65 72 20 6f 66 20 |given nu|mber of |
|000024b0| 65 6e 74 72 69 65 73 2e | 20 45 6e 74 72 69 65 73 |entries.| Entries|
|000024c0| 20 73 68 6f 75 6c 64 0d | 0a dc 3e 2a 7c 21 74 68 | should.|..>*|!th|
|000024d0| 65 6e 20 62 65 20 66 69 | 6c 6c 65 64 20 75 73 69 |en be fi|lled usi|
|000024e0| 6e 67 20 74 68 65 20 6d | 65 6e 75 5f 61 64 64 69 |ng the m|enu_addi|
|000024f0| 74 65 6d 2c 20 6d 65 6e | 75 5f 61 64 64 77 72 69 |tem, men|u_addwri|
|00002500| 74 61 62 6c 65 0d 0a e6 | 25 2a 7c 21 61 6e 64 20 |table...|%*|!and |
|00002510| 6d 65 6e 75 5f 61 64 64 | 69 6e 64 69 72 65 63 74 |menu_add|indirect|
|00002520| 20 72 6f 75 74 69 6e 65 | 73 2e 0d 0a f0 1b dd f2 | routine|s.......|
|00002530| 6d 65 6e 75 5f 68 65 61 | 64 65 72 28 54 24 2c 4d |menu_hea|der(T$,M|
|00002540| 25 2c 4e 25 29 0d 0a fa | 0b ea 20 50 25 2c 41 25 |%,N%)...|.. P%,A%|
|00002550| 0d 0b 04 1e 50 25 3d 21 | 28 5f 77 69 6d 70 5f 6d |....P%=!|(_wimp_m|
|00002560| 65 6e 75 25 2b 34 2a 28 | 4d 25 2b 31 29 29 0d 0b |enu%+4*(|M%+1))..|
|00002570| 0e 0c e7 20 50 25 3d 30 | 20 8c 0d 0b 18 35 20 20 |... P%=0| ....5 |
|00002580| 50 25 3d a4 6d 61 6c 6c | 6f 63 28 33 32 2b 32 34 |P%=.mall|oc(32+24|
|00002590| 2a 4e 25 29 3a 21 28 5f | 77 69 6d 70 5f 6d 65 6e |*N%):!(_|wimp_men|
|000025a0| 75 25 2b 34 2a 28 4d 25 | 2b 31 29 29 3d 50 25 0d |u%+4*(M%|+1))=P%.|
|000025b0| 0b 22 05 cc 0d 0b 2c 52 | 20 20 e7 20 a4 73 69 7a |."....,R| . .siz|
|000025c0| 65 5f 6f 66 28 50 25 29 | 3c 28 33 32 2b 32 34 2a |e_of(P%)|<(32+24*|
|000025d0| 4e 25 29 20 8c 20 f2 72 | 65 61 6c 6c 6f 63 28 50 |N%) . .r|ealloc(P|
|000025e0| 25 2c 33 32 2b 32 34 2a | 4e 25 29 3a 21 28 5f 77 |%,32+24*|N%):!(_w|
|000025f0| 69 6d 70 5f 6d 65 6e 75 | 25 2b 34 2a 28 4d 25 2b |imp_menu|%+4*(M%+|
|00002600| 31 29 29 3d 50 25 0d 0b | 36 05 cd 0d 0b 40 46 24 |1))=P%..|6....@F$|
|00002610| 50 25 3d 54 24 3a 50 25 | 3f a9 28 54 24 29 3d 30 |P%=T$:P%|?.(T$)=0|
|00002620| 3a 50 25 21 31 32 3d 26 | 37 30 32 30 37 3a 50 25 |:P%!12=&|70207:P%|
|00002630| 21 31 36 3d 31 36 2a 28 | 31 2b a9 28 54 24 29 29 |!16=16*(|1+.(T$))|
|00002640| 3a 50 25 21 32 30 3d 34 | 34 3a 50 25 21 32 34 3d |:P%!20=4|4:P%!24=|
|00002650| 30 0d 0b 4a 36 e3 20 41 | 25 3d 30 20 b8 20 4e 25 |0..J6. A|%=0 . N%|
|00002660| 2d 32 3a 21 28 50 25 2b | 32 38 2b 41 25 2a 32 34 |-2:!(P%+|28+A%*24|
|00002670| 29 3d 30 3a ed 3a 21 28 | 50 25 2b 34 2b 4e 25 2a |)=0:.:!(|P%+4+N%*|
|00002680| 32 34 29 3d 31 32 38 0d | 0b 54 05 e1 0d 0b 5e 04 |24)=128.|.T....^.|
|00002690| 0d 0b 68 1a 2a 7c 73 74 | 6f 70 20 50 52 4f 43 6d |..h.*|st|op PROCm|
|000026a0| 65 6e 75 5f 68 65 61 64 | 65 72 0d ff |enu_head|er.. |
+--------+-------------------------+-------------------------+--------+--------+