]> cloudbase.mooo.com Git - ddt180.git/blob - filter-unref.awk
cmd_R: don't allow loading over ddtz address space, but everywhere else.
[ddt180.git] / filter-unref.awk
1 BEGIN {
2 ign["?AUXI"] = 1
3 ign["?AUXO"] = 1
4 ign["?LIST"] = 1
5 ign["DDTZ_END"] = 1
6 ign["DEFVERS"] = 1
7
8 ign["I_ADC"] = 1
9 ign["I_ADD"] = 1
10 ign["I_AND"] = 1
11 ign["I_BIT"] = 1
12 ign["I_CALL"] = 1
13 ign["I_CCF"] = 1
14 ign["I_CP"] = 1
15 ign["I_CPD"] = 1
16 ign["I_CPDR"] = 1
17 ign["I_CPI"] = 1
18 ign["I_CPIR"] = 1
19 ign["I_CPL"] = 1
20 ign["I_DAA"] = 1
21 ign["I_DEC"] = 1
22 ign["I_DI"] = 1
23 ign["I_DJNZ"] = 1
24 ign["I_EI"] = 1
25 ign["I_EX"] = 1
26 ign["I_EXX"] = 1
27 ign["I_HALT"] = 1
28 ign["I_IM"] = 1
29 ign["I_IN"] = 1
30 ign["I_IN0"] = 1
31 ign["I_INC"] = 1
32 ign["I_IND"] = 1
33 ign["I_INDR"] = 1
34 ign["I_INI"] = 1
35 ign["I_INIR"] = 1
36 ign["I_JP"] = 1
37 ign["I_JR"] = 1
38 ign["I_LD"] = 1
39 ign["I_LDD"] = 1
40 ign["I_LDDR"] = 1
41 ign["I_LDI"] = 1
42 ign["I_LDIR"] = 1
43 ign["I_MLT"] = 1
44 ign["I_NEG"] = 1
45 ign["I_NOP"] = 1
46 ign["I_OR"] = 1
47 ign["I_OTDM"] = 1
48 ign["I_OTDMR"] = 1
49 ign["I_OTDR"] = 1
50 ign["I_OTIM"] = 1
51 ign["I_OTIMR"] = 1
52 ign["I_OTIR"] = 1
53 ign["I_OUT"] = 1
54 ign["I_OUT0"] = 1
55 ign["I_OUTD"] = 1
56 ign["I_OUTI"] = 1
57 ign["I_POP"] = 1
58 ign["I_PUSH"] = 1
59 ign["I_RES"] = 1
60 ign["I_RET"] = 1
61 ign["I_RETI"] = 1
62 ign["I_RETN"] = 1
63 ign["I_RL"] = 1
64 ign["I_RLA"] = 1
65 ign["I_RLC"] = 1
66 ign["I_RLCA"] = 1
67 ign["I_RLD"] = 1
68 ign["I_RR"] = 1
69 ign["I_RRA"] = 1
70 ign["I_RRC"] = 1
71 ign["I_RRCA"] = 1
72 ign["I_RRD"] = 1
73 ign["I_RST"] = 1
74 ign["I_SBC"] = 1
75 ign["I_SCF"] = 1
76 ign["I_SET"] = 1
77 ign["I_SLA"] = 1
78 ign["I_SLP"] = 1
79 ign["I_SRA"] = 1
80 ign["I_SLL"] = 1
81 ign["I_SRL"] = 1
82 ign["I_SUB"] = 1
83 ign["I_TST"] = 1
84 ign["I_TSTIO"] = 1
85 ign["I_XOR"] = 1
86
87 ign["ALTC"] = 1
88 ign["ALTE"] = 1
89 ign["ASTC0H"] = 1
90 ign["ASTC1H"] = 1
91 ign["BBR"] = 1
92 ign["BCR0H"] = 1
93 ign["BCR0L"] = 1
94 ign["BCR1H"] = 1
95 ign["BCR1L"] = 1
96 ign["BREAK"] = 1
97 ign["BREAKEN"] = 1
98 ign["BRGMOD"] = 1
99 ign["CBAR"] = 1
100 ign["CBR"] = 1
101 ign["CCR"] = 1
102 ign["CKA1D"] = 1
103 ign["CMR"] = 1
104 ign["CSIO_EF"] = 1
105 ign["CSIO_EIE"] = 1
106 ign["CSIO_RE"] = 1
107 ign["CSIO_SS0"] = 1
108 ign["CSIO_SS1"] = 1
109 ign["CSIO_SS2"] = 1
110 ign["CSIO_TE"] = 1
111 ign["CTS"] = 1
112 ign["CTS0DIS"] = 1
113 ign["CTS1E"] = 1
114 ign["CYC0"] = 1
115 ign["CYC1"] = 1
116 ign["DAR0B"] = 1
117 ign["DAR0H"] = 1
118 ign["DAR0L"] = 1
119 ign["DCD0"] = 1
120 ign["DCD0DIS"] = 1
121 ign["DCNTL"] = 1
122 ign["DE0"] = 1
123 ign["DE1"] = 1
124 ign["DIE0"] = 1
125 ign["DIE1"] = 1
126 ign["DIM0"] = 1
127 ign["DIM1"] = 1
128 ign["DM0"] = 1
129 ign["DM1"] = 1
130 ign["DME"] = 1
131 ign["DMODE"] = 1
132 ign["DMS0"] = 1
133 ign["DMS1"] = 1
134 ign["DR"] = 1
135 ign["DSTAT"] = 1
136 ign["EFR"] = 1
137 ign["FE"] = 1
138 ign["FRC"] = 1
139 ign["IAR1B"] = 1
140 ign["IAR1H"] = 1
141 ign["IAR1L"] = 1
142 ign["ICR"] = 1
143 ign["IL"] = 1
144 ign["IOC"] = 1
145 ign["IOSTP"] = 1
146 ign["ITC"] = 1
147 ign["ITE0"] = 1
148 ign["ITE1"] = 1
149 ign["ITE2"] = 1
150 ign["IV$ASCI0"] = 1
151 ign["IV$ASCI1"] = 1
152 ign["IV$CSIO"] = 1
153 ign["IV$DMA0"] = 1
154 ign["IV$DMA1"] = 1
155 ign["IV$INT1"] = 1
156 ign["IV$INT2"] = 1
157 ign["IV$PRT0"] = 1
158 ign["IV$PRT1"] = 1
159 ign["IWI0"] = 1
160 ign["IWI1"] = 1
161 ign["LNC"] = 1
162 ign["M1E"] = 1
163 ign["M1TE"] = 1
164 ign["MAR1B"] = 1
165 ign["MAR1H"] = 1
166 ign["MAR1L"] = 1
167 ign["MMOD"] = 1
168 ign["MOD0"] = 1
169 ign["MOD1"] = 1
170 ign["MOD2"] = 1
171 ign["MP"] = 1
172 ign["MPBR"] = 1
173 ign["MPBT"] = 1
174 ign["MPE"] = 1
175 ign["MWI0"] = 1
176 ign["MWI1"] = 1
177 ign["M_ALTC"] = 1
178 ign["M_ALTE"] = 1
179 ign["M_BREAK"] = 1
180 ign["M_BREAKEN"] = 1
181 ign["M_CKA1D"] = 1
182 ign["M_CSIO_EF"] = 1
183 ign["M_CSIO_EIE"] = 1
184 ign["M_CSIO_RE"] = 1
185 ign["M_CSIO_SS0"] = 1
186 ign["M_CSIO_SS1"] = 1
187 ign["M_CSIO_SS2"] = 1
188 ign["M_CTS"] = 1
189 ign["M_CTS1E"] = 1
190 ign["M_CYC0"] = 1
191 ign["M_CYC1"] = 1
192 ign["M_DCD0"] = 1
193 ign["M_DE0"] = 1
194 ign["M_DE1"] = 1
195 ign["M_DIE0"] = 1
196 ign["M_DIE1"] = 1
197 ign["M_DIM0"] = 1
198 ign["M_DIM1"] = 1
199 ign["M_DM0"] = 1
200 ign["M_DM1"] = 1
201 ign["M_DME"] = 1
202 ign["M_DMS0"] = 1
203 ign["M_DMS1"] = 1
204 ign["M_DR"] = 1
205 ign["M_EFR"] = 1
206 ign["M_FE"] = 1
207 ign["M_IOC"] = 1
208 ign["M_IOSTP"] = 1
209 ign["M_ITE0"] = 1
210 ign["M_ITE1"] = 1
211 ign["M_ITE2"] = 1
212 ign["M_IWI"] = 1
213 ign["M_LNC"] = 1
214 ign["M_M1E"] = 1
215 ign["M_M1TE"] = 1
216 ign["M_MMOD"] = 1
217 ign["M_MOD0"] = 1
218 ign["M_MOD1"] = 1
219 ign["M_MP"] = 1
220 ign["M_MPBR"] = 1
221 ign["M_MPE"] = 1
222 ign["M_MWI"] = 1
223 ign["M_NCD"] = 1
224 ign["M_NDWE0"] = 1
225 ign["M_NDWE1"] = 1
226 ign["M_OVRN"] = 1
227 ign["M_PEO"] = 1
228 ign["M_PERR"] = 1
229 ign["M_PS"] = 1
230 ign["M_RDRF"] = 1
231 ign["M_REFE"] = 1
232 ign["M_REFW"] = 1
233 ign["M_REQ1SEL0"] = 1
234 ign["M_REQ1SEL1"] = 1
235 ign["M_REQ1SEL2"] = 1
236 ign["M_RTS0"] = 1
237 ign["M_SENDBREAK"] = 1
238 ign["M_SM0"] = 1
239 ign["M_SM1"] = 1
240 ign["M_SS"] = 1
241 ign["M_TDE0"] = 1
242 ign["M_TDE1"] = 1
243 ign["M_TIE"] = 1
244 ign["M_TIE0"] = 1
245 ign["M_TIE1"] = 1
246 ign["M_TIF0"] = 1
247 ign["M_TIF1"] = 1
248 ign["M_TOC0"] = 1
249 ign["M_TOC1"] = 1
250 ign["M_TRAP"] = 1
251 ign["M_UFO"] = 1
252 ign["M_X1"] = 1
253 ign["M_X2CM"] = 1
254 ign["NCD"] = 1
255 ign["NDWE0"] = 1
256 ign["NDWE1"] = 1
257 ign["OMCR"] = 1
258 ign["OVRN"] = 1
259 ign["PEO"] = 1
260 ign["PERR"] = 1
261 ign["PS"] = 1
262 ign["RCR"] = 1
263 ign["RDRF"] = 1
264 ign["RE"] = 1
265 ign["REFE"] = 1
266 ign["REFW"] = 1
267 ign["REQ1SEL0"] = 1
268 ign["REQ1SEL1"] = 1
269 ign["REQ1SEL2"] = 1
270 ign["RIE"] = 1
271 ign["RLDR0H"] = 1
272 ign["RLDR0L"] = 1
273 ign["RLDR1H"] = 1
274 ign["RLDR1L"] = 1
275 ign["RTS0"] = 1
276 ign["SAR0B"] = 1
277 ign["SAR0H"] = 1
278 ign["SAR0L"] = 1
279 ign["SENDBREAK"] = 1
280 ign["SM0"] = 1
281 ign["SM1"] = 1
282 ign["SS0"] = 1
283 ign["SS1"] = 1
284 ign["SS2"] = 1
285 ign["TCR"] = 1
286 ign["TDE0"] = 1
287 ign["TDE1"] = 1
288 ign["TDRE"] = 1
289 ign["TE"] = 1
290 ign["TIE"] = 1
291 ign["TIE0"] = 1
292 ign["TIE1"] = 1
293 ign["TIF0"] = 1
294 ign["TIF1"] = 1
295 ign["TMDR0H"] = 1
296 ign["TMDR0L"] = 1
297 ign["TMDR1H"] = 1
298 ign["TMDR1L"] = 1
299 ign["TOC0"] = 1
300 ign["TOC1"] = 1
301 ign["TRAP"] = 1
302 ign["UFO"] = 1
303 ign["X1"] = 1
304 ign["X2CM"] = 1
305 }
306
307 /\x1A/ { exit }
308 /^Cross Reference/ { cross = 1 }
309
310 { if (cross != 1) next }
311 { if ($2 in ign) next }
312
313 /^[0-9A-F]{4}/ { if (NF == 3) printf "%s\n", $0 }