1987-03-09 16:02:32 +00:00
|
|
|
/*
|
|
|
|
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
|
|
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
|
|
|
*/
|
1994-06-24 14:02:31 +00:00
|
|
|
#define RCSID3 "$Id$"
|
1985-06-10 16:05:04 +00:00
|
|
|
|
2019-03-08 22:06:34 +00:00
|
|
|
/*
|
|
|
|
* Specials
|
|
|
|
*/
|
|
|
|
|
|
|
|
0, KILL, 0, "kill",
|
|
|
|
|
1985-06-10 16:05:04 +00:00
|
|
|
/*
|
|
|
|
* Intel 8080 keywords
|
|
|
|
*/
|
|
|
|
0, REG, B, "b",
|
|
|
|
0, REG, C, "c",
|
|
|
|
0, REG, D, "d",
|
|
|
|
0, REG, E, "e",
|
|
|
|
0, REG, H, "h",
|
|
|
|
0, REG, L, "l",
|
|
|
|
0, REG, M, "m",
|
|
|
|
0, REG, A, "a",
|
|
|
|
0, REG, SP, "sp",
|
|
|
|
0, REG, PSW, "psw",
|
|
|
|
0, D16OP, 0315, "call",
|
|
|
|
0, D16OP, 0334, "cc",
|
|
|
|
0, D16OP, 0324, "cnc",
|
|
|
|
0, D16OP, 0314, "cz",
|
|
|
|
0, D16OP, 0304, "cnz",
|
|
|
|
0, D16OP, 0364, "cp",
|
|
|
|
0, D16OP, 0374, "cm",
|
|
|
|
0, D16OP, 0354, "cpe",
|
|
|
|
0, D16OP, 0344, "cpo",
|
|
|
|
0, NOOPOP, 0311, "ret",
|
|
|
|
0, NOOPOP, 0330, "rc",
|
|
|
|
0, NOOPOP, 0320, "rnc",
|
|
|
|
0, NOOPOP, 0310, "rz",
|
|
|
|
0, NOOPOP, 0300, "rnz",
|
|
|
|
0, NOOPOP, 0360, "rp",
|
|
|
|
0, NOOPOP, 0370, "rm",
|
|
|
|
0, NOOPOP, 0350, "rpe",
|
|
|
|
0, NOOPOP, 0340, "rpo",
|
|
|
|
0, RST, 0307, "rst",
|
|
|
|
0, D8OP, 0333, "in",
|
|
|
|
0, D8OP, 0323, "out",
|
|
|
|
0, LXI, 0001, "lxi",
|
|
|
|
0, R16OP, 0305, "push",
|
|
|
|
0, R16OP, 0301, "pop",
|
|
|
|
0, D16OP, 0062, "sta",
|
|
|
|
0, D16OP, 0072, "lda",
|
|
|
|
0, NOOPOP, 0353, "xchg",
|
|
|
|
0, NOOPOP, 0343, "xthl",
|
|
|
|
0, NOOPOP, 0371, "sphl",
|
|
|
|
0, NOOPOP, 0351, "pchl",
|
|
|
|
0, R16OP, 0011, "dad",
|
|
|
|
0, STLDAX, 0002, "stax",
|
|
|
|
0, STLDAX, 0012, "ldax",
|
|
|
|
0, R16OP, 0003, "inx",
|
|
|
|
0, MOV, 0100, "mov",
|
|
|
|
0, NOOPOP, 0166, "hlt",
|
|
|
|
0, MVI, 0006, "mvi",
|
|
|
|
0, DSTOP, 0004, "inr",
|
|
|
|
0, DSTOP, 0005, "dcr",
|
|
|
|
0, SRCOP, 0200, "add",
|
|
|
|
0, SRCOP, 0210, "adc",
|
|
|
|
0, SRCOP, 0220, "sub",
|
|
|
|
0, SRCOP, 0230, "sbb",
|
|
|
|
0, SRCOP, 0240, "ana",
|
|
|
|
0, SRCOP, 0250, "xra",
|
|
|
|
0, SRCOP, 0260, "ora",
|
|
|
|
0, SRCOP, 0270, "cmp",
|
|
|
|
0, D8OP, 0306, "adi",
|
|
|
|
0, D8OP, 0316, "aci",
|
|
|
|
0, D8OP, 0326, "sui",
|
|
|
|
0, D8OP, 0336, "sbi",
|
|
|
|
0, D8OP, 0346, "ani",
|
|
|
|
0, D8OP, 0356, "xri",
|
|
|
|
0, D8OP, 0366, "ori",
|
|
|
|
0, D8OP, 0376, "cpi",
|
|
|
|
0, NOOPOP, 0007, "rlc",
|
|
|
|
0, NOOPOP, 0017, "rrc",
|
|
|
|
0, NOOPOP, 0027, "ral",
|
|
|
|
0, NOOPOP, 0037, "rar",
|
|
|
|
0, D16OP, 0303, "jmp",
|
|
|
|
0, D16OP, 0332, "jc",
|
|
|
|
0, D16OP, 0322, "jnc",
|
|
|
|
0, D16OP, 0312, "jz",
|
|
|
|
0, D16OP, 0302, "jnz",
|
|
|
|
0, D16OP, 0362, "jp",
|
|
|
|
0, D16OP, 0372, "jm",
|
|
|
|
0, D16OP, 0352, "jpe",
|
|
|
|
0, D16OP, 0342, "jpo",
|
|
|
|
0, R16OP, 0013, "dcx",
|
|
|
|
0, NOOPOP, 0057, "cma",
|
|
|
|
0, NOOPOP, 0067, "stc",
|
|
|
|
0, NOOPOP, 0077, "cmc",
|
|
|
|
0, NOOPOP, 0047, "daa",
|
|
|
|
0, D16OP, 0042, "shld",
|
|
|
|
0, D16OP, 0052, "lhld",
|
|
|
|
0, NOOPOP, 0373, "ei",
|
|
|
|
0, NOOPOP, 0363, "di",
|
|
|
|
0, NOOPOP, 0000, "nop",
|
|
|
|
0, NOOPOP, 0040, "rim", /* 8085 */
|
|
|
|
0, NOOPOP, 0060, "sim", /* 8085 */
|
2019-02-11 20:14:35 +00:00
|
|
|
/*
|
|
|
|
* The Intel 8085 has a set of instructions for high level language
|
|
|
|
* support that were not originally documented.
|
|
|
|
*
|
|
|
|
* V = signed overflow (carry out ^ carry in)
|
|
|
|
* K = signed compare (v ^ sign)
|
|
|
|
*
|
|
|
|
* K is mostly useful for oveflowing INX and DEX to avoid the usual
|
|
|
|
* check via A. RSTV is useful for runtimes where signed overflow is a
|
|
|
|
* fault.
|
|
|
|
*/
|
|
|
|
0, NOOPOP, 0010, "dsub", /* 8085 undoc HL = HL - BC */
|
|
|
|
0, NOOPOP, 0020, "arhl", /* 8085 undoc HL arith right shift */
|
|
|
|
0, NOOPOP, 0030, "rld", /* 8085 undoc rotate DE left thru carry */
|
|
|
|
/* in effect ADC DE,DE */
|
|
|
|
0, D8OP, 0050, "ldhi", /* DE = HL + imm8 */
|
|
|
|
0, D8OP, 0070, "ldsi", /* DE = SP + imm8 */
|
|
|
|
0, NOOPOP, 0313, "rstv", /* RST8 if V set */
|
|
|
|
0, NOOPOP, 0331, "shlx", /* (DE) = HL */
|
|
|
|
0, NOOPOP, 0355, "lhlx", /* HL = (DE) */
|
|
|
|
0, D16OP, 0335, "jnk", /* Jump K clear */
|
|
|
|
0, D16OP, 0375, "jk", /* Jump K set */
|