Annotation of generator/cpu68k/def68k.def, revision 1.1.1.2

1.1       root        1: ; instruction
                      2: ; -----------
                      3: ; 0 - bit 0
                      4: ; 1 - bit 1
                      5: ; i - immediate data
                      6: ; n - register
                      7: ; N - register II
                      8: ; e - EA mode
                      9: ; E - EA reg
                     10: ; f - EA mode II
                     11: ; F - EA reg II
                     12: ; z - size
                     13: ; x - not important
                     14: 
                     15: ; flags
                     16: ; -----
                     17: ; two flags, the first is whether the instruction is a
                     18: ; privileged one:
                     19: ; 0 - normal
                     20: ; 1 - only when in supervisor mode
                     21: ; the second is whether the instruction ends a block:
                     22: ; 0 - does not affect PC
                     23: ; 1 - affects PC
                     24: 
                     25: ; used/set flags
                     26: ; --------------
                     27: ; used flags - flags which the instruction may look at
                     28: ; set flags - flags which the instruction may set
                     29: ; 0 - clear
                     30: ; 1 - set
                     31: ; all else means that flag is used or set
                     32: 
                     33: ; assembler syntax
                     34: ; ----------------
                     35: ;
                     36: ; name.size source, destination
                     37: ;
                     38: ; source and destination can be one of:
                     39: ; #z             - immediate data of size specified in instruction
                     40: ; #B,#W/#L       - immediate data byte/word/long
                     41: ; #i             - immedaite data within instruction
                     42: ; #I             - immediate data within instruction, excluding 0.
                     43: ; #s             - immediate data within instruction sign extended
                     44: ; e(...)/f(...)  - effective address (see keywords below)
                     45: ; or one of below:
                     46: 
                     47: ; for dddDDD/sssSSS modes the following define what modes can be used:
                     48: ; Dreg - Data register direct (000/register)
                     49: ; Areg - Address register direct (001/register)
                     50: ; Aind - Address register indirect (010/register)
                     51: ; Ainc - Address register indirect postincrement (011/register)
                     52: ; Adec - Address register indirect predecrement (100/register)
                     53: ; Adis - Address regsiter indirect with displacement (101/register)
                     54: ; Aidx - Address register indirect with index (110/register)
                     55: ; AbsW - Absolute word (111/000)
                     56: ; AbsL - Absolute long (111/001)
                     57: ; Pdis - PC with displacement (111/010)
                     58: ; Pidx - PC with index (111/011)
                     59: ; Imm - Immediate data (111/100)
                     60: 
                     61: ; * is an alias for all possible modes (default if no qualifier)
                     62: ; PC is an alias for either Pdis or Pidx.
                     63: ; Regs is an alias for either Dreg or Areg.
                     64: ; Amod is an alias for either Ainc or Adec.
                     65: 
                     66: ; instruction          flags   used    set     name[.size][ src[,dst]]
                     67: 
                     68: 0000 0000 zz eee EEE   0 0     -----   -NZ00   OR.z       #z,e(*,-Areg,-Imm,-PC)
                     69: 0000 0000 00 111 100   0 0     XNZVC   -----   ORSR.B     #B
                     70: 0000 0000 01 111 100   1 0     XNZVC   -----   ORSR.W     #W
                     71: 
                     72: 0000 0010 zz eee EEE   0 0     -----   -NZ00   AND.z      #z,e(*,-Areg,-Imm,-PC)
                     73: 0000 0010 00 111 100   0 0     XNZVC   -----   ANDSR.B    #B
                     74: 0000 0010 01 111 100   1 0     XNZVC   -----   ANDSR.W    #W
                     75: 
                     76: 0000 0100 zz eee EEE   0 0     -----   XNZVC   SUB.z      #z,e(*,-Areg,-Imm,-PC)
                     77: 0000 0110 zz eee EEE   0 0     -----   XNZVC   ADD.z      #z,e(*,-Areg,-Imm,-PC)
                     78: 
                     79: 0000 1000 00 eee EEE   0 0     -----   --Z--   BTST.B     #B,e(*,-Regs,-Imm)
                     80: 0000 1000 01 eee EEE   0 0     -----   --Z--   BCHG.B     #B,e(*,-Regs,-Imm,-PC)
                     81: 0000 1000 10 eee EEE   0 0     -----   --Z--   BCLR.B     #B,e(*,-Regs,-Imm,-PC)
                     82: 0000 1000 11 eee EEE   0 0     -----   --Z--   BSET.B     #B,e(*,-Regs,-Imm,-PC)
                     83: 0000 1000 00 eee EEE   0 0     -----   --Z--   BTST.L     #B,e(Dreg)
                     84: 0000 1000 01 eee EEE   0 0     -----   --Z--   BCHG.L     #B,e(Dreg)
                     85: 0000 1000 10 eee EEE   0 0     -----   --Z--   BCLR.L     #B,e(Dreg)
                     86: 0000 1000 11 eee EEE   0 0     -----   --Z--   BSET.L     #B,e(Dreg)
                     87: 
                     88: 0000 1010 00 111 100   0 0     XNZVC   -----   EORSR.B    #B
                     89: 0000 1010 01 111 100   1 0     XNZVC   -----   EORSR.W    #W
                     90: 0000 1010 zz eee EEE   0 0     -----   -NZ00   EOR.z      #z,e(*,-Areg,-Imm,-PC)
                     91: 0000 1100 zz eee EEE   0 0     -----   -NZVC   CMP.z      #z,e(*,-Areg,-Imm,-PC)
                     92: 
                     93: 0000 nnn1 00 001 NNN   0 0     -----   -----   MOVEPMR.W  N(Adis),n(Dreg)
                     94: 0000 nnn1 01 001 NNN   0 0     -----   -----   MOVEPMR.L  N(Adis),n(Dreg)
                     95: 0000 nnn1 10 001 NNN   0 0     -----   -----   MOVEPRM.W  n(Dreg),N(Adis)
                     96: 0000 nnn1 11 001 NNN   0 0     -----   -----   MOVEPRM.L  n(Dreg),N(Adis)
