home *** CD-ROM | disk | FTP | other *** search
Unknown | 1995-09-23 | 18.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 24 f4 20 3e 20 | 50 61 74 63 68 20 66 6f |...$. > |Patch fo|
|00000010| 72 20 6d 65 6d 6f 72 79 | 20 63 6f 6d 70 69 6c 61 |r memory| compila|
|00000020| 74 69 6f 6e 0d 00 14 37 | f4 20 43 72 65 61 74 65 |tion...7|. Create|
|00000030| 64 20 62 79 20 4a 46 50 | 61 74 63 68 20 a9 20 4a |d by JFP|atch . J|
|00000040| 75 73 74 69 6e 20 46 6c | 65 74 63 68 65 72 2c 20 |ustin Fl|etcher, |
|00000050| 30 35 20 53 65 70 20 31 | 39 39 35 0d 00 1e 30 f4 |05 Sep 1|995...0.|
|00000060| 20 49 6e 74 65 72 6d 65 | 64 69 61 74 65 20 63 6f | Interme|diate co|
|00000070| 64 65 20 66 69 6c 65 20 | 63 72 65 61 74 65 64 20 |de file |created |
|00000080| 32 32 20 53 65 70 20 31 | 39 39 35 0d 00 28 10 ee |22 Sep 1|995..(..|
|00000090| 20 85 20 f2 45 72 72 6f | 72 3a e0 0d 00 32 13 f2 | . .Erro|r:...2..|
|000000a0| 70 61 74 63 68 5f 6c 6f | 61 64 66 69 6c 65 0d 00 |patch_lo|adfile..|
|000000b0| 3c 24 f4 20 2a 2a 2a 2a | 20 57 6f 72 6b 73 70 61 |<$. ****| Workspa|
|000000c0| 63 65 20 73 74 72 75 63 | 74 75 72 65 73 20 2a 2a |ce struc|tures **|
|000000d0| 2a 2a 0d 00 46 05 3a 0d | 00 50 27 70 74 72 3d 30 |**..F.:.|.P'ptr=0|
|000000e0| 3a f4 20 53 74 61 72 74 | 20 73 74 72 75 63 74 75 |:. Start| structu|
|000000f0| 72 65 20 6f 66 20 4d 65 | 6e 75 49 74 65 6d 0d 00 |re of Me|nuItem..|
|00000100| 5a 16 60 6d 66 6c 61 67 | 73 3d 70 74 72 3a 70 74 |Z.`mflag|s=ptr:pt|
|00000110| 72 2b 3d 34 0d 00 64 17 | 60 73 75 62 6d 65 6e 75 |r+=4..d.|`submenu|
|00000120| 3d 70 74 72 3a 70 74 72 | 2b 3d 34 0d 00 6e 16 60 |=ptr:ptr|+=4..n.`|
|00000130| 69 66 6c 61 67 73 3d 70 | 74 72 3a 70 74 72 2b 3d |iflags=p|tr:ptr+=|
|00000140| 34 0d 00 78 17 60 73 74 | 72 69 6e 67 3d 70 74 72 |4..x.`st|ring=ptr|
|00000150| 3a 70 74 72 2b 3d 31 32 | 0d 00 82 15 60 6c 65 6e |:ptr+=12|....`len|
|00000160| 5f 4d 65 6e 75 49 74 65 | 6d 3d 70 74 72 0d 00 8c |_MenuIte|m=ptr...|
|00000170| 05 3a 0d 00 96 28 70 74 | 72 3d 30 3a f4 20 53 74 |.:...(pt|r=0:. St|
|00000180| 61 72 74 20 73 74 72 75 | 63 74 75 72 65 20 6f 66 |art stru|cture of|
|00000190| 20 4d 65 6e 75 42 6c 6f | 63 6b 0d 00 a0 16 60 74 | MenuBlo|ck....`t|
|000001a0| 69 74 6c 65 3d 70 74 72 | 3a 70 74 72 2b 3d 31 32 |itle=ptr|:ptr+=12|
|000001b0| 0d 00 aa 15 60 74 66 6f | 72 65 3d 70 74 72 3a 70 |....`tfo|re=ptr:p|
|000001c0| 74 72 2b 3d 31 0d 00 b4 | 15 60 74 62 61 63 6b 3d |tr+=1...|.`tback=|
|000001d0| 70 74 72 3a 70 74 72 2b | 3d 31 0d 00 be 15 60 77 |ptr:ptr+|=1....`w|
|000001e0| 66 6f 72 65 3d 70 74 72 | 3a 70 74 72 2b 3d 31 0d |fore=ptr|:ptr+=1.|
|000001f0| 00 c8 15 60 77 62 61 63 | 6b 3d 70 74 72 3a 70 74 |...`wbac|k=ptr:pt|
|00000200| 72 2b 3d 31 0d 00 d2 15 | 60 77 69 64 74 68 3d 70 |r+=1....|`width=p|
|00000210| 74 72 3a 70 74 72 2b 3d | 34 0d 00 dc 16 60 68 65 |tr:ptr+=|4....`he|
|00000220| 69 67 68 74 3d 70 74 72 | 3a 70 74 72 2b 3d 34 0d |ight=ptr|:ptr+=4.|
|00000230| 00 e6 13 60 67 61 70 3d | 70 74 72 3a 70 74 72 2b |...`gap=|ptr:ptr+|
|00000240| 3d 34 0d 00 f0 20 60 64 | 61 74 61 3d 70 74 72 3a |=4... `d|ata=ptr:|
|00000250| 70 74 72 2b 3d 60 6c 65 | 6e 5f 4d 65 6e 75 49 74 |ptr+=`le|n_MenuIt|
|00000260| 65 6d 0d 00 fa 16 60 6c | 65 6e 5f 4d 65 6e 75 42 |em....`l|en_MenuB|
|00000270| 6c 6f 63 6b 3d 70 74 72 | 0d 01 04 05 3a 0d 01 0e |lock=ptr|....:...|
|00000280| 25 70 74 72 3d 30 3a f4 | 20 53 74 61 72 74 20 73 |%ptr=0:.| Start s|
|00000290| 74 72 75 63 74 75 72 65 | 20 6f 66 20 4d 6f 64 75 |tructure| of Modu|
|000002a0| 6c 65 0d 01 18 16 60 63 | 6f 6c 6f 75 72 3d 70 74 |le....`c|olour=pt|
|000002b0| 72 3a 70 74 72 2b 3d 34 | 0d 01 22 14 60 6d 65 6e |r:ptr+=4|..".`men|
|000002c0| 75 3d 70 74 72 3a 70 74 | 72 2b 3d 34 0d 01 2c 13 |u=ptr:pt|r+=4..,.|
|000002d0| 60 6c 65 6e 5f 4d 6f 64 | 75 6c 65 3d 70 74 72 0d |`len_Mod|ule=ptr.|
|000002e0| 01 36 05 3a 0d 01 40 17 | 73 70 3d 31 33 3a 6c 69 |.6.:..@.|sp=13:li|
|000002f0| 6e 6b 3d 31 34 3a 70 63 | 3d 31 35 0d 01 4a 2f 76 |nk=14:pc|=15..J/v|
|00000300| 62 69 74 3d 31 3c 3c 32 | 38 3a 63 62 69 74 3d 31 |bit=1<<2|8:cbit=1|
|00000310| 3c 3c 32 39 3a 7a 62 69 | 74 3d 31 3c 3c 33 30 3a |<<29:zbi|t=1<<30:|
|00000320| 6e 62 69 74 3d 31 3c 3c | 33 31 0d 01 54 10 50 25 |nbit=1<<|31..T.P%|
|00000330| 3d 26 30 3a 4f 25 3d 4d | 43 25 0d 01 5e 14 e3 20 |=&0:O%=M|C%..^.. |
|00000340| 70 61 73 73 25 3d 34 20 | b8 20 36 20 88 32 0d 01 |pass%=4 |. 6 .2..|
|00000350| 68 22 f4 20 2a 2a 2a 2a | 20 53 74 61 72 74 20 6f |h". ****| Start o|
|00000360| 66 20 6d 61 69 6e 20 63 | 6f 64 65 20 2a 2a 2a 2a |f main c|ode ****|
|00000370| 0d 01 72 13 f2 70 61 74 | 63 68 5f 73 65 74 70 63 |..r..pat|ch_setpc|
|00000380| 28 30 29 0d 01 7c 0e 5b | 4f 50 54 20 70 61 73 73 |(0)..|.[|OPT pass|
|00000390| 25 0d 01 86 2b 20 20 20 | 20 20 20 20 20 20 20 3b |%...+ | ;|
|000003a0| 20 2a 2a 2a 2a 20 41 64 | 64 20 6d 6f 64 75 6c 65 | **** Ad|d module|
|000003b0| 20 68 65 61 64 65 72 20 | 2a 2a 2a 2a 0d 01 90 2d | header |****...-|
|000003c0| 20 20 20 45 51 55 44 20 | 30 20 20 20 20 20 20 20 | EQUD |0 |
|000003d0| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 53 74 61 | | ; Sta|
|000003e0| 72 74 20 6f 66 66 73 65 | 74 0d 01 9a 36 20 20 20 |rt offse|t...6 |
|000003f0| 45 51 55 44 20 6d 6f 64 | 75 6c 65 5f 69 6e 69 74 |EQUD mod|ule_init|
|00000400| 20 20 20 20 20 20 20 20 | 3b 20 49 6e 69 74 69 61 | |; Initia|
|00000410| 6c 69 73 61 74 69 6f 6e | 20 6f 66 66 73 65 74 0d |lisation| offset.|
|00000420| 01 a4 34 20 20 20 45 51 | 55 44 20 6d 6f 64 75 6c |..4 EQ|UD modul|
|00000430| 65 5f 66 69 6e 61 6c 20 | 20 20 20 20 20 20 3b 20 |e_final | ; |
|00000440| 46 69 6e 61 6c 69 73 61 | 74 69 6f 6e 20 6f 66 66 |Finalisa|tion off|
|00000450| 73 65 74 0d 01 ae 37 20 | 20 20 45 51 55 44 20 6d |set...7 | EQUD m|
|00000460| 6f 64 75 6c 65 5f 73 65 | 72 76 69 63 65 20 20 20 |odule_se|rvice |
|00000470| 20 20 3b 20 53 65 72 76 | 69 63 65 20 72 65 71 75 | ; Serv|ice requ|
|00000480| 65 73 74 20 6f 66 66 73 | 65 74 0d 01 b8 34 20 20 |est offs|et...4 |
|00000490| 20 45 51 55 44 20 6d 6f | 64 75 6c 65 5f 74 69 74 | EQUD mo|dule_tit|
|000004a0| 6c 65 20 20 20 20 20 20 | 20 3b 20 54 69 74 6c 65 |le | ; Title|
|000004b0| 20 73 74 72 69 6e 67 20 | 6f 66 66 73 65 74 0d 01 | string |offset..|
|000004c0| c2 33 20 20 20 45 51 55 | 44 20 6d 6f 64 75 6c 65 |.3 EQU|D module|
|000004d0| 5f 68 65 6c 70 20 20 20 | 20 20 20 20 20 3b 20 48 |_help | ; H|
|000004e0| 65 6c 70 20 73 74 72 69 | 6e 67 20 6f 66 66 73 65 |elp stri|ng offse|
|000004f0| 74 0d 01 cc 46 20 20 20 | 45 51 55 44 20 30 20 20 |t...F |EQUD 0 |
|00000500| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000510| 3b 20 48 65 6c 70 20 61 | 6e 64 20 63 6f 6d 6d 61 |; Help a|nd comma|
|00000520| 6e 64 20 6b 65 79 77 6f | 72 64 20 74 61 62 6c 65 |nd keywo|rd table|
|00000530| 20 6f 66 66 73 65 74 0d | 01 d6 05 3a 0d 01 e0 11 | offset.|...:....|
|00000540| 2e 6d 6f 64 75 6c 65 5f | 74 69 74 6c 65 0d 01 ea |.module_|title...|
|00000550| 19 20 20 20 45 51 55 53 | 20 22 46 75 6e 4d 65 6e |. EQUS| "FunMen|
|00000560| 75 73 22 2b bd 30 0d 01 | f4 0c 20 20 20 41 4c 49 |us"+.0..|.. ALI|
|00000570| 47 4e 0d 01 fe 05 3a 0d | 02 08 10 2e 6d 6f 64 75 |GN....:.|....modu|
|00000580| 6c 65 5f 68 65 6c 70 0d | 02 12 45 20 20 20 45 51 |le_help.|..E EQ|
|00000590| 55 53 20 22 46 75 6e 4d | 65 6e 75 73 22 2b bd 39 |US "FunM|enus"+.9|
|000005a0| 2b 22 31 2e 30 31 20 28 | 22 2b c1 91 24 2c 35 2c |+"1.01 (|"+..$,5,|
|000005b0| 31 31 29 2b 22 29 20 a9 | 20 4a 75 73 74 69 6e 20 |11)+") .| Justin |
|000005c0| 46 6c 65 74 63 68 65 72 | 22 2b bd 30 0d 02 1c 0c |Fletcher|"+.0....|
|000005d0| 20 20 20 41 4c 49 47 4e | 0d 02 26 05 3a 0d 02 30 | ALIGN|..&.:..0|
|000005e0| 13 2e 6d 6f 64 75 6c 65 | 5f 73 65 72 76 69 63 65 |..module|_service|
|000005f0| 0d 02 3a 18 20 20 20 4c | 44 52 20 20 20 20 20 72 |..:. L|DR r|
|00000600| 31 32 2c 5b 72 31 32 5d | 0d 02 44 16 20 20 20 43 |12,[r12]|..D. C|
|00000610| 4d 50 20 20 20 20 20 72 | 31 2c 23 26 38 37 0d 02 |MP r|1,#&87..|
|00000620| 4e 23 20 20 20 42 45 51 | 20 20 20 20 20 6d 6f 64 |N# BEQ| mod|
|00000630| 5f 73 76 63 5f 6e 65 77 | 66 69 6c 74 65 72 6d 67 |_svc_new|filtermg|
|00000640| 72 0d 02 58 14 2e 5f 6d | 6f 64 5f 73 76 63 5f 72 |r..X.._m|od_svc_r|
|00000650| 65 74 75 72 6e 0d 02 62 | 16 20 20 20 4d 4f 56 53 |eturn..b|. MOVS|
|00000660| 20 20 20 20 70 63 2c 6c | 69 6e 6b 0d 02 6c 05 3a | pc,l|ink..l.:|
|00000670| 0d 02 76 19 2e 6d 6f 64 | 5f 73 76 63 5f 6e 65 77 |..v..mod|_svc_new|
|00000680| 66 69 6c 74 65 72 6d 67 | 72 0d 02 80 37 20 20 20 |filtermg|r...7 |
|00000690| 53 54 4d 46 44 20 20 20 | 28 73 70 29 21 2c 7b 72 |STMFD |(sp)!,{r|
|000006a0| 30 2d 72 34 2c 6c 69 6e | 6b 7d 20 20 20 20 20 3b |0-r4,lin|k} ;|
|000006b0| 20 53 74 61 63 6b 20 72 | 65 67 69 73 74 65 72 73 | Stack r|egisters|
|000006c0| 0d 02 8a 21 20 20 20 42 | 4c 20 20 20 20 20 20 6d |...! B|L m|
|000006d0| 6f 64 5f 73 65 74 5f 50 | 6f 73 74 46 69 6c 74 65 |od_set_P|ostFilte|
|000006e0| 72 0d 02 94 2a 20 20 20 | 53 57 49 20 20 20 20 20 |r...* |SWI |
|000006f0| 22 46 69 6c 74 65 72 5f | 52 65 67 69 73 74 65 72 |"Filter_|Register|
|00000700| 50 6f 73 74 46 69 6c 74 | 65 72 22 0d 02 9e 21 20 |PostFilt|er"...! |
|00000710| 20 20 4c 44 4d 46 44 20 | 20 20 28 73 70 29 21 2c | LDMFD | (sp)!,|
|00000720| 7b 72 30 2d 72 34 2c 6c | 69 6e 6b 7d 0d 02 a8 1e |{r0-r4,l|ink}....|
|00000730| 20 20 20 42 20 20 20 20 | 20 20 20 5f 6d 6f 64 5f | B | _mod_|
|00000740| 73 76 63 5f 72 65 74 75 | 72 6e 0d 02 b2 05 3a 0d |svc_retu|rn....:.|
|00000750| 02 bc 10 2e 6d 6f 64 75 | 6c 65 5f 69 6e 69 74 0d |....modu|le_init.|
|00000760| 02 c6 37 20 20 20 53 54 | 4d 46 44 20 20 20 28 73 |..7 ST|MFD (s|
|00000770| 70 29 21 2c 7b 72 30 2d | 72 34 2c 6c 69 6e 6b 7d |p)!,{r0-|r4,link}|
|00000780| 20 20 20 20 20 3b 20 53 | 74 61 63 6b 20 72 65 67 | ; S|tack reg|
|00000790| 69 73 74 65 72 73 0d 02 | d0 14 20 20 20 4d 4f 56 |isters..|.. MOV|
|000007a0| 20 20 20 20 20 72 30 2c | 23 36 0d 02 da 1c 20 a4 | r0,|#6.... .|
|000007b0| 4c 4d 4f 56 28 22 22 2c | 33 2c 60 6c 65 6e 5f 4d |LMOV("",|3,`len_M|
|000007c0| 6f 64 75 6c 65 29 0d 02 | e4 3f 20 20 20 53 57 49 |odule)..|.? SWI|
|000007d0| 20 20 20 20 20 22 58 4f | 53 5f 4d 6f 64 75 6c 65 | "XO|S_Module|
|000007e0| 22 20 20 20 20 20 20 20 | 20 20 20 20 3b 20 43 6c |" | ; Cl|
|000007f0| 61 69 6d 20 70 72 69 76 | 61 74 65 20 77 6f 72 6b |aim priv|ate work|
|00000800| 73 70 61 63 65 0d 02 ee | 3a 20 20 20 41 44 44 56 |space...|: ADDV|
|00000810| 53 20 20 20 73 70 2c 73 | 70 2c 23 34 20 20 20 20 |S sp,s|p,#4 |
|00000820| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 69 66 20 | | ; if |
|00000830| 65 72 72 6f 72 20 72 65 | 74 75 72 6e 20 72 30 0d |error re|turn r0.|
|00000840| 02 f8 34 20 20 20 4c 44 | 4d 56 53 46 44 20 28 73 |..4 LD|MVSFD (s|
|00000850| 70 29 21 2c 7b 72 31 2d | 72 34 2c 70 63 7d 20 20 |p)!,{r1-|r4,pc} |
|00000860| 20 20 20 20 20 3b 20 72 | 65 74 75 72 6e 20 65 72 | ; r|eturn er|
|00000870| 72 6f 72 0d 03 02 3d 20 | 20 20 53 54 52 20 20 20 |ror...= | STR |
|00000880| 20 20 72 32 2c 5b 72 31 | 32 5d 20 20 20 20 20 20 | r2,[r1|2] |
|00000890| 20 20 20 20 20 20 20 20 | 20 3b 20 73 74 6f 72 65 | | ; store|
|000008a0| 20 69 6e 20 70 72 69 76 | 61 74 65 20 77 6f 72 64 | in priv|ate word|
|000008b0| 0d 03 0c 31 20 20 20 4d | 4f 56 20 20 20 20 20 72 |...1 M|OV r|
|000008c0| 31 32 2c 72 32 20 20 20 | 20 20 20 20 20 20 20 20 |12,r2 | |
|000008d0| 20 20 20 20 20 20 3b 20 | 72 31 32 3d 73 70 61 63 | ; |r12=spac|
|000008e0| 65 0d 03 16 37 20 20 20 | 4d 4f 56 20 20 20 20 20 |e...7 |MOV |
|000008f0| 72 30 2c 23 30 20 20 20 | 20 20 20 20 20 20 20 20 |r0,#0 | |
|00000900| 20 20 20 20 20 20 20 3b | 20 69 6e 69 74 69 61 6c | ;| initial|
|00000910| 69 73 65 20 74 6f 20 30 | 0d 03 20 34 20 20 20 41 |ise to 0|.. 4 A|
|00000920| 44 44 20 20 20 20 20 72 | 33 2c 72 33 2c 72 32 20 |DD r|3,r3,r2 |
|00000930| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|00000940| 65 6e 64 20 6f 66 20 62 | 6c 6f 63 6b 0d 03 2a 11 |end of b|lock..*.|
|00000950| 2e 5f 6d 6f 64 5f 77 73 | 5f 69 6e 69 74 0d 03 34 |._mod_ws|_init..4|
|00000960| 35 20 20 20 53 54 52 20 | 20 20 20 20 72 30 2c 5b |5 STR | r0,[|
|00000970| 72 32 5d 2c 23 34 20 20 | 20 20 20 20 20 20 20 20 |r2],#4 | |
|00000980| 20 20 20 3b 20 73 74 6f | 72 65 20 61 6e 64 20 69 | ; sto|re and i|
|00000990| 6e 63 0d 03 3e 30 20 20 | 20 43 4d 50 20 20 20 20 |nc..>0 | CMP |
|000009a0| 20 72 32 2c 72 33 20 20 | 20 20 20 20 20 20 20 20 | r2,r3 | |
|000009b0| 20 20 20 20 20 20 20 20 | 3b 20 61 74 20 65 6e 64 | |; at end|
|000009c0| 20 3f 0d 03 48 36 20 20 | 20 42 4c 54 20 20 20 20 | ?..H6 | BLT |
|000009d0| 20 5f 6d 6f 64 5f 77 73 | 5f 69 6e 69 74 20 20 20 | _mod_ws|_init |
|000009e0| 20 20 20 20 20 20 20 20 | 3b 20 6e 20 3d 20 6c 6f | |; n = lo|
|000009f0| 6f 70 20 61 67 61 69 6e | 0d 03 52 1e 3b 20 2a 2a |op again|..R.; **|
|00000a00| 2a 2a 2a 20 57 69 6d 70 | 53 57 49 20 63 6c 61 69 |*** Wimp|SWI clai|
|00000a10| 6d 20 63 6f 64 65 0d 03 | 5c 15 20 20 20 4d 4f 56 |m code..|\. MOV|
|00000a20| 20 20 20 20 20 72 30 2c | 23 31 38 0d 03 66 21 20 | r0,|#18..f! |
|00000a30| a4 4c 41 44 52 28 22 22 | 2c 31 2c 60 6d 6f 64 75 |.LADR(""|,1,`modu|
|00000a40| 6c 65 5f 57 53 57 49 6e | 61 6d 65 29 0d 03 70 3b |le_WSWIn|ame)..p;|
|00000a50| 20 20 20 53 57 49 20 20 | 20 20 20 22 58 4f 53 5f | SWI | "XOS_|
|00000a60| 4d 6f 64 75 6c 65 22 20 | 20 20 20 20 20 20 20 20 |Module" | |
|00000a70| 20 20 3b 20 4c 6f 6f 6b | 20 75 70 20 6d 6f 64 75 | ; Look| up modu|
|00000a80| 6c 65 20 6e 61 6d 65 0d | 03 7a 22 20 a4 4c 41 44 |le name.|.z" .LAD|
|00000a90| 52 28 22 56 53 22 2c 30 | 2c 60 6d 6f 64 75 6c 65 |R("VS",0|,`module|
|00000aa0| 5f 57 53 57 49 65 72 72 | 29 0d 03 84 17 20 20 20 |_WSWIerr|).... |
|00000ab0| 41 44 44 56 53 20 20 20 | 73 70 2c 73 70 2c 23 34 |ADDVS |sp,sp,#4|
|00000ac0| 0d 03 8e 1f 20 20 20 4c | 44 4d 56 53 46 44 20 28 |.... L|DMVSFD (|
|00000ad0| 73 70 29 21 2c 7b 72 31 | 2d 72 34 2c 70 63 7d 0d |sp)!,{r1|-r4,pc}.|
|00000ae0| 03 98 22 20 20 20 4c 44 | 52 20 20 20 20 20 72 30 |.." LD|R r0|
|00000af0| 2c 60 6d 6f 64 75 6c 65 | 5f 57 53 57 49 77 6f 72 |,`module|_WSWIwor|
|00000b00| 64 0d 03 a2 15 20 20 20 | 4d 4f 56 20 20 20 20 20 |d.... |MOV |
|00000b10| 72 32 2c 72 31 32 0d 03 | ac 1f 20 20 20 4d 4f 56 |r2,r12..|.. MOV|
|00000b20| 20 20 20 20 20 72 31 2c | 23 32 30 2b 28 25 31 30 | r1,|#20+(%10|
|00000b30| 3c 3c 33 30 29 0d 03 b6 | 1f 20 a4 4c 41 44 52 28 |<<30)...|. .LADR(|
|00000b40| 22 22 2c 33 2c 73 77 69 | 5f 63 72 65 61 74 65 6d |"",3,swi|_createm|
|00000b50| 65 6e 75 29 0d 03 c0 14 | 20 20 20 4d 4f 56 20 20 |enu)....| MOV |
|00000b60| 20 20 20 72 34 2c 23 30 | 0d 03 ca 24 20 20 20 53 | r4,#0|...$ S|
|00000b70| 57 49 20 20 20 20 20 22 | 57 69 6d 70 5f 52 65 67 |WI "|Wimp_Reg|
|00000b80| 69 73 74 65 72 46 69 6c | 74 65 72 22 0d 03 d4 1f |isterFil|ter"....|
|00000b90| 20 20 20 4d 4f 56 20 20 | 20 20 20 72 31 2c 23 34 | MOV | r1,#4|
|00000ba0| 30 2b 28 25 31 30 3c 3c | 33 30 29 0d 03 de 22 20 |0+(%10<<|30)..." |
|00000bb0| a4 4c 41 44 52 28 22 22 | 2c 33 2c 73 77 69 5f 63 |.LADR(""|,3,swi_c|
|00000bc0| 72 65 61 74 65 73 75 62 | 6d 65 6e 75 29 0d 03 e8 |reatesub|menu)...|
|00000bd0| 14 20 20 20 4d 4f 56 20 | 20 20 20 20 72 34 2c 23 |. MOV | r4,#|
|00000be0| 30 0d 03 f2 24 20 20 20 | 53 57 49 20 20 20 20 20 |0...$ |SWI |
|00000bf0| 22 57 69 6d 70 5f 52 65 | 67 69 73 74 65 72 46 69 |"Wimp_Re|gisterFi|
|00000c00| 6c 74 65 72 22 0d 03 fc | 21 20 20 20 42 4c 20 20 |lter"...|! BL |
|00000c10| 20 20 20 20 6d 6f 64 5f | 73 65 74 5f 50 6f 73 74 | mod_|set_Post|
|00000c20| 46 69 6c 74 65 72 0d 04 | 06 2a 20 20 20 53 57 49 |Filter..|.* SWI|
|00000c30| 20 20 20 20 20 22 46 69 | 6c 74 65 72 5f 52 65 67 | "Fi|lter_Reg|
|00000c40| 69 73 74 65 72 50 6f 73 | 74 46 69 6c 74 65 72 22 |isterPos|tFilter"|
|00000c50| 0d 04 10 39 20 20 20 4c | 44 4d 46 44 20 20 20 28 |...9 L|DMFD (|
|00000c60| 73 70 29 21 2c 7b 72 30 | 2d 72 34 2c 70 63 7d 20 |sp)!,{r0|-r4,pc} |
|00000c70| 20 20 20 20 20 20 3b 20 | 72 65 73 74 6f 72 65 20 | ; |restore |
|00000c80| 72 65 67 69 73 74 65 72 | 73 0d 04 1a 05 3a 0d 04 |register|s....:..|
|00000c90| 24 14 2e 60 6d 6f 64 75 | 6c 65 5f 57 53 57 49 65 |$..`modu|le_WSWIe|
|00000ca0| 72 72 0d 04 2e 12 20 20 | 20 45 51 55 44 20 20 20 |rr.... | EQUD |
|00000cb0| 20 20 26 30 0d 04 38 49 | 20 20 20 45 51 55 53 20 | &0..8I| EQUS |
|00000cc0| 20 20 20 20 22 46 75 6e | 4d 65 6e 75 73 20 72 65 | "Fun|Menus re|
|00000cd0| 71 75 69 72 65 73 20 74 | 68 65 20 57 69 6d 70 53 |quires t|he WimpS|
|00000ce0| 57 49 56 65 20 6d 6f 64 | 75 6c 65 20 74 6f 20 62 |WIVe mod|ule to b|
|00000cf0| 65 20 70 72 65 73 65 6e | 74 22 2b bd 30 0d 04 42 |e presen|t"+.0..B|
|00000d00| 15 2e 60 6d 6f 64 75 6c | 65 5f 57 53 57 49 6e 61 |..`modul|e_WSWIna|
|00000d10| 6d 65 0d 04 4c 1e 20 20 | 20 45 51 55 53 20 20 20 |me..L. | EQUS |
|00000d20| 20 20 22 57 69 6d 70 53 | 57 49 56 65 22 2b bd 30 | "WimpS|WIVe"+.0|
|00000d30| 0d 04 56 0c 20 20 20 41 | 4c 49 47 4e 0d 04 60 15 |..V. A|LIGN..`.|
|00000d40| 2e 60 6d 6f 64 75 6c 65 | 5f 57 53 57 49 77 6f 72 |.`module|_WSWIwor|
|00000d50| 64 0d 04 6a 16 20 20 20 | 45 51 55 53 20 20 20 20 |d..j. |EQUS |
|00000d60| 20 22 57 53 57 49 22 0d | 04 74 05 3a 0d 04 7e 11 | "WSWI".|.t.:..~.|
|00000d70| 2e 6d 6f 64 75 6c 65 5f | 66 69 6e 61 6c 0d 04 88 |.module_|final...|
|00000d80| 37 20 20 20 53 54 4d 46 | 44 20 20 20 28 73 70 29 |7 STMF|D (sp)|
|00000d90| 21 2c 7b 72 30 2d 72 34 | 2c 72 31 32 2c 6c 69 6e |!,{r0-r4|,r12,lin|
|00000da0| 6b 7d 20 3b 20 53 74 61 | 63 6b 20 72 65 67 69 73 |k} ; Sta|ck regis|
|00000db0| 74 65 72 73 0d 04 92 18 | 20 20 20 4c 44 52 20 20 |ters....| LDR |
|00000dc0| 20 20 20 72 31 32 2c 5b | 72 31 32 5d 0d 04 9c 20 | r12,[|r12]... |
|00000dd0| 3b 20 2a 2a 2a 2a 2a 20 | 57 69 6d 70 53 57 49 20 |; ***** |WimpSWI |
|00000de0| 72 65 6c 65 61 73 65 20 | 63 6f 64 65 0d 04 a6 22 |release |code..."|
|00000df0| 20 20 20 4c 44 52 20 20 | 20 20 20 72 30 2c 60 6d | LDR | r0,`m|
|00000e00| 6f 64 75 6c 65 5f 57 53 | 57 49 77 6f 72 64 0d 04 |odule_WS|WIword..|
|00000e10| b0 15 20 20 20 4d 4f 56 | 20 20 20 20 20 72 32 2c |.. MOV| r2,|
|00000e20| 72 31 32 0d 04 ba 1f 20 | 20 20 4d 4f 56 20 20 20 |r12.... | MOV |
|00000e30| 20 20 72 31 2c 23 32 30 | 2b 28 25 30 30 3c 3c 33 | r1,#20|+(%00<<3|
|00000e40| 30 29 0d 04 c4 1f 20 a4 | 4c 41 44 52 28 22 22 2c |0).... .|LADR("",|
|00000e50| 33 2c 73 77 69 5f 63 72 | 65 61 74 65 6d 65 6e 75 |3,swi_cr|eatemenu|
|00000e60| 29 0d 04 ce 14 20 20 20 | 4d 4f 56 20 20 20 20 20 |).... |MOV |
|00000e70| 72 34 2c 23 30 0d 04 d8 | 24 20 20 20 53 57 49 20 |r4,#0...|$ SWI |
|00000e80| 20 20 20 20 22 57 69 6d | 70 5f 52 65 67 69 73 74 | "Wim|p_Regist|
|00000e90| 65 72 46 69 6c 74 65 72 | 22 0d 04 e2 1f 20 20 20 |erFilter|".... |
|00000ea0| 4d 4f 56 20 20 20 20 20 | 72 31 2c 23 34 30 2b 28 |MOV |r1,#40+(|
|00000eb0| 25 30 30 3c 3c 33 30 29 | 0d 04 ec 22 20 a4 4c 41 |%00<<30)|..." .LA|
|00000ec0| 44 52 28 22 22 2c 33 2c | 73 77 69 5f 63 72 65 61 |DR("",3,|swi_crea|
|00000ed0| 74 65 73 75 62 6d 65 6e | 75 29 0d 04 f6 14 20 20 |tesubmen|u).... |
|00000ee0| 20 4d 4f 56 20 20 20 20 | 20 72 34 2c 23 30 0d 05 | MOV | r4,#0..|
|00000ef0| 00 24 20 20 20 53 57 49 | 20 20 20 20 20 22 57 69 |.$ SWI| "Wi|
|00000f00| 6d 70 5f 52 65 67 69 73 | 74 65 72 46 69 6c 74 65 |mp_Regis|terFilte|
|00000f10| 72 22 0d 05 0a 39 20 20 | 20 4c 44 4d 46 44 20 20 |r"...9 | LDMFD |
|00000f20| 20 28 73 70 29 2c 7b 72 | 30 2d 72 34 7d 20 20 20 | (sp),{r|0-r4} |
|00000f30| 20 20 20 20 20 20 20 20 | 3b 20 72 65 73 74 6f 72 | |; restor|
|00000f40| 65 20 72 65 67 69 73 74 | 65 72 73 0d 05 14 21 20 |e regist|ers...! |
|00000f50| 20 20 42 4c 20 20 20 20 | 20 20 6d 6f 64 5f 73 65 | BL | mod_se|
|00000f60| 74 5f 50 6f 73 74 46 69 | 6c 74 65 72 0d 05 1e 2c |t_PostFi|lter...,|
|00000f70| 20 20 20 53 57 49 20 20 | 20 20 20 22 46 69 6c 74 | SWI | "Filt|
|00000f80| 65 72 5f 44 65 52 65 67 | 69 73 74 65 72 50 6f 73 |er_DeReg|isterPos|
|00000f90| 74 46 69 6c 74 65 72 22 | 0d 05 28 14 20 20 20 4d |tFilter"|..(. M|
|00000fa0| 4f 56 20 20 20 20 20 72 | 30 2c 23 37 0d 05 32 15 |OV r|0,#7..2.|
|00000fb0| 20 20 20 4d 4f 56 20 20 | 20 20 20 72 32 2c 72 31 | MOV | r2,r1|
|00000fc0| 32 0d 05 3c 39 20 20 20 | 53 57 49 20 20 20 20 20 |2..<9 |SWI |
|00000fd0| 22 58 4f 53 5f 4d 6f 64 | 75 6c 65 22 20 20 20 20 |"XOS_Mod|ule" |
|00000fe0| 20 20 20 20 20 20 20 3b | 20 52 65 6c 65 61 73 65 | ;| Release|
|00000ff0| 20 77 6f 72 6b 73 70 61 | 63 65 0d 05 46 17 20 20 | workspa|ce..F. |
|00001000| 20 41 44 44 56 53 20 20 | 20 73 70 2c 73 70 2c 23 | ADDVS | sp,sp,#|
|00001010| 34 0d 05 50 37 20 20 20 | 4c 44 4d 56 53 46 44 20 |4..P7 |LDMVSFD |
|00001020| 28 73 70 29 21 2c 7b 72 | 31 2d 72 34 2c 72 31 32 |(sp)!,{r|1-r4,r12|
|00001030| 2c 70 63 7d 20 20 20 3b | 20 52 65 74 75 72 6e 20 |,pc} ;| Return |
|00001040| 69 66 20 65 72 72 6f 72 | 0d 05 5a 2e 20 20 20 4c |if error|..Z. L|
|00001050| 44 4d 46 44 20 20 20 28 | 73 70 29 21 2c 7b 72 30 |DMFD (|sp)!,{r0|
|00001060| 2d 72 34 2c 72 31 32 2c | 70 63 7d 20 20 20 3b 20 |-r4,r12,|pc} ; |
|00001070| 52 65 74 75 72 6e 0d 05 | 64 05 3a 0d 05 6e 28 3b |Return..|d.:..n(;|
|00001080| 20 2a 2a 2a 2a 2a 20 53 | 65 74 20 75 70 20 72 65 | ***** S|et up re|
|00001090| 67 69 73 74 65 72 73 20 | 66 6f 72 20 66 69 6c 74 |gisters |for filt|
|000010a0| 65 72 73 0d 05 78 17 2e | 6d 6f 64 5f 73 65 74 5f |ers..x..|mod_set_|
|000010b0| 50 6f 73 74 46 69 6c 74 | 65 72 0d 05 82 1b 20 20 |PostFilt|er.... |
|000010c0| 20 53 54 4d 46 44 20 20 | 20 28 73 70 29 21 2c 7b | STMFD | (sp)!,{|
|000010d0| 6c 69 6e 6b 7d 0d 05 8c | 14 20 20 20 4d 4f 56 20 |link}...|. MOV |
|000010e0| 20 20 20 20 72 33 2c 23 | 30 0d 05 96 28 20 20 20 | r3,#|0...( |
|000010f0| 41 44 52 20 20 20 20 20 | 72 30 2c 60 6d 6f 64 75 |ADR |r0,`modu|
|00001100| 6c 65 5f 50 6f 73 74 46 | 69 6c 74 65 72 4e 61 6d |le_PostF|ilterNam|
|00001110| 65 0d 05 a0 1c 20 a4 4c | 41 44 52 28 22 22 2c 31 |e.... .L|ADR("",1|
|00001120| 2c 66 69 6c 74 65 72 5f | 70 6f 73 74 29 0d 05 aa |,filter_|post)...|
|00001130| 15 20 20 20 4d 4f 56 20 | 20 20 20 20 72 32 2c 72 |. MOV | r2,r|
|00001140| 31 32 0d 05 b4 28 20 20 | 20 4c 44 52 20 20 20 20 |12...( | LDR |
|00001150| 20 72 34 2c 60 6d 6f 64 | 75 6c 65 5f 50 6f 73 74 | r4,`mod|ule_Post|
|00001160| 46 69 6c 74 65 72 4d 61 | 73 6b 0d 05 be 19 20 20 |FilterMa|sk.... |
|00001170| 20 4c 44 4d 46 44 20 20 | 20 28 73 70 29 21 2c 7b | LDMFD | (sp)!,{|
|00001180| 70 63 7d 0d 05 c8 05 3a | 0d 05 d2 1b 2e 60 6d 6f |pc}....:|.....`mo|
|00001190| 64 75 6c 65 5f 50 6f 73 | 74 46 69 6c 74 65 72 4d |dule_Pos|tFilterM|
|000011a0| 61 73 6b 0d 05 dc 24 20 | 20 20 45 51 55 44 20 20 |ask...$ | EQUD |
|000011b0| 20 20 25 31 30 30 31 31 | 31 31 31 31 31 30 31 31 | %10011|11111011|
|000011c0| 31 31 31 31 31 31 31 0d | 05 e6 1b 2e 60 6d 6f 64 |1111111.|....`mod|
|000011d0| 75 6c 65 5f 50 6f 73 74 | 46 69 6c 74 65 72 4e 61 |ule_Post|FilterNa|
|000011e0| 6d 65 0d 05 f0 1d 20 20 | 20 45 51 55 53 20 20 20 |me.... | EQUS |
|000011f0| 20 22 46 75 6e 20 6d 65 | 6e 75 73 22 2b bd 30 0d | "Fun me|nus"+.0.|
|00001200| 05 fa 0c 20 20 20 41 4c | 49 47 4e 0d 06 04 05 3a |... AL|IGN....:|
|00001210| 0d 06 0e 2e 20 20 20 20 | 20 20 20 20 20 20 3b 20 |.... | ; |
|00001220| 2a 2a 2a 2a 20 45 6e 64 | 20 6f 66 20 6d 6f 64 75 |**** End| of modu|
|00001230| 6c 65 20 68 65 61 64 65 | 72 20 2a 2a 2a 2a 0d 06 |le heade|r ****..|
|00001240| 18 05 3a 0d 06 22 10 2e | 66 69 6c 74 65 72 5f 70 |..:.."..|filter_p|
|00001250| 6f 73 74 0d 06 2c 3e 20 | 20 20 53 54 4d 46 44 20 |ost..,> | STMFD |
|00001260| 20 20 28 73 70 29 21 2c | 7b 72 31 2d 72 35 2c 6c | (sp)!,|{r1-r5,l|
|00001270| 69 6e 6b 7d 20 20 20 20 | 20 20 20 20 20 20 20 20 |ink} | |
|00001280| 3b 20 53 74 61 63 6b 20 | 72 65 67 69 73 74 65 72 |; Stack |register|
|00001290| 73 0d 06 36 15 20 20 20 | 43 4d 50 20 20 20 20 20 |s..6. |CMP |
|000012a0| 72 30 2c 23 31 37 0d 06 | 40 15 20 20 20 43 4d 50 |r0,#17..|@. CMP|
|000012b0| 4e 45 20 20 20 72 30 2c | 23 31 38 0d 06 4a 16 20 |NE r0,|#18..J. |
|000012c0| 20 20 42 45 51 20 20 20 | 20 20 6d 65 73 73 61 67 | BEQ | messag|
|000012d0| 65 0d 06 54 14 20 20 20 | 43 4d 50 20 20 20 20 20 |e..T. |CMP |
|000012e0| 72 30 2c 23 39 0d 06 5e | 1c 20 20 20 42 45 51 20 |r0,#9..^|. BEQ |
|000012f0| 20 20 20 20 6d 65 6e 75 | 73 65 6c 65 63 74 69 6f | menu|selectio|
|00001300| 6e 0d 06 68 10 2e 65 78 | 69 74 5f 66 69 6c 74 65 |n..h..ex|it_filte|
|00001310| 72 0d 06 72 3f 20 20 20 | 4c 44 4d 46 44 20 20 20 |r..r? |LDMFD |
|00001320| 28 73 70 29 21 2c 7b 72 | 31 2d 72 35 2c 70 63 7d |(sp)!,{r|1-r5,pc}|
|00001330| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|00001340| 52 65 74 75 72 6e 20 66 | 72 6f 6d 20 63 61 6c 6c |Return f|rom call|
|00001350| 0d 06 7c 05 3a 0d 06 86 | 12 2e 6d 65 6e 75 73 65 |..|.:...|..menuse|
|00001360| 6c 65 63 74 69 6f 6e 0d | 06 90 18 20 20 20 42 4c |lection.|... BL|
|00001370| 20 20 20 20 20 20 66 69 | 6e 64 65 6e 74 72 79 0d | fi|ndentry.|
|00001380| 06 9a 4f 20 20 20 43 4d | 4e 20 20 20 20 20 72 32 |..O CM|N r2|
|00001390| 2c 23 31 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |,#1 | |
|000013a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 3b 20 69 73 | | ; is|
|000013b0| 20 74 68 69 73 20 72 65 | 61 6c 6c 79 20 61 20 73 | this re|ally a s|
|000013c0| 68 61 64 65 64 20 6f 70 | 74 69 6f 6e 20 3f 0d 06 |haded op|tion ?..|
|000013d0| a4 42 20 20 20 53 54 52 | 45 51 20 20 20 72 32 2c |.B STR|EQ r2,|
|000013e0| 5b 72 31 5d 20 20 20 20 | 20 20 20 20 20 20 20 20 |[r1] | |
|000013f0| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 69 66 20 | | ; if |
|00001400| 73 6f 2c 20 6d 61 72 6b | 20 61 73 20 73 75 63 68 |so, mark| as such|
|00001410| 0d 06 ae 37 20 20 20 42 | 45 51 20 20 20 20 20 65 |...7 B|EQ e|
|00001420| 78 69 74 5f 66 69 6c 74 | 65 72 20 20 20 20 20 20 |xit_filt|er |
|00001430| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 3b 20 61 | | ; a|
|00001440| 6e 64 20 65 78 69 74 0d | 06 b8 1f 20 20 20 4c 44 |nd exit.|... LD|
|00001450| 52 20 20 20 20 20 72 32 | 2c 5b 72 32 2c 23 60 69 |R r2|,[r2,#`i|
|00001460| 66 6c 61 67 73 5d 0d 06 | c2 29 20 20 20 20 20 20 |flags]..|.) |
|00001470| 20 20 20 20 3b 20 6f 74 | 68 65 72 77 69 73 65 2c | ; ot|herwise,|
|00001480| 20 67 65 74 20 69 63 6f | 6e 20 66 6c 61 67 73 0d | get ico|n flags.|
|00001490| 06 cc 46 20 20 20 80 20 | 20 20 20 20 72 32 2c 72 |..F . | r2,r|
|000014a0| 32 2c 23 31 35 3c 3c 32 | 34 20 20 20 20 20 20 20 |2,#15<<2|4 |
|000014b0| 20 20 20 20 20 20 20 20 | 20 20 3b 20 6c 65 61 76 | | ; leav|
|000014c0| 65 20 6a 75 73 74 20 74 | 68 65 20 66 6f 72 65 67 |e just t|he foreg|
|000014d0| 72 6f 75 6e 64 0d 06 d6 | 42 20 20 20 43 4d 50 20 |round...|B CMP |
|000014e0| 20 20 20 20 72 32 2c 23 | 30 20 20 20 20 20 20 20 | r2,#|0 |
|000014f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001500| 20 20 3b 20 69 66 20 30 | 20 74 68 65 6e 20 69 73 | ; if 0| then is|
|00001510| 20 73 68 61 64 65 64 0d | 06 e0 3a 20 20 20 4d 56 | shaded.|..: MV|
|00001520| 4e 45 51 20 20 20 72 32 | 2c 23 ac 20 2d 31 20 20 |NEQ r2|,#. -1 |
|00001530| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001540| 20 20 3b 20 73 6f 20 67 | 65 74 20 2d 31 20 2e 2e | ; so g|et -1 ..|
|00001550| 2e 0d 06 ea 4f 20 20 20 | 53 54 52 45 51 20 20 20 |....O |STREQ |
|00001560| 72 32 2c 5b 72 31 5d 20 | 20 20 20 20 20 20 20 20 |r2,[r1] | |
|00001570| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|00001580| 2e 2e 2e 20 61 6e 64 20 | 73 74 6f 72 65 20 69 6e |... and |store in|
|00001590| 20 73 65 6c 65 63 74 69 | 6f 6e 20 62 6c 6f 63 6b | selecti|on block|
|000015a0| 0d 06 f4 37 20 20 20 42 | 45 51 20 20 20 20 20 65 |...7 B|EQ e|
|000015b0| 78 69 74 5f 66 69 6c 74 | 65 72 20 20 20 20 20 20 |xit_filt|er |
|000015c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 3b 20 61 | | ; a|
|000015d0| 6e 64 20 65 78 69 74 0d | 06 fe 05 3a 0d 07 08 0c |nd exit.|...:....|
|000015e0| 2e 6d 65 73 73 61 67 65 | 0d 07 12 3f 20 20 20 4c |.message|...? L|
|000015f0| 44 52 20 20 20 20 20 72 | 32 2c 5b 72 31 2c 23 31 |DR r|2,[r1,#1|
|00001600| 36 5d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |6] | |
|00001610| 20 20 20 20 20 3b 20 67 | 65 74 20 6d 65 73 73 61 | ; g|et messa|
|00001620| 67 65 20 63 6f 64 65 0d | 07 1c 44 20 20 20 53 55 |ge code.|..D SU|
|00001630| 42 20 20 20 20 20 72 32 | 2c 72 32 2c 23 26 34 30 |B r2|,r2,#&40|
|00001640| 30 30 30 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |000 | |
|00001650| 20 20 20 20 3b 20 69 73 | 20 69 74 20 65 71 75 61 | ; is| it equa|
|00001660| 6c 20 74 6f 20 26 34 30 | 30 43 30 0d 07 26 30 20 |l to &40|0C0..&0 |
|00001670| 20 20 43 4d 50 20 20 20 | 20 20 72 32 2c 23 26 43 | CMP | r2,#&C|
|00001680| 30 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |0 | |
|00001690| 20 20 20 20 20 20 20 20 | 3b 20 3f 0d 07 30 1a 20 | |; ?..0. |
|000016a0| 20 20 42 4e 45 20 20 20 | 20 20 65 78 69 74 5f 66 | BNE | exit_f|
|000016b0| 69 6c 74 65 72 0d 07 3a | 19 20 20 20 53 54 4d 46 |ilter..:|. STMF|
|000016c0| 44 20 20 20 28 73 70 29 | 21 2c 7b 72 30 7d 0d 07 |D (sp)|!,{r0}..|
|000016d0| 44 47 20 20 20 41 44 44 | 20 20 20 20 20 72 31 2c |DG ADD| r1,|
|000016e0| 72 31 2c 23 33 32 20 20 | 20 20 20 20 20 20 20 20 |r1,#32 | |
|000016f0| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 6f 66 66 | | ; off|
|00001700| 73 65 74 20 74 6f 20 73 | 65 6c 65 63 74 69 6f 6e |set to s|election|
|00001710| 20 6c 69 73 74 0d 07 4e | 16 20 20 20 4c 44 52 20 | list..N|. LDR |
|00001720| 20 20 20 20 72 30 2c 5b | 72 31 5d 0d 07 58 31 20 | r0,[|r1]..X1 |
|00001730| 20 20 20 20 20 20 20 20 | 20 3b 20 22 25 63 30 34 | | ; "%c04|
|00001740| 53 75 62 6d 65 6e 75 20 | 6f 70 65 6e 69 6e 67 2c |Submenu |opening,|
|00001750| 20 6f 70 74 69 6f 6e 20 | 25 72 30 22 0d 07 62 4e | option |%r0"..bN|
|00001760| 20 20 20 42 4c 20 20 20 | 20 20 20 66 69 6e 64 65 | BL | finde|
|00001770| 6e 74 72 79 20 20 20 20 | 20 20 20 20 20 20 20 20 |ntry | |
|00001780| 20 20 20 20 20 20 20 20 | 20 3b 20 66 69 6e 64 20 | | ; find |
|00001790| 74 68 65 20 65 6e 74 72 | 79 20 61 6e 64 20 72 65 |the entr|y and re|
|000017a0| 74 75 72 6e 20 69 6e 20 | 72 32 0d 07 6c 1f 20 20 |turn in |r2..l. |
|000017b0| 20 20 20 20 20 20 20 20 | 3b 20 22 49 73 20 6f 70 | |; "Is op|
|000017c0| 74 69 6f 6e 20 25 72 32 | 22 0d 07 76 1f 20 20 20 |tion %r2|"..v. |
|000017d0| 4c 44 52 20 20 20 20 20 | 72 33 2c 5b 72 32 2c 23 |LDR |r3,[r2,#|
|000017e0| 60 6d 66 6c 61 67 73 5d | 0d 07 80 1e 20 20 20 20 |`mflags]|.... |
|000017f0| 20 20 20 20 20 20 3b 20 | 67 65 74 20 6d 65 6e 75 | ; |get menu|
|00001800| 20 66 6c 61 67 73 0d 07 | 8a 44 20 20 20 54 53 54 | flags..|.D TST|
|00001810| 20 20 20 20 20 72 33 2c | 23 31 3c 3c 33 30 20 20 | r3,|#1<<30 |
|00001820| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001830| 20 20 20 3b 20 69 73 20 | 73 65 6e 64 20 6d 65 73 | ; is |send mes|
|00001840| 73 61 67 65 20 73 65 74 | 20 3f 0d 07 94 1d 20 20 |sage set| ?.... |
|00001850| 20 42 4e 45 20 20 20 20 | 20 5f 5f 7a 30 5f 6e 6f | BNE | __z0_no|
|00001860| 74 73 68 61 64 65 64 0d | 07 9e 1f 20 20 20 4c 44 |tshaded.|... LD|
|00001870| 52 20 20 20 20 20 72 33 | 2c 5b 72 32 2c 23 60 69 |R r3|,[r2,#`i|
|00001880| 66 6c 61 67 73 5d 0d 07 | a8 1e 20 20 20 20 20 20 |flags]..|.. |
|00001890| 20 20 20 20 3b 20 67 65 | 74 20 69 63 6f 6e 20 66 | ; ge|t icon f|
|000018a0| 6c 61 67 73 0d 07 b2 42 | 20 20 20 80 20 20 20 20 |lags...B| . |
|000018b0| 20 72 33 2c 72 33 2c 23 | 31 35 3c 3c 32 34 20 20 | r3,r3,#|15<<24 |
|000018c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b | | ;|
|000018d0| 20 67 65 74 20 66 6f 72 | 65 67 72 6f 75 6e 64 20 | get for|eground |
|000018e0| 63 6f 6c 6f 75 72 0d 07 | bc 3c 20 20 20 43 4d 50 |colour..|.< CMP|
|000018f0| 20 20 20 20 20 72 33 2c | 23 30 20 20 20 20 20 20 | r3,|#0 |
|00001900| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001910| 20 20 20 3b 20 69 73 20 | 69 74 20 77 68 69 74 65 | ; is |it white|
|00001920| 20 3f 0d 07 c6 45 20 20 | 20 42 4e 45 20 20 20 20 | ?...E | BNE |
|00001930| 20 5f 5f 7a 30 5f 6e 6f | 74 73 68 61 64 65 64 20 | __z0_no|tshaded |
|00001940| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001950| 20 20 20 3b 20 69 66 20 | 6e 6f 74 20 74 68 65 6e | ; if |not then|
|00001960| 20 62 79 70 61 73 73 0d | 07 d0 1b 20 20 20 20 20 | bypass.|... |
|00001970| 20 20 20 20 20 3b 20 22 | 49 73 20 73 68 61 64 65 | ; "|Is shade|
|00001980| 64 22 0d 07 da 1f 20 20 | 20 4c 44 52 20 20 20 20 |d".... | LDR |
|00001990| 20 72 33 2c 5b 72 32 2c | 23 60 6d 66 6c 61 67 73 | r3,[r2,|#`mflags|
|000019a0| 5d 0d 07 e4 1e 20 20 20 | 20 20 20 20 20 20 20 3b |].... | ;|
|000019b0| 20 67 65 74 20 6d 65 6e | 75 20 66 6c 61 67 73 0d | get men|u flags.|
|000019c0| 07 ee 4d 20 20 20 54 53 | 54 20 20 20 20 20 72 33 |..M TS|T r3|
|000019d0| 2c 23 31 3c 3c 34 20 20 | 20 20 20 20 20 20 20 20 |,#1<<4 | |
|000019e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 3b 20 63 61 | | ; ca|
|000019f0| 6e 20 69 74 20 62 65 20 | 6f 70 65 6e 65 64 20 77 |n it be |opened w|
|00001a00| 68 65 6e 20 67 72 65 79 | 65 64 20 3f 0d 07 f8 4d |hen grey|ed ?...M|
|00001a10| 20 20 20 42 4e 45 20 20 | 20 20 20 5f 5f 7a 30 5f | BNE | __z0_|
|00001a20| 63 61 6e 6f 70 65 6e 20 | 20 20 20 20 20 20 20 20 |canopen | |
|00001a30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 3b 20 69 | | ; i|
|00001a40| 66 20 69 74 20 63 61 6e | 20 74 68 65 6e 20 69 74 |f it can| then it|
|00001a50| 20 63 61 6e 20 6f 70 65 | 6e 0d 08 02 19 2e 5f 5f | can ope|n.....__|
|00001a60| 7a 30 5f 74 61 73 6b 73 | 65 65 73 6e 6f 74 68 69 |z0_tasks|eesnothi|
|00001a70| 6e 67 0d 08 0c 23 20 20 | 20 20 20 20 20 20 20 20 |ng...# | |
|00001a80| 3b 20 22 54 61 73 6b 20 | 73 65 65 73 20 6e 6f 74 |; "Task |sees not|
|00001a90| 68 69 6e 67 22 0d 08 16 | 4f 20 20 20 41 44 44 20 |hing"...|O ADD |
|00001aa0| 20 20 20 20 73 70 2c 73 | 70 2c 23 34 20 20 20 20 | sp,s|p,#4 |
|00001ab0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001ac0| 20 20 3b 20 69 6e 63 72 | 65 6d 65 6e 74 20 73 74 | ; incr|ement st|
|00001ad0| 61 63 6b 20 74 6f 20 72 | 65 6d 6f 76 65 20 72 65 |ack to r|emove re|
|00001ae0| 61 73 6f 6e 0d 08 20 49 | 20 20 20 4d 4f 56 20 20 |ason.. I| MOV |
|00001af0| 20 20 20 72 30 2c 23 30 | 20 20 20 20 20 20 20 20 | r0,#0| |
|00001b00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001b10| 20 3b 20 63 61 6e 27 74 | 20 6f 70 65 6e 2c 20 73 | ; can't| open, s|
|00001b20| 6f 20 6e 6f 20 73 75 62 | 2d 6d 65 6e 75 0d 08 2a |o no sub|-menu..*|
|00001b30| 41 20 20 20 42 20 20 20 | 20 20 20 20 65 78 69 74 |A B | exit|
|00001b40| 5f 66 69 6c 74 65 72 20 | 20 20 20 20 20 20 20 20 |_filter | |
|00001b50| 20 20 20 20 20 20 20 20 | 20 20 3b 20 73 6f 20 65 | | ; so e|
|00001b60| 78 69 74 20 74 68 65 20 | 66 69 6c 74 65 72 0d 08 |xit the |filter..|
|00001b70| 34 05 3a 0d 08 3e 11 2e | 5f 5f 7a 30 5f 63 61 6e |4.:..>..|__z0_can|
|00001b80| 6f 70 65 6e 0d 08 48 27 | 20 20 20 20 20 20 20 20 |open..H'| |
|00001b90| 20 20 3b 20 22 43 61 6e | 20 62 65 20 6f 70 65 6e | ; "Can| be open|
|00001ba0| 65 64 20 69 66 20 67 72 | 65 79 22 0d 08 52 50 20 |ed if gr|ey"..RP |
|00001bb0| 20 20 53 55 42 20 20 20 | 20 20 72 31 2c 72 31 2c | SUB | r1,r1,|
|00001bc0| 23 31 32 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |#12 | |
|00001bd0| 20 20 20 20 20 20 20 20 | 3b 20 6d 6f 76 65 20 70 | |; move p|
|00001be0| 6f 69 6e 74 65 72 20 62 | 61 63 6b 20 74 6f 20 73 |ointer b|ack to s|
|00001bf0| 75 62 2d 6d 65 6e 75 20 | 70 74 72 0d 08 5c 41 3b |ub-menu |ptr..\A;|
|00001c00| 20 20 20 20 42 4c 20 20 | 20 20 20 20 63 68 65 63 | BL | chec|
|00001c10| 6b 77 69 6e 64 6f 77 20 | 20 20 20 20 20 20 20 20 |kwindow | |
|00001c20| 20 20 20 20 20 20 20 20 | 20 20 3b 20 69 73 20 69 | | ; is i|
|00001c30| 74 20 61 20 77 69 6e 64 | 6f 77 20 3f 0d 08 66 40 |t a wind|ow ?..f@|
|00001c40| 3b 20 20 20 20 42 45 51 | 20 20 20 20 20 5f 5f 7a |; BEQ| __z|
|00001c50| 30 5f 74 61 73 6b 73 65 | 65 73 6e 6f 74 68 69 6e |0_taskse|esnothin|
|00001c60| 67 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b |g | ;|
|00001c70| 20 69 66 20 73 6f 2c 20 | 65 78 69 74 0d 08 70 4a | if so, |exit..pJ|
|00001c80| 20 20 20 4c 44 4d 49 41 | 20 20 20 72 31 2c 7b 72 | LDMIA| r1,{r|
|00001c90| 31 2c 72 32 2c 72 33 7d | 20 20 20 20 20 20 20 20 |1,r2,r3}| |
|00001ca0| 20 20 20 20 20 20 20 20 | 20 3b 20 72 65 61 64 20 | | ; read |
|00001cb0| 70 6f 69 6e 74 65 72 2c | 20 61 6e 64 20 6c 6f 63 |pointer,| and loc|
|00001cc0| 61 74 69 6f 6e 73 0d 08 | 7a 25 20 20 20 20 20 20 |ations..|z% |
|00001cd0| 20 20 20 20 3b 20 22 4f | 70 65 6e 69 6e 67 20 6d | ; "O|pening m|
|00001ce0| 65 6e 75 20 61 74 20 25 | 26 31 22 0d 08 84 46 20 |enu at %|&1"...F |
|00001cf0| 20 20 53 57 49 20 20 20 | 20 20 22 57 69 6d 70 5f | SWI | "Wimp_|
|00001d00| 43 72 65 61 74 65 53 75 | 62 4d 65 6e 75 22 20 20 |CreateSu|bMenu" |
|00001d10| 20 20 20 20 20 20 20 20 | 3b 20 61 6e 64 20 63 72 | |; and cr|
|00001d20| 65 61 74 65 20 74 68 65 | 20 73 75 62 2d 6d 65 6e |eate the| sub-men|
|00001d30| 75 0d 08 8e 23 20 20 20 | 42 20 20 20 20 20 20 20 |u...# |B |
|00001d40| 5f 5f 7a 30 5f 74 61 73 | 6b 73 65 65 73 6e 6f 74 |__z0_tas|kseesnot|
|00001d50| 68 69 6e 67 0d 08 98 13 | 2e 5f 5f 7a 30 5f 6e 6f |hing....|.__z0_no|
|00001d60| 74 73 68 61 64 65 64 0d | 08 a2 4b 20 20 20 4c 44 |tshaded.|..K LD|
|00001d70| 4d 46 44 20 20 20 28 73 | 70 29 21 2c 7b 72 30 7d |MFD (s|p)!,{r0}|
|00001d80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001d90| 20 20 20 20 3b 20 6e 6f | 74 20 73 68 61 64 65 64 | ; no|t shaded|
|00001da0| 20 73 6f 20 72 65 73 74 | 6f 72 65 20 72 65 61 73 | so rest|ore reas|
|00001db0| 6f 6e 0d 08 ac 44 20 20 | 20 42 20 20 20 20 20 20 |on...D | B |
|00001dc0| 20 65 78 69 74 5f 66 69 | 6c 74 65 72 20 20 20 20 | exit_fi|lter |
|00001dd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b | | ;|
|00001de0| 20 61 6e 64 20 70 61 73 | 73 20 62 61 63 6b 20 74 | and pas|s back t|
|00001df0| 6f 20 74 61 73 6b 0d 08 | b6 05 3a 0d 08 c0 13 2e |o task..|..:.....|
|00001e00| 73 77 69 5f 63 72 65 61 | 74 65 6d 65 6e 75 0d 08 |swi_crea|temenu..|
|00001e10| ca 3e 20 20 20 53 54 4d | 46 44 20 20 20 28 73 70 |.> STM|FD (sp|
|00001e20| 29 21 2c 7b 72 30 2d 72 | 35 2c 6c 69 6e 6b 7d 20 |)!,{r0-r|5,link} |
|00001e30| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 53 74 61 | | ; Sta|
|00001e40| 63 6b 20 72 65 67 69 73 | 74 65 72 73 0d 08 d4 1e |ck regis|ters....|
|00001e50| 20 20 20 53 54 52 20 20 | 20 20 20 72 31 2c 5b 72 | STR | r1,[r|
|00001e60| 31 32 2c 23 60 6d 65 6e | 75 5d 0d 08 de 1c 20 20 |12,#`men|u].... |
|00001e70| 20 42 4c 20 20 20 20 20 | 20 73 63 61 6e 73 74 72 | BL | scanstr|
|00001e80| 75 63 74 75 72 65 0d 08 | e8 3f 20 20 20 4c 44 4d |ucture..|.? LDM|
|00001e90| 46 44 20 20 20 28 73 70 | 29 21 2c 7b 72 30 2d 72 |FD (sp|)!,{r0-r|
|00001ea0| 35 2c 70 63 7d 20 20 20 | 20 20 20 20 20 20 20 20 |5,pc} | |
|00001eb0| 20 20 20 3b 20 52 65 74 | 75 72 6e 20 66 72 6f 6d | ; Ret|urn from|
|00001ec0| 20 63 61 6c 6c 0d 08 f2 | 05 3a 0d 08 fc 16 2e 73 | call...|.:.....s|
|00001ed0| 77 69 5f 63 72 65 61 74 | 65 73 75 62 6d 65 6e 75 |wi_creat|esubmenu|
|00001ee0| 0d 09 06 3e 20 20 20 53 | 54 4d 46 44 20 20 20 28 |...> S|TMFD (|
|00001ef0| 73 70 29 21 2c 7b 72 30 | 2d 72 35 2c 6c 69 6e 6b |sp)!,{r0|-r5,link|
|00001f00| 7d 20 20 20 20 20 20 20 | 20 20 20 20 20 3b 20 53 |} | ; S|
|00001f10| 74 61 63 6b 20 72 65 67 | 69 73 74 65 72 73 0d 09 |tack reg|isters..|
|00001f20| 10 1c 20 20 20 42 4c 20 | 20 20 20 20 20 73 63 61 |.. BL | sca|
|00001f30| 6e 73 74 72 75 63 74 75 | 72 65 0d 09 1a 3f 20 20 |nstructu|re...? |
|00001f40| 20 4c 44 4d 46 44 20 20 | 20 28 73 70 29 21 2c 7b | LDMFD | (sp)!,{|
|00001f50| 72 30 2d 72 35 2c 70 63 | 7d 20 20 20 20 20 20 20 |r0-r5,pc|} |
|00001f60| 20 20 20 20 20 20 20 3b | 20 52 65 74 75 72 6e 20 | ;| Return |
|00001f70| 66 72 6f 6d 20 63 61 6c | 6c 0d 09 24 05 3a 0d 09 |from cal|l..$.:..|
|00001f80| 2e 46 3b 20 63 68 65 63 | 6b 77 69 6e 64 6f 77 20 |.F; chec|kwindow |
|00001f90| 2d 20 74 65 73 74 73 20 | 74 6f 20 73 65 65 20 69 |- tests |to see i|
|00001fa0| 66 20 6d 65 6e 75 20 70 | 6f 69 6e 74 65 72 20 69 |f menu p|ointer i|
|00001fb0| 73 20 69 6e 76 61 6c 69 | 64 20 28 45 51 20 69 66 |s invali|d (EQ if|
|00001fc0| 20 73 6f 29 0d 09 38 19 | 3b 20 3e 20 72 31 20 3d | so)..8.|; > r1 =|
|00001fd0| 20 6d 65 6e 75 20 70 6f | 69 6e 74 65 72 0d 09 42 | menu po|inter..B|
|00001fe0| 14 3b 20 3c 20 45 51 20 | 69 66 20 77 69 6e 64 6f |.; < EQ |if windo|
|00001ff0| 77 0d 09 4c 10 2e 63 68 | 65 63 6b 77 69 6e 64 6f |w..L..ch|eckwindo|
|00002000| 77 0d 09 56 3e 20 20 20 | 53 54 4d 46 44 20 20 20 |w..V> |STMFD |
|00002010| 28 73 70 29 21 2c 7b 72 | 30 2d 72 35 2c 6c 69 6e |(sp)!,{r|0-r5,lin|
|00002020| 6b 7d 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 |k} | ; |
|00002030| 53 74 61 63 6b 20 72 65 | 67 69 73 74 65 72 73 0d |Stack re|gisters.|
|00002040| 09 60 3f 20 20 20 43 4d | 4e 20 20 20 20 20 72 31 |.`? CM|N r1|
|00002050| 2c 23 31 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |,#1 | |
|00002060| 20 20 20 20 20 20 20 20 | 20 20 20 20 3b 20 2d 31 | | ; -1|
|00002070| 20 69 66 20 63 6c 6f 73 | 65 20 6d 65 6e 75 0d 09 | if clos|e menu..|
|00002080| 6a 44 20 20 20 43 4d 50 | 4e 45 20 20 20 72 31 2c |jD CMP|NE r1,|
|00002090| 23 30 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |#0 | |
|000020a0| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 6f 72 20 | | ; or |
|000020b0| 69 66 20 30 20 64 6f 6e | 27 74 20 70 72 6f 63 65 |if 0 don|'t proce|
|000020c0| 73 73 0d 09 74 3b 20 20 | 20 42 45 51 20 20 20 20 |ss..t; | BEQ |
|000020d0| 20 5f 5f 7a 31 5f 65 78 | 69 74 20 20 20 20 20 20 | __z1_ex|it |
|000020e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000020f0| 20 20 20 3b 20 79 20 3d | 20 65 78 69 74 0d 09 7e | ; y =| exit..~|
|00002100| 3e 20 20 20 4d 4f 56 20 | 20 20 20 20 72 30 2c 72 |> MOV | r0,r|
|00002110| 31 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |1 | |
|00002120| 20 20 20 20 20 20 20 20 | 20 20 3b 20 72 30 3d 6d | | ; r0=m|
|00002130| 65 6e 75 20 61 64 64 72 | 65 73 73 0d 09 88 39 20 |enu addr|ess...9 |
|00002140| 20 20 42 49 43 20 20 20 | 20 20 72 30 2c 72 30 2c | BIC | r0,r0,|
|00002150| 23 33 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |#3 | |
|00002160| 20 20 20 20 20 20 20 20 | 3b 20 77 6f 72 64 20 61 | |; word a|
|00002170| 6c 69 67 6e 0d 09 92 3b | 20 20 20 41 44 44 20 20 |lign...;| ADD |
|00002180| 20 20 20 72 31 2c 72 30 | 2c 23 32 38 2b 32 34 20 | r1,r0|,#28+24 |
|00002190| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000021a0| 20 3b 20 65 6e 64 20 6f | 66 20 62 6c 6f 63 6b 0d | ; end o|f block.|
|000021b0| 09 9c 3b 20 20 20 53 57 | 49 20 20 20 20 20 22 58 |..; SW|I "X|
|000021c0| 4f 53 5f 56 61 6c 69 64 | 61 74 65 41 64 64 72 65 |OS_Valid|ateAddre|
|000021d0| 73 73 22 20 20 20 20 20 | 20 20 20 20 3b 20 63 68 |ss" | ; ch|
|000021e0| 65 63 6b 20 65 78 69 73 | 74 73 0d 09 a6 44 20 20 |eck exis|ts...D |
|000021f0| 20 42 43 53 20 20 20 20 | 20 5f 5f 7a 31 5f 65 78 | BCS | __z1_ex|
|00002200| 69 74 77 69 74 68 65 71 | 20 20 20 20 20 20 20 20 |itwitheq| |
|00002210| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 69 66 20 | | ; if |
|00002220| 6e 6f 74 20 76 61 6c 69 | 64 20 65 78 69 74 0d 09 |not vali|d exit..|
|00002230| b0 40 20 20 20 42 56 53 | 20 20 20 20 20 5f 5f 7a |.@ BVS| __z|
|00002240| 31 5f 65 78 69 74 77 69 | 74 68 65 71 20 20 20 20 |1_exitwi|theq |
|00002250| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b | | ;|
|00002260| 20 69 66 20 65 72 72 6f | 72 20 65 78 69 74 0d 09 | if erro|r exit..|
|00002270| ba 44 20 20 20 53 55 42 | 20 20 20 20 20 72 31 2c |.D SUB| r1,|
|00002280| 72 31 2c 23 32 38 2b 32 | 34 20 20 20 20 20 20 20 |r1,#28+2|4 |
|00002290| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 72 65 73 | | ; res|
|000022a0| 74 6f 72 65 20 62 6c 6f | 63 6b 20 61 64 64 72 65 |tore blo|ck addre|
|000022b0| 73 73 0d 09 c4 3d 20 20 | 20 4c 44 52 20 20 20 20 |ss...= | LDR |
|000022c0| 20 72 30 2c 5b 72 31 5d | 20 20 20 20 20 20 20 20 | r0,[r1]| |
|000022d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b | | ;|
|000022e0| 20 67 65 74 20 66 69 72 | 73 74 20 77 6f 72 64 0d | get fir|st word.|
|000022f0| 09 ce 40 20 20 20 4c 44 | 52 20 20 20 20 20 72 32 |..@ LD|R r2|
|00002300| 2c 5f 5f 7a 31 5f 60 77 | 69 6e 64 74 65 78 74 20 |,__z1_`w|indtext |
|00002310| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002320| 3b 20 67 65 74 20 77 6f | 72 64 20 57 69 6e 64 0d |; get wo|rd Wind.|
|00002330| 09 d8 4a 20 20 20 43 4d | 50 20 20 20 20 20 72 30 |..J CM|P r0|
|00002340| 2c 72 32 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |,r2 | |
|00002350| 20 20 20 20 20 20 20 20 | 20 20 20 20 3b 20 69 66 | | ; if|
|00002360| 20 73 61 6d 65 20 74 68 | 65 6e 20 61 20 77 69 6e | same th|en a win|
|00002370| 64 6f 77 20 62 6c 6f 63 | 6b 0d 09 e2 44 20 20 20 |dow bloc|k...D |
|00002380| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002390| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000023a0| 20 20 20 20 20 20 3b 20 | 45 51 20 73 74 61 74 75 | ; |EQ statu|
|000023b0| 73 20 69 73 20 72 65 74 | 75 72 6e 65 64 0d 09 ec |s is ret|urned...|
|000023c0| 0e 2e 5f 5f 7a 31 5f 65 | 78 69 74 0d 09 f6 3f 20 |..__z1_e|xit...? |
|000023d0| 20 20 4c 44 4d 46 44 20 | 20 20 28 73 70 29 21 2c | LDMFD | (sp)!,|
|000023e0| 7b 72 30 2d 72 35 2c 70 | 63 7d 20 20 20 20 20 20 |{r0-r5,p|c} |
|000023f0| 20 20 20 20 20 20 20 20 | 3b 20 52 65 74 75 72 6e | |; Return|
|00002400| 20 66 72 6f 6d 20 63 61 | 6c 6c 0d 0a 00 14 2e 5f | from ca|ll....._|
|00002410| 5f 7a 31 5f 65 78 69 74 | 77 69 74 68 65 71 0d 0a |_z1_exit|witheq..|
|00002420| 0a 3d 20 20 20 43 4d 50 | 20 20 20 20 20 72 30 2c |.= CMP| r0,|
|00002430| 72 30 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |r0 | |
|00002440| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 73 65 74 | | ; set|
|00002450| 73 20 45 51 20 73 74 61 | 74 75 73 0d 0a 14 3f 20 |s EQ sta|tus...? |
|00002460| 20 20 4c 44 4d 46 44 20 | 20 20 28 73 70 29 21 2c | LDMFD | (sp)!,|
|00002470| 7b 72 30 2d 72 35 2c 70 | 63 7d 20 20 20 20 20 20 |{r0-r5,p|c} |
|00002480| 20 20 20 20 20 20 20 20 | 3b 20 52 65 74 75 72 6e | |; Return|
|00002490| 20 66 72 6f 6d 20 63 61 | 6c 6c 0d 0a 1e 05 3a 0d | from ca|ll....:.|
|000024a0| 0a 28 13 2e 5f 5f 7a 31 | 5f 60 77 69 6e 64 74 65 |.(..__z1|_`windte|
|000024b0| 78 74 0d 0a 32 15 20 20 | 20 45 51 55 53 20 20 20 |xt..2. | EQUS |
|000024c0| 20 22 57 69 6e 64 22 0d | 0a 3c 05 3a 0d 0a 46 12 | "Wind".|.<.:..F.|
|000024d0| 2e 73 63 61 6e 73 74 72 | 75 63 74 75 72 65 0d 0a |.scanstr|ucture..|
|000024e0| 50 3e 20 20 20 53 54 4d | 46 44 20 20 20 28 73 70 |P> STM|FD (sp|
|000024f0| 29 21 2c 7b 72 30 2d 72 | 35 2c 6c 69 6e 6b 7d 20 |)!,{r0-r|5,link} |
|00002500| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 53 74 61 | | ; Sta|
|00002510| 63 6b 20 72 65 67 69 73 | 74 65 72 73 0d 0a 5a 1a |ck regis|ters..Z.|
|00002520| 20 20 20 42 4c 20 20 20 | 20 20 20 63 68 65 63 6b | BL | check|
|00002530| 77 69 6e 64 6f 77 0d 0a | 64 18 20 20 20 42 45 51 |window..|d. BEQ|
|00002540| 20 20 20 20 20 5f 5f 7a | 32 5f 65 78 69 74 0d 0a | __z|2_exit..|
|00002550| 6e 1a 20 a4 4c 41 44 44 | 28 22 20 20 22 2c 32 2c |n. .LADD|(" ",2,|
|00002560| 31 2c 60 64 61 74 61 29 | 0d 0a 78 29 20 20 20 20 |1,`data)|..x) |
|00002570| 20 20 20 20 20 20 3b 20 | 67 65 74 20 70 6f 69 6e | ; |get poin|
|00002580| 74 65 72 20 74 6f 20 6d | 65 6e 75 20 69 74 65 6d |ter to m|enu item|
|00002590| 73 0d 0a 82 20 20 20 20 | 4c 44 52 20 20 20 20 20 |s... |LDR |
|000025a0| 72 30 2c 5b 72 31 32 2c | 23 60 63 6f 6c 6f 75 72 |r0,[r12,|#`colour|
|000025b0| 5d 0d 0a 8c 22 20 20 20 | 20 20 20 20 20 20 20 3b |]..." | ;|
|000025c0| 20 67 65 74 20 63 6f 6c | 6f 75 72 20 63 6f 75 6e | get col|our coun|
|000025d0| 74 65 72 0d 0a 96 50 20 | 20 20 41 44 52 20 20 20 |ter...P | ADR |
|000025e0| 20 20 72 34 2c 5f 5f 7a | 32 5f 60 63 6f 6c 6f 75 | r4,__z|2_`colou|
|000025f0| 72 73 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |rs | |
|00002600| 20 20 20 20 3b 20 67 65 | 74 20 61 64 64 72 65 73 | ; ge|t addres|
|00002610| 73 20 69 6e 74 6f 20 63 | 6f 6c 6f 75 72 20 62 6c |s into c|olour bl|
|00002620| 6f 63 6b 0d 0a a0 12 2e | 5f 5f 7a 32 5f 74 72 79 |ock.....|__z2_try|
|00002630| 61 67 61 69 6e 0d 0a aa | 42 20 20 20 4c 44 52 20 |again...|B LDR |
|00002640| 20 20 20 20 72 33 2c 5b | 72 34 2c 72 30 2c 4c 53 | r3,[|r4,r0,LS|
|00002650| 4c 20 23 32 5d 20 20 20 | 20 20 20 20 20 20 20 20 |L #2] | |
|00002660| 20 20 3b 20 67 65 74 20 | 77 6f 72 64 20 66 72 6f | ; get |word fro|
|00002670| 6d 20 62 6c 6f 63 6b 0d | 0a b4 39 20 20 20 43 4d |m block.|..9 CM|
|00002680| 4e 20 20 20 20 20 72 33 | 2c 23 31 20 20 20 20 20 |N r3|,#1 |
|00002690| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000026a0| 20 20 20 20 3b 20 69 73 | 20 69 74 20 2d 31 20 3f | ; is| it -1 ?|
|000026b0| 0d 0a be 3c 20 20 20 ec | 51 20 20 20 72 30 2c 23 |...< .|Q r0,#|
|000026c0| 30 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |0 | |
|000026d0| 20 20 20 20 20 20 20 20 | 20 20 3b 20 69 66 20 73 | | ; if s|
|000026e0| 6f 20 72 65 73 74 61 72 | 74 2e 2e 2e 0d 0a c8 4a |o restar|t......J|
|000026f0| 20 20 20 42 45 51 20 20 | 20 20 20 5f 5f 7a 32 5f | BEQ | __z2_|
|00002700| 74 72 79 61 67 61 69 6e | 20 20 20 20 20 20 20 20 |tryagain| |
|00002710| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 3b 20 2e | | ; .|
|00002720| 2e 2e 61 6e 64 20 67 65 | 74 20 63 6f 6c 6f 75 72 |..and ge|t colour|
|00002730| 20 61 67 61 69 6e 0d 0a | d2 40 20 20 20 41 44 44 | again..|.@ ADD|
|00002740| 20 20 20 20 20 72 30 2c | 72 30 2c 23 31 20 20 20 | r0,|r0,#1 |
|00002750| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002760| 20 20 20 3b 20 69 6e 63 | 72 65 6d 65 6e 74 20 63 | ; inc|rement c|
|00002770| 6f 75 6e 74 65 72 0d 0a | dc 20 20 20 20 53 54 52 |ounter..|. STR|
|00002780| 20 20 20 20 20 72 30 2c | 5b 72 31 32 2c 23 60 63 | r0,|[r12,#`c|
|00002790| 6f 6c 6f 75 72 5d 0d 0a | e6 27 20 20 20 20 20 20 |olour]..|.' |
|000027a0| 20 20 20 20 3b 20 61 6e | 64 20 73 74 6f 72 65 20 | ; an|d store |
|000027b0| 62 61 63 6b 20 69 6e 20 | 62 6c 6f 63 6b 0d 0a f0 |back in |block...|
|000027c0| 1e 20 20 20 53 54 52 42 | 20 20 20 20 72 33 2c 5b |. STRB| r3,[|
|000027d0| 72 31 2c 23 60 77 62 61 | 63 6b 5d 0d 0a fa 31 20 |r1,#`wba|ck]...1 |
|000027e0| 20 20 20 20 20 20 20 20 | 20 3b 20 73 74 6f 72 65 | | ; store|
|000027f0| 20 63 6f 6c 6f 75 72 20 | 61 73 20 62 61 63 6b 67 | colour |as backg|
|00002800| 72 6f 75 6e 64 20 63 6f | 6c 6f 75 72 0d 0b 04 0e |round co|lour....|
|00002810| 2e 5f 5f 7a 32 5f 6c 6f | 6f 70 0d 0b 0e 1f 20 20 |.__z2_lo|op.... |
|00002820| 20 4c 44 52 20 20 20 20 | 20 72 30 2c 5b 72 32 2c | LDR | r0,[r2,|
|00002830| 23 60 69 66 6c 61 67 73 | 5d 0d 0b 18 19 20 20 20 |#`iflags|].... |
|00002840| 20 20 20 20 20 20 20 3b | 20 67 65 74 20 66 6c 61 | ;| get fla|
|00002850| 67 73 0d 0b 22 1f 20 20 | 20 4c 44 52 20 20 20 20 |gs..". | LDR |
|00002860| 20 72 34 2c 5b 72 32 2c | 23 60 6d 66 6c 61 67 73 | r4,[r2,|#`mflags|
|00002870| 5d 0d 0b 2c 1e 20 20 20 | 20 20 20 20 20 20 20 3b |]..,. | ;|
|00002880| 20 67 65 74 20 6d 65 6e | 75 20 66 6c 61 67 73 0d | get men|u flags.|
|00002890| 0b 36 43 20 20 20 54 53 | 54 20 20 20 20 20 72 30 |.6C TS|T r0|
|000028a0| 2c 23 31 3c 3c 36 20 20 | 20 20 20 20 20 20 20 20 |,#1<<6 | |
|000028b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 3b 20 69 73 | | ; is|
|000028c0| 20 69 74 20 61 6e 74 69 | 2d 61 6c 69 61 73 65 64 | it anti|-aliased|
|000028d0| 20 3f 0d 0b 40 55 20 20 | 20 42 4e 45 20 20 20 20 | ?..@U | BNE |
|000028e0| 20 5f 5f 7a 32 5f 63 6f | 6c 6f 75 72 75 6e 74 6f | __z2_co|lourunto|
|000028f0| 75 63 68 65 64 20 20 20 | 20 20 20 20 20 20 20 20 |uched | |
|00002900| 20 20 20 3b 20 64 6f 6e | 27 74 20 74 6f 75 63 68 | ; don|'t touch|
|00002910| 20 63 6f 6c 6f 75 72 20 | 69 66 20 61 6e 74 69 2d | colour |if anti-|
|00002920| 61 6c 69 61 73 65 64 0d | 0b 4a 40 20 20 20 42 49 |aliased.|.J@ BI|
|00002930| 43 20 20 20 20 20 72 30 | 2c 72 30 2c 23 31 3c 3c |C r0|,r0,#1<<|
|00002940| 35 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |5 | |
|00002950| 20 20 20 20 3b 20 63 6c | 65 61 72 20 66 69 6c 6c | ; cl|ear fill|
|00002960| 65 64 20 66 6c 61 67 0d | 0b 54 46 20 20 20 42 49 |ed flag.|.TF BI|
|00002970| 43 20 20 20 20 20 72 30 | 2c 72 30 2c 23 31 35 3c |C r0|,r0,#15<|
|00002980| 3c 32 38 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |<28 | |
|00002990| 20 20 20 20 3b 20 63 6c | 65 61 72 20 62 61 63 6b | ; cl|ear back|
|000029a0| 67 72 6f 75 6e 64 20 63 | 6f 6c 6f 75 72 0d 0b 5e |ground c|olour..^|
|000029b0| 49 20 20 20 84 52 20 20 | 20 20 20 72 30 2c 72 30 |I .R | r0,r0|
|000029c0| 2c 72 33 2c 4c 53 4c 20 | 23 32 38 20 20 20 20 20 |,r3,LSL |#28 |
|000029d0| 20 20 20 20 20 20 20 20 | 20 3b 20 61 6e 64 20 72 | | ; and r|
|000029e0| 65 70 6c 61 63 65 20 77 | 69 74 68 20 6e 65 77 20 |eplace w|ith new |
|000029f0| 63 6f 6c 6f 75 72 0d 0b | 68 44 20 20 20 54 53 54 |colour..|hD TST|
|00002a00| 20 20 20 20 20 72 34 2c | 23 31 3c 3c 33 31 20 20 | r4,|#1<<31 |
|00002a10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002a20| 20 20 20 3b 20 68 61 76 | 65 20 77 65 20 73 65 65 | ; hav|e we see|
|00002a30| 6e 20 62 65 66 6f 72 65 | 20 3f 0d 0b 72 54 20 20 |n before| ?..rT |
|00002a40| 20 42 4e 45 20 20 20 20 | 20 5f 5f 7a 32 5f 73 65 | BNE | __z2_se|
|00002a50| 65 6e 62 65 66 6f 72 65 | 20 20 20 20 20 20 20 20 |enbefore| |
|00002a60| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 69 66 20 | | ; if |
|00002a70| 73 6f 2c 20 74 68 65 6e | 20 64 6f 6e 27 74 20 6d |so, then| don't m|
|00002a80| 61 72 6b 20 69 66 20 6d | 73 67 2d 73 75 62 0d 0b |ark if m|sg-sub..|
|00002a90| 7c 4b 20 20 20 54 53 54 | 20 20 20 20 20 72 34 2c ||K TST| r4,|
|00002aa0| 23 31 3c 3c 33 20 20 20 | 20 20 20 20 20 20 20 20 |#1<<3 | |
|00002ab0| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 69 73 20 | | ; is |
|00002ac0| 74 68 65 72 65 20 6d 73 | 67 20 77 68 65 6e 20 73 |there ms|g when s|
|00002ad0| 75 62 2d 6d 65 6e 75 20 | 3f 0d 0b 86 41 20 20 20 |ub-menu |?...A |
|00002ae0| 84 52 4e 45 20 20 20 72 | 34 2c 72 34 2c 23 31 3c |.RNE r|4,r4,#1<|
|00002af0| 3c 33 30 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |<30 | |
|00002b00| 20 20 20 20 20 3b 20 69 | 66 20 73 6f 2c 20 6d 61 | ; i|f so, ma|
|00002b10| 72 6b 20 61 73 20 73 75 | 63 68 0d 0b 90 42 20 20 |rk as su|ch...B |
|00002b20| 20 84 52 20 20 20 20 20 | 72 34 2c 72 34 2c 23 31 | .R |r4,r4,#1|
|00002b30| 3c 3c 33 31 20 20 20 20 | 20 20 20 20 20 20 20 20 |<<31 | |
|00002b40| 20 20 20 20 20 20 3b 20 | 61 6e 79 77 61 79 2c 20 | ; |anyway, |
|00002b50| 6d 61 72 6b 20 61 73 20 | 73 65 65 6e 0d 0b 9a 14 |mark as |seen....|
|00002b60| 2e 5f 5f 7a 32 5f 73 65 | 65 6e 62 65 66 6f 72 65 |.__z2_se|enbefore|
|00002b70| 0d 0b a4 1a 20 20 20 42 | 49 43 20 20 20 20 20 72 |.... B|IC r|
|00002b80| 34 2c 72 34 2c 23 31 3c | 3c 33 0d 0b ae 4e 20 20 |4,r4,#1<|<3...N |
|00002b90| 20 54 53 54 20 20 20 20 | 20 72 34 2c 23 31 3c 3c | TST | r4,#1<<|
|00002ba0| 33 30 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |30 | |
|00002bb0| 20 20 20 20 20 20 20 3b | 20 64 6f 65 73 20 69 74 | ;| does it|
|00002bc0| 20 72 65 61 6c 6c 79 20 | 77 61 6e 74 20 61 20 6d | really |want a m|
|00002bd0| 65 73 73 61 67 65 20 3f | 0d 0b b8 19 20 20 20 84 |essage ?|.... .|
|00002be0| 52 4e 45 20 20 20 72 34 | 2c 72 34 2c 23 31 3c 3c |RNE r4|,r4,#1<<|
|00002bf0| 33 0d 0b c2 3d 20 20 20 | 54 53 54 20 20 20 20 20 |3...= |TST |
|00002c00| 72 30 2c 23 31 3c 3c 32 | 32 20 20 20 20 20 20 20 |r0,#1<<2|2 |
|00002c10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|00002c20| 75 6e 73 65 6c 65 63 74 | 61 62 6c 65 20 3f 0d 0b |unselect|able ?..|
|00002c30| cc 20 20 20 20 42 45 51 | 20 20 20 20 20 5f 5f 7a |. BEQ| __z|
|00002c40| 32 5f 69 73 73 65 6c 65 | 63 74 61 62 6c 65 0d 0b |2_issele|ctable..|
|00002c50| d6 46 20 20 20 42 49 43 | 20 20 20 20 20 72 30 2c |.F BIC| r0,|
|00002c60| 72 30 2c 23 31 35 3c 3c | 32 34 20 20 20 20 20 20 |r0,#15<<|24 |
|00002c70| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 63 6c 65 | | ; cle|
|00002c80| 61 72 20 66 6f 72 65 67 | 72 6f 75 6e 64 20 63 6f |ar foreg|round co|
|00002c90| 6c 6f 75 72 0d 0b e0 49 | 20 20 20 42 49 43 20 20 |lour...I| BIC |
|00002ca0| 20 20 20 72 30 2c 72 30 | 2c 23 31 3c 3c 32 32 20 | r0,r0|,#1<<22 |
|00002cb0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002cc0| 20 3b 20 61 6e 64 20 63 | 6c 65 61 72 20 75 6e 73 | ; and c|lear uns|
|00002cd0| 65 6c 65 63 74 61 62 6c | 65 20 62 69 74 0d 0b ea |electabl|e bit...|
|00002ce0| 44 3b 20 20 20 20 4c 44 | 52 57 20 20 20 20 72 31 |D; LD|RW r1|
|00002cf0| 2c 60 73 75 62 6d 65 6e | 75 20 20 20 20 20 20 20 |,`submen|u |
|00002d00| 20 20 20 20 20 20 20 20 | 20 20 20 20 3b 20 67 65 | | ; ge|
|00002d10| 74 20 73 75 62 6d 65 6e | 75 20 70 6f 69 6e 74 65 |t submen|u pointe|
|00002d20| 72 0d 0b f4 3e 3b 20 20 | 20 20 42 4c 20 20 20 20 |r...>; | BL |
|00002d30| 20 20 63 68 65 63 6b 77 | 69 6e 64 6f 77 20 20 20 | checkw|indow |
|00002d40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002d50| 3b 20 69 73 20 69 74 20 | 76 61 6c 69 64 20 3f 0d |; is it |valid ?.|
|00002d60| 0b fe 4c 20 20 20 54 53 | 54 20 20 20 20 20 72 34 |..L TS|T r4|
|00002d70| 2c 23 31 3c 3c 34 20 20 | 20 20 20 20 20 20 20 20 |,#1<<4 | |
|00002d80| 20 20 20 20 20 20 20 20 | 20 20 20 20 3b 20 69 73 | | ; is|
|00002d90| 20 74 68 65 72 65 20 73 | 75 62 2d 6d 65 6e 75 20 | there s|ub-menu |
|00002da0| 77 68 65 6e 20 67 72 65 | 79 20 3f 0d 0c 08 4a 20 |when gre|y ?...J |
|00002db0| 20 20 84 52 4e 45 20 20 | 20 72 34 2c 72 34 2c 23 | .RNE | r4,r4,#|
|00002dc0| 31 3c 3c 33 20 20 20 20 | 20 20 20 20 20 20 20 20 |1<<3 | |
|00002dd0| 20 20 20 20 20 20 20 3b | 20 69 66 20 73 6f 2c 20 | ;| if so, |
|00002de0| 61 64 64 20 6d 65 73 73 | 61 67 65 20 77 68 65 6e |add mess|age when|
|00002df0| 20 6f 70 65 6e 0d 0c 12 | 23 20 20 20 42 20 20 20 | open...|# B |
|00002e00| 20 20 20 20 5f 5f 7a 32 | 5f 63 6f 6c 6f 75 72 75 | __z2|_colouru|
|00002e10| 6e 74 6f 75 63 68 65 64 | 0d 0c 1c 16 2e 5f 5f 7a |ntouched|.....__z|
|00002e20| 32 5f 69 73 73 65 6c 65 | 63 74 61 62 6c 65 0d 0c |2_issele|ctable..|
|00002e30| 26 46 20 20 20 42 49 43 | 20 20 20 20 20 72 30 2c |&F BIC| r0,|
|00002e40| 72 30 2c 23 31 35 3c 3c | 32 34 20 20 20 20 20 20 |r0,#15<<|24 |
|00002e50| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 63 6c 65 | | ; cle|
|00002e60| 61 72 20 66 6f 72 65 67 | 72 6f 75 6e 64 20 63 6f |ar foreg|round co|
|00002e70| 6c 6f 75 72 0d 0c 30 46 | 20 20 20 84 52 20 20 20 |lour..0F| .R |
|00002e80| 20 20 72 30 2c 72 30 2c | 23 37 3c 3c 32 34 20 20 | r0,r0,|#7<<24 |
|00002e90| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002ea0| 3b 20 61 6e 64 20 73 65 | 74 20 74 6f 20 62 6c 61 |; and se|t to bla|
|00002eb0| 63 6b 20 69 6e 73 74 65 | 61 64 0d 0c 3a 19 2e 5f |ck inste|ad..:.._|
|00002ec0| 5f 7a 32 5f 63 6f 6c 6f | 75 72 75 6e 74 6f 75 63 |_z2_colo|uruntouc|
|00002ed0| 68 65 64 0d 0c 44 1f 20 | 20 20 53 54 52 20 20 20 |hed..D. | STR |
|00002ee0| 20 20 72 30 2c 5b 72 32 | 2c 23 60 69 66 6c 61 67 | r0,[r2|,#`iflag|
|00002ef0| 73 5d 0d 0c 4e 24 20 20 | 20 20 20 20 20 20 20 20 |s]..N$ | |
|00002f00| 3b 20 73 74 6f 72 65 20 | 62 61 63 6b 20 69 6e 20 |; store |back in |
|00002f10| 62 75 66 66 65 72 0d 0c | 58 1f 20 20 20 53 54 52 |buffer..|X. STR|
|00002f20| 20 20 20 20 20 72 34 2c | 5b 72 32 2c 23 60 6d 66 | r4,|[r2,#`mf|
|00002f30| 6c 61 67 73 5d 0d 0c 62 | 49 20 20 20 54 53 54 20 |lags]..b|I TST |
|00002f40| 20 20 20 20 72 34 2c 23 | 31 3c 3c 33 20 20 20 20 | r4,#|1<<3 |
|00002f50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002f60| 20 20 3b 20 69 73 20 6d | 73 67 20 77 68 65 6e 20 | ; is m|sg when |
|00002f70| 6f 70 65 6e 20 73 75 62 | 20 73 65 74 20 3f 0d 0c |open sub| set ?..|
|00002f80| 6c 20 20 20 20 4c 44 52 | 45 51 20 20 20 72 31 2c |l LDR|EQ r1,|
|00002f90| 5b 72 32 2c 23 60 73 75 | 62 6d 65 6e 75 5d 0d 0c |[r2,#`su|bmenu]..|
|00002fa0| 76 27 20 20 20 20 20 20 | 20 20 20 20 3b 20 6e 20 |v' | ; n |
|00002fb0| 3d 20 67 65 74 20 73 75 | 62 6d 65 6e 75 20 70 6f |= get su|bmenu po|
|00002fc0| 69 6e 74 65 72 0d 0c 80 | 4d 20 20 20 42 4c 45 51 |inter...|M BLEQ|
|00002fd0| 20 20 20 20 73 63 61 6e | 73 74 72 75 63 74 75 72 | scan|structur|
|00002fe0| 65 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |e | |
|00002ff0| 20 20 3b 20 6e 20 3d 20 | 73 63 61 6e 20 74 68 65 | ; n = |scan the|
|00003000| 20 73 75 62 6d 65 6e 75 | 20 66 6f 72 20 6d 65 6e | submenu| for men|
|00003010| 75 73 0d 0c 8a 42 20 20 | 20 54 53 54 20 20 20 20 |us...B | TST |
|00003020| 20 72 34 2c 23 31 3c 3c | 37 20 20 20 20 20 20 20 | r4,#1<<|7 |
|00003030| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b | | ;|
|00003040| 20 69 73 20 74 68 69 73 | 20 6c 61 73 74 20 69 74 | is this| last it|
|00003050| 65 6d 20 3f 0d 0c 94 46 | 20 20 20 41 44 44 45 51 |em ?...F| ADDEQ|
|00003060| 20 20 20 72 32 2c 72 32 | 2c 23 60 6c 65 6e 5f 4d | r2,r2|,#`len_M|
|00003070| 65 6e 75 49 74 65 6d 20 | 20 20 20 20 20 20 20 20 |enuItem | |
|00003080| 20 3b 20 69 6e 63 72 65 | 6d 65 6e 74 20 62 6c 6f | ; incre|ment blo|
|00003090| 63 6b 20 70 6f 69 6e 74 | 65 72 0d 0c 9e 18 20 20 |ck point|er.... |
|000030a0| 20 42 45 51 20 20 20 20 | 20 5f 5f 7a 32 5f 6c 6f | BEQ | __z2_lo|
|000030b0| 6f 70 0d 0c a8 0e 2e 5f | 5f 7a 32 5f 65 78 69 74 |op....._|_z2_exit|
|000030c0| 0d 0c b2 3f 20 20 20 4c | 44 4d 46 44 20 20 20 28 |...? L|DMFD (|
|000030d0| 73 70 29 21 2c 7b 72 30 | 2d 72 35 2c 70 63 7d 5e |sp)!,{r0|-r5,pc}^|
|000030e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 3b 20 52 | | ; R|
|000030f0| 65 74 75 72 6e 20 66 72 | 6f 6d 20 63 61 6c 6c 0d |eturn fr|om call.|
|00003100| 0c bc 05 3a 0d 0c c6 12 | 2e 5f 5f 7a 32 5f 60 63 |...:....|.__z2_`c|
|00003110| 6f 6c 6f 75 72 73 0d 0c | d0 10 20 20 20 45 51 55 |olours..|.. EQU|
|00003120| 44 20 20 20 20 39 0d 0c | da 11 20 20 20 45 51 55 |D 9..|.. EQU|
|00003130| 44 20 20 20 20 31 30 0d | 0c e4 11 20 20 20 45 51 |D 10.|... EQ|
|00003140| 55 44 20 20 20 20 31 31 | 0d 0c ee 11 20 20 20 45 |UD 11|.... E|
|00003150| 51 55 44 20 20 20 20 31 | 32 0d 0c f8 11 20 20 20 |QUD 1|2.... |
|00003160| 45 51 55 44 20 20 20 20 | 31 34 0d 0d 02 11 20 20 |EQUD |14.... |
|00003170| 20 45 51 55 44 20 20 20 | 20 31 35 0d 0d 0c 11 20 | EQUD | 15.... |
|00003180| 20 20 45 51 55 44 20 20 | 20 20 2d 31 0d 0d 16 05 | EQUD | -1....|
|00003190| 3a 0d 0d 20 1c 3b 20 3e | 20 72 31 20 3d 20 73 65 |:.. .; >| r1 = se|
|000031a0| 6c 65 63 74 69 6f 6e 20 | 62 6c 6f 63 6b 0d 0d 2a |lection |block..*|
|000031b0| 33 3b 20 3c 20 72 32 20 | 3d 20 70 6f 69 6e 74 65 |3; < r2 |= pointe|
|000031c0| 72 20 74 6f 20 6d 65 6e | 75 20 69 74 65 6d 20 63 |r to men|u item c|
|000031d0| 6f 6e 74 61 69 6e 65 64 | 20 28 6f 72 20 2d 31 29 |ontained| (or -1)|
|000031e0| 0d 0d 34 0e 2e 66 69 6e | 64 65 6e 74 72 79 0d 0d |..4..fin|dentry..|
|000031f0| 3e 3d 20 20 20 53 54 4d | 46 44 20 20 20 28 73 70 |>= STM|FD (sp|
|00003200| 29 21 2c 7b 72 30 2d 72 | 31 2c 72 33 2d 72 35 2c |)!,{r0-r|1,r3-r5,|
|00003210| 6c 69 6e 6b 7d 20 20 20 | 20 20 3b 20 53 74 61 63 |link} | ; Stac|
|00003220| 6b 20 72 65 67 69 73 74 | 65 72 73 0d 0d 48 1e 20 |k regist|ers..H. |
|00003230| 20 20 4c 44 52 20 20 20 | 20 20 72 30 2c 5b 72 31 | LDR | r0,[r1|
|00003240| 32 2c 23 60 6d 65 6e 75 | 5d 0d 0d 52 20 20 20 20 |2,#`menu|]..R |
|00003250| 20 20 20 20 20 20 20 3b | 20 67 65 74 20 6d 65 6e | ;| get men|
|00003260| 75 20 70 6f 69 6e 74 65 | 72 0d 0d 5c 3a 20 20 20 |u pointe|r..\: |
|00003270| 20 20 20 20 20 20 20 3b | 20 57 6f 72 6b 73 70 61 | ;| Workspa|
|00003280| 63 65 20 73 74 72 75 63 | 74 75 72 65 20 4d 65 6e |ce struc|ture Men|
|00003290| 75 42 6c 6f 63 6b 20 6d | 61 70 70 65 64 20 74 6f |uBlock m|apped to|
|000032a0| 20 72 30 0d 0d 66 13 2e | 5f 5f 7a 33 5f 6e 65 78 | r0..f..|__z3_nex|
|000032b0| 74 6c 65 76 65 6c 0d 0d | 70 49 20 20 20 4d 4f 56 |tlevel..|pI MOV|
|000032c0| 20 20 20 20 20 72 32 2c | 72 31 20 20 20 20 20 20 | r2,|r1 |
|000032d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000032e0| 20 20 3b 20 73 74 6f 72 | 65 20 73 65 6c 65 63 74 | ; stor|e select|
|000032f0| 69 6f 6e 20 62 6c 6f 63 | 6b 20 69 6e 20 72 32 0d |ion bloc|k in r2.|
|00003300| 0d 7a 3d 20 20 20 4d 4f | 56 20 20 20 20 20 72 31 |.z= MO|V r1|
|00003310| 2c 72 30 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |,r0 | |
|00003320| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 72 31 3d | | ; r1=|
|00003330| 6d 65 6e 75 20 70 6f 69 | 6e 74 65 72 0d 0d 84 3b |menu poi|nter...;|
|00003340| 20 20 20 42 4c 20 20 20 | 20 20 20 63 68 65 63 6b | BL | check|
|00003350| 77 69 6e 64 6f 77 20 20 | 20 20 20 20 20 20 20 20 |window | |
|00003360| 20 20 20 20 20 20 20 20 | 3b 20 69 73 20 69 74 20 | |; is it |
|00003370| 76 61 6c 69 64 20 3f 0d | 0d 8e 51 20 20 20 42 45 |valid ?.|..Q BE|
|00003380| 51 20 20 20 20 20 5f 5f | 7a 33 5f 65 78 69 74 6e |Q __|z3_exitn|
|00003390| 6f 64 61 74 61 20 20 20 | 20 20 20 20 20 20 20 20 |odata | |
|000033a0| 20 20 20 20 20 20 20 3b | 20 69 66 20 6e 6f 74 2c | ;| if not,|
|000033b0| 20 65 78 69 74 20 77 69 | 74 68 20 6e 6f 20 65 6e | exit wi|th no en|
|000033c0| 74 72 79 20 64 61 74 61 | 0d 0d 98 45 20 20 20 4d |try data|...E M|
|000033d0| 4f 56 20 20 20 20 20 72 | 31 2c 72 32 20 20 20 20 |OV r|1,r2 |
|000033e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000033f0| 20 20 20 20 3b 20 72 65 | 73 74 6f 72 65 20 73 65 | ; re|store se|
|00003400| 6c 65 63 74 69 6f 6e 20 | 62 6c 6f 63 6b 0d 0d a2 |lection |block...|
|00003410| 4c 20 20 20 4c 44 52 20 | 20 20 20 20 72 33 2c 5b |L LDR | r3,[|
|00003420| 72 31 5d 2c 23 34 20 20 | 20 20 20 20 20 20 20 20 |r1],#4 | |
|00003430| 20 20 20 20 20 20 20 20 | 20 3b 20 67 65 74 20 66 | | ; get f|
|00003440| 69 72 73 74 20 6f 66 66 | 73 65 74 20 61 6e 64 20 |irst off|set and |
|00003450| 69 6e 63 72 65 6d 65 6e | 74 0d 0d ac 2c 20 20 20 |incremen|t..., |
|00003460| 20 20 20 20 20 20 20 3b | 20 22 46 69 6e 64 69 6e | ;| "Findin|
|00003470| 67 20 69 74 65 6d 2c 20 | 6f 70 74 69 6f 6e 20 3d |g item, |option =|
|00003480| 20 25 72 33 22 0d 0d b6 | 38 20 20 20 43 4d 4e 20 | %r3"...|8 CMN |
|00003490| 20 20 20 20 72 33 2c 23 | 31 20 20 20 20 20 20 20 | r3,#|1 |
|000034a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000034b0| 20 3b 20 69 73 20 69 74 | 20 2d 31 20 3f 0d 0d c0 | ; is it| -1 ?...|
|000034c0| 1e 20 20 20 42 45 51 20 | 20 20 20 20 5f 5f 7a 33 |. BEQ | __z3|
|000034d0| 5f 65 78 69 74 6e 6f 64 | 61 74 61 0d 0d ca 1a 20 |_exitnod|ata.... |
|000034e0| a4 4c 41 44 44 28 22 20 | 20 22 2c 32 2c 30 2c 60 |.LADD(" | ",2,0,`|
|000034f0| 64 61 74 61 29 0d 0d d4 | 22 20 20 20 20 20 20 20 |data)...|" |
|00003500| 20 20 20 3b 20 72 32 3d | 61 64 64 72 65 73 73 20 | ; r2=|address |
|00003510| 6f 66 20 64 61 74 61 0d | 0d de 12 2e 5f 5f 7a 33 |of data.|....__z3|
|00003520| 5f 66 69 6e 64 6c 6f 6f | 70 0d 0d e8 46 20 20 20 |_findloo|p...F |
|00003530| 53 55 42 53 20 20 20 20 | 72 33 2c 72 33 2c 23 31 |SUBS |r3,r3,#1|
|00003540| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003550| 20 20 20 20 20 3b 20 64 | 65 63 72 65 6d 65 6e 74 | ; d|ecrement|
|00003560| 20 6d 65 6e 75 20 73 65 | 6c 65 63 74 69 6f 6e 0d | menu se|lection.|
|00003570| 0d f2 44 20 20 20 42 4d | 49 20 20 20 20 20 5f 5f |..D BM|I __|
|00003580| 7a 33 5f 66 6f 75 6e 64 | 65 6e 74 72 79 20 20 20 |z3_found|entry |
|00003590| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b | | ;|
|000035a0| 20 69 66 20 2d 76 65 2c | 20 74 68 65 6e 20 66 6f | if -ve,| then fo|
|000035b0| 75 6e 64 0d 0d fc 25 3b | 20 20 20 20 f4 20 20 20 |und...%;| . |
|000035c0| 20 20 22 49 74 65 6d 73 | 20 74 6f 20 63 68 65 63 | "Items| to chec|
|000035d0| 6b 20 3d 20 25 72 33 22 | 0d 0e 06 20 20 20 20 4c |k = %r3"|... L|
|000035e0| 44 52 20 20 20 20 20 72 | 30 2c 5b 72 32 2c 23 60 |DR r|0,[r2,#`|
|000035f0| 73 75 62 6d 65 6e 75 5d | 0d 0e 10 1f 3b 20 20 20 |submenu]|....; |
|00003600| 20 f4 20 20 20 20 20 22 | 53 75 62 20 6d 65 6e 75 | . "|Sub menu|
|00003610| 20 3d 20 25 26 30 22 0d | 0e 1a 1f 20 20 20 4c 44 | = %&0".|... LD|
|00003620| 52 20 20 20 20 20 72 30 | 2c 5b 72 32 2c 23 60 6d |R r0|,[r2,#`m|
|00003630| 66 6c 61 67 73 5d 0d 0e | 24 1e 20 20 20 20 20 20 |flags]..|$. |
|00003640| 20 20 20 20 3b 20 67 65 | 74 20 6d 65 6e 75 20 66 | ; ge|t menu f|
|00003650| 6c 61 67 73 0d 0e 2e 21 | 3b 20 20 20 20 f4 20 20 |lags...!|; . |
|00003660| 20 20 20 22 4d 65 6e 75 | 20 66 6c 61 67 73 20 3d | "Menu| flags =|
|00003670| 20 25 26 30 22 0d 0e 38 | 39 20 20 20 54 53 54 20 | %&0"..8|9 TST |
|00003680| 20 20 20 20 72 30 2c 23 | 31 3c 3c 37 20 20 20 20 | r0,#|1<<7 |
|00003690| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000036a0| 20 3b 20 6c 61 73 74 20 | 69 74 65 6d 20 3f 0d 0e | ; last |item ?..|
|000036b0| 42 44 20 20 20 42 4e 45 | 20 20 20 20 20 5f 5f 7a |BD BNE| __z|
|000036c0| 33 5f 65 78 69 74 6e 6f | 64 61 74 61 20 20 20 20 |3_exitno|data |
|000036d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|000036e0| 69 66 20 73 6f 20 74 68 | 65 6e 20 6e 6f 20 64 61 |if so th|en no da|
|000036f0| 74 61 0d 0e 4c 3d 20 20 | 20 41 44 44 20 20 20 20 |ta..L= | ADD |
|00003700| 20 72 32 2c 72 32 2c 23 | 60 6c 65 6e 5f 4d 65 6e | r2,r2,#|`len_Men|
|00003710| 75 49 74 65 6d 20 20 20 | 20 20 20 20 20 20 3b 20 |uItem | ; |
|00003720| 69 6e 63 72 65 6d 65 6e | 74 20 62 6c 6f 63 6b 0d |incremen|t block.|
|00003730| 0e 56 1c 20 20 20 42 20 | 20 20 20 20 20 20 5f 5f |.V. B | __|
|00003740| 7a 33 5f 66 69 6e 64 6c | 6f 6f 70 0d 0e 60 05 3a |z3_findl|oop..`.:|
|00003750| 0d 0e 6a 14 2e 5f 5f 7a | 33 5f 66 6f 75 6e 64 65 |..j..__z|3_founde|
|00003760| 6e 74 72 79 0d 0e 74 1f | 20 20 20 4c 44 52 20 20 |ntry..t.| LDR |
|00003770| 20 20 20 72 30 2c 5b 72 | 32 2c 23 60 69 66 6c 61 | r0,[r|2,#`ifla|
|00003780| 67 73 5d 0d 0e 7e 1e 20 | 20 20 20 20 20 20 20 20 |gs]..~. | |
|00003790| 20 3b 20 67 65 74 20 69 | 63 6f 6e 20 66 6c 61 67 | ; get i|con flag|
|000037a0| 73 0d 0e 88 41 20 20 20 | 80 20 20 20 20 20 72 30 |s...A |. r0|
|000037b0| 2c 72 30 2c 23 31 35 3c | 3c 32 34 20 20 20 20 20 |,r0,#15<|<24 |
|000037c0| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 67 65 74 | | ; get|
|000037d0| 20 66 6f 72 65 67 72 6f | 75 6e 64 20 63 6f 6c 6f | foregro|und colo|
|000037e0| 75 72 0d 0e 92 45 20 20 | 20 43 4d 50 20 20 20 20 |ur...E | CMP |
|000037f0| 20 72 30 2c 23 30 20 20 | 20 20 20 20 20 20 20 20 | r0,#0 | |
|00003800| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|00003810| 69 73 20 69 74 20 77 68 | 69 74 65 20 28 69 65 20 |is it wh|ite (ie |
|00003820| 73 68 61 64 65 64 29 0d | 0e 9c 43 20 20 20 42 4e |shaded).|..C BN|
|00003830| 45 20 20 20 20 20 5f 5f | 7a 33 5f 6e 6f 74 73 68 |E __|z3_notsh|
|00003840| 61 64 65 64 20 20 20 20 | 20 20 20 20 20 20 20 20 |aded | |
|00003850| 20 20 20 20 20 20 20 3b | 20 69 66 20 6e 6f 74 2c | ;| if not,|
|00003860| 20 74 68 65 6e 20 6a 75 | 6d 70 0d 0e a6 1b 20 20 | then ju|mp.... |
|00003870| 20 20 20 20 20 20 20 20 | 3b 20 22 49 73 20 73 68 | |; "Is sh|
|00003880| 61 64 65 64 22 0d 0e b0 | 48 3b 20 20 20 20 4c 44 |aded"...|H; LD|
|00003890| 52 20 20 20 20 20 72 33 | 2c 5b 72 31 5d 20 20 20 |R r3|,[r1] |
|000038a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000038b0| 20 20 20 3b 20 67 65 74 | 20 6e 65 78 74 20 73 65 | ; get| next se|
|000038c0| 6c 65 63 74 69 6f 6e 20 | 65 6e 74 72 79 0d 0e ba |lection |entry...|
|000038d0| 42 3b 20 20 20 20 43 4d | 4e 20 20 20 20 20 72 33 |B; CM|N r3|
|000038e0| 2c 23 31 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |,#1 | |
|000038f0| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 69 73 20 | | ; is |
|00003900| 74 68 69 73 20 6c 61 73 | 74 20 6f 6e 65 20 3f 0d |this las|t one ?.|
|00003910| 0e c4 4d 3b 20 20 20 20 | 42 45 51 20 20 20 20 20 |..M; |BEQ |
|00003920| 5f 5f 7a 33 5f 65 78 69 | 74 20 20 20 20 20 20 20 |__z3_exi|t |
|00003930| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003940| 20 3b 20 69 66 20 73 6f | 20 74 68 65 6e 20 65 78 | ; if so| then ex|
|00003950| 69 74 20 77 69 74 68 20 | 64 61 74 61 0d 0e ce 4e |it with |data...N|
|00003960| 3b 20 20 20 20 42 20 20 | 20 20 20 20 20 5f 5f 7a |; B | __z|
|00003970| 33 5f 65 78 69 74 6e 6f | 64 61 74 61 20 20 20 20 |3_exitno|data |
|00003980| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|00003990| 69 66 20 6e 6f 74 2c 20 | 65 78 69 74 20 77 69 74 |if not, |exit wit|
|000039a0| 68 20 6e 6f 20 62 6c 6f | 63 6b 0d 0e d8 05 3a 0d |h no blo|ck....:.|
|000039b0| 0e e2 13 2e 5f 5f 7a 33 | 5f 6e 6f 74 73 68 61 64 |....__z3|_notshad|
|000039c0| 65 64 0d 0e ec 1c 20 20 | 20 20 20 20 20 20 20 20 |ed.... | |
|000039d0| 3b 20 22 4e 6f 74 20 73 | 68 61 64 65 64 22 0d 0e |; "Not s|haded"..|
|000039e0| f6 46 20 20 20 4c 44 52 | 20 20 20 20 20 72 33 2c |.F LDR| r3,|
|000039f0| 5b 72 31 5d 20 20 20 20 | 20 20 20 20 20 20 20 20 |[r1] | |
|00003a00| 20 20 20 20 20 20 20 20 | 20 20 3b 20 67 65 74 20 | | ; get |
|00003a10| 6e 65 78 74 20 73 65 6c | 65 63 74 69 6f 6e 20 65 |next sel|ection e|
|00003a20| 6e 74 72 79 0d 0f 00 40 | 20 20 20 43 4d 4e 20 20 |ntry...@| CMN |
|00003a30| 20 20 20 72 33 2c 23 31 | 20 20 20 20 20 20 20 20 | r3,#1| |
|00003a40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003a50| 3b 20 69 73 20 74 68 69 | 73 20 6c 61 73 74 20 6f |; is thi|s last o|
|00003a60| 6e 65 20 3f 0d 0f 0a 46 | 20 20 20 42 45 51 20 20 |ne ?...F| BEQ |
|00003a70| 20 20 20 5f 5f 7a 33 5f | 65 78 69 74 20 20 20 20 | __z3_|exit |
|00003a80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003a90| 20 20 20 20 3b 20 69 66 | 20 73 6f 20 65 78 69 74 | ; if| so exit|
|00003aa0| 20 77 69 74 68 20 64 61 | 74 61 0d 0f 14 20 20 20 | with da|ta... |
|00003ab0| 20 4c 44 52 20 20 20 20 | 20 72 30 2c 5b 72 32 2c | LDR | r0,[r2,|
|00003ac0| 23 60 73 75 62 6d 65 6e | 75 5d 0d 0f 1e 2d 20 20 |#`submen|u]...- |
|00003ad0| 20 20 20 20 20 20 20 20 | 3b 20 6f 74 68 65 72 77 | |; otherw|
|00003ae0| 69 73 65 20 72 30 3d 73 | 75 62 20 6d 65 6e 75 20 |ise r0=s|ub menu |
|00003af0| 70 6f 69 6e 74 65 72 0d | 0f 28 38 20 20 20 43 4d |pointer.|.(8 CM|
|00003b00| 4e 20 20 20 20 20 72 30 | 2c 23 31 20 20 20 20 20 |N r0|,#1 |
|00003b10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003b20| 20 20 20 3b 20 69 73 20 | 69 74 20 2d 31 20 3f 0d | ; is |it -1 ?.|
|00003b30| 0f 32 53 20 20 20 42 45 | 51 20 20 20 20 20 5f 5f |.2S BE|Q __|
|00003b40| 7a 33 5f 65 78 69 74 6e | 6f 64 61 74 61 20 20 20 |z3_exitn|odata |
|00003b50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b | | ;|
|00003b60| 20 69 66 20 73 6f 2c 20 | 74 68 65 72 65 20 61 72 | if so, |there ar|
|00003b70| 65 20 6e 6f 20 6d 6f 72 | 65 20 65 6e 74 72 69 65 |e no mor|e entrie|
|00003b80| 73 21 0d 0f 3c 53 20 20 | 20 42 20 20 20 20 20 20 |s!..<S | B |
|00003b90| 20 5f 5f 7a 33 5f 6e 65 | 78 74 6c 65 76 65 6c 20 | __z3_ne|xtlevel |
|00003ba0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003bb0| 20 20 3b 20 6f 74 68 65 | 72 77 69 73 65 20 67 6f | ; othe|rwise go|
|00003bc0| 20 74 68 72 6f 75 67 68 | 20 69 74 20 61 6c 6c 20 | through| it all |
|00003bd0| 61 67 61 69 6e 0d 0f 46 | 05 3a 0d 0f 50 14 2e 5f |again..F|.:..P.._|
|00003be0| 5f 7a 33 5f 65 78 69 74 | 6e 6f 64 61 74 61 0d 0f |_z3_exit|nodata..|
|00003bf0| 5a 23 20 20 20 20 20 20 | 20 20 20 20 3b 20 22 52 |Z# | ; "R|
|00003c00| 65 74 75 72 6e 69 6e 67 | 20 6e 6f 74 68 69 6e 67 |eturning| nothing|
|00003c10| 22 0d 0f 64 4b 20 20 20 | 4d 56 4e 20 20 20 20 20 |"..dK |MVN |
|00003c20| 72 32 2c 23 ac 20 2d 31 | 20 20 20 20 20 20 20 20 |r2,#. -1| |
|00003c30| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 6e 6f 20 | | ; no |
|00003c40| 64 61 74 61 2c 20 73 6f | 20 72 65 74 75 72 6e 20 |data, so| return |
|00003c50| 6e 75 6c 6c 20 70 6f 69 | 6e 74 65 72 0d 0f 6e 0e |null poi|nter..n.|
|00003c60| 2e 5f 5f 7a 33 5f 65 78 | 69 74 0d 0f 78 3e 20 20 |.__z3_ex|it..x> |
|00003c70| 20 4c 44 4d 46 44 20 20 | 20 28 73 70 29 21 2c 7b | LDMFD | (sp)!,{|
|00003c80| 72 30 2d 72 31 2c 72 33 | 2d 72 35 2c 70 63 7d 20 |r0-r1,r3|-r5,pc} |
|00003c90| 20 20 20 20 20 20 3b 20 | 52 65 74 75 72 6e 20 66 | ; |Return f|
|00003ca0| 72 6f 6d 20 63 61 6c 6c | 0d 0f 82 05 3a 0d 0f 8c |rom call|....:...|
|00003cb0| 05 5d 0d 0f 96 20 f4 20 | 2a 2a 2a 2a 20 45 6e 64 |.]... . |**** End|
|00003cc0| 20 6f 66 20 6d 61 69 6e | 20 63 6f 64 65 20 2a 2a | of main| code **|
|00003cd0| 2a 2a 0d 0f a0 36 f4 20 | 53 65 74 20 66 69 6e 61 |**...6. |Set fina|
|00003ce0| 6c 20 70 6f 69 6e 74 65 | 72 20 74 6f 20 66 69 6e |l pointe|r to fin|
|00003cf0| 64 20 74 68 65 20 6c 65 | 6e 67 74 68 20 6f 66 20 |d the le|ngth of |
|00003d00| 74 68 65 20 63 6f 64 65 | 0d 0f aa 13 f2 70 61 74 |the code|.....pat|
|00003d10| 63 68 5f 73 65 74 70 63 | 28 30 29 0d 0f b4 0b ed |ch_setpc|(0).....|
|00003d20| 20 70 61 73 73 25 0d 0f | be 13 f2 70 61 74 63 68 | pass%..|...patch|
|00003d30| 5f 73 61 76 65 66 69 6c | 65 0d 0f dc 28 f4 20 2a |_savefil|e...(. *|
|00003d40| 2a 2a 2a 20 50 6f 73 74 | 2d 61 73 73 65 6d 62 6c |*** Post|-assembl|
|00003d50| 79 20 75 73 65 72 20 63 | 6f 64 65 20 2a 2a 2a 2a |y user c|ode ****|
|00003d60| 2a 0d 10 0e 05 e0 0d 10 | 18 05 3a 0d 10 22 21 f4 |*.......|..:.."!.|
|00003d70| 20 2a 2a 2a 2a 20 46 69 | 6c 69 6e 67 20 70 72 6f | **** Fi|ling pro|
|00003d80| 63 65 64 75 72 65 73 20 | 2a 2a 2a 2a 0d 10 2c 05 |cedures |****..,.|
|00003d90| 3a 0d 10 36 15 dd 20 f2 | 70 61 74 63 68 5f 6c 6f |:..6.. .|patch_lo|
|00003da0| 61 64 66 69 6c 65 0d 10 | 40 0d 63 6f 64 65 6c 65 |adfile..|@.codele|
|00003db0| 6e 3d 30 0d 10 4a 0f de | 20 4d 43 25 20 26 31 34 |n=0..J..| MC% &14|
|00003dc0| 30 30 0d 10 54 24 65 6e | 64 6f 66 63 6f 64 65 3d |00..T$en|dofcode=|
|00003dd0| 63 6f 64 65 6c 65 6e 2b | 26 30 3a 6d 61 78 3d 63 |codelen+|&0:max=c|
|00003de0| 6f 64 65 6c 65 6e 0d 10 | 5e 19 4c 25 3d 65 6e 64 |odelen..|^.L%=end|
|00003df0| 6f 66 63 6f 64 65 3a 5f | 5f 63 61 70 25 3d a3 0d |ofcode:_|_cap%=..|
|00003e00| 10 c2 05 e1 0d 10 cc 05 | 3a 0d 10 d6 15 dd 20 f2 |........|:..... .|
|00003e10| 70 61 74 63 68 5f 73 61 | 76 65 66 69 6c 65 0d 10 |patch_sa|vefile..|
|00003e20| e0 26 6f 75 74 66 69 6c | 65 24 3d 22 3c 46 75 6e |.&outfil|e$="<Fun|
|00003e30| 4d 65 6e 75 73 24 44 69 | 72 3e 2e 46 75 6e 4d 65 |Menus$Di|r>.FunMe|
|00003e40| 6e 75 73 22 0d 10 ea 31 | ff 28 22 53 61 76 65 20 |nus"...1|.("Save |
|00003e50| 22 2b 6f 75 74 66 69 6c | 65 24 2b 22 20 22 2b c3 |"+outfil|e$+" "+.|
|00003e60| 7e 4d 43 25 2b 22 20 22 | 2b c3 7e 28 6d 61 78 2b |~MC%+" "|+.~(max+|
|00003e70| 4d 43 25 29 29 0d 10 f4 | 24 ff 28 22 53 65 74 74 |MC%))...|$.("Sett|
|00003e80| 79 70 65 20 22 2b 6f 75 | 74 66 69 6c 65 24 2b 22 |ype "+ou|tfile$+"|
|00003e90| 20 4d 6f 64 75 6c 65 22 | 29 0d 10 fe 1e 70 61 74 | Module"|)....pat|
|00003ea0| 63 68 64 69 72 24 3d 22 | 3c 46 75 6e 4d 65 6e 75 |chdir$="|<FunMenu|
|00003eb0| 73 24 44 69 72 3e 22 0d | 11 26 05 e1 0d 11 30 05 |s$Dir>".|.&....0.|
|00003ec0| 3a 0d 11 3a 1d f4 20 2a | 2a 2a 2a 20 45 72 72 6f |:..:.. *|*** Erro|
|00003ed0| 72 20 48 61 6e 64 6c 65 | 72 20 2a 2a 2a 2a 0d 11 |r Handle|r ****..|
|00003ee0| 44 05 3a 0d 11 4e 0b dd | f2 45 72 72 6f 72 0d 11 |D.:..N..|.Error..|
|00003ef0| 9e 1b 85 20 a2 20 9f 2c | f6 24 2b 22 20 61 74 20 |... . .,|.$+" at |
|00003f00| 6c 69 6e 65 20 22 2b c3 | 9e 0d 11 a8 05 e1 0d 11 |line "+.|........|
|00003f10| b2 05 3a 0d 11 bc 22 f4 | 20 2a 2a 2a 2a 20 55 74 |..:...".| **** Ut|
|00003f20| 69 6c 69 74 79 20 70 72 | 6f 63 65 64 75 72 65 73 |ility pr|ocedures|
|00003f30| 20 2a 2a 2a 2a 0d 11 c6 | 05 3a 0d 11 d0 14 dd f2 | ****...|.:......|
|00003f40| 70 61 74 63 68 5f 73 65 | 74 70 63 28 6e 29 0d 11 |patch_se|tpc(n)..|
|00003f50| da 1a e7 20 50 25 2d 26 | 30 3e 6d 61 78 20 8c 6d |... P%-&|0>max .m|
|00003f60| 61 78 3d 50 25 2d 26 30 | 0d 11 e4 14 50 25 3d 6e |ax=P%-&0|....P%=n|
|00003f70| 3a 4f 25 3d 4d 43 25 2b | 6e 2d 26 30 0d 11 ee 05 |:O%=MC%+|n-&0....|
|00003f80| e1 0d 11 f8 05 3a 0d 12 | 02 22 dd a4 66 69 6e 64 |.....:..|."..find|
|00003f90| 66 72 65 65 72 65 67 28 | 61 2c 62 2c 63 2c 64 29 |freereg(|a,b,c,d)|
|00003fa0| 3a ea 20 6e 3a 6e 3d 30 | 0d 12 0c 1c c8 95 20 6e |:. n:n=0|...... n|
|00003fb0| 3d 61 20 84 20 6e 3d 62 | 20 84 20 6e 3d 63 20 84 |=a . n=b| . n=c .|
|00003fc0| 20 6e 3d 64 0d 12 16 09 | 20 6e 2b 3d 31 0d 12 20 | n=d....| n+=1.. |
|00003fd0| 05 ce 0d 12 2a 06 3d 6e | 0d 12 34 05 3a 0d 12 3e |....*.=n|..4.:..>|
|00003fe0| 28 f4 20 2a 2a 2a 2a 20 | 4c 6f 6e 67 20 41 44 52 |(. **** |Long ADR|
|00003ff0| 20 6d 61 63 72 6f 20 70 | 72 6f 63 65 64 75 72 65 | macro p|rocedure|
|00004000| 20 2a 2a 2a 2a 0d 12 48 | 05 3a 0d 12 52 40 f4 20 | ****..H|.:..R@. |
|00004010| 44 45 53 43 2e 20 3a 20 | 41 44 52 20 65 71 75 69 |DESC. : |ADR equi|
|00004020| 76 61 6c 65 6e 74 20 66 | 6f 72 20 6c 6f 6e 67 20 |valent f|or long |
|00004030| 61 64 64 72 65 73 73 20 | 72 61 6e 67 65 73 2c 20 |address |ranges, |
|00004040| 69 6e 20 32 20 69 6e 73 | 74 73 0d 12 5c 43 f4 20 |in 2 ins|ts..\C. |
|00004050| 45 4e 54 52 59 20 3a 20 | 63 6f 6e 64 24 20 3d 20 |ENTRY : |cond$ = |
|00004060| 74 77 6f 20 63 68 61 72 | 20 73 74 72 69 6e 67 2c |two char| string,|
|00004070| 20 63 6f 6e 74 61 69 6e | 69 6e 67 20 74 68 65 20 | contain|ing the |
|00004080| 41 52 4d 20 63 6f 6e 64 | 69 74 69 6f 6e 0d 12 66 |ARM cond|ition..f|
|00004090| 1a f4 20 20 20 20 20 20 | 20 20 20 72 65 67 25 20 |.. | reg% |
|000040a0| 3d 20 30 2e 2e 31 35 0d | 12 70 2b f4 20 20 20 20 |= 0..15.|.p+. |
|000040b0| 20 20 20 20 20 70 6f 69 | 6e 74 65 72 25 20 3d 20 | poi|nter% = |
|000040c0| 6c 6f 6e 67 20 72 61 6e | 67 65 20 70 6f 69 6e 74 |long ran|ge point|
|000040d0| 65 72 0d 12 7a 42 f4 20 | 43 4f 4d 4d 2e 20 3a 20 |er..zB. |COMM. : |
|000040e0| 70 61 73 73 25 20 3d 20 | 4f 50 54 20 76 61 72 69 |pass% = |OPT vari|
|000040f0| 61 62 6c 65 20 69 6e 20 | 74 68 65 20 61 73 73 65 |able in |the asse|
|00004100| 6d 62 6c 65 72 20 46 4f | 52 2e 2e 4e 45 58 54 20 |mbler FO|R..NEXT |
|00004110| 6c 6f 6f 70 0d 12 84 2d | f4 20 20 20 20 20 20 20 |loop...-|. |
|00004120| 20 20 43 61 6e 20 6f 6e | 6c 79 20 68 61 6e 64 6c | Can on|ly handl|
|00004130| 65 20 36 34 20 4b 42 79 | 74 65 20 72 61 6e 67 65 |e 64 KBy|te range|
|00004140| 73 0d 12 8e 1f dd a4 4c | 41 44 52 28 63 6f 6e 64 |s......L|ADR(cond|
|00004150| 24 2c 72 65 67 25 2c 70 | 6f 69 6e 74 65 72 25 29 |$,reg%,p|ointer%)|
|00004160| 0d 12 98 21 ea 20 63 63 | 25 2c 64 69 66 66 25 2c |...!. cc|%,diff%,|
|00004170| 6c 6f 25 2c 68 69 25 2c | 6f 70 31 25 2c 6f 70 32 |lo%,hi%,|op1%,op2|
|00004180| 25 0d 12 a2 23 e7 20 28 | 70 61 73 73 25 20 80 25 |%...#. (|pass% .%|
|00004190| 31 30 29 3d 30 20 50 25 | 2b 3d 38 3a 4f 25 2b 3d |10)=0 P%|+=8:O%+=|
|000041a0| 38 3a 3d 30 0d 12 ac 73 | e7 20 94 28 70 6f 69 6e |8:=0...s|. .(poin|
|000041b0| 74 65 72 25 2d 50 25 29 | 3e 36 35 35 33 35 20 8c |ter%-P%)|>65535 .|
|000041c0| 20 85 20 31 2c 22 4c 41 | 44 52 20 63 61 6e 20 6f | . 1,"LA|DR can o|
|000041d0| 6e 6c 79 20 68 61 6e 64 | 6c 65 20 36 34 20 4b 42 |nly hand|le 64 KB|
|000041e0| 79 74 65 20 72 61 6e 67 | 65 73 20 61 74 20 26 22 |yte rang|es at &"|
|000041f0| 2b c3 7e 50 25 2b 22 20 | 28 26 22 2b c3 7e 28 70 |+.~P%+" |(&"+.~(p|
|00004200| 6f 69 6e 74 65 72 25 2d | 50 25 29 2b 22 20 64 69 |ointer%-|P%)+" di|
|00004210| 73 74 61 6e 74 29 22 0d | 12 b6 27 e7 63 6f 6e 64 |stant)".|..'.cond|
|00004220| 24 3d 22 20 20 22 20 84 | 20 63 6f 6e 64 24 3d 22 |$=" " .| cond$="|
|00004230| 22 20 20 8c 63 6f 6e 64 | 24 3d 22 41 4c 22 0d 12 |" .cond|$="AL"..|
|00004240| c0 32 63 63 25 3d a7 22 | 45 51 4e 45 43 53 43 43 |.2cc%=."|EQNECSCC|
|00004250| 4d 49 50 4c 56 53 56 43 | 48 49 4c 53 47 45 4c 54 |MIPLVSVC|HILSGELT|
|00004260| 47 54 4c 45 41 4c 4e 56 | 22 2c 63 6f 6e 64 24 29 |GTLEALNV|",cond$)|
|00004270| 0d 12 ca 63 e7 20 63 63 | 25 3d 30 20 85 20 31 2c |...c. cc|%=0 . 1,|
|00004280| 22 46 41 54 41 4c 20 45 | 52 52 4f 52 20 3a 20 55 |"FATAL E|RROR : U|
|00004290| 6e 6b 6e 6f 77 6e 20 63 | 6f 6e 64 69 74 69 6f 6e |nknown c|ondition|
|000042a0| 20 66 6f 72 20 4c 41 44 | 52 20 61 74 20 26 22 2b | for LAD|R at &"+|
|000042b0| c3 7e 50 25 2b 22 20 28 | 26 22 2b c3 7e 4f 25 2b |.~P%+" (|&"+.~O%+|
|000042c0| 22 29 22 20 8b 20 63 63 | 25 3d 28 63 63 25 2d 31 |")" . cc|%=(cc%-1|
|000042d0| 29 81 32 0d 12 d4 17 64 | 69 66 66 25 3d 70 6f 69 |).2....d|iff%=poi|
|000042e0| 6e 74 65 72 25 2d 50 25 | 2d 38 0d 12 de 14 6c 6f |nter%-P%|-8....lo|
|000042f0| 25 3d 94 28 64 69 66 66 | 25 29 80 26 46 46 0d 12 |%=.(diff|%).&FF..|
|00004300| e8 16 68 69 25 3d 94 28 | 64 69 66 66 25 29 80 26 |..hi%=.(|diff%).&|
|00004310| 46 46 30 30 0d 12 f2 0e | e7 64 69 66 66 25 3e 3d |FF00....|.diff%>=|
|00004320| 30 8c 0d 12 fc 2c 20 6f | 70 31 25 3d 28 63 63 25 |0...., o|p1%=(cc%|
|00004330| 3c 3c 32 38 29 2b 26 30 | 32 38 46 30 30 30 30 2b |<<28)+&0|28F0000+|
|00004340| 28 72 65 67 25 3c 3c 31 | 32 29 2b 6c 6f 25 0d 13 |(reg%<<1|2)+lo%..|
|00004350| 06 3c 20 6f 70 32 25 3d | 28 63 63 25 3c 3c 32 38 |.< op2%=|(cc%<<28|
|00004360| 29 2b 26 30 32 38 30 30 | 43 30 30 2b 28 72 65 67 |)+&02800|C00+(reg|
|00004370| 25 3c 3c 31 36 29 2b 28 | 72 65 67 25 3c 3c 31 32 |%<<16)+(|reg%<<12|
|00004380| 29 2b 28 68 69 25 3e 3e | 38 29 0d 13 10 05 cc 0d |)+(hi%>>|8)......|
|00004390| 13 1a 2c 20 6f 70 31 25 | 3d 28 63 63 25 3c 3c 32 |.., op1%|=(cc%<<2|
|000043a0| 38 29 2b 26 30 32 34 46 | 30 30 30 30 2b 28 72 65 |8)+&024F|0000+(re|
|000043b0| 67 25 3c 3c 31 32 29 2b | 6c 6f 25 0d 13 24 3c 20 |g%<<12)+|lo%..$< |
|000043c0| 6f 70 32 25 3d 28 63 63 | 25 3c 3c 32 38 29 2b 26 |op2%=(cc|%<<28)+&|
|000043d0| 30 32 34 30 30 43 30 30 | 2b 28 72 65 67 25 3c 3c |02400C00|+(reg%<<|
|000043e0| 31 36 29 2b 28 72 65 67 | 25 3c 3c 31 32 29 2b 28 |16)+(reg|%<<12)+(|
|000043f0| 68 69 25 3e 3e 38 29 0d | 13 2e 05 cd 0d 13 38 24 |hi%>>8).|......8$|
|00004400| 5b 4f 50 54 20 70 61 73 | 73 25 3a 45 51 55 44 20 |[OPT pas|s%:EQUD |
|00004410| 6f 70 31 25 3a 45 51 55 | 44 20 6f 70 32 25 3a 5d |op1%:EQU|D op2%:]|
|00004420| 0d 13 42 06 3d 30 0d 13 | 4c 05 3a 0d 13 56 2a f4 |..B.=0..|L.:..V*.|
|00004430| 20 2a 2a 2a 2a 20 4c 6f | 6e 67 20 4d 4f 56 20 6d | **** Lo|ng MOV m|
|00004440| 61 63 72 6f 20 69 6e 73 | 74 72 75 63 74 69 6f 6e |acro ins|truction|
|00004450| 20 2a 2a 2a 2a 0d 13 60 | 05 3a 0d 13 6a 1b dd a4 | ****..`|.:..j...|
|00004460| 4c 4d 4f 56 28 63 6f 6e | 64 24 2c 72 65 67 2c 76 |LMOV(con|d$,reg,v|
|00004470| 61 6c 75 65 29 0d 13 74 | 27 e7 20 63 6f 6e 64 24 |alue)..t|'. cond$|
|00004480| 3d 22 22 20 84 20 63 6f | 6e 64 24 3d 22 20 20 22 |="" . co|nd$=" "|
|00004490| 20 8c 63 6f 6e 64 24 3d | 22 41 4c 22 0d 13 7e 39 | .cond$=|"AL"..~9|
|000044a0| 63 6f 6e 64 3d 28 a7 22 | 45 51 4e 45 43 53 43 43 |cond=(."|EQNECSCC|
|000044b0| 4d 49 50 4c 56 53 56 43 | 48 49 4c 53 47 45 4c 54 |MIPLVSVC|HILSGELT|
|000044c0| 47 54 4c 45 41 4c 4e 56 | 22 2c 63 6f 6e 64 24 29 |GTLEALNV|",cond$)|
|000044d0| 2d 31 29 2f 32 0d 13 88 | 26 6d 6f 76 3d 28 26 33 |-1)/2...|&mov=(&3|
|000044e0| 41 3c 3c 32 30 29 2b 28 | 72 65 67 3c 3c 31 32 29 |A<<20)+(|reg<<12)|
|000044f0| 2b 28 63 6f 6e 64 3c 3c | 32 38 29 0d 13 92 30 61 |+(cond<<|28)...0a|
|00004500| 64 64 3d 28 26 32 38 3c | 3c 32 30 29 2b 28 72 65 |dd=(&28<|<20)+(re|
|00004510| 67 3c 3c 31 32 29 2b 28 | 72 65 67 3c 3c 31 36 29 |g<<12)+(|reg<<16)|
|00004520| 2b 28 63 6f 6e 64 3c 3c | 32 38 29 0d 13 9c 4f e7 |+(cond<<|28)...O.|
|00004530| 20 76 61 6c 75 65 3c 30 | 20 8c 6e 65 67 3d b9 3a | value<0| .neg=.:|
|00004540| 6d 6f 76 3d 6d 6f 76 20 | 84 20 28 31 3c 3c 32 32 |mov=mov |. (1<<22|
|00004550| 29 3a 61 64 64 3d 61 64 | 64 20 82 20 28 31 32 3c |):add=ad|d . (12<|
|00004560| 3c 32 30 29 3a 76 61 6c | 75 65 3d 2d 76 61 6c 75 |<20):val|ue=-valu|
|00004570| 65 2d 31 20 8b 6e 65 67 | 3d a3 0d 13 a6 0b 73 68 |e-1 .neg|=.....sh|
|00004580| 69 66 74 3d 30 0d 13 b0 | 05 f5 0d 13 ba 20 20 c8 |ift=0...|..... .|
|00004590| 95 20 28 76 61 6c 75 65 | 20 80 20 33 29 3d 30 20 |. (value| . 3)=0 |
|000045a0| 80 20 73 68 69 66 74 3c | 31 36 0d 13 c4 1d 20 20 |. shift<|16.... |
|000045b0| 73 68 69 66 74 2b 3d 31 | 3a 76 61 6c 75 65 3d 76 |shift+=1|:value=v|
|000045c0| 61 6c 75 65 20 81 34 0d | 13 ce 06 20 ce 0d 13 d8 |alue .4.|... ....|
|000045d0| 2a 20 78 73 68 69 66 74 | 3d 31 36 2d 73 68 69 66 |* xshift|=16-shif|
|000045e0| 74 3a e7 20 78 73 68 69 | 66 74 3d 31 36 20 8c 78 |t:. xshi|ft=16 .x|
|000045f0| 73 68 69 66 74 3d 30 0d | 13 e2 0f 20 e7 20 6d 6f |shift=0.|... . mo|
|00004600| 76 3c 3e 30 20 8c 0d 13 | ec 35 20 20 5b 4f 50 54 |v<>0 ...|.5 [OPT|
|00004610| 20 70 61 73 73 25 3a 45 | 51 55 44 20 6d 6f 76 2b | pass%:E|QUD mov+|
|00004620| 28 78 73 68 69 66 74 3c | 3c 38 29 2b 28 76 61 6c |(xshift<|<8)+(val|
|00004630| 75 65 20 80 20 32 35 35 | 29 3a 5d 0d 13 f6 0b 20 |ue . 255|):].... |
|00004640| 20 6d 6f 76 3d 30 0d 14 | 00 06 20 cc 0d 14 0a 35 | mov=0..|.. ....5|
|00004650| 20 20 5b 4f 50 54 20 70 | 61 73 73 25 3a 45 51 55 | [OPT p|ass%:EQU|
|00004660| 44 20 61 64 64 2b 28 78 | 73 68 69 66 74 3c 3c 38 |D add+(x|shift<<8|
|00004670| 29 2b 28 76 61 6c 75 65 | 20 80 20 32 35 35 29 3a |)+(value| . 255):|
|00004680| 5d 0d 14 14 06 20 cd 0d | 14 1e 1e 20 76 61 6c 75 |].... ..|... valu|
|00004690| 65 3d 76 61 6c 75 65 20 | 81 32 35 36 3a 73 68 69 |e=value |.256:shi|
|000046a0| 66 74 2b 3d 34 0d 14 28 | 0c fd 76 61 6c 75 65 3d |ft+=4..(|..value=|
|000046b0| 30 0d 14 32 06 3d 30 0d | 14 3c 05 3a 0d 14 46 2a |0..2.=0.|.<.:..F*|
|000046c0| f4 20 2a 2a 2a 2a 20 4c | 6f 6e 67 20 41 44 44 20 |. **** L|ong ADD |
|000046d0| 6d 61 63 72 6f 20 69 6e | 73 74 72 75 63 74 69 6f |macro in|structio|
|000046e0| 6e 20 2a 2a 2a 2a 0d 14 | 50 05 3a 0d 14 5a 21 dd |n ****..|P.:..Z!.|
|000046f0| a4 4c 41 44 44 28 63 6f | 6e 64 24 2c 72 65 67 31 |.LADD(co|nd$,reg1|
|00004700| 2c 72 65 67 32 2c 76 61 | 6c 75 65 29 0d 14 64 27 |,reg2,va|lue)..d'|
|00004710| e7 20 63 6f 6e 64 24 3d | 22 22 20 84 20 63 6f 6e |. cond$=|"" . con|
|00004720| 64 24 3d 22 20 20 22 20 | 8c 63 6f 6e 64 24 3d 22 |d$=" " |.cond$="|
|00004730| 41 4c 22 0d 14 6e 39 63 | 6f 6e 64 3d 28 a7 22 45 |AL"..n9c|ond=(."E|
|00004740| 51 4e 45 43 53 43 43 4d | 49 50 4c 56 53 56 43 48 |QNECSCCM|IPLVSVCH|
|00004750| 49 4c 53 47 45 4c 54 47 | 54 4c 45 41 4c 4e 56 22 |ILSGELTG|TLEALNV"|
|00004760| 2c 63 6f 6e 64 24 29 2d | 31 29 2f 32 0d 14 78 33 |,cond$)-|1)/2..x3|
|00004770| 61 64 64 31 3d 28 26 32 | 38 3c 3c 32 30 29 2b 28 |add1=(&2|8<<20)+(|
|00004780| 72 65 67 31 3c 3c 31 32 | 29 2b 28 72 65 67 32 3c |reg1<<12|)+(reg2<|
|00004790| 3c 31 36 29 2b 28 63 6f | 6e 64 3c 3c 32 38 29 0d |<16)+(co|nd<<28).|
|000047a0| 14 82 33 61 64 64 32 3d | 28 26 32 38 3c 3c 32 30 |..3add2=|(&28<<20|
|000047b0| 29 2b 28 72 65 67 31 3c | 3c 31 32 29 2b 28 72 65 |)+(reg1<|<12)+(re|
|000047c0| 67 31 3c 3c 31 36 29 2b | 28 63 6f 6e 64 3c 3c 32 |g1<<16)+|(cond<<2|
|000047d0| 38 29 0d 14 8c 0b 73 68 | 69 66 74 3d 30 0d 14 96 |8)....sh|ift=0...|
|000047e0| 05 f5 0d 14 a0 20 20 c8 | 95 20 28 76 61 6c 75 65 |..... .|. (value|
|000047f0| 20 80 20 33 29 3d 30 20 | 80 20 73 68 69 66 74 3c | . 3)=0 |. shift<|
|00004800| 31 36 0d 14 aa 1d 20 20 | 73 68 69 66 74 2b 3d 31 |16.... |shift+=1|
|00004810| 3a 76 61 6c 75 65 3d 76 | 61 6c 75 65 20 81 34 0d |:value=v|alue .4.|
|00004820| 14 b4 06 20 ce 0d 14 be | 2a 20 78 73 68 69 66 74 |... ....|* xshift|
|00004830| 3d 31 36 2d 73 68 69 66 | 74 3a e7 20 78 73 68 69 |=16-shif|t:. xshi|
|00004840| 66 74 3d 31 36 20 8c 78 | 73 68 69 66 74 3d 30 0d |ft=16 .x|shift=0.|
|00004850| 14 c8 10 20 e7 20 61 64 | 64 31 3c 3e 30 20 8c 0d |... . ad|d1<>0 ..|
|00004860| 14 d2 35 20 20 5b 4f 50 | 54 20 70 61 73 73 25 3a |..5 [OP|T pass%:|
|00004870| 45 51 55 44 61 64 64 31 | 2b 28 78 73 68 69 66 74 |EQUDadd1|+(xshift|
|00004880| 3c 3c 38 29 2b 28 76 61 | 6c 75 65 20 80 20 32 35 |<<8)+(va|lue . 25|
|00004890| 35 29 3a 5d 0d 14 dc 0c | 20 20 61 64 64 31 3d 30 |5):]....| add1=0|
|000048a0| 0d 14 e6 06 20 cc 0d 14 | f0 35 20 20 5b 4f 50 54 |.... ...|.5 [OPT|
|000048b0| 20 70 61 73 73 25 3a 45 | 51 55 44 61 64 64 32 2b | pass%:E|QUDadd2+|
|000048c0| 28 78 73 68 69 66 74 3c | 3c 38 29 2b 28 76 61 6c |(xshift<|<8)+(val|
|000048d0| 75 65 20 80 20 32 35 35 | 29 3a 5d 0d 14 fa 06 20 |ue . 255|):].... |
|000048e0| cd 0d 15 04 1e 20 76 61 | 6c 75 65 3d 76 61 6c 75 |..... va|lue=valu|
|000048f0| 65 20 81 32 35 36 3a 73 | 68 69 66 74 2b 3d 34 0d |e .256:s|hift+=4.|
|00004900| 15 0e 0c fd 76 61 6c 75 | 65 3d 30 0d 15 18 06 3d |....valu|e=0....=|
|00004910| 30 0d 15 22 05 3a 0d 7f | 7f 0d f4 20 4a 46 50 61 |0..".:..|... JFPa|
|00004920| 74 63 68 0d ff | |tch.. | |
+--------+-------------------------+-------------------------+--------+--------+