1 // license:BSD-3-Clause
2 // copyright-holders:Frank Palazzolo
3 #include "emu.h"
4 #include "1610dasm.h"
5
opcode_alignment() const6 u32 cp1610_disassembler::opcode_alignment() const
7 {
8 return 1;
9 }
10
disassemble(std::ostream & stream,offs_t pc,const data_buffer & opcodes,const data_buffer & params)11 offs_t cp1610_disassembler::disassemble(std::ostream &stream, offs_t pc, const data_buffer &opcodes, const data_buffer ¶ms)
12 {
13 uint16_t oprom16[4]={ opcodes.r16(pc), opcodes.r16(pc+1), opcodes.r16(pc+2), opcodes.r16(pc+3) };
14 uint16_t op = oprom16[0]; uint16_t subop;
15 uint16_t ea, ea1, ea2;
16 unsigned size = 1;
17 // const char *sym, *sym2;
18
19 switch( op )
20 {
21 /* opcode bitmask */
22 case 0x00: /* 0 000 000 000 */
23 // sym = set_ea_info( 0, 12, EA_UINT8, EA_ZPG_RD );
24 util::stream_format(stream, "HLT");
25 break;
26 case 0x001: /* 0 000 000 001 */
27 subop = oprom16[1];
28 switch (subop & 0x3f8)
29 {
30 case 0x280: /* 1 010 000 xxx */
31 case 0x288: /* 1 010 001 xxx */
32 case 0x290: /* 1 010 010 xxx */
33 case 0x298: /* 1 010 011 xxx */
34 case 0x2a0: /* 1 010 100 xxx */
35 case 0x2a8: /* 1 010 101 xxx */
36 case 0x2b0: /* 1 010 110 xxx */
37 util::stream_format(stream, "MVI@ (R%01d), R%01d",(subop&0x38)>>3,subop&7);
38 size += 1;
39 break;
40 case 0x2b8: /* 1 010 111 xxx */
41 ea1 = oprom16[2];
42 ea2 = oprom16[3];
43 ea = ((ea2&0xff)<<8) | (ea1&0xff);
44 util::stream_format(stream, "MVII #%04X, R%01d",ea,subop&7);
45 size += 3;
46 break;
47 case 0x2c0: /* 1 011 000 xxx */
48 case 0x2c8: /* 1 011 001 xxx */
49 case 0x2d0: /* 1 011 010 xxx */
50 case 0x2d8: /* 1 011 011 xxx */
51 case 0x2e0: /* 1 011 100 xxx */
52 case 0x2e8: /* 1 011 101 xxx */
53 case 0x2f0: /* 1 011 110 xxx */
54 util::stream_format(stream, "ADD@ (R%01d), R%01d",(subop&0x38)>>3,subop&7);
55 size += 1;
56 break;
57 case 0x2f8: /* 1 011 111 xxx */
58 ea1 = oprom16[2];
59 ea2 = oprom16[3];
60 ea = ((ea2&0xff)<<8) | (ea1&0xff);
61 util::stream_format(stream, "ADDI #%04X, R%01d",ea,subop&7);
62 size += 3;
63 break;
64 case 0x300: /* 1 100 000 xxx */
65 case 0x308: /* 1 100 001 xxx */
66 case 0x310: /* 1 100 010 xxx */
67 case 0x318: /* 1 100 011 xxx */
68 case 0x320: /* 1 100 100 xxx */
69 case 0x328: /* 1 100 101 xxx */
70 case 0x330: /* 1 100 110 xxx */
71 util::stream_format(stream, "SUB@ (R%01d), R%01d",(subop&0x38)>>3,subop&7);
72 size += 1;
73 break;
74 case 0x338: /* 1 100 111 xxx */
75 ea1 = oprom16[2];
76 ea2 = oprom16[3];
77 ea = ((ea2&0xff)<<8) | (ea1&0xff);
78 util::stream_format(stream, "SUBI #%04X, R%01d",ea,subop&7);
79 size += 3;
80 break;
81 case 0x340: /* 1 101 000 xxx */
82 case 0x348: /* 1 101 001 xxx */
83 case 0x350: /* 1 101 010 xxx */
84 case 0x358: /* 1 101 011 xxx */
85 case 0x360: /* 1 101 100 xxx */
86 case 0x368: /* 1 101 101 xxx */
87 case 0x370: /* 1 101 110 xxx */
88 util::stream_format(stream, "CMP@ (R%01d), R%01d",(subop&0x38)>>3,subop&7);
89 size += 1;
90 break;
91 case 0x378: /* 1 101 111 xxx */
92 ea1 = oprom16[2];
93 ea2 = oprom16[3];
94 ea = ((ea2&0xff)<<8) | (ea1&0xff);
95 util::stream_format(stream, "CMPI #%04X, R%01d",ea,subop&7);
96 size += 3;
97 break;
98 case 0x380: /* 1 110 000 xxx */
99 case 0x388: /* 1 110 001 xxx */
100 case 0x390: /* 1 110 010 xxx */
101 case 0x398: /* 1 110 011 xxx */
102 case 0x3a0: /* 1 110 100 xxx */
103 case 0x3a8: /* 1 110 101 xxx */
104 case 0x3b0: /* 1 110 110 xxx */
105 util::stream_format(stream, "AND@ (R%01d), R%01d",(subop&0x38)>>3,subop&7);
106 size += 1;
107 break;
108 case 0x3b8: /* 1 110 111 xxx */
109 ea1 = oprom16[2];
110 ea2 = oprom16[3];
111 ea = ((ea2&0xff)<<8) | (ea1&0xff);
112 util::stream_format(stream, "ANDI #%04X, R%01d",ea,subop&7);
113 size += 3;
114 break;
115 case 0x3c0: /* 1 111 000 xxx */
116 case 0x3c8: /* 1 111 001 xxx */
117 case 0x3d0: /* 1 111 010 xxx */
118 case 0x3d8: /* 1 111 011 xxx */
119 case 0x3e0: /* 1 111 100 xxx */
120 case 0x3e8: /* 1 111 101 xxx */
121 case 0x3f0: /* 1 111 110 xxx */
122 util::stream_format(stream, "XOR@ (R%01d), R%01d",(subop&0x38)>>3,subop&7);
123 size += 1;
124 break;
125 case 0x3f8: /* 1 111 111 xxx */
126 ea1 = oprom16[2];
127 ea2 = oprom16[3];
128 ea = ((ea2&0xff)<<8) | (ea1&0xff);
129 util::stream_format(stream, "XORI #%04X, R%01d",ea,subop&7);
130 size += 3;
131 break;
132 default:
133 size += 1;
134 util::stream_format(stream, "SDBD ????");
135 }
136 break;
137 case 0x002: /* 0 000 000 010 */
138 util::stream_format(stream, "EIS");
139 break;
140 case 0x003: /* 0 000 000 011 */
141 util::stream_format(stream, "DIS");
142 break;
143 case 0x004: /* 0 000 000 100 */
144 size += 2;
145 ea1 = oprom16[1];
146 ea2 = oprom16[2];
147 ea = ((ea1<<8)&0xfc00) + (ea2&0x3ff);
148 if ((ea1&0x300) == 0x300)
149 {
150 //?? set direct address
151 switch(ea1 & 0x03)
152 {
153 case 0:
154 util::stream_format(stream, "J %04X",ea);
155 break;
156 case 1:
157 util::stream_format(stream, "JE %04X",ea);
158 break;
159 case 2:
160 util::stream_format(stream, "JD %04X",ea);
161 break;
162 case 3:
163 util::stream_format(stream, "????");
164 break;
165 }
166 }
167 else
168 {
169 //?? set R?, return address
170 switch(ea1 & 0x03)
171 {
172 case 0:
173 util::stream_format(stream, "JSR R%01d,%04X",((ea1&0x300)>>8)+4,ea);
174 break;
175 case 1:
176 util::stream_format(stream, "JSRE R%01d,%04X",((ea1&0x300)>>8)+4,ea);
177 break;
178 case 2:
179 util::stream_format(stream, "JSRD R%01d,%04X",((ea1&0x300)>>8)+4,ea);
180 break;
181 case 3:
182 util::stream_format(stream, "????");
183 break;
184 }
185 }
186 break;
187 case 0x005: /* 0 000 000 101 */
188 util::stream_format(stream, "TCI");
189 break;
190 case 0x006: /* 0 000 000 110 */
191 util::stream_format(stream, "CLRC");
192 break;
193 case 0x007: /* 0 000 000 111 */
194 util::stream_format(stream, "SETC");
195 break;
196 case 0x008: /* 0 000 001 000 */
197 case 0x009: /* 0 000 001 001 */
198 case 0x00a: /* 0 000 001 010 */
199 case 0x00b: /* 0 000 001 011 */
200 case 0x00c: /* 0 000 001 100 */
201 case 0x00d: /* 0 000 001 101 */
202 case 0x00e: /* 0 000 001 110 */
203 case 0x00f: /* 0 000 001 111 */
204 util::stream_format(stream, "INCR R%01d",op&0x7);
205 break;
206 case 0x010: /* 0 000 010 000 */
207 case 0x011: /* 0 000 010 001 */
208 case 0x012: /* 0 000 010 010 */
209 case 0x013: /* 0 000 010 011 */
210 case 0x014: /* 0 000 010 100 */
211 case 0x015: /* 0 000 010 101 */
212 case 0x016: /* 0 000 010 110 */
213 case 0x017: /* 0 000 010 111 */
214 util::stream_format(stream, "DECR R%01d",op&0x7);
215 break;
216 case 0x018: /* 0 000 011 000 */
217 case 0x019: /* 0 000 011 001 */
218 case 0x01a: /* 0 000 011 010 */
219 case 0x01b: /* 0 000 011 011 */
220 case 0x01c: /* 0 000 011 100 */
221 case 0x01d: /* 0 000 011 101 */
222 case 0x01e: /* 0 000 011 110 */
223 case 0x01f: /* 0 000 011 111 */
224 util::stream_format(stream, "COMR R%01d",op&0x7);
225 break;
226 case 0x020: /* 0 000 100 000 */
227 case 0x021: /* 0 000 100 001 */
228 case 0x022: /* 0 000 100 010 */
229 case 0x023: /* 0 000 100 011 */
230 case 0x024: /* 0 000 100 100 */
231 case 0x025: /* 0 000 100 101 */
232 case 0x026: /* 0 000 100 110 */
233 case 0x027: /* 0 000 100 111 */
234 util::stream_format(stream, "NEGR R%01d",op&0x7);
235 break;
236 case 0x028: /* 0 000 101 000 */
237 case 0x029: /* 0 000 101 001 */
238 case 0x02a: /* 0 000 101 010 */
239 case 0x02b: /* 0 000 101 011 */
240 case 0x02c: /* 0 000 101 100 */
241 case 0x02d: /* 0 000 101 101 */
242 case 0x02e: /* 0 000 101 110 */
243 case 0x02f: /* 0 000 101 111 */
244 util::stream_format(stream, "ADCR R%01d",op&0x7);
245 break;
246 case 0x030: /* 0 000 110 000 */
247 case 0x031: /* 0 000 110 001 */
248 case 0x032: /* 0 000 110 010 */
249 case 0x033: /* 0 000 110 011 */
250 util::stream_format(stream, "GSWD R%01d",op&0x3);
251 break;
252 case 0x034: /* 0 000 110 100 */
253 case 0x035: /* 0 000 110 101 */
254 util::stream_format(stream, "NOP (%01d)",op&0x1); //???
255 break;
256 case 0x036: /* 0 000 110 110 */
257 case 0x037: /* 0 000 110 111 */
258 util::stream_format(stream, "SIN");
259 break;
260 case 0x038: /* 0 000 111 000 */
261 case 0x039: /* 0 000 111 001 */
262 case 0x03a: /* 0 000 111 010 */
263 case 0x03b: /* 0 000 111 011 */
264 case 0x03c: /* 0 000 111 100 */
265 case 0x03d: /* 0 000 111 101 */
266 case 0x03e: /* 0 000 111 110 */
267 case 0x03f: /* 0 000 111 111 */
268 util::stream_format(stream, "RSWD R%01d",op&0x7);
269 break;
270 case 0x040: /* 0 001 000 000 */
271 case 0x041: /* 0 001 000 001 */
272 case 0x042: /* 0 001 000 010 */
273 case 0x043: /* 0 001 000 011 */
274 util::stream_format(stream, "SWAP R%01d,1",op&0x3);
275 break;
276 case 0x044: /* 0 001 000 100 */
277 case 0x045: /* 0 001 000 101 */
278 case 0x046: /* 0 001 000 110 */
279 case 0x047: /* 0 001 000 111 */
280 util::stream_format(stream, "SWAP R%01d,2",op&0x3);
281 break;
282 case 0x048: /* 0 001 001 000 */
283 case 0x049: /* 0 001 001 001 */
284 case 0x04a: /* 0 001 001 010 */
285 case 0x04b: /* 0 001 001 011 */
286 util::stream_format(stream, "SLL R%01d,1",op&0x3);
287 break;
288 case 0x04c: /* 0 001 001 100 */
289 case 0x04d: /* 0 001 001 101 */
290 case 0x04e: /* 0 001 001 110 */
291 case 0x04f: /* 0 001 001 111 */
292 util::stream_format(stream, "SLL R%01d,2",op&0x3);
293 break;
294 case 0x050: /* 0 001 010 000 */
295 case 0x051: /* 0 001 010 001 */
296 case 0x052: /* 0 001 010 010 */
297 case 0x053: /* 0 001 010 011 */
298 util::stream_format(stream, "RLC R%01d,1",op&0x3);
299 break;
300 case 0x054: /* 0 001 010 100 */
301 case 0x055: /* 0 001 010 101 */
302 case 0x056: /* 0 001 010 110 */
303 case 0x057: /* 0 001 010 111 */
304 util::stream_format(stream, "RLC R%01d,2",op&0x3);
305 break;
306 case 0x058: /* 0 001 011 000 */
307 case 0x059: /* 0 001 011 001 */
308 case 0x05a: /* 0 001 011 010 */
309 case 0x05b: /* 0 001 011 011 */
310 util::stream_format(stream, "SLLC R%01d,1",op&0x3);
311 break;
312 case 0x05c: /* 0 001 011 100 */
313 case 0x05d: /* 0 001 011 101 */
314 case 0x05e: /* 0 001 011 110 */
315 case 0x05f: /* 0 001 011 111 */
316 util::stream_format(stream, "SLLC R%01d,2",op&0x3);
317 break;
318 case 0x060: /* 0 001 100 000 */
319 case 0x061: /* 0 001 100 001 */
320 case 0x062: /* 0 001 100 010 */
321 case 0x063: /* 0 001 100 011 */
322 util::stream_format(stream, "SLR R%01d,1",op&0x3);
323 break;
324 case 0x064: /* 0 001 100 100 */
325 case 0x065: /* 0 001 100 101 */
326 case 0x066: /* 0 001 100 110 */
327 case 0x067: /* 0 001 100 111 */
328 util::stream_format(stream, "SLR R%01d,2",op&0x3);
329 break;
330 case 0x068: /* 0 001 101 000 */
331 case 0x069: /* 0 001 101 001 */
332 case 0x06a: /* 0 001 101 010 */
333 case 0x06b: /* 0 001 101 011 */
334 util::stream_format(stream, "SAR R%01d,1",op&0x3);
335 break;
336 case 0x06c: /* 0 001 101 100 */
337 case 0x06d: /* 0 001 101 101 */
338 case 0x06e: /* 0 001 101 110 */
339 case 0x06f: /* 0 001 101 111 */
340 util::stream_format(stream, "SAR R%01d,2",op&0x3);
341 break;
342 case 0x070: /* 0 001 110 000 */
343 case 0x071: /* 0 001 110 001 */
344 case 0x072: /* 0 001 110 010 */
345 case 0x073: /* 0 001 110 011 */
346 util::stream_format(stream, "RRC R%01d,1",op&0x3);
347 break;
348 case 0x074: /* 0 001 110 100 */
349 case 0x075: /* 0 001 110 101 */
350 case 0x076: /* 0 001 110 110 */
351 case 0x077: /* 0 001 110 111 */
352 util::stream_format(stream, "RRC R%01d,2",op&0x3);
353 break;
354 case 0x078: /* 0 001 111 000 */
355 case 0x079: /* 0 001 111 001 */
356 case 0x07a: /* 0 001 111 010 */
357 case 0x07b: /* 0 001 111 011 */
358 util::stream_format(stream, "SARC R%01d,1",op&0x3);
359 break;
360 case 0x07c: /* 0 001 111 100 */
361 case 0x07d: /* 0 001 111 101 */
362 case 0x07e: /* 0 001 111 110 */
363 case 0x07f: /* 0 001 111 111 */
364 util::stream_format(stream, "SARC R%01d,2",op&0x3);
365 break;
366 case 0x080: /* 0 010 000 000 */
367 case 0x089: /* 0 010 001 001 */
368 case 0x092: /* 0 010 010 010 */
369 case 0x09b: /* 0 010 011 011 */
370 case 0x0a4: /* 0 010 100 100 */
371 case 0x0ad: /* 0 010 101 101 */
372 case 0x0b6: /* 0 010 110 110 */
373 case 0x0bf: /* 0 010 111 111 */
374 util::stream_format(stream, "TSTR R%01d",op&0x7);
375 break;
376 case 0x087: /* 0 010 000 111 */
377 case 0x08f: /* 0 010 001 111 */
378 case 0x097: /* 0 010 010 111 */
379 case 0x09f: /* 0 010 011 111 */
380 case 0x0a7: /* 0 010 100 111 */
381 case 0x0af: /* 0 010 101 111 */
382 case 0x0b7: /* 0 010 110 111 */
383 util::stream_format(stream, "JR R%01d",(op&0x38)>>3);
384 break;
385 case 0x081: /* 0 010 000 001 */
386 case 0x082: /* 0 010 000 010 */
387 case 0x083: /* 0 010 000 011 */
388 case 0x084: /* 0 010 000 100 */
389 case 0x085: /* 0 010 000 101 */
390 case 0x086: /* 0 010 000 110 */
391 case 0x088: /* 0 010 001 000 */
392 case 0x08a: /* 0 010 001 010 */
393 case 0x08b: /* 0 010 001 011 */
394 case 0x08c: /* 0 010 001 100 */
395 case 0x08d: /* 0 010 001 101 */
396 case 0x08e: /* 0 010 001 110 */
397 case 0x090: /* 0 010 010 000 */
398 case 0x091: /* 0 010 010 001 */
399 case 0x093: /* 0 010 010 011 */
400 case 0x094: /* 0 010 010 100 */
401 case 0x095: /* 0 010 010 101 */
402 case 0x096: /* 0 010 010 110 */
403 case 0x098: /* 0 010 011 000 */
404 case 0x099: /* 0 010 011 001 */
405 case 0x09a: /* 0 010 011 010 */
406 case 0x09c: /* 0 010 011 100 */
407 case 0x09d: /* 0 010 011 101 */
408 case 0x09e: /* 0 010 011 110 */
409 case 0x0a0: /* 0 010 100 000 */
410 case 0x0a1: /* 0 010 100 001 */
411 case 0x0a2: /* 0 010 100 010 */
412 case 0x0a3: /* 0 010 100 011 */
413 case 0x0a5: /* 0 010 100 101 */
414 case 0x0a6: /* 0 010 100 110 */
415 case 0x0a8: /* 0 010 101 000 */
416 case 0x0a9: /* 0 010 101 001 */
417 case 0x0aa: /* 0 010 101 010 */
418 case 0x0ab: /* 0 010 101 011 */
419 case 0x0ac: /* 0 010 101 100 */
420 case 0x0ae: /* 0 010 101 110 */
421 case 0x0b0: /* 0 010 110 000 */
422 case 0x0b1: /* 0 010 110 001 */
423 case 0x0b2: /* 0 010 110 010 */
424 case 0x0b3: /* 0 010 110 011 */
425 case 0x0b4: /* 0 010 110 100 */
426 case 0x0b5: /* 0 010 110 101 */
427 case 0x0b8: /* 0 010 111 000 */
428 case 0x0b9: /* 0 010 111 001 */
429 case 0x0ba: /* 0 010 111 010 */
430 case 0x0bb: /* 0 010 111 011 */
431 case 0x0bc: /* 0 010 111 100 */
432 case 0x0bd: /* 0 010 111 101 */
433 case 0x0be: /* 0 010 111 110 */
434 util::stream_format(stream, "MOVR R%01d,R%01d",(op&0x38)>>3,op&0x7);
435 break;
436 case 0x0c0: /* 0 011 000 000 */
437 case 0x0c1: /* 0 011 000 001 */
438 case 0x0c2: /* 0 011 000 010 */
439 case 0x0c3: /* 0 011 000 011 */
440 case 0x0c4: /* 0 011 000 100 */
441 case 0x0c5: /* 0 011 000 101 */
442 case 0x0c6: /* 0 011 000 110 */
443 case 0x0c7: /* 0 011 000 111 */
444 case 0x0c8: /* 0 011 001 000 */
445 case 0x0c9: /* 0 011 001 001 */
446 case 0x0ca: /* 0 011 001 010 */
447 case 0x0cb: /* 0 011 001 011 */
448 case 0x0cc: /* 0 011 001 100 */
449 case 0x0cd: /* 0 011 001 101 */
450 case 0x0ce: /* 0 011 001 110 */
451 case 0x0cf: /* 0 011 001 111 */
452 case 0x0d0: /* 0 011 010 000 */
453 case 0x0d1: /* 0 011 010 001 */
454 case 0x0d2: /* 0 011 010 010 */
455 case 0x0d3: /* 0 011 010 011 */
456 case 0x0d4: /* 0 011 010 100 */
457 case 0x0d5: /* 0 011 010 101 */
458 case 0x0d6: /* 0 011 010 110 */
459 case 0x0d7: /* 0 011 010 111 */
460 case 0x0d8: /* 0 011 011 000 */
461 case 0x0d9: /* 0 011 011 001 */
462 case 0x0da: /* 0 011 011 010 */
463 case 0x0db: /* 0 011 011 011 */
464 case 0x0dc: /* 0 011 011 100 */
465 case 0x0dd: /* 0 011 011 101 */
466 case 0x0de: /* 0 011 011 110 */
467 case 0x0df: /* 0 011 011 111 */
468 case 0x0e0: /* 0 011 100 000 */
469 case 0x0e1: /* 0 011 100 001 */
470 case 0x0e2: /* 0 011 100 010 */
471 case 0x0e3: /* 0 011 100 011 */
472 case 0x0e4: /* 0 011 100 100 */
473 case 0x0e5: /* 0 011 100 101 */
474 case 0x0e6: /* 0 011 100 110 */
475 case 0x0e7: /* 0 011 100 111 */
476 case 0x0e8: /* 0 011 101 000 */
477 case 0x0e9: /* 0 011 101 001 */
478 case 0x0ea: /* 0 011 101 010 */
479 case 0x0eb: /* 0 011 101 011 */
480 case 0x0ec: /* 0 011 101 100 */
481 case 0x0ed: /* 0 011 101 101 */
482 case 0x0ee: /* 0 011 101 110 */
483 case 0x0ef: /* 0 011 101 111 */
484 case 0x0f0: /* 0 011 110 000 */
485 case 0x0f1: /* 0 011 110 001 */
486 case 0x0f2: /* 0 011 110 010 */
487 case 0x0f3: /* 0 011 110 011 */
488 case 0x0f4: /* 0 011 110 100 */
489 case 0x0f5: /* 0 011 110 101 */
490 case 0x0f6: /* 0 011 110 110 */
491 case 0x0f7: /* 0 011 110 111 */
492 case 0x0f8: /* 0 011 111 000 */
493 case 0x0f9: /* 0 011 111 001 */
494 case 0x0fa: /* 0 011 111 010 */
495 case 0x0fb: /* 0 011 111 011 */
496 case 0x0fc: /* 0 011 111 100 */
497 case 0x0fd: /* 0 011 111 101 */
498 case 0x0fe: /* 0 011 111 110 */
499 case 0x0ff: /* 0 011 111 111 */
500 util::stream_format(stream, "ADDR R%01d,R%01d",(op&0x38)>>3,op&7);
501 break;
502 case 0x100: /* 0 100 000 000 */
503 case 0x101: /* 0 100 000 001 */
504 case 0x102: /* 0 100 000 010 */
505 case 0x103: /* 0 100 000 011 */
506 case 0x104: /* 0 100 000 100 */
507 case 0x105: /* 0 100 000 101 */
508 case 0x106: /* 0 100 000 110 */
509 case 0x107: /* 0 100 000 111 */
510 case 0x108: /* 0 100 001 000 */
511 case 0x109: /* 0 100 001 001 */
512 case 0x10a: /* 0 100 001 010 */
513 case 0x10b: /* 0 100 001 011 */
514 case 0x10c: /* 0 100 001 100 */
515 case 0x10d: /* 0 100 001 101 */
516 case 0x10e: /* 0 100 001 110 */
517 case 0x10f: /* 0 100 001 111 */
518 case 0x110: /* 0 100 010 000 */
519 case 0x111: /* 0 100 010 001 */
520 case 0x112: /* 0 100 010 010 */
521 case 0x113: /* 0 100 010 011 */
522 case 0x114: /* 0 100 010 100 */
523 case 0x115: /* 0 100 010 101 */
524 case 0x116: /* 0 100 010 110 */
525 case 0x117: /* 0 100 010 111 */
526 case 0x118: /* 0 100 011 000 */
527 case 0x119: /* 0 100 011 001 */
528 case 0x11a: /* 0 100 011 010 */
529 case 0x11b: /* 0 100 011 011 */
530 case 0x11c: /* 0 100 011 100 */
531 case 0x11d: /* 0 100 011 101 */
532 case 0x11e: /* 0 100 011 110 */
533 case 0x11f: /* 0 100 011 111 */
534 case 0x120: /* 0 100 100 000 */
535 case 0x121: /* 0 100 100 001 */
536 case 0x122: /* 0 100 100 010 */
537 case 0x123: /* 0 100 100 011 */
538 case 0x124: /* 0 100 100 100 */
539 case 0x125: /* 0 100 100 101 */
540 case 0x126: /* 0 100 100 110 */
541 case 0x127: /* 0 100 100 111 */
542 case 0x128: /* 0 100 101 000 */
543 case 0x129: /* 0 100 101 001 */
544 case 0x12a: /* 0 100 101 010 */
545 case 0x12b: /* 0 100 101 011 */
546 case 0x12c: /* 0 100 101 100 */
547 case 0x12d: /* 0 100 101 101 */
548 case 0x12e: /* 0 100 101 110 */
549 case 0x12f: /* 0 100 101 111 */
550 case 0x130: /* 0 100 110 000 */
551 case 0x131: /* 0 100 110 001 */
552 case 0x132: /* 0 100 110 010 */
553 case 0x133: /* 0 100 110 011 */
554 case 0x134: /* 0 100 110 100 */
555 case 0x135: /* 0 100 110 101 */
556 case 0x136: /* 0 100 110 110 */
557 case 0x137: /* 0 100 110 111 */
558 case 0x138: /* 0 100 111 000 */
559 case 0x139: /* 0 100 111 001 */
560 case 0x13a: /* 0 100 111 010 */
561 case 0x13b: /* 0 100 111 011 */
562 case 0x13c: /* 0 100 111 100 */
563 case 0x13d: /* 0 100 111 101 */
564 case 0x13e: /* 0 100 111 110 */
565 case 0x13f: /* 0 100 111 111 */
566 util::stream_format(stream, "SUBR R%01d,R%01d",(op&0x38)>>3,op&7);
567 break;
568 case 0x140: /* 0 101 000 000 */
569 case 0x141: /* 0 101 000 001 */
570 case 0x142: /* 0 101 000 010 */
571 case 0x143: /* 0 101 000 011 */
572 case 0x144: /* 0 101 000 100 */
573 case 0x145: /* 0 101 000 101 */
574 case 0x146: /* 0 101 000 110 */
575 case 0x147: /* 0 101 000 111 */
576 case 0x148: /* 0 101 001 000 */
577 case 0x149: /* 0 101 001 001 */
578 case 0x14a: /* 0 101 001 010 */
579 case 0x14b: /* 0 101 001 011 */
580 case 0x14c: /* 0 101 001 100 */
581 case 0x14d: /* 0 101 001 101 */
582 case 0x14e: /* 0 101 001 110 */
583 case 0x14f: /* 0 101 001 111 */
584 case 0x150: /* 0 101 010 000 */
585 case 0x151: /* 0 101 010 001 */
586 case 0x152: /* 0 101 010 010 */
587 case 0x153: /* 0 101 010 011 */
588 case 0x154: /* 0 101 010 100 */
589 case 0x155: /* 0 101 010 101 */
590 case 0x156: /* 0 101 010 110 */
591 case 0x157: /* 0 101 010 111 */
592 case 0x158: /* 0 101 011 000 */
593 case 0x159: /* 0 101 011 001 */
594 case 0x15a: /* 0 101 011 010 */
595 case 0x15b: /* 0 101 011 011 */
596 case 0x15c: /* 0 101 011 100 */
597 case 0x15d: /* 0 101 011 101 */
598 case 0x15e: /* 0 101 011 110 */
599 case 0x15f: /* 0 101 011 111 */
600 case 0x160: /* 0 101 100 000 */
601 case 0x161: /* 0 101 100 001 */
602 case 0x162: /* 0 101 100 010 */
603 case 0x163: /* 0 101 100 011 */
604 case 0x164: /* 0 101 100 100 */
605 case 0x165: /* 0 101 100 101 */
606 case 0x166: /* 0 101 100 110 */
607 case 0x167: /* 0 101 100 111 */
608 case 0x168: /* 0 101 101 000 */
609 case 0x169: /* 0 101 101 001 */
610 case 0x16a: /* 0 101 101 010 */
611 case 0x16b: /* 0 101 101 011 */
612 case 0x16c: /* 0 101 101 100 */
613 case 0x16d: /* 0 101 101 101 */
614 case 0x16e: /* 0 101 101 110 */
615 case 0x16f: /* 0 101 101 111 */
616 case 0x170: /* 0 101 110 000 */
617 case 0x171: /* 0 101 110 001 */
618 case 0x172: /* 0 101 110 010 */
619 case 0x173: /* 0 101 110 011 */
620 case 0x174: /* 0 101 110 100 */
621 case 0x175: /* 0 101 110 101 */
622 case 0x176: /* 0 101 110 110 */
623 case 0x177: /* 0 101 110 111 */
624 case 0x178: /* 0 101 111 000 */
625 case 0x179: /* 0 101 111 001 */
626 case 0x17a: /* 0 101 111 010 */
627 case 0x17b: /* 0 101 111 011 */
628 case 0x17c: /* 0 101 111 100 */
629 case 0x17d: /* 0 101 111 101 */
630 case 0x17e: /* 0 101 111 110 */
631 case 0x17f: /* 0 101 111 111 */
632 util::stream_format(stream, "CMPR R%01d,R%01d",(op&0x38)>>3,op&7);
633 break;
634 case 0x180: /* 0 110 000 000 */
635 case 0x181: /* 0 110 000 001 */
636 case 0x182: /* 0 110 000 010 */
637 case 0x183: /* 0 110 000 011 */
638 case 0x184: /* 0 110 000 100 */
639 case 0x185: /* 0 110 000 101 */
640 case 0x186: /* 0 110 000 110 */
641 case 0x187: /* 0 110 000 111 */
642 case 0x188: /* 0 110 001 000 */
643 case 0x189: /* 0 110 001 001 */
644 case 0x18a: /* 0 110 001 010 */
645 case 0x18b: /* 0 110 001 011 */
646 case 0x18c: /* 0 110 001 100 */
647 case 0x18d: /* 0 110 001 101 */
648 case 0x18e: /* 0 110 001 110 */
649 case 0x18f: /* 0 110 001 111 */
650 case 0x190: /* 0 110 010 000 */
651 case 0x191: /* 0 110 010 001 */
652 case 0x192: /* 0 110 010 010 */
653 case 0x193: /* 0 110 010 011 */
654 case 0x194: /* 0 110 010 100 */
655 case 0x195: /* 0 110 010 101 */
656 case 0x196: /* 0 110 010 110 */
657 case 0x197: /* 0 110 010 111 */
658 case 0x198: /* 0 110 011 000 */
659 case 0x199: /* 0 110 011 001 */
660 case 0x19a: /* 0 110 011 010 */
661 case 0x19b: /* 0 110 011 011 */
662 case 0x19c: /* 0 110 011 100 */
663 case 0x19d: /* 0 110 011 101 */
664 case 0x19e: /* 0 110 011 110 */
665 case 0x19f: /* 0 110 011 111 */
666 case 0x1a0: /* 0 110 100 000 */
667 case 0x1a1: /* 0 110 100 001 */
668 case 0x1a2: /* 0 110 100 010 */
669 case 0x1a3: /* 0 110 100 011 */
670 case 0x1a4: /* 0 110 100 100 */
671 case 0x1a5: /* 0 110 100 101 */
672 case 0x1a6: /* 0 110 100 110 */
673 case 0x1a7: /* 0 110 100 111 */
674 case 0x1a8: /* 0 110 101 000 */
675 case 0x1a9: /* 0 110 101 001 */
676 case 0x1aa: /* 0 110 101 010 */
677 case 0x1ab: /* 0 110 101 011 */
678 case 0x1ac: /* 0 110 101 100 */
679 case 0x1ad: /* 0 110 101 101 */
680 case 0x1ae: /* 0 110 101 110 */
681 case 0x1af: /* 0 110 101 111 */
682 case 0x1b0: /* 0 110 110 000 */
683 case 0x1b1: /* 0 110 110 001 */
684 case 0x1b2: /* 0 110 110 010 */
685 case 0x1b3: /* 0 110 110 011 */
686 case 0x1b4: /* 0 110 110 100 */
687 case 0x1b5: /* 0 110 110 101 */
688 case 0x1b6: /* 0 110 110 110 */
689 case 0x1b7: /* 0 110 110 111 */
690 case 0x1b8: /* 0 110 111 000 */
691 case 0x1b9: /* 0 110 111 001 */
692 case 0x1ba: /* 0 110 111 010 */
693 case 0x1bb: /* 0 110 111 011 */
694 case 0x1bc: /* 0 110 111 100 */
695 case 0x1bd: /* 0 110 111 101 */
696 case 0x1be: /* 0 110 111 110 */
697 case 0x1bf: /* 0 110 111 111 */
698 util::stream_format(stream, "ANDR R%01d,R%01d",(op&0x38)>>3,op&7);
699 break;
700 case 0x1c0: /* 0 111 000 000 */
701 case 0x1c9: /* 0 111 001 001 */
702 case 0x1d2: /* 0 111 010 010 */
703 case 0x1db: /* 0 111 011 011 */
704 case 0x1e4: /* 0 111 100 100 */
705 case 0x1ed: /* 0 111 101 101 */
706 case 0x1f6: /* 0 111 110 110 */
707 case 0x1ff: /* 0 111 111 111 */
708 util::stream_format(stream, "CLRR R%01d",op&7);
709 break;
710 case 0x1c1: /* 0 111 000 001 */
711 case 0x1c2: /* 0 111 000 010 */
712 case 0x1c3: /* 0 111 000 011 */
713 case 0x1c4: /* 0 111 000 100 */
714 case 0x1c5: /* 0 111 000 101 */
715 case 0x1c6: /* 0 111 000 110 */
716 case 0x1c7: /* 0 111 000 111 */
717 case 0x1c8: /* 0 111 001 000 */
718 case 0x1ca: /* 0 111 001 010 */
719 case 0x1cb: /* 0 111 001 011 */
720 case 0x1cc: /* 0 111 001 100 */
721 case 0x1cd: /* 0 111 001 101 */
722 case 0x1ce: /* 0 111 001 110 */
723 case 0x1cf: /* 0 111 001 111 */
724 case 0x1d0: /* 0 111 010 000 */
725 case 0x1d1: /* 0 111 010 001 */
726 case 0x1d3: /* 0 111 010 011 */
727 case 0x1d4: /* 0 111 010 100 */
728 case 0x1d5: /* 0 111 010 101 */
729 case 0x1d6: /* 0 111 010 110 */
730 case 0x1d7: /* 0 111 010 111 */
731 case 0x1d8: /* 0 111 011 000 */
732 case 0x1d9: /* 0 111 011 001 */
733 case 0x1da: /* 0 111 011 010 */
734 case 0x1dc: /* 0 111 011 100 */
735 case 0x1dd: /* 0 111 011 101 */
736 case 0x1de: /* 0 111 011 110 */
737 case 0x1df: /* 0 111 011 111 */
738 case 0x1e0: /* 0 111 100 000 */
739 case 0x1e1: /* 0 111 100 001 */
740 case 0x1e2: /* 0 111 100 010 */
741 case 0x1e3: /* 0 111 100 011 */
742 case 0x1e5: /* 0 111 100 101 */
743 case 0x1e6: /* 0 111 100 110 */
744 case 0x1e7: /* 0 111 100 111 */
745 case 0x1e8: /* 0 111 101 000 */
746 case 0x1e9: /* 0 111 101 001 */
747 case 0x1ea: /* 0 111 101 010 */
748 case 0x1eb: /* 0 111 101 011 */
749 case 0x1ec: /* 0 111 101 100 */
750 case 0x1ee: /* 0 111 101 110 */
751 case 0x1ef: /* 0 111 101 111 */
752 case 0x1f0: /* 0 111 110 000 */
753 case 0x1f1: /* 0 111 110 001 */
754 case 0x1f2: /* 0 111 110 010 */
755 case 0x1f3: /* 0 111 110 011 */
756 case 0x1f4: /* 0 111 110 100 */
757 case 0x1f5: /* 0 111 110 101 */
758 case 0x1f7: /* 0 111 110 111 */
759 case 0x1f8: /* 0 111 111 000 */
760 case 0x1f9: /* 0 111 111 001 */
761 case 0x1fa: /* 0 111 111 010 */
762 case 0x1fb: /* 0 111 111 011 */
763 case 0x1fc: /* 0 111 111 100 */
764 case 0x1fd: /* 0 111 111 101 */
765 case 0x1fe: /* 0 111 111 110 */
766 util::stream_format(stream, "XORR R%01d,R%01d",(op&0x38)>>3,op&7);
767 break;
768 case 0x200: /* 1 000 000 000 */
769 size += 1;
770 ea = oprom16[1];
771 util::stream_format(stream, "B %04X",pc+2+ea);
772 break;
773 case 0x201: /* 1 000 000 001 */
774 size += 1;
775 ea = oprom16[1];
776 util::stream_format(stream, "BC %04X",pc+2+ea);
777 break;
778 case 0x202: /* 1 000 000 010 */
779 size += 1;
780 ea = oprom16[1];
781 util::stream_format(stream, "BOV %04X",pc+2+ea);
782 break;
783 case 0x203: /* 1 000 000 011 */
784 size += 1;
785 ea = oprom16[1];
786 util::stream_format(stream, "BPL %04X",pc+2+ea);
787 break;
788 case 0x204: /* 1 000 000 100 */
789 size += 1;
790 ea = oprom16[1];
791 util::stream_format(stream, "BZE %04X",pc+2+ea);
792 break;
793 case 0x205: /* 1 000 000 101 */
794 size += 1;
795 ea = oprom16[1];
796 util::stream_format(stream, "BLT %04X",pc+2+ea);
797 break;
798 case 0x206: /* 1 000 000 110 */
799 size += 1;
800 ea = oprom16[1];
801 util::stream_format(stream, "BLE %04X",pc+2+ea);
802 break;
803 case 0x207: /* 1 000 000 111 */
804 size += 1;
805 ea = oprom16[1];
806 util::stream_format(stream, "BUSC %04X",pc+2+ea);
807 break;
808 case 0x208: /* 1 000 001 000 */
809 size += 1;
810 ea = oprom16[1];
811 util::stream_format(stream, "NOPP %04X",pc+2+ea);
812 break;
813 case 0x209: /* 1 000 001 001 */
814 size += 1;
815 ea = oprom16[1];
816 util::stream_format(stream, "BNC %04X",pc+2+ea);
817 break;
818 case 0x20a: /* 1 000 001 010 */
819 size += 1;
820 ea = oprom16[1];
821 util::stream_format(stream, "BNOV %04X",pc+2+ea);
822 break;
823 case 0x20b: /* 1 000 001 011 */
824 size += 1;
825 ea = oprom16[1];
826 util::stream_format(stream, "BMI %04X",pc+2+ea);
827 break;
828 case 0x20c: /* 1 000 001 100 */
829 size += 1;
830 ea = oprom16[1];
831 util::stream_format(stream, "BNZE %04X",pc+2+ea);
832 break;
833 case 0x20d: /* 1 000 001 101 */
834 size += 1;
835 ea = oprom16[1];
836 util::stream_format(stream, "BGE %04X",pc+2+ea);
837 break;
838 case 0x20e: /* 1 000 001 110 */
839 size += 1;
840 ea = oprom16[1];
841 util::stream_format(stream, "BGT %04X",pc+2+ea);
842 break;
843 case 0x20f: /* 1 000 001 111 */
844 size += 1;
845 ea = oprom16[1];
846 util::stream_format(stream, "BESC %04X",pc+2+ea);
847 break;
848 case 0x210: /* 1 000 010 000 */
849 case 0x211: /* 1 000 010 001 */
850 case 0x212: /* 1 000 010 010 */
851 case 0x213: /* 1 000 010 011 */
852 case 0x214: /* 1 000 010 100 */
853 case 0x215: /* 1 000 010 101 */
854 case 0x216: /* 1 000 010 110 */
855 case 0x217: /* 1 000 010 111 */
856 case 0x218: /* 1 000 011 000 */
857 case 0x219: /* 1 000 011 001 */
858 case 0x21a: /* 1 000 011 010 */
859 case 0x21b: /* 1 000 011 011 */
860 case 0x21c: /* 1 000 011 100 */
861 case 0x21d: /* 1 000 011 101 */
862 case 0x21e: /* 1 000 011 110 */
863 case 0x21f: /* 1 000 011 111 */
864 size += 1;
865 ea = oprom16[1];
866 util::stream_format(stream, "BEXT %04X,%01X",pc+2+ea,op&0x0f);
867 break;
868 case 0x220: /* 1 000 100 000 */
869 size += 1;
870 ea = oprom16[1];
871 util::stream_format(stream, "B %04X",pc+1-ea);
872 break;
873 case 0x221: /* 1 000 100 001 */
874 size += 1;
875 ea = oprom16[1];
876 util::stream_format(stream, "BC %04X",pc+1-ea);
877 break;
878 case 0x222: /* 1 000 100 010 */
879 size += 1;
880 ea = oprom16[1];
881 util::stream_format(stream, "BOV %04X",pc+1-ea);
882 break;
883 case 0x223: /* 1 000 100 011 */
884 size += 1;
885 ea = oprom16[1];
886 util::stream_format(stream, "BPL %04X",pc+1-ea);
887 break;
888 case 0x224: /* 1 000 100 100 */
889 size += 1;
890 ea = oprom16[1];
891 util::stream_format(stream, "BZE %04X",pc+1-ea);
892 break;
893 case 0x225: /* 1 000 100 101 */
894 size += 1;
895 ea = oprom16[1];
896 util::stream_format(stream, "BLT %04X",pc+1-ea);
897 break;
898 case 0x226: /* 1 000 100 110 */
899 size += 1;
900 ea = oprom16[1];
901 util::stream_format(stream, "BLE %04X",pc+1-ea);
902 break;
903 case 0x227: /* 1 000 100 111 */
904 size += 1;
905 ea = oprom16[1];
906 util::stream_format(stream, "BUSC %04X",pc+1-ea);
907 break;
908 case 0x228: /* 1 000 101 000 */
909 size += 1;
910 ea = oprom16[1];
911 util::stream_format(stream, "NOPP %04X",pc+1-ea);
912 break;
913 case 0x229: /* 1 000 101 001 */
914 size += 1;
915 ea = oprom16[1];
916 util::stream_format(stream, "BNC %04X",pc+1-ea);
917 break;
918 case 0x22a: /* 1 000 101 010 */
919 size += 1;
920 ea = oprom16[1];
921 util::stream_format(stream, "BNOV %04X",pc+1-ea);
922 break;
923 case 0x22b: /* 1 000 101 011 */
924 size += 1;
925 ea = oprom16[1];
926 util::stream_format(stream, "BMI %04X",pc+1-ea);
927 break;
928 case 0x22c: /* 1 000 101 100 */
929 size += 1;
930 ea = oprom16[1];
931 util::stream_format(stream, "BNZE %04X",pc+1-ea);
932 break;
933 case 0x22d: /* 1 000 101 101 */
934 size += 1;
935 ea = oprom16[1];
936 util::stream_format(stream, "BGE %04X",pc+1-ea);
937 break;
938 case 0x22e: /* 1 000 101 110 */
939 size += 1;
940 ea = oprom16[1];
941 util::stream_format(stream, "BGT %04X",pc+1-ea);
942 break;
943 case 0x22f: /* 1 000 101 111 */
944 size += 1;
945 ea = oprom16[1];
946 util::stream_format(stream, "BESC %04X",pc+1-ea);
947 break;
948 case 0x230: /* 1 000 110 000 */
949 case 0x231: /* 1 000 110 001 */
950 case 0x232: /* 1 000 110 010 */
951 case 0x233: /* 1 000 110 011 */
952 case 0x234: /* 1 000 110 100 */
953 case 0x235: /* 1 000 110 101 */
954 case 0x236: /* 1 000 110 110 */
955 case 0x237: /* 1 000 110 111 */
956 case 0x238: /* 1 000 111 000 */
957 case 0x239: /* 1 000 111 001 */
958 case 0x23a: /* 1 000 111 010 */
959 case 0x23b: /* 1 000 111 011 */
960 case 0x23c: /* 1 000 111 100 */
961 case 0x23d: /* 1 000 111 101 */
962 case 0x23e: /* 1 000 111 110 */
963 case 0x23f: /* 1 000 111 111 */
964 size += 1;
965 ea = oprom16[1];
966 util::stream_format(stream, "BEXT %04X,%01X",pc+1-ea,op&0x0f);
967 break;
968 case 0x240: /* 1 001 000 000 */
969 case 0x241: /* 1 001 000 001 */
970 case 0x242: /* 1 001 000 010 */
971 case 0x243: /* 1 001 000 011 */
972 case 0x244: /* 1 001 000 100 */
973 case 0x245: /* 1 001 000 101 */
974 case 0x246: /* 1 001 000 110 */
975 case 0x247: /* 1 001 000 111 */
976 size += 1;
977 ea = oprom16[1];
978 util::stream_format(stream, "MVO R%01d,(%04X)",op&0x7,ea);
979 break;
980 case 0x248: /* 1 001 001 000 */
981 case 0x249: /* 1 001 001 001 */
982 case 0x24a: /* 1 001 001 010 */
983 case 0x24b: /* 1 001 001 011 */
984 case 0x24c: /* 1 001 001 100 */
985 case 0x24d: /* 1 001 001 101 */
986 case 0x24e: /* 1 001 001 110 */
987 case 0x24f: /* 1 001 001 111 */
988 case 0x250: /* 1 001 010 000 */
989 case 0x251: /* 1 001 010 001 */
990 case 0x252: /* 1 001 010 010 */
991 case 0x253: /* 1 001 010 011 */
992 case 0x254: /* 1 001 010 100 */
993 case 0x255: /* 1 001 010 101 */
994 case 0x256: /* 1 001 010 110 */
995 case 0x257: /* 1 001 010 111 */
996 case 0x258: /* 1 001 011 000 */
997 case 0x259: /* 1 001 011 001 */
998 case 0x25a: /* 1 001 011 010 */
999 case 0x25b: /* 1 001 011 011 */
1000 case 0x25c: /* 1 001 011 100 */
1001 case 0x25d: /* 1 001 011 101 */
1002 case 0x25e: /* 1 001 011 110 */
1003 case 0x25f: /* 1 001 011 111 */
1004 case 0x260: /* 1 001 100 000 */
1005 case 0x261: /* 1 001 100 001 */
1006 case 0x262: /* 1 001 100 010 */
1007 case 0x263: /* 1 001 100 011 */
1008 case 0x264: /* 1 001 100 100 */
1009 case 0x265: /* 1 001 100 101 */
1010 case 0x266: /* 1 001 100 110 */
1011 case 0x267: /* 1 001 100 111 */
1012 case 0x268: /* 1 001 101 000 */
1013 case 0x269: /* 1 001 101 001 */
1014 case 0x26a: /* 1 001 101 010 */
1015 case 0x26b: /* 1 001 101 011 */
1016 case 0x26c: /* 1 001 101 100 */
1017 case 0x26d: /* 1 001 101 101 */
1018 case 0x26e: /* 1 001 101 110 */
1019 case 0x26f: /* 1 001 101 111 */
1020 util::stream_format(stream, "MVO@ R%01d,(R%01d)",op&0x7,(op&0x38)>>3);
1021 break;
1022 case 0x270: /* 1 001 110 000 */
1023 case 0x271: /* 1 001 110 001 */
1024 case 0x272: /* 1 001 110 010 */
1025 case 0x273: /* 1 001 110 011 */
1026 case 0x274: /* 1 001 110 100 */
1027 case 0x275: /* 1 001 110 101 */
1028 case 0x276: /* 1 001 110 110 */
1029 case 0x277: /* 1 001 110 111 */
1030 util::stream_format(stream, "PSHR R%01d",op&0x7);
1031 break;
1032 case 0x278: /* 1 001 111 000 */
1033 case 0x279: /* 1 001 111 001 */
1034 case 0x27a: /* 1 001 111 010 */
1035 case 0x27b: /* 1 001 111 011 */
1036 case 0x27c: /* 1 001 111 100 */
1037 case 0x27d: /* 1 001 111 101 */
1038 case 0x27e: /* 1 001 111 110 */
1039 case 0x27f: /* 1 001 111 111 */
1040 size += 1;
1041 util::stream_format(stream, "MVOI R%01d,(%04X)",op&0x7,pc+1);
1042 break;
1043 case 0x280: /* 1 010 000 000 */
1044 case 0x281: /* 1 010 000 001 */
1045 case 0x282: /* 1 010 000 010 */
1046 case 0x283: /* 1 010 000 011 */
1047 case 0x284: /* 1 010 000 100 */
1048 case 0x285: /* 1 010 000 101 */
1049 case 0x286: /* 1 010 000 110 */
1050 case 0x287: /* 1 010 000 111 */
1051 size += 1;
1052 ea = oprom16[1];
1053 util::stream_format(stream, "MVI (%04X),R%01d",ea,op&0x7);
1054 break;
1055 case 0x288: /* 1 010 001 000 */
1056 case 0x289: /* 1 010 001 001 */
1057 case 0x28a: /* 1 010 001 010 */
1058 case 0x28b: /* 1 010 001 011 */
1059 case 0x28c: /* 1 010 001 100 */
1060 case 0x28d: /* 1 010 001 101 */
1061 case 0x28e: /* 1 010 001 110 */
1062 case 0x28f: /* 1 010 001 111 */
1063 case 0x290: /* 1 010 010 000 */
1064 case 0x291: /* 1 010 010 001 */
1065 case 0x292: /* 1 010 010 010 */
1066 case 0x293: /* 1 010 010 011 */
1067 case 0x294: /* 1 010 010 100 */
1068 case 0x295: /* 1 010 010 101 */
1069 case 0x296: /* 1 010 010 110 */
1070 case 0x297: /* 1 010 010 111 */
1071 case 0x298: /* 1 010 011 000 */
1072 case 0x299: /* 1 010 011 001 */
1073 case 0x29a: /* 1 010 011 010 */
1074 case 0x29b: /* 1 010 011 011 */
1075 case 0x29c: /* 1 010 011 100 */
1076 case 0x29d: /* 1 010 011 101 */
1077 case 0x29e: /* 1 010 011 110 */
1078 case 0x29f: /* 1 010 011 111 */
1079 case 0x2a0: /* 1 010 100 000 */
1080 case 0x2a1: /* 1 010 100 001 */
1081 case 0x2a2: /* 1 010 100 010 */
1082 case 0x2a3: /* 1 010 100 011 */
1083 case 0x2a4: /* 1 010 100 100 */
1084 case 0x2a5: /* 1 010 100 101 */
1085 case 0x2a6: /* 1 010 100 110 */
1086 case 0x2a7: /* 1 010 100 111 */
1087 case 0x2a8: /* 1 010 101 000 */
1088 case 0x2a9: /* 1 010 101 001 */
1089 case 0x2aa: /* 1 010 101 010 */
1090 case 0x2ab: /* 1 010 101 011 */
1091 case 0x2ac: /* 1 010 101 100 */
1092 case 0x2ad: /* 1 010 101 101 */
1093 case 0x2ae: /* 1 010 101 110 */
1094 case 0x2af: /* 1 010 101 111 */
1095 util::stream_format(stream, "MVI@ (R%01d),R%01d",(op&0x38)>>3,op&0x7);
1096 break;
1097 case 0x2b0: /* 1 010 110 000 */
1098 case 0x2b1: /* 1 010 110 001 */
1099 case 0x2b2: /* 1 010 110 010 */
1100 case 0x2b3: /* 1 010 110 011 */
1101 case 0x2b4: /* 1 010 110 100 */
1102 case 0x2b5: /* 1 010 110 101 */
1103 case 0x2b6: /* 1 010 110 110 */
1104 case 0x2b7: /* 1 010 110 111 */
1105 util::stream_format(stream, "PULR R%01d",op&0x7);
1106 break;
1107 case 0x2b8: /* 1 010 111 000 */
1108 case 0x2b9: /* 1 010 111 001 */
1109 case 0x2ba: /* 1 010 111 010 */
1110 case 0x2bb: /* 1 010 111 011 */
1111 case 0x2bc: /* 1 010 111 100 */
1112 case 0x2bd: /* 1 010 111 101 */
1113 case 0x2be: /* 1 010 111 110 */
1114 case 0x2bf: /* 1 010 111 111 */
1115 size += 1;
1116 ea = oprom16[1];
1117 util::stream_format(stream, "MVII #%04X,R%01d",ea,op&0x7);
1118 break;
1119 case 0x2c0: /* 1 011 010 000 */
1120 case 0x2c1: /* 1 011 010 001 */
1121 case 0x2c2: /* 1 011 010 010 */
1122 case 0x2c3: /* 1 011 010 011 */
1123 case 0x2c4: /* 1 011 010 100 */
1124 case 0x2c5: /* 1 011 010 101 */
1125 case 0x2c6: /* 1 011 010 110 */
1126 case 0x2c7: /* 1 011 010 111 */
1127 size += 1;
1128 ea = oprom16[1];
1129 util::stream_format(stream, "ADD (%04X),R%01d",ea,op&0x7);
1130 break;
1131 case 0x2c8: /* 1 011 001 000 */
1132 case 0x2c9: /* 1 011 001 001 */
1133 case 0x2ca: /* 1 011 001 010 */
1134 case 0x2cb: /* 1 011 001 011 */
1135 case 0x2cc: /* 1 011 001 100 */
1136 case 0x2cd: /* 1 011 001 101 */
1137 case 0x2ce: /* 1 011 001 110 */
1138 case 0x2cf: /* 1 011 001 111 */
1139 case 0x2d0: /* 1 011 010 000 */
1140 case 0x2d1: /* 1 011 010 001 */
1141 case 0x2d2: /* 1 011 010 010 */
1142 case 0x2d3: /* 1 011 010 011 */
1143 case 0x2d4: /* 1 011 010 100 */
1144 case 0x2d5: /* 1 011 010 101 */
1145 case 0x2d6: /* 1 011 010 110 */
1146 case 0x2d7: /* 1 011 010 111 */
1147 case 0x2d8: /* 1 011 011 000 */
1148 case 0x2d9: /* 1 011 011 001 */
1149 case 0x2da: /* 1 011 011 010 */
1150 case 0x2db: /* 1 011 011 011 */
1151 case 0x2dc: /* 1 011 011 100 */
1152 case 0x2dd: /* 1 011 011 101 */
1153 case 0x2de: /* 1 011 011 110 */
1154 case 0x2df: /* 1 011 011 111 */
1155 case 0x2e0: /* 1 011 100 000 */
1156 case 0x2e1: /* 1 011 100 001 */
1157 case 0x2e2: /* 1 011 100 010 */
1158 case 0x2e3: /* 1 011 100 011 */
1159 case 0x2e4: /* 1 011 100 100 */
1160 case 0x2e5: /* 1 011 100 101 */
1161 case 0x2e6: /* 1 011 100 110 */
1162 case 0x2e7: /* 1 011 100 111 */
1163 case 0x2e8: /* 1 011 101 000 */
1164 case 0x2e9: /* 1 011 101 001 */
1165 case 0x2ea: /* 1 011 101 010 */
1166 case 0x2eb: /* 1 011 101 011 */
1167 case 0x2ec: /* 1 011 101 100 */
1168 case 0x2ed: /* 1 011 101 101 */
1169 case 0x2ee: /* 1 011 101 110 */
1170 case 0x2ef: /* 1 011 101 111 */
1171 case 0x2f0: /* 1 011 110 000 */
1172 case 0x2f1: /* 1 011 110 001 */
1173 case 0x2f2: /* 1 011 110 010 */
1174 case 0x2f3: /* 1 011 110 011 */
1175 case 0x2f4: /* 1 011 110 100 */
1176 case 0x2f5: /* 1 011 110 101 */
1177 case 0x2f6: /* 1 011 110 110 */
1178 case 0x2f7: /* 1 011 110 111 */
1179 util::stream_format(stream, "ADD@ (R%01d),R%01d",(op&0x38)>>3,op&0x7);
1180 break;
1181 case 0x2f8: /* 1 011 111 000 */
1182 case 0x2f9: /* 1 011 111 001 */
1183 case 0x2fa: /* 1 011 111 010 */
1184 case 0x2fb: /* 1 011 111 011 */
1185 case 0x2fc: /* 1 011 111 100 */
1186 case 0x2fd: /* 1 011 111 101 */
1187 case 0x2fe: /* 1 011 111 110 */
1188 case 0x2ff: /* 1 011 111 111 */
1189 size += 1;
1190 ea = oprom16[1];
1191 util::stream_format(stream, "ADDI #%04X,R%01d",ea,op&0x7);
1192 break;
1193 case 0x300: /* 1 100 000 000 */
1194 case 0x301: /* 1 100 000 001 */
1195 case 0x302: /* 1 100 000 010 */
1196 case 0x303: /* 1 100 000 011 */
1197 case 0x304: /* 1 100 000 100 */
1198 case 0x305: /* 1 100 000 101 */
1199 case 0x306: /* 1 100 000 110 */
1200 case 0x307: /* 1 100 000 111 */
1201 size += 1;
1202 ea = oprom16[1];
1203 util::stream_format(stream, "SUB (%04X),R%01d",ea,op&0x7);
1204 break;
1205 case 0x308: /* 1 100 001 000 */
1206 case 0x309: /* 1 100 001 001 */
1207 case 0x30a: /* 1 100 001 010 */
1208 case 0x30b: /* 1 100 001 011 */
1209 case 0x30c: /* 1 100 001 100 */
1210 case 0x30d: /* 1 100 001 101 */
1211 case 0x30e: /* 1 100 001 110 */
1212 case 0x30f: /* 1 100 001 111 */
1213 case 0x310: /* 1 100 010 000 */
1214 case 0x311: /* 1 100 010 001 */
1215 case 0x312: /* 1 100 010 010 */
1216 case 0x313: /* 1 100 010 011 */
1217 case 0x314: /* 1 100 010 100 */
1218 case 0x315: /* 1 100 010 101 */
1219 case 0x316: /* 1 100 010 110 */
1220 case 0x317: /* 1 100 010 111 */
1221 case 0x318: /* 1 100 011 000 */
1222 case 0x319: /* 1 100 011 001 */
1223 case 0x31a: /* 1 100 011 010 */
1224 case 0x31b: /* 1 100 011 011 */
1225 case 0x31c: /* 1 100 011 100 */
1226 case 0x31d: /* 1 100 011 101 */
1227 case 0x31e: /* 1 100 011 110 */
1228 case 0x31f: /* 1 100 011 111 */
1229 case 0x320: /* 1 100 100 000 */
1230 case 0x321: /* 1 100 100 001 */
1231 case 0x322: /* 1 100 100 010 */
1232 case 0x323: /* 1 100 100 011 */
1233 case 0x324: /* 1 100 100 100 */
1234 case 0x325: /* 1 100 100 101 */
1235 case 0x326: /* 1 100 100 110 */
1236 case 0x327: /* 1 100 100 111 */
1237 case 0x328: /* 1 100 101 000 */
1238 case 0x329: /* 1 100 101 001 */
1239 case 0x32a: /* 1 100 101 010 */
1240 case 0x32b: /* 1 100 101 011 */
1241 case 0x32c: /* 1 100 101 100 */
1242 case 0x32d: /* 1 100 101 101 */
1243 case 0x32e: /* 1 100 101 110 */
1244 case 0x32f: /* 1 100 101 111 */
1245 case 0x330: /* 1 100 110 000 */
1246 case 0x331: /* 1 100 110 001 */
1247 case 0x332: /* 1 100 110 010 */
1248 case 0x333: /* 1 100 110 011 */
1249 case 0x334: /* 1 100 110 100 */
1250 case 0x335: /* 1 100 110 101 */
1251 case 0x336: /* 1 100 110 110 */
1252 case 0x337: /* 1 100 110 111 */
1253 util::stream_format(stream, "SUB@ (R%01d),R%01d",(op&0x38)>>3,op&0x7);
1254 break;
1255 case 0x338: /* 1 100 111 000 */
1256 case 0x339: /* 1 100 111 001 */
1257 case 0x33a: /* 1 100 111 010 */
1258 case 0x33b: /* 1 100 111 011 */
1259 case 0x33c: /* 1 100 111 100 */
1260 case 0x33d: /* 1 100 111 101 */
1261 case 0x33e: /* 1 100 111 110 */
1262 case 0x33f: /* 1 100 111 111 */
1263 size += 1;
1264 ea = oprom16[1];
1265 util::stream_format(stream, "SUBI #%04X,R%01d",ea,op&0x7);
1266 break;
1267 case 0x340: /* 1 101 000 000 */
1268 case 0x341: /* 1 101 000 001 */
1269 case 0x342: /* 1 101 000 010 */
1270 case 0x343: /* 1 101 000 011 */
1271 case 0x344: /* 1 101 000 100 */
1272 case 0x345: /* 1 101 000 101 */
1273 case 0x346: /* 1 101 000 110 */
1274 case 0x347: /* 1 101 000 111 */
1275 size += 1;
1276 ea = oprom16[1];
1277 util::stream_format(stream, "CMP (%04X),R%01d",ea,op&0x7);
1278 break;
1279 case 0x348: /* 1 101 001 000 */
1280 case 0x349: /* 1 101 001 001 */
1281 case 0x34a: /* 1 101 001 010 */
1282 case 0x34b: /* 1 101 001 011 */
1283 case 0x34c: /* 1 101 001 100 */
1284 case 0x34d: /* 1 101 001 101 */
1285 case 0x34e: /* 1 101 001 110 */
1286 case 0x34f: /* 1 101 001 111 */
1287 case 0x350: /* 1 101 010 000 */
1288 case 0x351: /* 1 101 010 001 */
1289 case 0x352: /* 1 101 010 010 */
1290 case 0x353: /* 1 101 010 011 */
1291 case 0x354: /* 1 101 010 100 */
1292 case 0x355: /* 1 101 010 101 */
1293 case 0x356: /* 1 101 010 110 */
1294 case 0x357: /* 1 101 010 111 */
1295 case 0x358: /* 1 101 011 000 */
1296 case 0x359: /* 1 101 011 001 */
1297 case 0x35a: /* 1 101 011 010 */
1298 case 0x35b: /* 1 101 011 011 */
1299 case 0x35c: /* 1 101 011 100 */
1300 case 0x35d: /* 1 101 011 101 */
1301 case 0x35e: /* 1 101 011 110 */
1302 case 0x35f: /* 1 101 011 111 */
1303 case 0x360: /* 1 101 100 000 */
1304 case 0x361: /* 1 101 100 001 */
1305 case 0x362: /* 1 101 100 010 */
1306 case 0x363: /* 1 101 100 011 */
1307 case 0x364: /* 1 101 100 100 */
1308 case 0x365: /* 1 101 100 101 */
1309 case 0x366: /* 1 101 100 110 */
1310 case 0x367: /* 1 101 100 111 */
1311 case 0x368: /* 1 101 101 000 */
1312 case 0x369: /* 1 101 101 001 */
1313 case 0x36a: /* 1 101 101 010 */
1314 case 0x36b: /* 1 101 101 011 */
1315 case 0x36c: /* 1 101 101 100 */
1316 case 0x36d: /* 1 101 101 101 */
1317 case 0x36e: /* 1 101 101 110 */
1318 case 0x36f: /* 1 101 101 111 */
1319 case 0x370: /* 1 101 110 000 */
1320 case 0x371: /* 1 101 110 001 */
1321 case 0x372: /* 1 101 110 010 */
1322 case 0x373: /* 1 101 110 011 */
1323 case 0x374: /* 1 101 110 100 */
1324 case 0x375: /* 1 101 110 101 */
1325 case 0x376: /* 1 101 110 110 */
1326 case 0x377: /* 1 101 110 111 */
1327 util::stream_format(stream, "CMP@ (R%01d),R%01d",(op&0x38)>>3,op&0x7);
1328 break;
1329 case 0x378: /* 1 101 111 000 */
1330 case 0x379: /* 1 101 111 001 */
1331 case 0x37a: /* 1 101 111 010 */
1332 case 0x37b: /* 1 101 111 011 */
1333 case 0x37c: /* 1 101 111 100 */
1334 case 0x37d: /* 1 101 111 101 */
1335 case 0x37e: /* 1 101 111 110 */
1336 case 0x37f: /* 1 101 111 111 */
1337 size += 1;
1338 ea = oprom16[1];
1339 util::stream_format(stream, "CMPI #%04X,R%01d",ea,op&0x7);
1340 break;
1341 case 0x380: /* 1 110 000 000 */
1342 case 0x381: /* 1 110 000 001 */
1343 case 0x382: /* 1 110 000 010 */
1344 case 0x383: /* 1 110 000 011 */
1345 case 0x384: /* 1 110 000 100 */
1346 case 0x385: /* 1 110 000 101 */
1347 case 0x386: /* 1 110 000 110 */
1348 case 0x387: /* 1 110 000 111 */
1349 size += 1;
1350 ea = oprom16[1];
1351 util::stream_format(stream, "AND (%04X),R%01d",ea,op&0x7);
1352 break;
1353 case 0x388: /* 1 110 001 000 */
1354 case 0x389: /* 1 110 001 001 */
1355 case 0x38a: /* 1 110 001 010 */
1356 case 0x38b: /* 1 110 001 011 */
1357 case 0x38c: /* 1 110 001 100 */
1358 case 0x38d: /* 1 110 001 101 */
1359 case 0x38e: /* 1 110 001 110 */
1360 case 0x38f: /* 1 110 001 111 */
1361 case 0x390: /* 1 110 010 000 */
1362 case 0x391: /* 1 110 010 001 */
1363 case 0x392: /* 1 110 010 010 */
1364 case 0x393: /* 1 110 010 011 */
1365 case 0x394: /* 1 110 010 100 */
1366 case 0x395: /* 1 110 010 101 */
1367 case 0x396: /* 1 110 010 110 */
1368 case 0x397: /* 1 110 010 111 */
1369 case 0x398: /* 1 110 011 000 */
1370 case 0x399: /* 1 110 011 001 */
1371 case 0x39a: /* 1 110 011 010 */
1372 case 0x39b: /* 1 110 011 011 */
1373 case 0x39c: /* 1 110 011 100 */
1374 case 0x39d: /* 1 110 011 101 */
1375 case 0x39e: /* 1 110 011 110 */
1376 case 0x39f: /* 1 110 011 111 */
1377 case 0x3a0: /* 1 110 100 000 */
1378 case 0x3a1: /* 1 110 100 001 */
1379 case 0x3a2: /* 1 110 100 010 */
1380 case 0x3a3: /* 1 110 100 011 */
1381 case 0x3a4: /* 1 110 100 100 */
1382 case 0x3a5: /* 1 110 100 101 */
1383 case 0x3a6: /* 1 110 100 110 */
1384 case 0x3a7: /* 1 110 100 111 */
1385 case 0x3a8: /* 1 110 101 000 */
1386 case 0x3a9: /* 1 110 101 001 */
1387 case 0x3aa: /* 1 110 101 010 */
1388 case 0x3ab: /* 1 110 101 011 */
1389 case 0x3ac: /* 1 110 101 100 */
1390 case 0x3ad: /* 1 110 101 101 */
1391 case 0x3ae: /* 1 110 101 110 */
1392 case 0x3af: /* 1 110 101 111 */
1393 case 0x3b0: /* 1 110 110 000 */
1394 case 0x3b1: /* 1 110 110 001 */
1395 case 0x3b2: /* 1 110 110 010 */
1396 case 0x3b3: /* 1 110 110 011 */
1397 case 0x3b4: /* 1 110 110 100 */
1398 case 0x3b5: /* 1 110 110 101 */
1399 case 0x3b6: /* 1 110 110 110 */
1400 case 0x3b7: /* 1 110 110 111 */
1401 util::stream_format(stream, "AND@ (R%01d),R%01d",(op&0x38)>>3,op&0x7);
1402 break;
1403 case 0x3b8: /* 1 110 111 000 */
1404 case 0x3b9: /* 1 110 111 001 */
1405 case 0x3ba: /* 1 110 111 010 */
1406 case 0x3bb: /* 1 110 111 011 */
1407 case 0x3bc: /* 1 110 111 100 */
1408 case 0x3bd: /* 1 110 111 101 */
1409 case 0x3be: /* 1 110 111 110 */
1410 case 0x3bf: /* 1 110 111 111 */
1411 size += 1;
1412 ea = oprom16[1];
1413 util::stream_format(stream, "ANDI #%04X,R%01d",ea,op&0x7);
1414 break;
1415 case 0x3c0: /* 1 111 000 000 */
1416 case 0x3c1: /* 1 111 000 001 */
1417 case 0x3c2: /* 1 111 000 010 */
1418 case 0x3c3: /* 1 111 000 011 */
1419 case 0x3c4: /* 1 111 000 100 */
1420 case 0x3c5: /* 1 111 000 101 */
1421 case 0x3c6: /* 1 111 000 110 */
1422 case 0x3c7: /* 1 111 000 111 */
1423 size += 1;
1424 ea = oprom16[1];
1425 util::stream_format(stream, "XOR (%04X),R%01d",ea,op&0x7);
1426 break;
1427 case 0x3c8: /* 1 111 001 000 */
1428 case 0x3c9: /* 1 111 001 001 */
1429 case 0x3ca: /* 1 111 001 010 */
1430 case 0x3cb: /* 1 111 001 011 */
1431 case 0x3cc: /* 1 111 001 100 */
1432 case 0x3cd: /* 1 111 001 101 */
1433 case 0x3ce: /* 1 111 001 110 */
1434 case 0x3cf: /* 1 111 001 111 */
1435 case 0x3d0: /* 1 111 010 000 */
1436 case 0x3d1: /* 1 111 010 001 */
1437 case 0x3d2: /* 1 111 010 010 */
1438 case 0x3d3: /* 1 111 010 011 */
1439 case 0x3d4: /* 1 111 010 100 */
1440 case 0x3d5: /* 1 111 010 101 */
1441 case 0x3d6: /* 1 111 010 110 */
1442 case 0x3d7: /* 1 111 010 111 */
1443 case 0x3d8: /* 1 111 011 000 */
1444 case 0x3d9: /* 1 111 011 001 */
1445 case 0x3da: /* 1 111 011 010 */
1446 case 0x3db: /* 1 111 011 011 */
1447 case 0x3dc: /* 1 111 011 100 */
1448 case 0x3dd: /* 1 111 011 101 */
1449 case 0x3de: /* 1 111 011 110 */
1450 case 0x3df: /* 1 111 011 111 */
1451 case 0x3e0: /* 1 111 100 000 */
1452 case 0x3e1: /* 1 111 100 001 */
1453 case 0x3e2: /* 1 111 100 010 */
1454 case 0x3e3: /* 1 111 100 011 */
1455 case 0x3e4: /* 1 111 100 100 */
1456 case 0x3e5: /* 1 111 100 101 */
1457 case 0x3e6: /* 1 111 100 110 */
1458 case 0x3e7: /* 1 111 100 111 */
1459 case 0x3e8: /* 1 111 101 000 */
1460 case 0x3e9: /* 1 111 101 001 */
1461 case 0x3ea: /* 1 111 101 010 */
1462 case 0x3eb: /* 1 111 101 011 */
1463 case 0x3ec: /* 1 111 101 100 */
1464 case 0x3ed: /* 1 111 101 101 */
1465 case 0x3ee: /* 1 111 101 110 */
1466 case 0x3ef: /* 1 111 101 111 */
1467 case 0x3f0: /* 1 111 110 000 */
1468 case 0x3f1: /* 1 111 110 001 */
1469 case 0x3f2: /* 1 111 110 010 */
1470 case 0x3f3: /* 1 111 110 011 */
1471 case 0x3f4: /* 1 111 110 100 */
1472 case 0x3f5: /* 1 111 110 101 */
1473 case 0x3f6: /* 1 111 110 110 */
1474 case 0x3f7: /* 1 111 110 111 */
1475 util::stream_format(stream, "XOR@ (R%01d),R%01d",(op&0x38)>>3,op&0x7);
1476 break;
1477 case 0x3f8: /* 1 111 111 000 */
1478 case 0x3f9: /* 1 111 111 001 */
1479 case 0x3fa: /* 1 111 111 010 */
1480 case 0x3fb: /* 1 111 111 011 */
1481 case 0x3fc: /* 1 111 111 100 */
1482 case 0x3fd: /* 1 111 111 101 */
1483 case 0x3fe: /* 1 111 111 110 */
1484 case 0x3ff: /* 1 111 111 111 */
1485 size += 1;
1486 ea = oprom16[1];
1487 util::stream_format(stream, "XORI #%04X,R%01d",ea,op&0x7);
1488 break;
1489 default:
1490 util::stream_format(stream, "????");
1491 }
1492
1493 return size;
1494 }
1495