1
0
mirror of https://github.com/PDP-10/klh10.git synced 2026-02-05 16:05:30 +00:00
Files
PDP-10.klh10/src/opcods.h
Olaf Seibert 58b59dbaa1 Overlay panda-dist/klh10-2.0h
by the late MRC, Mark Crispin.
Source: probably the former http://panda.com/tops-20/ .
panda-dist.tar.gz dated Mar 30  2007.
2015-04-27 23:07:21 +02:00

804 lines
37 KiB
C
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* OPCODS.H - Definitions of all PDP-10 instruction opcodes
*/
/* $Id: opcods.h,v 2.4 2002/05/21 16:54:32 klh Exp $
*/
/* Copyright © 1992, 1993, 2001 Kenneth L. Harrenstien
** All Rights Reserved
**
** This file is part of the KLH10 Distribution. Use, modification, and
** re-distribution is permitted subject to the terms in the file
** named "LICENSE", which contains the full text of the legal notices
** and should always accompany this Distribution.
**
** This software is provided "AS IS" with NO WARRANTY OF ANY KIND.
**
** This notice (including the copyright and warranty disclaimer)
** must be included in all copies or derivations of this software.
*/
/*
* $Log: opcods.h,v $
* Revision 2.4 2002/05/21 16:54:32 klh
* Add KLH10_I_CIRC to allow any sys to have CIRC
*
* Revision 2.3 2001/11/10 21:28:59 klh
* Final 2.0 distribution checkin
*
*/
#ifndef OPCODS_RCSID
# define OPCODS_RCSID \
RCSID(opcods_h,"$Id: opcods.h,v 2.4 2002/05/21 16:54:32 klh Exp $")
#endif
/* This file is intended to be included multiple times, always within
** a specific context that defines the macros "idef", "ixdef", and "iodef"
** suitably so as to declare or define various parts of the bindings
** represented in this file.
**
** Normal instructions are defined with:
** idef(opval, name, enum, rtn, flags)
**
** and EXTEND opcodes are defined with:
** ixdef(xopval, name, enum, rtn, flags)
**
** IO instructions (with internal or external devices) are
** defined with:
** iodef(iocod, name, enum, rtn, flags)
** where "iocod" is built with IOINOP or IOEXOP.
**
** Operations not specified here are all initialized at startup to
** an appropriate default value, usually "i_muuo" so the monitor
** can handle them.
** Only one opcode is truly illegal: 0 in EXEC mode, which currently
** stops the KLH10 rather than trapping. To change this,
** remove the definition for "ILLEG".
*/
idef(000, "ILLEG", I_ILLEG, i_illegal, IF_SPEC)
idef(001, "LUUO", I_LUUO, i_luuo, IF_OPN|IF_1X1) /* 001-037 inclusive */
idef(040, "MUUO", I_MUUO, i_muuo, IF_OPN|IF_1X1) /* all others */
/* Opcodes 040-0101 inclusive default to i_muuo */
/* Late KL additions, note opcodes formerly UUOs "reserved for DEC" */
#if KLH10_CPU_KLX
idef(052, "PMOVE", I_PMOVE, i_pmove, IF_1S) /* KL PMOVE */
idef(053, "PMOVEM",I_PMOVEM,i_pmovem,IF_1SM) /* KL PMOVEM */
#endif
#if KLH10_SYS_ITS /* ITS pager XCT */
idef(0102, "XCTRI", I_XCTRI, i_pxct, IF_SPEC|IF_MR|IF_MIN)
idef(0103, "XCTR", I_XCTR, i_pxct, IF_SPEC|IF_MR|IF_MIN)
#elif KLH10_CPU_KL
idef(0102, "GFAD", I_GFAD, i_gfad, IF_2X) /* KL GFAD */
idef(0103, "GFSB", I_GFSB, i_gfsb, IF_2X) /* KL GFSB */
#endif
#if KLH10_SYS_T10 || KLH10_SYS_T20
idef(0104, "JSYS", I_JSYS, i_muuo, IF_ME) /* BBN PAGER INSTRUCTION */
#endif
#if KLH10_CPU_KS || KLH10_CPU_KL
idef(0105, "ADJSP", I_ADJSP, i_adjsp, IF_1XI) /* KL/KS */
#endif
#if KLH10_CPU_KL
idef(0106, "GFMP", I_GFMP, i_gfmp, IF_2X) /* KL GFMP */
idef(0107, "GFDV", I_GFDV, i_gfdv, IF_2X) /* KL GFDV */
#endif
#if !KLH10_CPU_KA
idef(0110, "DFAD", I_DFAD, i_dfad, IF_2X) /* KI+ */
idef(0111, "DFSB", I_DFSB, i_dfsb, IF_2X) /* KI+ */
idef(0112, "DFMP", I_DFMP, i_dfmp, IF_2X) /* KI+ */
idef(0113, "DFDV", I_DFDV, i_dfdv, IF_2X) /* KI+ */
# if KLH10_CPU_KS || KLH10_CPU_KL
idef(0114, "DADD", I_DADD, i_dadd, IF_2X) /* KL/KS */
idef(0115, "DSUB", I_DSUB, i_dsub, IF_2X) /* KL/KS */
idef(0116, "DMUL", I_DMUL, i_dmul, IF_AS|IF_A4|IF_MR|IF_M2) /* KL/KS */
idef(0117, "DDIV", I_DDIV, i_ddiv, IF_AS|IF_A4|IF_MR|IF_M2) /* KL/KS */
# endif /* KL/KS */
idef(0120, "DMOVE", I_DMOVE, i_dmove, IF_2S) /* KI+ */
idef(0121, "DMOVN", I_DMOVN, i_dmovn, IF_2S) /* KI+ */
idef(0122, "FIX", I_FIX, i_fix, IF_1S) /* KI+ */
# if KLH10_CPU_KS || KLH10_CPU_KL
idef(0123,"EXTEND",I_EXTEND,i_extend,IF_SPEC|IF_AS|IF_A4|IF_MR|IF_M1) /* KL/KS */
# endif /* KL/KS */
idef(0124, "DMOVEM",I_DMOVEM,i_dmovem, IF_2SM) /* KI+ */
idef(0125, "DMOVNM",I_DMOVNM,i_dmovnm, IF_2SM) /* KI+ */
idef(0126, "FIXR", I_FIXR, i_fixr, IF_1S) /* KI+ */
idef(0127, "FLTR", I_FLTR, i_fltr, IF_1S) /* KI+ */
#endif /* !KA */
idef(0130, "UFA", I_UFA, i_ufa, IF_AS|IF_A2|IF_MR|IF_M1) /* KA/KI */
idef(0131, "DFN", I_DFN, i_dfn, IF_1XB) /* KA/KI only */
idef(0132, "FSC", I_FSC, i_fsc, IF_1XI)
idef(0133, "IBP", I_IBP, i_ibp, IF_AS|IF_A0|IF_MS|IF_M1)
idef(0134, "ILDB", I_ILDB, i_ildb, IF_AW|IF_A1|IF_MS|IF_M1)
idef(0135, "LDB", I_LDB, i_ldb, IF_AW|IF_A1|IF_MR|IF_M1)
idef(0136, "IDPB", I_IDPB, i_idpb, IF_AR|IF_A1|IF_MS|IF_M1)
idef(0137, "DPB", I_DPB, i_dpb, IF_AR|IF_A1|IF_MS|IF_M1)
idef(0140, "FAD", I_FAD, i_fad, IF_1X)
idef(0141, "FADL", I_FADL, i_fadl, IF_1XFL) /* PDP6/KA/KI (not KL/KS) */
idef(0142, "FADM", I_FADM, i_fadm, IF_1XM)
idef(0143, "FADB", I_FADB, i_fadb, IF_1XB)
idef(0144, "FADR", I_FADR, i_fadr, IF_1X)
idef(0145, "FADRI", I_FADRI, i_fadri, IF_1XFI) /* KA+ INSTR (PDP6: FADRL) */
idef(0146, "FADRM", I_FADRM, i_fadrm, IF_1XM)
idef(0147, "FADRB", I_FADRB, i_fadrb, IF_1XB)
idef(0150, "FSB", I_FSB, i_fsb, IF_1X)
idef(0151, "FSBL", I_FSBL, i_fsbl, IF_1XFL) /* PDP6/KA/KI (not KL/KS) */
idef(0152, "FSBM", I_FSBM, i_fsbm, IF_1XM)
idef(0153, "FSBB", I_FSBB, i_fsbb, IF_1XB)
idef(0154, "FSBR", I_FSBR, i_fsbr, IF_1X)
idef(0155, "FSBRI", I_FSBRI, i_fsbri, IF_1XFI) /* KA+ INSTR (PDP6: FSBRL) */
idef(0156, "FSBRM", I_FSBRM, i_fsbrm, IF_1XM)
idef(0157, "FSBRB", I_FSBRB, i_fsbrb, IF_1XB)
idef(0160, "FMP", I_FMP, i_fmp, IF_1X)
idef(0161, "FMPL", I_FMPL, i_fmpl, IF_1XFL) /* PDP6/KA/KI (not KL/KS) */
idef(0162, "FMPM", I_FMPM, i_fmpm, IF_1XM)
idef(0163, "FMPB", I_FMPB, i_fmpb, IF_1XB)
idef(0164, "FMPR", I_FMPR, i_fmpr, IF_1X)
idef(0165, "FMPRI", I_FMPRI, i_fmpri, IF_1XFI) /* KA+ INSTR (PDP6: FMPRL) */
idef(0166, "FMPRM", I_FMPRM, i_fmprm, IF_1XM)
idef(0167, "FMPRB", I_FMPRB, i_fmprb, IF_1XB)
idef(0170, "FDV", I_FDV, i_fdv, IF_1X)
idef(0171, "FDVL", I_FDVL, i_fdvl, IF_1XFL) /* PDP6/KA/KI (not KL/KS) */
idef(0172, "FDVM", I_FDVM, i_fdvm, IF_1XM)
idef(0173, "FDVB", I_FDVB, i_fdvb, IF_1XB)
idef(0174, "FDVR", I_FDVR, i_fdvr, IF_1X)
idef(0175, "FDVRI", I_FDVRI, i_fdvri, IF_1XFI) /* KA+ INSTR (PDP6: FDVRL) */
idef(0176, "FDVRM", I_FDVRM, i_fdvrm, IF_1XM)
idef(0177, "FDVRB", I_FDVRB, i_fdvrb, IF_1XB)
/* ; 200-277 (MOVE - SUBB) */
idef(0200, "MOVE", I_MOVE, i_move, IF_1S)
idef(0201, "MOVEI", I_MOVEI, i_movei, IF_1SI)
idef(0202, "MOVEM", I_MOVEM, i_movem, IF_1SM)
idef(0203, "MOVES", I_MOVES, i_moves, IF_1SS)
idef(0204, "MOVS", I_MOVS, i_movs, IF_1S)
idef(0205, "MOVSI", I_MOVSI, i_movsi, IF_1SI)
idef(0206, "MOVSM", I_MOVSM, i_movsm, IF_1SM)
idef(0207, "MOVSS", I_MOVSS, i_movss, IF_1SS)
idef(0210, "MOVN", I_MOVN, i_movn, IF_1S)
idef(0211, "MOVNI", I_MOVNI, i_movni, IF_1SI)
idef(0212, "MOVNM", I_MOVNM, i_movnm, IF_1SM)
idef(0213, "MOVNS", I_MOVNS, i_movns, IF_1SS)
idef(0214, "MOVM", I_MOVM, i_movm, IF_1S)
idef(0215, "MOVMI", I_MOVMI, i_movei, IF_1SI) /* Same as MOVEI */
idef(0216, "MOVMM", I_MOVMM, i_movmm, IF_1SM)
idef(0217, "MOVMS", I_MOVMS, i_movms, IF_1SS)
idef(0220, "IMUL", I_IMUL, i_imul, IF_1X)
idef(0221, "IMULI", I_IMULI, i_imuli, IF_1XI)
idef(0222, "IMULM", I_IMULM, i_imulm, IF_1XM)
idef(0223, "IMULB", I_IMULB, i_imulb, IF_1XB)
idef(0224, "MUL", I_MUL, i_mul, IF_AS|IF_A2|IF_X1)
idef(0225, "MULI", I_MULI, i_muli, IF_AS|IF_A2|IF_XI)
idef(0226, "MULM", I_MULM, i_mulm, IF_1XM)
idef(0227, "MULB", I_MULB, i_mulb, IF_AS|IF_A2|IF_MS|IF_M1)
idef(0230, "IDIV", I_IDIV, i_idiv, IF_AS|IF_A2|IF_X1)
idef(0231, "IDIVI", I_IDIVI, i_idivi, IF_AS|IF_A2|IF_XI)
idef(0232, "IDIVM", I_IDIVM, i_idivm, IF_AR|IF_A1|IF_MS|IF_M1)
idef(0233, "IDIVB", I_IDIVB, i_idivb, IF_AS|IF_A2|IF_MS|IF_M1)
idef(0234, "DIV", I_DIV, i_div, IF_AS|IF_A2|IF_X1)
idef(0235, "DIVI", I_DIVI, i_divi, IF_AS|IF_A2|IF_XI)
idef(0236, "DIVM", I_DIVM, i_divm, IF_AR|IF_A1|IF_MS|IF_M1)
idef(0237, "DIVB", I_DIVB, i_divb, IF_AS|IF_A2|IF_MS|IF_M1)
idef(0240, "ASH", I_ASH, i_ash, IF_AS|IF_A1|IF_ME8)
idef(0241, "ROT", I_ROT, i_rot, IF_AS|IF_A1|IF_ME8)
idef(0242, "LSH", I_LSH, i_lsh, IF_AS|IF_A1|IF_ME8)
idef(0243, "JFFO", I_JFFO, i_jffo, IF_AR|IF_A1|IF_ME|IF_JMP) /* KA+ */
idef(0244, "ASHC", I_ASHC, i_ashc, IF_AR|IF_A2|IF_ME8)
idef(0245, "ROTC", I_ROTC, i_rotc, IF_AR|IF_A2|IF_ME8)
idef(0246, "LSHC", I_LSHC, i_lshc, IF_AR|IF_A2|IF_ME8)
#if KLH10_I_CIRC /* AI-KA and KL/KS: ROTC WITH AC+1 GOING THE WRONG WAY */
idef(0247, "CIRC", I_CIRC, i_circ, IF_AR|IF_A2|IF_ME8)
#endif
idef(0250, "EXCH", I_EXCH, i_exch, IF_1XB)
idef(0251, "BLT", I_BLT, i_blt, IF_SPEC|IF_1XB)
idef(0252, "AOBJP", I_AOBJP, i_aobjp, IF_AS|IF_A1|IF_ME|IF_JMP)
idef(0253, "AOBJN", I_AOBJN, i_aobjn, IF_AS|IF_A1|IF_ME|IF_JMP)
idef(0254, "JRST", I_JRST, i_jrst, IF_SPEC|IF_ME|IF_JMP)
idef(0255, "JFCL", I_JFCL, i_jfcl, IF_SPEC|IF_ME|IF_JMP)
idef(0256, "XCT", I_XCT, i_xct, IF_SPEC|IF_MR|IF_MIN)
#if !KLH10_CPU_KA && (KLH10_PAG_KI || KLH10_PAG_KL)
idef(0257, "MAP", I_MAP, i_map, IF_1C|IF_X1) /* KI+ (DEC pager) */
#endif
idef(0260, "PUSHJ", I_PUSHJ, i_pushj, IF_SPEC|IF_1C|IF_ME|IF_JMP)
idef(0261, "PUSH", I_PUSH, i_push, IF_SPEC|IF_1X)
idef(0262, "POP", I_POP, i_pop, IF_SPEC|IF_AS|IF_A1|IF_MW|IF_M1)
idef(0263, "POPJ", I_POPJ, i_popj, IF_SPEC|IF_AS|IF_A1|IF_ME|IF_JMP)
idef(0264, "JSR", I_JSR, i_jsr, IF_MW|IF_M1|IF_JMP)
idef(0265, "JSP", I_JSP, i_jsp, IF_1C|IF_ME|IF_JMP)
idef(0266, "JSA", I_JSA, i_jsa, IF_AS|IF_A1|IF_MW|IF_M1|IF_JMP)
idef(0267, "JRA", I_JRA, i_jra, IF_SPEC|IF_AS|IF_A1|IF_ME|IF_JMP)
idef(0270, "ADD", I_ADD, i_add, IF_1X)
idef(0271, "ADDI", I_ADDI, i_addi, IF_1XI)
idef(0272, "ADDM", I_ADDM, i_addm, IF_1XM)
idef(0273, "ADDB", I_ADDB, i_addb, IF_1XB)
idef(0274, "SUB", I_SUB, i_sub, IF_1X)
idef(0275, "SUBI", I_SUBI, i_subi, IF_1XI)
idef(0276, "SUBM", I_SUBM, i_subm, IF_1XM)
idef(0277, "SUBB", I_SUBB, i_subb, IF_1XB)
/* ; 300-377 (CAI - SOSG) */
idef(0300, "CAI", I_CAI, i_cai, IF_NOP)
idef(0301, "CAIL", I_CAIL, i_cail, IF_SKP|IF_AR|IF_A1|IF_ME)
idef(0302, "CAIE", I_CAIE, i_caie, IF_SKP|IF_AR|IF_A1|IF_ME)
idef(0303, "CAILE", I_CAILE, i_caile, IF_SKP|IF_AR|IF_A1|IF_ME)
idef(0304, "CAIA", I_CAIA, i_caia, IF_SKP)
idef(0305, "CAIGE", I_CAIGE, i_caige, IF_SKP|IF_AR|IF_A1|IF_ME)
idef(0306, "CAIN", I_CAIN, i_cain, IF_SKP|IF_AR|IF_A1|IF_ME)
idef(0307, "CAIG", I_CAIG, i_caig, IF_SKP|IF_AR|IF_A1|IF_ME)
idef(0310, "CAM", I_CAM, i_cam, IF_MR|IF_M1)
idef(0311, "CAML", I_CAML, i_caml, IF_SKP|IF_AR|IF_A1|IF_MR|IF_M1)
idef(0312, "CAME", I_CAME, i_came, IF_SKP|IF_AR|IF_A1|IF_MR|IF_M1)
idef(0313, "CAMLE", I_CAMLE, i_camle, IF_SKP|IF_AR|IF_A1|IF_MR|IF_M1)
idef(0314, "CAMA", I_CAMA, i_cama, IF_SKP|IF_MR|IF_M1)
idef(0315, "CAMGE", I_CAMGE, i_camge, IF_SKP|IF_AR|IF_A1|IF_MR|IF_M1)
idef(0316, "CAMN", I_CAMN, i_camn, IF_SKP|IF_AR|IF_A1|IF_MR|IF_M1)
idef(0317, "CAMG", I_CAMG, i_camg, IF_SKP|IF_AR|IF_A1|IF_MR|IF_M1)
idef(0320, "JUMP", I_JUMP, i_jump, IF_NOP)
idef(0321, "JUMPL", I_JUMPL, i_jumpl, IF_JMP|IF_AR|IF_A1|IF_ME)
idef(0322, "JUMPE", I_JUMPE, i_jumpe, IF_JMP|IF_AR|IF_A1|IF_ME)
idef(0323, "JUMPLE",I_JUMPLE,i_jumple, IF_JMP|IF_AR|IF_A1|IF_ME)
idef(0324, "JUMPA", I_JUMPA, i_jumpa, IF_JMP|IF_ME)
idef(0325, "JUMPGE",I_JUMPGE,i_jumpge, IF_JMP|IF_AR|IF_A1|IF_ME)
idef(0326, "JUMPN", I_JUMPN, i_jumpn, IF_JMP|IF_AR|IF_A1|IF_ME)
idef(0327, "JUMPG", I_JUMPG, i_jumpg, IF_JMP|IF_AR|IF_A1|IF_ME)
idef(0330, "SKIP", I_SKIP, i_skip, IF_AW|IF_A0|IF_MR|IF_M1)
idef(0331, "SKIPL", I_SKIPL, i_skipl, IF_SKP|IF_AW|IF_A0|IF_MR|IF_M1)
idef(0332, "SKIPE", I_SKIPE, i_skipe, IF_SKP|IF_AW|IF_A0|IF_MR|IF_M1)
idef(0333, "SKIPLE",I_SKIPLE,i_skiple, IF_SKP|IF_AW|IF_A0|IF_MR|IF_M1)
idef(0334, "SKIPA", I_SKIPA, i_skipa, IF_SKP|IF_AW|IF_A0|IF_MR|IF_M1)
idef(0335, "SKIPGE",I_SKIPGE,i_skipge, IF_SKP|IF_AW|IF_A0|IF_MR|IF_M1)
idef(0336, "SKIPN", I_SKIPN, i_skipn, IF_SKP|IF_AW|IF_A0|IF_MR|IF_M1)
idef(0337, "SKIPG", I_SKIPG, i_skipg, IF_SKP|IF_AW|IF_A0|IF_MR|IF_M1)
idef(0340, "AOJ", I_AOJ, i_aoj, IF_AS|IF_A1|IF_ME)
idef(0341, "AOJL", I_AOJL, i_aojl, IF_JMP|IF_AS|IF_A1|IF_ME)
idef(0342, "AOJE", I_AOJE, i_aoje, IF_JMP|IF_AS|IF_A1|IF_ME)
idef(0343, "AOJLE", I_AOJLE, i_aojle, IF_JMP|IF_AS|IF_A1|IF_ME)
idef(0344, "AOJA", I_AOJA, i_aoja, IF_JMP|IF_AS|IF_A1|IF_ME)
idef(0345, "AOJGE", I_AOJGE, i_aojge, IF_JMP|IF_AS|IF_A1|IF_ME)
idef(0346, "AOJN", I_AOJN, i_aojn, IF_JMP|IF_AS|IF_A1|IF_ME)
idef(0347, "AOJG", I_AOJG, i_aojg, IF_JMP|IF_AS|IF_A1|IF_ME)
idef(0350, "AOS", I_AOS, i_aos, IF_AW|IF_A0|IF_MS|IF_M1)
idef(0351, "AOSL", I_AOSL, i_aosl, IF_SKP|IF_AW|IF_A0|IF_MS|IF_M1)
idef(0352, "AOSE", I_AOSE, i_aose, IF_SKP|IF_AW|IF_A0|IF_MS|IF_M1)
idef(0353, "AOSLE", I_AOSLE, i_aosle, IF_SKP|IF_AW|IF_A0|IF_MS|IF_M1)
idef(0354, "AOSA", I_AOSA, i_aosa, IF_SKP|IF_AW|IF_A0|IF_MS|IF_M1)
idef(0355, "AOSGE", I_AOSGE, i_aosge, IF_SKP|IF_AW|IF_A0|IF_MS|IF_M1)
idef(0356, "AOSN", I_AOSN, i_aosn, IF_SKP|IF_AW|IF_A0|IF_MS|IF_M1)
idef(0357, "AOSG", I_AOSG, i_aosg, IF_SKP|IF_AW|IF_A0|IF_MS|IF_M1)
idef(0360, "SOJ", I_SOJ, i_soj, IF_AS|IF_A1|IF_ME)
idef(0361, "SOJL", I_SOJL, i_sojl, IF_JMP|IF_AS|IF_A1|IF_ME)
idef(0362, "SOJE", I_SOJE, i_soje, IF_JMP|IF_AS|IF_A1|IF_ME)
idef(0363, "SOJLE", I_SOJLE, i_sojle, IF_JMP|IF_AS|IF_A1|IF_ME)
idef(0364, "SOJA", I_SOJA, i_soja, IF_JMP|IF_AS|IF_A1|IF_ME)
idef(0365, "SOJGE", I_SOJGE, i_sojge, IF_JMP|IF_AS|IF_A1|IF_ME)
idef(0366, "SOJN", I_SOJN, i_sojn, IF_JMP|IF_AS|IF_A1|IF_ME)
idef(0367, "SOJG", I_SOJG, i_sojg, IF_JMP|IF_AS|IF_A1|IF_ME)
idef(0370, "SOS", I_SOS, i_sos, IF_AW|IF_A0|IF_MS|IF_M1)
idef(0371, "SOSL", I_SOSL, i_sosl, IF_SKP|IF_AW|IF_A0|IF_MS|IF_M1)
idef(0372, "SOSE", I_SOSE, i_sose, IF_SKP|IF_AW|IF_A0|IF_MS|IF_M1)
idef(0373, "SOSLE", I_SOSLE, i_sosle, IF_SKP|IF_AW|IF_A0|IF_MS|IF_M1)
idef(0374, "SOSA", I_SOSA, i_sosa, IF_SKP|IF_AW|IF_A0|IF_MS|IF_M1)
idef(0375, "SOSGE", I_SOSGE, i_sosge, IF_SKP|IF_AW|IF_A0|IF_MS|IF_M1)
idef(0376, "SOSN", I_SOSN, i_sosn, IF_SKP|IF_AW|IF_A0|IF_MS|IF_M1)
idef(0377, "SOSG", I_SOSG, i_sosg, IF_SKP|IF_AW|IF_A0|IF_MS|IF_M1)
/* ; 400-477 (SETZ - SETOB) */
idef(0400, "SETZ", I_SETZ, i_setz, IF_1C)
idef(0401, "SETZI", I_SETZI, i_setzi, IF_1C)
idef(0402, "SETZM", I_SETZM, i_setzm, IF_1CM)
idef(0403, "SETZB", I_SETZB, i_setzb, IF_1CB)
idef(0404, "AND", I_AND, i_and, IF_1X)
idef(0405, "ANDI", I_ANDI, i_andi, IF_1XI)
idef(0406, "ANDM", I_ANDM, i_andm, IF_1XM)
idef(0407, "ANDB", I_ANDB, i_andb, IF_1XB)
idef(0410, "ANDCA", I_ANDCA, i_andca, IF_1X)
idef(0411, "ANDCAI",I_ANDCAI,i_andcai, IF_1XI)
idef(0412, "ANDCAM",I_ANDCAM,i_andcam, IF_1XM)
idef(0413, "ANDCAB",I_ANDCAB,i_andcab, IF_1XB)
idef(0414, "SETM", I_SETM, i_setm, IF_1S)
#if KLH10_EXTADR
idef(0415,"XMOVEI",I_XMOVEI,i_xmovei, IF_1SI) /* Extended version */
#else
idef(0415,"SETMI", I_SETMI, i_setmi, IF_1SI)
#endif
idef(0416, "SETMM", I_SETMM, i_setmm, IF_MS|IF_M1)
idef(0417, "SETMB", I_SETMB, i_setmb, IF_1SB)
idef(0420, "ANDCM", I_ANDCM, i_andcm, IF_1X)
idef(0421, "ANDCMI",I_ANDCMI,i_andcmi, IF_1XI)
idef(0422, "ANDCMM",I_ANDCMM,i_andcmm, IF_1XM)
idef(0423, "ANDCMB",I_ANDCMB,i_andcmb, IF_1XB)
idef(0424, "SETA", I_SETA, i_seta, IF_NOP)
idef(0425, "SETAI", I_SETAI, i_setai, IF_NOP)
idef(0426, "SETAM", I_SETAM, i_setam, IF_1SM)
idef(0427, "SETAB", I_SETAB, i_setab, IF_1SM)
idef(0430, "XOR", I_XOR, i_xor, IF_1X)
idef(0431, "XORI", I_XORI, i_xori, IF_1XI)
idef(0432, "XORM", I_XORM, i_xorm, IF_1XM)
idef(0433, "XORB", I_XORB, i_xorb, IF_1XB)
idef(0434, "IOR", I_IOR, i_ior, IF_1X)
idef(0435, "IORI", I_IORI, i_iori, IF_1XI)
idef(0436, "IORM", I_IORM, i_iorm, IF_1XM)
idef(0437, "IORB", I_IORB, i_iorb, IF_1XB)
idef(0440, "ANDCB", I_ANDCB, i_andcb, IF_1X)
idef(0441, "ANDCBI",I_ANDCBI,i_andcbi, IF_1XI)
idef(0442, "ANDCBM",I_ANDCBM,i_andcbm, IF_1XM)
idef(0443, "ANDCBB",I_ANDCBB,i_andcbb, IF_1XB)
idef(0444, "EQV", I_EQV, i_eqv, IF_1X)
idef(0445, "EQVI", I_EQVI, i_eqvi, IF_1XI)
idef(0446, "EQVM", I_EQVM, i_eqvm, IF_1XM)
idef(0447, "EQVB", I_EQVB, i_eqvb, IF_1XB)
idef(0450, "SETCA", I_SETCA, i_setca, IF_AS|IF_A1)
idef(0451, "SETCAI",I_SETCAI,i_setcai, IF_AS|IF_A1)
idef(0452, "SETCAM",I_SETCAM,i_setcam, IF_1SM)
idef(0453, "SETCAB",I_SETCAB,i_setcab, IF_AS|IF_A1|IF_MW|IF_M1)
idef(0454, "ORCA", I_ORCA, i_orca, IF_1X)
idef(0455, "ORCAI", I_ORCAI, i_orcai, IF_1XI)
idef(0456, "ORCAM", I_ORCAM, i_orcam, IF_1XM)
idef(0457, "ORCAB", I_ORCAB, i_orcab, IF_1XB)
idef(0460, "SETCM", I_SETCM, i_setcm, IF_1X)
idef(0461, "SETCMI",I_SETCMI,i_setcmi, IF_1XI)
idef(0462, "SETCMM",I_SETCMM,i_setcmm, IF_1XM)
idef(0463, "SETCMB",I_SETCMB,i_setcmb, IF_1XB)
idef(0464, "ORCM", I_ORCM, i_orcm, IF_1X)
idef(0465, "ORCMI", I_ORCMI, i_orcmi, IF_1XI)
idef(0466, "ORCMM", I_ORCMM, i_orcmm, IF_1XM)
idef(0467, "ORCMB", I_ORCMB, i_orcmb, IF_1XB)
idef(0470, "ORCB", I_ORCB, i_orcb, IF_1X)
idef(0471, "ORCBI", I_ORCBI, i_orcbi, IF_1XI)
idef(0472, "ORCBM", I_ORCBM, i_orcbm, IF_1XM)
idef(0473, "ORCBB", I_ORCBB, i_orcbb, IF_1XB)
idef(0474, "SETO", I_SETO, i_seto, IF_1C)
idef(0475, "SETOI", I_SETOI, i_setoi, IF_1C)
idef(0476, "SETOM", I_SETOM, i_setom, IF_1CM)
idef(0477, "SETOB", I_SETOB, i_setob, IF_1CB)
/* ; 500-577 (HLL - HLRES) */
idef(0500, "HLL", I_HLL, i_hll, IF_1S)
#if KLH10_EXTADR
idef(0501,"XHLLI", I_XHLLI, i_xhlli, IF_1C) /* Extended version */
#else
idef(0501,"HLLI", I_HLLI, i_hlli, IF_1C)
#endif
idef(0502, "HLLM", I_HLLM, i_hllm, IF_1SM)
idef(0503, "HLLS", I_HLLS, i_hlls, IF_1SS)
idef(0504, "HRL", I_HRL, i_hrl, IF_1S)
idef(0505, "HRLI", I_HRLI, i_hrli, IF_1SI)
idef(0506, "HRLM", I_HRLM, i_hrlm, IF_1SM)
idef(0507, "HRLS", I_HRLS, i_hrls, IF_1SS)
idef(0510, "HLLZ", I_HLLZ, i_hllz, IF_1S)
idef(0511, "HLLZI", I_HLLZI, i_hllzi, IF_1C)
idef(0512, "HLLZM", I_HLLZM, i_hllzm, IF_1SM)
idef(0513, "HLLZS", I_HLLZS, i_hllzs, IF_1SS)
idef(0514, "HRLZ", I_HRLZ, i_hrlz, IF_1S)
idef(0515, "HRLZI", I_HRLZI, i_hrlzi, IF_1C)
idef(0516, "HRLZM", I_HRLZM, i_hrlzm, IF_1SM)
idef(0517, "HRLZS", I_HRLZS, i_hrlzs, IF_1SS)
idef(0520, "HLLO", I_HLLO, i_hllo, IF_1S)
idef(0521, "HLLOI", I_HLLOI, i_hlloi, IF_1C)
idef(0522, "HLLOM", I_HLLOM, i_hllom, IF_1SM)
idef(0523, "HLLOS", I_HLLOS, i_hllos, IF_1SS)
idef(0524, "HRLO", I_HRLO, i_hrlo, IF_1S)
idef(0525, "HRLOI", I_HRLOI, i_hrloi, IF_1C)
idef(0526, "HRLOM", I_HRLOM, i_hrlom, IF_1SM)
idef(0527, "HRLOS", I_HRLOS, i_hrlos, IF_1SS)
idef(0530, "HLLE", I_HLLE, i_hlle, IF_1S)
idef(0531, "HLLEI", I_HLLEI, i_hllei, IF_1C)
idef(0532, "HLLEM", I_HLLEM, i_hllem, IF_1SM)
idef(0533, "HLLES", I_HLLES, i_hlles, IF_1SS)
idef(0534, "HRLE", I_HRLE, i_hrle, IF_1S)
idef(0535, "HRLEI", I_HRLEI, i_hrlei, IF_1SI)
idef(0536, "HRLEM", I_HRLEM, i_hrlem, IF_1SM)
idef(0537, "HRLES", I_HRLES, i_hrles, IF_1SS)
idef(0540, "HRR", I_HRR, i_hrr, IF_1S)
idef(0541, "HRRI", I_HRRI, i_hrri, IF_1SI)
idef(0542, "HRRM", I_HRRM, i_hrrm, IF_1SM)
idef(0543, "HRRS", I_HRRS, i_hrrs, IF_1SS)
idef(0544, "HLR", I_HLR, i_hlr, IF_1S)
idef(0545, "HLRI", I_HLRI, i_hlri, IF_1C)
idef(0546, "HLRM", I_HLRM, i_hlrm, IF_1SM)
idef(0547, "HLRS", I_HLRS, i_hlrs, IF_1SS)
idef(0550, "HRRZ", I_HRRZ, i_hrrz, IF_1S)
idef(0551, "HRRZI", I_HRRZI, i_hrrzi, IF_1SI)
idef(0552, "HRRZM", I_HRRZM, i_hrrzm, IF_1SM)
idef(0553, "HRRZS", I_HRRZS, i_hrrzs, IF_1SS)
idef(0554, "HLRZ", I_HLRZ, i_hlrz, IF_1S)
idef(0555, "HLRZI", I_HLRZI, i_hlrzi, IF_1C)
idef(0556, "HLRZM", I_HLRZM, i_hlrzm, IF_1SM)
idef(0557, "HLRZS", I_HLRZS, i_hlrzs, IF_1SS)
idef(0560, "HRRO", I_HRRO, i_hrro, IF_1S)
idef(0561, "HRROI", I_HRROI, i_hrroi, IF_1SI)
idef(0562, "HRROM", I_HRROM, i_hrrom, IF_1SM)
idef(0563, "HRROS", I_HRROS, i_hrros, IF_1SS)
idef(0564, "HLRO", I_HLRO, i_hlro, IF_1S)
idef(0565, "HLROI", I_HLROI, i_hlroi, IF_1C)
idef(0566, "HLROM", I_HLROM, i_hlrom, IF_1SM)
idef(0567, "HLROS", I_HLROS, i_hlros, IF_1SS)
idef(0570, "HRRE", I_HRRE, i_hrre, IF_1S)
idef(0571, "HRREI", I_HRREI, i_hrrei, IF_1SI)
idef(0572, "HRREM", I_HRREM, i_hrrem, IF_1SM)
idef(0573, "HRRES", I_HRRES, i_hrres, IF_1SS)
idef(0574, "HLRE", I_HLRE, i_hlre, IF_1S)
idef(0575, "HLREI", I_HLREI, i_hlrei, IF_1C)
idef(0576, "HLREM", I_HLREM, i_hlrem, IF_1SM)
idef(0577, "HLRES", I_HLRES, i_hlres, IF_1SS)
/* ; 600-677 (TRN - TSON) */
idef(0600, "TRN", I_TRN, i_trn, IF_NOP)
idef(0601, "TLN", I_TLN, i_tln, IF_NOP)
idef(0602, "TRNE", I_TRNE, i_trne, IF_SKP|IF_AR|IF_A1|IF_ME)
idef(0603, "TLNE", I_TLNE, i_tlne, IF_SKP|IF_AR|IF_A1|IF_ME)
idef(0604, "TRNA", I_TRNA, i_trna, IF_SKP)
idef(0605, "TLNA", I_TLNA, i_tlna, IF_SKP)
idef(0606, "TRNN", I_TRNN, i_trnn, IF_SKP|IF_AR|IF_A1|IF_ME)
idef(0607, "TLNN", I_TLNN, i_tlnn, IF_SKP|IF_AR|IF_A1|IF_ME)
idef(0610, "TDN", I_TDN, i_tdn, IF_MR|IF_M1)
idef(0611, "TSN", I_TSN, i_tsn, IF_MR|IF_M1)
idef(0612, "TDNE", I_TDNE, i_tdne, IF_SKP|IF_AR|IF_A1|IF_MR|IF_M1)
idef(0613, "TSNE", I_TSNE, i_tsne, IF_SKP|IF_AR|IF_A1|IF_MR|IF_M1)
idef(0614, "TDNA", I_TDNA, i_tdna, IF_SKP|IF_AR|IF_A1|IF_MR|IF_M1)
idef(0615, "TSNA", I_TSNA, i_tsna, IF_SKP|IF_AR|IF_A1|IF_MR|IF_M1)
idef(0616, "TDNN", I_TDNN, i_tdnn, IF_SKP|IF_AR|IF_A1|IF_MR|IF_M1)
idef(0617, "TSNN", I_TSNN, i_tsnn, IF_SKP|IF_AR|IF_A1|IF_MR|IF_M1)
idef(0620, "TRZ", I_TRZ, i_trz, IF_AS|IF_A1|IF_ME)
idef(0621, "TLZ", I_TLZ, i_tlz, IF_AS|IF_A1|IF_ME)
idef(0622, "TRZE", I_TRZE, i_trze, IF_SKP|IF_AS|IF_A1|IF_ME)
idef(0623, "TLZE", I_TLZE, i_tlze, IF_SKP|IF_AS|IF_A1|IF_ME)
idef(0624, "TRZA", I_TRZA, i_trza, IF_SKP|IF_AS|IF_A1|IF_ME)
idef(0625, "TLZA", I_TLZA, i_tlza, IF_SKP|IF_AS|IF_A1|IF_ME)
idef(0626, "TRZN", I_TRZN, i_trzn, IF_SKP|IF_AS|IF_A1|IF_ME)
idef(0627, "TLZN", I_TLZN, i_tlzn, IF_SKP|IF_AS|IF_A1|IF_ME)
idef(0630, "TDZ", I_TDZ, i_tdz, IF_AS|IF_A1|IF_MR|IF_M1)
idef(0631, "TSZ", I_TSZ, i_tsz, IF_AS|IF_A1|IF_MR|IF_M1)
idef(0632, "TDZE", I_TDZE, i_tdze, IF_SKP|IF_AS|IF_A1|IF_MR|IF_M1)
idef(0633, "TSZE", I_TSZE, i_tsze, IF_SKP|IF_AS|IF_A1|IF_MR|IF_M1)
idef(0634, "TDZA", I_TDZA, i_tdza, IF_SKP|IF_AS|IF_A1|IF_MR|IF_M1)
idef(0635, "TSZA", I_TSZA, i_tsza, IF_SKP|IF_AS|IF_A1|IF_MR|IF_M1)
idef(0636, "TDZN", I_TDZN, i_tdzn, IF_SKP|IF_AS|IF_A1|IF_MR|IF_M1)
idef(0637, "TSZN", I_TSZN, i_tszn, IF_SKP|IF_AS|IF_A1|IF_MR|IF_M1)
idef(0640, "TRC", I_TRC, i_trc, IF_AS|IF_A1|IF_ME)
idef(0641, "TLC", I_TLC, i_tlc, IF_AS|IF_A1|IF_ME)
idef(0642, "TRCE", I_TRCE, i_trce, IF_SKP|IF_AS|IF_A1|IF_ME)
idef(0643, "TLCE", I_TLCE, i_tlce, IF_SKP|IF_AS|IF_A1|IF_ME)
idef(0644, "TRCA", I_TRCA, i_trca, IF_SKP|IF_AS|IF_A1|IF_ME)
idef(0645, "TLCA", I_TLCA, i_tlca, IF_SKP|IF_AS|IF_A1|IF_ME)
idef(0646, "TRCN", I_TRCN, i_trcn, IF_SKP|IF_AS|IF_A1|IF_ME)
idef(0647, "TLCN", I_TLCN, i_tlcn, IF_SKP|IF_AS|IF_A1|IF_ME)
idef(0650, "TDC", I_TDC, i_tdc, IF_AS|IF_A1|IF_MR|IF_M1)
idef(0651, "TSC", I_TSC, i_tsc, IF_AS|IF_A1|IF_MR|IF_M1)
idef(0652, "TDCE", I_TDCE, i_tdce, IF_SKP|IF_AS|IF_A1|IF_MR|IF_M1)
idef(0653, "TSCE", I_TSCE, i_tsce, IF_SKP|IF_AS|IF_A1|IF_MR|IF_M1)
idef(0654, "TDCA", I_TDCA, i_tdca, IF_SKP|IF_AS|IF_A1|IF_MR|IF_M1)
idef(0655, "TSCA", I_TSCA, i_tsca, IF_SKP|IF_AS|IF_A1|IF_MR|IF_M1)
idef(0656, "TDCN", I_TDCN, i_tdcn, IF_SKP|IF_AS|IF_A1|IF_MR|IF_M1)
idef(0657, "TSCN", I_TSCN, i_tscn, IF_SKP|IF_AS|IF_A1|IF_MR|IF_M1)
idef(0660, "TRO", I_TRO, i_tro, IF_AS|IF_A1|IF_ME)
idef(0661, "TLO", I_TLO, i_tlo, IF_AS|IF_A1|IF_ME)
idef(0662, "TROE", I_TROE, i_troe, IF_SKP|IF_AS|IF_A1|IF_ME)
idef(0663, "TLOE", I_TLOE, i_tloe, IF_SKP|IF_AS|IF_A1|IF_ME)
idef(0664, "TROA", I_TROA, i_troa, IF_SKP|IF_AS|IF_A1|IF_ME)
idef(0665, "TLOA", I_TLOA, i_tloa, IF_SKP|IF_AS|IF_A1|IF_ME)
idef(0666, "TRON", I_TRON, i_tron, IF_SKP|IF_AS|IF_A1|IF_ME)
idef(0667, "TLON", I_TLON, i_tlon, IF_SKP|IF_AS|IF_A1|IF_ME)
idef(0670, "TDO", I_TDO, i_tdo, IF_AS|IF_A1|IF_MR|IF_M1)
idef(0671, "TSO", I_TSO, i_tso, IF_AS|IF_A1|IF_MR|IF_M1)
idef(0672, "TDOE", I_TDOE, i_tdoe, IF_SKP|IF_AS|IF_A1|IF_MR|IF_M1)
idef(0673, "TSOE", I_TSOE, i_tsoe, IF_SKP|IF_AS|IF_A1|IF_MR|IF_M1)
idef(0674, "TDOA", I_TDOA, i_tdoa, IF_SKP|IF_AS|IF_A1|IF_MR|IF_M1)
idef(0675, "TSOA", I_TSOA, i_tsoa, IF_SKP|IF_AS|IF_A1|IF_MR|IF_M1)
idef(0676, "TDON", I_TDON, i_tdon, IF_SKP|IF_AS|IF_A1|IF_MR|IF_M1)
idef(0677, "TSON", I_TSON, i_tson, IF_SKP|IF_AS|IF_A1|IF_MR|IF_M1)
/* I/O INSTRUCTION DISPATCH */
/* Opcodes 0700-0777 inclusive default to either i_muuo or i_diodisp */
#if KLH10_CPU_KS || KLH10_CPU_KL /* "Internal" devices; AC-dispatched */
idef(0700, "IO700", I_IOV0, i_io700disp, IF_IO)
idef(0701, "IO701", I_IOV1, i_io701disp, IF_IO)
idef(0702, "IO702", I_IOV2, i_io702disp, IF_IO)
#endif /* KS || KL */
/* idef(0703, NULL, I_IO03, i_703, IF_IO) */
#if KLH10_CPU_KS /* Only KS, sigh... */
idef(0704, "UMOVE", I_UMOVE, i_umove, IF_SPEC) /* KS = PXCT 4,[MOVE] */
idef(0705, "UMOVEM", I_UMOVEM, i_umovem, IF_SPEC) /* KS = PXCT 4,[MOVEM] */
#endif /* KS */
/* idef(0706, NULL, I_IO06, i_706, IF_IO) */
/* idef(0707, NULL, I_IO07, i_707, IF_IO) */
#if KLH10_CPU_KS
# if KLH10_SYS_ITS
idef(0710, "IORDI", I_IORDI, i_iordi, IF_MEIO)
idef(0711, "IORDQ", I_IORDQ, i_iordq, IF_MEIO)
idef(0712, "IORD", I_IORD, i_iord, IF_MEIO)
idef(0713, "IOWR", I_IOWR, i_iowr, IF_MEIO)
idef(0714, "IOWRI", I_IOWRI, i_iowri, IF_MEIO)
idef(0715, "IOWRQ", I_IOWRQ, i_iowrq, IF_MEIO)
# else /* DEC */
idef(0710, "TIOE", I_TIOE, i_tioe, IF_MEIO)
idef(0711, "TION", I_TION, i_tion, IF_MEIO)
idef(0712, "RDIO", I_RDIO, i_rdio, IF_MEIO)
idef(0713, "WRIO", I_WRIO, i_wrio, IF_MEIO)
idef(0714, "BSIO", I_BSIO, i_bsio, IF_MEIO)
idef(0715, "BCIO", I_BCIO, i_bcio, IF_MEIO)
# endif /* DEC */
idef(0716, "BLTBU", I_BLTBU, i_bltbu, IF_SPEC|IF_AS|IF_A1|IF_MW|IF_M1)
idef(0717, "BLTUB", I_BLTUB, i_bltub, IF_SPEC|IF_AS|IF_A1|IF_MW|IF_M1)
# if KLH10_SYS_ITS
idef(0720, "IORDBI", I_IORDBI, i_iordbi, IF_MEIO)
idef(0721, "IORDBQ", I_IORDBQ, i_iordbq, IF_MEIO)
idef(0722, "IORDB", I_IORDB, i_iordb, IF_MEIO)
idef(0723, "IOWRB", I_IOWRB, i_iowrb, IF_MEIO)
idef(0724, "IOWRBI", I_IOWRBI, i_iowrbi, IF_MEIO)
idef(0725, "IOWRBQ", I_IOWRBQ, i_iowrbq, IF_MEIO)
# else /* DEC */
idef(0720, "TIOEB", I_TIOEB, i_tioeb, IF_MEIO)
idef(0721, "TIONB", I_TIONB, i_tionb, IF_MEIO)
idef(0722, "RDIOB", I_RDIOB, i_rdiob, IF_MEIO)
idef(0723, "WRIOB", I_WRIOB, i_wriob, IF_MEIO)
idef(0724, "BSIOB", I_BSIOB, i_bsiob, IF_MEIO)
idef(0725, "BCIOB", I_BCIOB, i_bciob, IF_MEIO)
# endif /* DEC */
#endif /* KLH10_CPU_KS */
/*
idef(0726, NULL, I_IO26, i_726, IF_IO)
idef(0727, NULL, I_IO27, i_727, IF_IO)
idef(0730, NULL, I_IO30, i_730, IF_IO)
idef(0731, NULL, I_IO31, i_731, IF_IO)
idef(0732, NULL, I_IO32, i_732, IF_IO)
idef(0733, NULL, I_IO33, i_733, IF_IO)
idef(0734, NULL, I_IO34, i_734, IF_IO)
idef(0735, NULL, I_IO35, i_735, IF_IO)
idef(0736, NULL, I_IO36, i_736, IF_IO)
idef(0737, NULL, I_IO37, i_737, IF_IO)
idef(0740, NULL, I_IO40, i_740, IF_IO)
idef(0741, NULL, I_IO41, i_741, IF_IO)
idef(0742, NULL, I_IO42, i_742, IF_IO)
idef(0743, NULL, I_IO43, i_743, IF_IO)
idef(0744, NULL, I_IO44, i_744, IF_IO)
idef(0745, NULL, I_IO45, i_745, IF_IO)
idef(0746, NULL, I_IO46, i_746, IF_IO)
idef(0747, NULL, I_IO47, i_747, IF_IO)
idef(0750, NULL, I_IO50, i_750, IF_IO)
idef(0751, NULL, I_IO51, i_751, IF_IO)
idef(0752, NULL, I_IO52, i_752, IF_IO)
idef(0753, NULL, I_IO53, i_753, IF_IO)
idef(0754, NULL, I_IO54, i_754, IF_IO)
idef(0755, NULL, I_IO55, i_755, IF_IO)
idef(0756, NULL, I_IO56, i_756, IF_IO)
idef(0757, NULL, I_IO57, i_757, IF_IO)
idef(0760, NULL, I_IO60, i_760, IF_IO)
idef(0761, NULL, I_IO61, i_761, IF_IO)
idef(0762, NULL, I_IO62, i_762, IF_IO)
idef(0763, NULL, I_IO63, i_763, IF_IO)
idef(0764, NULL, I_IO64, i_764, IF_IO)
idef(0765, NULL, I_IO65, i_765, IF_IO)
idef(0766, NULL, I_IO66, i_766, IF_IO)
idef(0767, NULL, I_IO67, i_767, IF_IO)
idef(0770, NULL, I_IO70, i_770, IF_IO)
idef(0771, NULL, I_IO71, i_771, IF_IO)
idef(0772, NULL, I_IO72, i_772, IF_IO)
idef(0773, NULL, I_IO73, i_773, IF_IO)
idef(0774, NULL, I_IO74, i_774, IF_IO)
idef(0775, NULL, I_IO75, i_775, IF_IO)
idef(0776, NULL, I_IO76, i_776, IF_IO)
idef(0777, NULL, I_IO77, i_777, IF_IO)
*/
/* "INTERNAL" DEVICE IO INSTRUCTIONS (0700-0702 inclusive) */
/* APR */
iodef(IOINOP(0700, 0), "APRID", IO_APRID, io_aprid, IF_IO) /* BI APR, */
#if !KLH10_CPU_KS
/* DATAI APR, - (KL: Read address break)
(KA/KI: Read console switches) */
iodef(IOINOP(0700, 01), NULL, IO_DI_APR, io_di_apr, IF_IO) /* DI APR, */
#endif
#if KLH10_CPU_KL
iodef(IOINOP(0700, 02), "WRFIL", IO_WRFIL, io_wrfil, IF_IO) /* BO APR, */
#endif
#if !KLH10_CPU_KS
/* DATAO APR, - (KL: Set Address Break)
(KI: set maint)
(KA: set relocs) */
iodef(IOINOP(0700, 03), NULL, IO_DO_APR, io_do_apr, IF_IO) /* DO APR, */
#endif
iodef(IOINOP(0700, 04), "WRAPR", IO_WRAPR, io_wrapr, IF_IO) /* CO APR, */
iodef(IOINOP(0700, 05), "RDAPR", IO_RDAPR, io_rdapr, IF_IO) /* CI APR, */
iodef(IOINOP(0700, 06), NULL, IO_SZ_APR, io_sz_apr, IF_IO) /* SZ APR, */
iodef(IOINOP(0700, 07), NULL, IO_SO_APR, io_so_apr, IF_IO) /* SO APR, */
/* PI */
#if KLH10_CPU_KL
iodef(IOINOP(0700, 010), "RDERA", IO_RDERA, io_rdera, IF_IO) /* BI PI, */
#endif
#if 0
iodef(IOINOP(0700, 011), NULL, IO_DI_PI, NULL, IF_IO) /* DI PI, */
#endif
#if KLH10_CPU_KL
iodef(IOINOP(0700, 012),"SBDIAG",IO_SBDIAG,io_sbdiag,IF_IO) /* BO PI, */
#endif
/* DATAO PI, - (KA/KI: Disp data on console lites) */
iodef(IOINOP(0700, 013), NULL, IO_DO_PI, io_do_pi, IF_IO) /* DO PI, */
iodef(IOINOP(0700, 014), "WRPI", IO_WRPI, io_wrpi, IF_IO) /* CO PI, */
iodef(IOINOP(0700, 015), "RDPI", IO_RDPI, io_rdpi, IF_IO) /* CI PI, */
iodef(IOINOP(0700, 016), NULL, IO_SZ_PI, io_sz_pi, IF_IO) /* SZ PI, */
iodef(IOINOP(0700, 017), NULL, IO_SO_PI, io_so_pi, IF_IO) /* SO PI, */
/* PAG */
#if KLH10_CPU_KS || KLH10_CPU_KL
# if KLH10_SYS_ITS
iodef(IOINOP(0701, 0),"CLRCSH",IO_CLRCSH,io_clrcsh,IF_IO) /* BI PAG, */
# endif
iodef(IOINOP(0701, 01), "RDUBR", IO_RDUBR, io_rdubr, IF_IO) /* DI PAG, */
iodef(IOINOP(0701, 02), "CLRPT", IO_CLRPT, io_clrpt, IF_IO) /* BO PAG, */
iodef(IOINOP(0701, 03), "WRUBR", IO_WRUBR, io_wrubr, IF_IO) /* DO PAG, */
iodef(IOINOP(0701, 04), "WREBR", IO_WREBR, io_wrebr, IF_IO) /* CO PAG, */
iodef(IOINOP(0701, 05), "RDEBR", IO_RDEBR, io_rdebr, IF_IO) /* CI PAG, */
# if KLH10_CPU_KL
iodef(IOINOP(0701, 06), NULL, IO_SZ_PAG, io_sz_pag, IF_IO) /* SZ PAG, */
iodef(IOINOP(0701, 07), NULL, IO_SO_PAG, io_so_pag, IF_IO) /* SO PAG, */
# endif
#endif /* KS || KL */
/* CCA */
#if KLH10_CPU_KL
iodef(IOINOP(0701, 010), NULL, IO_BI_CCA,io_swp, IF_IO) /* BI CCA, */
iodef(IOINOP(0701, 011), "SWPIA", IO_SWPIA, io_swpia, IF_IO) /* DI CCA, */
iodef(IOINOP(0701, 012), "SWPVA", IO_SWPVA, io_swpva, IF_IO) /* BO CCA, */
iodef(IOINOP(0701, 013), "SWPUA", IO_SWPUA, io_swpua, IF_IO) /* DO CCA, */
iodef(IOINOP(0701, 014), NULL, IO_CO_CCA,io_swp, IF_IO) /* CO CCA, */
iodef(IOINOP(0701, 015), "SWPIO", IO_SWPIO, io_swpio, IF_IO) /* CI CCA, */
iodef(IOINOP(0701, 016), "SWPVO", IO_SWPVO, io_swpvo, IF_IO) /* SZ CCA, */
iodef(IOINOP(0701, 017), "SWPUO", IO_SWPUO, io_swpuo, IF_IO) /* SO CCA, */
#elif KLH10_SYS_ITS && KLH10_CPU_KS
iodef(IOINOP(0701, 011), "RDPCST",IO_RDPCST,io_rdpcst,IF_IO) /* DI CCA, */
iodef(IOINOP(0701, 013), "WRPCST",IO_WRPCST,io_wrpcst,IF_IO) /* DO CCA, */
#endif
/* TIM */
#if KLH10_CPU_KS
# if KLH10_PAG_ITS
iodef(IOINOP(0702, 0), "SDBR1", IO_SDBR1, io_sdbr1, IF_IO) /* BI TIM, */
iodef(IOINOP(0702, 01), "SDBR2", IO_SDBR2, io_sdbr2, IF_IO) /* DI TIM, */
iodef(IOINOP(0702, 02), "SDBR3", IO_SDBR3, io_sdbr3, IF_IO) /* BO TIM, */
iodef(IOINOP(0702, 03), "SDBR4", IO_SDBR4, io_sdbr4, IF_IO) /* DO TIM, */
iodef(IOINOP(0702, 07), "SPM", IO_SPM, io_spm, IF_IO) /* SO TIM, */
# elif KLH10_PAG_KL /* DEC-specific hacks */
iodef(IOINOP(0702, 0), "RDSPB", IO_RDSPB, io_rdspb, IF_IO) /* BI TIM, */
iodef(IOINOP(0702, 01), "RDCSB", IO_RDCSB, io_rdcsb, IF_IO) /* DI TIM, */
iodef(IOINOP(0702, 02), "RDPUR", IO_RDPUR, io_rdpur, IF_IO) /* BO TIM, */
iodef(IOINOP(0702, 03), "RDCSTM",IO_RDCSTM,io_rdcstm,IF_IO) /* DO TIM, */
# endif
iodef(IOINOP(0702, 04), "RDTIM", IO_RDTIM, io_rdtim, IF_IO) /* CO TIM, */
iodef(IOINOP(0702, 05), "RDINT", IO_RDINT, io_rdint, IF_IO) /* CI TIM, */
iodef(IOINOP(0702, 06), "RDHSB", IO_RDHSB, io_rdhsb, IF_IO) /* SZ TIM, */
#endif /* KS */
#if KLH10_CPU_KL
iodef(IOINOP(0702, 0), "RDPERF", IO_RDPERF, io_rdperf, IF_IO) /* BI TIM, */
iodef(IOINOP(0702, 01), "RDTIME", IO_RDTIME, io_rdtime, IF_IO) /* DI TIM, */
iodef(IOINOP(0702, 02), "WRPAE", IO_WRPAE, io_wrpae, IF_IO) /* BO TIM, */
# if 0
iodef(IOINOP(0702, 03), NULL, IO_DO_TIM, NULL, IF_IO) /* DO TIM, */
# endif
iodef(IOINOP(0702, 04), NULL, IO_CO_TIM, io_co_tim, IF_IO) /* CO TIM, */
iodef(IOINOP(0702, 05), NULL, IO_CI_TIM, io_ci_tim, IF_IO) /* CI TIM, */
iodef(IOINOP(0702, 06), NULL, IO_SZ_TIM, io_sz_tim, IF_IO) /* SZ TIM, */
iodef(IOINOP(0702, 07), NULL, IO_SO_TIM, io_so_tim, IF_IO) /* SO TIM, */
#endif /* KL */
/* MTR */
#if KLH10_CPU_KS
# if KLH10_PAG_ITS
iodef(IOINOP(0702, 010), "LDBR1", IO_LDBR1, io_ldbr1, IF_IO) /* BI MTR, */
iodef(IOINOP(0702, 011), "LDBR2", IO_LDBR2, io_ldbr2, IF_IO) /* DI MTR, */
iodef(IOINOP(0702, 012), "LDBR3", IO_LDBR3, io_ldbr3, IF_IO) /* BO MTR, */
iodef(IOINOP(0702, 013), "LDBR4", IO_LDBR4, io_ldbr4, IF_IO) /* DO MTR, */
iodef(IOINOP(0702, 017), "LPMR", IO_LPMR, io_lpmr, IF_IO) /* SO MTR, */
# elif KLH10_PAG_KL /* DEC-specific hacks */
iodef(IOINOP(0702, 010), "WRSPB", IO_WRSPB, io_wrspb, IF_IO) /* BI MTR, */
iodef(IOINOP(0702, 011), "WRCSB", IO_WRCSB, io_wrcsb, IF_IO) /* DI MTR, */
iodef(IOINOP(0702, 012), "WRPUR", IO_WRPUR, io_wrpur, IF_IO) /* BO MTR, */
iodef(IOINOP(0702, 013), "WRCSTM",IO_WRCSTM,io_wrcstm,IF_IO) /* DO MTR, */
# endif
iodef(IOINOP(0702, 014), "WRTIM", IO_WRTIM, io_wrtim, IF_IO) /* CO MTR, */
iodef(IOINOP(0702, 015), "WRINT", IO_WRINT, io_wrint, IF_IO) /* CI MTR, */
iodef(IOINOP(0702, 016), "WRHSB", IO_WRHSB, io_wrhsb, IF_IO) /* SZ MTR, */
#endif /* KS */
#if KLH10_CPU_KL
iodef(IOINOP(0702, 010), "RDMACT",IO_RDMACT, io_rdmact, IF_IO) /* BI MTR, */
iodef(IOINOP(0702, 011), "RDEACT",IO_RDEACT, io_rdeact, IF_IO) /* DI MTR, */
# if 0
iodef(IOINOP(0702, 012), NULL, IO_BO_MTR, NULL, IF_IO) /* BO MTR, */
iodef(IOINOP(0702, 013), NULL, IO_DO_MTR, NULL, IF_IO) /* DO MTR, */
# endif
iodef(IOINOP(0702, 014), "WRTIME",IO_WRTIME, io_wrtime, IF_IO) /* CO MTR, */
iodef(IOINOP(0702, 015), NULL, IO_CI_MTR, io_ci_mtr, IF_IO) /* CI MTR, */
iodef(IOINOP(0702, 016), NULL, IO_SZ_MTR, io_sz_mtr, IF_IO) /* SZ MTR, */
iodef(IOINOP(0702, 017), NULL, IO_SO_MTR, io_so_mtr, IF_IO) /* SO MTR, */
#endif /* KL */
/* NOTE!! Check the IO_N def in opdefs.h if more IO-class ops are added! */
/* EXTENDED INSTRUCTIONS */
#if (KLH10_CPU_KS || KLH10_CPU_KL) \
&& (KLH10_SYS_T10 || KLH10_SYS_T20) /* DEC systems only */
ixdef(IXOP(000), "ILLEG", IX_ILLEG, ix_undef, IF_SPEC)
ixdef(IXOP(001), "CMPSL", IX_CMPSL, ix_cmps, IF_SPEC) /* Common rtn */
ixdef(IXOP(002), "CMPSE", IX_CMPSE, ix_cmps, IF_SPEC) /* " */
ixdef(IXOP(003), "CMPSLE", IX_CMPSLE, ix_cmps, IF_SPEC) /* " */
ixdef(IXOP(004), "EDIT", IX_EDIT, ix_edit, IF_SPEC)
ixdef(IXOP(005), "CMPSGE", IX_CMPSGE, ix_cmps, IF_SPEC) /* Common rtn */
ixdef(IXOP(006), "CMPSN", IX_CMPSN, ix_cmps, IF_SPEC) /* " */
ixdef(IXOP(007), "CMPSG", IX_CMPSG, ix_cmps, IF_SPEC) /* " */
ixdef(IXOP(010), "CVTDBO", IX_CVTDBO, ix_cvtdb, IF_SPEC) /* Common rtn */
ixdef(IXOP(011), "CVTDBT", IX_CVTDBT, ix_cvtdb, IF_SPEC) /* " */
ixdef(IXOP(012), "CVTBDO", IX_CVTBDO, ix_cvtbd, IF_SPEC) /* Common rtn */
ixdef(IXOP(013), "CVTBDT", IX_CVTBDT, ix_cvtbd, IF_SPEC) /* " */
ixdef(IXOP(014), "MOVSO", IX_MOVSO, ix_movso, IF_SPEC)
ixdef(IXOP(015), "MOVST", IX_MOVST, ix_movst, IF_SPEC)
ixdef(IXOP(016), "MOVSLJ", IX_MOVSLJ, ix_movslj,IF_SPEC)
ixdef(IXOP(017), "MOVSRJ", IX_MOVSRJ, ix_movsrj,IF_SPEC)
#if KLH10_CPU_KLX /* Always MUUO if not on extended KL */
ixdef(IXOP(020), "XBLT", IX_XBLT, ix_xblt, IF_SPEC)
#endif
#if KLH10_CPU_KL
ixdef(IXOP(021), "GSNGL", IX_GSNGL, ix_gsngl, IF_SPEC)
ixdef(IXOP(022), "GDBLE", IX_GDBLE, ix_gdble, IF_SPEC)
# if 0 /* Simulated in T10+T20 monitor */
ixdef(IXOP(023), "GDFIX", IX_GDFIX, ix_gdfix, IF_SPEC)
ixdef(IXOP(024), "GFIX", IX_GFIX, ix_gfix, IF_SPEC)
ixdef(IXOP(025), "GDFIXR", IX_GDFIXR, ix_gdfixr,IF_SPEC)
ixdef(IXOP(026), "GFIXR", IX_GFIXR, ix_gfixr, IF_SPEC)
# endif /* 0 */
ixdef(IXOP(027), "DGFLTR", IX_DGFLTR, ix_dgfltr,IF_SPEC)
ixdef(IXOP(030), "GFLTR", IX_GFLTR, ix_gfltr, IF_SPEC)
ixdef(IXOP(031), "GFSC", IX_GFSC, ix_gfsc, IF_SPEC)
#endif /* KL only */
#endif /* (KL||KS) && (T10||T20) */
/* NOTE!! Check the IX_N def in opdefs.h if more EXTEND ops are added! */
/* Other cruft for dubious posterity */
/*
;OLD PROGRAMS USE THESE NAMES
CLEAR==SETZ
CLEARI==SETZI
CLEARM==SETZM
CLEARB==SETZB
;RANDOM ALIAS NAMES
ERJMP==JUMP 16, ; TOPS-20 JSYS-error dispatch (becomes JRST)
ERCAL==JUMP 17, ; TOPS-20 JSYS-error call (becomes PUSHJ 17,)
ADJBP==IBP ;KL10 FORM OF IBP WITH VARIABLE NUMBER TO INCREMENT
JFOV==JFCL 1, ;PDP10 INSTRUCTION (PC CHANGE ON PDP6)
JCRY1==JFCL 2,
JCRY0==JFCL 4,
JCRY==JFCL 6,
JOV==JFCL 10,
PORTAL==JRST 1, ; KI/KL
JRSTF==JRST 2,
HALT==JRST 4,
XJRSTF==JRST 5, ; KL/KS
XJEN==JRST 6, ; KL/KS
XPCW==JRST 7, ; KL/KS
JEN==JRST 12,
SFM==JRST 14, ; KL/KS
XMOVEI==SETMI ; KL only
XHLLI==HLLI ; KL only
;PDP6 HAS LONG FORM ROUNDED INSTEAD OF IMMEDIATES (FADRL, not FADRI, etc)
*/