d8: more than 8 MSBs are determined by the opcode
This commit is contained in:
parent
80ccc56ee6
commit
d78899bc26
3 changed files with 202 additions and 202 deletions
396
d8_tab.py
396
d8_tab.py
|
|
@ -36,234 +36,234 @@ from pta.BasicWordInstruction import *
|
|||
# o : offset
|
||||
# 0000 0000 xxxx xxxx
|
||||
# OPERAND
|
||||
Insn("NOP", I0, 0x00)
|
||||
Insn("DATAPIPE", I0, 0x00)
|
||||
Insn("INDEXPIPE", I0, 0x00)
|
||||
Insn("JUMPSHADOWPIPE", I0, 0x00)
|
||||
Insn("NOP", I0, 0x0000)
|
||||
Insn("DATAPIPE", I0, 0x0001)
|
||||
Insn("INDEXPIPE", I0, 0x0002)
|
||||
Insn("JUMPSHADOWPIPE", I0, 0x0003)
|
||||
# 0000 0001 kkkk kkkk
|
||||
# BYTE OPERAND
|
||||
Insn("LDIB *", I8, 0x01)
|
||||
Insn("LDIB *", I8, 0x0100)
|
||||
# 0000 00rr xxxx xxxx
|
||||
# OPERAND
|
||||
Insn("RCLB", I0, 0x02)
|
||||
Insn("RCRB", I0, 0x03)
|
||||
Insn("SHLN", I0, 0x02)
|
||||
Insn("SHRN", I0, 0x03)
|
||||
Insn("RCLB", I0, 0x0200)
|
||||
Insn("RCRB", I0, 0x0300)
|
||||
Insn("SHLN", I0, 0x0280)
|
||||
Insn("SHRN", I0, 0x0380)
|
||||
# 0000 rrii ixxx xxxx
|
||||
Insn("LDAB XL", I0, 0x04)
|
||||
Insn("LDAB YL", I0, 0x05)
|
||||
Insn("LDAB ZL", I0, 0x06)
|
||||
Insn("LDAB TL", I0, 0x07)
|
||||
Insn("LDAB XH", I0, 0x04)
|
||||
Insn("LDAB YH", I0, 0x05)
|
||||
Insn("LDAB ZH", I0, 0x06)
|
||||
Insn("LDAB TH", I0, 0x07)
|
||||
Insn("STAB XL", I0, 0x08)
|
||||
Insn("STAB YL", I0, 0x09)
|
||||
Insn("STAB ZL", I0, 0x0a)
|
||||
Insn("STAB TL", I0, 0x0b)
|
||||
Insn("STAB XH", I0, 0x08)
|
||||
Insn("STAB YH", I0, 0x09)
|
||||
Insn("STAB ZH", I0, 0x0a)
|
||||
Insn("STAB TH", I0, 0x0b)
|
||||
Insn("ADDIX *", I7, 0x0c)
|
||||
Insn("ADDIY *", I7, 0x0d)
|
||||
Insn("ADDIZ *", I7, 0x0e)
|
||||
Insn("ADDIT *", I7, 0x0f)
|
||||
Insn("POP", I0, 0x0c)
|
||||
Insn("PUSH", I0, 0x0d)
|
||||
Insn("LDAB SP", I0, 0x0e)
|
||||
Insn("STAB SP", I0, 0x0f)
|
||||
Insn("LDAB XL", I0, 0x0400)
|
||||
Insn("LDAB YL", I0, 0x0500)
|
||||
Insn("LDAB ZL", I0, 0x0600)
|
||||
Insn("LDAB TL", I0, 0x0700)
|
||||
Insn("LDAB XH", I0, 0x0480)
|
||||
Insn("LDAB YH", I0, 0x0580)
|
||||
Insn("LDAB ZH", I0, 0x0680)
|
||||
Insn("LDAB TH", I0, 0x0780)
|
||||
Insn("STAB XL", I0, 0x0800)
|
||||
Insn("STAB YL", I0, 0x0900)
|
||||
Insn("STAB ZL", I0, 0x0a00)
|
||||
Insn("STAB TL", I0, 0x0b00)
|
||||
Insn("STAB XH", I0, 0x0880)
|
||||
Insn("STAB YH", I0, 0x0980)
|
||||
Insn("STAB ZH", I0, 0x0a80)
|
||||
Insn("STAB TH", I0, 0x0b80)
|
||||
Insn("ADDIX *", I7, 0x0c00)
|
||||
Insn("ADDIY *", I7, 0x0d00)
|
||||
Insn("ADDIZ *", I7, 0x0e00)
|
||||
Insn("ADDIT *", I7, 0x0f00)
|
||||
Insn("POP", I0, 0x0c80)
|
||||
Insn("PUSH", I0, 0x0d80)
|
||||
Insn("LDAB SP", I0, 0x0e80)
|
||||
Insn("STAB SP", I0, 0x0f80)
|
||||
# BIT OPERAND, PROGRAM ADDRESS FOR JUMPS
|
||||
# iiii 0aaa aaaa aaaa DIRECT INSTRUCTIONS
|
||||
Insn("JMP *", I11, 0x10)
|
||||
Insn("JMPNZ *", I11, 0x20)
|
||||
Insn("JMPZ *", I11, 0x30)
|
||||
Insn("JMPNC *", I11, 0x40)
|
||||
Insn("JMPC *", I11, 0x50)
|
||||
Insn("JSR *", I11, 0x60)
|
||||
Insn("JMP *", I11, 0x1000)
|
||||
Insn("JMPNZ *", I11, 0x2000)
|
||||
Insn("JMPZ *", I11, 0x3000)
|
||||
Insn("JMPNC *", I11, 0x4000)
|
||||
Insn("JMPC *", I11, 0x5000)
|
||||
Insn("JSR *", I11, 0x6000)
|
||||
# 8 BIT OFFSET,
|
||||
# iiii 0100 0000 0000 INDIRECT INSTRUCTIONS
|
||||
Insn("LDAB @X", I0, 0x74)
|
||||
Insn("ORB @X", I0, 0x84)
|
||||
Insn("XORB @X", I0, 0x94)
|
||||
Insn("ANDB @X", I0, 0xa4)
|
||||
Insn("STAB @X", I0, 0xb4)
|
||||
Insn("ADDB @X", I0, 0xc4)
|
||||
Insn("ADDCB @X", I0, 0xd4)
|
||||
Insn("SUBB @X", I0, 0xe4)
|
||||
Insn("SUBCB @X", I0, 0xf4)
|
||||
Insn("LDAB @X", I0, 0x7400)
|
||||
Insn("ORB @X", I0, 0x8400)
|
||||
Insn("XORB @X", I0, 0x9400)
|
||||
Insn("ANDB @X", I0, 0xa400)
|
||||
Insn("STAB @X", I0, 0xb400)
|
||||
Insn("ADDB @X", I0, 0xc400)
|
||||
Insn("ADDCB @X", I0, 0xd400)
|
||||
Insn("SUBB @X", I0, 0xe400)
|
||||
Insn("SUBCB @X", I0, 0xf400)
|
||||
# 8 BIT OPERAND,
|
||||
# iiii 0100 oooo oooo INDIRECT INSTRUCTIONS
|
||||
Insn("LDAB @X,*", I7, 0x74)
|
||||
Insn("ORB @X,*", I7, 0x84)
|
||||
Insn("XORB @X,*", I7, 0x94)
|
||||
Insn("ANDB @X,*", I7, 0xa4)
|
||||
Insn("STAB @X,*", I7, 0xb4)
|
||||
Insn("ADDB @X,*", I7, 0xc4)
|
||||
Insn("ADDCB @X,*", I7, 0xd4)
|
||||
Insn("SUBB @X,*", I7, 0xe4)
|
||||
Insn("SUBCB @X,*", I7, 0xf4)
|
||||
Insn("LDAB @X,*", I7, 0x7400)
|
||||
Insn("ORB @X,*", I7, 0x8400)
|
||||
Insn("XORB @X,*", I7, 0x9400)
|
||||
Insn("ANDB @X,*", I7, 0xa400)
|
||||
Insn("STAB @X,*", I7, 0xb400)
|
||||
Insn("ADDB @X,*", I7, 0xc400)
|
||||
Insn("ADDCB @X,*", I7, 0xd400)
|
||||
Insn("SUBB @X,*", I7, 0xe400)
|
||||
Insn("SUBCB @X,*", I7, 0xf400)
|
||||
# 8 BIT OFFSET,
|
||||
# iiii 1100 0000 0000 INDIRECT INSTRUCTIONS
|
||||
Insn("ORTOB @X", I0, 0x8c)
|
||||
Insn("XORTOB @X", I0, 0x9c)
|
||||
Insn("ANDTOB @X", I0, 0xac)
|
||||
Insn("STATOB @X", I0, 0xbc)
|
||||
Insn("ADDTOB @X", I0, 0xcc)
|
||||
Insn("ADDCTOB @X", I0, 0xdc)
|
||||
Insn("SUBTOB @X", I0, 0xec)
|
||||
Insn("SUBCTOB @X", I0, 0xfc)
|
||||
Insn("ORTOB @X", I0, 0x8c00)
|
||||
Insn("XORTOB @X", I0, 0x9c00)
|
||||
Insn("ANDTOB @X", I0, 0xac00)
|
||||
Insn("STATOB @X", I0, 0xbc00)
|
||||
Insn("ADDTOB @X", I0, 0xcc00)
|
||||
Insn("ADDCTOB @X", I0, 0xdc00)
|
||||
Insn("SUBTOB @X", I0, 0xec00)
|
||||
Insn("SUBCTOB @X", I0, 0xfc00)
|
||||
# 8 BIT OPERAND,
|
||||
# iiii 1100 oooo oooo INDIRECT INSTRUCTIONS
|
||||
Insn("ORTOB @X,*", I7, 0x8c)
|
||||
Insn("XORTOB @X,*", I7, 0x9c)
|
||||
Insn("ANDTOB @X,*", I7, 0xac)
|
||||
Insn("STATOB @X,*", I7, 0xbc)
|
||||
Insn("ADDTOB @X,*", I7, 0xcc)
|
||||
Insn("ADDCTOB @X,*", I7, 0xdc)
|
||||
Insn("SUBTOB @X,*", I7, 0xec)
|
||||
Insn("SUBCTOB @X,*", I7, 0xfc)
|
||||
Insn("ORTOB @X,*", I7, 0x8c00)
|
||||
Insn("XORTOB @X,*", I7, 0x9c00)
|
||||
Insn("ANDTOB @X,*", I7, 0xac00)
|
||||
Insn("STATOB @X,*", I7, 0xbc00)
|
||||
Insn("ADDTOB @X,*", I7, 0xcc00)
|
||||
Insn("ADDCTOB @X,*", I7, 0xdc00)
|
||||
Insn("SUBTOB @X,*", I7, 0xec00)
|
||||
Insn("SUBCTOB @X,*", I7, 0xfc00)
|
||||
# iiii 0101 0000 0000 INDIRECT INSTRUCTIONS
|
||||
Insn("LDAB @Y", I0, 0x75)
|
||||
Insn("ORB @Y", I0, 0x85)
|
||||
Insn("XORB @Y", I0, 0x95)
|
||||
Insn("ANDB @Y", I0, 0xa5)
|
||||
Insn("STAB @Y", I0, 0xb5)
|
||||
Insn("ADDB @Y", I0, 0xc5)
|
||||
Insn("ADDCB @Y", I0, 0xd5)
|
||||
Insn("SUBB @Y", I0, 0xe5)
|
||||
Insn("SUBCB @Y", I0, 0xf5)
|
||||
Insn("LDAB @Y", I0, 0x7580)
|
||||
Insn("ORB @Y", I0, 0x8580)
|
||||
Insn("XORB @Y", I0, 0x9580)
|
||||
Insn("ANDB @Y", I0, 0xa580)
|
||||
Insn("STAB @Y", I0, 0xb580)
|
||||
Insn("ADDB @Y", I0, 0xc580)
|
||||
Insn("ADDCB @Y", I0, 0xd580)
|
||||
Insn("SUBB @Y", I0, 0xe580)
|
||||
Insn("SUBCB @Y", I0, 0xf580)
|
||||
# iiii 0101 oooo oooo INDIRECT INSTRUCTIONS
|
||||
Insn("LDAB @Y,*", I7, 0x75)
|
||||
Insn("ORB @Y,*", I7, 0x85)
|
||||
Insn("XORB @Y,*", I7, 0x95)
|
||||
Insn("ANDB @Y,*", I7, 0xa5)
|
||||
Insn("STAB @Y,*", I7, 0xb5)
|
||||
Insn("ADDB @Y,*", I7, 0xc5)
|
||||
Insn("ADDCB @Y,*", I7, 0xd5)
|
||||
Insn("SUBB @Y,*", I7, 0xe5)
|
||||
Insn("SUBCB @Y,*", I7, 0xf5)
|
||||
Insn("LDAB @Y,*", I7, 0x7580)
|
||||
Insn("ORB @Y,*", I7, 0x8580)
|
||||
Insn("XORB @Y,*", I7, 0x9580)
|
||||
Insn("ANDB @Y,*", I7, 0xa580)
|
||||
Insn("STAB @Y,*", I7, 0xb580)
|
||||
Insn("ADDB @Y,*", I7, 0xc580)
|
||||
Insn("ADDCB @Y,*", I7, 0xd580)
|
||||
Insn("SUBB @Y,*", I7, 0xe580)
|
||||
Insn("SUBCB @Y,*", I7, 0xf580)
|
||||
# iiii 1101 0000 0000 INDIRECT INSTRUCTIONS
|
||||
Insn("ORTOB @Y", I0, 0x8d)
|
||||
Insn("XORTOB @Y", I0, 0x9d)
|
||||
Insn("ANDTOB @Y", I0, 0xad)
|
||||
Insn("STATOB @Y", I0, 0xbd)
|
||||
Insn("ADDTOB @Y", I0, 0xcd)
|
||||
Insn("ADDCTOB @Y", I0, 0xdd)
|
||||
Insn("SUBTOB @Y", I0, 0xed)
|
||||
Insn("SUBCTOB @Y", I0, 0xfd)
|
||||
Insn("ORTOB @Y", I0, 0x8d80)
|
||||
Insn("XORTOB @Y", I0, 0x9d80)
|
||||
Insn("ANDTOB @Y", I0, 0xad80)
|
||||
Insn("STATOB @Y", I0, 0xbd80)
|
||||
Insn("ADDTOB @Y", I0, 0xcd80)
|
||||
Insn("ADDCTOB @Y", I0, 0xdd80)
|
||||
Insn("SUBTOB @Y", I0, 0xed80)
|
||||
Insn("SUBCTOB @Y", I0, 0xfd00)
|
||||
# iiii 1101 oooo oooo INDIRECT INSTRUCTIONS
|
||||
Insn("ORTOB @Y,*", I7, 0x8d)
|
||||
Insn("XORTOB @Y,*", I7, 0x9d)
|
||||
Insn("ANDTOB @Y,*", I7, 0xad)
|
||||
Insn("STATOB @Y,*", I7, 0xbd)
|
||||
Insn("ADDTOB @Y,*", I7, 0xcd)
|
||||
Insn("ADDCTOB @Y,*", I7, 0xdd)
|
||||
Insn("SUBTOB @Y,*", I7, 0xed)
|
||||
Insn("SUBCTOB @Y,*", I7, 0xfd)
|
||||
Insn("ORTOB @Y,*", I7, 0x8d80)
|
||||
Insn("XORTOB @Y,*", I7, 0x9d80)
|
||||
Insn("ANDTOB @Y,*", I7, 0xad80)
|
||||
Insn("STATOB @Y,*", I7, 0xbd80)
|
||||
Insn("ADDTOB @Y,*", I7, 0xcd80)
|
||||
Insn("ADDCTOB @Y,*", I7, 0xdd80)
|
||||
Insn("SUBTOB @Y,*", I7, 0xed80)
|
||||
Insn("SUBCTOB @Y,*", I7, 0xfd80)
|
||||
# iiii 0110 0000 0000 INDIRECT INSTRUCTIONS
|
||||
Insn("LDAB @Z", I0, 0x76)
|
||||
Insn("ORB @Z", I0, 0x86)
|
||||
Insn("XORB @Z", I0, 0x96)
|
||||
Insn("ANDB @Z", I0, 0xa6)
|
||||
Insn("STAB @Z", I0, 0xb6)
|
||||
Insn("ADDB @Z", I0, 0xc6)
|
||||
Insn("ADDCB @Z", I0, 0xd6)
|
||||
Insn("SUBB @Z", I0, 0xe6)
|
||||
Insn("SUBCB @Z", I0, 0xf6)
|
||||
Insn("LDAB @Z", I0, 0x7600)
|
||||
Insn("ORB @Z", I0, 0x8600)
|
||||
Insn("XORB @Z", I0, 0x9600)
|
||||
Insn("ANDB @Z", I0, 0xa600)
|
||||
Insn("STAB @Z", I0, 0xb600)
|
||||
Insn("ADDB @Z", I0, 0xc600)
|
||||
Insn("ADDCB @Z", I0, 0xd600)
|
||||
Insn("SUBB @Z", I0, 0xe600)
|
||||
Insn("SUBCB @Z", I0, 0xf600)
|
||||
# iiii 0110 oooo oooo INDIRECT INSTRUCTIONS
|
||||
Insn("LDAB @Z,*", I7, 0x76)
|
||||
Insn("ORB @Z,*", I7, 0x86)
|
||||
Insn("XORB @Z,*", I7, 0x96)
|
||||
Insn("ANDB @Z,*", I7, 0xa6)
|
||||
Insn("STAB @Z,*", I7, 0xb6)
|
||||
Insn("ADDB @Z,*", I7, 0xc6)
|
||||
Insn("ADDCB @Z,*", I7, 0xd6)
|
||||
Insn("SUBB @Z,*", I7, 0xe6)
|
||||
Insn("SUBCB @Z,*", I7, 0xf6)
|
||||
Insn("LDAB @Z,*", I7, 0x7600)
|
||||
Insn("ORB @Z,*", I7, 0x8600)
|
||||
Insn("XORB @Z,*", I7, 0x9600)
|
||||
Insn("ANDB @Z,*", I7, 0xa600)
|
||||
Insn("STAB @Z,*", I7, 0xb600)
|
||||
Insn("ADDB @Z,*", I7, 0xc600)
|
||||
Insn("ADDCB @Z,*", I7, 0xd600)
|
||||
Insn("SUBB @Z,*", I7, 0xe600)
|
||||
Insn("SUBCB @Z,*", I7, 0xf600)
|
||||
# iiii 1110 0000 0000 INDIRECT INSTRUCTIONS
|
||||
Insn("ORTOB @Z", I0, 0x8e)
|
||||
Insn("XORTOB @Z", I0, 0x9e)
|
||||
Insn("ANDTOB @Z", I0, 0xae)
|
||||
Insn("STATOB @Z", I0, 0xbe)
|
||||
Insn("ADDTOB @Z", I0, 0xce)
|
||||
Insn("ADDCTOB @Z", I0, 0xde)
|
||||
Insn("SUBTOB @Z", I0, 0xee)
|
||||
Insn("SUBCTOB @Z", I0, 0xfe)
|
||||
Insn("ORTOB @Z", I0, 0x8e00)
|
||||
Insn("XORTOB @Z", I0, 0x9e00)
|
||||
Insn("ANDTOB @Z", I0, 0xae00)
|
||||
Insn("STATOB @Z", I0, 0xbe00)
|
||||
Insn("ADDTOB @Z", I0, 0xce00)
|
||||
Insn("ADDCTOB @Z", I0, 0xde00)
|
||||
Insn("SUBTOB @Z", I0, 0xee00)
|
||||
Insn("SUBCTOB @Z", I0, 0xfe00)
|
||||
# iiii 1110 oooo oooo INDIRECT INSTRUCTIONS
|
||||
Insn("ORTOB @Z,*", I7, 0x8e)
|
||||
Insn("XORTOB @Z,*", I7, 0x9e)
|
||||
Insn("ANDTOB @Z,*", I7, 0xae)
|
||||
Insn("STATOB @Z,*", I7, 0xbe)
|
||||
Insn("ADDTOB @Z,*", I7, 0xce)
|
||||
Insn("ADDCTOB @Z,*", I7, 0xde)
|
||||
Insn("SUBTOB @Z,*", I7, 0xee)
|
||||
Insn("SUBCTOB @Z,*", I7, 0xfe)
|
||||
Insn("ORTOB @Z,*", I7, 0x8e00)
|
||||
Insn("XORTOB @Z,*", I7, 0x9e00)
|
||||
Insn("ANDTOB @Z,*", I7, 0xae00)
|
||||
Insn("STATOB @Z,*", I7, 0xbe00)
|
||||
Insn("ADDTOB @Z,*", I7, 0xce00)
|
||||
Insn("ADDCTOB @Z,*", I7, 0xde00)
|
||||
Insn("SUBTOB @Z,*", I7, 0xee00)
|
||||
Insn("SUBCTOB @Z,*", I7, 0xfe00)
|
||||
# iiii 0111 0000 0000 INDIRECT INSTRUCTIONS
|
||||
Insn("LDAB @T", I0, 0x77)
|
||||
Insn("ORB @T", I0, 0x87)
|
||||
Insn("XORB @T", I0, 0x97)
|
||||
Insn("ANDB @T", I0, 0xa7)
|
||||
Insn("STAB @T", I0, 0xb7)
|
||||
Insn("ADDB @T", I0, 0xc7)
|
||||
Insn("ADDCB @T", I0, 0xd7)
|
||||
Insn("SUBB @T", I0, 0xe7)
|
||||
Insn("SUBCB @T", I0, 0xf7)
|
||||
Insn("LDAB @T", I0, 0x7700)
|
||||
Insn("ORB @T", I0, 0x8700)
|
||||
Insn("XORB @T", I0, 0x9700)
|
||||
Insn("ANDB @T", I0, 0xa700)
|
||||
Insn("STAB @T", I0, 0xb700)
|
||||
Insn("ADDB @T", I0, 0xc700)
|
||||
Insn("ADDCB @T", I0, 0xd700)
|
||||
Insn("SUBB @T", I0, 0xe700)
|
||||
Insn("SUBCB @T", I0, 0xf700)
|
||||
# iiii 0111 oooo oooo INDIRECT INSTRUCTIONS
|
||||
Insn("LDAB @T,*", I7, 0x77)
|
||||
Insn("ORB @T,*", I7, 0x87)
|
||||
Insn("XORB @T,*", I7, 0x97)
|
||||
Insn("ANDB @T,*", I7, 0xa7)
|
||||
Insn("STAB @T,*", I7, 0xb7)
|
||||
Insn("ADDB @T,*", I7, 0xc7)
|
||||
Insn("ADDCB @T,*", I7, 0xd7)
|
||||
Insn("SUBB @T,*", I7, 0xe7)
|
||||
Insn("SUBCB @T,*", I7, 0xf7)
|
||||
Insn("LDAB @T,*", I7, 0x7700)
|
||||
Insn("ORB @T,*", I7, 0x8700)
|
||||
Insn("XORB @T,*", I7, 0x9700)
|
||||
Insn("ANDB @T,*", I7, 0xa700)
|
||||
Insn("STAB @T,*", I7, 0xb700)
|
||||
Insn("ADDB @T,*", I7, 0xc700)
|
||||
Insn("ADDCB @T,*", I7, 0xd700)
|
||||
Insn("SUBB @T,*", I7, 0xe700)
|
||||
Insn("SUBCB @T,*", I7, 0xf700)
|
||||
# iiii 1111 0000 0000 INDIRECT INSTRUCTIONS
|
||||
Insn("ORTOB @T", I0, 0x8f)
|
||||
Insn("XORTOB @T", I0, 0x9f)
|
||||
Insn("ANDTOB @T", I0, 0xaf)
|
||||
Insn("STATOB @T", I0, 0xbf)
|
||||
Insn("ADDTOB @T", I0, 0xcf)
|
||||
Insn("ADDCTOB @T", I0, 0xdf)
|
||||
Insn("SUBTOB @T", I0, 0xef)
|
||||
Insn("SUBCTOB @T", I0, 0xff)
|
||||
Insn("ORTOB @T", I0, 0x8f00)
|
||||
Insn("XORTOB @T", I0, 0x9f00)
|
||||
Insn("ANDTOB @T", I0, 0xaf00)
|
||||
Insn("STATOB @T", I0, 0xbf00)
|
||||
Insn("ADDTOB @T", I0, 0xcf00)
|
||||
Insn("ADDCTOB @T", I0, 0xdf00)
|
||||
Insn("SUBTOB @T", I0, 0xef00)
|
||||
Insn("SUBCTOB @T", I0, 0xff00)
|
||||
# iiii 1111 oooo oooo INDIRECT INSTRUCTIONS
|
||||
Insn("ORTOB @T,*", I7, 0x8f)
|
||||
Insn("XORTOB @T,*", I7, 0x9f)
|
||||
Insn("ANDTOB @T,*", I7, 0xaf)
|
||||
Insn("STATOB @T,*", I7, 0xbf)
|
||||
Insn("ADDTOB @T,*", I7, 0xcf)
|
||||
Insn("ADDCTOB @T,*", I7, 0xdf)
|
||||
Insn("SUBTOB @T,*", I7, 0xef)
|
||||
Insn("SUBCTOB @T,*", I7, 0xff)
|
||||
Insn("ORTOB @T,*", I7, 0x8f00)
|
||||
Insn("XORTOB @T,*", I7, 0x9f00)
|
||||
Insn("ANDTOB @T,*", I7, 0xaf00)
|
||||
Insn("STATOB @T,*", I7, 0xbf00)
|
||||
Insn("ADDTOB @T,*", I7, 0xcf00)
|
||||
Insn("ADDCTOB @T,*", I7, 0xdf00)
|
||||
Insn("SUBTOB @T,*", I7, 0xef00)
|
||||
Insn("SUBCTOB @T,*", I7, 0xff00)
|
||||
# BIT return addresses
|
||||
# iiii 1aaa aaaa aaaa DIRECT INSTRUCTIONS
|
||||
Insn("RET", I0, 0x18)
|
||||
Insn("RETNZ", I0, 0x28)
|
||||
Insn("RETZ", I0, 0x38)
|
||||
Insn("RETNC", I0, 0x48)
|
||||
Insn("RETC", I0, 0x58)
|
||||
Insn("RET@", I0, 0x68)
|
||||
Insn("RET", I0, 0x1800)
|
||||
Insn("RETNZ", I0, 0x2800)
|
||||
Insn("RETZ", I0, 0x3800)
|
||||
Insn("RETNC", I0, 0x4800)
|
||||
Insn("RETC", I0, 0x5800)
|
||||
Insn("RET@", I0, 0x6800)
|
||||
# REF INST 10 BIT OPERAND ADDRESS
|
||||
# iiii 00nn nnnn nnnn DIRECT INSTRUCTIONS
|
||||
Insn("LDAB *", I10, 0x70)
|
||||
Insn("ORB *", I10, 0x80)
|
||||
Insn("XORB *", I10, 0x90)
|
||||
Insn("ANDB *", I10, 0xa0)
|
||||
Insn("STAB *", I10, 0xb0)
|
||||
Insn("ADDB *", I10, 0xc0)
|
||||
Insn("ADDCB *", I10, 0xd0)
|
||||
Insn("SUBB *", I10, 0xe0)
|
||||
Insn("SUBCB *", I10, 0xf0)
|
||||
Insn("LDAB *", I10, 0x7000)
|
||||
Insn("ORB *", I10, 0x8000)
|
||||
Insn("XORB *", I10, 0x9000)
|
||||
Insn("ANDB *", I10, 0xa000)
|
||||
Insn("STAB *", I10, 0xb000)
|
||||
Insn("ADDB *", I10, 0xc000)
|
||||
Insn("ADDCB *", I10, 0xd000)
|
||||
Insn("SUBB *", I10, 0xe000)
|
||||
Insn("SUBCB *", I10, 0xf000)
|
||||
# REF TO INST 10 BIT OPERAND ADDRESS
|
||||
# iiii 10nn nnnn nnnn DIRECT INSTRUCTIONS
|
||||
Insn("ORTOB *", I10, 0x88)
|
||||
Insn("XORTOB *", I10, 0x98)
|
||||
Insn("ANDTOB *", I10, 0xa8)
|
||||
Insn("STATOB *", I10, 0xb8)
|
||||
Insn("ADDTOB *", I10, 0xc8)
|
||||
Insn("ADDCTOB *", I10, 0xd8)
|
||||
Insn("SUBTOB *", I10, 0xe8)
|
||||
Insn("SUBCTOB *", I10, 0xf8)
|
||||
Insn("ORTOB *", I10, 0x8800)
|
||||
Insn("XORTOB *", I10, 0x9800)
|
||||
Insn("ANDTOB *", I10, 0xa800)
|
||||
Insn("STATOB *", I10, 0xb800)
|
||||
Insn("ADDTOB *", I10, 0xc800)
|
||||
Insn("ADDCTOB *", I10, 0xd800)
|
||||
Insn("SUBTOB *", I10, 0xe800)
|
||||
Insn("SUBCTOB *", I10, 0xf800)
|
||||
|
|
|
|||
|
|
@ -74,8 +74,8 @@ def unbits(b, v):
|
|||
return v
|
||||
|
||||
class BasicInstruction:
|
||||
def __init__(self, hi8, _, arg=0):
|
||||
self.hi8 = hi8
|
||||
def __init__(self, insn, _, arg=0):
|
||||
self.insn = insn
|
||||
self.arg = arg
|
||||
|
||||
@property
|
||||
|
|
@ -83,7 +83,7 @@ class BasicInstruction:
|
|||
|
||||
def assemble(self, assembler):
|
||||
v = assembler.symval(self.arg)
|
||||
return [(self.hi8 << 8) | nbits(self.argwidth, v)]
|
||||
return [self.insn | nbits(self.argwidth, v)]
|
||||
|
||||
class I0(BasicInstruction): argwidth=0
|
||||
class I7(BasicInstruction): argwidth=7
|
||||
|
|
|
|||
|
|
@ -22,5 +22,5 @@ function mask2count(mask) {
|
|||
arg = sprintf("\"%s\",", insn);
|
||||
else
|
||||
arg = sprintf("\"%s %s\",", insn, pattern);
|
||||
printf("Insn(%-20s %3s, 0x%02x)\n", arg, check, bits / 256 );
|
||||
printf("Insn(%-20s %3s, 0x%04x)\n", arg, check, bits );
|
||||
}' "$@"
|
||||
|
|
|
|||
Loading…
Reference in a new issue