1.1.1.2 ! root       97: ; you can do BTST Dx, #nnnn (bit-pos in reg) - weirdo instruction
        !            98: 0000 nnn1 00 eee EEE   0 0     -----   --Z--   BTST.B     n(Dreg),e(*,-Regs)
1.1       root       99: 0000 nnn1 01 eee EEE   0 0     -----   --Z--   BCHG.B     n(Dreg),e(*,-Regs,-Imm,-PC)
                    100: 0000 nnn1 10 eee EEE   0 0     -----   --Z--   BCLR.B     n(Dreg),e(*,-Regs,-Imm,-PC)
                    101: 0000 nnn1 11 eee EEE   0 0     -----   --Z--   BSET.B     n(Dreg),e(*,-Regs,-Imm,-PC)
                    102: 0000 nnn1 00 eee EEE   0 0     -----   --Z--   BTST.L     n(Dreg),e(Dreg)
                    103: 0000 nnn1 01 eee EEE   0 0     -----   --Z--   BCHG.L     n(Dreg),e(Dreg)
                    104: 0000 nnn1 10 eee EEE   0 0     -----   --Z--   BCLR.L     n(Dreg),e(Dreg)
                    105: 0000 nnn1 11 eee EEE   0 0     -----   --Z--   BSET.L     n(Dreg),e(Dreg)
                    106: 
                    107: 0001 FFF fff eee EEE   0 0     -----   -NZ00   MOVE.B     e(*),f(*,-Areg,-Imm,-PC)
                    108: 0010 FFF fff eee EEE   0 0     -----   -NZ00   MOVE.L     e(*),f(*,-Areg,-Imm,-PC)
                    109: 0010 FFF fff eee EEE   0 0     -----   -----   MOVE.L     e(*),f(Areg)
                    110: 0011 FFF fff eee EEE   0 0     -----   -NZ00   MOVE.W     e(*),f(*,-Areg,-Imm,-PC)
                    111: 0011 FFF fff eee EEE   0 0     -----   -----   MOVEA.W    e(*),f(Areg)
                    112: 
                    113: 0100 0000 zz eee EEE   0 0     -----   XNZVC   NEGX.z     e(*,-Areg,-Imm,-PC)
                    114: 0100 0010 zz eee EEE   0 0     -0100   XNZVC   CLR.z      e(*,-Areg,-Imm,-PC)
                    115: 0100 0100 zz eee EEE   0 0     -----   XNZVC   NEG.z      e(*,-Areg,-Imm,-PC)
                    116: 0100 0110 zz eee EEE   0 0     -----   -NZ00   NOT.z      e(*,-Areg,-Imm,-PC)
                    117: 0100 0000 11 eee EEE   0 0     XNZVC   -----   MOVEFSR.W  e(*,-Areg,-Imm,-PC)
                    118: 0100 0100 11 eee EEE   0 0     -----   XNZVC   MOVETSR.B  e(*,-Areg)
                    119: 0100 0110 11 eee EEE   1 0     -----   XNZVC   MOVETSR.W  e(*,-Areg)
                    120: 
