Rizin
unix-like reverse engineering framework and cli tools
m680x.h
Go to the documentation of this file.
1 #ifndef CAPSTONE_M680X_H
2 #define CAPSTONE_M680X_H
3 
4 /* Capstone Disassembly Engine */
5 /* M680X Backend by Wolfgang Schwotzer <wolfgang.schwotzer@gmx.net> 2017 */
6 
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 
11 #include "platform.h"
12 
13 #ifdef _MSC_VER
14 #pragma warning(disable:4201)
15 #endif
16 
17 #define M680X_OPERAND_COUNT 9
18 
20 typedef enum m680x_reg {
22 
28 
31 
35 
43 
45 
47 
50 
53 
55 typedef enum m680x_op_type {
66 
67 // Supported bit values for mem.idx.offset_bits
68 #define M680X_OFFSET_NONE 0
69 #define M680X_OFFSET_BITS_5 5
70 #define M680X_OFFSET_BITS_8 8
71 #define M680X_OFFSET_BITS_9 9
72 #define M680X_OFFSET_BITS_16 16
73 
74 // Supported bit flags for mem.idx.flags
75 // These flags can be combined
76 #define M680X_IDX_INDIRECT 1
77 #define M680X_IDX_NO_COMMA 2
78 #define M680X_IDX_POST_INC_DEC 4
79 
81 typedef struct m680x_op_idx {
98 
100 typedef struct m680x_op_rel {
106 
108 typedef struct m680x_op_ext {
110  bool indirect;
112 
114 typedef struct cs_m680x_op {
116  union {
124  };
131 
133 typedef enum m680x_group_type {
135  // Generic groups
136  // all jump instructions (conditional+direct+indirect jumps)
138  // all call instructions
140  // all return instructions
142  // all interrupt instructions (int+syscall)
144  // all interrupt return instructions
146  // all privileged instructions
148  // all relative branching instructions
150 
151  // Architecture-specific groups
152  M680X_GRP_ENDING, // <-- mark the end of the list of groups
154 
155 // M680X instruction flags:
156 
159 #define M680X_FIRST_OP_IN_MNEM 1
162 #define M680X_SECOND_OP_IN_MNEM 2
163 
165 typedef struct cs_m680x {
170 
172 typedef enum m680x_insn {
530  M680X_INS_ENDING, // <-- mark the end of the list of instructions
532 
533 #ifdef __cplusplus
534 }
535 #endif
536 
537 #endif
struct m680x_op_rel m680x_op_rel
Instruction's memory operand referring to relative addressing (Bcc/LBcc)
struct m680x_op_idx m680x_op_idx
Instruction's operand referring to indexed addressing.
struct m680x_op_ext m680x_op_ext
Instruction's operand referring to extended addressing.
struct cs_m680x cs_m680x
The M680X instruction and it's operands.
m680x_insn
M680X instruction IDs.
Definition: m680x.h:172
@ M680X_INS_WAVR
Definition: m680x.h:527
@ M680X_INS_ABX
Definition: m680x.h:175
@ M680X_INS_BHCS
Definition: m680x.h:218
@ M680X_INS_ETBL
Definition: m680x.h:325
@ M680X_INS_PULB
M6800/1/2/3.
Definition: m680x.h:431
@ M680X_INS_ADD
Definition: m680x.h:182
@ M680X_INS_TSTX
Definition: m680x.h:518
@ M680X_INS_BMC
Definition: m680x.h:233
@ M680X_INS_SUBE
Definition: m680x.h:491
@ M680X_INS_ABA
M6800/1/2/3.
Definition: m680x.h:174
@ M680X_INS_CMPA
Definition: m680x.h:265
@ M680X_INS_ADCR
Definition: m680x.h:181
@ M680X_INS_EMUL
Definition: m680x.h:318
@ M680X_INS_BRA
Definition: m680x.h:241
@ M680X_INS_AIM
Definition: m680x.h:190
@ M680X_INS_SWI
Definition: m680x.h:495
@ M680X_INS_TSTF
Definition: m680x.h:516
@ M680X_INS_LBNE
Definition: m680x.h:356
@ M680X_INS_LSLB
Definition: m680x.h:385
@ M680X_INS_EDIV
Definition: m680x.h:310
@ M680X_INS_EIM
Definition: m680x.h:312
@ M680X_INS_LDB
Definition: m680x.h:366
@ M680X_INS_TFM
Definition: m680x.h:507
@ M680X_INS_BIH
Definition: m680x.h:222
@ M680X_INS_DECA
Definition: m680x.h:297
@ M680X_INS_ASR
Definition: m680x.h:203
@ M680X_INS_CALL
Definition: m680x.h:247
@ M680X_INS_PSHSW
Definition: m680x.h:425
@ M680X_INS_BRSET
Definition: m680x.h:240
@ M680X_INS_LBLE
Definition: m680x.h:352
@ M680X_INS_LBCC
or LBHS
Definition: m680x.h:346
@ M680X_INS_NEGA
Definition: m680x.h:405
@ M680X_INS_ORD
Definition: m680x.h:417
@ M680X_INS_DBNZA
Definition: m680x.h:294
@ M680X_INS_BIAND
Definition: m680x.h:220
@ M680X_INS_ANDA
Definition: m680x.h:194
@ M680X_INS_RORW
Definition: m680x.h:453
@ M680X_INS_CMPX
Definition: m680x.h:274
@ M680X_INS_BITD
Definition: m680x.h:228
@ M680X_INS_BIEOR
Definition: m680x.h:221
@ M680X_INS_RTC
Definition: m680x.h:456
@ M680X_INS_CMP
Definition: m680x.h:264
@ M680X_INS_EORA
Definition: m680x.h:321
@ M680X_INS_CLRD
Definition: m680x.h:257
@ M680X_INS_AND
Definition: m680x.h:193
@ M680X_INS_INC
Definition: m680x.h:333
@ M680X_INS_DECE
Definition: m680x.h:300
@ M680X_INS_BCS
or BLO
Definition: m680x.h:211
@ M680X_INS_CBEQX
Definition: m680x.h:251
@ M680X_INS_ROLD
Definition: m680x.h:446
@ M680X_INS_BLT
Definition: m680x.h:232
@ M680X_INS_MOVW
Definition: m680x.h:401
@ M680X_INS_ROLA
Definition: m680x.h:444
@ M680X_INS_SYNC
Definition: m680x.h:498
@ M680X_INS_CLRW
Definition: m680x.h:261
@ M680X_INS_PSHB
M6800/1/2/3.
Definition: m680x.h:420
@ M680X_INS_FDIV
Definition: m680x.h:327
@ M680X_INS_ADCB
Definition: m680x.h:179
@ M680X_INS_IDIV
Definition: m680x.h:330
@ M680X_INS_COMX
Definition: m680x.h:283
@ M680X_INS_BMS
Definition: m680x.h:235
@ M680X_INS_ORAB
M6800/1/2/3.
Definition: m680x.h:414
@ M680X_INS_BHI
Definition: m680x.h:219
@ M680X_INS_ADDF
Definition: m680x.h:187
@ M680X_INS_BEOR
Definition: m680x.h:212
@ M680X_INS_MINA
Definition: m680x.h:397
@ M680X_INS_BNE
Definition: m680x.h:236
@ M680X_INS_BIOR
Definition: m680x.h:224
@ M680X_INS_DBNZ
Definition: m680x.h:293
@ M680X_INS_TSTA
Definition: m680x.h:512
@ M680X_INS_BSET
Definition: m680x.h:243
@ M680X_INS_BGT
Definition: m680x.h:216
@ M680X_INS_SEXW
Definition: m680x.h:469
@ M680X_INS_NEG
Definition: m680x.h:404
@ M680X_INS_PSHUW
Definition: m680x.h:427
@ M680X_INS_STS
Definition: m680x.h:482
@ M680X_INS_CBA
M6800/1/2/3.
Definition: m680x.h:248
@ M680X_INS_LEAU
Definition: m680x.h:380
@ M680X_INS_STB
Definition: m680x.h:474
@ M680X_INS_COMD
Definition: m680x.h:279
@ M680X_INS_WAI
M6800/1/2/3.
Definition: m680x.h:524
@ M680X_INS_LDAB
M6800/1/2/3.
Definition: m680x.h:365
@ M680X_INS_CLRH
Definition: m680x.h:260
@ M680X_INS_CMPW
Definition: m680x.h:273
@ M680X_INS_TBA
M6800/1/2/3.
Definition: m680x.h:502
@ M680X_INS_MEM
Definition: m680x.h:396
@ M680X_INS_EMINM
Definition: m680x.h:317
@ M680X_INS_PSHX
M6800/1/2/3.
Definition: m680x.h:428
@ M680X_INS_TPA
M6800/1/2/3.
Definition: m680x.h:510
@ M680X_INS_SUBB
Definition: m680x.h:489
@ M680X_INS_LBLT
Definition: m680x.h:354
@ M680X_INS_LBRA
Definition: m680x.h:358
@ M680X_INS_CLRE
Definition: m680x.h:258
@ M680X_INS_ORR
Definition: m680x.h:418
@ M680X_INS_SUBR
Definition: m680x.h:493
@ M680X_INS_BIT
Definition: m680x.h:225
@ M680X_INS_LDX
Definition: m680x.h:377
@ M680X_INS_TSY
Definition: m680x.h:520
@ M680X_INS_ASLB
Definition: m680x.h:201
@ M680X_INS_STF
Definition: m680x.h:478
@ M680X_INS_CPS
Definition: m680x.h:286
@ M680X_INS_RSP
Definition: m680x.h:455
@ M680X_INS_CWAI
Definition: m680x.h:289
@ M680X_INS_DIV
Definition: m680x.h:307
@ M680X_INS_CLI
M6800/1/2/3.
Definition: m680x.h:253
@ M680X_INS_CMPS
Definition: m680x.h:271
@ M680X_INS_BLS
Definition: m680x.h:231
@ M680X_INS_IDIVS
Definition: m680x.h:331
@ M680X_INS_LBCS
or LBLO
Definition: m680x.h:347
@ M680X_INS_ILLGL
Definition: m680x.h:332
@ M680X_INS_LBMI
Definition: m680x.h:355
@ M680X_INS_LDMD
Definition: m680x.h:372
@ M680X_INS_BGND
Definition: m680x.h:215
@ M680X_INS_LSRA
Definition: m680x.h:389
@ M680X_INS_ROLW
Definition: m680x.h:447
@ M680X_INS_MOVB
Definition: m680x.h:400
@ M680X_INS_CMPF
Definition: m680x.h:269
@ M680X_INS_CLR
Definition: m680x.h:254
@ M680X_INS_XGDX
HD6301.
Definition: m680x.h:528
@ M680X_INS_SEC
Definition: m680x.h:465
@ M680X_INS_PULA
M6800/1/2/3.
Definition: m680x.h:430
@ M680X_INS_DAA
Definition: m680x.h:290
@ M680X_INS_INVLD
Definition: m680x.h:173
@ M680X_INS_BAND
Definition: m680x.h:208
@ M680X_INS_LSLD
Definition: m680x.h:386
@ M680X_INS_STAB
M6800/1/2/3.
Definition: m680x.h:473
@ M680X_INS_SBCR
Definition: m680x.h:464
@ M680X_INS_WAIT
Definition: m680x.h:525
@ M680X_INS_INCF
Definition: m680x.h:338
@ M680X_INS_BMI
Definition: m680x.h:234
@ M680X_INS_BHCC
Definition: m680x.h:217
@ M680X_INS_BEQ
Definition: m680x.h:213
@ M680X_INS_ADDR
Definition: m680x.h:188
@ M680X_INS_TYS
Definition: m680x.h:523
@ M680X_INS_CPHX
Definition: m680x.h:285
@ M680X_INS_OIM
Definition: m680x.h:411
@ M680X_INS_SLP
Definition: m680x.h:470
@ M680X_INS_ORCC
Definition: m680x.h:416
@ M680X_INS_CMPU
Definition: m680x.h:272
@ M680X_INS_JMP
Definition: m680x.h:344
@ M680X_INS_SUBD
Definition: m680x.h:490
@ M680X_INS_COM
Definition: m680x.h:276
@ M680X_INS_SEV
Definition: m680x.h:467
@ M680X_INS_CPY
Definition: m680x.h:288
@ M680X_INS_PULY
Definition: m680x.h:440
@ M680X_INS_CPD
Definition: m680x.h:284
@ M680X_INS_MULD
Definition: m680x.h:403
@ M680X_INS_DECW
Definition: m680x.h:302
@ M680X_INS_INCX
Definition: m680x.h:340
@ M680X_INS_STE
Definition: m680x.h:477
@ M680X_INS_TXS
M6800/1/2/3.
Definition: m680x.h:522
@ M680X_INS_EMAXD
Definition: m680x.h:314
@ M680X_INS_DES
M6800/1/2/3.
Definition: m680x.h:304
@ M680X_INS_ROR
Definition: m680x.h:449
@ M680X_INS_ADCA
Definition: m680x.h:178
@ M680X_INS_BRN
Definition: m680x.h:242
@ M680X_INS_LDQ
Definition: m680x.h:373
@ M680X_INS_BPL
Definition: m680x.h:238
@ M680X_INS_TAB
M6800/1/2/3.
Definition: m680x.h:499
@ M680X_INS_INCW
Definition: m680x.h:339
@ M680X_INS_LDY
Definition: m680x.h:378
@ M680X_INS_SUBW
Definition: m680x.h:494
@ M680X_INS_TSTB
Definition: m680x.h:513
@ M680X_INS_ORAA
M6800/1/2/3.
Definition: m680x.h:413
@ M680X_INS_PSHC
Definition: m680x.h:421
@ M680X_INS_LSR
Definition: m680x.h:388
@ M680X_INS_LDBT
Definition: m680x.h:367
@ M680X_INS_COME
Definition: m680x.h:280
@ M680X_INS_TAP
M6800/1/2/3.
Definition: m680x.h:500
@ M680X_INS_BRCLR
Definition: m680x.h:239
@ M680X_INS_CMPD
Definition: m680x.h:267
@ M680X_INS_EDIVS
Definition: m680x.h:311
@ M680X_INS_IBNE
Definition: m680x.h:329
@ M680X_INS_WAV
Definition: m680x.h:526
@ M680X_INS_ASRD
Definition: m680x.h:206
@ M680X_INS_STHX
Definition: m680x.h:480
@ M680X_INS_IBEQ
Definition: m680x.h:328
@ M680X_INS_INCA
Definition: m680x.h:334
@ M680X_INS_TFR
Definition: m680x.h:508
@ M680X_INS_TST
Definition: m680x.h:511
@ M680X_INS_BVC
Definition: m680x.h:245
@ M680X_INS_SUB
Definition: m680x.h:487
@ M680X_INS_ANDD
Definition: m680x.h:197
@ M680X_INS_CMPR
Definition: m680x.h:270
@ M680X_INS_CLRF
Definition: m680x.h:259
@ M680X_INS_LBSR
Definition: m680x.h:360
@ M680X_INS_LDU
Definition: m680x.h:375
@ M680X_INS_BITMD
Definition: m680x.h:229
@ M680X_INS_DBEQ
Definition: m680x.h:291
@ M680X_INS_ADDE
Definition: m680x.h:186
@ M680X_INS_DIVD
Definition: m680x.h:308
@ M680X_INS_LSLA
Definition: m680x.h:384
@ M680X_INS_NSA
Definition: m680x.h:410
@ M680X_INS_LBVS
Definition: m680x.h:362
@ M680X_INS_LSRX
Definition: m680x.h:393
@ M680X_INS_SBCD
Definition: m680x.h:463
@ M680X_INS_TBL
Definition: m680x.h:504
@ M680X_INS_REVW
Definition: m680x.h:442
@ M680X_INS_EMIND
Definition: m680x.h:316
@ M680X_INS_LSRW
Definition: m680x.h:392
@ M680X_INS_PSHY
Definition: m680x.h:429
@ M680X_INS_INS
M6800/1/2/3.
Definition: m680x.h:341
@ M680X_INS_TSTD
Definition: m680x.h:514
@ M680X_INS_ASLA
Definition: m680x.h:200
@ M680X_INS_EORD
Definition: m680x.h:323
@ M680X_INS_MAXA
Definition: m680x.h:394
@ M680X_INS_TEST
Definition: m680x.h:506
@ M680X_INS_ROLX
Definition: m680x.h:448
@ M680X_INS_PSHU
Definition: m680x.h:426
@ M680X_INS_SEX
Definition: m680x.h:468
@ M680X_INS_ADCD
Definition: m680x.h:180
@ M680X_INS_ASRB
Definition: m680x.h:205
@ M680X_INS_SBCA
Definition: m680x.h:461
@ M680X_INS_SBCB
Definition: m680x.h:462
@ M680X_INS_EOR
Definition: m680x.h:320
@ M680X_INS_NEGD
Definition: m680x.h:407
@ M680X_INS_CLRA
Definition: m680x.h:255
@ M680X_INS_ROLB
Definition: m680x.h:445
@ M680X_INS_DECD
Definition: m680x.h:299
@ M680X_INS_CMPY
Definition: m680x.h:275
@ M680X_INS_TBEQ
Definition: m680x.h:503
@ M680X_INS_BCLR
Definition: m680x.h:210
@ M680X_INS_TSTE
Definition: m680x.h:515
@ M680X_INS_DBNZX
Definition: m680x.h:295
@ M680X_INS_CLRB
Definition: m680x.h:256
@ M680X_INS_BLE
Definition: m680x.h:230
@ M680X_INS_LDD
Definition: m680x.h:368
@ M680X_INS_CLRX
Definition: m680x.h:262
@ M680X_INS_PSHD
Definition: m680x.h:422
@ M680X_INS_LBPL
Definition: m680x.h:357
@ M680X_INS_LDF
Definition: m680x.h:370
@ M680X_INS_PSHH
Definition: m680x.h:423
@ M680X_INS_LBGT
Definition: m680x.h:350
@ M680X_INS_STU
Definition: m680x.h:483
@ M680X_INS_INCB
Definition: m680x.h:335
@ M680X_INS_ABY
Definition: m680x.h:176
@ M680X_INS_ORB
Definition: m680x.h:415
@ M680X_INS_TSTW
Definition: m680x.h:517
@ M680X_INS_DBNE
Definition: m680x.h:292
@ M680X_INS_LBGE
Definition: m680x.h:349
@ M680X_INS_LDS
Definition: m680x.h:374
@ M680X_INS_SWI3
Definition: m680x.h:497
@ M680X_INS_PULD
Definition: m680x.h:433
@ M680X_INS_BIL
Definition: m680x.h:223
@ M680X_INS_RORB
Definition: m680x.h:451
@ M680X_INS_RORX
Definition: m680x.h:454
@ M680X_INS_INCD
Definition: m680x.h:336
@ M680X_INS_TSX
M6800/1/2/3.
Definition: m680x.h:519
@ M680X_INS_COMW
Definition: m680x.h:282
@ M680X_INS_NEGB
Definition: m680x.h:406
@ M680X_INS_BCC
or BHS
Definition: m680x.h:209
@ M680X_INS_EMAXM
Definition: m680x.h:315
@ M680X_INS_LEAS
Definition: m680x.h:379
@ M680X_INS_PULS
Definition: m680x.h:435
@ M680X_INS_ADC
Definition: m680x.h:177
@ M680X_INS_AIX
Definition: m680x.h:192
@ M680X_INS_XGDY
Definition: m680x.h:529
@ M680X_INS_EORR
Definition: m680x.h:324
@ M680X_INS_TAX
Definition: m680x.h:501
@ M680X_INS_LBHI
Definition: m680x.h:351
@ M680X_INS_STQ
Definition: m680x.h:481
@ M680X_INS_TBNE
Definition: m680x.h:505
@ M680X_INS_TXA
Definition: m680x.h:521
@ M680X_INS_EMULS
Definition: m680x.h:319
@ M680X_INS_STW
Definition: m680x.h:484
@ M680X_INS_EORB
Definition: m680x.h:322
@ M680X_INS_EXG
Definition: m680x.h:326
@ M680X_INS_RTS
Definition: m680x.h:458
@ M680X_INS_ROL
Definition: m680x.h:443
@ M680X_INS_LDE
Definition: m680x.h:369
@ M680X_INS_CBEQ
Definition: m680x.h:249
@ M680X_INS_LBLS
Definition: m680x.h:353
@ M680X_INS_DEY
Definition: m680x.h:306
@ M680X_INS_LDW
Definition: m680x.h:376
@ M680X_INS_RORA
Definition: m680x.h:450
@ M680X_INS_SUBF
Definition: m680x.h:492
@ M680X_INS_PULUW
Definition: m680x.h:438
@ M680X_INS_CLC
M6800/1/2/3.
Definition: m680x.h:252
@ M680X_INS_NOP
Definition: m680x.h:409
@ M680X_INS_ANDR
Definition: m680x.h:198
@ M680X_INS_SUBA
Definition: m680x.h:488
@ M680X_INS_ENDING
Definition: m680x.h:530
@ M680X_INS_STAA
M6800/1/2/3.
Definition: m680x.h:472
@ M680X_INS_LBRN
Definition: m680x.h:359
@ M680X_INS_MUL
Definition: m680x.h:402
@ M680X_INS_ASL
Definition: m680x.h:199
@ M680X_INS_DEC
Definition: m680x.h:296
@ M680X_INS_COMB
Definition: m680x.h:278
@ M680X_INS_REV
Definition: m680x.h:441
@ M680X_INS_ADDD
Definition: m680x.h:185
@ M680X_INS_DECX
Definition: m680x.h:303
@ M680X_INS_PULU
Definition: m680x.h:437
@ M680X_INS_ADDB
Definition: m680x.h:184
@ M680X_INS_PSHA
M6800/1/2/3.
Definition: m680x.h:419
@ M680X_INS_DECB
Definition: m680x.h:298
@ M680X_INS_ANDB
Definition: m680x.h:195
@ M680X_INS_STA
Definition: m680x.h:471
@ M680X_INS_STBT
Definition: m680x.h:475
@ M680X_INS_CMPE
Definition: m680x.h:268
@ M680X_INS_CBEQA
Definition: m680x.h:250
@ M680X_INS_STD
Definition: m680x.h:476
@ M680X_INS_INCE
Definition: m680x.h:337
@ M680X_INS_ASLD
or LSLD
Definition: m680x.h:202
@ M680X_INS_ADDA
Definition: m680x.h:183
@ M680X_INS_SBA
M6800/1/2/3.
Definition: m680x.h:459
@ M680X_INS_INY
Definition: m680x.h:343
@ M680X_INS_SBC
Definition: m680x.h:460
@ M680X_INS_PULH
Definition: m680x.h:434
@ M680X_INS_PSHS
Definition: m680x.h:424
@ M680X_INS_LSRB
Definition: m680x.h:390
@ M680X_INS_RORD
Definition: m680x.h:452
@ M680X_INS_ADDW
Definition: m680x.h:189
@ M680X_INS_DECF
Definition: m680x.h:301
@ M680X_INS_LDA
Definition: m680x.h:363
@ M680X_INS_LBEQ
Definition: m680x.h:348
@ M680X_INS_STY
Definition: m680x.h:486
@ M680X_INS_MOV
Definition: m680x.h:399
@ M680X_INS_LDAA
M6800/1/2/3.
Definition: m680x.h:364
@ M680X_INS_LSLX
Definition: m680x.h:387
@ M680X_INS_LDHX
Definition: m680x.h:371
@ M680X_INS_COMA
Definition: m680x.h:277
@ M680X_INS_PULC
Definition: m680x.h:432
@ M680X_INS_LEAX
Definition: m680x.h:381
@ M680X_INS_ANDCC
Definition: m680x.h:196
@ M680X_INS_CMPB
Definition: m680x.h:266
@ M680X_INS_BSR
Definition: m680x.h:244
@ M680X_INS_LSL
Definition: m680x.h:383
@ M680X_INS_ORA
Definition: m680x.h:412
@ M680X_INS_MAXM
Definition: m680x.h:395
@ M680X_INS_INX
M6800/1/2/3.
Definition: m680x.h:342
@ M680X_INS_LSRD
or ASRD
Definition: m680x.h:391
@ M680X_INS_BOR
Definition: m680x.h:237
@ M680X_INS_MINM
Definition: m680x.h:398
@ M680X_INS_NEGX
Definition: m680x.h:408
@ M680X_INS_BVS
Definition: m680x.h:246
@ M680X_INS_CLV
M6800/1/2/3.
Definition: m680x.h:263
@ M680X_INS_STX
Definition: m680x.h:485
@ M680X_INS_BITB
Definition: m680x.h:227
@ M680X_INS_CPX
M6800/1/2/3.
Definition: m680x.h:287
@ M680X_INS_LBVC
Definition: m680x.h:361
@ M680X_INS_SWI2
Definition: m680x.h:496
@ M680X_INS_PULSW
Definition: m680x.h:436
@ M680X_INS_AIS
Definition: m680x.h:191
@ M680X_INS_LEAY
Definition: m680x.h:382
@ M680X_INS_BGE
Definition: m680x.h:214
@ M680X_INS_DIVQ
Definition: m680x.h:309
@ M680X_INS_BITA
Definition: m680x.h:226
@ M680X_INS_RTI
Definition: m680x.h:457
@ M680X_INS_DEX
M6800/1/2/3.
Definition: m680x.h:305
@ M680X_INS_STOP
Definition: m680x.h:479
@ M680X_INS_SEI
Definition: m680x.h:466
@ M680X_INS_ASRX
Definition: m680x.h:207
@ M680X_INS_EMACS
Definition: m680x.h:313
@ M680X_INS_TIM
Definition: m680x.h:509
@ M680X_INS_JSR
Definition: m680x.h:345
@ M680X_INS_PULX
M6800/1/2/3.
Definition: m680x.h:439
@ M680X_INS_ASRA
Definition: m680x.h:204
@ M680X_INS_COMF
Definition: m680x.h:281
struct cs_m680x_op cs_m680x_op
Instruction operand.
m680x_reg
M680X registers and special registers.
Definition: m680x.h:20
@ M680X_REG_V
M6309.
Definition: m680x.h:42
@ M680X_REG_W
HD6309.
Definition: m680x.h:30
@ M680X_REG_DP
M6809/M6309.
Definition: m680x.h:33
@ M680X_REG_B
M6800/1/2/3/9, HD6301/9.
Definition: m680x.h:24
@ M680X_REG_ENDING
<– mark the end of the list of registers
Definition: m680x.h:51
@ M680X_REG_MD
M6309.
Definition: m680x.h:34
@ M680X_REG_F
HD6309.
Definition: m680x.h:26
@ M680X_REG_H
M6808.
Definition: m680x.h:37
@ M680X_REG_CC
M6800/1/2/3/9, M6301/9.
Definition: m680x.h:32
@ M680X_REG_X
M6800/1/2/3/9, M6301/9.
Definition: m680x.h:38
@ M680X_REG_E
HD6309.
Definition: m680x.h:25
@ M680X_REG_Q
M6309.
Definition: m680x.h:44
@ M680X_REG_TMP2
CPU12.
Definition: m680x.h:48
@ M680X_REG_INVALID
Definition: m680x.h:21
@ M680X_REG_HX
M6808.
Definition: m680x.h:36
@ M680X_REG_S
M6809/M6309.
Definition: m680x.h:40
@ M680X_REG_A
M6800/1/2/3/9, HD6301/9.
Definition: m680x.h:23
@ M680X_REG_PC
M6800/1/2/3/9, M6301/9.
Definition: m680x.h:46
@ M680X_REG_TMP3
CPU12.
Definition: m680x.h:49
@ M680X_REG_Y
M6809/M6309.
Definition: m680x.h:39
@ M680X_REG_D
M6801/3/9, HD6301/9.
Definition: m680x.h:29
@ M680X_REG_0
HD6309.
Definition: m680x.h:27
@ M680X_REG_U
M6809/M6309.
Definition: m680x.h:41
m680x_op_type
Operand type for instruction's operands.
Definition: m680x.h:55
@ M680X_OP_EXTENDED
= Extended addressing operand.
Definition: m680x.h:60
@ M680X_OP_INDEXED
= Indexed addressing operand.
Definition: m680x.h:59
@ M680X_OP_CONSTANT
Used e.g. for a bit index or page number.
Definition: m680x.h:63
@ M680X_OP_IMMEDIATE
= Immediate operand.
Definition: m680x.h:58
@ M680X_OP_INVALID
= CS_OP_INVALID (Uninitialized).
Definition: m680x.h:56
@ M680X_OP_REGISTER
= Register operand.
Definition: m680x.h:57
@ M680X_OP_RELATIVE
= Relative addressing operand.
Definition: m680x.h:62
@ M680X_OP_DIRECT
= Direct addressing operand.
Definition: m680x.h:61
#define M680X_OPERAND_COUNT
Definition: m680x.h:17
m680x_group_type
Group of M680X instructions.
Definition: m680x.h:133
@ M680X_GRP_PRIV
= CS_GRP_PRIVILEDGE; not used
Definition: m680x.h:147
@ M680X_GRP_BRAREL
= CS_GRP_BRANCH_RELATIVE
Definition: m680x.h:149
@ M680X_GRP_ENDING
Definition: m680x.h:152
@ M680X_GRP_IRET
= CS_GRP_IRET
Definition: m680x.h:145
@ M680X_GRP_RET
= CS_GRP_RET
Definition: m680x.h:141
@ M680X_GRP_INVALID
Definition: m680x.h:134
@ M680X_GRP_INT
= CS_GRP_INT
Definition: m680x.h:143
@ M680X_GRP_JUMP
= CS_GRP_INVALID
Definition: m680x.h:137
@ M680X_GRP_CALL
= CS_GRP_CALL
Definition: m680x.h:139
unsigned short uint16_t
Definition: sftypes.h:30
int int32_t
Definition: sftypes.h:33
short int16_t
Definition: sftypes.h:34
unsigned char uint8_t
Definition: sftypes.h:31
char int8_t
Definition: sftypes.h:35
Instruction operand.
Definition: m680x.h:114
m680x_op_idx idx
Indexed addressing operand.
Definition: m680x.h:119
uint8_t const_val
constant value (bit index, page nr.)
Definition: m680x.h:123
m680x_op_type type
Definition: m680x.h:115
m680x_op_rel rel
Relative address. operand (Bcc/LBcc)
Definition: m680x.h:120
m680x_reg reg
register value for REG operand
Definition: m680x.h:118
m680x_op_ext ext
Extended address.
Definition: m680x.h:121
int32_t imm
immediate value for IMM operand
Definition: m680x.h:117
uint8_t size
Definition: m680x.h:125
uint8_t direct_addr
</ Direct address (lower 8-bit)
Definition: m680x.h:122
uint8_t access
Definition: m680x.h:129
The M680X instruction and it's operands.
Definition: m680x.h:165
uint8_t flags
See: M680X instruction flags.
Definition: m680x.h:166
uint8_t op_count
number of operands for the instruction or 0
Definition: m680x.h:167
Instruction's operand referring to extended addressing.
Definition: m680x.h:108
uint16_t address
The absolute address.
Definition: m680x.h:109
bool indirect
true if extended indirect addressing
Definition: m680x.h:110
Instruction's operand referring to indexed addressing.
Definition: m680x.h:81
m680x_reg offset_reg
irrelevant)
Definition: m680x.h:84
int8_t inc_dec
Definition: m680x.h:90
m680x_reg base_reg
irrelevant)
Definition: m680x.h:82
int16_t offset
5-,8- or 16-bit offset. See also offset_bits.
Definition: m680x.h:86
uint8_t flags
8-bit flags (see above)
Definition: m680x.h:96
uint8_t offset_bits
offset width in bits for indexed addressing
Definition: m680x.h:89
uint16_t offset_addr
calculated as offset + PC
Definition: m680x.h:87
Instruction's memory operand referring to relative addressing (Bcc/LBcc)
Definition: m680x.h:100
int16_t offset
the offset/displacement value
Definition: m680x.h:104
uint16_t address
Definition: m680x.h:101