Home » Archimedes archive » Acorn User » Acorn User - Shareware Collection (1993).adf » Zap » !Zap/Docs/E-Menu
!Zap/Docs/E-Menu
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Acorn User » Acorn User - Shareware Collection (1993).adf » Zap |
Filename: | !Zap/Docs/E-Menu |
Read OK: | ✔ |
File size: | 0D75 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
************************************************************************* * >E-Menu Documents zaps internal menu format * ************************************************************************* If you are writing your own mode then you may add your own menu off the the mode menu. The current modes have a writable icon of the form 'text width' for example. You are asked to give an offset to a 'zap menu structure' at offset e_menu in the mode table. This file documents the format of this structure. It is of the form: #&00 Menu name (12) #&0C Menu width (os coords) #&10 Module offset of 'update menu code' #&14 Menu entries (x n) -1 to terminate list of entries Each menu entry is of the form: #&00 Flags: b0-b7 Menu flags as for wimp. ie, b0 Display tick b1 Dotted line follows b2 item writable b3 generate warning message b7 ignored b8-b15 Minimum buffer size for this menu entry. b16-b23 Internal use: gives access to a 'memory'. b24-b31 Icon colours / 0 for default #&04 Submenu pointer: 0=none 1-15=internal use : get from memory 1-15 >16 offset in module of submenu (same structure) If the submenu warning bit is set then this gives the module offset of the code to be called when the submenu is opened. #&08 Index word. This is a 'handle' for this menu entry which is passed to the interpret code. #&0C Module offset of the interpret code to call when menu clicked on. #&10 Text for this entry (0 terminated string of any length) ALIGN before next entry. This structure is relocatable and thus can be stored directly in your mode extension module. When zap is run, it converts it into a standard wimp menu with all menu entries being indirected strings. The other values are stored at negative offsets from the standard wimp structure. menu pointer #-4 = address of update menu sub menu entry string buffer pointer #-12 = sub to handle submenu creation (if warned) #-8 = index word #-4 = address of the interpret code to be called when clicked The update menu sub is called when the menu is created to update the 'ticks' etc. This is called when a menu is created/recreated. The entry/exit conditions are: \E R0=offset of this menu in previous menu R6=format value (opt_format if R8=0) R7=flags value (opt_flags if R8=0) R8/R9=window (or 0 if called from iconbar menu) R10=address of the start of the wimp menu structure R11<>your workspace \X You may corrupt R0-R11 VS on error etc The interpret code is called when the menu is clicked on. Adjust clicks etc are handled automatically. Perform the menu action. The update code will be called again if the menu is recreated. The entry/exit conditions are: \E R0=offset in previous menu (=R11!-4) R1=index word (=R10!-8) R2=address of menu item start R3=address of previous menu item start R6=format value (opt_format if R8=0) R7=flags value (opt_flags if R8=0) R8/R9=window (or 0 if called from iconbar menu) R10=address of text for this menu item R11=end of list of menu offsets as returned by the wimp \X You may corrupt R0-R11 VS on error etc The menu warning code is called when the menu warning bit is set and zap gets a menu warning message. It has entry/exit conditions: \E R8/R9=window (or 0 if called from iconbar menu) R11=menu warning block as returned by the wimp \X R1=pointer to submenu/window handle of leaf window All leaf windows should be warned!
00000000 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00000040 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 2a 20 3e 45 2d 4d |*********.* >E-M| 00000050 65 6e 75 09 44 6f 63 75 6d 65 6e 74 73 20 7a 61 |enu.Documents za| 00000060 70 73 20 69 6e 74 65 72 6e 61 6c 20 6d 65 6e 75 |ps internal menu| 00000070 20 66 6f 72 6d 61 74 09 09 09 2a 0a 2a 2a 2a 2a | format...*.****| 00000080 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000000c0 2a 2a 2a 2a 2a 0a 0a 49 66 20 79 6f 75 20 61 72 |*****..If you ar| 000000d0 65 20 77 72 69 74 69 6e 67 20 79 6f 75 72 20 6f |e writing your o| 000000e0 77 6e 20 6d 6f 64 65 20 74 68 65 6e 20 79 6f 75 |wn mode then you| 000000f0 20 6d 61 79 20 61 64 64 20 79 6f 75 72 20 6f 77 | may add your ow| 00000100 6e 20 6d 65 6e 75 20 6f 66 66 20 74 68 65 20 74 |n menu off the t| 00000110 68 65 0a 6d 6f 64 65 20 6d 65 6e 75 2e 20 54 68 |he.mode menu. Th| 00000120 65 20 63 75 72 72 65 6e 74 20 6d 6f 64 65 73 20 |e current modes | 00000130 68 61 76 65 20 61 20 77 72 69 74 61 62 6c 65 20 |have a writable | 00000140 69 63 6f 6e 20 6f 66 20 74 68 65 20 66 6f 72 6d |icon of the form| 00000150 20 27 74 65 78 74 20 77 69 64 74 68 27 0a 66 6f | 'text width'.fo| 00000160 72 20 65 78 61 6d 70 6c 65 2e 0a 0a 59 6f 75 20 |r example...You | 00000170 61 72 65 20 61 73 6b 65 64 20 74 6f 20 67 69 76 |are asked to giv| 00000180 65 20 61 6e 20 6f 66 66 73 65 74 20 74 6f 20 61 |e an offset to a| 00000190 20 27 7a 61 70 20 6d 65 6e 75 20 73 74 72 75 63 | 'zap menu struc| 000001a0 74 75 72 65 27 20 61 74 20 6f 66 66 73 65 74 20 |ture' at offset | 000001b0 65 5f 6d 65 6e 75 20 69 6e 0a 74 68 65 20 6d 6f |e_menu in.the mo| 000001c0 64 65 20 74 61 62 6c 65 2e 20 54 68 69 73 20 66 |de table. This f| 000001d0 69 6c 65 20 64 6f 63 75 6d 65 6e 74 73 20 74 68 |ile documents th| 000001e0 65 20 66 6f 72 6d 61 74 20 6f 66 20 74 68 69 73 |e format of this| 000001f0 20 73 74 72 75 63 74 75 72 65 2e 20 49 74 20 69 | structure. It i| 00000200 73 20 6f 66 0a 74 68 65 20 66 6f 72 6d 3a 0a 0a |s of.the form:..| 00000210 09 23 26 30 30 09 4d 65 6e 75 20 6e 61 6d 65 20 |.#&00.Menu name | 00000220 28 31 32 29 0a 09 23 26 30 43 09 4d 65 6e 75 20 |(12)..#&0C.Menu | 00000230 77 69 64 74 68 20 28 6f 73 20 63 6f 6f 72 64 73 |width (os coords| 00000240 29 0a 09 23 26 31 30 09 4d 6f 64 75 6c 65 20 6f |)..#&10.Module o| 00000250 66 66 73 65 74 20 6f 66 20 27 75 70 64 61 74 65 |ffset of 'update| 00000260 20 6d 65 6e 75 20 63 6f 64 65 27 0a 09 23 26 31 | menu code'..#&1| 00000270 34 09 4d 65 6e 75 20 65 6e 74 72 69 65 73 20 28 |4.Menu entries (| 00000280 78 20 6e 29 0a 09 09 2d 31 20 74 6f 20 74 65 72 |x n)...-1 to ter| 00000290 6d 69 6e 61 74 65 20 6c 69 73 74 20 6f 66 20 65 |minate list of e| 000002a0 6e 74 72 69 65 73 0a 09 09 0a 45 61 63 68 20 6d |ntries....Each m| 000002b0 65 6e 75 20 65 6e 74 72 79 20 69 73 20 6f 66 20 |enu entry is of | 000002c0 74 68 65 20 66 6f 72 6d 3a 0a 0a 09 23 26 30 30 |the form:...#&00| 000002d0 09 46 6c 61 67 73 3a 09 62 30 2d 62 37 09 4d 65 |.Flags:.b0-b7.Me| 000002e0 6e 75 20 66 6c 61 67 73 20 61 73 20 66 6f 72 20 |nu flags as for | 000002f0 77 69 6d 70 2e 20 69 65 2c 0a 09 09 09 62 30 09 |wimp. ie,....b0.| 00000300 44 69 73 70 6c 61 79 20 74 69 63 6b 0a 09 09 09 |Display tick....| 00000310 62 31 09 44 6f 74 74 65 64 20 6c 69 6e 65 20 66 |b1.Dotted line f| 00000320 6f 6c 6c 6f 77 73 0a 09 09 09 62 32 09 69 74 65 |ollows....b2.ite| 00000330 6d 20 77 72 69 74 61 62 6c 65 0a 09 09 09 62 33 |m writable....b3| 00000340 09 67 65 6e 65 72 61 74 65 20 77 61 72 6e 69 6e |.generate warnin| 00000350 67 20 6d 65 73 73 61 67 65 0a 09 09 09 62 37 09 |g message....b7.| 00000360 69 67 6e 6f 72 65 64 0a 09 09 09 62 38 2d 62 31 |ignored....b8-b1| 00000370 35 09 4d 69 6e 69 6d 75 6d 20 62 75 66 66 65 72 |5.Minimum buffer| 00000380 20 73 69 7a 65 20 66 6f 72 20 74 68 69 73 20 6d | size for this m| 00000390 65 6e 75 20 65 6e 74 72 79 2e 0a 09 09 09 62 31 |enu entry.....b1| 000003a0 36 2d 62 32 33 09 49 6e 74 65 72 6e 61 6c 20 75 |6-b23.Internal u| 000003b0 73 65 3a 20 67 69 76 65 73 20 61 63 63 65 73 73 |se: gives access| 000003c0 20 74 6f 20 61 20 27 6d 65 6d 6f 72 79 27 2e 0a | to a 'memory'..| 000003d0 09 09 09 62 32 34 2d 62 33 31 09 49 63 6f 6e 20 |...b24-b31.Icon | 000003e0 63 6f 6c 6f 75 72 73 20 2f 20 30 20 66 6f 72 20 |colours / 0 for | 000003f0 64 65 66 61 75 6c 74 0a 09 23 26 30 34 09 53 75 |default..#&04.Su| 00000400 62 6d 65 6e 75 20 70 6f 69 6e 74 65 72 3a 0a 09 |bmenu pointer:..| 00000410 09 09 30 3d 6e 6f 6e 65 0a 09 09 09 31 2d 31 35 |..0=none....1-15| 00000420 3d 69 6e 74 65 72 6e 61 6c 20 75 73 65 20 3a 20 |=internal use : | 00000430 67 65 74 20 66 72 6f 6d 20 6d 65 6d 6f 72 79 20 |get from memory | 00000440 31 2d 31 35 0a 09 09 09 3e 31 36 20 6f 66 66 73 |1-15....>16 offs| 00000450 65 74 20 69 6e 20 6d 6f 64 75 6c 65 20 6f 66 20 |et in module of | 00000460 73 75 62 6d 65 6e 75 20 28 73 61 6d 65 20 73 74 |submenu (same st| 00000470 72 75 63 74 75 72 65 29 0a 09 09 49 66 20 74 68 |ructure)...If th| 00000480 65 20 73 75 62 6d 65 6e 75 20 77 61 72 6e 69 6e |e submenu warnin| 00000490 67 20 62 69 74 20 69 73 20 73 65 74 20 74 68 65 |g bit is set the| 000004a0 6e 20 74 68 69 73 20 67 69 76 65 73 20 74 68 65 |n this gives the| 000004b0 20 6d 6f 64 75 6c 65 0a 09 09 6f 66 66 73 65 74 | module...offset| 000004c0 20 6f 66 20 74 68 65 20 63 6f 64 65 20 74 6f 20 | of the code to | 000004d0 62 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 74 |be called when t| 000004e0 68 65 20 73 75 62 6d 65 6e 75 20 69 73 20 6f 70 |he submenu is op| 000004f0 65 6e 65 64 2e 0a 09 23 26 30 38 09 49 6e 64 65 |ened...#&08.Inde| 00000500 78 20 77 6f 72 64 2e 20 54 68 69 73 20 69 73 20 |x word. This is | 00000510 61 20 27 68 61 6e 64 6c 65 27 20 66 6f 72 20 74 |a 'handle' for t| 00000520 68 69 73 20 6d 65 6e 75 20 65 6e 74 72 79 20 77 |his menu entry w| 00000530 68 69 63 68 20 69 73 0a 09 09 70 61 73 73 65 64 |hich is...passed| 00000540 20 74 6f 20 74 68 65 20 69 6e 74 65 72 70 72 65 | to the interpre| 00000550 74 20 63 6f 64 65 2e 0a 09 23 26 30 43 09 4d 6f |t code...#&0C.Mo| 00000560 64 75 6c 65 20 6f 66 66 73 65 74 20 6f 66 20 74 |dule offset of t| 00000570 68 65 20 69 6e 74 65 72 70 72 65 74 20 63 6f 64 |he interpret cod| 00000580 65 20 74 6f 20 63 61 6c 6c 20 77 68 65 6e 20 6d |e to call when m| 00000590 65 6e 75 20 0a 09 09 63 6c 69 63 6b 65 64 20 6f |enu ...clicked o| 000005a0 6e 2e 0a 09 23 26 31 30 09 54 65 78 74 20 66 6f |n...#&10.Text fo| 000005b0 72 20 74 68 69 73 20 65 6e 74 72 79 20 28 30 20 |r this entry (0 | 000005c0 74 65 72 6d 69 6e 61 74 65 64 20 73 74 72 69 6e |terminated strin| 000005d0 67 20 6f 66 20 61 6e 79 20 6c 65 6e 67 74 68 29 |g of any length)| 000005e0 0a 09 41 4c 49 47 4e 20 62 65 66 6f 72 65 20 6e |..ALIGN before n| 000005f0 65 78 74 20 65 6e 74 72 79 2e 0a 09 0a 54 68 69 |ext entry....Thi| 00000600 73 20 73 74 72 75 63 74 75 72 65 20 69 73 20 72 |s structure is r| 00000610 65 6c 6f 63 61 74 61 62 6c 65 20 61 6e 64 20 74 |elocatable and t| 00000620 68 75 73 20 63 61 6e 20 62 65 20 73 74 6f 72 65 |hus can be store| 00000630 64 20 64 69 72 65 63 74 6c 79 20 69 6e 20 79 6f |d directly in yo| 00000640 75 72 20 6d 6f 64 65 0a 65 78 74 65 6e 73 69 6f |ur mode.extensio| 00000650 6e 20 6d 6f 64 75 6c 65 2e 20 57 68 65 6e 20 7a |n module. When z| 00000660 61 70 20 69 73 20 72 75 6e 2c 20 69 74 20 63 6f |ap is run, it co| 00000670 6e 76 65 72 74 73 20 69 74 20 69 6e 74 6f 20 61 |nverts it into a| 00000680 20 73 74 61 6e 64 61 72 64 20 77 69 6d 70 20 6d | standard wimp m| 00000690 65 6e 75 0a 77 69 74 68 20 61 6c 6c 20 6d 65 6e |enu.with all men| 000006a0 75 20 65 6e 74 72 69 65 73 20 62 65 69 6e 67 20 |u entries being | 000006b0 69 6e 64 69 72 65 63 74 65 64 20 73 74 72 69 6e |indirected strin| 000006c0 67 73 2e 20 54 68 65 20 6f 74 68 65 72 20 76 61 |gs. The other va| 000006d0 6c 75 65 73 20 61 72 65 20 73 74 6f 72 65 64 0a |lues are stored.| 000006e0 61 74 20 6e 65 67 61 74 69 76 65 20 6f 66 66 73 |at negative offs| 000006f0 65 74 73 20 66 72 6f 6d 20 74 68 65 20 73 74 61 |ets from the sta| 00000700 6e 64 61 72 64 20 77 69 6d 70 20 73 74 72 75 63 |ndard wimp struc| 00000710 74 75 72 65 2e 0a 0a 09 6d 65 6e 75 20 70 6f 69 |ture....menu poi| 00000720 6e 74 65 72 0a 09 23 2d 34 09 3d 20 61 64 64 72 |nter..#-4.= addr| 00000730 65 73 73 20 6f 66 20 75 70 64 61 74 65 20 6d 65 |ess of update me| 00000740 6e 75 20 73 75 62 0a 09 0a 09 6d 65 6e 75 20 65 |nu sub....menu e| 00000750 6e 74 72 79 20 73 74 72 69 6e 67 20 62 75 66 66 |ntry string buff| 00000760 65 72 20 70 6f 69 6e 74 65 72 0a 09 23 2d 31 32 |er pointer..#-12| 00000770 09 3d 20 73 75 62 20 74 6f 20 68 61 6e 64 6c 65 |.= sub to handle| 00000780 20 73 75 62 6d 65 6e 75 20 63 72 65 61 74 69 6f | submenu creatio| 00000790 6e 20 28 69 66 20 77 61 72 6e 65 64 29 0a 09 23 |n (if warned)..#| 000007a0 2d 38 09 3d 20 69 6e 64 65 78 20 77 6f 72 64 0a |-8.= index word.| 000007b0 09 23 2d 34 09 3d 20 61 64 64 72 65 73 73 20 6f |.#-4.= address o| 000007c0 66 20 74 68 65 20 69 6e 74 65 72 70 72 65 74 20 |f the interpret | 000007d0 63 6f 64 65 20 74 6f 20 62 65 20 63 61 6c 6c 65 |code to be calle| 000007e0 64 20 77 68 65 6e 20 63 6c 69 63 6b 65 64 0a 09 |d when clicked..| 000007f0 0a 54 68 65 20 75 70 64 61 74 65 20 6d 65 6e 75 |.The update menu| 00000800 20 73 75 62 20 69 73 20 63 61 6c 6c 65 64 20 77 | sub is called w| 00000810 68 65 6e 20 74 68 65 20 6d 65 6e 75 20 69 73 20 |hen the menu is | 00000820 63 72 65 61 74 65 64 20 74 6f 20 75 70 64 61 74 |created to updat| 00000830 65 20 74 68 65 20 27 74 69 63 6b 73 27 0a 65 74 |e the 'ticks'.et| 00000840 63 2e 20 54 68 69 73 20 69 73 20 63 61 6c 6c 65 |c. This is calle| 00000850 64 20 77 68 65 6e 20 61 20 6d 65 6e 75 20 69 73 |d when a menu is| 00000860 20 63 72 65 61 74 65 64 2f 72 65 63 72 65 61 74 | created/recreat| 00000870 65 64 2e 20 54 68 65 20 65 6e 74 72 79 2f 65 78 |ed. The entry/ex| 00000880 69 74 0a 63 6f 6e 64 69 74 69 6f 6e 73 20 61 72 |it.conditions ar| 00000890 65 3a 0a 0a 09 5c 45 09 52 30 3d 6f 66 66 73 65 |e:...\E.R0=offse| 000008a0 74 20 6f 66 20 74 68 69 73 20 6d 65 6e 75 20 69 |t of this menu i| 000008b0 6e 20 70 72 65 76 69 6f 75 73 20 6d 65 6e 75 0a |n previous menu.| 000008c0 09 09 52 36 3d 66 6f 72 6d 61 74 20 76 61 6c 75 |..R6=format valu| 000008d0 65 20 28 6f 70 74 5f 66 6f 72 6d 61 74 20 69 66 |e (opt_format if| 000008e0 20 52 38 3d 30 29 0a 09 09 52 37 3d 66 6c 61 67 | R8=0)...R7=flag| 000008f0 73 20 76 61 6c 75 65 20 28 6f 70 74 5f 66 6c 61 |s value (opt_fla| 00000900 67 73 20 69 66 20 52 38 3d 30 29 0a 09 09 52 38 |gs if R8=0)...R8| 00000910 2f 52 39 3d 77 69 6e 64 6f 77 20 28 6f 72 20 30 |/R9=window (or 0| 00000920 20 69 66 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 | if called from | 00000930 69 63 6f 6e 62 61 72 20 6d 65 6e 75 29 0a 09 09 |iconbar menu)...| 00000940 52 31 30 3d 61 64 64 72 65 73 73 20 6f 66 20 74 |R10=address of t| 00000950 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 65 20 |he start of the | 00000960 77 69 6d 70 20 6d 65 6e 75 20 73 74 72 75 63 74 |wimp menu struct| 00000970 75 72 65 0a 09 09 52 31 31 3c 3e 79 6f 75 72 20 |ure...R11<>your | 00000980 77 6f 72 6b 73 70 61 63 65 0a 09 5c 58 09 59 6f |workspace..\X.Yo| 00000990 75 20 6d 61 79 20 63 6f 72 72 75 70 74 20 52 30 |u may corrupt R0| 000009a0 2d 52 31 31 20 56 53 20 6f 6e 20 65 72 72 6f 72 |-R11 VS on error| 000009b0 20 65 74 63 0a 09 0a 54 68 65 20 69 6e 74 65 72 | etc...The inter| 000009c0 70 72 65 74 20 63 6f 64 65 20 69 73 20 63 61 6c |pret code is cal| 000009d0 6c 65 64 20 77 68 65 6e 20 74 68 65 20 6d 65 6e |led when the men| 000009e0 75 20 69 73 20 63 6c 69 63 6b 65 64 20 6f 6e 2e |u is clicked on.| 000009f0 20 41 64 6a 75 73 74 20 63 6c 69 63 6b 73 20 65 | Adjust clicks e| 00000a00 74 63 0a 61 72 65 20 68 61 6e 64 6c 65 64 20 61 |tc.are handled a| 00000a10 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2e 20 50 65 |utomatically. Pe| 00000a20 72 66 6f 72 6d 20 74 68 65 20 6d 65 6e 75 20 61 |rform the menu a| 00000a30 63 74 69 6f 6e 2e 20 54 68 65 20 75 70 64 61 74 |ction. The updat| 00000a40 65 20 63 6f 64 65 20 77 69 6c 6c 20 62 65 0a 63 |e code will be.c| 00000a50 61 6c 6c 65 64 20 61 67 61 69 6e 20 69 66 20 74 |alled again if t| 00000a60 68 65 20 6d 65 6e 75 20 69 73 20 72 65 63 72 65 |he menu is recre| 00000a70 61 74 65 64 2e 20 54 68 65 20 65 6e 74 72 79 2f |ated. The entry/| 00000a80 65 78 69 74 20 63 6f 6e 64 69 74 69 6f 6e 73 20 |exit conditions | 00000a90 61 72 65 3a 0a 0a 09 5c 45 09 52 30 3d 6f 66 66 |are:...\E.R0=off| 00000aa0 73 65 74 20 69 6e 20 70 72 65 76 69 6f 75 73 20 |set in previous | 00000ab0 6d 65 6e 75 20 28 3d 52 31 31 21 2d 34 29 0a 09 |menu (=R11!-4)..| 00000ac0 09 52 31 3d 69 6e 64 65 78 20 77 6f 72 64 20 28 |.R1=index word (| 00000ad0 3d 52 31 30 21 2d 38 29 0a 09 09 52 32 3d 61 64 |=R10!-8)...R2=ad| 00000ae0 64 72 65 73 73 20 6f 66 20 6d 65 6e 75 20 69 74 |dress of menu it| 00000af0 65 6d 20 73 74 61 72 74 0a 09 09 52 33 3d 61 64 |em start...R3=ad| 00000b00 64 72 65 73 73 20 6f 66 20 70 72 65 76 69 6f 75 |dress of previou| 00000b10 73 20 6d 65 6e 75 20 69 74 65 6d 20 73 74 61 72 |s menu item star| 00000b20 74 0a 09 09 52 36 3d 66 6f 72 6d 61 74 20 76 61 |t...R6=format va| 00000b30 6c 75 65 20 28 6f 70 74 5f 66 6f 72 6d 61 74 20 |lue (opt_format | 00000b40 69 66 20 52 38 3d 30 29 0a 09 09 52 37 3d 66 6c |if R8=0)...R7=fl| 00000b50 61 67 73 20 76 61 6c 75 65 20 28 6f 70 74 5f 66 |ags value (opt_f| 00000b60 6c 61 67 73 20 69 66 20 52 38 3d 30 29 0a 09 09 |lags if R8=0)...| 00000b70 52 38 2f 52 39 3d 77 69 6e 64 6f 77 20 28 6f 72 |R8/R9=window (or| 00000b80 20 30 20 69 66 20 63 61 6c 6c 65 64 20 66 72 6f | 0 if called fro| 00000b90 6d 20 69 63 6f 6e 62 61 72 20 6d 65 6e 75 29 0a |m iconbar menu).| 00000ba0 09 09 52 31 30 3d 61 64 64 72 65 73 73 20 6f 66 |..R10=address of| 00000bb0 20 74 65 78 74 20 66 6f 72 20 74 68 69 73 20 6d | text for this m| 00000bc0 65 6e 75 20 69 74 65 6d 0a 09 09 52 31 31 3d 65 |enu item...R11=e| 00000bd0 6e 64 20 6f 66 20 6c 69 73 74 20 6f 66 20 6d 65 |nd of list of me| 00000be0 6e 75 20 6f 66 66 73 65 74 73 20 61 73 20 72 65 |nu offsets as re| 00000bf0 74 75 72 6e 65 64 20 62 79 20 74 68 65 20 77 69 |turned by the wi| 00000c00 6d 70 0a 09 5c 58 09 59 6f 75 20 6d 61 79 20 63 |mp..\X.You may c| 00000c10 6f 72 72 75 70 74 20 52 30 2d 52 31 31 20 56 53 |orrupt R0-R11 VS| 00000c20 20 6f 6e 20 65 72 72 6f 72 20 65 74 63 0a 09 0a | on error etc...| 00000c30 54 68 65 20 6d 65 6e 75 20 77 61 72 6e 69 6e 67 |The menu warning| 00000c40 20 63 6f 64 65 20 69 73 20 63 61 6c 6c 65 64 20 | code is called | 00000c50 77 68 65 6e 20 74 68 65 20 6d 65 6e 75 20 77 61 |when the menu wa| 00000c60 72 6e 69 6e 67 20 62 69 74 20 69 73 20 73 65 74 |rning bit is set| 00000c70 20 61 6e 64 20 7a 61 70 20 67 65 74 73 0a 61 20 | and zap gets.a | 00000c80 6d 65 6e 75 20 77 61 72 6e 69 6e 67 20 6d 65 73 |menu warning mes| 00000c90 73 61 67 65 2e 20 49 74 20 68 61 73 20 65 6e 74 |sage. It has ent| 00000ca0 72 79 2f 65 78 69 74 20 63 6f 6e 64 69 74 69 6f |ry/exit conditio| 00000cb0 6e 73 3a 0a 0a 09 5c 45 09 52 38 2f 52 39 3d 77 |ns:...\E.R8/R9=w| 00000cc0 69 6e 64 6f 77 20 28 6f 72 20 30 20 69 66 20 63 |indow (or 0 if c| 00000cd0 61 6c 6c 65 64 20 66 72 6f 6d 20 69 63 6f 6e 62 |alled from iconb| 00000ce0 61 72 20 6d 65 6e 75 29 0a 09 09 52 31 31 3d 6d |ar menu)...R11=m| 00000cf0 65 6e 75 20 77 61 72 6e 69 6e 67 20 62 6c 6f 63 |enu warning bloc| 00000d00 6b 20 61 73 20 72 65 74 75 72 6e 65 64 20 62 79 |k as returned by| 00000d10 20 74 68 65 20 77 69 6d 70 0a 09 5c 58 09 52 31 | the wimp..\X.R1| 00000d20 3d 70 6f 69 6e 74 65 72 20 74 6f 20 73 75 62 6d |=pointer to subm| 00000d30 65 6e 75 2f 77 69 6e 64 6f 77 20 68 61 6e 64 6c |enu/window handl| 00000d40 65 20 6f 66 20 6c 65 61 66 20 77 69 6e 64 6f 77 |e of leaf window| 00000d50 0a 0a 41 6c 6c 20 6c 65 61 66 20 77 69 6e 64 6f |..All leaf windo| 00000d60 77 73 20 73 68 6f 75 6c 64 20 62 65 20 77 61 72 |ws should be war| 00000d70 6e 65 64 21 0a |ned!.| 00000d75