1.1.1.2 ! root      121: 0100 1000 00 eee EEE   0 0     X----   XNZVC   NBCD.B     e(*,-Areg,-Imm,-PC)
1.1       root      122: 0100 1000 01 eee EEE   0 0     -----   -NZ00   SWAP.L     e(Dreg)
                    123: 0100 1000 01 eee EEE   0 0     -----   -----   PEA.L      e(*,-Regs,-Imm,-Amod)
                    124: 0100 1000 10 eee EEE   0 0     -----   -NZ00   EXT.W      e(Dreg)
                    125: 0100 1000 10 eee EEE   0 0     -----   -----   MOVEMRM.W  #W,e(*,-Regs,-Ainc,-Imm,-PC)
                    126: 0100 1000 11 eee EEE   0 0     -----   -NZ00   EXT.L      e(Dreg)
                    127: 0100 1000 11 eee EEE   0 0     -----   -----   MOVEMRM.L  #W,e(*,-Regs,-Ainc,-Imm,-PC)
                    128: 0100 1010 zz eee EEE   0 0     -----   -NZ00   TST.z      e(*,-Areg,-Imm,-PC)
                    129: 0100 1010 11 eee EEE   0 0     -----   -NZ00   TAS.B      e(*,-Areg,-Imm,-PC)
                    130: 0100 1010 11 111 100   0 1     -----   -----   ILLEGAL
                    131: 
                    132: 0100 1100 10 eee EEE   0 0     -----   -----   MOVEMMR.W  #W,e(*,-Regs,-Adec,-Imm)
                    133: 0100 1100 11 eee EEE   0 0     -----   -----   MOVEMMR.L  #W,e(*,-Regs,-Adec,-Imm)
                    134: 
                    135: 0100 1110 01 00 iiii   0 1     XNZVC   -----   TRAP       #i
                    136: 0100 1110 01 01 0nnn   0 0     -----   -----   LINK.L     #W,n(Areg)
                    137: 0100 1110 01 01 1nnn   0 0     -----   -----   UNLK.L     n(Areg)
                    138: 0100 1110 01 10 0nnn   0 0     -----   -----   MOVETUSP.L n(Areg)
                    139: 0100 1110 01 10 1nnn   0 0     -----   -----   MOVEFUSP.L n(Areg)
                    140: 
                    141: 0100 1110 01 11 0000   1 1     -----   -----   RESET
                    142: 0100 1110 01 11 0001   0 0     -----   -----   NOP
                    143: 0100 1110 01 11 0010   1 1     -----   XNZVC   STOP       #W
                    144: 0100 1110 01 11 0011   1 1     -----   XNZVC   RTE
                    145: 0100 1110 01 11 0101   0 1     -----   -----   RTS
                    146: 0100 1110 01 11 0110   0 1     ---V-   -----   TRAPV
                    147: 0100 1110 01 11 0111   0 1     -----   XNZVC   RTR
                    148: 0100 1110 10 eee EEE   0 1     -----   -----   JSR.L      e(*,-Regs,-Amod,-Imm)
                    149: 0100 1110 11 eee EEE   0 1     -----   -----   JMP.L      e(*,-Regs,-Amod,-Imm)
                    150: 0100 nnn1 10 eee EEE   0 0     -----   -Nxxx   CHK.W      e(*,-Areg),n(Dreg)
                    151: 0100 nnn1 11 eee EEE   0 0     -----   -----   LEA.L      e(*,-Regs,-Amod,-Imm),n(Areg)
                    152: 
                    153: 0101 iii0 zz eee EEE   0 0     -----   XNZVC   ADD.z      #I,e(*,-Areg,-PC,-Imm)
                    154: 0101 iii0 01 eee EEE   0 0     -----   -----   ADDA.W     #I,e(Areg)
                    155: 0101 iii0 10 eee EEE   0 0     -----   -----   ADDA.L     #I,e(Areg)
                    156: 0101 iii1 zz eee EEE   0 0     -----   XNZVC   SUB.z      #I,e(*,-Areg,-PC,-Imm)
                    157: 0101 iii1 01 eee EEE   0 0     -----   -----   SUBA.L     #I,e(Areg)
                    158: 0101 iii1 10 eee EEE   0 0     -----   -----   SUBA.L     #I,e(Areg)
                    159: 
                    160: 0101 0000 zz eee EEE   0 0     -----   XNZVC   ADD.z      #8,e(*,-Areg,-PC,-Imm)
                    161: 0101 0000 01 eee EEE   0 0     -----   -----   ADDA.W     #8,e(Areg)
                    162: 0101 0000 10 eee EEE   0 0     -----   -----   ADDA.L     #8,e(Areg)
                    163: 0101 0001 zz eee EEE   0 0     -----   XNZVC   SUB.z      #8,e(*,-Areg,-PC,-Imm)
                    164: 0101 0001 01 eee EEE   0 0     -----   -----   SUBA.L     #8,e(Areg)
                    165: 0101 0001 10 eee EEE   0 0     -----   -----   SUBA.L     #8,e(Areg)
                    166: 
                    167: 0101 cccc 11 eee EEE   0 0     XNZVC   -----   Scc.B      e(*,-Areg,-PC,-Imm)
                    168: 0101 0001 11 eee EEE   0 0     XNZVC   -----   SF.B       e(*,-Areg,-PC,-Imm)
                    169: 0101 cccc 11 001 nnn   0 1     XNZVC   -----   DBcc.W     #W,n(Dreg)
                    170: 0101 0001 11 001 nnn   0 1     XNZVC   -----   DBRA.W     #W,n(Dreg)
                    171: 
                    172: 0110 cccc 0000 0000    0 1     XNZVC   -----   Bcc.W      #W
                    173: 0110 0001 0000 0000    0 1     XNZVC   -----   BSR.W      #W
                    174: 0110 cccc iiii iiii    0 1     XNZVC   -----   Bcc.B      #I
                    175: 0110 0001 iiii iiii    0 1     XNZVC   -----   BSR.B      #I
                    176: 
                    177: 0111 nnn0 iiii iiii    0 0     -----   -NZ00   MOVE.L     #s,n(Dreg)
                    178: 
                    179: 1000 nnn0 zz eee EEE   0 0     -----   -NZ00   OR.z       e(*,-Areg),n(Dreg)
                    180: 1000 nnn1 zz eee EEE   0 0     -----   -NZ00   OR.z       n(Dreg),e(*,-Regs,-PC,-Imm)
                    181: 1000 nnn0 11 eee EEE   0 0     -----   -NZ0C   DIVU.W     e(*,-Areg),n(Dreg)
                    182: 1000 nnn1 11 eee EEE   0 0     -----   -NZ0C   DIVS.W     e(*,-Areg),n(Dreg)
