home *** CD-ROM | disk | FTP | other *** search
Unknown | 1991-04-08 | 14.3 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.
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| file
| data
| default
| |
100%
| xdgMime
| image/x-tga
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0d 00 0a 44 f4 20 20 3e | 3c 42 61 73 69 63 56 5f |...D. >|<BasicV_|
|00000010| 41 73 73 65 6d 62 6c 65 | 72 24 4c 69 62 3e 2e 4d |Assemble|r$Lib>.M|
|00000020| 65 6e 75 20 20 3a 20 20 | 52 45 4d 20 20 4c 69 62 |enu : |REM Lib|
|00000030| 72 61 72 79 20 72 6f 75 | 74 69 6e 65 73 2e 20 76 |rary rou|tines. v|
|00000040| 30 2e 30 36 0d 00 14 1b | f4 20 20 4d 41 43 48 49 |0.06....|. MACHI|
|00000050| 4e 45 3a 20 20 41 72 63 | 68 69 6d 65 64 65 73 0d |NE: Arc|himedes.|
|00000060| 00 1e 1c f4 20 20 4c 41 | 4e 47 55 41 47 45 3a 20 |.... LA|NGUAGE: |
|00000070| 42 42 43 20 42 41 53 49 | 43 20 56 0d 00 28 1b f4 |BBC BASI|C V..(..|
|00000080| 20 20 41 55 54 48 4f 52 | 3a 20 20 20 43 79 20 42 | AUTHOR|: Cy B|
|00000090| 6f 6f 6b 65 72 2c 0d 00 | 32 47 f4 20 20 20 20 20 |ooker,..|2G. |
|000000a0| 20 20 20 20 20 20 20 38 | 36 20 43 68 75 72 63 68 | 8|6 Church|
|000000b0| 20 56 69 65 77 2c 20 4d | 61 69 6e 20 52 6f 61 64 | View, M|ain Road|
|000000c0| 2c 20 43 72 6f 63 6b 65 | 6e 68 69 6c 6c 2c 20 53 |, Crocke|nhill, S|
|000000d0| 77 61 6e 6c 65 79 2c 20 | 4b 65 6e 74 2e 0d 00 3c |wanley, |Kent...<|
|000000e0| 18 f4 20 20 20 20 20 20 | 20 20 20 20 20 20 42 52 |.. | BR|
|000000f0| 38 20 38 4a 57 0d 00 46 | 0f f4 20 20 52 4f 55 54 |8 8JW..F|.. ROUT|
|00000100| 49 4e 45 3a 0d 00 50 12 | f4 20 20 20 43 6c 61 69 |INE:..P.|. Clai|
|00000110| 6d 5f 4d 65 6e 75 0d 00 | 5a 08 f4 20 20 3a 0d 00 |m_Menu..|Z.. :..|
|00000120| 64 10 f4 20 20 46 55 4e | 43 54 49 4f 4e 3a 0d 00 |d.. FUN|CTION:..|
|00000130| 6e 28 f4 20 20 20 5f 47 | 6f 74 6f 5f 53 75 62 5f |n(. _G|oto_Sub_|
|00000140| 4d 65 6e 75 20 20 20 20 | 20 20 20 20 20 20 20 20 |Menu | |
|00000150| 49 6e 6c 69 6e 65 0d 00 | 78 08 f4 20 20 3a 0d 00 |Inline..|x.. :..|
|00000160| 82 11 f4 20 20 45 58 54 | 45 52 4e 41 4c 53 3a 0d |... EXT|ERNALS:.|
|00000170| 00 8c 34 f4 20 20 20 43 | 20 20 20 20 20 20 20 20 |..4. C| |
|00000180| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000190| 20 42 41 53 49 43 20 4c | 69 62 72 61 72 79 20 66 | BASIC L|ibrary f|
|000001a0| 69 6c 65 0d 00 96 34 f4 | 20 20 20 4d 69 73 63 20 |ile...4.| Misc |
|000001b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000001c0| 20 20 20 20 20 42 41 53 | 49 43 20 4c 69 62 72 61 | BAS|IC Libra|
|000001d0| 72 79 20 66 69 6c 65 0d | 00 a0 2d f4 20 20 20 57 |ry file.|..-. W|
|000001e0| 72 69 74 65 5f 47 6c 6f | 62 61 6c 5f 45 72 72 6f |rite_Glo|bal_Erro|
|000001f0| 72 5f 42 6c 6f 63 6b 20 | 20 41 52 4d 20 72 6f 75 |r_Block | ARM rou|
|00000200| 74 69 6e 65 0d 00 aa 08 | f4 20 20 3a 0d 00 b4 11 |tine....|. :....|
|00000210| f4 20 20 56 41 52 49 41 | 42 4c 45 53 3a 0d 00 be |. VARIA|BLES:...|
|00000220| 4a f4 20 20 20 6d 65 6e | 75 25 20 20 20 20 20 54 |J. men|u% T|
|00000230| 68 69 73 20 67 6c 6f 62 | 61 6c 20 68 65 61 70 20 |his glob|al heap |
|00000240| 62 6c 6f 63 6b 20 69 73 | 20 73 65 74 20 75 70 20 |block is| set up |
|00000250| 62 79 20 61 20 63 61 6c | 6c 20 74 6f 20 43 6c 61 |by a cal|l to Cla|
|00000260| 69 6d 5f 4d 65 6e 75 0d | 00 c8 36 f4 20 20 20 20 |im_Menu.|..6. |
|00000270| 20 20 20 20 20 20 20 20 | 20 72 65 61 64 79 20 74 | | ready t|
|00000280| 6f 20 62 65 20 75 73 65 | 64 20 62 79 20 57 69 6d |o be use|d by Wim|
|00000290| 70 5f 43 72 65 61 74 65 | 4d 65 6e 75 2e 0d 00 d2 |p_Create|Menu....|
|000002a0| 48 f4 20 20 20 4d 65 6e | 75 5f 44 65 66 69 6e 69 |H. Men|u_Defini|
|000002b0| 74 69 6f 6e 5f 4c 69 6d | 69 74 25 20 3d 3d 20 42 |tion_Lim|it% == B|
|000002c0| 79 74 65 20 73 69 7a 65 | 20 6f 66 20 6d 65 6e 75 |yte size| of menu|
|000002d0| 2c 20 73 65 74 20 62 65 | 66 6f 72 65 20 61 73 73 |, set be|fore ass|
|000002e0| 65 6d 62 6c 65 0d 00 dc | 48 f4 20 20 20 4d 65 6e |emble...|H. Men|
|000002f0| 75 5f 49 6e 64 69 72 65 | 63 74 5f 4c 69 6d 69 74 |u_Indire|ct_Limit|
|00000300| 25 20 20 20 3d 3d 20 42 | 79 74 65 20 73 69 7a 65 |% == B|yte size|
|00000310| 20 6f 66 20 6d 65 6e 75 | 2c 20 73 65 74 20 62 65 | of menu|, set be|
|00000320| 66 6f 72 65 20 61 73 73 | 65 6d 62 6c 65 0d 00 e6 |fore ass|emble...|
|00000330| 08 f4 20 20 3a 0d 00 f0 | 0f f4 20 20 55 50 44 41 |.. :...|.. UPDA|
|00000340| 54 45 53 3a 0d 00 fa 39 | f4 20 30 31 2e 30 33 2e |TES:...9|. 01.03.|
|00000350| 31 39 39 31 20 43 4a 42 | 20 43 68 61 6e 67 65 64 |1991 CJB| Changed|
|00000360| 20 6d 61 69 6e 20 6d 65 | 6e 75 20 73 6f 20 68 61 | main me|nu so ha|
|00000370| 73 20 45 64 69 74 2c 20 | 56 69 65 77 89 0d 01 04 |s Edit, |View....|
|00000380| 49 f4 20 30 35 2e 30 33 | 2e 31 39 39 31 20 43 4a |I. 05.03|.1991 CJ|
|00000390| 42 20 4e 65 77 20 22 6d | 61 67 6e 69 66 69 65 72 |B New "m|agnifier|
|000003a0| 22 20 6d 65 6e 75 2c 20 | 61 6c 73 6f 20 67 65 6e |" menu, |also gen|
|000003b0| 65 72 61 74 65 20 6d 65 | 73 73 61 67 65 20 66 6f |erate me|ssage fo|
|000003c0| 72 20 7a 6f 6f 6d 0d 01 | 0e 3d f4 20 20 20 20 20 |r zoom..|.=. |
|000003d0| 20 20 20 20 20 20 20 20 | 20 20 20 61 6e 64 20 65 | | and e|
|000003e0| 63 68 6f 2c 20 74 6f 20 | 73 70 65 65 64 20 75 70 |cho, to |speed up|
|000003f0| 20 66 69 72 73 74 20 74 | 69 6d 65 2c 20 70 61 6e | first t|ime, pan|
|00000400| 65 6c 2e 0d 01 18 35 f4 | 20 30 36 2e 30 33 2e 31 |el....5.| 06.03.1|
|00000410| 39 39 31 20 43 4a 42 20 | 53 6c 69 67 68 74 20 70 |991 CJB |Slight p|
|00000420| 72 6f 62 20 69 6e 20 6d | 61 67 6e 69 66 69 65 72 |rob in m|agnifier|
|00000430| 20 22 6d 65 6e 75 22 2e | 0d 01 22 37 f4 20 30 37 | "menu".|.."7. 07|
|00000440| 2e 30 33 2e 31 39 39 31 | 20 43 4a 42 20 6e 65 77 |.03.1991| CJB new|
|00000450| 20 22 69 22 20 66 6f 72 | 20 69 6e 64 69 72 65 63 | "i" for| indirec|
|00000460| 74 20 28 6e 75 6c 6c 29 | 20 69 74 65 6d 73 2e 0d |t (null)| items..|
|00000470| 01 2c 4c f4 20 30 35 2e | 30 34 2e 31 39 39 31 20 |.,L. 05.|04.1991 |
|00000480| 43 4a 42 20 50 75 74 20 | 65 78 61 6d 70 6c 65 73 |CJB Put |examples|
|00000490| 20 69 6e 74 6f 20 61 20 | 73 65 70 61 72 61 74 65 | into a |separate|
|000004a0| 20 66 69 6c 65 2c 20 6d | 65 6e 75 27 73 20 73 74 | file, m|enu's st|
|000004b0| 6f 72 65 64 20 69 6e 73 | 69 64 65 0d 01 36 1f f4 |ored ins|ide..6..|
|000004c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000004d0| 77 69 6d 70 20 68 65 61 | 70 2e 0d 01 40 43 f4 20 |wimp hea|p...@C. |
|000004e0| 30 36 2e 30 34 2e 31 39 | 39 31 20 43 4a 42 20 55 |06.04.19|91 CJB U|
|000004f0| 73 65 73 20 4d 69 73 63 | 20 72 6f 75 74 69 6e 65 |ses Misc| routine|
|00000500| 73 20 74 6f 20 67 65 6e | 65 72 61 74 65 20 69 6e |s to gen|erate in|
|00000510| 6c 69 6e 65 20 73 74 72 | 69 6e 67 73 2e 0d 01 4a |line str|ings...J|
|00000520| 4c f4 20 30 38 2e 30 34 | 2e 31 39 39 31 20 43 4a |L. 08.04|.1991 CJ|
|00000530| 42 20 43 6c 61 69 6d 73 | 20 68 65 61 70 20 6f 6e |B Claims| heap on|
|00000540| 20 69 6e 69 74 69 61 6c | 69 73 61 74 69 6f 6e 2c | initial|isation,|
|00000550| 20 6e 6f 74 20 74 77 69 | 63 65 20 77 68 65 6e 20 | not twi|ce when |
|00000560| 61 73 73 65 6d 62 6c 65 | 2e 0d 01 54 05 3a 0d 01 |assemble|...T.:..|
|00000570| 5e 1e dd 20 a4 5f 4d 65 | 6e 75 5f 76 65 72 73 69 |^.. ._Me|nu_versi|
|00000580| 6f 6e 20 20 3a 20 20 3d | 20 30 30 36 0d 01 68 05 |on : =| 006..h.|
|00000590| 3a 0d 01 72 1c dd 20 a4 | 5f 68 61 72 64 5f 69 6e |:..r.. .|_hard_in|
|000005a0| 69 74 69 61 6c 69 73 65 | 5f 4d 65 6e 75 0d 01 7c |itialise|_Menu..||
|000005b0| 07 ea 20 85 0d 01 86 37 | ee 20 85 20 ea 20 f7 20 |.. ....7|. . . . |
|000005c0| 85 20 20 3a 20 20 f2 5f | 65 28 20 22 25 2e 4d 65 |. : ._|e( "%.Me|
|000005d0| 6e 75 3a 20 68 61 72 64 | 5f 69 6e 69 74 69 61 6c |nu: hard|_initial|
|000005e0| 69 73 65 5f 4d 65 6e 75 | 22 20 29 0d 01 90 37 20 |ise_Menu|" )...7 |
|000005f0| 20 f2 5f 6c 6f 61 64 5f | 6c 69 62 72 61 72 79 28 | ._load_|library(|
|00000600| 20 22 3c 42 61 73 69 63 | 56 5f 41 73 73 65 6d 62 | "<Basic|V_Assemb|
|00000610| 6c 65 72 24 4c 69 62 3e | 2e 43 22 2c 20 30 30 34 |ler$Lib>|.C", 004|
|00000620| 20 29 0d 01 9a 3a 20 20 | f2 5f 6c 6f 61 64 5f 6c | )...: |._load_l|
|00000630| 69 62 72 61 72 79 28 20 | 22 3c 42 61 73 69 63 56 |ibrary( |"<BasicV|
|00000640| 5f 41 73 73 65 6d 62 6c | 65 72 24 4c 69 62 3e 2e |_Assembl|er$Lib>.|
|00000650| 4d 69 73 63 22 2c 20 30 | 32 30 20 29 0d 01 a4 30 |Misc", 0|20 )...0|
|00000660| 20 20 f2 5f 6c 6f 61 64 | 5f 6c 69 62 72 61 72 79 | ._load|_library|
|00000670| 28 20 22 3c 42 61 73 69 | 63 56 24 4c 69 62 3e 2e |( "<Basi|cV$Lib>.|
|00000680| 48 65 61 70 22 2c 20 30 | 30 36 20 29 0d 01 ae 07 |Heap", 0|06 )....|
|00000690| 20 20 3a 0d 01 b8 27 20 | 20 4d 65 6e 75 5f 44 65 | :...' | Menu_De|
|000006a0| 66 69 6e 69 74 69 6f 6e | 5f 4c 69 6d 69 74 25 20 |finition|_Limit% |
|000006b0| 3d 20 33 20 2a 20 31 30 | 32 34 0d 01 c2 27 20 20 |= 3 * 10|24...' |
|000006c0| 4d 65 6e 75 5f 49 6e 64 | 69 72 65 63 74 5f 4c 69 |Menu_Ind|irect_Li|
|000006d0| 6d 69 74 25 20 20 20 3d | 20 32 20 2a 20 31 30 32 |mit% =| 2 * 102|
|000006e0| 34 0d 01 cc 39 20 20 f2 | 5f 43 6c 61 69 6d 5f 48 |4...9 .|_Claim_H|
|000006f0| 65 61 70 5f 42 6c 6f 63 | 6b 28 20 6d 65 6e 75 25 |eap_Bloc|k( menu%|
|00000700| 2c 20 4d 65 6e 75 5f 44 | 65 66 69 6e 69 74 69 6f |, Menu_D|efinitio|
|00000710| 6e 5f 4c 69 6d 69 74 25 | 20 29 0d 01 d6 40 20 20 |n_Limit%| )...@ |
|00000720| f2 5f 43 6c 61 69 6d 5f | 48 65 61 70 5f 42 6c 6f |._Claim_|Heap_Blo|
|00000730| 63 6b 28 20 6d 65 6e 75 | 5f 69 6e 64 69 72 65 63 |ck( menu|_indirec|
|00000740| 74 25 2c 20 4d 65 6e 75 | 5f 49 6e 64 69 72 65 63 |t%, Menu|_Indirec|
|00000750| 74 5f 4c 69 6d 69 74 25 | 20 29 0d 01 e0 07 3d 20 |t_Limit%| )....= |
|00000760| 30 0d 01 ea 05 3a 0d 01 | f4 4b f4 20 2a 2a 2a 2a |0....:..|.K. ****|
|00000770| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000780| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000790| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000007a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000007b0| 2a 0d 01 fe 17 f4 20 43 | 6c 61 69 6d 20 4d 65 6e |*..... C|laim Men|
|000007c0| 75 20 49 6e 70 75 74 3a | 0d 02 08 4a f4 20 20 53 |u Input:|...J. S|
|000007d0| 75 62 2d 6d 65 6e 75 27 | 73 20 61 72 65 20 64 65 |ub-menu'|s are de|
|000007e0| 66 69 6e 65 64 20 69 6e | 20 6f 72 64 65 72 20 6e |fined in| order n|
|000007f0| 65 65 64 65 64 20 77 68 | 65 6e 20 70 61 72 73 69 |eeded wh|en parsi|
|00000800| 6e 67 20 6d 65 6e 75 20 | 73 74 72 75 63 74 75 72 |ng menu |structur|
|00000810| 65 2c 0d 02 12 35 f4 20 | 20 61 6e 64 20 61 72 65 |e,...5. | and are|
|00000820| 20 69 6d 6d 65 64 69 61 | 74 65 6c 79 20 61 66 74 | immedia|tely aft|
|00000830| 65 72 20 74 68 65 20 70 | 72 65 76 69 6f 75 73 20 |er the p|revious |
|00000840| 73 74 72 69 6e 67 2e 0d | 02 1c 22 f4 20 20 20 3c |string..|..". <|
|00000850| 6d 65 6e 75 20 64 65 66 | 3e 20 20 3a 3a 3d 20 5b |menu def|> ::= [|
|00000860| 20 3c 6d 65 6e 75 3e 20 | 5d 0d 02 26 41 f4 20 20 | <menu> |]..&A. |
|00000870| 20 3c 6d 65 6e 75 3e 20 | 20 20 20 20 20 3a 3a 3d | <menu> | ::=|
|00000880| 20 3c 74 69 74 6c 65 3e | 20 5b 20 3c 73 65 70 61 | <title>| [ <sepa|
|00000890| 72 61 74 6f 72 3e 20 3c | 6d 65 6e 75 20 69 74 65 |rator> <|menu ite|
|000008a0| 6d 3e 20 5d 2a 20 27 5c | 30 27 0d 02 30 2c f4 20 |m> ]* '\|0'..0,. |
|000008b0| 20 20 3c 74 69 74 6c 65 | 3e 20 20 20 20 20 3a 3a | <title|> ::|
|000008c0| 3d 20 3c 63 68 61 72 3e | 20 7b 20 3c 63 68 61 72 |= <char>| { <char|
|000008d0| 3e 20 7d 31 31 2a 0d 02 | 3a 2f f4 20 20 20 3c 73 |> }11*..|:/. <s|
|000008e0| 65 70 61 72 61 74 6f 72 | 3e 20 3a 3a 3d 20 27 98 |eparator|> ::= '.|
|000008f0| 27 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |' | |
|00000900| 28 31 35 32 29 0d 02 44 | 2f f4 20 20 20 3c 6d 65 |(152)..D|/. <me|
|00000910| 6e 75 20 69 74 65 6d 3e | 20 3a 3a 3d 20 7b 20 3c |nu item>| ::= { <|
|00000920| 66 6c 61 67 3e 20 7d 2a | 20 3c 69 74 65 6d 20 74 |flag> }*| <item t|
|00000930| 65 78 74 3e 0d 02 4e 46 | f4 20 20 20 3c 66 6c 61 |ext>..NF|. <fla|
|00000940| 67 3e 20 20 20 20 20 20 | 3a 3a 3d 20 27 64 27 20 |g> |::= 'd' |
|00000950| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 46 6f | | Fo|
|00000960| 6c 6c 6f 77 20 6d 65 6e | 75 20 69 74 65 6d 20 77 |llow men|u item w|
|00000970| 69 74 68 20 61 20 64 61 | 73 68 0d 02 58 46 f4 20 |ith a da|sh..XF. |
|00000980| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000990| 7c 20 27 67 27 20 20 20 | 20 20 20 20 20 20 20 20 || 'g' | |
|000009a0| 20 20 20 20 47 65 6e 65 | 72 61 74 65 20 4d 65 6e | Gene|rate Men|
|000009b0| 75 57 61 72 6e 69 6e 67 | 20 6d 65 73 73 61 67 65 |uWarning| message|
|000009c0| 0d 02 62 4a f4 20 20 20 | 20 20 20 20 20 20 20 20 |..bJ. | |
|000009d0| 20 20 20 20 20 20 7c 20 | 27 73 27 20 20 20 20 20 | | |'s' |
|000009e0| 20 20 20 20 20 20 20 20 | 20 20 53 68 61 64 65 20 | | Shade |
|000009f0| 6d 65 6e 75 20 69 74 65 | 6d 20 28 6e 6f 74 20 73 |menu ite|m (not s|
|00000a00| 65 6c 65 63 74 61 62 6c | 65 29 0d 02 6c 4b f4 20 |electabl|e)..lK. |
|00000a10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000a20| 7c 20 27 74 27 20 20 20 | 20 20 20 20 20 20 20 20 || 't' | |
|00000a30| 20 20 20 20 50 6c 61 63 | 65 20 61 20 74 69 63 6b | Plac|e a tick|
|00000a40| 20 74 6f 20 6c 65 66 74 | 20 6f 66 20 6d 65 6e 75 | to left| of menu|
|00000a50| 20 69 74 65 6d 0d 02 76 | 40 f4 20 20 20 20 20 20 | item..v|@. |
|00000a60| 20 20 20 20 20 20 20 20 | 20 20 20 7c 20 27 77 27 | | | 'w'|
|00000a70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 4d | | M|
|00000a80| 65 6e 75 20 69 74 65 6d | 20 69 73 20 77 72 69 74 |enu item| is writ|
|00000a90| 74 61 62 6c 65 0d 02 80 | 41 f4 20 20 20 3c 69 74 |table...|A. <it|
|00000aa0| 65 6d 20 74 65 78 74 3e | 20 3a 3a 3d 20 27 69 27 |em text>| ::= 'i'|
|00000ab0| 20 3c 75 69 6e 74 3e 20 | 20 20 20 20 20 20 20 49 | <uint> | I|
|00000ac0| 6e 64 69 72 65 63 74 65 | 64 20 28 65 6d 70 74 79 |ndirecte|d (empty|
|00000ad0| 29 20 74 65 78 74 0d 02 | 8a 2f f4 20 20 20 20 20 |) text..|./. |
|00000ae0| 20 20 20 20 20 20 20 20 | 20 20 20 20 7c 20 5b 20 | | | [ |
|00000af0| 63 68 61 72 20 5d 20 7b | 20 3c 73 75 62 20 6d 65 |char ] {| <sub me|
|00000b00| 6e 75 3e 20 7d 0d 02 94 | 3e f4 20 20 20 3c 73 75 |nu> }...|>. <su|
|00000b10| 62 20 6d 65 6e 75 3e 20 | 20 3a 3a 3d 20 27 89 27 |b menu> | ::= '.'|
|00000b20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 53 | | S|
|00000b30| 74 61 72 74 20 73 75 62 | 2d 6d 65 6e 75 20 28 31 |tart sub|-menu (1|
|00000b40| 33 37 29 0d 02 9e 49 f4 | 20 20 20 20 20 20 20 20 |37)...I.| |
|00000b50| 20 20 20 20 20 20 20 20 | 20 7c 20 27 bb 27 20 3c | | | '.' <|
|00000b60| 75 69 6e 74 3e 20 20 20 | 20 20 20 20 20 53 75 62 |uint> | Sub|
|00000b70| 2d 6d 65 6e 75 20 69 73 | 20 77 69 6e 64 6f 77 20 |-menu is| window |
|00000b80| 68 61 6e 64 6c 65 20 28 | 31 38 37 29 0d 02 a8 08 |handle (|187)....|
|00000b90| f4 20 20 3a 0d 02 b2 1f | f4 20 20 20 20 20 5b 5d |. :....|. []|
|00000ba0| 20 20 20 3d 3d 20 5b 31 | 2c 20 69 6e 66 69 6e 69 | == [1|, infini|
|00000bb0| 74 79 29 0d 02 bc 18 f4 | 20 20 20 20 20 7b 7d 20 |ty).....| {} |
|00000bc0| 20 20 3d 3d 20 5b 30 2c | 20 31 5d 0d 02 c6 1f f4 | == [0,| 1].....|
|00000bd0| 20 20 20 20 20 7b 7d 2a | 20 20 3d 3d 20 5b 30 2c | {}*| == [0,|
|00000be0| 20 69 6e 66 69 6e 69 74 | 79 29 0d 02 d0 18 f4 20 | infinit|y)..... |
|00000bf0| 20 20 20 20 7b 7d 6e 2a | 20 3d 3d 20 5b 30 2c 20 | {}n*| == [0, |
|00000c00| 6e 5d 0d 02 da 1c f4 20 | 20 20 20 20 7c 20 20 20 |n]..... | | |
|00000c10| 20 3d 3d 20 65 69 74 68 | 65 72 2c 20 6f 72 0d 02 | == eith|er, or..|
|00000c20| e4 1d f4 20 20 20 20 20 | 27 78 27 20 20 3d 3d 20 |... |'x' == |
|00000c30| 43 68 61 72 61 63 74 65 | 72 20 78 0d 02 ee 4c f4 |Characte|r x...L.|
|00000c40| 20 20 4e 42 3a 20 41 6c | 6c 20 69 74 65 6d 73 20 | NB: Al|l items |
|00000c50| 73 68 6f 75 6c 64 20 73 | 74 61 72 74 20 77 69 74 |should s|tart wit|
|00000c60| 68 20 61 20 63 61 70 69 | 74 61 6c 20 6c 65 74 74 |h a capi|tal lett|
|00000c70| 65 72 2c 20 61 6e 64 20 | 61 6e 79 20 6f 74 68 65 |er, and |any othe|
|00000c80| 72 20 77 6f 72 64 73 0d | 02 f8 4c f4 20 20 20 20 |r words.|..L. |
|00000c90| 20 20 73 68 6f 75 6c 64 | 20 62 65 20 6c 6f 77 65 | should| be lowe|
|00000ca0| 72 20 63 61 73 65 64 2c | 20 65 2e 67 2e 20 22 53 |r cased,| e.g. "S|
|00000cb0| 65 6c 65 63 74 69 6f 6e | 22 2c 20 22 53 65 6c 65 |election|", "Sele|
|00000cc0| 63 74 20 74 65 78 74 22 | 2e 20 20 54 68 75 73 20 |ct text"|. Thus |
|00000cd0| 74 68 65 0d 03 02 2f f4 | 20 20 20 20 20 20 66 6c |the.../.| fl|
|00000ce0| 61 67 73 20 77 69 6c 6c | 20 61 6c 77 61 79 73 20 |ags will| always |
|00000cf0| 62 65 20 65 61 73 79 20 | 74 6f 20 64 65 74 65 63 |be easy |to detec|
|00000d00| 74 2e 0d 03 0c 49 f4 20 | 20 20 20 20 20 54 68 65 |t....I. | The|
|00000d10| 20 69 20 6f 70 74 69 6f | 6e 20 69 73 20 75 73 65 | i optio|n is use|
|00000d20| 64 20 66 6f 72 20 77 72 | 69 74 61 62 6c 65 20 28 |d for wr|itable (|
|00000d30| 69 6e 69 74 69 61 6c 6c | 79 20 65 6d 70 74 79 29 |initiall|y empty)|
|00000d40| 20 69 63 6f 6e 73 2c 20 | 61 6e 64 0d 03 16 21 f4 | icons, |and...!.|
|00000d50| 20 20 20 20 20 20 6e 65 | 65 64 20 74 6f 20 62 65 | ne|ed to be|
|00000d60| 20 69 6e 64 69 72 65 63 | 74 65 64 2e 0d 03 20 05 | indirec|ted... .|
|00000d70| f4 0d 03 2a 05 3a 0d 03 | 34 1b dd 20 a4 5f 61 73 |...*.:..|4.. ._as|
|00000d80| 73 65 6d 62 6c 65 5f 43 | 6c 61 69 6d 5f 4d 65 6e |semble_C|laim_Men|
|00000d90| 75 0d 03 3e 32 ea 20 69 | 6e 64 2c 20 72 6f 76 65 |u..>2. i|nd, rove|
|00000da0| 2c 20 6d 65 6e 75 5f 73 | 74 72 69 6e 67 2c 20 6e |, menu_s|tring, n|
|00000db0| 5f 69 74 65 6d 73 2c 20 | 6d 2c 20 6d 61 78 77 69 |_items, |m, maxwi|
|00000dc0| 64 74 68 0d 03 48 3f ea | 20 66 2c 20 66 6c 61 67 |dth..H?.| f, flag|
|00000dd0| 73 2c 20 69 74 65 6d 5f | 73 74 72 69 6e 67 2c 20 |s, item_|string, |
|00000de0| 73 75 62 5f 6d 65 6e 75 | 2c 20 69 6e 64 5f 77 72 |sub_menu|, ind_wr|
|00000df0| 69 74 65 2c 20 70 72 6f | 63 65 73 73 5f 66 6c 61 |ite, pro|cess_fla|
|00000e00| 67 73 0d 03 52 47 ea 20 | 6d 65 6e 75 5f 73 70 2c |gs..RG. |menu_sp,|
|00000e10| 20 6d 65 6e 75 5f 64 65 | 66 5f 62 61 73 65 2c 20 | menu_de|f_base, |
|00000e20| 6d 65 6e 75 5f 64 65 66 | 5f 65 6e 64 2c 20 6d 65 |menu_def|_end, me|
|00000e30| 6e 75 5f 69 6e 64 5f 62 | 61 73 65 2c 20 6d 65 6e |nu_ind_b|ase, men|
|00000e40| 75 5f 69 6e 64 5f 65 6e | 64 0d 03 5c 46 ea 20 64 |u_ind_en|d..\F. d|
|00000e50| 65 66 5f 6f 76 65 72 66 | 6c 6f 77 2c 20 69 6e 64 |ef_overf|low, ind|
|00000e60| 5f 6f 76 65 72 66 6c 6f | 77 2c 20 62 61 64 5f 69 |_overflo|w, bad_i|
|00000e70| 74 65 6d 5f 61 66 74 65 | 72 5f 31 38 37 2c 20 62 |tem_afte|r_187, b|
|00000e80| 61 64 5f 68 65 61 64 65 | 72 2c 20 71 75 69 74 0d |ad_heade|r, quit.|
|00000e90| 03 66 3c ea 20 6c 6f 6f | 70 2c 20 6e 6f 74 5f 31 |.f<. loo|p, not_1|
|00000ea0| 38 37 2c 20 70 72 6f 63 | 65 73 73 2c 20 69 6e 64 |87, proc|ess, ind|
|00000eb0| 69 72 65 63 74 5f 64 61 | 74 61 2c 20 69 6e 64 69 |irect_da|ta, indi|
|00000ec0| 72 65 63 74 65 64 5f 69 | 74 65 6d 0d 03 70 07 ea |rected_i|tem..p..|
|00000ed0| 20 85 0d 03 7a 36 ee 20 | 85 20 ea 20 f7 20 85 20 | ...z6. |. . . . |
|00000ee0| 20 3a 20 20 f2 5f 65 28 | 20 22 25 2e 4d 65 6e 75 | : ._e(| "%.Menu|
|00000ef0| 3a 20 61 73 73 65 6d 62 | 6c 65 5f 43 6c 61 69 6d |: assemb|le_Claim|
|00000f00| 5f 4d 65 6e 75 22 20 29 | 0d 03 84 05 3a 0d 03 8e |_Menu" )|....:...|
|00000f10| 31 20 20 f2 5f 64 65 63 | 6c 61 72 65 5f 6c 6f 63 |1 ._dec|lare_loc|
|00000f20| 61 6c 5f 6c 61 62 65 6c | 28 20 22 6e 6f 74 5f 31 |al_label|( "not_1|
|00000f30| 38 37 22 2c 20 6e 6f 74 | 5f 31 38 37 20 29 0d 03 |87", not|_187 )..|
|00000f40| 98 31 20 20 f2 5f 64 65 | 63 6c 61 72 65 5f 6c 6f |.1 ._de|clare_lo|
|00000f50| 63 61 6c 5f 6c 61 62 65 | 6c 28 20 22 70 72 6f 63 |cal_labe|l( "proc|
|00000f60| 65 73 73 22 2c 20 70 72 | 6f 63 65 73 73 20 29 0d |ess", pr|ocess ).|
|00000f70| 03 a2 3d 20 20 f2 5f 64 | 65 63 6c 61 72 65 5f 6c |..= ._d|eclare_l|
|00000f80| 6f 63 61 6c 5f 6c 61 62 | 65 6c 28 20 22 70 72 6f |ocal_lab|el( "pro|
|00000f90| 63 65 73 73 5f 66 6c 61 | 67 73 22 2c 20 70 72 6f |cess_fla|gs", pro|
|00000fa0| 63 65 73 73 5f 66 6c 61 | 67 73 20 29 0d 03 ac 3d |cess_fla|gs )...=|
|00000fb0| 20 20 f2 5f 64 65 63 6c | 61 72 65 5f 6c 6f 63 61 | ._decl|are_loca|
|00000fc0| 6c 5f 6c 61 62 65 6c 28 | 20 22 69 6e 64 69 72 65 |l_label(| "indire|
|00000fd0| 63 74 5f 64 61 74 61 22 | 2c 20 69 6e 64 69 72 65 |ct_data"|, indire|
|00000fe0| 63 74 5f 64 61 74 61 20 | 29 0d 03 b6 41 20 20 f2 |ct_data |)...A .|
|00000ff0| 5f 64 65 63 6c 61 72 65 | 5f 6c 6f 63 61 6c 5f 6c |_declare|_local_l|
|00001000| 61 62 65 6c 28 20 22 69 | 6e 64 69 72 65 63 74 65 |abel( "i|ndirecte|
|00001010| 64 5f 69 74 65 6d 22 2c | 20 69 6e 64 69 72 65 63 |d_item",| indirec|
|00001020| 74 65 64 5f 69 74 65 6d | 20 29 0d 03 c0 05 3a 0d |ted_item| )....:.|
|00001030| 03 ca 22 20 20 f2 5f 61 | 73 73 65 6d 62 6c 65 5f |.." ._a|ssemble_|
|00001040| 6c 69 62 72 61 72 79 28 | 20 22 61 74 6f 69 22 20 |library(| "atoi" |
|00001050| 29 0d 03 d4 24 20 20 f2 | 5f 61 73 73 65 6d 62 6c |)...$ .|_assembl|
|00001060| 65 5f 6c 69 62 72 61 72 | 79 28 20 22 73 74 72 63 |e_librar|y( "strc|
|00001070| 68 72 22 20 29 0d 03 de | 24 20 20 f2 5f 61 73 73 |hr" )...|$ ._ass|
|00001080| 65 6d 62 6c 65 5f 6c 69 | 62 72 61 72 79 28 20 22 |emble_li|brary( "|
|00001090| 73 74 72 63 70 79 22 20 | 29 0d 03 e8 24 20 20 f2 |strcpy" |)...$ .|
|000010a0| 5f 61 73 73 65 6d 62 6c | 65 5f 6c 69 62 72 61 72 |_assembl|e_librar|
|000010b0| 79 28 20 22 73 74 72 6c | 65 6e 22 20 29 0d 03 f2 |y( "strl|en" )...|
|000010c0| 25 20 20 f2 5f 61 73 73 | 65 6d 62 6c 65 5f 6c 69 |% ._ass|emble_li|
|000010d0| 62 72 61 72 79 28 20 22 | 73 74 72 6e 63 70 79 22 |brary( "|strncpy"|
|000010e0| 20 29 0d 03 fc 05 3a 0d | 04 06 20 20 20 20 20 20 | )....:.|.. |
|000010f0| 20 20 20 69 6e 64 20 20 | 20 20 20 20 20 20 20 20 | ind | |
|00001100| 20 20 20 3d 20 31 32 0d | 04 10 20 20 20 20 20 20 | = 12.|.. |
|00001110| 20 20 20 72 6f 76 65 20 | 20 20 20 20 20 20 20 20 | rove | |
|00001120| 20 20 20 3d 20 31 31 0d | 04 1a 20 20 20 20 20 20 | = 11.|.. |
|00001130| 20 20 20 6d 65 6e 75 5f | 73 74 72 69 6e 67 20 20 | menu_|string |
|00001140| 20 20 20 3d 20 31 30 0d | 04 24 1f 20 20 20 20 20 | = 10.|.$. |
|00001150| 20 20 20 6e 5f 69 74 65 | 6d 73 20 20 20 20 20 20 | n_ite|ms |
|00001160| 20 20 20 3d 20 39 0d 04 | 2e 1f 20 20 20 20 20 20 | = 9..|.. |
|00001170| 20 20 6d 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | m | |
|00001180| 20 20 3d 20 38 0d 04 38 | 1f 20 20 20 20 20 20 20 | = 8..8|. |
|00001190| 20 6d 61 78 77 69 64 74 | 68 20 20 20 20 20 20 20 | maxwidt|h |
|000011a0| 20 3d 20 37 0d 04 42 1f | 20 20 20 20 20 20 20 20 | = 7..B.| |
|000011b0| 69 74 65 6d 5f 73 74 72 | 69 6e 67 20 20 20 20 20 |item_str|ing |
|000011c0| 3d 20 36 0d 04 4c 1f 20 | 20 20 20 20 20 20 20 73 |= 6..L. | s|
|000011d0| 75 62 5f 6d 65 6e 75 20 | 20 20 20 20 20 20 20 3d |ub_menu | =|
|000011e0| 20 35 0d 04 56 1f 20 20 | 20 20 20 20 20 20 66 20 | 5..V. | f |
|000011f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3d 20 | | = |
|00001200| 34 0d 04 60 1f 20 20 20 | 20 20 20 20 20 66 6c 61 |4..`. | fla|
|00001210| 67 73 20 20 20 20 20 20 | 20 20 20 20 20 3d 20 33 |gs | = 3|
|00001220| 0d 04 6a 0e 5b 4f 50 54 | 20 70 61 73 73 25 0d 04 |..j.[OPT| pass%..|
|00001230| 74 3f a4 5f 4d 65 6e 75 | 5f 45 72 72 6f 72 28 20 |t?._Menu|_Error( |
|00001240| 64 65 66 5f 6f 76 65 72 | 66 6c 6f 77 2c 20 22 4d |def_over|flow, "M|
|00001250| 65 6e 75 20 64 65 66 69 | 6e 69 74 69 6f 6e 20 6f |enu defi|nition o|
|00001260| 76 65 72 66 6c 6f 77 65 | 64 2e 22 20 29 0d 04 7e |verflowe|d." )..~|
|00001270| 41 a4 5f 4d 65 6e 75 5f | 45 72 72 6f 72 28 20 69 |A._Menu_|Error( i|
|00001280| 6e 5f 6f 76 65 72 66 6c | 6f 77 2c 20 22 4d 65 6e |n_overfl|ow, "Men|
|00001290| 75 20 69 6e 64 69 72 65 | 63 74 20 64 61 74 61 20 |u indire|ct data |
|000012a0| 6f 76 65 72 66 6c 6f 77 | 65 64 2e 22 20 29 0d 04 |overflow|ed." )..|
|000012b0| 88 40 a4 5f 4d 65 6e 75 | 5f 45 72 72 6f 72 28 20 |.@._Menu|_Error( |
|000012c0| 62 61 64 5f 69 74 65 6d | 5f 61 66 74 65 72 5f 31 |bad_item|_after_1|
|000012d0| 38 37 2c 20 22 42 61 64 | 20 6d 65 6e 75 20 69 74 |87, "Bad| menu it|
|000012e0| 65 6d 20 61 66 74 65 72 | 20 bb 2e 22 20 29 0d 04 |em after| .." )..|
|000012f0| 92 32 a4 5f 4d 65 6e 75 | 5f 45 72 72 6f 72 28 20 |.2._Menu|_Error( |
|00001300| 62 61 64 5f 68 65 61 64 | 65 72 2c 20 22 42 61 64 |bad_head|er, "Bad|
|00001310| 20 6d 65 6e 75 20 68 65 | 61 64 65 72 2e 22 20 29 | menu he|ader." )|
|00001320| 0d 04 9c 11 20 20 20 20 | 20 20 20 20 41 4c 49 47 |.... | ALIG|
|00001330| 4e 0d 04 a6 25 2e 6d 65 | 6e 75 5f 73 70 20 20 20 |N...%.me|nu_sp |
|00001340| 20 20 20 20 20 45 51 55 | 44 20 20 20 20 26 31 39 | EQU|D &19|
|00001350| 36 39 31 37 30 34 0d 04 | b0 21 2e 6d 65 6e 75 5f |691704..|.!.menu_|
|00001360| 64 65 66 5f 62 61 73 65 | 20 20 45 51 55 44 20 20 |def_base| EQUD |
|00001370| 20 20 6d 65 6e 75 25 0d | 04 ba 3a 2e 6d 65 6e 75 | menu%.|..:.menu|
|00001380| 5f 64 65 66 5f 65 6e 64 | 20 20 20 45 51 55 44 20 |_def_end| EQUD |
|00001390| 20 20 20 6d 65 6e 75 25 | 20 2b 20 4d 65 6e 75 5f | menu%| + Menu_|
|000013a0| 44 65 66 69 6e 69 74 69 | 6f 6e 5f 4c 69 6d 69 74 |Definiti|on_Limit|
|000013b0| 25 0d 04 c4 2a 2e 6d 65 | 6e 75 5f 69 6e 64 5f 62 |%...*.me|nu_ind_b|
|000013c0| 61 73 65 20 20 45 51 55 | 44 20 20 20 20 6d 65 6e |ase EQU|D men|
|000013d0| 75 5f 69 6e 64 69 72 65 | 63 74 25 0d 04 ce 41 2e |u_indire|ct%...A.|
|000013e0| 6d 65 6e 75 5f 69 6e 64 | 5f 65 6e 64 20 20 20 45 |menu_ind|_end E|
|000013f0| 51 55 44 20 20 20 20 6d | 65 6e 75 5f 69 6e 64 69 |QUD m|enu_indi|
|00001400| 72 65 63 74 25 20 2b 20 | 4d 65 6e 75 5f 49 6e 64 |rect% + |Menu_Ind|
|00001410| 69 72 65 63 74 5f 4c 69 | 6d 69 74 25 0d 04 d8 25 |irect_Li|mit%...%|
|00001420| 2e 69 6e 64 5f 77 72 69 | 74 65 20 20 20 20 20 20 |.ind_wri|te |
|00001430| 45 51 55 44 20 20 20 20 | 26 31 37 34 31 39 36 39 |EQUD |&1741969|
|00001440| 30 0d 04 e2 4c 5c 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |0...L\--|--------|
|00001450| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001460| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001470| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001480| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 04 ec |--------|-----...|
|00001490| 05 5c 0d 04 f6 42 5c 20 | 20 20 20 20 20 20 49 4e |.\...B\ | IN|
|000014a0| 20 20 20 20 20 20 52 30 | 20 5e 3d 20 4e 75 6c 6c | R0| ^= Null|
|000014b0| 2d 74 65 72 6d 69 6e 61 | 74 65 64 20 73 74 72 69 |-termina|ted stri|
|000014c0| 6e 67 28 73 29 20 74 6f | 20 64 65 66 69 6e 65 20 |ng(s) to| define |
|000014d0| 74 68 65 6d 0d 05 00 46 | 5c 20 20 20 20 20 20 20 |them...F|\ |
|000014e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 6d 65 | | me|
|000014f0| 6e 75 24 2c 73 75 62 6d | 65 6e 75 24 2c 73 75 62 |nu$,subm|enu$,sub|
|00001500| 6d 65 6e 75 24 2c 2e 2e | 2e 20 69 6e 20 6f 72 64 |menu$,..|. in ord|
|00001510| 65 72 20 6e 65 65 64 65 | 64 2e 0d 05 0a 4d 5c 20 |er neede|d....M\ |
|00001520| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 52 31 | | R1|
|00001530| 20 5e 3d 20 49 6e 64 69 | 72 65 63 74 65 64 20 77 | ^= Indi|rected w|
|00001540| 72 69 74 74 61 62 6c 65 | 20 69 63 6f 6e 20 61 64 |rittable| icon ad|
|00001550| 64 72 65 73 73 20 6c 69 | 73 74 20 28 6f 6e 6c 79 |dress li|st (only|
|00001560| 20 69 66 20 75 73 65 0d | 05 14 2c 5c 20 20 20 20 | if use.|..,\ |
|00001570| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001580| 20 27 69 27 20 69 74 65 | 6d 73 20 69 6e 20 6d 65 | 'i' ite|ms in me|
|00001590| 6e 75 2e 0d 05 1e 3f 5c | 20 20 20 20 20 20 20 4f |nu....?\| O|
|000015a0| 55 54 20 20 20 20 20 4d | 65 6e 75 20 63 72 65 61 |UT M|enu crea|
|000015b0| 74 65 64 2c 20 69 6e 74 | 6f 20 67 6c 6f 62 61 6c |ted, int|o global|
|000015c0| 20 6d 65 6e 75 20 73 70 | 61 63 65 2c 20 6d 65 6e | menu sp|ace, men|
|000015d0| 75 25 0d 05 28 40 5c 20 | 20 20 20 20 20 20 20 20 |u%..(@\ | |
|000015e0| 20 20 20 20 20 20 45 72 | 72 6f 72 20 3d 3e 20 47 | Er|ror => G|
|000015f0| 6c 6f 62 61 6c 5f 45 72 | 72 6f 72 5f 42 6c 6f 63 |lobal_Er|ror_Bloc|
|00001600| 6b 20 28 65 72 72 6f 72 | 20 6e 75 6d 62 65 72 20 |k (error| number |
|00001610| 31 29 0d 05 32 1a 5c 20 | 20 20 20 20 20 20 42 41 |1)..2.\ | BA|
|00001620| 44 20 20 20 20 20 28 6e | 6f 6e 65 29 0d 05 3c 18 |D (n|one)..<.|
|00001630| 5c 20 20 20 20 20 20 20 | 46 4c 41 47 53 20 20 20 |\ |FLAGS |
|00001640| 4c 69 6e 6b 0d 05 46 32 | 5c 20 20 20 20 20 20 20 |Link..F2|\ |
|00001650| 4e 42 20 20 20 20 20 20 | 54 68 69 73 20 72 6f 75 |NB |This rou|
|00001660| 74 69 6e 65 20 69 73 20 | 6e 6f 74 20 72 65 65 6e |tine is |not reen|
|00001670| 74 72 61 6e 74 2e 0d 05 | 50 11 20 20 20 20 20 20 |trant...|P. |
|00001680| 20 20 41 4c 49 47 4e 0d | 05 5a 0f 2e 43 6c 61 69 | ALIGN.|.Z..Clai|
|00001690| 6d 5f 4d 65 6e 75 0d 05 | 64 29 20 20 20 20 20 20 |m_Menu..|d) |
|000016a0| 20 20 53 54 4d 46 44 20 | 20 20 28 73 70 29 21 2c | STMFD | (sp)!,|
|000016b0| 20 7b 52 30 2d 52 31 32 | 2c 20 6c 69 6e 6b 7d 0d | {R0-R12|, link}.|
|000016c0| 05 6e 1f 20 20 20 20 20 | 20 20 20 53 54 52 20 20 |.n. | STR |
|000016d0| 20 20 20 73 70 2c 20 6d | 65 6e 75 5f 73 70 0d 05 | sp, m|enu_sp..|
|000016e0| 78 44 20 20 20 20 20 20 | 20 20 53 54 52 20 20 20 |xD | STR |
|000016f0| 20 20 52 31 2c 20 69 6e | 64 5f 77 72 69 74 65 20 | R1, in|d_write |
|00001700| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001710| 20 20 5c 20 46 6f 72 20 | 27 69 27 20 69 74 65 6d | \ For |'i' item|
|00001720| 73 2e 0d 05 82 26 20 20 | 20 20 20 20 20 20 4c 44 |s....& | LD|
|00001730| 52 20 20 20 20 20 69 6e | 64 2c 20 6d 65 6e 75 5f |R in|d, menu_|
|00001740| 69 6e 64 5f 62 61 73 65 | 0d 05 8c 27 20 20 20 20 |ind_base|...' |
|00001750| 20 20 20 20 4c 44 52 20 | 20 20 20 20 72 6f 76 65 | LDR | rove|
|00001760| 2c 20 6d 65 6e 75 5f 64 | 65 66 5f 62 61 73 65 0d |, menu_d|ef_base.|
|00001770| 05 96 23 20 20 20 20 20 | 20 20 20 4d 4f 56 20 20 |..# | MOV |
|00001780| 20 20 20 6d 65 6e 75 5f | 73 74 72 69 6e 67 2c 20 | menu_|string, |
|00001790| 52 30 0d 05 a0 21 20 20 | 20 20 20 20 20 20 42 4c |R0...! | BL|
|000017a0| 20 20 20 20 20 20 44 65 | 66 69 6e 65 5f 41 5f 4d | De|fine_A_M|
|000017b0| 65 6e 75 0d 05 aa 28 20 | 20 20 20 20 20 20 20 4c |enu...( | L|
|000017c0| 44 4d 46 44 20 20 20 28 | 73 70 29 21 2c 20 7b 52 |DMFD (|sp)!, {R|
|000017d0| 30 2d 52 31 32 2c 20 70 | 63 7d 5e 0d 05 b4 09 2e |0-R12, p|c}^.....|
|000017e0| 71 75 69 74 0d 05 be 1f | 20 20 20 20 20 20 20 20 |quit....| |
|000017f0| 4c 44 52 20 20 20 20 20 | 73 70 2c 20 6d 65 6e 75 |LDR |sp, menu|
|00001800| 5f 73 70 0d 05 c8 2c 20 | 20 20 20 20 20 20 20 42 |_sp..., | B|
|00001810| 4c 20 20 20 20 20 20 57 | 72 69 74 65 5f 47 6c 6f |L W|rite_Glo|
|00001820| 62 61 6c 5f 45 72 72 6f | 72 5f 42 6c 6f 63 6b 0d |bal_Erro|r_Block.|
|00001830| 05 d2 28 20 20 20 20 20 | 20 20 20 4c 44 4d 46 44 |..( | LDMFD|
|00001840| 20 20 20 28 73 70 29 21 | 2c 20 7b 52 30 2d 52 31 | (sp)!|, {R0-R1|
|00001850| 32 2c 20 70 63 7d 5e 0d | 05 dc 4d 5c 2d 2d 2d 2d |2, pc}^.|..M\----|
|00001860| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001870| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001880| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001890| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000018a0| 2d 2d 2d 2d 0d 05 e6 05 | 5c 0d 05 f0 34 5c 20 20 |----....|\...4\ |
|000018b0| 20 20 20 20 20 49 4e 20 | 20 20 20 20 20 69 6e 64 | IN | ind|
|000018c0| 2c 20 72 6f 76 65 2c 20 | 6d 65 6e 75 5f 73 74 72 |, rove, |menu_str|
|000018d0| 69 6e 67 20 3d 3d 20 53 | 65 74 20 75 70 0d 05 fa |ing == S|et up...|
|000018e0| 36 5c 20 20 20 20 20 20 | 20 4f 55 54 20 20 20 20 |6\ | OUT |
|000018f0| 20 5b 72 6f 76 65 2b 2b | 5d 20 3c 2d 2d 20 53 65 | [rove++|] <-- Se|
|00001900| 74 20 75 70 20 77 69 74 | 68 20 6d 65 6e 75 20 64 |t up wit|h menu d|
|00001910| 61 74 61 0d 06 04 49 5c | 20 20 20 20 20 20 20 20 |ata...I\| |
|00001920| 20 20 20 20 20 20 20 6d | 65 6e 75 5f 73 74 72 69 | m|enu_stri|
|00001930| 6e 67 20 3c 2d 2d 20 41 | 66 74 65 72 20 6c 61 73 |ng <-- A|fter las|
|00001940| 74 20 73 74 72 69 6e 67 | 20 75 73 65 64 20 74 6f |t string| used to|
|00001950| 20 64 65 66 69 6e 65 20 | 6d 65 6e 75 0d 06 0e 3e | define |menu...>|
|00001960| 5c 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |\ | |
|00001970| 5b 69 6e 64 2b 2b 5d 20 | 3c 2d 2d 20 53 65 74 20 |[ind++] |<-- Set |
|00001980| 75 70 20 77 69 74 68 20 | 6d 65 6e 75 20 69 6e 64 |up with |menu ind|
|00001990| 69 72 65 63 74 20 64 61 | 74 61 0d 06 18 2e 5c 20 |irect da|ta....\ |
|000019a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 45 72 | | Er|
|000019b0| 72 6f 72 20 3d 3e 20 65 | 78 69 74 20 74 68 72 6f |ror => e|xit thro|
|000019c0| 75 67 68 20 71 75 69 74 | 0d 06 22 18 5c 20 20 20 |ugh quit|..".\ |
|000019d0| 20 20 20 20 42 41 44 20 | 20 20 20 20 6c 69 6e 6b | BAD | link|
|000019e0| 0d 06 2c 18 5c 20 20 20 | 20 20 20 20 46 4c 41 47 |..,.\ | FLAG|
|000019f0| 53 20 20 20 4c 69 6e 6b | 0d 06 36 11 20 20 20 20 |S Link|..6. |
|00001a00| 20 20 20 20 41 4c 49 47 | 4e 0d 06 40 12 2e 44 65 | ALIG|N..@..De|
|00001a10| 66 69 6e 65 5f 41 5f 4d | 65 6e 75 0d 06 4a 28 20 |fine_A_M|enu..J( |
|00001a20| 20 20 20 20 20 20 20 53 | 54 4d 46 44 20 20 20 28 | S|TMFD (|
|00001a30| 73 70 29 21 2c 20 7b 52 | 30 2d 52 39 2c 20 6c 69 |sp)!, {R|0-R9, li|
|00001a40| 6e 6b 7d 0d 06 54 4b 20 | 20 20 20 20 20 20 20 53 |nk}..TK | S|
|00001a50| 54 4d 46 44 20 20 20 28 | 73 70 29 21 2c 20 7b 72 |TMFD (|sp)!, {r|
|00001a60| 6f 76 65 7d 20 20 20 20 | 20 20 20 20 20 20 20 5c |ove} | \|
|00001a70| 20 52 65 6d 65 6d 62 65 | 72 20 6d 65 6e 75 20 68 | Remembe|r menu h|
|00001a80| 65 61 64 65 72 20 61 64 | 64 72 65 73 73 2e 0d 06 |eader ad|dress...|
|00001a90| 5e 41 20 20 20 20 20 20 | 20 20 42 4c 20 20 20 20 |^A | BL |
|00001aa0| 20 20 44 65 66 69 6e 65 | 5f 41 5f 4d 65 6e 75 5f | Define|_A_Menu_|
|00001ab0| 48 65 61 64 65 72 20 20 | 20 20 5c 20 52 30 2c 20 |Header | \ R0, |
|00001ac0| 6d 2c 20 72 6f 76 65 20 | 3c 2d 2d 20 53 65 74 0d |m, rove |<-- Set.|
|00001ad0| 06 68 1a 20 20 20 20 20 | 20 20 20 4d 4f 56 20 20 |.h. | MOV |
|00001ae0| 20 20 20 52 32 2c 20 52 | 30 0d 06 72 1f 20 20 20 | R2, R|0..r. |
|00001af0| 20 20 20 20 20 4d 4f 56 | 20 20 20 20 20 6e 5f 69 | MOV| n_i|
|00001b00| 74 65 6d 73 2c 20 23 30 | 0d 06 7c 1f 20 20 20 20 |tems, #0|..|. |
|00001b10| 20 20 20 20 4d 4f 56 20 | 20 20 20 20 52 31 2c 20 | MOV | R1, |
|00001b20| 23 97 28 22 98 22 29 0d | 06 86 09 2e 6c 6f 6f 70 |#.(".").|....loop|
|00001b30| 0d 06 90 43 20 20 20 20 | 20 20 20 20 42 4c 20 20 |...C | BL |
|00001b40| 20 20 20 20 73 74 72 63 | 68 72 20 20 20 20 20 20 | strc|hr |
|00001b50| 20 20 20 20 20 20 20 20 | 20 20 20 20 5c 20 52 30 | | \ R0|
|00001b60| 20 3c 2d 2d 20 55 70 64 | 61 74 65 64 20 2f 20 7a | <-- Upd|ated / z|
|00001b70| 65 72 6f 0d 06 9a 28 20 | 20 20 20 20 20 20 20 41 |ero...( | A|
|00001b80| 44 44 20 20 20 20 20 6e | 5f 69 74 65 6d 73 2c 20 |DD n|_items, |
|00001b90| 6e 5f 69 74 65 6d 73 2c | 20 23 31 0d 06 a4 1a 20 |n_items,| #1.... |
|00001ba0| 20 20 20 20 20 20 20 54 | 45 51 20 20 20 20 20 52 | T|EQ R|
|00001bb0| 30 2c 20 23 30 0d 06 ae | 18 20 20 20 20 20 20 20 |0, #0...|. |
|00001bc0| 20 42 4e 45 20 20 20 20 | 20 6c 6f 6f 70 0d 06 b8 | BNE | loop...|
|00001bd0| 1b 20 20 20 20 20 20 20 | 20 4d 4f 56 20 20 20 20 |. | MOV |
|00001be0| 20 52 30 2c 20 23 32 34 | 0d 06 c2 2b 20 20 20 20 | R0, #24|...+ |
|00001bf0| 20 20 20 20 4d 4c 41 20 | 20 20 20 20 72 6f 76 65 | MLA | rove|
|00001c00| 2c 20 6e 5f 69 74 65 6d | 73 2c 20 52 30 2c 20 72 |, n_item|s, R0, r|
|00001c10| 6f 76 65 0d 06 cc 24 20 | 20 20 20 20 20 20 20 4c |ove...$ | L|
|00001c20| 44 52 20 20 20 20 20 52 | 30 2c 20 6d 65 6e 75 5f |DR R|0, menu_|
|00001c30| 64 65 66 5f 65 6e 64 0d | 06 d6 1c 20 20 20 20 20 |def_end.|... |
|00001c40| 20 20 20 43 4d 50 20 20 | 20 20 20 72 6f 76 65 2c | CMP | rove,|
|00001c50| 20 52 30 0d 06 e0 3e 20 | 20 20 20 20 20 20 20 42 | R0...> | B|
|00001c60| 48 53 20 20 20 20 20 64 | 65 66 5f 6f 76 65 72 66 |HS d|ef_overf|
|00001c70| 6c 6f 77 20 20 20 20 20 | 20 20 20 20 20 20 20 5c |low | \|
|00001c80| 20 48 61 6e 64 6c 65 20 | 6f 76 65 72 66 6c 6f 77 | Handle |overflow|
|00001c90| 2e 0d 06 ea 1a 20 20 20 | 20 20 20 20 20 4d 4f 56 |..... | MOV|
|00001ca0| 20 20 20 20 20 52 30 2c | 20 52 32 0d 06 f4 09 2e | R0,| R2.....|
|00001cb0| 6c 6f 6f 70 0d 06 fe 42 | 20 20 20 20 20 20 20 20 |loop...B| |
|00001cc0| 42 4c 20 20 20 20 20 20 | 44 65 66 69 6e 65 5f 41 |BL |Define_A|
|00001cd0| 5f 4d 65 6e 75 5f 49 74 | 65 6d 20 20 20 20 20 20 |_Menu_It|em |
|00001ce0| 5c 20 44 65 66 69 6e 65 | 20 69 74 2c 20 50 53 52 |\ Define| it, PSR|
|00001cf0| 5f 5a 20 73 65 74 0d 07 | 08 18 20 20 20 20 20 20 |_Z set..|.. |
|00001d00| 20 20 42 4e 45 20 20 20 | 20 20 6c 6f 6f 70 0d 07 | BNE | loop..|
|00001d10| 12 42 20 20 20 20 20 20 | 20 20 4c 44 4d 46 44 20 |.B | LDMFD |
|00001d20| 20 20 28 73 70 29 21 2c | 20 7b 52 30 7d 20 20 20 | (sp)!,| {R0} |
|00001d30| 20 20 20 20 20 20 20 20 | 20 20 5c 20 4d 65 6e 75 | | \ Menu|
|00001d40| 20 68 65 61 64 65 72 20 | 61 64 64 72 65 73 73 2e | header |address.|
|00001d50| 0d 07 1c 28 20 20 20 20 | 20 20 20 20 4d 4f 56 20 |...( | MOV |
|00001d60| 20 20 20 20 52 31 2c 20 | 6d 61 78 77 69 64 74 68 | R1, |maxwidth|
|00001d70| 2c 20 41 53 4c 20 23 34 | 0d 07 26 4e 20 20 20 20 |, ASL #4|..&N |
|00001d80| 20 20 20 20 41 44 44 20 | 20 20 20 20 52 31 2c 20 | ADD | R1, |
|00001d90| 52 31 2c 20 23 38 20 20 | 20 20 20 20 20 20 20 20 |R1, #8 | |
|00001da0| 20 20 20 20 5c 20 4f 53 | 20 77 69 64 74 68 20 3c | \ OS| width <|
|00001db0| 2d 2d 20 28 63 68 61 72 | 20 77 69 64 74 68 29 2a |-- (char| width)*|
|00001dc0| 31 36 20 2b 20 38 0d 07 | 30 43 20 20 20 20 20 20 |16 + 8..|0C |
|00001dd0| 20 20 53 54 52 20 20 20 | 20 20 52 31 2c 20 5b 52 | STR | R1, [R|
|00001de0| 30 2c 20 23 31 36 5d 20 | 20 20 20 20 20 20 20 20 |0, #16] | |
|00001df0| 20 20 5c 20 53 74 6f 72 | 65 20 6d 61 78 20 6d 65 | \ Stor|e max me|
|00001e00| 6e 75 20 77 69 64 74 68 | 2e 0d 07 3a 27 20 20 20 |nu width|...:' |
|00001e10| 20 20 20 20 20 4c 44 4d | 46 44 20 20 20 28 73 70 | LDM|FD (sp|
|00001e20| 29 21 2c 20 7b 52 30 2d | 52 39 2c 20 70 63 7d 5e |)!, {R0-|R9, pc}^|
|00001e30| 0d 07 44 4d 5c 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..DM\---|--------|
|00001e40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001e50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001e60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001e70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 07 4e |--------|-----..N|
|00001e80| 05 5c 0d 07 58 17 2e 44 | 65 66 69 6e 65 5f 41 5f |.\..X..D|efine_A_|
|00001e90| 4d 65 6e 75 5f 49 74 65 | 6d 0d 07 62 21 20 20 20 |Menu_Ite|m..b! |
|00001ea0| 20 20 20 20 20 53 54 4d | 46 44 20 20 20 28 73 70 | STM|FD (sp|
|00001eb0| 29 21 2c 20 7b 6c 69 6e | 6b 7d 0d 07 6c 23 20 20 |)!, {lin|k}..l# |
|00001ec0| 20 20 20 20 20 20 4d 4f | 56 20 20 20 20 20 69 74 | MO|V it|
|00001ed0| 65 6d 5f 73 74 72 69 6e | 67 2c 20 52 30 0d 07 76 |em_strin|g, R0..v|
|00001ee0| 1d 20 20 20 20 20 20 20 | 20 4d 4f 56 20 20 20 20 |. | MOV |
|00001ef0| 20 66 6c 61 67 73 2c 20 | 23 30 0d 07 80 39 20 20 | flags, |#0...9 |
|00001f00| 20 20 20 20 20 20 4d 4f | 56 20 20 20 20 20 66 2c | MO|V f,|
|00001f10| 20 23 25 30 30 30 30 30 | 31 31 31 30 30 30 30 30 | #%00000|11100000|
|00001f20| 30 30 30 30 30 30 30 30 | 30 30 30 30 30 30 30 30 |00000000|00000000|
|00001f30| 30 30 30 0d 07 8a 21 20 | 20 20 20 20 20 20 20 84 |000...! | .|
|00001f40| 52 20 20 20 20 20 66 2c | 20 66 2c 20 23 25 31 30 |R f,| f, #%10|
|00001f50| 30 30 30 31 0d 07 94 1f | 20 20 20 20 20 20 20 20 |0001....| |
|00001f60| 4d 4f 56 20 20 20 20 20 | 52 31 2c 20 23 97 28 22 |MOV |R1, #.("|
|00001f70| 98 22 29 0d 07 9e 1a 20 | 20 20 20 20 20 20 20 42 |.").... | B|
|00001f80| 4c 20 20 20 20 20 20 73 | 74 72 63 68 72 0d 07 a8 |L s|trchr...|
|00001f90| 1a 20 20 20 20 20 20 20 | 20 54 45 51 20 20 20 20 |. | TEQ |
|00001fa0| 20 52 30 2c 20 23 30 0d | 07 b2 28 20 20 20 20 20 | R0, #0.|..( |
|00001fb0| 20 20 20 84 52 45 51 20 | 20 20 66 6c 61 67 73 2c | .REQ | flags,|
|00001fc0| 20 66 6c 61 67 73 2c 20 | 23 31 20 3c 3c 20 37 0d | flags, |#1 << 7.|
|00001fd0| 07 bc 1a 20 20 20 20 20 | 20 20 20 4d 4f 56 4e 45 |... | MOVNE|
|00001fe0| 20 20 20 52 31 2c 20 23 | 30 0d 07 c6 45 20 20 20 | R1, #|0...E |
|00001ff0| 20 20 20 20 20 53 54 52 | 4e 45 42 20 20 52 31 2c | STR|NEB R1,|
|00002000| 20 5b 52 30 2c 20 23 2d | 31 5d 20 20 20 20 20 20 | [R0, #-|1] |
|00002010| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 5c 20 5a | | \ Z|
|00002020| 65 72 6f 20 74 65 72 6d | 69 6e 61 74 65 2e 0d 07 |ero term|inate...|
|00002030| d0 09 2e 6c 6f 6f 70 0d | 07 da 29 20 20 20 20 20 |...loop.|..) |
|00002040| 20 20 20 4c 44 52 42 20 | 20 20 20 52 31 2c 20 5b | LDRB | R1, [|
|00002050| 69 74 65 6d 5f 73 74 72 | 69 6e 67 5d 2c 20 23 31 |item_str|ing], #1|
|00002060| 0d 07 e4 34 20 20 20 54 | 45 51 20 52 31 2c 23 97 |...4 T|EQ R1,#.|
|00002070| 28 22 74 22 29 3a 82 45 | 51 20 66 6c 61 67 73 2c |("t"):.E|Q flags,|
|00002080| 66 6c 61 67 73 2c 23 31 | 3c 3c 30 3a 42 45 51 20 |flags,#1|<<0:BEQ |
|00002090| 6c 6f 6f 70 0d 07 ee 34 | 20 20 20 54 45 51 20 52 |loop...4| TEQ R|
|000020a0| 31 2c 23 97 28 22 64 22 | 29 3a 82 45 51 20 66 6c |1,#.("d"|):.EQ fl|
|000020b0| 61 67 73 2c 66 6c 61 67 | 73 2c 23 31 3c 3c 31 3a |ags,flag|s,#1<<1:|
|000020c0| 42 45 51 20 6c 6f 6f 70 | 0d 07 f8 34 20 20 20 54 |BEQ loop|...4 T|
|000020d0| 45 51 20 52 31 2c 23 97 | 28 22 77 22 29 3a 82 45 |EQ R1,#.|("w"):.E|
|000020e0| 51 20 66 6c 61 67 73 2c | 66 6c 61 67 73 2c 23 31 |Q flags,|flags,#1|
|000020f0| 3c 3c 32 3a 42 45 51 20 | 6c 6f 6f 70 0d 08 02 34 |<<2:BEQ |loop...4|
|00002100| 20 20 20 54 45 51 20 52 | 31 2c 23 97 28 22 67 22 | TEQ R|1,#.("g"|
|00002110| 29 3a 82 45 51 20 66 6c | 61 67 73 2c 66 6c 61 67 |):.EQ fl|ags,flag|
|00002120| 73 2c 23 31 3c 3c 33 3a | 42 45 51 20 6c 6f 6f 70 |s,#1<<3:|BEQ loop|
|00002130| 0d 08 0c 2d 20 20 20 54 | 45 51 20 52 31 2c 23 97 |...- T|EQ R1,#.|
|00002140| 28 22 73 22 29 3a 82 45 | 51 20 66 2c 66 2c 23 31 |("s"):.E|Q f,f,#1|
|00002150| 3c 3c 32 32 3a 42 45 51 | 20 6c 6f 6f 70 0d 08 16 |<<22:BEQ| loop...|
|00002160| 29 20 20 20 54 45 51 20 | 52 31 2c 23 97 28 22 69 |) TEQ |R1,#.("i|
|00002170| 22 29 3a 42 45 51 20 69 | 6e 64 69 72 65 63 74 65 |"):BEQ i|ndirecte|
|00002180| 64 5f 69 74 65 6d 0d 08 | 20 30 20 20 20 20 20 20 |d_item..| 0 |
|00002190| 20 20 53 55 42 20 20 20 | 20 20 69 74 65 6d 5f 73 | SUB | item_s|
|000021a0| 74 72 69 6e 67 2c 20 69 | 74 65 6d 5f 73 74 72 69 |tring, i|tem_stri|
|000021b0| 6e 67 2c 20 23 31 0d 08 | 2a 49 20 20 20 20 20 20 |ng, #1..|*I |
|000021c0| 20 20 53 54 52 20 20 20 | 20 20 66 6c 61 67 73 2c | STR | flags,|
|000021d0| 20 5b 6d 2c 20 23 30 5d | 20 20 20 20 20 20 20 20 | [m, #0]| |
|000021e0| 20 20 20 20 20 20 20 20 | 20 20 5c 20 53 74 6f 72 | | \ Stor|
|000021f0| 65 20 69 74 65 6d 73 27 | 20 66 6c 61 67 73 2e 0d |e items'| flags..|
|00002200| 08 34 47 20 20 20 20 20 | 20 20 20 53 54 4d 46 44 |.4G | STMFD|
|00002210| 20 20 20 28 73 70 29 21 | 2c 20 7b 52 30 7d 20 20 | (sp)!|, {R0} |
|00002220| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002230| 20 20 20 5c 20 4e 65 65 | 64 20 77 68 65 6e 20 72 | \ Nee|d when r|
|00002240| 65 74 75 72 6e 21 0d 08 | 3e 23 20 20 20 20 20 20 |eturn!..|># |
|00002250| 20 20 4d 4f 56 20 20 20 | 20 20 52 30 2c 20 69 74 | MOV | R0, it|
|00002260| 65 6d 5f 73 74 72 69 6e | 67 0d 08 48 1f 20 20 20 |em_strin|g..H. |
|00002270| 20 20 20 20 20 4d 4f 56 | 20 20 20 20 20 52 31 2c | MOV| R1,|
|00002280| 20 23 97 28 22 bb 22 29 | 0d 08 52 1a 20 20 20 20 | #.(".")|..R. |
|00002290| 20 20 20 20 42 4c 20 20 | 20 20 20 20 73 74 72 63 | BL | strc|
|000022a0| 68 72 0d 08 5c 1a 20 20 | 20 20 20 20 20 20 54 45 |hr..\. | TE|
|000022b0| 51 20 20 20 20 20 52 30 | 2c 20 23 30 0d 08 66 1b |Q R0|, #0..f.|
|000022c0| 20 20 20 20 20 20 20 20 | 42 45 51 20 20 20 20 20 | |BEQ |
|000022d0| 6e 6f 74 5f 31 38 37 0d | 08 70 1a 20 20 20 20 20 |not_187.|.p. |
|000022e0| 20 20 20 4d 4f 56 20 20 | 20 20 20 52 31 2c 20 23 | MOV | R1, #|
|000022f0| 30 0d 08 7a 4c 20 20 20 | 20 20 20 20 20 53 54 52 |0..zL | STR|
|00002300| 42 20 20 20 20 52 31 2c | 20 5b 52 30 2c 20 23 2d |B R1,| [R0, #-|
|00002310| 31 5d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |1] | |
|00002320| 20 20 20 20 20 5c 20 54 | 65 72 6d 69 6e 61 74 65 | \ T|erminate|
|00002330| 20 69 74 65 6d 20 73 74 | 72 69 6e 67 2e 0d 08 84 | item st|ring....|
|00002340| 18 20 20 20 20 20 20 20 | 20 42 4c 20 20 20 20 20 |. | BL |
|00002350| 20 61 74 6f 69 0d 08 8e | 20 20 20 20 20 20 20 20 | atoi...| |
|00002360| 20 4d 4f 56 20 20 20 20 | 20 73 75 62 5f 6d 65 6e | MOV | sub_men|
|00002370| 75 2c 20 52 30 0d 08 98 | 1b 20 20 20 20 20 20 20 |u, R0...|. |
|00002380| 20 42 20 20 20 20 20 20 | 20 70 72 6f 63 65 73 73 | B | process|
|00002390| 0d 08 a2 25 a4 5f 64 65 | 66 69 6e 65 5f 6c 6f 63 |...%._de|fine_loc|
|000023a0| 61 6c 5f 6c 61 62 65 6c | 28 20 22 6e 6f 74 5f 31 |al_label|( "not_1|
|000023b0| 38 37 22 20 29 0d 08 ac | 42 20 20 20 20 20 20 20 |87" )...|B |
|000023c0| 20 4d 56 4e 20 20 20 20 | 20 73 75 62 5f 6d 65 6e | MVN | sub_men|
|000023d0| 75 2c 20 23 30 20 20 20 | 20 20 20 20 20 20 20 20 |u, #0 | |
|000023e0| 20 20 20 20 20 20 20 20 | 20 5c 20 4e 6f 20 73 75 | | \ No su|
|000023f0| 62 2d 6d 65 6e 75 2e 0d | 08 b6 23 20 20 20 20 20 |b-menu..|..# |
|00002400| 20 20 20 4d 4f 56 20 20 | 20 20 20 52 30 2c 20 69 | MOV | R0, i|
|00002410| 74 65 6d 5f 73 74 72 69 | 6e 67 0d 08 c0 1f 20 20 |tem_stri|ng.... |
|00002420| 20 20 20 20 20 20 4d 4f | 56 20 20 20 20 20 52 31 | MO|V R1|
|00002430| 2c 20 23 97 28 22 89 22 | 29 0d 08 ca 1a 20 20 20 |, #.("."|).... |
|00002440| 20 20 20 20 20 42 4c 20 | 20 20 20 20 20 73 74 72 | BL | str|
|00002450| 63 68 72 0d 08 d4 1a 20 | 20 20 20 20 20 20 20 54 |chr.... | T|
|00002460| 45 51 20 20 20 20 20 52 | 30 2c 20 23 30 0d 08 de |EQ R|0, #0...|
|00002470| 1b 20 20 20 20 20 20 20 | 20 42 45 51 20 20 20 20 |. | BEQ |
|00002480| 20 70 72 6f 63 65 73 73 | 0d 08 e8 1a 20 20 20 20 | process|.... |
|00002490| 20 20 20 20 4d 4f 56 20 | 20 20 20 20 52 31 2c 20 | MOV | R1, |
|000024a0| 23 30 0d 08 f2 45 20 20 | 20 20 20 20 20 20 53 54 |#0...E | ST|
|000024b0| 52 42 20 20 20 20 52 31 | 2c 20 5b 52 30 2c 20 23 |RB R1|, [R0, #|
|000024c0| 2d 31 5d 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |-1] | |
|000024d0| 20 20 20 20 20 20 5c 20 | 5a 65 72 6f 20 74 65 72 | \ |Zero ter|
|000024e0| 6d 69 6e 61 74 65 2e 0d | 08 fc 4d 20 20 20 20 20 |minate..|..M |
|000024f0| 20 20 20 4d 4f 56 20 20 | 20 20 20 73 75 62 5f 6d | MOV | sub_m|
|00002500| 65 6e 75 2c 20 72 6f 76 | 65 20 20 20 20 20 20 20 |enu, rov|e |
|00002510| 20 20 20 20 20 20 20 20 | 20 20 20 5c 20 4e 6f 74 | | \ Not|
|00002520| 65 20 77 68 65 72 65 20 | 73 75 62 2d 6d 65 6e 75 |e where |sub-menu|
|00002530| 20 69 73 2e 0d 09 06 3e | 20 20 20 20 20 20 20 20 | is....>| |
|00002540| 42 4c 20 20 20 20 20 20 | 44 65 66 69 6e 65 5f 41 |BL |Define_A|
|00002550| 5f 4d 65 6e 75 20 20 20 | 20 20 20 20 20 20 20 20 |_Menu | |
|00002560| 20 20 20 20 20 20 20 20 | 5c 20 52 65 63 75 72 73 | |\ Recurs|
|00002570| 65 2e 0d 09 10 25 a4 5f | 64 65 66 69 6e 65 5f 6c |e....%._|define_l|
|00002580| 6f 63 61 6c 5f 6c 61 62 | 65 6c 28 20 22 70 72 6f |ocal_lab|el( "pro|
|00002590| 63 65 73 73 22 20 29 0d | 09 1a 23 20 20 20 20 20 |cess" ).|..# |
|000025a0| 20 20 20 4d 4f 56 20 20 | 20 20 20 52 30 2c 20 69 | MOV | R0, i|
|000025b0| 74 65 6d 5f 73 74 72 69 | 6e 67 0d 09 24 40 20 20 |tem_stri|ng..$@ |
|000025c0| 20 20 20 20 20 20 42 4c | 20 20 20 20 20 20 73 74 | BL| st|
|000025d0| 72 6c 65 6e 20 20 20 20 | 20 20 20 20 20 20 20 20 |rlen | |
|000025e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 5c 20 | | \ |
|000025f0| 52 30 20 3c 2d 2d 20 49 | 74 2e 0d 09 2e 20 20 20 |R0 <-- I|t.... |
|00002600| 20 20 20 20 20 20 43 4d | 50 20 20 20 20 20 52 30 | CM|P R0|
|00002610| 2c 20 6d 61 78 77 69 64 | 74 68 0d 09 38 47 20 20 |, maxwid|th..8G |
|00002620| 20 20 20 20 20 20 4d 4f | 56 47 54 20 20 20 6d 61 | MO|VGT ma|
|00002630| 78 77 69 64 74 68 2c 20 | 52 30 20 20 20 20 20 20 |xwidth, |R0 |
|00002640| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 5c 20 | | \ |
|00002650| 4d 61 69 6e 74 61 69 6e | 20 6d 61 78 77 69 64 74 |Maintain| maxwidt|
|00002660| 68 0d 09 42 1b 20 20 20 | 20 20 20 20 20 43 4d 50 |h..B. | CMP|
|00002670| 20 20 20 20 20 52 30 2c | 20 23 31 32 0d 09 4c 21 | R0,| #12..L!|
|00002680| 20 20 20 20 20 20 20 20 | 42 47 54 20 20 20 20 20 | |BGT |
|00002690| 69 6e 64 69 72 65 63 74 | 5f 64 61 74 61 0d 09 56 |indirect|_data..V|
|000026a0| 1e 20 20 20 20 20 20 20 | 20 41 44 44 20 20 20 20 |. | ADD |
|000026b0| 20 52 30 2c 20 6d 2c 20 | 23 31 32 0d 09 60 23 20 | R0, m, |#12..`# |
|000026c0| 20 20 20 20 20 20 20 4d | 4f 56 20 20 20 20 20 52 | M|OV R|
|000026d0| 31 2c 20 69 74 65 6d 5f | 73 74 72 69 6e 67 0d 09 |1, item_|string..|
|000026e0| 6a 1b 20 20 20 20 20 20 | 20 20 4d 4f 56 20 20 20 |j. | MOV |
|000026f0| 20 20 52 32 2c 20 23 31 | 32 0d 09 74 44 20 20 20 | R2, #1|2..tD |
|00002700| 20 20 20 20 20 42 4c 20 | 20 20 20 20 20 73 74 72 | BL | str|
|00002710| 6e 63 70 79 20 20 20 20 | 20 20 20 20 20 20 20 20 |ncpy | |
|00002720| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 5c 20 53 | | \ S|
|00002730| 74 6f 72 65 20 69 74 20 | 74 68 65 6e 2e 0d 09 7e |tore it |then...~|
|00002740| 21 20 20 20 20 20 20 20 | 20 42 20 20 20 20 20 20 |! | B |
|00002750| 20 70 72 6f 63 65 73 73 | 5f 66 6c 61 67 73 0d 09 | process|_flags..|
|00002760| 88 2b a4 5f 64 65 66 69 | 6e 65 5f 6c 6f 63 61 6c |.+._defi|ne_local|
|00002770| 5f 6c 61 62 65 6c 28 20 | 22 69 6e 64 69 72 65 63 |_label( |"indirec|
|00002780| 74 5f 64 61 74 61 22 20 | 29 0d 09 92 4a 20 20 20 |t_data" |)...J |
|00002790| 20 20 20 20 20 84 52 20 | 20 20 20 20 66 2c 20 66 | .R | f, f|
|000027a0| 2c 20 23 26 30 30 30 30 | 30 31 30 30 20 20 20 20 |, #&0000|0100 |
|000027b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 5c 20 49 6e | | \ In|
|000027c0| 64 69 72 65 63 74 65 64 | 20 6d 65 6e 75 20 69 74 |directed| menu it|
|000027d0| 65 6d 2e 0d 09 9c 1a 20 | 20 20 20 20 20 20 20 4d |em..... | M|
|000027e0| 4f 56 20 20 20 20 20 52 | 32 2c 20 52 30 0d 09 a6 |OV R|2, R0...|
|000027f0| 1f 20 20 20 20 20 20 20 | 20 41 44 44 20 20 20 20 |. | ADD |
|00002800| 20 52 30 2c 20 69 6e 64 | 2c 20 52 32 0d 09 b0 24 | R0, ind|, R2...$|
|00002810| 20 20 20 20 20 20 20 20 | 4c 44 52 20 20 20 20 20 | |LDR |
|00002820| 52 31 2c 20 6d 65 6e 75 | 5f 69 6e 64 5f 65 6e 64 |R1, menu|_ind_end|
|00002830| 0d 09 ba 1a 20 20 20 20 | 20 20 20 20 43 4d 50 20 |.... | CMP |
|00002840| 20 20 20 20 52 30 2c 20 | 52 31 0d 09 c4 46 20 20 | R0, |R1...F |
|00002850| 20 20 20 20 20 20 42 48 | 53 20 20 20 20 20 69 6e | BH|S in|
|00002860| 64 5f 6f 76 65 72 66 6c | 6f 77 20 20 20 20 20 20 |d_overfl|ow |
|00002870| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 5c 20 | | \ |
|00002880| 48 61 6e 64 6c 65 20 6f | 76 65 72 66 6c 6f 77 2e |Handle o|verflow.|
|00002890| 0d 09 ce 1b 20 20 20 20 | 20 20 20 20 4d 4f 56 20 |.... | MOV |
|000028a0| 20 20 20 20 52 30 2c 20 | 69 6e 64 0d 09 d8 23 20 | R0, |ind...# |
|000028b0| 20 20 20 20 20 20 20 4d | 4f 56 20 20 20 20 20 52 | M|OV R|
|000028c0| 31 2c 20 69 74 65 6d 5f | 73 74 72 69 6e 67 0d 09 |1, item_|string..|
|000028d0| e2 4d 20 20 20 20 20 20 | 20 20 42 4c 20 20 20 20 |.M | BL |
|000028e0| 20 20 73 74 72 63 70 79 | 20 20 20 20 20 20 20 20 | strcpy| |
|000028f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002900| 20 20 5c 20 50 75 74 20 | 69 6e 20 69 6e 64 69 72 | \ Put |in indir|
|00002910| 65 63 74 20 62 75 66 66 | 65 72 2e 0d 09 ec 21 20 |ect buff|er....! |
|00002920| 20 20 20 20 20 20 20 53 | 54 52 20 20 20 20 20 69 | S|TR i|
|00002930| 6e 64 2c 20 5b 6d 2c 20 | 23 31 32 5d 0d 09 f6 1a |nd, [m, |#12]....|
|00002940| 20 20 20 20 20 20 20 20 | 4d 56 4e 20 20 20 20 20 | |MVN |
|00002950| 52 31 2c 20 23 30 0d 0a | 00 4b 20 20 20 20 20 20 |R1, #0..|.K |
|00002960| 20 20 53 54 52 20 20 20 | 20 20 52 31 2c 20 5b 6d | STR | R1, [m|
|00002970| 2c 20 23 31 36 5d 20 20 | 20 20 20 20 20 20 20 20 |, #16] | |
|00002980| 20 20 20 20 20 20 20 20 | 20 20 5c 20 4e 6f 20 76 | | \ No v|
|00002990| 61 6c 69 64 61 74 69 6f | 6e 20 73 74 72 69 6e 67 |alidatio|n string|
|000029a0| 2e 0d 0a 0a 3d 20 20 20 | 20 20 20 20 20 53 54 52 |....= | STR|
|000029b0| 20 20 20 20 20 52 32 2c | 20 5b 6d 2c 20 23 32 30 | R2,| [m, #20|
|000029c0| 5d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |] | |
|000029d0| 20 20 20 20 20 5c 20 4c | 65 6e 67 74 68 2e 0d 0a | \ L|ength...|
|000029e0| 14 20 20 20 20 20 20 20 | 20 20 41 44 44 20 20 20 |. | ADD |
|000029f0| 20 20 69 6e 64 2c 20 69 | 6e 64 2c 20 52 32 0d 0a | ind, i|nd, R2..|
|00002a00| 1e 4b 20 20 20 20 20 20 | 20 20 41 44 44 20 20 20 |.K | ADD |
|00002a10| 20 20 69 6e 64 2c 20 69 | 6e 64 2c 20 23 31 20 20 | ind, i|nd, #1 |
|00002a20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002a30| 20 20 5c 20 53 6b 69 70 | 20 74 65 72 6d 69 6e 61 | \ Skip| termina|
|00002a40| 74 6f 72 20 62 79 74 65 | 2e 0d 0a 28 2b a4 5f 64 |tor byte|...(+._d|
|00002a50| 65 66 69 6e 65 5f 6c 6f | 63 61 6c 5f 6c 61 62 65 |efine_lo|cal_labe|
|00002a60| 6c 28 20 22 70 72 6f 63 | 65 73 73 5f 66 6c 61 67 |l( "proc|ess_flag|
|00002a70| 73 22 20 29 0d 0a 32 25 | 20 20 20 20 20 20 20 20 |s" )..2%| |
|00002a80| 53 54 52 20 20 20 20 20 | 73 75 62 5f 6d 65 6e 75 |STR |sub_menu|
|00002a90| 2c 20 5b 6d 2c 20 23 34 | 5d 0d 0a 3c 1e 20 20 20 |, [m, #4|]..<. |
|00002aa0| 20 20 20 20 20 53 54 52 | 20 20 20 20 20 66 2c 20 | STR| f, |
|00002ab0| 5b 6d 2c 20 23 38 5d 0d | 0a 46 3f 20 20 20 20 20 |[m, #8].|.F? |
|00002ac0| 20 20 20 41 44 44 20 20 | 20 20 20 6d 2c 20 6d 2c | ADD | m, m,|
|00002ad0| 20 23 32 34 20 20 20 20 | 20 20 20 20 20 20 20 20 | #24 | |
|00002ae0| 20 20 20 20 20 20 20 20 | 20 20 20 5c 20 4e 65 78 | | \ Nex|
|00002af0| 74 20 6f 6e 65 2e 0d 0a | 50 47 20 20 20 20 20 20 |t one...|PG |
|00002b00| 20 20 53 55 42 53 20 20 | 20 20 6e 5f 69 74 65 6d | SUBS | n_item|
|00002b10| 73 2c 20 6e 5f 69 74 65 | 6d 73 2c 20 23 31 20 20 |s, n_ite|ms, #1 |
|00002b20| 20 20 20 20 20 20 20 20 | 20 20 5c 20 52 65 74 75 | | \ Retu|
|00002b30| 72 6e 20 66 6c 61 67 73 | 20 73 65 74 2e 0d 0a 5a |rn flags| set...Z|
|00002b40| 23 20 20 20 20 20 20 20 | 20 4c 44 4d 46 44 20 20 |# | LDMFD |
|00002b50| 20 28 73 70 29 21 2c 20 | 7b 52 30 2c 20 70 63 7d | (sp)!, |{R0, pc}|
|00002b60| 0d 0a 64 05 5c 0d 0a 6e | 2d a4 5f 64 65 66 69 6e |..d.\..n|-._defin|
|00002b70| 65 5f 6c 6f 63 61 6c 5f | 6c 61 62 65 6c 28 20 22 |e_local_|label( "|
|00002b80| 69 6e 64 69 72 65 63 74 | 65 64 5f 69 74 65 6d 22 |indirect|ed_item"|
|00002b90| 20 29 0d 0a 78 49 20 20 | 20 20 20 20 20 20 53 54 | )..xI | ST|
|00002ba0| 52 20 20 20 20 20 66 6c | 61 67 73 2c 20 5b 6d 2c |R fl|ags, [m,|
|00002bb0| 20 23 30 5d 20 20 20 20 | 20 20 20 20 20 20 20 20 | #0] | |
|00002bc0| 20 20 20 20 20 20 5c 20 | 53 74 6f 72 65 20 69 74 | \ |Store it|
|00002bd0| 65 6d 73 27 20 66 6c 61 | 67 73 2e 0d 0a 82 47 20 |ems' fla|gs....G |
|00002be0| 20 20 20 20 20 20 20 53 | 54 4d 46 44 20 20 20 28 | S|TMFD (|
|00002bf0| 73 70 29 21 2c 20 7b 52 | 30 7d 20 20 20 20 20 20 |sp)!, {R|0} |
|00002c00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 5c | | \|
|00002c10| 20 4e 65 65 64 20 77 68 | 65 6e 20 72 65 74 75 72 | Need wh|en retur|
|00002c20| 6e 21 0d 0a 8c 4a 20 20 | 20 20 20 20 20 20 84 52 |n!...J | .R|
|00002c30| 20 20 20 20 20 66 2c 20 | 66 2c 20 23 26 30 30 30 | f, |f, #&000|
|00002c40| 30 30 31 30 30 20 20 20 | 20 20 20 20 20 20 20 20 |00100 | |
|00002c50| 20 20 20 20 20 5c 20 49 | 6e 64 69 72 65 63 74 65 | \ I|ndirecte|
|00002c60| 64 20 6d 65 6e 75 20 69 | 74 65 6d 2e 0d 0a 96 23 |d menu i|tem....#|
|00002c70| 20 20 20 20 20 20 20 20 | 4d 4f 56 20 20 20 20 20 | |MOV |
|00002c80| 52 30 2c 20 69 74 65 6d | 5f 73 74 72 69 6e 67 0d |R0, item|_string.|
|00002c90| 0a a0 4a 20 20 20 20 20 | 20 20 20 42 4c 20 20 20 |..J | BL |
|00002ca0| 20 20 20 61 74 6f 69 20 | 20 20 20 20 20 20 20 20 | atoi | |
|00002cb0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002cc0| 20 20 20 5c 20 52 30 20 | 3c 2d 2d 20 23 77 69 64 | \ R0 |<-- #wid|
|00002cd0| 74 68 20 6f 66 20 69 74 | 2e 0d 0a aa 1f 20 20 20 |th of it|..... |
|00002ce0| 20 20 20 20 20 41 44 44 | 20 20 20 20 20 52 32 2c | ADD| R2,|
|00002cf0| 20 69 6e 64 2c 20 52 30 | 0d 0a b4 24 20 20 20 20 | ind, R0|...$ |
|00002d00| 20 20 20 20 4c 44 52 20 | 20 20 20 20 52 31 2c 20 | LDR | R1, |
|00002d10| 6d 65 6e 75 5f 69 6e 64 | 5f 65 6e 64 0d 0a be 1a |menu_ind|_end....|
|00002d20| 20 20 20 20 20 20 20 20 | 43 4d 50 20 20 20 20 20 | |CMP |
|00002d30| 52 32 2c 20 52 31 0d 0a | c8 46 20 20 20 20 20 20 |R2, R1..|.F |
|00002d40| 20 20 42 48 53 20 20 20 | 20 20 69 6e 64 5f 6f 76 | BHS | ind_ov|
|00002d50| 65 72 66 6c 6f 77 20 20 | 20 20 20 20 20 20 20 20 |erflow | |
|00002d60| 20 20 20 20 20 20 20 20 | 20 20 5c 20 48 61 6e 64 | | \ Hand|
|00002d70| 6c 65 20 6f 76 65 72 66 | 6c 6f 77 2e 0d 0a d2 21 |le overf|low....!|
|00002d80| 20 20 20 20 20 20 20 20 | 53 54 52 20 20 20 20 20 | |STR |
|00002d90| 69 6e 64 2c 20 5b 6d 2c | 20 23 31 32 5d 0d 0a dc |ind, [m,| #12]...|
|00002da0| 21 20 20 20 20 20 20 20 | 20 4c 44 52 20 20 20 20 |! | LDR |
|00002db0| 20 52 31 2c 20 69 6e 64 | 5f 77 72 69 74 65 0d 0a | R1, ind|_write..|
|00002dc0| e6 21 20 20 20 20 20 20 | 20 20 53 54 52 20 20 20 |.! | STR |
|00002dd0| 20 20 69 6e 64 2c 20 5b | 52 31 5d 2c 20 23 34 0d | ind, [|R1], #4.|
|00002de0| 0a f0 4a 20 20 20 20 20 | 20 20 20 53 54 52 20 20 |..J | STR |
|00002df0| 20 20 20 52 31 2c 20 69 | 6e 64 5f 77 72 69 74 65 | R1, i|nd_write|
|00002e00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002e10| 20 20 20 5c 20 55 70 64 | 61 74 65 20 61 64 64 72 | \ Upd|ate addr|
|00002e20| 65 73 73 20 6c 69 73 74 | 2e 0d 0a fa 1a 20 20 20 |ess list|..... |
|00002e30| 20 20 20 20 20 4d 56 4e | 20 20 20 20 20 52 31 2c | MVN| R1,|
|00002e40| 20 23 30 0d 0b 04 4b 20 | 20 20 20 20 20 20 20 53 | #0...K | S|
|00002e50| 54 52 20 20 20 20 20 52 | 31 2c 20 5b 6d 2c 20 23 |TR R|1, [m, #|
|00002e60| 31 36 5d 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |16] | |
|00002e70| 20 20 20 20 20 20 20 5c | 20 4e 6f 20 76 61 6c 69 | \| No vali|
|00002e80| 64 61 74 69 6f 6e 20 73 | 74 72 69 6e 67 2e 0d 0b |dation s|tring...|
|00002e90| 0e 3d 20 20 20 20 20 20 | 20 20 53 54 52 20 20 20 |.= | STR |
|00002ea0| 20 20 52 30 2c 20 5b 6d | 2c 20 23 32 30 5d 20 20 | R0, [m|, #20] |
|00002eb0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002ec0| 20 20 5c 20 4c 65 6e 67 | 74 68 2e 0d 0b 18 1a 20 | \ Leng|th..... |
|00002ed0| 20 20 20 20 20 20 20 4d | 4f 56 20 20 20 20 20 52 | M|OV R|
|00002ee0| 30 2c 20 23 30 0d 0b 22 | 21 20 20 20 20 20 20 20 |0, #0.."|! |
|00002ef0| 20 53 54 52 42 20 20 20 | 20 52 30 2c 20 5b 69 6e | STRB | R0, [in|
|00002f00| 64 5d 2c 20 52 32 0d 0b | 2c 4b 20 20 20 20 20 20 |d], R2..|,K |
|00002f10| 20 20 41 44 44 20 20 20 | 20 20 69 6e 64 2c 20 69 | ADD | ind, i|
|00002f20| 6e 64 2c 20 23 31 20 20 | 20 20 20 20 20 20 20 20 |nd, #1 | |
|00002f30| 20 20 20 20 20 20 20 20 | 20 20 5c 20 53 6b 69 70 | | \ Skip|
|00002f40| 20 74 65 72 6d 69 6e 61 | 74 6f 72 20 62 79 74 65 | termina|tor byte|
|00002f50| 2e 0d 0b 36 20 20 20 20 | 20 20 20 20 20 4d 56 4e |...6 | MVN|
|00002f60| 20 20 20 20 20 73 75 62 | 5f 6d 65 6e 75 2c 20 23 | sub|_menu, #|
|00002f70| 30 0d 0b 40 21 20 20 20 | 20 20 20 20 20 42 20 20 |0..@! | B |
|00002f80| 20 20 20 20 20 70 72 6f | 63 65 73 73 5f 66 6c 61 | pro|cess_fla|
|00002f90| 67 73 0d 0b 4a 4d 5c 2d | 2d 2d 2d 2d 2d 2d 2d 2d |gs..JM\-|--------|
|00002fa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002fb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002fc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002fd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00002fe0| 0b 54 05 5c 0d 0b 5e 32 | 5c 20 20 20 20 20 20 20 |.T.\..^2|\ |
|00002ff0| 49 4e 20 20 20 20 20 20 | 6d 65 6e 75 5f 73 74 72 |IN |menu_str|
|00003000| 69 6e 67 2c 20 72 6f 76 | 65 2c 20 69 6e 64 20 20 |ing, rov|e, ind |
|00003010| 3d 3d 20 53 65 74 0d 0b | 68 2a 5c 20 20 20 20 20 |== Set..|h*\ |
|00003020| 20 20 4f 55 54 20 20 20 | 20 20 6d 2c 20 72 6f 76 | OUT | m, rov|
|00003030| 65 20 3c 2d 2d 20 72 6f | 76 65 20 2b 20 23 32 38 |e <-- ro|ve + #28|
|00003040| 0d 0b 72 37 5c 20 20 20 | 20 20 20 20 20 20 20 20 |..r7\ | |
|00003050| 20 20 20 20 52 30 20 3c | 2d 2d 20 4d 65 6e 75 20 | R0 <|-- Menu |
|00003060| 69 74 65 6d 73 20 64 65 | 66 69 6e 69 74 69 6f 6e |items de|finition|
|00003070| 20 73 74 72 69 6e 67 0d | 0b 7c 31 5c 20 20 20 20 | string.|.|1\ |
|00003080| 20 20 20 20 20 20 20 20 | 20 20 20 6d 65 6e 75 5f | | menu_|
|00003090| 73 74 72 69 6e 67 20 3c | 2d 2d 20 22 4e 65 78 74 |string <|-- "Next|
|000030a0| 22 20 73 74 72 69 6e 67 | 0d 0b 86 30 5c 20 20 20 |" string|...0\ |
|000030b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 6d 61 78 77 | | maxw|
|000030c0| 69 64 74 68 20 3c 2d 2d | 20 57 69 64 74 68 20 6f |idth <--| Width o|
|000030d0| 66 20 68 65 61 64 65 72 | 0d 0b 90 2e 5c 20 20 20 |f header|....\ |
|000030e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 45 72 72 6f | | Erro|
|000030f0| 72 20 3d 3e 20 65 78 69 | 74 20 74 68 72 6f 75 67 |r => exi|t throug|
|00003100| 68 20 71 75 69 74 0d 0b | 9a 18 5c 20 20 20 20 20 |h quit..|..\ |
|00003110| 20 20 42 41 44 20 20 20 | 20 20 6c 69 6e 6b 0d 0b | BAD | link..|
|00003120| a4 18 5c 20 20 20 20 20 | 20 20 46 4c 41 47 53 20 |..\ | FLAGS |
|00003130| 20 20 4c 69 6e 6b 0d 0b | ae 11 20 20 20 20 20 20 | Link..|.. |
|00003140| 20 20 41 4c 49 47 4e 0d | 0b b8 19 2e 44 65 66 69 | ALIGN.|....Defi|
|00003150| 6e 65 5f 41 5f 4d 65 6e | 75 5f 48 65 61 64 65 72 |ne_A_Men|u_Header|
|00003160| 0d 0b c2 21 20 20 20 20 | 20 20 20 20 53 54 4d 46 |...! | STMF|
|00003170| 44 20 20 20 28 73 70 29 | 21 2c 20 7b 6c 69 6e 6b |D (sp)|!, {link|
|00003180| 7d 0d 0b cc 40 20 20 20 | 20 20 20 20 20 4d 4f 56 |}...@ | MOV|
|00003190| 20 20 20 20 20 6d 2c 20 | 72 6f 76 65 20 20 20 20 | m, |rove |
|000031a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000031b0| 20 20 20 20 20 5c 20 45 | 73 73 65 6e 74 69 61 6c | \ E|ssential|
|000031c0| 21 0d 0b d6 21 20 20 20 | 20 20 20 20 20 41 44 44 |!...! | ADD|
|000031d0| 20 20 20 20 20 52 30 2c | 20 72 6f 76 65 2c 20 23 | R0,| rove, #|
|000031e0| 32 38 0d 0b e0 24 20 20 | 20 20 20 20 20 20 4c 44 |28...$ | LD|
|000031f0| 52 20 20 20 20 20 52 31 | 2c 20 6d 65 6e 75 5f 64 |R R1|, menu_d|
|00003200| 65 66 5f 65 6e 64 0d 0b | ea 1a 20 20 20 20 20 20 |ef_end..|.. |
|00003210| 20 20 43 4d 50 20 20 20 | 20 20 52 30 2c 20 52 31 | CMP | R0, R1|
|00003220| 0d 0b f4 49 20 20 20 20 | 20 20 20 20 42 48 53 20 |...I | BHS |
|00003230| 20 20 20 20 64 65 66 5f | 6f 76 65 72 66 6c 6f 77 | def_|overflow|
|00003240| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003250| 20 20 20 20 5c 20 43 68 | 65 63 6b 20 66 6f 72 20 | \ Ch|eck for |
|00003260| 6f 76 65 72 66 6c 6f 77 | 2e 0d 0b fe 1c 20 20 20 |overflow|..... |
|00003270| 20 20 20 20 20 4d 4f 56 | 20 20 20 20 20 72 6f 76 | MOV| rov|
|00003280| 65 2c 20 52 30 0d 0c 08 | 23 20 20 20 20 20 20 20 |e, R0...|# |
|00003290| 20 4d 4f 56 20 20 20 20 | 20 52 30 2c 20 6d 65 6e | MOV | R0, men|
|000032a0| 75 5f 73 74 72 69 6e 67 | 0d 0c 12 1f 20 20 20 20 |u_string|.... |
|000032b0| 20 20 20 20 4d 4f 56 20 | 20 20 20 20 52 31 2c 20 | MOV | R1, |
|000032c0| 23 97 28 22 98 22 29 0d | 0c 1c 1a 20 20 20 20 20 |#.(".").|... |
|000032d0| 20 20 20 42 4c 20 20 20 | 20 20 20 73 74 72 63 68 | BL | strch|
|000032e0| 72 0d 0c 26 4a 20 20 20 | 20 20 20 20 20 54 45 51 |r..&J | TEQ|
|000032f0| 20 20 20 20 20 52 30 2c | 20 23 30 20 20 20 20 20 | R0,| #0 |
|00003300| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003310| 20 20 20 20 20 5c 20 43 | 68 65 63 6b 20 68 65 61 | \ C|heck hea|
|00003320| 64 65 72 20 65 78 69 73 | 74 73 21 0d 0c 30 1e 20 |der exis|ts!..0. |
|00003330| 20 20 20 20 20 20 20 42 | 45 51 20 20 20 20 20 62 | B|EQ b|
|00003340| 61 64 5f 68 65 61 64 65 | 72 0d 0c 3a 1f 20 20 20 |ad_heade|r..:. |
|00003350| 20 20 20 20 20 53 54 4d | 46 44 20 20 20 28 73 70 | STM|FD (sp|
|00003360| 29 21 2c 20 7b 52 30 7d | 0d 0c 44 27 20 20 20 20 |)!, {R0}|..D' |
|00003370| 20 20 20 20 53 55 42 20 | 20 20 20 20 52 32 2c 20 | SUB | R2, |
|00003380| 52 30 2c 20 6d 65 6e 75 | 5f 73 74 72 69 6e 67 0d |R0, menu|_string.|
|00003390| 0c 4e 1e 20 20 20 20 20 | 20 20 20 53 55 42 20 20 |.N. | SUB |
|000033a0| 20 20 20 52 32 2c 20 52 | 32 2c 20 23 31 0d 0c 58 | R2, R|2, #1..X|
|000033b0| 1b 20 20 20 20 20 20 20 | 20 4d 4f 56 20 20 20 20 |. | MOV |
|000033c0| 20 52 30 2c 20 23 31 32 | 0d 0c 62 1a 20 20 20 20 | R0, #12|..b. |
|000033d0| 20 20 20 20 43 4d 50 20 | 20 20 20 20 52 30 2c 20 | CMP | R0, |
|000033e0| 52 32 0d 0c 6c 1e 20 20 | 20 20 20 20 20 20 42 4c |R2..l. | BL|
|000033f0| 54 20 20 20 20 20 62 61 | 64 5f 68 65 61 64 65 72 |T ba|d_header|
|00003400| 0d 0c 76 23 20 20 20 20 | 20 20 20 20 4d 4f 56 20 |..v# | MOV |
|00003410| 20 20 20 20 52 31 2c 20 | 6d 65 6e 75 5f 73 74 72 | R1, |menu_str|
|00003420| 69 6e 67 0d 0c 80 19 20 | 20 20 20 20 20 20 20 4d |ing.... | M|
|00003430| 4f 56 20 20 20 20 20 52 | 30 2c 20 6d 0d 0c 8a 46 |OV R|0, m...F|
|00003440| 20 20 20 20 20 20 20 20 | 42 4c 20 20 20 20 20 20 | |BL |
|00003450| 73 74 72 6e 63 70 79 20 | 20 20 20 20 20 20 20 20 |strncpy | |
|00003460| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003470| 5c 20 43 6f 70 79 20 6d | 65 6e 75 20 74 69 74 6c |\ Copy m|enu titl|
|00003480| 65 2e 0d 0c 94 47 20 20 | 20 4d 4f 56 20 52 30 2c |e....G | MOV R0,|
|00003490| 23 37 3a 53 54 52 42 20 | 52 30 2c 5b 6d 2c 23 31 |#7:STRB |R0,[m,#1|
|000034a0| 32 5d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |2] | |
|000034b0| 20 20 20 20 20 20 5c 20 | 54 69 74 6c 65 20 66 6f | \ |Title fo|
|000034c0| 72 65 67 72 6f 75 6e 64 | 2e 0d 0c 9e 47 20 20 20 |reground|....G |
|000034d0| 4d 4f 56 20 52 30 2c 23 | 32 3a 53 54 52 42 20 52 |MOV R0,#|2:STRB R|
|000034e0| 30 2c 5b 6d 2c 23 31 33 | 5d 20 20 20 20 20 20 20 |0,[m,#13|] |
|000034f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 5c 20 54 | | \ T|
|00003500| 69 74 6c 65 20 62 61 63 | 6b 67 72 6f 75 6e 64 2e |itle bac|kground.|
|00003510| 0d 0c a8 4b 20 20 20 4d | 4f 56 20 52 30 2c 23 37 |...K M|OV R0,#7|
|00003520| 3a 53 54 52 42 20 52 30 | 2c 5b 6d 2c 23 31 34 5d |:STRB R0|,[m,#14]|
|00003530| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003540| 20 20 20 20 5c 20 57 6f | 72 6b 20 61 72 65 61 20 | \ Wo|rk area |
|00003550| 66 6f 72 65 67 72 6f 75 | 6e 64 2e 0d 0c b2 4b 20 |foregrou|nd....K |
|00003560| 20 20 4d 4f 56 20 52 30 | 2c 23 30 3a 53 54 52 42 | MOV R0|,#0:STRB|
|00003570| 20 52 30 2c 5b 6d 2c 23 | 31 35 5d 20 20 20 20 20 | R0,[m,#|15] |
|00003580| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 5c | | \|
|00003590| 20 57 6f 72 6b 20 61 72 | 65 61 20 62 61 63 6b 67 | Work ar|ea backg|
|000035a0| 72 6f 75 6e 64 2e 0d 0c | bc 44 20 20 20 4d 4f 56 |round...|.D MOV|
|000035b0| 20 52 30 2c 23 34 34 3a | 53 54 52 20 52 30 2c 5b | R0,#44:|STR R0,[|
|000035c0| 6d 2c 23 32 30 5d 20 20 | 20 20 20 20 20 20 20 20 |m,#20] | |
|000035d0| 20 20 20 20 20 20 20 20 | 20 20 5c 20 48 65 69 67 | | \ Heig|
|000035e0| 68 74 20 6f 66 20 27 65 | 6d 2e 0d 0c c6 43 20 20 |ht of 'e|m....C |
|000035f0| 20 4d 4f 56 20 52 30 2c | 23 30 3a 53 54 52 20 52 | MOV R0,|#0:STR R|
|00003600| 30 2c 5b 6d 2c 23 32 34 | 5d 20 20 20 20 20 20 20 |0,[m,#24|] |
|00003610| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 5c 20 | | \ |
|00003620| 57 69 64 74 68 20 6f 66 | 20 27 65 6d 2e 0d 0c d0 |Width of| 'em....|
|00003630| 20 20 20 20 20 20 20 20 | 20 4d 4f 56 20 20 20 20 | | MOV |
|00003640| 20 6d 61 78 77 69 64 74 | 68 2c 20 52 32 0d 0c da | maxwidt|h, R2...|
|00003650| 23 20 20 20 20 20 20 20 | 20 4d 4f 56 20 20 20 20 |# | MOV |
|00003660| 20 52 30 2c 20 6d 65 6e | 75 5f 73 74 72 69 6e 67 | R0, men|u_string|
|00003670| 0d 0c e4 1a 20 20 20 20 | 20 20 20 20 42 4c 20 20 |.... | BL |
|00003680| 20 20 20 20 73 74 72 6c | 65 6e 0d 0c ee 27 20 20 | strl|en...' |
|00003690| 20 20 20 20 20 20 41 44 | 44 20 20 20 20 20 6d 65 | AD|D me|
|000036a0| 6e 75 5f 73 74 72 69 6e | 67 2c 20 52 31 2c 20 52 |nu_strin|g, R1, R|
|000036b0| 30 0d 0c f8 49 20 20 20 | 20 20 20 20 20 41 44 44 |0...I | ADD|
|000036c0| 20 20 20 20 20 6d 65 6e | 75 5f 73 74 72 69 6e 67 | men|u_string|
|000036d0| 2c 20 6d 65 6e 75 5f 73 | 74 72 69 6e 67 2c 20 23 |, menu_s|tring, #|
|000036e0| 31 20 20 20 20 5c 20 55 | 70 64 61 74 65 20 6d 65 |1 \ U|pdate me|
|000036f0| 6e 75 5f 73 74 72 69 6e | 67 2e 0d 0d 02 1b 20 20 |nu_strin|g..... |
|00003700| 20 20 20 20 20 20 4d 4f | 56 20 20 20 20 20 6d 2c | MO|V m,|
|00003710| 20 72 6f 76 65 0d 0d 0c | 24 20 20 20 20 20 20 20 | rove...|$ |
|00003720| 20 4c 44 4d 46 44 20 20 | 20 28 73 70 29 21 2c 20 | LDMFD | (sp)!, |
|00003730| 7b 52 30 2c 20 70 63 7d | 5e 0d 0d 16 05 5d 0d 0d |{R0, pc}|^....]..|
|00003740| 20 07 3d 20 30 0d 0d 2a | 05 3a 0d 0d 34 7b dd 20 | .= 0..*|.:..4{. |
|00003750| a4 5f 4d 65 6e 75 5f 45 | 72 72 6f 72 28 20 f8 20 |._Menu_E|rror( . |
|00003760| 61 64 64 72 2c 20 73 24 | 20 29 3a ea 20 62 6c 6f |addr, s$| ):. blo|
|00003770| 63 6b 3a 5b 4f 50 54 20 | 70 61 73 73 25 3a 41 4c |ck:[OPT |pass%:AL|
|00003780| 49 47 4e 3a 2e 62 6c 6f | 63 6b 20 45 51 55 44 20 |IGN:.blo|ck EQUD |
|00003790| 31 3a 45 51 55 53 20 73 | 24 3a 45 51 55 42 20 30 |1:EQUS s|$:EQUB 0|
|000037a0| 3a 41 4c 49 47 4e 3a 2e | 61 64 64 72 20 41 44 52 |:ALIGN:.|addr ADR|
|000037b0| 20 52 30 2c 62 6c 6f 63 | 6b 3a 42 20 71 75 69 74 | R0,bloc|k:B quit|
|000037c0| 3a 5d 3a 3d 30 0d 0d 3e | 05 3a 0d 0d 48 15 dd 20 |:]:=0..>|.:..H.. |
|000037d0| a4 5f 47 6f 74 6f 5f 53 | 75 62 5f 4d 65 6e 75 0d |._Goto_S|ub_Menu.|
|000037e0| 0d 52 0e 5b 4f 50 54 20 | 70 61 73 73 25 0d 0d 5c |.R.[OPT |pass%..\|
|000037f0| 1b 20 20 20 20 20 20 20 | 20 4d 4f 56 20 20 20 20 |. | MOV |
|00003800| 20 52 31 30 2c 20 52 30 | 0d 0d 66 1a 20 20 20 20 | R10, R0|..f. |
|00003810| 20 20 20 20 42 4c 20 20 | 20 20 20 20 73 74 72 6c | BL | strl|
|00003820| 65 6e 0d 0d 70 1e 20 20 | 20 20 20 20 20 20 41 44 |en..p. | AD|
|00003830| 44 20 20 20 20 20 52 30 | 2c 20 52 30 2c 20 23 31 |D R0|, R0, #1|
|00003840| 0d 0d 7a 1e 20 20 20 20 | 20 20 20 20 53 55 42 53 |..z. | SUBS|
|00003850| 20 20 20 20 52 32 2c 20 | 52 32 2c 20 52 30 0d 0d | R2, |R2, R0..|
|00003860| 84 1a 20 20 20 20 20 20 | 20 20 4d 4f 56 4d 49 20 |.. | MOVMI |
|00003870| 20 20 52 32 2c 20 23 30 | 0d 0d 8e 4b 20 20 20 20 | R2, #0|...K |
|00003880| 20 20 20 20 41 44 44 20 | 20 20 20 20 52 30 2c 20 | ADD | R0, |
|00003890| 52 31 30 2c 20 52 30 20 | 20 20 20 20 20 20 20 20 |R10, R0 | |
|000038a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 5c 20 47 6f | | \ Go|
|000038b0| 20 74 6f 20 77 68 65 72 | 65 20 73 74 6f 72 65 20 | to wher|e store |
|000038c0| 69 74 2e 0d 0d 98 05 5d | 0d 0d a2 07 3d 20 30 0d |it.....]|....= 0.|
|000038d0| 0d ac 05 3a 0d 0d b6 2f | f4 20 20 4c 61 73 74 20 |...:.../|. Last |
|000038e0| 6c 69 6e 65 20 6f 66 20 | 3c 42 61 73 69 63 56 5f |line of |<BasicV_|
|000038f0| 41 73 73 65 6d 62 6c 65 | 72 24 4c 69 62 3e 2e 4d |Assemble|r$Lib>.M|
|00003900| 65 6e 75 0d ff | |enu.. | |
+--------+-------------------------+-------------------------+--------+--------+