home *** CD-ROM | disk | FTP | other *** search
Unknown | 1993-01-25 | 13.0 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
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0d 00 01 0a f4 3e 4d 69 | 73 63 0d 00 02 30 f4 50 |.....>Mi|sc...0.P|
|00000010| 72 6f 64 75 63 65 64 20 | 62 79 20 42 61 73 43 6f |roduced |by BasCo|
|00000020| 6d 70 72 65 73 73 20 76 | 31 2e 33 31 20 28 31 38 |mpress v|1.31 (18|
|00000030| 20 4a 61 6e 20 31 39 39 | 33 29 0d 00 03 16 dd a4 | Jan 199|3)......|
|00000040| 5f 4d 69 73 63 5f 76 65 | 72 73 69 6f 6e 3d 34 30 |_Misc_ve|rsion=40|
|00000050| 0d 00 04 5c dd a4 5f 68 | 61 72 64 5f 69 6e 69 74 |...\.._h|ard_init|
|00000060| 69 61 6c 69 73 65 5f 4d | 69 73 63 3a ea 69 25 2c |ialise_M|isc:.i%,|
|00000070| 6d 25 2c 6e 25 3a e7 a4 | 5f 4c 69 62 48 61 6e 64 |m%,n%:..|_LibHand|
|00000080| 6c 65 72 5f 76 65 72 73 | 69 6f 6e 3c 31 32 8c 85 |ler_vers|ion<12..|
|00000090| 31 2c 22 4e 65 65 64 73 | 20 6e 65 77 65 72 20 25 |1,"Needs| newer %|
|000000a0| 2e 4c 69 62 48 61 6e 64 | 6c 65 72 22 0d 00 05 e6 |.LibHand|ler"....|
|000000b0| 63 72 25 3d 31 33 3a 63 | 72 24 3d bd 28 63 72 25 |cr%=13:c|r$=.(cr%|
|000000c0| 29 3a 6c 66 25 3d 31 30 | 3a 6c 66 24 3d bd 28 6c |):lf%=10|:lf$=.(l|
|000000d0| 66 25 29 3a 6e 6c 24 3d | 63 72 24 2b 6c 66 24 3a |f%):nl$=|cr$+lf$:|
|000000e0| 76 64 75 3d 32 35 36 3a | de 73 68 69 66 74 5f 6d |vdu=256:|.shift_m|
|000000f0| 61 73 6b 73 25 28 31 35 | 2c 31 29 3a 6d 25 3d 32 |asks%(15|,1):m%=2|
|00000100| 35 35 3a 6e 25 3d 33 3a | e3 69 25 3d 30 b8 31 35 |55:n%=3:|.i%=0.15|
|00000110| 3a 73 68 69 66 74 5f 6d | 61 73 6b 73 25 28 69 25 |:shift_m|asks%(i%|
|00000120| 2c 30 29 3d 6d 25 3a 73 | 68 69 66 74 5f 6d 61 73 |,0)=m%:s|hift_mas|
|00000130| 6b 73 25 28 69 25 2c 31 | 29 3d 6e 25 3a 6d 25 3d |ks%(i%,1|)=n%:m%=|
|00000140| a4 5f 72 6f 6c 28 6d 25 | 2c 32 29 3a 6e 25 3d a4 |._rol(m%|,2):n%=.|
|00000150| 5f 72 6f 6c 28 6e 25 2c | 32 29 3a ed 69 25 3a 66 |_rol(n%,|2):.i%:f|
|00000160| 6f 72 63 65 5f 6c 6f 63 | 61 6c 5f 6c 61 62 65 6c |orce_loc|al_label|
|00000170| 24 3d 22 22 3a 64 65 66 | 61 75 6c 74 5f 6d 61 78 |$="":def|ault_max|
|00000180| 5f 6c 6f 63 61 6c 5f 6c | 61 62 65 6c 73 25 3d 31 |_local_l|abels%=1|
|00000190| 30 30 0d 00 06 55 75 73 | 65 72 5f 65 72 72 6f 72 |00...Uus|er_error|
|000001a0| 5f 62 6c 6f 63 6b 25 3d | 26 37 66 66 66 30 30 3a |_block%=|&7fff00:|
|000001b0| 75 73 65 72 5f 65 72 72 | 6f 72 5f 70 61 73 73 5f |user_err|or_pass_|
|000001c0| 31 25 3d b9 3a 75 73 65 | 72 5f 65 72 72 6f 72 5f |1%=.:use|r_error_|
|000001d0| 6e 75 6d 62 65 72 25 3d | 30 3a de 41 72 6d 49 6d |number%=|0:.ArmIm|
|000001e0| 6d 25 31 36 3a 3d 30 0d | 00 07 c2 dd a4 5f 69 6e |m%16:=0.|....._in|
|000001f0| 6c 69 6e 65 5f 61 64 64 | 5f 65 78 70 6c 69 63 69 |line_add|_explici|
|00000200| 74 28 72 65 67 5f 64 65 | 73 74 2c 72 65 67 5f 73 |t(reg_de|st,reg_s|
|00000210| 6f 75 72 63 65 2c 76 61 | 6c 75 65 25 29 3a ea 69 |ource,va|lue%):.i|
|00000220| 25 2c 70 6f 73 5f 6d 61 | 73 6b 73 25 28 29 2c 70 |%,pos_ma|sks%(),p|
|00000230| 6f 73 5f 73 68 69 66 74 | 73 25 2c 6e 65 67 5f 6d |os_shift|s%,neg_m|
|00000240| 61 73 6b 73 25 28 29 2c | 6e 65 67 5f 73 68 69 66 |asks%(),|neg_shif|
|00000250| 74 73 25 3a f2 5f 63 68 | 65 63 6b 5f 69 73 5f 41 |ts%:._ch|eck_is_A|
|00000260| 52 4d 5f 72 65 67 28 22 | 72 65 67 5f 64 65 73 74 |RM_reg("|reg_dest|
|00000270| 22 2c 30 2c 31 35 29 3a | f2 5f 63 68 65 63 6b 5f |",0,15):|._check_|
|00000280| 69 73 5f 41 52 4d 5f 72 | 65 67 28 22 72 65 67 5f |is_ARM_r|eg("reg_|
|00000290| 73 6f 75 72 63 65 22 2c | 30 2c 31 35 29 3a e7 76 |source",|0,15):.v|
|000002a0| 61 6c 75 65 25 3c 3e 30 | 8c 0d 00 08 5f de 70 6f |alue%<>0|...._.po|
|000002b0| 73 5f 6d 61 73 6b 73 25 | 28 33 29 3a de 6e 65 67 |s_masks%|(3):.neg|
|000002c0| 5f 6d 61 73 6b 73 25 28 | 33 29 3a 70 6f 73 5f 73 |_masks%(|3):pos_s|
|000002d0| 68 69 66 74 73 25 3d a4 | 5f 6e 75 6d 5f 73 68 69 |hifts%=.|_num_shi|
|000002e0| 66 74 73 28 70 6f 73 5f | 6d 61 73 6b 73 25 28 29 |fts(pos_|masks%()|
|000002f0| 2c 76 61 6c 75 65 25 29 | 3a e7 70 6f 73 5f 73 68 |,value%)|:.pos_sh|
|00000300| 69 66 74 73 25 3e 31 8c | 0d 00 09 32 6e 65 67 5f |ifts%>1.|...2neg_|
|00000310| 73 68 69 66 74 73 25 3d | a4 5f 6e 75 6d 5f 73 68 |shifts%=|._num_sh|
|00000320| 69 66 74 73 28 6e 65 67 | 5f 6d 61 73 6b 73 25 28 |ifts(neg|_masks%(|
|00000330| 29 2c 2d 76 61 6c 75 65 | 25 29 0d 00 0a 1d cc 3a |),-value|%).....:|
|00000340| 6e 65 67 5f 73 68 69 66 | 74 73 25 3d 70 6f 73 5f |neg_shif|ts%=pos_|
|00000350| 73 68 69 66 74 73 25 0d | 00 0b 21 cd 3a e7 28 6e |shifts%.|..!.:.(n|
|00000360| 65 67 5f 73 68 69 66 74 | 73 25 3c 70 6f 73 5f 73 |eg_shift|s%<pos_s|
|00000370| 68 69 66 74 73 25 29 8c | 0d 00 0c 55 e3 69 25 3d |hifts%).|...U.i%=|
|00000380| 30 b8 6e 65 67 5f 73 68 | 69 66 74 73 25 3a 5b 4f |0.neg_sh|ifts%:[O|
|00000390| 50 54 70 61 73 73 25 3a | 53 55 42 20 72 65 67 5f |PTpass%:|SUB reg_|
|000003a0| 64 65 73 74 2c 72 65 67 | 5f 73 6f 75 72 63 65 2c |dest,reg|_source,|
|000003b0| 23 2d 76 61 6c 75 65 25 | 80 6e 65 67 5f 6d 61 73 |#-value%|.neg_mas|
|000003c0| 6b 73 25 28 69 25 29 3a | 5d 3a ed 69 25 0d 00 0d |ks%(i%):|]:.i%...|
|000003d0| 56 cc 3a e3 69 25 3d 30 | b8 70 6f 73 5f 73 68 69 |V.:.i%=0|.pos_shi|
|000003e0| 66 74 73 25 3a 5b 4f 50 | 54 70 61 73 73 25 3a 41 |fts%:[OP|Tpass%:A|
|000003f0| 44 44 20 72 65 67 5f 64 | 65 73 74 2c 72 65 67 5f |DD reg_d|est,reg_|
|00000400| 73 6f 75 72 63 65 2c 23 | 76 61 6c 75 65 25 80 70 |source,#|value%.p|
|00000410| 6f 73 5f 6d 61 73 6b 73 | 25 28 69 25 29 3a 5d 3a |os_masks|%(i%):]:|
|00000420| ed 69 25 0d 00 0e 05 cd | 0d 00 0f 08 cd 3a 3d 30 |.i%.....|.....:=0|
|00000430| 0d 00 10 d1 dd a4 5f 69 | 6e 6c 69 6e 65 5f 6d 6f |......_i|nline_mo|
|00000440| 76 5f 65 78 70 6c 69 63 | 69 74 28 72 65 67 2c 76 |v_explic|it(reg,v|
|00000450| 61 6c 75 65 25 29 3a ea | 69 25 2c 73 69 67 6e 25 |alue%):.|i%,sign%|
|00000460| 2c 6d 61 73 6b 73 25 28 | 29 2c 6e 75 6d 5f 73 68 |,masks%(|),num_sh|
|00000470| 69 66 74 73 25 2c 6e 6f | 74 5f 73 68 69 66 74 73 |ifts%,no|t_shifts|
|00000480| 25 2c 6e 6f 74 5f 6d 61 | 73 6b 73 25 28 29 3a f2 |%,not_ma|sks%():.|
|00000490| 5f 63 68 65 63 6b 5f 69 | 73 5f 41 52 4d 5f 72 65 |_check_i|s_ARM_re|
|000004a0| 67 28 22 72 65 67 22 2c | 30 2c 31 34 29 3a de 6d |g("reg",|0,14):.m|
|000004b0| 61 73 6b 73 25 28 33 29 | 3a de 6e 6f 74 5f 6d 61 |asks%(3)|:.not_ma|
|000004c0| 73 6b 73 25 28 33 29 3a | 6e 75 6d 5f 73 68 69 66 |sks%(3):|num_shif|
|000004d0| 74 73 25 3d a4 5f 6e 75 | 6d 5f 73 68 69 66 74 73 |ts%=._nu|m_shifts|
|000004e0| 28 6d 61 73 6b 73 25 28 | 29 2c 76 61 6c 75 65 25 |(masks%(|),value%|
|000004f0| 29 3a e7 6e 75 6d 5f 73 | 68 69 66 74 73 25 3e 31 |):.num_s|hifts%>1|
|00000500| 8c 0d 00 11 32 6e 6f 74 | 5f 73 68 69 66 74 73 25 |....2not|_shifts%|
|00000510| 3d a4 5f 6e 75 6d 5f 73 | 68 69 66 74 73 28 6e 6f |=._num_s|hifts(no|
|00000520| 74 5f 6d 61 73 6b 73 25 | 28 29 2c ac 76 61 6c 75 |t_masks%|(),.valu|
|00000530| 65 25 29 0d 00 12 1d cc | 3a 6e 6f 74 5f 73 68 69 |e%).....|:not_shi|
|00000540| 66 74 73 25 3d 6e 75 6d | 5f 73 68 69 66 74 73 25 |fts%=num|_shifts%|
|00000550| 0d 00 13 1f cd 3a e7 6e | 6f 74 5f 73 68 69 66 74 |.....:.n|ot_shift|
|00000560| 73 25 3c 6e 75 6d 5f 73 | 68 69 66 74 73 25 8c 0d |s%<num_s|hifts%..|
|00000570| 00 14 95 76 61 6c 75 65 | 25 3d ac 76 61 6c 75 65 |...value|%=.value|
|00000580| 25 3a 5b 4f 50 54 70 61 | 73 73 25 3a 4d 56 4e 20 |%:[OPTpa|ss%:MVN |
|00000590| 72 65 67 2c 23 76 61 6c | 75 65 25 80 6e 6f 74 5f |reg,#val|ue%.not_|
|000005a0| 6d 61 73 6b 73 25 28 30 | 29 3a 5d 3a c8 95 6e 6f |masks%(0|):]:..no|
|000005b0| 74 5f 73 68 69 66 74 73 | 25 3e 30 3a 5b 4f 50 54 |t_shifts|%>0:[OPT|
|000005c0| 70 61 73 73 25 3a 42 49 | 43 20 72 65 67 2c 72 65 |pass%:BI|C reg,re|
|000005d0| 67 2c 23 76 61 6c 75 65 | 25 80 6e 6f 74 5f 6d 61 |g,#value|%.not_ma|
|000005e0| 73 6b 73 25 28 6e 6f 74 | 5f 73 68 69 66 74 73 25 |sks%(not|_shifts%|
|000005f0| 29 3a 5d 3a 6e 6f 74 5f | 73 68 69 66 74 73 25 2d |):]:not_|shifts%-|
|00000600| 3d 31 3a ce 0d 00 15 7f | cc 3a 5b 4f 50 54 70 61 |=1:.....|.:[OPTpa|
|00000610| 73 73 25 3a 4d 4f 56 20 | 72 65 67 2c 23 76 61 6c |ss%:MOV |reg,#val|
|00000620| 75 65 25 80 6d 61 73 6b | 73 25 28 30 29 3a 5d 3a |ue%.mask|s%(0):]:|
|00000630| c8 95 6e 75 6d 5f 73 68 | 69 66 74 73 25 3e 30 3a |..num_sh|ifts%>0:|
|00000640| 5b 4f 50 54 70 61 73 73 | 25 3a 84 52 20 72 65 67 |[OPTpass|%:.R reg|
|00000650| 2c 72 65 67 2c 23 76 61 | 6c 75 65 25 80 6d 61 73 |,reg,#va|lue%.mas|
|00000660| 6b 73 25 28 6e 75 6d 5f | 73 68 69 66 74 73 25 29 |ks%(num_|shifts%)|
|00000670| 3a 5d 3a 6e 75 6d 5f 73 | 68 69 66 74 73 25 2d 3d |:]:num_s|hifts%-=|
|00000680| 31 3a ce 0d 00 16 08 cd | 3a 3d 30 0d 00 17 6e dd |1:......|:=0...n.|
|00000690| a4 5f 6e 75 6d 5f 73 68 | 69 66 74 73 28 f8 6d 61 |._num_sh|ifts(.ma|
|000006a0| 73 6b 73 25 28 29 2c 6e | 25 29 3a ea 62 65 73 74 |sks%(),n|%):.best|
|000006b0| 25 2c 6c 65 61 73 74 25 | 2c 63 6f 75 6e 74 25 3a |%,least%|,count%:|
|000006c0| 62 65 73 74 25 3d 30 3a | 6c 65 61 73 74 25 3d a4 |best%=0:|least%=.|
|000006d0| 5f 67 65 74 5f 73 68 69 | 66 74 73 28 6d 61 73 6b |_get_shi|fts(mask|
|000006e0| 73 25 28 29 2c 6e 25 2c | 62 65 73 74 25 29 3a e7 |s%(),n%,|best%):.|
|000006f0| 6c 65 61 73 74 25 3e 31 | 8c 0d 00 18 37 63 6f 75 |least%>1|....7cou|
|00000700| 6e 74 25 3d a4 5f 67 65 | 74 5f 73 68 69 66 74 73 |nt%=._ge|t_shifts|
|00000710| 28 6d 61 73 6b 73 25 28 | 29 2c 6e 25 2c 31 35 29 |(masks%(|),n%,15)|
|00000720| 3a e7 63 6f 75 6e 74 25 | 3c 6c 65 61 73 74 25 8c |:.count%|<least%.|
|00000730| 0d 00 19 1a 6c 65 61 73 | 74 25 3d 63 6f 75 6e 74 |....leas|t%=count|
|00000740| 25 3a 62 65 73 74 25 3d | 31 35 0d 00 1a 10 cd 3a |%:best%=|15.....:|
|00000750| e7 6c 65 61 73 74 25 3e | 31 8c 0d 00 1b 37 63 6f |.least%>|1....7co|
|00000760| 75 6e 74 25 3d a4 5f 67 | 65 74 5f 73 68 69 66 74 |unt%=._g|et_shift|
|00000770| 73 28 6d 61 73 6b 73 25 | 28 29 2c 6e 25 2c 31 34 |s(masks%|(),n%,14|
|00000780| 29 3a e7 63 6f 75 6e 74 | 25 3c 6c 65 61 73 74 25 |):.count|%<least%|
|00000790| 8c 0d 00 1c 1a 6c 65 61 | 73 74 25 3d 63 6f 75 6e |.....lea|st%=coun|
|000007a0| 74 25 3a 62 65 73 74 25 | 3d 31 34 0d 00 1d 10 cd |t%:best%|=14.....|
|000007b0| 3a e7 6c 65 61 73 74 25 | 3e 31 8c 0d 00 1e 37 63 |:.least%|>1....7c|
|000007c0| 6f 75 6e 74 25 3d a4 5f | 67 65 74 5f 73 68 69 66 |ount%=._|get_shif|
|000007d0| 74 73 28 6d 61 73 6b 73 | 25 28 29 2c 6e 25 2c 31 |ts(masks|%(),n%,1|
|000007e0| 33 29 3a e7 63 6f 75 6e | 74 25 3c 6c 65 61 73 74 |3):.coun|t%<least|
|000007f0| 25 8c 0d 00 1f 11 6c 65 | 61 73 74 25 3d 63 6f 75 |%.....le|ast%=cou|
|00000800| 6e 74 25 0d 00 20 2c cc | 3a 6c 65 61 73 74 25 3d |nt%.. ,.|:least%=|
|00000810| a4 5f 67 65 74 5f 73 68 | 69 66 74 73 28 6d 61 73 |._get_sh|ifts(mas|
|00000820| 6b 73 25 28 29 2c 6e 25 | 2c 62 65 73 74 25 29 0d |ks%(),n%|,best%).|
|00000830| 00 21 05 cd 0d 00 22 05 | cd 0d 00 23 05 cd 0d 00 |.!....".|...#....|
|00000840| 24 0d cd 3a 3d 6c 65 61 | 73 74 25 0d 00 25 94 dd |$..:=lea|st%..%..|
|00000850| a4 5f 67 65 74 5f 73 68 | 69 66 74 73 28 f8 6d 61 |._get_sh|ifts(.ma|
|00000860| 73 6b 73 25 28 29 2c 6e | 25 2c 73 25 29 3a ea 63 |sks%(),n|%,s%):.c|
|00000870| 6f 75 6e 74 25 2c 73 68 | 69 66 74 25 3a 63 6f 75 |ount%,sh|ift%:cou|
|00000880| 6e 74 25 3d 2d 31 3a 73 | 68 69 66 74 25 3d 30 3a |nt%=-1:s|hift%=0:|
|00000890| f5 3a c8 95 28 28 6e 25 | 80 73 68 69 66 74 5f 6d |.:..((n%|.shift_m|
|000008a0| 61 73 6b 73 25 28 28 73 | 25 2b 73 68 69 66 74 25 |asks%((s|%+shift%|
|000008b0| 29 83 31 36 2c 31 29 29 | 3d 30 29 80 28 73 68 69 |).16,1))|=0).(shi|
|000008c0| 66 74 25 3c 31 36 29 3a | 73 68 69 66 74 25 2b 3d |ft%<16):|shift%+=|
|000008d0| 31 3a ce 3a e7 73 68 69 | 66 74 25 3c 31 36 8c 0d |1:.:.shi|ft%<16..|
|000008e0| 00 26 45 63 6f 75 6e 74 | 25 2b 3d 31 3a 6d 61 73 |.&Ecount|%+=1:mas|
|000008f0| 6b 73 25 28 63 6f 75 6e | 74 25 29 3d 73 68 69 66 |ks%(coun|t%)=shif|
|00000900| 74 5f 6d 61 73 6b 73 25 | 28 28 73 25 2b 73 68 69 |t_masks%|((s%+shi|
|00000910| 66 74 25 29 83 31 36 2c | 30 29 3a 73 68 69 66 74 |ft%).16,|0):shift|
|00000920| 25 2b 3d 34 0d 00 27 19 | cd 3a fd 73 68 69 66 74 |%+=4..'.|.:.shift|
|00000930| 25 3e 3d 31 36 3a 3d 63 | 6f 75 6e 74 25 0d 00 28 |%>=16:=c|ount%..(|
|00000940| 4e dd a4 5f 61 64 72 28 | 64 65 73 74 5f 72 65 67 |N.._adr(|dest_reg|
|00000950| 25 2c 61 64 64 72 65 73 | 73 25 29 3a ea 70 63 5f |%,addres|s%):.pc_|
|00000960| 72 65 6c 61 74 69 76 65 | 25 2c 73 69 67 6e 25 3a |relative|%,sign%:|
|00000970| ea 85 3a ee 85 ea f7 85 | 3a f2 5f 65 28 22 25 2e |..:.....|:._e("%.|
|00000980| 4d 69 73 63 3a 20 61 64 | 72 22 29 0d 00 29 df f2 |Misc: ad|r")..)..|
|00000990| 5f 63 68 65 63 6b 5f 69 | 73 5f 41 52 4d 5f 72 65 |_check_i|s_ARM_re|
|000009a0| 67 28 22 64 65 73 74 5f | 72 65 67 25 22 2c 30 2c |g("dest_|reg%",0,|
|000009b0| 31 34 29 3a 70 63 5f 72 | 65 6c 61 74 69 76 65 25 |14):pc_r|elative%|
|000009c0| 3d 28 28 61 64 64 72 65 | 73 73 25 2d 50 25 29 2d |=((addre|ss%-P%)-|
|000009d0| 38 29 2d 28 33 3c 3c 32 | 29 3a 73 69 67 6e 25 3d |8)-(3<<2|):sign%=|
|000009e0| b4 28 70 63 5f 72 65 6c | 61 74 69 76 65 25 29 3a |.(pc_rel|ative%):|
|000009f0| 70 63 5f 72 65 6c 61 74 | 69 76 65 25 3d 94 28 70 |pc_relat|ive%=.(p|
|00000a00| 63 5f 72 65 6c 61 74 69 | 76 65 25 29 3a 5b 4f 50 |c_relati|ve%):[OP|
|00000a10| 54 70 61 73 73 25 3a 4d | 4f 56 20 64 65 73 74 5f |Tpass%:M|OV dest_|
|00000a20| 72 65 67 25 2c 23 28 70 | 63 5f 72 65 6c 61 74 69 |reg%,#(p|c_relati|
|00000a30| 76 65 25 80 26 66 66 30 | 30 30 30 29 3a 41 44 44 |ve%.&ff0|000):ADD|
|00000a40| 20 64 65 73 74 5f 72 65 | 67 25 2c 64 65 73 74 5f | dest_re|g%,dest_|
|00000a50| 72 65 67 25 2c 23 28 70 | 63 5f 72 65 6c 61 74 69 |reg%,#(p|c_relati|
|00000a60| 76 65 25 80 36 35 32 38 | 30 29 0d 00 2a 3b 41 44 |ve%.6528|0)..*;AD|
|00000a70| 44 20 64 65 73 74 5f 72 | 65 67 25 2c 64 65 73 74 |D dest_r|eg%,dest|
|00000a80| 5f 72 65 67 25 2c 23 28 | 70 63 5f 72 65 6c 61 74 |_reg%,#(|pc_relat|
|00000a90| 69 76 65 25 80 32 35 35 | 29 3a 5d 3a e7 73 69 67 |ive%.255|):]:.sig|
|00000aa0| 6e 25 3c 30 8c 0d 00 2b | 2a 5b 4f 50 54 70 61 73 |n%<0...+|*[OPTpas|
|00000ab0| 73 25 3a 53 55 42 20 64 | 65 73 74 5f 72 65 67 25 |s%:SUB d|est_reg%|
|00000ac0| 2c 70 63 2c 64 65 73 74 | 5f 72 65 67 25 3a 5d 0d |,pc,dest|_reg%:].|
|00000ad0| 00 2c 2c cc 3a 5b 4f 50 | 54 70 61 73 73 25 3a 41 |.,,.:[OP|Tpass%:A|
|00000ae0| 44 44 20 64 65 73 74 5f | 72 65 67 25 2c 70 63 2c |DD dest_|reg%,pc,|
|00000af0| 64 65 73 74 5f 72 65 67 | 25 3a 5d 0d 00 2d 08 cd |dest_reg|%:]..-..|
|00000b00| 3a 3d 30 0d 00 2e 44 dd | a4 41 64 72 31 36 28 72 |:=0...D.|.Adr16(r|
|00000b10| 25 2c 61 64 64 72 65 73 | 73 25 29 3a ea 70 63 5f |%,addres|s%):.pc_|
|00000b20| 72 65 6c 61 74 69 76 65 | 25 3a ea 85 3a ee 85 ea |relative|%:..:...|
|00000b30| f7 85 3a f2 5f 65 28 22 | 25 2e 4d 69 73 63 3a 20 |..:._e("|%.Misc: |
|00000b40| 41 64 72 31 36 22 29 0d | 00 2f 2e 70 63 5f 72 65 |Adr16").|./.pc_re|
|00000b50| 6c 61 74 69 76 65 25 3d | 61 64 64 72 65 73 73 25 |lative%=|address%|
|00000b60| 2d 28 50 25 2b 38 29 3a | e7 28 70 61 73 73 25 80 |-(P%+8):|.(pass%.|
|00000b70| 32 29 3d 30 8c 0d 00 30 | 45 f2 5f 63 68 65 63 6b |2)=0...0|E._check|
|00000b80| 5f 69 73 5f 41 52 4d 5f | 72 65 67 28 22 72 25 22 |_is_ARM_|reg("r%"|
|00000b90| 2c 30 2c 31 34 29 3a 5b | 4f 50 54 70 61 73 73 25 |,0,14):[|OPTpass%|
|00000ba0| 3a 4d 4f 56 20 72 25 2c | 23 32 30 33 3a 4d 4f 56 |:MOV r%,|#203:MOV|
|00000bb0| 20 72 25 2c 23 32 30 33 | 3a 5d 0d 00 31 17 cc 3a | r%,#203|:]..1..:|
|00000bc0| e7 70 63 5f 72 65 6c 61 | 74 69 76 65 25 3e 3d 30 |.pc_rela|tive%>=0|
|00000bd0| 8c 0d 00 32 18 e7 70 63 | 5f 72 65 6c 61 74 69 76 |...2..pc|_relativ|
|00000be0| 65 25 3e 36 35 35 33 35 | 8c 0d 00 33 29 85 31 2c |e%>65535|...3).1,|
|00000bf0| 22 44 65 73 74 69 6e 61 | 74 69 6f 6e 20 61 64 64 |"Destina|tion add|
|00000c00| 72 65 73 73 20 6f 75 74 | 20 6f 66 20 72 61 6e 67 |ress out| of rang|
|00000c10| 65 22 0d 00 34 4b cd 3a | 5b 4f 50 54 70 61 73 73 |e"..4K.:|[OPTpass|
|00000c20| 25 3a 41 44 44 20 72 25 | 2c 70 63 2c 23 70 63 5f |%:ADD r%|,pc,#pc_|
|00000c30| 72 65 6c 61 74 69 76 65 | 25 80 32 35 35 3a 41 44 |relative|%.255:AD|
|00000c40| 44 20 72 25 2c 72 25 2c | 23 70 63 5f 72 65 6c 61 |D r%,r%,|#pc_rela|
|00000c50| 74 69 76 65 25 80 36 35 | 32 38 30 3a 5d 0d 00 35 |tive%.65|280:]..5|
|00000c60| 1d cc 3a e7 28 2d 70 63 | 5f 72 65 6c 61 74 69 76 |..:.(-pc|_relativ|
|00000c70| 65 25 29 3e 36 35 35 33 | 35 8c 0d 00 36 29 85 31 |e%)>6553|5...6).1|
|00000c80| 2c 22 44 65 73 74 69 6e | 61 74 69 6f 6e 20 61 64 |,"Destin|ation ad|
|00000c90| 64 72 65 73 73 20 6f 75 | 74 20 6f 66 20 72 61 6e |dress ou|t of ran|
|00000ca0| 67 65 22 0d 00 37 51 cd | 3a 5b 4f 50 54 70 61 73 |ge"..7Q.|:[OPTpas|
|00000cb0| 73 25 3a 53 55 42 20 72 | 25 2c 70 63 2c 23 28 2d |s%:SUB r|%,pc,#(-|
|00000cc0| 70 63 5f 72 65 6c 61 74 | 69 76 65 25 29 80 32 35 |pc_relat|ive%).25|
|00000cd0| 35 3a 53 55 42 20 72 25 | 2c 72 25 2c 23 28 2d 70 |5:SUB r%|,r%,#(-p|
|00000ce0| 63 5f 72 65 6c 61 74 69 | 76 65 25 29 80 36 35 32 |c_relati|ve%).652|
|00000cf0| 38 30 3a 5d 0d 00 38 05 | cd 0d 00 39 08 cd 3a 3d |80:]..8.|...9..:=|
|00000d00| 30 0d 00 3a 4f dd a4 61 | 64 72 6c 28 63 63 24 2c |0..:O..a|drl(cc$,|
|00000d10| 72 65 67 25 2c 6c 61 62 | 65 6c 25 29 3a ea 6f 66 |reg%,lab|el%):.of|
|00000d20| 66 73 65 74 25 2c 68 69 | 25 2c 6c 6f 25 2c 6f 70 |fset%,hi|%,lo%,op|
|00000d30| 31 25 2c 6f 70 32 25 3a | 63 63 25 3d a4 63 63 28 |1%,op2%:|cc%=.cc(|
|00000d40| 63 63 24 29 3a e7 70 61 | 73 73 25 80 32 3d 30 8c |cc$):.pa|ss%.2=0.|
|00000d50| 0d 00 3b 19 5b 4f 50 54 | 70 61 73 73 25 3a 44 43 |..;.[OPT|pass%:DC|
|00000d60| 44 30 3a 44 43 44 30 3a | 5d 0d 00 3c 42 cc 3a 6f |D0:DCD0:|]..<B.:o|
|00000d70| 66 66 73 65 74 25 3d 6c | 61 62 65 6c 25 2d 50 25 |ffset%=l|abel%-P%|
|00000d80| 2d 38 3a e7 94 28 6f 66 | 66 73 65 74 25 29 3e 36 |-8:..(of|fset%)>6|
|00000d90| 35 35 33 35 8c 85 31 2c | 22 61 64 72 6c 20 6f 75 |5535..1,|"adrl ou|
|00000da0| 74 20 6f 66 20 72 61 6e | 67 65 22 0d 00 3d 38 6c |t of ran|ge"..=8l|
|00000db0| 6f 25 3d 94 28 6f 66 66 | 73 65 74 25 29 80 32 35 |o%=.(off|set%).25|
|00000dc0| 35 3a 68 69 25 3d 94 28 | 6f 66 66 73 65 74 25 29 |5:hi%=.(|offset%)|
|00000dd0| 80 36 35 32 38 30 3a e7 | 6f 66 66 73 65 74 25 3e |.65280:.|offset%>|
|00000de0| 3d 30 8c 0d 00 3e 59 6f | 70 31 25 3d 63 63 25 84 |=0...>Yo|p1%=cc%.|
|00000df0| 28 26 32 38 66 30 30 30 | 30 2b 28 72 65 67 25 3c |(&28f000|0+(reg%<|
|00000e00| 3c 31 32 29 2b 6c 6f 25 | 29 3a 6f 70 32 25 3d 63 |<12)+lo%|):op2%=c|
|00000e10| 63 25 84 28 26 32 38 30 | 30 63 30 30 2b 28 72 65 |c%.(&280|0c00+(re|
|00000e20| 67 25 3c 3c 31 36 29 2b | 28 72 65 67 25 3c 3c 31 |g%<<16)+|(reg%<<1|
|00000e30| 32 29 2b 28 68 69 25 3e | 3e 38 29 29 0d 00 3f 5b |2)+(hi%>|>8))..?[|
|00000e40| cc 3a 6f 70 31 25 3d 63 | 63 25 84 28 26 32 34 66 |.:op1%=c|c%.(&24f|
|00000e50| 30 30 30 30 2b 28 72 65 | 67 25 3c 3c 31 32 29 2b |0000+(re|g%<<12)+|
|00000e60| 6c 6f 25 29 3a 6f 70 32 | 25 3d 63 63 25 84 28 26 |lo%):op2|%=cc%.(&|
|00000e70| 32 34 30 30 63 30 30 2b | 28 72 65 67 25 3c 3c 31 |2400c00+|(reg%<<1|
|00000e80| 36 29 2b 28 72 65 67 25 | 3c 3c 31 32 29 2b 28 68 |6)+(reg%|<<12)+(h|
|00000e90| 69 25 3e 3e 38 29 29 0d | 00 40 21 cd 3a 5b 4f 50 |i%>>8)).|.@!.:[OP|
|00000ea0| 54 70 61 73 73 25 3a 44 | 43 44 6f 70 31 25 3a 44 |Tpass%:D|CDop1%:D|
|00000eb0| 43 44 6f 70 32 25 3a 5d | 0d 00 41 08 cd 3a 3d 30 |CDop2%:]|..A..:=0|
|00000ec0| 0d 00 42 48 dd a4 61 64 | 72 4c 28 63 63 24 2c 72 |..BH..ad|rL(cc$,r|
|00000ed0| 65 67 25 2c 6c 61 62 65 | 6c 25 29 3a ea 6f 66 66 |eg%,labe|l%):.off|
|00000ee0| 73 65 74 25 2c 68 69 25 | 2c 6c 6f 25 2c 62 25 3a |set%,hi%|,lo%,b%:|
|00000ef0| 63 63 25 3d a4 63 63 28 | 63 63 24 29 3a e7 70 61 |cc%=.cc(|cc$):.pa|
|00000f00| 73 73 25 80 32 3d 30 8c | 0d 00 43 1e 5b 4f 50 54 |ss%.2=0.|..C.[OPT|
|00000f10| 70 61 73 73 25 3a 44 43 | 44 30 3a 44 43 44 30 3a |pass%:DC|D0:DCD0:|
|00000f20| 44 43 44 30 3a 5d 0d 00 | 44 44 cc 3a 6f 66 66 73 |DCD0:]..|DD.:offs|
|00000f30| 65 74 25 3d 6c 61 62 65 | 6c 25 2d 50 25 2d 38 3a |et%=labe|l%-P%-8:|
|00000f40| e7 94 28 6f 66 66 73 65 | 74 25 29 3e 26 66 66 66 |..(offse|t%)>&fff|
|00000f50| 66 66 66 8c 85 31 2c 22 | 61 64 72 4c 20 6f 75 74 |fff..1,"|adrL out|
|00000f60| 20 6f 66 20 72 61 6e 67 | 65 22 0d 00 45 4e 6c 6f | of rang|e"..ENlo|
|00000f70| 25 3d 94 28 6f 66 66 73 | 65 74 25 29 80 32 35 35 |%=.(offs|et%).255|
|00000f80| 3a 68 69 25 3d 94 28 6f | 66 66 73 65 74 25 29 80 |:hi%=.(o|ffset%).|
|00000f90| 36 35 32 38 30 3a 62 25 | 3d 94 28 6f 66 66 73 65 |65280:b%|=.(offse|
|00000fa0| 74 25 29 80 26 66 66 30 | 30 30 30 3a e7 6f 66 66 |t%).&ff0|000:.off|
|00000fb0| 73 65 74 25 3e 3d 30 8c | 0d 00 46 92 5b 4f 50 54 |set%>=0.|..F.[OPT|
|00000fc0| 70 61 73 73 25 3a 44 43 | 44 63 63 25 84 28 26 32 |pass%:DC|Dcc%.(&2|
|00000fd0| 38 66 30 30 30 30 2b 28 | 72 65 67 25 3c 3c 31 32 |8f0000+(|reg%<<12|
|00000fe0| 29 2b 6c 6f 25 29 3a 44 | 43 44 63 63 25 84 28 26 |)+lo%):D|CDcc%.(&|
|00000ff0| 32 38 30 30 63 30 30 2b | 28 72 65 67 25 3c 3c 31 |2800c00+|(reg%<<1|
|00001000| 36 29 2b 28 72 65 67 25 | 3c 3c 31 32 29 2b 28 68 |6)+(reg%|<<12)+(h|
|00001010| 69 25 3e 3e 38 29 29 3a | 44 43 44 63 63 25 84 28 |i%>>8)):|DCDcc%.(|
|00001020| 26 32 38 30 30 38 30 30 | 2b 28 72 65 67 25 3c 3c |&2800800|+(reg%<<|
|00001030| 31 36 29 2b 28 72 65 67 | 25 3c 3c 31 32 29 2b 28 |16)+(reg|%<<12)+(|
|00001040| 62 25 3e 3e 31 36 29 29 | 3a 5d 0d 00 47 94 cc 3a |b%>>16))|:]..G..:|
|00001050| 5b 4f 50 54 70 61 73 73 | 25 3a 44 43 44 63 63 25 |[OPTpass|%:DCDcc%|
|00001060| 84 28 26 32 34 66 30 30 | 30 30 2b 28 72 65 67 25 |.(&24f00|00+(reg%|
|00001070| 3c 3c 31 32 29 2b 6c 6f | 25 29 3a 44 43 44 63 63 |<<12)+lo|%):DCDcc|
|00001080| 25 84 28 26 32 34 30 30 | 63 30 30 2b 28 72 65 67 |%.(&2400|c00+(reg|
|00001090| 25 3c 3c 31 36 29 2b 28 | 72 65 67 25 3c 3c 31 32 |%<<16)+(|reg%<<12|
|000010a0| 29 2b 28 68 69 25 3e 3e | 38 29 29 3a 44 43 44 63 |)+(hi%>>|8)):DCDc|
|000010b0| 63 25 84 28 26 32 34 30 | 30 38 30 30 2b 28 72 65 |c%.(&240|0800+(re|
|000010c0| 67 25 3c 3c 31 36 29 2b | 28 72 65 67 25 3c 3c 31 |g%<<16)+|(reg%<<1|
|000010d0| 32 29 2b 28 62 25 3e 3e | 31 36 29 29 3a 5d 0d 00 |2)+(b%>>|16)):]..|
|000010e0| 48 05 cd 0d 00 49 08 cd | 3a 3d 30 0d 00 4a 32 dd |H....I..|:=0..J2.|
|000010f0| a4 5f 73 74 72 28 73 24 | 29 3a 5b 4f 50 54 70 61 |._str(s$|):[OPTpa|
|00001100| 73 73 25 3a 53 57 49 20 | 31 3a a4 5f 73 74 72 69 |ss%:SWI |1:._stri|
|00001110| 6e 67 7a 61 28 73 24 29 | 3a 5d 3a 3d 30 0d 00 4b |ngza(s$)|:]:=0..K|
|00001120| 38 dd a4 5f 58 73 74 72 | 28 73 24 29 3a 5b 4f 50 |8.._Xstr|(s$):[OP|
|00001130| 54 70 61 73 73 25 3a 53 | 57 49 20 26 32 30 30 30 |Tpass%:S|WI &2000|
|00001140| 31 3a a4 5f 73 74 72 69 | 6e 67 7a 61 28 73 24 29 |1:._stri|ngza(s$)|
|00001150| 3a 5d 3a 3d 30 0d 00 4c | 2c dd a4 5f 63 68 61 72 |:]:=0..L|,.._char|
|00001160| 28 63 24 29 3a 5b 4f 50 | 54 70 61 73 73 25 3a 53 |(c$):[OP|Tpass%:S|
|00001170| 57 49 20 76 64 75 2b 97 | 28 63 24 29 3a 5d 3a 3d |WI vdu+.|(c$):]:=|
|00001180| 30 0d 00 4d 54 dd a4 5f | 69 6e 6c 69 6e 65 5f 6c |0..MT.._|inline_l|
|00001190| 6f 63 61 74 65 28 78 25 | 2c 79 25 29 3a 5b 4f 50 |ocate(x%|,y%):[OP|
|000011a0| 54 70 61 73 73 25 3a a4 | 5f 63 68 61 72 28 bd 28 |Tpass%:.|_char(.(|
|000011b0| 33 31 29 29 3a a4 5f 63 | 68 61 72 28 bd 28 78 25 |31)):._c|har(.(x%|
|000011c0| 29 29 3a a4 5f 63 68 61 | 72 28 bd 28 79 25 29 29 |)):._cha|r(.(y%))|
|000011d0| 3a 5d 3a 3d 30 0d 00 4e | 28 dd a4 5f 73 74 72 69 |:]:=0..N|(.._stri|
|000011e0| 6e 67 28 73 24 29 3a 5b | 4f 50 54 70 61 73 73 25 |ng(s$):[|OPTpass%|
|000011f0| 3a 45 51 55 53 20 73 24 | 3a 5d 3a 3d 30 0d 00 4f |:EQUS s$|:]:=0..O|
|00001200| 35 dd a4 5f 73 74 72 69 | 6e 67 63 72 28 73 24 29 |5.._stri|ngcr(s$)|
|00001210| 3a 5b 4f 50 54 70 61 73 | 73 25 3a a4 5f 73 74 72 |:[OPTpas|s%:._str|
|00001220| 69 6e 67 28 73 24 29 3a | 44 43 42 31 33 3a 5d 3a |ing(s$):|DCB13:]:|
|00001230| 3d 30 0d 00 50 38 dd a4 | 5f 73 74 72 69 6e 67 63 |=0..P8..|_stringc|
|00001240| 72 61 28 73 24 29 3a 5b | 4f 50 54 70 61 73 73 25 |ra(s$):[|OPTpass%|
|00001250| 3a a4 5f 73 74 72 69 6e | 67 63 72 28 73 24 29 3a |:._strin|gcr(s$):|
|00001260| 41 4c 49 47 4e 3a 5d 3a | 3d 30 0d 00 51 33 dd a4 |ALIGN:]:|=0..Q3..|
|00001270| 5f 73 74 72 69 6e 67 7a | 28 73 24 29 3a 5b 4f 50 |_stringz|(s$):[OP|
|00001280| 54 70 61 73 73 25 3a a4 | 5f 73 74 72 69 6e 67 28 |Tpass%:.|_string(|
|00001290| 73 24 29 3a 44 43 42 30 | 3a 5d 3a 3d 30 0d 00 52 |s$):DCB0|:]:=0..R|
|000012a0| 36 dd a4 5f 73 74 72 69 | 6e 67 7a 61 28 73 24 29 |6.._stri|ngza(s$)|
|000012b0| 3a 5b 4f 50 54 70 61 73 | 73 25 3a a4 5f 73 74 72 |:[OPTpas|s%:._str|
|000012c0| 69 6e 67 7a 28 73 24 29 | 3a 41 4c 49 47 4e 3a 5d |ingz(s$)|:ALIGN:]|
|000012d0| 3a 3d 30 0d 00 53 34 dd | a4 5f 73 74 72 69 6e 67 |:=0..S4.|._string|
|000012e0| 61 28 73 24 29 3a 5b 4f | 50 54 70 61 73 73 25 3a |a(s$):[O|PTpass%:|
|000012f0| a4 5f 73 74 72 69 6e 67 | 28 73 24 29 3a 41 4c 49 |._string|(s$):ALI|
|00001300| 47 4e 3a 5d 3a 3d 30 0d | 00 54 36 dd f2 5f 69 6e |GN:]:=0.|.T6.._in|
|00001310| 69 74 69 61 6c 69 73 65 | 5f 6c 6f 63 61 6c 5f 6c |itialise|_local_l|
|00001320| 61 62 65 6c 73 28 6d 61 | 78 25 29 3a ea 69 25 3a |abels(ma|x%):.i%:|
|00001330| e7 28 70 61 73 73 25 80 | 32 29 3d 30 8c 0d 00 55 |.(pass%.|2)=0...U|
|00001340| 1f e7 6d 61 78 25 3c 3d | 30 8c 85 31 2c 22 42 61 |..max%<=|0..1,"Ba|
|00001350| 64 20 70 61 72 61 6d 65 | 74 65 72 22 0d 00 56 65 |d parame|ter"..Ve|
|00001360| de 6c 6f 63 61 6c 5f 6c | 61 62 65 6c 5f 73 74 72 |.local_l|abel_str|
|00001370| 69 6e 67 73 24 28 6d 61 | 78 25 29 3a de 6c 6f 63 |ings$(ma|x%):.loc|
|00001380| 61 6c 5f 6c 61 62 65 6c | 5f 76 61 6c 75 65 73 25 |al_label|_values%|
|00001390| 28 6d 61 78 25 29 3a 6d | 61 78 5f 6c 6f 63 61 6c |(max%):m|ax_local|
|000013a0| 5f 6c 61 62 65 6c 73 25 | 3d 6d 61 78 25 3a 6e 75 |_labels%|=max%:nu|
|000013b0| 6d 5f 6c 6f 63 61 6c 5f | 6c 61 62 65 6c 73 25 3d |m_local_|labels%=|
|000013c0| 30 0d 00 57 1f cc 3a e7 | 6d 61 78 25 3c 3e 6d 61 |0..W..:.|max%<>ma|
|000013d0| 78 5f 6c 6f 63 61 6c 5f | 6c 61 62 65 6c 73 25 8c |x_local_|labels%.|
|000013e0| 0d 00 58 32 85 31 2c 22 | 50 61 72 61 6d 65 74 65 |..X2.1,"|Paramete|
|000013f0| 72 20 63 68 61 6e 67 65 | 64 20 62 65 74 77 65 65 |r change|d betwee|
|00001400| 6e 20 41 73 73 65 6d 62 | 6c 79 20 70 61 73 73 65 |n Assemb|ly passe|
|00001410| 73 22 0d 00 59 1b cd 3a | e7 6e 75 6d 5f 6c 6f 63 |s"..Y..:|.num_loc|
|00001420| 61 6c 5f 6c 61 62 65 6c | 73 25 3e 30 8c 0d 00 5a |al_label|s%>0...Z|
|00001430| 42 e3 69 25 3d 30 b8 28 | 6e 75 6d 5f 6c 6f 63 61 |B.i%=0.(|num_loca|
|00001440| 6c 5f 6c 61 62 65 6c 73 | 25 2d 31 29 3a e7 a7 6c |l_labels|%-1):..l|
|00001450| 6f 63 61 6c 5f 6c 61 62 | 65 6c 5f 73 74 72 69 6e |ocal_lab|el_strin|
|00001460| 67 73 24 28 69 25 29 2c | 22 20 22 29 3d 30 8c 0d |gs$(i%),|" ")=0..|
|00001470| 00 5b 1d 6c 6f 63 61 6c | 5f 6c 61 62 65 6c 5f 76 |.[.local|_label_v|
|00001480| 61 6c 75 65 73 25 28 69 | 25 29 3d 30 0d 00 5c 09 |alues%(i|%)=0..\.|
|00001490| cd 3a ed 69 25 0d 00 5d | 05 cd 0d 00 5e 07 cd 3a |.:.i%..]|....^..:|
|000014a0| e1 0d 00 5f 49 dd f2 5f | 64 65 63 6c 61 72 65 5f |..._I.._|declare_|
|000014b0| 6c 6f 63 61 6c 5f 6c 61 | 62 65 6c 28 6c 61 62 65 |local_la|bel(labe|
|000014c0| 6c 24 2c f8 6c 61 62 65 | 6c 29 3a ea 69 6e 64 65 |l$,.labe|l):.inde|
|000014d0| 78 25 2c 6c 6f 63 61 6c | 24 2c 65 24 3a e7 28 70 |x%,local|$,e$:.(p|
|000014e0| 61 73 73 25 80 32 29 3d | 30 8c 0d 00 60 58 ea 85 |ass%.2)=|0...`X..|
|000014f0| 3a ee 85 ea f2 5f 69 6e | 69 74 69 61 6c 69 73 65 |:...._in|itialise|
|00001500| 5f 6c 6f 63 61 6c 5f 6c | 61 62 65 6c 73 28 64 65 |_local_l|abels(de|
|00001510| 66 61 75 6c 74 5f 6d 61 | 78 5f 6c 6f 63 61 6c 5f |fault_ma|x_local_|
|00001520| 6c 61 62 65 6c 73 25 29 | 3a 66 6f 72 63 65 5f 6c |labels%)|:force_l|
|00001530| 6f 63 61 6c 5f 6c 61 62 | 65 6c 24 3d 6c 61 62 65 |ocal_lab|el$=labe|
|00001540| 6c 24 0d 00 61 36 69 6e | 64 65 78 25 3d 6c 6f 63 |l$..a6in|dex%=loc|
|00001550| 61 6c 5f 6c 61 62 65 6c | 5f 76 61 6c 75 65 73 25 |al_label|_values%|
|00001560| 28 30 29 3a f7 85 3a e7 | a7 6c 61 62 65 6c 24 2c |(0):..:.|.label$,|
|00001570| 22 20 22 29 3c 3e 30 8c | 0d 00 62 2b 85 31 2c 22 |" ")<>0.|..b+.1,"|
|00001580| 6c 61 62 65 6c 24 20 6d | 75 73 74 20 6e 6f 74 20 |label$ m|ust not |
|00001590| 63 6f 6e 74 61 69 6e 20 | 61 6e 79 20 73 70 61 63 |contain |any spac|
|000015a0| 65 73 22 0d 00 63 2a cd | 3a e7 ac a4 5f 66 69 6e |es"..c*.|:..._fin|
|000015b0| 64 5f 6c 6f 63 61 6c 5f | 6c 61 62 65 6c 28 6c 61 |d_local_|label(la|
|000015c0| 62 65 6c 24 2c 69 6e 64 | 65 78 25 29 8c 0d 00 64 |bel$,ind|ex%)...d|
|000015d0| 1f f2 5f 61 64 64 5f 6c | 6f 63 61 6c 5f 6c 61 62 |.._add_l|ocal_lab|
|000015e0| 65 6c 28 6c 61 62 65 6c | 24 2c 30 29 0d 00 65 0e |el(label|$,0)..e.|
|000015f0| cd 3a 6c 61 62 65 6c 3d | 50 25 0d 00 66 21 cc 3a |.:label=|P%..f!.:|
|00001600| e7 6c 61 62 65 6c 24 3d | 66 6f 72 63 65 5f 6c 6f |.label$=|force_lo|
|00001610| 63 61 6c 5f 6c 61 62 65 | 6c 24 8c 0d 00 67 4e f2 |cal_labe|l$...gN.|
|00001620| 5f 69 6e 69 74 69 61 6c | 69 73 65 5f 6c 6f 63 61 |_initial|ise_loca|
|00001630| 6c 5f 6c 61 62 65 6c 73 | 28 64 65 66 61 75 6c 74 |l_labels|(default|
|00001640| 5f 6d 61 78 5f 6c 6f 63 | 61 6c 5f 6c 61 62 65 6c |_max_loc|al_label|
|00001650| 73 25 29 3a 66 6f 72 63 | 65 5f 6c 6f 63 61 6c 5f |s%):forc|e_local_|
|00001660| 6c 61 62 65 6c 24 3d 22 | 22 0d 00 68 2a cd 3a e7 |label$="|"..h*.:.|
|00001670| ac a4 5f 66 69 6e 64 5f | 6c 6f 63 61 6c 5f 6c 61 |.._find_|local_la|
|00001680| 62 65 6c 28 6c 61 62 65 | 6c 24 2c 69 6e 64 65 78 |bel(labe|l$,index|
|00001690| 25 29 8c 0d 00 69 1d 85 | 31 2c 6c 61 62 65 6c 24 |%)...i..|1,label$|
|000016a0| 2b 22 20 6e 6f 74 20 64 | 65 66 69 6e 65 64 21 22 |+" not d|efined!"|
|000016b0| 0d 00 6a 4e cd 3a 6c 6f | 63 61 6c 24 3d a4 5f 6c |..jN.:lo|cal$=._l|
|000016c0| 6f 63 61 6c 5f 6c 61 62 | 65 6c 28 6c 61 62 65 6c |ocal_lab|el(label|
|000016d0| 24 2c 69 6e 64 65 78 25 | 29 3a e7 ac a4 5f 66 69 |$,index%|):..._fi|
|000016e0| 6e 64 5f 6c 6f 63 61 6c | 5f 6c 61 62 65 6c 28 6c |nd_local|_label(l|
|000016f0| 6f 63 61 6c 24 2c 69 6e | 64 65 78 25 29 8c 0d 00 |ocal$,in|dex%)...|
|00001700| 6b 58 65 24 3d 22 60 22 | 2b 6c 61 62 65 6c 24 2b |kXe$="`"|+label$+|
|00001710| 22 27 20 77 61 73 6e 27 | 74 20 64 65 63 6c 61 72 |"' wasn'|t declar|
|00001720| 65 64 20 61 73 20 6d 61 | 6e 79 20 74 69 6d 65 73 |ed as ma|ny times|
|00001730| 20 64 75 72 69 6e 67 20 | 22 3a 85 31 2c 65 24 2b | during |":.1,e$+|
|00001740| 22 70 61 73 73 20 31 20 | 61 73 20 69 6e 20 70 61 |"pass 1 |as in pa|
|00001750| 73 73 20 32 21 22 0d 00 | 6c 27 cd 3a 6c 61 62 65 |ss 2!"..|l'.:labe|
|00001760| 6c 3d 6c 6f 63 61 6c 5f | 6c 61 62 65 6c 5f 76 61 |l=local_|label_va|
|00001770| 6c 75 65 73 25 28 69 6e | 64 65 78 25 29 0d 00 6d |lues%(in|dex%)..m|
|00001780| 07 cd 3a e1 0d 00 6e 64 | dd a4 5f 64 65 66 69 6e |..:...nd|.._defin|
|00001790| 65 5f 6c 6f 63 61 6c 5f | 6c 61 62 65 6c 28 6c 61 |e_local_|label(la|
|000017a0| 62 65 6c 24 29 3a ea 69 | 6e 64 65 78 25 2c 72 6f |bel$):.i|ndex%,ro|
|000017b0| 6f 74 5f 69 6e 64 65 78 | 25 2c 6c 6f 63 61 6c 24 |ot_index|%,local$|
|000017c0| 2c 65 24 3a e7 ac a4 5f | 66 69 6e 64 5f 6c 6f 63 |,e$:..._|find_loc|
|000017d0| 61 6c 5f 6c 61 62 65 6c | 28 6c 61 62 65 6c 24 2c |al_label|(label$,|
|000017e0| 69 6e 64 65 78 25 29 8c | 0d 00 6f 5f 65 24 3d 22 |index%).|..o_e$="|
|000017f0| 60 22 2b 6c 61 62 65 6c | 24 2b 22 27 20 68 61 73 |`"+label|$+"' has|
|00001800| 6e 27 74 20 62 65 65 6e | 20 64 65 63 6c 61 72 65 |n't been| declare|
|00001810| 64 2e 20 22 3a 85 31 2c | 65 24 2b 22 44 6f 6e 27 |d. ":.1,|e$+"Don'|
|00001820| 74 20 66 6f 72 67 65 74 | 20 74 6f 20 50 52 4f 43 |t forget| to PROC|
|00001830| 5f 64 65 63 6c 61 72 65 | 5f 6c 6f 63 61 6c 5f 6c |_declare|_local_l|
|00001840| 61 62 65 6c 28 29 22 0d | 00 70 13 cd 3a e7 28 70 |abel()".|.p..:.(p|
|00001850| 61 73 73 25 80 32 29 3d | 30 8c 0d 00 71 55 f2 5f |ass%.2)=|0...qU._|
|00001860| 61 64 64 5f 6c 6f 63 61 | 6c 5f 6c 61 62 65 6c 28 |add_loca|l_label(|
|00001870| a4 5f 6c 6f 63 61 6c 5f | 6c 61 62 65 6c 28 6c 61 |._local_|label(la|
|00001880| 62 65 6c 24 2c 69 6e 64 | 65 78 25 29 2c 50 25 29 |bel$,ind|ex%),P%)|
|00001890| 3a 6c 6f 63 61 6c 5f 6c | 61 62 65 6c 5f 76 61 6c |:local_l|abel_val|
|000018a0| 75 65 73 25 28 69 6e 64 | 65 78 25 29 2b 3d 31 0d |ues%(ind|ex%)+=1.|
|000018b0| 00 72 61 cc 3a 6c 6f 63 | 61 6c 24 3d a4 5f 6c 6f |.ra.:loc|al$=._lo|
|000018c0| 63 61 6c 5f 6c 61 62 65 | 6c 28 6c 61 62 65 6c 24 |cal_labe|l(label$|
|000018d0| 2c 69 6e 64 65 78 25 29 | 3a 72 6f 6f 74 5f 69 6e |,index%)|:root_in|
|000018e0| 64 65 78 25 3d 69 6e 64 | 65 78 25 3a e7 ac a4 5f |dex%=ind|ex%:..._|
|000018f0| 66 69 6e 64 5f 6c 6f 63 | 61 6c 5f 6c 61 62 65 6c |find_loc|al_label|
|00001900| 28 6c 6f 63 61 6c 24 2c | 69 6e 64 65 78 25 29 8c |(local$,|index%).|
|00001910| 0d 00 73 5c 65 24 3d 22 | 60 22 2b 6c 61 62 65 6c |..s\e$="|`"+label|
|00001920| 24 2b 22 27 20 77 61 73 | 6e 27 74 20 64 65 66 69 |$+"' was|n't defi|
|00001930| 6e 65 64 20 61 73 20 22 | 3a 85 31 2c 65 24 2b 22 |ned as "|:.1,e$+"|
|00001940| 6d 61 6e 79 20 74 69 6d | 65 73 20 64 75 72 69 6e |many tim|es durin|
|00001950| 67 20 70 61 73 73 20 31 | 20 61 73 20 75 73 65 64 |g pass 1| as used|
|00001960| 20 69 6e 20 70 61 73 73 | 20 32 21 22 0d 00 74 27 | in pass| 2!"..t'|
|00001970| cd 3a e7 6c 6f 63 61 6c | 5f 6c 61 62 65 6c 5f 76 |.:.local|_label_v|
|00001980| 61 6c 75 65 73 25 28 69 | 6e 64 65 78 25 29 3c 3e |alues%(i|ndex%)<>|
|00001990| 50 25 8c 0d 00 75 27 85 | 31 2c 22 50 68 61 73 69 |P%...u'.|1,"Phasi|
|000019a0| 6e 67 20 65 72 72 6f 72 | 20 6f 6e 20 60 22 2b 6c |ng error| on `"+l|
|000019b0| 61 62 65 6c 24 2b 22 27 | 2e 22 0d 00 76 29 cd 3a |abel$+"'|."..v).:|
|000019c0| 6c 6f 63 61 6c 5f 6c 61 | 62 65 6c 5f 76 61 6c 75 |local_la|bel_valu|
|000019d0| 65 73 25 28 72 6f 6f 74 | 5f 69 6e 64 65 78 25 29 |es%(root|_index%)|
|000019e0| 2b 3d 31 0d 00 77 08 cd | 3a 3d 30 0d 00 78 4f dd |+=1..w..|:=0..xO.|
|000019f0| f2 5f 61 64 64 5f 6c 6f | 63 61 6c 5f 6c 61 62 65 |._add_lo|cal_labe|
|00001a00| 6c 28 6c 61 62 65 6c 24 | 2c 76 61 6c 75 65 25 29 |l(label$|,value%)|
|00001a10| 3a ea 65 24 3a e7 6e 75 | 6d 5f 6c 6f 63 61 6c 5f |:.e$:.nu|m_local_|
|00001a20| 6c 61 62 65 6c 73 25 3d | 6d 61 78 5f 6c 6f 63 61 |labels%=|max_loca|
|00001a30| 6c 5f 6c 61 62 65 6c 73 | 25 8c 0d 00 79 59 65 24 |l_labels|%...yYe$|
|00001a40| 3d 22 54 6f 6f 20 6d 61 | 6e 79 20 6c 6f 63 61 6c |="Too ma|ny local|
|00001a50| 20 6c 61 62 65 6c 73 2c | 20 63 68 61 6e 67 65 20 | labels,| change |
|00001a60| 70 61 72 61 6d 65 74 65 | 72 20 74 6f 20 22 3a 65 |paramete|r to ":e|
|00001a70| 24 2b 3d 22 69 6e 69 74 | 61 6c 69 73 65 5f 6c 6f |$+="init|alise_lo|
|00001a80| 63 61 6c 5f 6c 61 62 65 | 6c 73 28 29 22 3a 85 30 |cal_labe|ls()":.0|
|00001a90| 2c 65 24 0d 00 7a 79 cd | 3a 6c 6f 63 61 6c 5f 6c |,e$..zy.|:local_l|
|00001aa0| 61 62 65 6c 5f 73 74 72 | 69 6e 67 73 24 28 6e 75 |abel_str|ings$(nu|
|00001ab0| 6d 5f 6c 6f 63 61 6c 5f | 6c 61 62 65 6c 73 25 29 |m_local_|labels%)|
|00001ac0| 3d 6c 61 62 65 6c 24 3a | 6c 6f 63 61 6c 5f 6c 61 |=label$:|local_la|
|00001ad0| 62 65 6c 5f 76 61 6c 75 | 65 73 25 28 6e 75 6d 5f |bel_valu|es%(num_|
|00001ae0| 6c 6f 63 61 6c 5f 6c 61 | 62 65 6c 73 25 29 3d 76 |local_la|bels%)=v|
|00001af0| 61 6c 75 65 25 3a 6e 75 | 6d 5f 6c 6f 63 61 6c 5f |alue%:nu|m_local_|
|00001b00| 6c 61 62 65 6c 73 25 2b | 3d 31 3a e1 0d 00 7b 4c |labels%+|=1:...{L|
|00001b10| dd a4 5f 6c 6f 63 61 6c | 5f 6c 61 62 65 6c 28 6c |.._local|_label(l|
|00001b20| 61 62 65 6c 24 2c 69 6e | 64 65 78 25 29 3a 3d 6c |abel$,in|dex%):=l|
|00001b30| 61 62 65 6c 24 2b 22 20 | 22 2b c3 28 6c 6f 63 61 |abel$+" |"+.(loca|
|00001b40| 6c 5f 6c 61 62 65 6c 5f | 76 61 6c 75 65 73 25 28 |l_label_|values%(|
|00001b50| 69 6e 64 65 78 25 29 29 | 0d 00 7c 9b dd a4 5f 66 |index%))|..|..._f|
|00001b60| 69 6e 64 5f 6c 6f 63 61 | 6c 5f 6c 61 62 65 6c 28 |ind_loca|l_label(|
|00001b70| 6c 61 62 65 6c 24 2c f8 | 69 6e 64 65 78 25 29 3a |label$,.|index%):|
|00001b80| ea 66 6f 75 6e 64 25 3a | 66 6f 75 6e 64 25 3d a3 |.found%:|found%=.|
|00001b90| 3a 69 6e 64 65 78 25 3d | 30 3a c8 95 69 6e 64 65 |:index%=|0:..inde|
|00001ba0| 78 25 3c 6e 75 6d 5f 6c | 6f 63 61 6c 5f 6c 61 62 |x%<num_l|ocal_lab|
|00001bb0| 65 6c 73 25 80 ac 66 6f | 75 6e 64 25 3a 66 6f 75 |els%..fo|und%:fou|
|00001bc0| 6e 64 25 3d 28 6c 61 62 | 65 6c 24 3d 6c 6f 63 61 |nd%=(lab|el$=loca|
|00001bd0| 6c 5f 6c 61 62 65 6c 5f | 73 74 72 69 6e 67 73 24 |l_label_|strings$|
|00001be0| 28 69 6e 64 65 78 25 29 | 29 3a e7 ac 66 6f 75 6e |(index%)|):..foun|
|00001bf0| 64 25 8c 0d 00 7d 0d 69 | 6e 64 65 78 25 2b 3d 31 |d%...}.i|ndex%+=1|
|00001c00| 0d 00 7e 0f cd 3a ce 3a | 3d 66 6f 75 6e 64 25 0d |..~..:.:|=found%.|
|00001c10| 00 7f 88 dd a4 5f 69 6e | 6c 69 6e 65 5f 73 6b 69 |....._in|line_ski|
|00001c20| 70 5f 73 70 61 63 65 73 | 28 73 74 72 69 6e 67 2c |p_spaces|(string,|
|00001c30| 73 63 72 61 70 29 3a ea | 6c 6f 6f 70 3a 5b 4f 50 |scrap):.|loop:[OP|
|00001c40| 54 70 61 73 73 25 3a 2e | 6c 6f 6f 70 20 4c 44 52 |Tpass%:.|loop LDR|
|00001c50| 42 20 73 63 72 61 70 2c | 5b 73 74 72 69 6e 67 5d |B scrap,|[string]|
|00001c60| 3a 43 4d 50 20 73 63 72 | 61 70 2c 23 97 28 22 20 |:CMP scr|ap,#.(" |
|00001c70| 22 29 3a 41 44 44 65 71 | 20 73 74 72 69 6e 67 2c |"):ADDeq| string,|
|00001c80| 73 74 72 69 6e 67 2c 23 | 31 3a 42 65 71 20 6c 6f |string,#|1:Beq lo|
|00001c90| 6f 70 3a 5d 3a 3d 30 0d | 00 80 59 dd a4 5f 72 6f |op:]:=0.|..Y.._ro|
|00001ca0| 72 28 78 25 2c 73 68 69 | 66 74 25 29 3a 73 68 69 |r(x%,shi|ft%):shi|
|00001cb0| 66 74 25 3d 73 68 69 66 | 74 25 83 33 32 3a 3d 28 |ft%=shif|t%.32:=(|
|00001cc0| 78 25 3e 3e 3e 73 68 69 | 66 74 25 29 84 28 28 28 |x%>>>shi|ft%).(((|
|00001cd0| 28 31 3c 3c 73 68 69 66 | 74 25 29 2d 31 29 80 78 |(1<<shif|t%)-1).x|
|00001ce0| 25 29 3c 3c 28 33 32 2d | 73 68 69 66 74 25 29 29 |%)<<(32-|shift%))|
|00001cf0| 0d 00 81 5c dd a4 5f 72 | 6f 6c 28 78 25 2c 73 68 |...\.._r|ol(x%,sh|
|00001d00| 69 66 74 25 29 3a 73 68 | 69 66 74 25 3d 73 68 69 |ift%):sh|ift%=shi|
|00001d10| 66 74 25 83 33 32 3a 3d | 28 78 25 3c 3c 73 68 69 |ft%.32:=|(x%<<shi|
|00001d20| 66 74 25 29 84 28 28 28 | ac 28 28 2d 31 29 3e 3e |ft%).(((|.((-1)>>|
|00001d30| 3e 73 68 69 66 74 25 29 | 29 80 78 25 29 3e 3e 3e |>shift%)|).x%)>>>|
|00001d40| 28 33 32 2d 73 68 69 66 | 74 25 29 29 0d 00 82 4b |(32-shif|t%))...K|
|00001d50| dd f2 5f 63 68 65 63 6b | 5f 69 73 5f 41 52 4d 5f |.._check|_is_ARM_|
|00001d60| 72 65 67 28 72 65 67 24 | 2c 6c 6f 77 25 2c 68 69 |reg(reg$|,low%,hi|
|00001d70| 67 68 25 29 3a ea 72 65 | 67 25 3a e7 6c 6f 77 25 |gh%):.re|g%:.low%|
|00001d80| 3c 30 84 68 69 67 68 25 | 3e 31 35 84 6c 6f 77 25 |<0.high%|>15.low%|
|00001d90| 3e 68 69 67 68 25 8c 0d | 00 83 32 85 30 2c 22 25 |>high%..|..2.0,"%|
|00001da0| 2e 4d 69 73 63 3a 20 63 | 68 65 63 6b 5f 69 73 5f |.Misc: c|heck_is_|
|00001db0| 41 52 4d 5f 72 65 67 3a | 20 62 61 64 20 70 61 72 |ARM_reg:| bad par|
|00001dc0| 61 6d 74 65 72 28 73 29 | 22 0d 00 84 29 cd 3a 72 |amter(s)|"...).:r|
|00001dd0| 65 67 25 3d a0 28 72 65 | 67 24 29 3a e7 72 65 67 |eg%=.(re|g$):.reg|
|00001de0| 25 3c 6c 6f 77 25 84 72 | 65 67 25 3e 68 69 67 68 |%<low%.r|eg%>high|
|00001df0| 25 8c 0d 00 85 2a 85 31 | 2c 22 49 6e 76 61 6c 69 |%....*.1|,"Invali|
|00001e00| 64 20 41 52 4d 20 72 65 | 67 69 73 74 65 72 20 70 |d ARM re|gister p|
|00001e10| 61 73 73 65 64 20 22 2b | 72 65 67 24 0d 00 86 07 |assed "+|reg$....|
|00001e20| cd 3a e1 0d 00 87 52 dd | a4 5f 65 72 72 6f 72 5f |.:....R.|._error_|
|00001e30| 62 6c 6f 63 6b 28 f8 6c | 61 62 65 6c 2c 65 72 72 |block(.l|abel,err|
|00001e40| 6f 72 24 29 3a 5b 4f 50 | 54 70 61 73 73 25 3a 41 |or$):[OP|Tpass%:A|
|00001e50| 4c 49 47 4e 3a 2e 6c 61 | 62 65 6c 3a a4 5f 64 65 |LIGN:.la|bel:._de|
|00001e60| 66 69 6e 65 5f 65 72 72 | 6f 72 5f 62 6c 6f 63 6b |fine_err|or_block|
|00001e70| 3a 5d 3a 3d 30 0d 00 88 | 3c dd a4 5f 64 65 66 69 |:]:=0...|<.._defi|
|00001e80| 6e 65 5f 65 72 72 6f 72 | 5f 62 6c 6f 63 6b 3a e7 |ne_error|_block:.|
|00001e90| 75 73 65 72 5f 65 72 72 | 6f 72 5f 70 61 73 73 5f |user_err|or_pass_|
|00001ea0| 31 25 80 28 28 70 61 73 | 73 25 80 32 29 3d 32 29 |1%.((pas|s%.2)=2)|
|00001eb0| 8c 0d 00 89 2d 75 73 65 | 72 5f 65 72 72 6f 72 5f |....-use|r_error_|
|00001ec0| 70 61 73 73 5f 31 25 3d | a3 3a 75 73 65 72 5f 65 |pass_1%=|.:user_e|
|00001ed0| 72 72 6f 72 5f 6e 75 6d | 62 65 72 25 3d 30 0d 00 |rror_num|ber%=0..|
|00001ee0| 8a 9e cd 3a 5b 4f 50 54 | 70 61 73 73 25 3a 44 43 |...:[OPT|pass%:DC|
|00001ef0| 44 75 73 65 72 5f 65 72 | 72 6f 72 5f 62 6c 6f 63 |Duser_er|ror_bloc|
|00001f00| 6b 25 84 75 73 65 72 5f | 65 72 72 6f 72 5f 6e 75 |k%.user_|error_nu|
|00001f10| 6d 62 65 72 25 3a a4 5f | 73 74 72 69 6e 67 28 72 |mber%:._|string(r|
|00001f20| 6f 75 74 69 6e 65 24 29 | 3a a4 5f 73 74 72 69 6e |outine$)|:._strin|
|00001f30| 67 28 22 3a 20 22 29 3a | a4 5f 73 74 72 69 6e 67 |g(": "):|._string|
|00001f40| 7a 28 65 72 72 6f 72 24 | 29 3a 5d 3a 75 73 65 72 |z(error$|):]:user|
|00001f50| 5f 65 72 72 6f 72 5f 6e | 75 6d 62 65 72 25 3d 28 |_error_n|umber%=(|
|00001f60| 75 73 65 72 5f 65 72 72 | 6f 72 5f 6e 75 6d 62 65 |user_err|or_numbe|
|00001f70| 72 25 2b 31 29 83 32 35 | 36 3a 3d 30 0d 00 8b 6e |r%+1).25|6:=0...n|
|00001f80| dd a4 5f 6c 6f 63 61 6c | 5f 65 72 72 6f 72 5f 62 |.._local|_error_b|
|00001f90| 6c 6f 63 6b 28 6c 6f 63 | 61 6c 24 2c 65 72 72 6f |lock(loc|al$,erro|
|00001fa0| 72 24 29 3a 5b 4f 50 54 | 70 61 73 73 25 3a 41 4c |r$):[OPT|pass%:AL|
|00001fb0| 49 47 4e 3a a4 5f 64 65 | 66 69 6e 65 5f 6c 6f 63 |IGN:._de|fine_loc|
|00001fc0| 61 6c 5f 6c 61 62 65 6c | 28 6c 6f 63 61 6c 24 29 |al_label|(local$)|
|00001fd0| 3a a4 5f 64 65 66 69 6e | 65 5f 65 72 72 6f 72 5f |:._defin|e_error_|
|00001fe0| 62 6c 6f 63 6b 3a 5d 3a | 3d 30 0d 00 8c 80 dd a4 |block:]:|=0......|
|00001ff0| 5f 69 6e 6c 69 6e 65 5f | 72 65 67 5f 73 77 61 70 |_inline_|reg_swap|
|00002000| 28 72 65 67 5f 61 2c 72 | 65 67 5f 62 2c 72 65 67 |(reg_a,r|eg_b,reg|
|00002010| 5f 73 63 72 61 74 63 68 | 29 3a f2 5f 63 68 65 63 |_scratch|):._chec|
|00002020| 6b 5f 69 73 5f 41 52 4d | 5f 72 65 67 28 22 72 65 |k_is_ARM|_reg("re|
|00002030| 67 5f 61 22 2c 30 2c 31 | 34 29 3a f2 5f 63 68 65 |g_a",0,1|4):._che|
|00002040| 63 6b 5f 69 73 5f 41 52 | 4d 5f 72 65 67 28 22 72 |ck_is_AR|M_reg("r|
|00002050| 65 67 5f 62 22 2c 30 2c | 31 34 29 3a e7 72 65 67 |eg_b",0,|14):.reg|
|00002060| 5f 61 3c 3e 72 65 67 5f | 62 8c 0d 00 8d 61 f2 5f |_a<>reg_|b....a._|
|00002070| 63 68 65 63 6b 5f 69 73 | 5f 41 52 4d 5f 72 65 67 |check_is|_ARM_reg|
|00002080| 28 22 72 65 67 5f 73 63 | 72 61 74 63 68 22 2c 30 |("reg_sc|ratch",0|
|00002090| 2c 31 34 29 3a e7 72 65 | 67 5f 61 3d 72 65 67 5f |,14):.re|g_a=reg_|
|000020a0| 73 63 72 61 74 63 68 8c | 85 31 2c 22 50 61 72 61 |scratch.|.1,"Para|
|000020b0| 6d 65 74 65 72 73 20 61 | 2c 20 73 63 72 61 74 63 |meters a|, scratc|
|000020c0| 68 20 74 68 65 20 73 61 | 6d 65 22 0d 00 8e 3a e7 |h the sa|me"...:.|
|000020d0| 72 65 67 5f 62 3d 72 65 | 67 5f 73 63 72 61 74 63 |reg_b=re|g_scratc|
|000020e0| 68 8c 85 31 2c 22 50 61 | 72 61 6d 65 74 65 72 73 |h..1,"Pa|rameters|
|000020f0| 20 62 2c 20 73 63 72 61 | 74 63 68 20 74 68 65 20 | b, scra|tch the |
|00002100| 73 61 6d 65 22 0d 00 8f | 4b 5b 4f 50 54 70 61 73 |same"...|K[OPTpas|
|00002110| 73 25 3a 4d 4f 56 20 72 | 65 67 5f 73 63 72 61 74 |s%:MOV r|eg_scrat|
|00002120| 63 68 2c 72 65 67 5f 61 | 3a 4d 4f 56 20 72 65 67 |ch,reg_a|:MOV reg|
|00002130| 5f 61 2c 72 65 67 5f 62 | 3a 4d 4f 56 20 72 65 67 |_a,reg_b|:MOV reg|
|00002140| 5f 62 2c 72 65 67 5f 73 | 63 72 61 74 63 68 3a 5d |_b,reg_s|cratch:]|
|00002150| 0d 00 90 08 cd 3a 3d 30 | 0d 00 91 b2 dd f2 5f 41 |.....:=0|......_A|
|00002160| 52 4d 5f 4f 62 6a 65 63 | 74 5f 65 72 72 6f 72 28 |RM_Objec|t_error(|
|00002170| 6f 62 6a 65 63 74 24 2c | f8 72 6f 75 74 69 6e 65 |object$,|.routine|
|00002180| 2c 65 72 72 6f 72 24 29 | 3a ea 72 6f 75 74 69 6e |,error$)|:.routin|
|00002190| 65 24 2c 65 72 72 6f 72 | 3a 72 6f 75 74 69 6e 65 |e$,error|:routine|
|000021a0| 24 3d 22 41 52 4d 20 6f | 62 6a 65 63 74 20 22 2b |$="ARM o|bject "+|
|000021b0| 6f 62 6a 65 63 74 24 2b | 22 3a 3a 20 22 3a 5b 4f |object$+|":: ":[O|
|000021c0| 50 54 70 61 73 73 25 3a | a4 5f 65 72 72 6f 72 5f |PTpass%:|._error_|
|000021d0| 62 6c 6f 63 6b 28 65 72 | 72 6f 72 2c 72 6f 75 74 |block(er|ror,rout|
|000021e0| 69 6e 65 24 29 3a 41 4c | 49 47 4e 3a 2e 72 6f 75 |ine$):AL|IGN:.rou|
|000021f0| 74 69 6e 65 3a 41 44 52 | 30 2c 65 72 72 6f 72 3a |tine:ADR|0,error:|
|00002200| 53 57 49 20 34 33 3a 5d | 3a e1 0d 00 92 6a dd a4 |SWI 43:]|:....j..|
|00002210| 5f 69 6e 6c 69 6e 65 5f | 6d 6f 76 5f 72 5f 72 5f |_inline_|mov_r_r_|
|00002220| 61 73 72 5f 65 78 70 6c | 69 63 69 74 28 64 65 73 |asr_expl|icit(des|
|00002230| 74 2c 73 6f 75 72 63 65 | 2c 73 68 69 66 74 25 29 |t,source|,shift%)|
|00002240| 3a ea 85 3a ee 85 ea f7 | 85 3a f2 5f 65 28 22 25 |:..:....|.:._e("%|
|00002250| 2e 4d 69 73 63 3a 20 69 | 6e 6c 69 6e 65 5f 6d 6f |.Misc: i|nline_mo|
|00002260| 76 5f 72 5f 72 5f 61 73 | 72 5f 65 78 70 6c 69 63 |v_r_r_as|r_explic|
|00002270| 69 74 22 29 0d 00 93 50 | f2 5f 63 68 65 63 6b 5f |it")...P|._check_|
|00002280| 69 73 5f 41 52 4d 5f 72 | 65 67 28 22 64 65 73 74 |is_ARM_r|eg("dest|
|00002290| 22 2c 30 2c 31 35 29 3a | f2 5f 63 68 65 63 6b 5f |",0,15):|._check_|
|000022a0| 69 73 5f 41 52 4d 5f 72 | 65 67 28 22 73 6f 75 72 |is_ARM_r|eg("sour|
|000022b0| 63 65 22 2c 30 2c 31 35 | 29 3a e7 73 68 69 66 74 |ce",0,15|):.shift|
|000022c0| 25 3e 30 8c 0d 00 94 2a | 5b 4f 50 54 70 61 73 73 |%>0....*|[OPTpass|
|000022d0| 25 3a 4d 4f 56 20 64 65 | 73 74 2c 73 6f 75 72 63 |%:MOV de|st,sourc|
|000022e0| 65 2c 41 53 52 23 73 68 | 69 66 74 25 3a 5d 0d 00 |e,ASR#sh|ift%:]..|
|000022f0| 95 10 cc 3a e7 73 68 69 | 66 74 25 3d 30 8c 0d 00 |...:.shi|ft%=0...|
|00002300| 96 12 e7 73 6f 75 72 63 | 65 3c 3e 64 65 73 74 8c |...sourc|e<>dest.|
|00002310| 0d 00 97 1f 5b 4f 50 54 | 70 61 73 73 25 3a 4d 4f |....[OPT|pass%:MO|
|00002320| 56 20 64 65 73 74 2c 73 | 6f 75 72 63 65 3a 5d 0d |V dest,s|ource:].|
|00002330| 00 98 05 cd 0d 00 99 2d | cc 3a 5b 4f 50 54 70 61 |.......-|.:[OPTpa|
|00002340| 73 73 25 3a 4d 4f 56 20 | 64 65 73 74 2c 73 6f 75 |ss%:MOV |dest,sou|
|00002350| 72 63 65 2c 41 53 4c 23 | 2d 73 68 69 66 74 25 3a |rce,ASL#|-shift%:|
|00002360| 5d 0d 00 9a 05 cd 0d 00 | 9b 08 cd 3a 3d 30 0d 00 |].......|...:=0..|
|00002370| 9c 6a dd a4 5f 69 6e 6c | 69 6e 65 5f 6d 6f 76 5f |.j.._inl|ine_mov_|
|00002380| 72 5f 72 5f 6c 73 72 5f | 65 78 70 6c 69 63 69 74 |r_r_lsr_|explicit|
|00002390| 28 64 65 73 74 2c 73 6f | 75 72 63 65 2c 73 68 69 |(dest,so|urce,shi|
|000023a0| 66 74 25 29 3a ea 85 3a | ee 85 ea f7 85 3a f2 5f |ft%):..:|.....:._|
|000023b0| 65 28 22 25 2e 4d 69 73 | 63 3a 20 69 6e 6c 69 6e |e("%.Mis|c: inlin|
|000023c0| 65 5f 6d 6f 76 5f 72 5f | 72 5f 6c 73 72 5f 65 78 |e_mov_r_|r_lsr_ex|
|000023d0| 70 6c 69 63 69 74 22 29 | 0d 00 9d 50 f2 5f 63 68 |plicit")|...P._ch|
|000023e0| 65 63 6b 5f 69 73 5f 41 | 52 4d 5f 72 65 67 28 22 |eck_is_A|RM_reg("|
|000023f0| 64 65 73 74 22 2c 30 2c | 31 35 29 3a f2 5f 63 68 |dest",0,|15):._ch|
|00002400| 65 63 6b 5f 69 73 5f 41 | 52 4d 5f 72 65 67 28 22 |eck_is_A|RM_reg("|
|00002410| 73 6f 75 72 63 65 22 2c | 30 2c 31 35 29 3a e7 73 |source",|0,15):.s|
|00002420| 68 69 66 74 25 3e 30 8c | 0d 00 9e 2a 5b 4f 50 54 |hift%>0.|...*[OPT|
|00002430| 70 61 73 73 25 3a 4d 4f | 56 20 64 65 73 74 2c 73 |pass%:MO|V dest,s|
|00002440| 6f 75 72 63 65 2c 4c 53 | 52 23 73 68 69 66 74 25 |ource,LS|R#shift%|
|00002450| 3a 5d 0d 00 9f 10 cc 3a | e7 73 68 69 66 74 25 3d |:].....:|.shift%=|
|00002460| 30 8c 0d 00 a0 12 e7 73 | 6f 75 72 63 65 3c 3e 64 |0......s|ource<>d|
|00002470| 65 73 74 8c 0d 00 a1 1f | 5b 4f 50 54 70 61 73 73 |est.....|[OPTpass|
|00002480| 25 3a 4d 4f 56 20 64 65 | 73 74 2c 73 6f 75 72 63 |%:MOV de|st,sourc|
|00002490| 65 3a 5d 0d 00 a2 05 cd | 0d 00 a3 2d cc 3a 5b 4f |e:].....|...-.:[O|
|000024a0| 50 54 70 61 73 73 25 3a | 4d 4f 56 20 64 65 73 74 |PTpass%:|MOV dest|
|000024b0| 2c 73 6f 75 72 63 65 2c | 4c 53 4c 23 2d 73 68 69 |,source,|LSL#-shi|
|000024c0| 66 74 25 3a 5d 0d 00 a4 | 05 cd 0d 00 a5 08 cd 3a |ft%:]...|.......:|
|000024d0| 3d 30 0d 00 a6 69 dd a4 | 5f 69 6e 6c 69 6e 65 5f |=0...i..|_inline_|
|000024e0| 65 6f 72 5f 72 5f 72 5f | 72 5f 6c 73 6c 5f 65 78 |eor_r_r_|r_lsl_ex|
|000024f0| 70 6c 69 63 69 74 28 64 | 65 73 74 2c 72 2c 73 2c |plicit(d|est,r,s,|
|00002500| 73 68 69 66 74 25 29 3a | ea 85 3a ee 85 ea f7 85 |shift%):|..:.....|
|00002510| 3a f2 5f 65 28 22 25 2e | 4d 69 73 63 3a 20 69 6e |:._e("%.|Misc: in|
|00002520| 6c 69 6e 65 5f 6d 6f 76 | 5f 72 5f 72 5f 6c 73 72 |line_mov|_r_r_lsr|
|00002530| 5f 65 78 70 6c 69 63 69 | 74 22 29 0d 00 a7 68 f2 |_explici|t")...h.|
|00002540| 5f 63 68 65 63 6b 5f 69 | 73 5f 41 52 4d 5f 72 65 |_check_i|s_ARM_re|
|00002550| 67 28 22 64 65 73 74 22 | 2c 30 2c 31 35 29 3a f2 |g("dest"|,0,15):.|
|00002560| 5f 63 68 65 63 6b 5f 69 | 73 5f 41 52 4d 5f 72 65 |_check_i|s_ARM_re|
|00002570| 67 28 22 72 22 2c 30 2c | 31 35 29 3a f2 5f 63 68 |g("r",0,|15):._ch|
|00002580| 65 63 6b 5f 69 73 5f 41 | 52 4d 5f 72 65 67 28 22 |eck_is_A|RM_reg("|
|00002590| 73 22 2c 30 2c 31 35 29 | 3a e7 73 68 69 66 74 25 |s",0,15)|:.shift%|
|000025a0| 3e 30 8c 0d 00 a8 25 5b | 4f 50 54 70 61 73 73 25 |>0....%[|OPTpass%|
|000025b0| 3a 82 20 64 65 73 74 2c | 72 2c 73 2c 4c 53 4c 23 |:. dest,|r,s,LSL#|
|000025c0| 73 68 69 66 74 25 3a 5d | 0d 00 a9 10 cc 3a e7 73 |shift%:]|.....:.s|
|000025d0| 68 69 66 74 25 3d 30 8c | 0d 00 aa 12 e7 73 6f 75 |hift%=0.|.....sou|
|000025e0| 72 63 65 3c 3e 64 65 73 | 74 8c 0d 00 ab 1a 5b 4f |rce<>des|t.....[O|
|000025f0| 50 54 70 61 73 73 25 3a | 82 20 64 65 73 74 2c 72 |PTpass%:|. dest,r|
|00002600| 2c 73 3a 5d 0d 00 ac 1d | cc 3a 5b 4f 50 54 70 61 |,s:]....|.:[OPTpa|
|00002610| 73 73 25 3a 4d 4f 56 20 | 64 65 73 74 2c 23 30 3a |ss%:MOV |dest,#0:|
|00002620| 5d 0d 00 ad 05 cd 0d 00 | ae 28 cc 3a 5b 4f 50 54 |].......|.(.:[OPT|
|00002630| 70 61 73 73 25 3a 82 20 | 64 65 73 74 2c 72 2c 73 |pass%:. |dest,r,s|
|00002640| 2c 4c 53 52 23 2d 73 68 | 69 66 74 25 3a 5d 0d 00 |,LSR#-sh|ift%:]..|
|00002650| af 05 cd 0d 00 b0 08 cd | 3a 3d 30 0d 00 b1 ae dd |........|:=0.....|
|00002660| a4 5f 61 73 73 65 6d 62 | 6c 65 5f 73 68 6f 77 5f |._assemb|le_show_|
|00002670| 68 65 78 38 3a 5b 4f 50 | 54 70 61 73 73 25 3a 41 |hex8:[OP|Tpass%:A|
|00002680| 4c 49 47 4e 3a 2e 73 68 | 6f 77 5f 68 65 78 38 3a |LIGN:.sh|ow_hex8:|
|00002690| 53 54 4d 46 44 28 73 70 | 29 21 2c 7b 30 2d 32 7d |STMFD(sp|)!,{0-2}|
|000026a0| 3a 53 55 42 20 73 70 2c | 73 70 2c 23 33 3c 3c 32 |:SUB sp,|sp,#3<<2|
|000026b0| 3a 4d 4f 56 31 2c 73 70 | 3a 4d 4f 56 32 2c 23 31 |:MOV1,sp|:MOV2,#1|
|000026c0| 32 3a 53 57 49 20 32 31 | 32 3a 4d 4f 56 30 2c 73 |2:SWI 21|2:MOV0,s|
|000026d0| 70 3a 53 57 49 20 32 3a | 41 44 44 20 73 70 2c 73 |p:SWI 2:|ADD sp,s|
|000026e0| 70 2c 23 33 3c 3c 32 3a | 4c 44 4d 46 44 28 73 70 |p,#3<<2:|LDMFD(sp|
|000026f0| 29 21 2c 7b 30 2d 32 7d | 3a 4d 4f 56 53 70 63 2c |)!,{0-2}|:MOVSpc,|
|00002700| 6c 69 6e 6b 3a 5d 3a 3d | 30 0d 00 b2 6a dd f2 5f |link:]:=|0...j.._|
|00002710| 44 65 66 69 6e 65 5f 4c | 6f 63 61 6c 5f 56 61 72 |Define_L|ocal_Var|
|00002720| 69 61 62 6c 65 73 28 66 | 24 29 3a ea 6f 50 25 2c |iables(f|$):.oP%,|
|00002730| 6f 4f 25 2c 6f 70 61 73 | 73 25 3a ea 85 3a ee 85 |oO%,opas|s%:..:..|
|00002740| ea f7 85 3a f2 5f 65 28 | 22 25 2e 4d 69 73 63 3a |...:._e(|"%.Misc:|
|00002750| 20 44 65 66 69 6e 65 5f | 4c 6f 63 61 6c 5f 56 61 | Define_|Local_Va|
|00002760| 72 69 61 62 6c 65 73 28 | 60 22 2b 66 24 2b 22 27 |riables(|`"+f$+"'|
|00002770| 29 22 29 0d 00 b3 2c 6f | 50 25 3d 50 25 3a 6f 4f |)")...,o|P%=P%:oO|
|00002780| 25 3d 4f 25 3a 6f 70 61 | 73 73 25 3d 70 61 73 73 |%=O%:opa|ss%=pass|
|00002790| 25 3a e7 28 70 61 73 73 | 25 80 34 29 3d 30 8c 0d |%:.(pass|%.4)=0..|
|000027a0| 00 b4 09 4f 25 3d 50 25 | 0d 00 b5 5c cd 3a 50 25 |...O%=P%|...\.:P%|
|000027b0| 3d 30 3a 70 61 73 73 25 | 3d 70 61 73 73 25 84 36 |=0:pass%|=pass%.6|
|000027c0| 3a 50 25 3d a0 28 22 46 | 4e 5f 44 65 63 6c 61 72 |:P%=.("F|N_Declar|
|000027d0| 65 5f 4c 6f 63 61 6c 5f | 56 61 72 69 61 62 6c 65 |e_Local_|Variable|
|000027e0| 73 5f 22 2b 66 24 29 3a | 50 25 3d 6f 50 25 3a 4f |s_"+f$):|P%=oP%:O|
|000027f0| 25 3d 6f 4f 25 3a 70 61 | 73 73 25 3d 6f 70 61 73 |%=oO%:pa|ss%=opas|
|00002800| 73 25 3a e1 0d 00 b6 39 | dd a4 5f 50 72 6f 63 65 |s%:....9|.._Proce|
|00002810| 73 73 6f 72 5f 54 6f 5f | 55 53 45 52 3a 5b 4f 50 |ssor_To_|USER:[OP|
|00002820| 54 70 61 73 73 25 3a 54 | 45 51 50 20 70 63 2c 23 |Tpass%:T|EQP pc,#|
|00002830| 30 3a 4d 4f 56 30 2c 30 | 3a 5d 3a 3d 30 0d 00 b7 |0:MOV0,0|:]:=0...|
|00002840| 68 dd a4 45 72 72 6f 72 | 42 6c 6f 63 6b 28 f8 61 |h..Error|Block(.a|
|00002850| 64 64 72 25 2c 6e 75 6d | 62 65 72 25 2c 6d 65 73 |ddr%,num|ber%,mes|
|00002860| 73 61 67 65 24 29 3a 5b | 4f 50 54 70 61 73 73 25 |sage$):[|OPTpass%|
|00002870| 3a 41 4c 49 47 4e 3a 2e | 61 64 64 72 25 44 43 44 |:ALIGN:.|addr%DCD|
|00002880| 6e 75 6d 62 65 72 25 3a | 45 51 55 53 20 6d 65 73 |number%:|EQUS mes|
|00002890| 73 61 67 65 24 3a 44 43 | 42 30 3a 41 4c 49 47 4e |sage$:DC|B0:ALIGN|
|000028a0| 3a 5d 3a 3d 30 0d 00 b8 | 3a dd f2 63 63 28 63 63 |:]:=0...|:..cc(cc|
|000028b0| 24 2c 6e 25 29 3a ea 70 | 25 2c 63 63 25 3a 63 63 |$,n%):.p|%,cc%:cc|
|000028c0| 25 3d a4 63 63 28 63 63 | 24 29 3a e7 70 61 73 73 |%=.cc(cc|$):.pass|
|000028d0| 25 80 34 8c 70 25 3d 4f | 25 8b 70 25 3d 50 25 0d |%.4.p%=O|%.p%=P%.|
|000028e0| 00 b9 31 e3 69 25 3d 31 | b8 6e 25 3a 70 25 2d 3d |..1.i%=1|.n%:p%-=|
|000028f0| 34 3a 21 70 25 3d 28 28 | 21 70 25 29 80 26 66 66 |4:!p%=((|!p%).&ff|
|00002900| 66 66 66 66 66 29 2b 63 | 63 25 3a ed 69 25 3a e1 |fffff)+c|c%:.i%:.|
|00002910| 0d 00 ba 2b dd a4 63 63 | 28 63 63 24 29 3a ea 63 |...+..cc|(cc$):.c|
|00002920| 63 25 3a e7 63 63 24 3d | 22 22 84 63 63 24 3d 22 |c%:.cc$=|"".cc$="|
|00002930| 20 20 22 8c 3d 31 34 3c | 3c 32 38 0d 00 bb 14 e7 | ".=14<|<28.....|
|00002940| 63 63 24 3d 22 6c 6f 22 | 8c 3d 33 3c 3c 32 38 0d |cc$="lo"|.=3<<28.|
|00002950| 00 bc 14 e7 63 63 24 3d | 22 68 73 22 8c 3d 32 3c |....cc$=|"hs".=2<|
|00002960| 3c 32 38 0d 00 bd 49 63 | 63 25 3d a7 22 65 71 6e |<28...Ic|c%=."eqn|
|00002970| 65 63 73 63 63 6d 69 70 | 6c 76 73 76 63 68 69 6c |ecsccmip|lvsvchil|
|00002980| 73 67 65 6c 74 67 74 6c | 65 61 6c 6e 76 22 2c 63 |sgeltgtl|ealnv",c|
|00002990| 63 24 29 3a e7 63 63 25 | 83 32 8c 3d 28 28 63 63 |c$):.cc%|.2.=((cc|
|000029a0| 25 2d 31 29 3e 3e 31 29 | 3c 3c 32 38 0d 00 be 31 |%-1)>>1)|<<28...1|
|000029b0| 85 31 2c 22 55 6e 72 65 | 63 6f 67 6e 69 73 65 64 |.1,"Unre|cognised|
|000029c0| 20 63 6f 6e 64 69 74 69 | 6f 6e 20 63 6f 64 65 20 | conditi|on code |
|000029d0| 60 22 2b 63 63 24 2b 22 | 27 22 3a 3d 30 0d 00 bf |`"+cc$+"|'":=0...|
|000029e0| 71 dd a4 61 72 6d 69 6d | 6d 28 78 25 2c f8 6d 25 |q..armim|m(x%,.m%|
|000029f0| 28 29 29 3a c8 99 26 64 | 63 62 39 32 2c 78 25 2c |()):..&d|cb92,x%,|
|00002a00| 41 72 6d 49 6d 6d 25 b8 | 78 25 3a 6d 25 28 30 29 |ArmImm%.|x%:m%(0)|
|00002a10| 3d 21 41 72 6d 49 6d 6d | 25 3a 6d 25 28 31 29 3d |=!ArmImm|%:m%(1)=|
|00002a20| 41 72 6d 49 6d 6d 25 21 | 34 3a 6d 25 28 32 29 3d |ArmImm%!|4:m%(2)=|
|00002a30| 41 72 6d 49 6d 6d 25 21 | 38 3a 6d 25 28 33 29 3d |ArmImm%!|8:m%(3)=|
|00002a40| 41 72 6d 49 6d 6d 25 21 | 31 32 3a 3d 78 25 0d 00 |ArmImm%!|12:=x%..|
|00002a50| c0 65 dd a4 53 75 62 74 | 72 61 63 74 49 6d 6d 65 |.e..Subt|ractImme|
|00002a60| 64 69 61 74 65 28 63 63 | 24 2c 6d 25 2c 6e 25 2c |diate(cc|$,m%,n%,|
|00002a70| 78 25 2c 73 65 74 5f 70 | 73 72 25 29 3a ea 6d 25 |x%,set_p|sr%):.m%|
|00002a80| 28 29 2c 69 25 2c 6a 25 | 3a de 6d 25 28 34 29 3a |(),i%,j%|:.m%(4):|
|00002a90| 69 25 3d a4 61 72 6d 69 | 6d 6d 28 94 28 78 25 29 |i%=.armi|mm(.(x%)|
|00002aa0| 2c 6d 25 28 29 29 3a 6a | 25 3d 69 25 3a e7 78 25 |,m%()):j|%=i%:.x%|
|00002ab0| 3c 30 8c 0d 00 c1 53 c8 | 95 69 25 3e 31 3a 69 25 |<0....S.|.i%>1:i%|
|00002ac0| 2d 3d 31 3a 5b 4f 50 54 | 70 61 73 73 25 3a 41 44 |-=1:[OPT|pass%:AD|
|00002ad0| 44 20 6d 25 2c 6e 25 2c | 23 6d 25 28 69 25 29 3a |D m%,n%,|#m%(i%):|
|00002ae0| 5d 3a 6e 25 3d 6d 25 3a | ce 3a 5b 4f 50 54 70 61 |]:n%=m%:|.:[OPTpa|
|00002af0| 73 73 25 3a 41 44 44 20 | 6d 25 2c 6e 25 2c 23 6d |ss%:ADD |m%,n%,#m|
|00002b00| 25 28 30 29 3a 5d 0d 00 | c2 55 cc 3a c8 95 69 25 |%(0):]..|.U.:..i%|
|00002b10| 3e 31 3a 69 25 2d 3d 31 | 3a 5b 4f 50 54 70 61 73 |>1:i%-=1|:[OPTpas|
|00002b20| 73 25 3a 53 55 42 20 6d | 25 2c 6e 25 2c 23 6d 25 |s%:SUB m|%,n%,#m%|
|00002b30| 28 69 25 29 3a 5d 3a 6e | 25 3d 6d 25 3a ce 3a 5b |(i%):]:n|%=m%:.:[|
|00002b40| 4f 50 54 70 61 73 73 25 | 3a 53 55 42 20 6d 25 2c |OPTpass%|:SUB m%,|
|00002b50| 6e 25 2c 23 6d 25 28 30 | 29 3a 5d 0d 00 c3 10 cd |n%,#m%(0|):].....|
|00002b60| 3a e7 73 65 74 5f 70 73 | 72 25 8c 0d 00 c4 18 e7 |:.set_ps|r%......|
|00002b70| 70 61 73 73 25 80 34 8c | 6d 25 3d 4f 25 8b 6d 25 |pass%.4.|m%=O%.m%|
|00002b80| 3d 50 25 0d 00 c5 10 6d | 25 21 2d 34 2b 3d 31 3c |=P%....m|%!-4+=1<|
|00002b90| 3c 32 30 0d 00 c6 14 cd | 3a f2 63 63 28 63 63 24 |<20.....|:.cc(cc$|
|00002ba0| 2c 6a 25 29 3a 3d 30 0d | 00 c7 55 dd a4 41 64 64 |,j%):=0.|..U..Add|
|00002bb0| 49 6d 6d 65 64 69 61 74 | 65 28 63 63 24 2c 6d 25 |Immediat|e(cc$,m%|
|00002bc0| 2c 6e 25 2c 78 25 2c 73 | 65 74 5f 70 73 72 25 29 |,n%,x%,s|et_psr%)|
|00002bd0| 3a 3d a4 53 75 62 74 72 | 61 63 74 49 6d 6d 65 64 |:=.Subtr|actImmed|
|00002be0| 69 61 74 65 28 63 63 24 | 2c 6d 25 2c 6e 25 2c 2d |iate(cc$|,m%,n%,-|
|00002bf0| 78 25 2c 73 65 74 5f 70 | 73 72 25 29 0d 00 c8 3d |x%,set_p|sr%)...=|
|00002c00| dd a4 41 64 64 49 28 63 | 63 24 2c 6d 25 2c 6e 25 |..AddI(c|c$,m%,n%|
|00002c10| 2c 78 25 29 3a 3d a4 53 | 75 62 74 72 61 63 74 49 |,x%):=.S|ubtractI|
|00002c20| 6d 6d 65 64 69 61 74 65 | 28 63 63 24 2c 6d 25 2c |mmediate|(cc$,m%,|
|00002c30| 6e 25 2c 2d 78 25 2c a3 | 29 0d 00 c9 3e dd a4 41 |n%,-x%,.|)...>..A|
|00002c40| 64 64 49 53 28 63 63 24 | 2c 6d 25 2c 6e 25 2c 78 |ddIS(cc$|,m%,n%,x|
|00002c50| 25 29 3a 3d a4 53 75 62 | 74 72 61 63 74 49 6d 6d |%):=.Sub|tractImm|
|00002c60| 65 64 69 61 74 65 28 63 | 63 24 2c 6d 25 2c 6e 25 |ediate(c|c$,m%,n%|
|00002c70| 2c 2d 78 25 2c b9 29 0d | 00 ca 2e dd a4 73 65 74 |,-x%,.).|.....set|
|00002c80| 50 53 52 5f 56 5b 4f 50 | 54 70 61 73 73 25 3a 43 |PSR_V[OP|Tpass%:C|
|00002c90| 4d 50 20 70 63 2c 23 26 | 38 30 30 30 30 30 30 30 |MP pc,#&|80000000|
|00002ca0| 3a 5d 3a 3d 30 0d 00 cb | 5c dd a4 61 64 72 66 28 |:]:=0...|\..adrf(|
|00002cb0| 63 63 24 2c 72 65 67 25 | 2c 6c 61 62 65 6c 25 29 |cc$,reg%|,label%)|
|00002cc0| 3a 6c 61 62 65 6c 25 2d | 3d 50 25 2b 38 3a e7 6c |:label%-|=P%+8:.l|
|00002cd0| 61 62 65 6c 25 3e 3d 30 | 8c 85 31 2c 22 69 6e 76 |abel%>=0|..1,"inv|
|00002ce0| 61 6c 69 64 20 63 61 6c | 6c 20 74 6f 20 61 64 72 |alid cal|l to adr|
|00002cf0| 66 28 29 2c 20 6c 61 62 | 65 6c 20 61 68 65 61 64 |f(), lab|el ahead|
|00002d00| 22 0d 00 cc 35 3d a4 53 | 75 62 74 72 61 63 74 49 |"...5=.S|ubtractI|
|00002d10| 6d 6d 65 64 69 61 74 65 | 28 63 63 24 2c 72 65 67 |mmediate|(cc$,reg|
|00002d20| 25 2c 31 35 2c 2d 6c 61 | 62 65 6c 25 2c 73 65 74 |%,15,-la|bel%,set|
|00002d30| 5f 70 73 72 25 29 0d 00 | cd 31 dd a4 75 6e 69 6f |_psr%)..|.1..unio|
|00002d40| 6e 5f 73 74 61 72 74 3a | 5f 5f 75 6e 69 6f 6e 5f |n_start:|__union_|
|00002d50| 50 25 3d 50 25 3a 5f 5f | 75 6e 69 6f 6e 5f 6d 61 |P%=P%:__|union_ma|
|00002d60| 78 25 3d 30 3a 3d 30 0d | 00 ce 41 dd a4 75 6e 69 |x%=0:=0.|..A..uni|
|00002d70| 6f 6e 3a ea 61 25 3a 61 | 25 3d 50 25 2d 5f 5f 75 |on:.a%:a|%=P%-__u|
|00002d80| 6e 69 6f 6e 5f 50 25 3a | e7 61 25 3e 5f 5f 75 6e |nion_P%:|.a%>__un|
|00002d90| 69 6f 6e 5f 6d 61 78 25 | 8c 5f 5f 75 6e 69 6f 6e |ion_max%|.__union|
|00002da0| 5f 6d 61 78 25 3d 61 25 | 0d 00 cf 26 50 25 3d 5f |_max%=a%|...&P%=_|
|00002db0| 5f 75 6e 69 6f 6e 5f 50 | 25 3a 4f 25 2d 3d 61 25 |_union_P|%:O%-=a%|
|00002dc0| 3a 3d 5f 5f 75 6e 69 6f | 6e 5f 6d 61 78 25 0d 00 |:=__unio|n_max%..|
|00002dd0| d0 27 dd a4 75 6e 69 6f | 6e 5f 65 6e 64 3a 50 25 |.'..unio|n_end:P%|
|00002de0| 3d 5f 5f 75 6e 69 6f 6e | 5f 50 25 2b a4 75 6e 69 |=__union|_P%+.uni|
|00002df0| 6f 6e 3a 3d 30 0d 00 d1 | 1c dd a4 72 28 6e 25 29 |on:=0...|...r(n%)|
|00002e00| 3a 50 25 2b 3d 6e 25 3a | 4f 25 2b 3d 6e 25 3a 3d |:P%+=n%:|O%+=n%:=|
|00002e10| 30 0d 00 d2 4c dd a4 74 | 6f 6c 6f 77 65 72 28 72 |0...L..t|olower(r|
|00002e20| 25 2c 74 25 29 3a 5b 4f | 50 54 70 61 73 73 25 3a |%,t%):[O|PTpass%:|
|00002e30| 53 55 42 20 74 25 2c 72 | 25 2c 23 36 35 3a 43 4d |SUB t%,r|%,#65:CM|
|00002e40| 50 20 74 25 2c 23 32 36 | 3a 41 44 44 6c 6f 20 72 |P t%,#26|:ADDlo r|
|00002e50| 25 2c 72 25 2c 23 33 32 | 3a 5d 3a 3d 30 0d 00 d3 |%,r%,#32|:]:=0...|
|00002e60| 2a dd a4 6f 28 61 24 29 | 3a f1 22 44 65 62 75 67 |*..o(a$)|:."Debug|
|00002e70| 67 69 6e 67 3a 20 22 3b | 61 24 3b 22 20 2e 2e 2e |ging: ";|a$;" ...|
|00002e80| 20 22 3b a5 3a 3d 30 0d | 00 d4 f1 dd a4 64 69 76 | ";.:=0.|.....div|
|00002e90| 72 65 6d 28 72 63 25 2c | 72 61 25 2c 72 62 25 2c |rem(rc%,|ra%,rb%,|
|00002ea0| 72 74 65 6d 70 25 29 3a | ea 6c 6f 6f 70 3a 5b 4f |rtemp%):|.loop:[O|
|00002eb0| 50 54 70 61 73 73 25 3a | 4d 4f 56 20 72 74 65 6d |PTpass%:|MOV rtem|
|00002ec0| 70 25 2c 72 62 25 3a 43 | 4d 50 20 72 74 65 6d 70 |p%,rb%:C|MP rtemp|
|00002ed0| 25 2c 72 61 25 2c 4c 53 | 52 23 31 3a 2e 6c 6f 6f |%,ra%,LS|R#1:.loo|
|00002ee0| 70 20 4d 4f 56 6c 73 20 | 72 74 65 6d 70 25 2c 72 |p MOVls |rtemp%,r|
|00002ef0| 74 65 6d 70 25 2c 4c 53 | 4c 23 31 3a 43 4d 50 6c |temp%,LS|L#1:CMPl|
|00002f00| 73 20 72 74 65 6d 70 25 | 2c 72 61 25 2c 4c 53 52 |s rtemp%|,ra%,LSR|
|00002f10| 23 31 3a 42 6c 73 20 6c | 6f 6f 70 3a 4d 4f 56 20 |#1:Bls l|oop:MOV |
|00002f20| 72 63 25 2c 23 30 3a 2e | 6c 6f 6f 70 20 43 4d 50 |rc%,#0:.|loop CMP|
|00002f30| 20 72 61 25 2c 72 74 65 | 6d 70 25 3a 53 55 42 63 | ra%,rte|mp%:SUBc|
|00002f40| 73 20 72 61 25 2c 72 61 | 25 2c 72 74 65 6d 70 25 |s ra%,ra|%,rtemp%|
|00002f50| 3a 41 44 43 20 72 63 25 | 2c 72 63 25 2c 72 63 25 |:ADC rc%|,rc%,rc%|
|00002f60| 3a 4d 4f 56 20 72 74 65 | 6d 70 25 2c 72 74 65 6d |:MOV rte|mp%,rtem|
|00002f70| 70 25 2c 4c 53 52 23 31 | 0d 00 d5 20 43 4d 50 20 |p%,LSR#1|... CMP |
|00002f80| 72 74 65 6d 70 25 2c 72 | 62 25 3a 42 63 73 20 6c |rtemp%,r|b%:Bcs l|
|00002f90| 6f 6f 70 3a 5d 3a 3d 30 | 0d 00 d6 23 dd a4 61 61 |oop:]:=0|...#..aa|
|00002fa0| 64 72 28 61 25 29 3a e7 | 28 70 61 73 73 25 80 34 |dr(a%):.|(pass%.4|
|00002fb0| 29 8c 61 25 2b 3d 63 6f | 64 65 25 0d 00 d7 07 3d |).a%+=co|de%....=|
|00002fc0| 61 25 0d 00 d8 25 dd a4 | 61 6f 66 66 28 61 25 29 |a%...%..|aoff(a%)|
|00002fd0| 3a e7 28 70 61 73 73 25 | 80 34 29 3d 30 8c 61 25 |:.(pass%|.4)=0.a%|
|00002fe0| 2d 3d 63 6f 64 65 25 0d | 00 d9 07 3d 61 25 0d 00 |-=code%.|...=a%..|
|00002ff0| da 4b dd a4 6d 6f 76 28 | 63 63 24 2c 72 64 25 2c |.K..mov(|cc$,rd%,|
|00003000| 78 25 29 3a ea 6d 25 28 | 29 2c 6e 25 28 29 2c 69 |x%):.m%(|),n%(),i|
|00003010| 25 2c 6a 25 2c 73 25 3a | de 6d 25 28 34 29 3a 69 |%,j%,s%:|.m%(4):i|
|00003020| 25 3d a4 61 72 6d 69 6d | 6d 28 78 25 2c 6d 25 28 |%=.armim|m(x%,m%(|
|00003030| 29 29 3a e7 69 25 3e 31 | 8c 0d 00 db 27 de 6e 25 |)):.i%>1|....'.n%|
|00003040| 28 34 29 3a 6a 25 3d a4 | 61 72 6d 69 6d 6d 28 ac |(4):j%=.|armimm(.|
|00003050| 78 25 2c 6e 25 28 29 29 | 3a e7 6a 25 3c 69 25 8c |x%,n%())|:.j%<i%.|
|00003060| 0d 00 dc 58 73 25 3d b9 | 3a 69 25 3d 6a 25 3a 5b |...Xs%=.|:i%=j%:[|
|00003070| 4f 50 54 70 61 73 73 25 | 3a 4d 56 4e 20 72 64 25 |OPTpass%|:MVN rd%|
|00003080| 2c 23 6e 25 28 30 29 3a | 5d 3a c8 95 6a 25 3e 31 |,#n%(0):|]:..j%>1|
|00003090| 3a 6a 25 2d 3d 31 3a 5b | 4f 50 54 70 61 73 73 25 |:j%-=1:[|OPTpass%|
|000030a0| 3a 42 49 43 20 72 64 25 | 2c 72 64 25 2c 23 6e 25 |:BIC rd%|,rd%,#n%|
|000030b0| 28 6a 25 29 3a 5d 3a ce | 0d 00 dd 05 cd 0d 00 de |(j%):]:.|........|
|000030c0| 11 cd 3a 6a 25 3d 69 25 | 3a e7 ac 73 25 8c 0d 00 |..:j%=i%|:..s%...|
|000030d0| df 4c 5b 4f 50 54 70 61 | 73 73 25 3a 4d 4f 56 20 |.L[OPTpa|ss%:MOV |
|000030e0| 72 64 25 2c 23 6d 25 28 | 30 29 3a 5d 3a c8 95 69 |rd%,#m%(|0):]:..i|
|000030f0| 25 3e 31 3a 69 25 2d 3d | 31 3a 5b 4f 50 54 70 61 |%>1:i%-=|1:[OPTpa|
|00003100| 73 73 25 3a 84 52 20 72 | 64 25 2c 72 64 25 2c 23 |ss%:.R r|d%,rd%,#|
|00003110| 6d 25 28 69 25 29 3a 5d | 3a ce 0d 00 e0 10 cd 3a |m%(i%):]|:......:|
|00003120| e7 a9 28 63 63 24 29 83 | 32 8c 0d 00 e1 2a 21 a4 |..(cc$).|2....*!.|
|00003130| 61 61 64 72 28 50 25 2d | 34 29 2b 3d 31 3c 3c 32 |aadr(P%-|4)+=1<<2|
|00003140| 30 3a 63 63 24 3d c0 63 | 63 24 2c a9 28 63 63 24 |0:cc$=.c|c$,.(cc$|
|00003150| 29 2d 31 29 0d 00 e2 1a | cd 3a e7 63 63 24 3c 3e |)-1)....|.:.cc$<>|
|00003160| 22 22 8c f2 63 63 28 63 | 63 24 2c 6a 25 29 0d 00 |""..cc(c|c$,j%)..|
|00003170| e3 06 3d 30 0d 00 e4 33 | dd a4 67 62 28 63 63 24 |..=0...3|..gb(cc$|
|00003180| 2c 72 25 2c 6f 25 29 3a | e7 6f 25 3c 30 84 6f 25 |,r%,o%):|.o%<0.o%|
|00003190| 3e 73 69 7a 65 6f 66 5f | 47 8c 85 31 2c 22 42 61 |>sizeof_|G..1,"Ba|
|000031a0| 64 20 46 4e 67 62 22 0d | 00 e5 18 3d a4 41 64 64 |d FNgb".|...=.Add|
|000031b0| 49 28 63 63 24 2c 72 25 | 2c 67 62 2c 6f 25 29 0d |I(cc$,r%|,gb,o%).|
|000031c0| 00 e6 fd dd a4 70 5f 75 | 78 62 28 74 65 6d 70 6c |.....p_u|xb(templ|
|000031d0| 61 74 65 24 29 3a ea 6c | 5f 52 30 2c 6c 5f 6c 72 |ate$):.l|_R0,l_lr|
|000031e0| 3a 5b 4f 50 54 70 61 73 | 73 25 3a 42 20 28 50 25 |:[OPTpas|s%:B (P%|
|000031f0| 2b 34 29 2b 33 32 2b 28 | 28 a9 28 74 65 6d 70 6c |+4)+32+(|(.(templ|
|00003200| 61 74 65 24 29 2b 34 29 | 80 2d 34 29 3a 2e 6c 5f |ate$)+4)|.-4):.l_|
|00003210| 52 30 20 44 43 44 26 63 | 62 64 65 61 64 63 62 3a |R0 DCD&c|bdeadcb:|
|00003220| 44 43 44 26 63 62 64 65 | 61 64 63 3a 44 43 44 26 |DCD&cbde|adc:DCD&|
|00003230| 63 62 64 65 61 64 3a 44 | 43 44 26 63 62 64 65 61 |cbdead:D|CD&cbdea|
|00003240| 3a 44 43 44 35 32 31 39 | 30 3a 44 43 44 33 32 36 |:DCD5219|0:DCD326|
|00003250| 31 3a 2e 6c 5f 6c 72 20 | 44 43 44 32 30 33 3a 44 |1:.l_lr |DCD203:D|
|00003260| 43 44 31 32 3a 45 51 55 | 53 20 74 65 6d 70 6c 61 |CD12:EQU|S templa|
|00003270| 74 65 24 3a 44 43 42 30 | 3a 41 4c 49 47 4e 3a 53 |te$:DCB0|:ALIGN:S|
|00003280| 54 52 30 2c 6c 5f 52 30 | 3a 41 44 52 30 2c 6c 5f |TR0,l_R0|:ADR0,l_|
|00003290| 52 30 3a 53 54 4d 49 42 | 30 2c 7b 39 2d 31 35 7d |R0:STMIB|0,{9-15}|
|000032a0| 3a 53 57 49 20 26 64 63 | 62 38 37 3a 4c 44 52 20 |:SWI &dc|b87:LDR |
|000032b0| 6c 72 2c 6c 5f 6c 72 3a | 5d 3a 3d 30 0d 00 e7 1d |lr,l_lr:|]:=0....|
|000032c0| dd a4 61 64 64 33 28 72 | 64 25 2c 72 6e 25 2c 78 |..add3(r|d%,rn%,x|
|000032d0| 25 29 3a e7 78 25 3c 30 | 8c 0d 00 e8 53 5b 4f 50 |%):.x%<0|....S[OP|
|000032e0| 54 70 61 73 73 25 3a 53 | 55 42 20 72 64 25 2c 72 |Tpass%:S|UB rd%,r|
|000032f0| 6e 25 2c 23 2d 78 25 80 | 2d 36 35 35 33 36 3a 53 |n%,#-x%.|-65536:S|
|00003300| 55 42 20 72 64 25 2c 72 | 64 25 2c 23 2d 78 25 80 |UB rd%,r|d%,#-x%.|
|00003310| 32 35 35 3a 53 55 42 20 | 72 64 25 2c 72 64 25 2c |255:SUB |rd%,rd%,|
|00003320| 23 2d 78 25 80 36 35 32 | 38 30 3a 5d 0d 00 e9 52 |#-x%.652|80:]...R|
|00003330| cc 3a 5b 4f 50 54 70 61 | 73 73 25 3a 41 44 44 20 |.:[OPTpa|ss%:ADD |
|00003340| 72 64 25 2c 72 6e 25 2c | 23 78 25 80 2d 36 35 35 |rd%,rn%,|#x%.-655|
|00003350| 33 36 3a 41 44 44 20 72 | 64 25 2c 72 64 25 2c 23 |36:ADD r|d%,rd%,#|
|00003360| 78 25 80 32 35 35 3a 41 | 44 44 20 72 64 25 2c 72 |x%.255:A|DD rd%,r|
|00003370| 64 25 2c 23 78 25 80 36 | 35 32 38 30 3a 5d 0d 00 |d%,#x%.6|5280:]..|
|00003380| ea 08 cd 3a 3d 30 0d 00 | eb 5b dd a4 6d 6f 76 33 |...:=0..|.[..mov3|
|00003390| 28 72 64 25 2c 78 25 29 | 3a 5b 4f 50 54 70 61 73 |(rd%,x%)|:[OPTpas|
|000033a0| 73 25 3a 4d 4f 56 20 72 | 64 25 2c 23 78 25 80 2d |s%:MOV r|d%,#x%.-|
|000033b0| 36 35 35 33 36 3a 84 52 | 20 72 64 25 2c 72 64 25 |65536:.R| rd%,rd%|
|000033c0| 2c 23 78 25 80 32 35 35 | 3a 82 20 72 64 25 2c 72 |,#x%.255|:. rd%,r|
|000033d0| 64 25 2c 23 78 25 80 36 | 35 32 38 30 3a 5d 3a 3d |d%,#x%.6|5280:]:=|
|000033e0| 30 0d ff | |0.. | |
+--------+-------------------------+-------------------------+--------+--------+