1.1.1.2 ! root      183: 1000 nnn1 00 000 NNN   0 0     X-Z--   XNZVC   SBCD.B     N(Dreg),n(Dreg)
        !           184: 1000 nnn1 00 001 NNN   0 0     X-Z--   XNZVC   SBCD.B     N(Adec),n(Adec)
1.1       root      185: 
                    186: 1001 nnn0 zz eee EEE   0 0     -----   XNZVC   SUB.z      e(*),n(Dreg)
                    187: 1001 nnn1 zz eee EEE   0 0     -----   XNZVC   SUB.z      n(Dreg),e(*,-Regs,-PC,-Imm)
                    188: 1001 nnn0 11 eee EEE   0 0     -----   -----   SUBA.W     e(*),n(Areg)
                    189: 1001 nnn1 11 eee EEE   0 0     -----   -----   SUBA.L     e(*),n(Areg)
                    190: 1001 nnn1 zz 000 NNN   0 0     X-Z--   XNZVC   SUBX.z     N(Dreg),n(Dreg)
                    191: 1001 nnn1 zz 001 NNN   0 0     X-Z--   XNZVC   SUBX.z     N(Adec),n(Adec)
                    192: 
                    193: 1011 nnn0 zz eee EEE   0 0     -----   -NZVC   CMP.z      e(*),n(Dreg)
                    194: 1011 nnn0 11 eee EEE   0 0     -----   -NZVC   CMPA.W     e(*),n(Areg)
                    195: 1011 nnn1 zz eee EEE   0 0     -----   -NZ00   EOR.z      n(Dreg),e(*,-Areg,-PC,-Imm)
                    196: 1011 nnn1 zz 001 NNN   0 0     -----   -NZVC   CMP.z      N(Ainc),n(Ainc)
                    197: 1011 nnn1 11 eee EEE   0 0     -----   -NZVC   CMP.L      e(*),n(Areg)
                    198: 
                    199: 1100 nnn0 zz eee EEE   0 0     -----   -NZ00   AND.z      e(*,-Areg),n(Dreg)
                    200: 1100 nnn1 zz eee EEE   0 0     -----   -NZ00   AND.z      n(Dreg),e(*,-Regs,-PC,-Imm)
                    201: 1100 nnn0 11 eee EEE   0 0     -----   -NZ00   MULU.W     e(*,-Areg),n(Dreg)
                    202: 1100 nnn1 11 eee EEE   0 0     -----   -NZ00   MULS.W     e(*,-Areg),n(Dreg)
1.1.1.2 ! root      203: 1100 nnn1 00 000 NNN   0 0     X-Z--   XNZVC   ABCD.B     N(Dreg),n(Dreg)
        !           204: 1100 nnn1 00 001 NNN   0 0     X-Z--   XNZVC   ABCD.B     N(Adec),n(Adec)
1.1       root      205: 1100 nnn1 01 000 NNN   0 0     -----   -----   EXG.L      N(Dreg),n(Dreg)
                    206: 1100 nnn1 01 001 NNN   0 0     -----   -----   EXG.L      N(Areg),n(Areg)
                    207: 1100 nnn1 10 001 NNN   0 0     -----   -----   EXG.L      n(Dreg),N(Areg)
                    208: 
                    209: 1101 nnn0 zz eee EEE   0 0     -----   XNZVC   ADD.z      e(*),n(Dreg)
                    210: 1101 nnn1 zz eee EEE   0 0     -----   XNZVC   ADD.z      n(Dreg),e(*,-Regs,-PC,-Imm)
                    211: 1101 nnn0 11 eee EEE   0 0     -----   -----   ADDA.W     e(*),n(Areg)
                    212: 1101 nnn1 11 eee EEE   0 0     -----   -----   ADDA.L     e(*),n(Areg)
                    213: 1101 nnn1 zz 000 NNN   0 0     X-Z--   XNZVC   ADDX.z     N(Dreg),n(Dreg)
                    214: 1101 nnn1 zz 001 NNN   0 0     X-Z--   XNZVC   ADDX.z     N(Adec),n(Adec)
                    215: 
                    216: 1110 iii0 zz 0 00 nnn  0 0     -----   XNZ0C   ASR.z      #I,n(Dreg)
                    217: 1110 iii0 zz 0 01 nnn  0 0     -----   XNZ0C   LSR.z      #I,n(Dreg)
                    218: 1110 iii0 zz 0 10 nnn  0 0     X----   XNZ0C   ROXR.z     #I,n(Dreg)
                    219: 1110 iii0 zz 0 11 nnn  0 0     -----   -NZ0C   ROR.z      #I,n(Dreg)
                    220: 1110 0000 zz 0 00 nnn  0 0     -----   XNZ0C   ASR.z      #8,n(Dreg)
                    221: 1110 0000 zz 0 01 nnn  0 0     -----   XNZ0C   LSR.z      #8,n(Dreg)
                    222: 1110 0000 zz 0 10 nnn  0 0     X----   XNZ0C   ROXR.z     #8,n(Dreg)
                    223: 1110 0000 zz 0 11 nnn  0 0     -----   -NZ0C   ROR.z      #8,n(Dreg)
                    224: 1110 NNN0 zz 1 00 nnn  0 0     -----   XNZVC   ASR.z      N(Dreg),n(Dreg)
                    225: 1110 NNN0 zz 1 01 nnn  0 0     -----   XNZ0C   LSR.z      N(Dreg),n(Dreg)
                    226: 1110 NNN0 zz 1 10 nnn  0 0     X----   XNZ0C   ROXR.z     N(Dreg),n(Dreg)
                    227: 1110 NNN0 zz 1 11 nnn  0 0     -----   -NZ0C   ROR.z      N(Dreg),n(Dreg)
                    228: 
                    229: 1110 iii1 zz 0 00 nnn  0 0     -----   XNZ0C   ASL.z      #I,n(Dreg)
                    230: 1110 iii1 zz 0 01 nnn  0 0     -----   XNZ0C   LSL.z      #I,n(Dreg)
                    231: 1110 iii1 zz 0 10 nnn  0 0     X----   XNZ0C   ROXL.z     #I,n(Dreg)
                    232: 1110 iii1 zz 0 11 nnn  0 0     -----   -NZ0C   ROL.z      #I,n(Dreg)
                    233: 1110 0001 zz 0 00 nnn  0 0     -----   XNZ0C   ASL.z      #8,n(Dreg)
                    234: 1110 0001 zz 0 01 nnn  0 0     -----   XNZ0C   LSL.z      #8,n(Dreg)
                    235: 1110 0001 zz 0 10 nnn  0 0     X----   XNZ0C   ROXL.z     #8,n(Dreg)
                    236: 1110 0001 zz 0 11 nnn  0 0     -----   -NZ0C   ROL.z      #8,n(Dreg)
                    237: 1110 NNN1 zz 1 00 nnn  0 0     -----   XNZVC   ASL.z      N(Dreg),n(Dreg)
                    238: 1110 NNN1 zz 1 01 nnn  0 0     -----   XNZ0C   LSL.z      N(Dreg),n(Dreg)
                    239: 1110 NNN1 zz 1 10 nnn  0 0     X----   XNZ0C   ROXL.z     N(Dreg),n(Dreg)
                    240: 1110 NNN1 zz 1 11 nnn  0 0     -----   -NZ0C   ROL.z      N(Dreg),n(Dreg)
                    241: 
                    242: 1110 0000 11 eee EEE   0 0     -----   XNZVC   ASR.W      #1,e(*,-Regs,-PC,-Imm)
                    243: 1110 0010 11 eee EEE   0 0     -----   XNZ0C   LSR.W      #1,e(*,-Regs,-PC,-Imm)
                    244: 1110 0100 11 eee EEE   0 0     X----   XNZ0C   ROXR.W     #1,e(*,-Regs,-PC,-Imm)
                    245: 1110 0110 11 eee EEE   0 0     -----   -NZ0C   ROR.W      #1,e(*,-Regs,-PC,-Imm)
                    246: 
                    247: 1110 0001 11 eee EEE   0 0     -----   XNZVC   ASL.W      #1,e(*,-Regs,-PC,-Imm)
                    248: 1110 0011 11 eee EEE   0 0     -----   XNZ0C   LSL.W      #1,e(*,-Regs,-PC,-Imm)
                    249: 1110 0101 11 eee EEE   0 0     X----   XNZ0C   ROXL.W     #1,e(*,-Regs,-PC,-Imm)
                    250: 1110 0111 11 eee EEE   0 0     -----   -NZ0C   ROL.W      #1,e(*,-Regs,-PC,-Imm)
                    251: 
                    252: 1010 VVVV VVVV VVVV    0 1     XNZVC   -----   LINE10     #V
                    253: 1111 VVVV VVVV VVVV    0 1     XNZVC   -----   LINE15     #V

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.