-- Code was originally generated by dginstr.go - there have been many edits...

-- Copyright ©2021,2022 Stephen Merrony
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU Affero General Public License as published
-- by the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- GNU Affero General Public License for more details.
--
-- You should have received a copy of the GNU Affero General Public License
-- along with this program.  If not, see <https://www.gnu.org/licenses/>.

with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;

with Interfaces;            use Interfaces;

with DG_Types; use DG_Types;

package CPU_Instructions is

-- Instruction Classes
type Instr_Class_T is (
	NOVA_MEMREF,
	NOVA_OP,
	NOVA_IO,
	NOVA_MATH,
	NOVA_PC,
	ECLIPSE_FPU,
	ECLIPSE_MEMREF,
	ECLIPSE_OP,
	ECLIPSE_PC,
	ECLIPSE_STACK,
	EAGLE_DECIMAL,
	EAGLE_IO,
	EAGLE_PC,
	EAGLE_OP,
	EAGLE_MEMREF,
	EAGLE_STACK,
	EAGLE_FPU,
   EAGLE_MP
);

-- Instruction Formats
type Instr_Format_T is (
	DERR_FMT,
	IMM_MODE_2_WORD_FMT,
	IMM_ONEACC_FMT,
	IO_FLAGS_DEV_FMT,
	IO_TEST_DEV_FMT,
	LNDO_4_WORD_FMT,
   MULTI_PROC_2_WORD_FMT,
	NOACC_MODE_2_WORD_FMT,
	NOACC_MODE_3_WORD_FMT,
	NOACC_MODE_IMM_IND_3_WORD_FMT,
	NOACC_MODE_IND_2_WORD_E_FMT,
	NOACC_MODE_IND_2_WORD_X_FMT,
	NOACC_MODE_IND_3_WORD_FMT,
	NOACC_MODE_IND_3_WORD_XCALL_FMT,
	NOACC_MODE_IND_4_WORD_FMT,
	NOVA_DATA_IO_FMT,
	NOVA_NOACC_EFF_ADDR_FMT,
	NOVA_ONEACC_EFF_ADDR_FMT,
	NOVA_TWOACC_MULT_OP_FMT,
	ONEACC_IMM_2_WORD_FMT,
	ONEACC_IMMWD_2_WORD_FMT,
	ONEACC_IMM_3_WORD_FMT,
	ONEACC_MODE_2_WORD_E_FMT,
	ONEACC_MODE_2_WORD_X_B_FMT,
	ONEACC_MODE_3_WORD_B_FMT,
	ONEACC_MODE_IND_2_WORD_E_FMT,
	ONEACC_MODE_IND_2_WORD_X_FMT,
	ONEACC_MODE_IND_3_WORD_FMT,
	ONEACC_1_WORD_FMT,
	UNIQUE_1_WORD_FMT,
	UNIQUE_2_WORD_FMT,
	SPLIT_8BIT_DISP_FMT,
	THREE_WORD_DO_FMT,
	TWOACC_1_WORD_FMT,
	TWOACC_IMM_2_WORD_FMT,
	WIDE_DEC_SPECIAL_FMT,
	WSKB_FMT
);

-- Instruction Mnemonic Consts
type Instr_Mnemonic_T is (
   I_ADC,
   I_ADD,
   I_ADDI,
   I_ADI,
   I_ANC,
   I_AND,
   I_ANDI,
   I_BAM,
   I_BKPT,
   I_BLM,
   I_BTO,
   I_BTZ,
   I_CIO,
   I_CIOI,
   I_CLM,
   I_CMP,
   I_CMT,
   I_CMV,
   I_COB,
   I_COM,
   I_CRYTC,
   I_CRYTO,
   I_CRYTZ,
   I_CTR,
   I_CVWN,
   I_DAD,
   I_DEQUE,
   I_DERR,
   I_DHXL,
   I_DHXR,
   I_DIA,
   I_DIB,
   I_DIC,
   I_DIV,
   I_DIVS,
   I_DIVX,
   I_DLSH,
   I_DOA,
   I_DOB,
   I_DOC,
   I_DSB,
   I_DSPA,
   I_DSZ,
   I_DSZTS,
   I_ECLID,
   I_EDIT,
   I_EDSZ,
   I_EISZ,
   I_EJMP,
   I_EJSR,
   I_ELDA,
   I_ELDB,
   I_ELEF,
   I_ENQH,
   I_ENQT,
   I_ESTA,
   I_ESTB,
   I_FAD,
   I_FAS,
   I_FCLE,
   I_FCMP,
   I_FAB,
   I_FDD,
   I_FDS,
   I_FEXP,
   I_FFAS,
   I_FHLV,
   I_FINT,
   I_FLAS,
   I_FLDS,
   I_FLST,
   I_FMD,
   I_FMOV,
   I_FMS,
   I_FNEG,
   I_FNS,
   I_FPOP,
   I_FPSH,
   I_FRDS,
   I_FRH,
   I_FSA,
   I_FSD,
   I_FSEQ,
   I_FSGE,
   I_FSGT,
   I_FSLE,
   I_FSLT,
   I_FSNE,
   I_FSNER,
   I_FSS,
   I_FSST,
   I_FSTS,
   I_FTD,
   I_FTE,
   I_FXTD,
   I_FXTE,
   I_HALT,
   I_HLV,
   I_HXL,
   I_HXR,
   I_INC,
   I_INTA,
   I_INTDS,
   I_INTEN,
   I_IOR,
   I_IORI,
   I_IORST,
   I_ISZ,
   I_ISZTS,
   I_JMP,
   I_JSR,
   I_LCALL,
   I_LCPID,
   I_LDA,
   I_LDAFP,
   I_LDASB,
   I_LDASL,
   I_LDASP,
   I_LDATS,
   I_LDB,
   I_LDSP,
   I_LEF,
   I_LFAMD,
   I_LFDMD,
   I_LFDMS,
   I_LFLDD,
   I_LFLDS,
   I_LFMMD,
   I_LFMMS,
   I_LFSMD,
   I_LFSTD,
   I_LFSTS,
   I_LJMP,
   I_LJSR,
   I_LLDB,
   I_LLEF,
   I_LLEFB,
   I_LMRF,
   I_LNADD,
   I_LNADI,
   I_LNDIV,
   I_LNDO,
   I_LNDSZ,
   I_LNISZ,
   I_LNLDA,
   I_LNMUL,
   I_LNSBI,
   I_LNSTA,
   I_LNSUB,
   I_LOB,
   I_LPEF,
   I_LPEFB,
   I_LPHY,
   I_LPSHJ,
   I_LPSR,
   I_LRB,
   I_LSH,
   I_LSTB,
   I_LWADD,
   I_LWADI,
   I_LWDO,
   I_LWDSZ,
   I_LWISZ,
   I_LWLDA,
   I_LWMUL,
   I_LWSTA,
   I_LWSUB,
   I_MOV,
   I_MSKO,
   I_MSP,
   I_MUL,
   I_MULS,
   I_MPx,
   I_NADD,
   I_NADDI,
   I_NADI,
   I_NCLID,
   I_NDIV,
   I_NEG,
   I_NIO,
   I_NLDAI,
   I_NMUL,
   I_NNEG,
   I_NSALA,
   I_NSANA,
   I_NSBI,
   I_NSUB,
   I_PIO,
   I_POP,
   I_POPB,
   I_POPJ,
   I_PRTSEL,
   I_PSH,
   I_PSHJ,
   I_PSHR,
   I_READS,
   I_RSTR,
   I_RTN,
   I_SAVE,
   I_SBI,
   I_SEX,
   I_SGE,
   I_SGT,
   I_SKP,
   I_SNB,
   I_SNOVR,
   I_SPSR,
   I_SPTE,
   I_SSPT,
   I_STA,
   I_STAFP,
   I_STASB,
   I_STASL,
   I_STASP,
   I_STATS,
   I_STB,
   I_SUB,
   I_SZB,
   I_SZBO,
   I_WADC,
   I_WADD,
   I_WADDI,
   I_WADI,
   I_WANC,
   I_WAND,
   I_WANDI,
   I_WASH,
   I_WASHI,
   I_WBLM,
   I_WBR,
   I_WBTO,
   I_WBTZ,
   I_WCLM,
   I_WCMP,
   I_WCMV,
   I_WCOM,
   I_WCST,
   I_WCTR,
   I_WDecOp,
   I_WDIV,
   I_WDIVS,
   I_WFFAD,
   I_WFLAD,
   I_WFPOP,
   I_WFPSH,
   I_WHLV,
   I_WINC,
   I_WIOR,
   I_WIORI,
   I_WLDAI,
   I_WLDB,
   I_WLDI,
   I_WLMP,
   I_WLSH,
   I_WLSHI,
   I_WLSI,
   I_WMESS,
   I_WMOV,
   I_WMOVR,
   I_WMSP,
   I_WMUL,
   I_WMULS,
   I_WNADI,
   I_WNEG,
   I_WPOP,
   I_WPOPB,
   I_WPOPJ,
   I_WPSH,
   I_WRTN,
   I_WSANA,
   I_WSAVR,
   I_WSAVS,
   I_WSBI,
   I_WSEQ,
   I_WSEQI,
   I_WSGE,
   I_WSGT,
   I_WSGTI,
   I_WSKBO,
   I_WSKBZ,
   I_WSLE,
   I_WSLEI,
   I_WSLT,
   I_WSNB,
   I_WSNE,
   I_WSNEI,
   I_WSSVR,
   I_WSSVS,
   I_WSTB,
   I_WSTI,
   I_WSUB,
   I_WSZB,
   I_WSZBO,
   I_WUSGE,
   I_WUSGT,
   I_WUGTI,
   I_WULEI,
   I_WXCH,
   I_WXOR,
   I_WXORI,
   I_XCALL,
   I_XCH,
   I_XCT,
   I_XFAMD,
   I_XFAMS,
   I_XFDMS,
   I_XFLDD,
   I_XFLDS,
   I_XFMMD,
   I_XFMMS,
   I_XFSTD,
   I_XFSTS,
   I_XJMP,
   I_XJSR,
   I_XLDB,
   I_XLEF,
   I_XLEFB,
   I_XNADD,
   I_XNADI,
   I_XNDO,
   I_XNDSZ,
   I_XNISZ,
   I_XNLDA,
   I_XNMUL,
   I_XNSBI,
   I_XNSTA,
   I_XNSUB,
   I_XOR,
   I_XORI,
   I_XPEF,
   I_XPEFB,
   I_XPSHJ,
   I_XSTB,
   I_XWADD,
   I_XWADI,
   I_XWDIV,
   I_XWDO,
   I_XWDSZ,
   I_XWISZ,
   I_XWLDA,
   I_XWMUL,
   I_XWSBI,
   I_XWSTA,
   I_XWSUB,
   I_ZEX,
   -- These are handled differently...
   I_CINTR,
   I_IMODE,
   I_JPFLOAD,
   I_JPFLUSH,
   I_JPID,
   I_JPLCS,
   I_JPLOAD,
   I_JPSTART,
   I_JPSTATUS,
   I_JPSTOP
);

type Instr_Char_Rec is record
   Mnemonic    : Unbounded_String;
   Bits        : Word_T;
   Mask        : Word_T;
   Instr_Len   : Positive;
   Instr_Fmt   : Instr_Format_T;
   Instr_Class : Instr_Class_T;
   Disp_Offset : Integer_32;
end record;

type Instructions is array (Instr_Mnemonic_T range Instr_Mnemonic_T'Range) of Instr_Char_Rec;

Instruction_Set : constant Instructions :=
(
I_ADC => (To_Unbounded_String("ADC"), 16#8400#, 16#8700#, 1, NOVA_TWOACC_MULT_OP_FMT, NOVA_OP, 0),
I_ADD => (To_Unbounded_String("ADD"), 16#8600#, 16#8700#, 1, NOVA_TWOACC_MULT_OP_FMT, NOVA_OP, 0),
I_ADDI => (To_Unbounded_String("ADDI"), 16#e7f8#, 16#e7ff#, 2, ONEACC_IMM_2_WORD_FMT, ECLIPSE_OP, 0),
I_ADI => (To_Unbounded_String("ADI"), 16#8008#, 16#87ff#, 1, IMM_ONEACC_FMT, ECLIPSE_OP, 0),
I_ANC => (To_Unbounded_String("ANC"), 16#8188#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_OP, 0),
I_AND => (To_Unbounded_String("AND"), 16#8700#, 16#8700#, 1, NOVA_TWOACC_MULT_OP_FMT, NOVA_OP, 0),
I_ANDI => (To_Unbounded_String("ANDI"), 16#c7f8#, 16#e7ff#, 2, ONEACC_IMMWD_2_WORD_FMT, ECLIPSE_OP, 0),
I_BAM => (To_Unbounded_String("BAM"), 16#97c8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_MEMREF, 0),
I_BKPT => (To_Unbounded_String("BKPT"), 16#c789#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_PC, 0),
I_BLM => (To_Unbounded_String("BLM"), 16#b7c8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_MEMREF, 0),
I_BTO => (To_Unbounded_String("BTO"), 16#8408#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_MEMREF, 0),
I_BTZ => (To_Unbounded_String("BTZ"), 16#8448#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_MEMREF, 0),
I_CIO => (To_Unbounded_String("CIO"), 16#85e9#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_IO, 0),
I_CIOI => (To_Unbounded_String("CIOI"), 16#85f9#, 16#87ff#, 2, TWOACC_IMM_2_WORD_FMT, EAGLE_IO, 0),
I_CLM => (To_Unbounded_String("CLM"), 16#84f8#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_PC, 0),
I_CMP => (To_Unbounded_String("CMP"), 16#dfa8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_MEMREF, 0),
I_CMT => (To_Unbounded_String("CMT"), 16#efa8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_MEMREF, 0),
I_CMV => (To_Unbounded_String("CMV"), 16#d7a8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_MEMREF, 0),
I_COB => (To_Unbounded_String("COB"), 16#8588#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_OP, 0),
I_COM => (To_Unbounded_String("COM"), 16#8000#, 16#8700#, 1, NOVA_TWOACC_MULT_OP_FMT, NOVA_OP, 0),
I_CRYTC => (To_Unbounded_String("CRYTC"), 16#a7e9#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_OP, 0),
I_CRYTO => (To_Unbounded_String("CRYTO"), 16#a7c9#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_OP, 0),
I_CRYTZ => (To_Unbounded_String("CRYTZ"), 16#a7d9#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_OP, 0),
I_CTR => (To_Unbounded_String("CTR"), 16#e7a8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_OP, 0),
I_CVWN => (To_Unbounded_String("CVWN"), 16#e669#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, EAGLE_OP, 0),
I_DAD => (To_Unbounded_String("DAD"), 16#8088#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_OP, 0),
I_DEQUE => (To_Unbounded_String("DEQUE"), 16#e7c9#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_OP, 0),
I_DERR => (To_Unbounded_String("DERR"), 16#8f09#, 16#8fcf#, 1, DERR_FMT, EAGLE_PC, 0),
I_DHXL => (To_Unbounded_String("DHXL"), 16#8388#, 16#87ff#, 1, IMM_ONEACC_FMT, ECLIPSE_OP, 0),
I_DHXR => (To_Unbounded_String("DHXR"), 16#83c8#, 16#87ff#, 1, IMM_ONEACC_FMT, ECLIPSE_OP, 0),
I_DIA => (To_Unbounded_String("DIA"), 16#6100#, 16#e700#, 1, NOVA_DATA_IO_FMT, NOVA_IO, 0),
I_DIB => (To_Unbounded_String("DIB"), 16#6300#, 16#e700#, 1, NOVA_DATA_IO_FMT, NOVA_IO, 0),
I_DIC => (To_Unbounded_String("DIC"), 16#6500#, 16#e700#, 1, NOVA_DATA_IO_FMT, NOVA_IO, 0),
I_DIV => (To_Unbounded_String("DIV"), 16#d7c8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, NOVA_MATH, 0),
I_DIVS => (To_Unbounded_String("DIVS"), 16#dfc8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_OP, 0),
I_DIVX => (To_Unbounded_String("DIVX"), 16#bfc8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_OP, 0),
I_DLSH => (To_Unbounded_String("DLSH"), 16#82c8#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_OP, 0),
I_DOA => (To_Unbounded_String("DOA"), 16#6200#, 16#e700#, 1, NOVA_DATA_IO_FMT, NOVA_IO, 0),
I_DOB => (To_Unbounded_String("DOB"), 16#6400#, 16#e700#, 1, NOVA_DATA_IO_FMT, NOVA_IO, 0),
I_DOC => (To_Unbounded_String("DOC"), 16#6600#, 16#e700#, 1, NOVA_DATA_IO_FMT, NOVA_IO, 0),
I_DSB => (To_Unbounded_String("DSB"), 16#80c8#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_OP, 0),
I_DSPA => (To_Unbounded_String("DSPA"), 16#c478#, 16#e4ff#, 2, ONEACC_MODE_IND_2_WORD_E_FMT, ECLIPSE_PC, 1),
I_DSZ => (To_Unbounded_String("DSZ"), 16#1800#, 16#f800#, 1, NOVA_NOACC_EFF_ADDR_FMT, NOVA_MEMREF, 0),
I_DSZTS => (To_Unbounded_String("DSZTS"), 16#c7d9#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_PC, 0),
I_ECLID => (To_Unbounded_String("ECLID"), 16#ffc8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_IO, 0),
I_EDIT => (To_Unbounded_String("EDIT"), 16#f7a8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_OP, 0),
I_EDSZ => (To_Unbounded_String("EDSZ"), 16#9c38#, 16#fcff#, 2, NOACC_MODE_IND_2_WORD_E_FMT, ECLIPSE_PC, 1),
I_EISZ => (To_Unbounded_String("EISZ"), 16#9438#, 16#fcff#, 2, NOACC_MODE_IND_2_WORD_E_FMT, ECLIPSE_PC, 1),
I_EJMP => (To_Unbounded_String("EJMP"), 16#8438#, 16#fcff#, 2, NOACC_MODE_IND_2_WORD_E_FMT, ECLIPSE_PC, 1),
I_EJSR => (To_Unbounded_String("EJSR"), 16#8c38#, 16#fcff#, 2, NOACC_MODE_IND_2_WORD_E_FMT, ECLIPSE_PC, 1),
I_ELDA => (To_Unbounded_String("ELDA"), 16#a438#, 16#e4ff#, 2, ONEACC_MODE_IND_2_WORD_E_FMT, ECLIPSE_MEMREF, 1),
I_ELDB => (To_Unbounded_String("ELDB"), 16#8478#, 16#e4ff#, 2, ONEACC_MODE_IND_2_WORD_E_FMT, ECLIPSE_MEMREF, 1),
I_ELEF => (To_Unbounded_String("ELEF"), 16#e438#, 16#e4ff#, 2, ONEACC_MODE_IND_2_WORD_E_FMT, ECLIPSE_MEMREF, 1),
I_ENQH => (To_Unbounded_String("ENQH"), 16#c7e9#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_OP, 0),
I_ENQT => (To_Unbounded_String("ENQT"), 16#c7f9#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_OP, 0),
I_ESTA => (To_Unbounded_String("ESTA"), 16#c438#, 16#e4ff#, 2, ONEACC_MODE_IND_2_WORD_E_FMT, ECLIPSE_MEMREF, 1),
I_ESTB => (To_Unbounded_String("ESTB"), 16#a478#, 16#e4ff#, 2, ONEACC_MODE_2_WORD_E_FMT, ECLIPSE_OP, 1),
I_FAD => (To_Unbounded_String("FAD"), 16#8068#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FAS => (To_Unbounded_String("FAS"), 16#8028#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FCLE => (To_Unbounded_String("FCLE"), 16#d6e8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FCMP => (To_Unbounded_String("FCMP"), 16#8728#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FAB => (To_Unbounded_String("FAB"), 16#c628#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FDD => (To_Unbounded_String("FDD"), 16#81e8#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FDS => (To_Unbounded_String("FDS"), 16#81a8#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FEXP => (To_Unbounded_String("FEXP"), 16#a668#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FFAS => (To_Unbounded_String("FFAS"), 16#85a8#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FHLV => (To_Unbounded_String("FHLV"), 16#e668#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FINT => (To_Unbounded_String("FINT"), 16#c668#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FLAS => (To_Unbounded_String("FLAS"), 16#8528#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FLDS => (To_Unbounded_String("FLDS"), 16#8428#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, ECLIPSE_FPU, 1),
I_FLST => (To_Unbounded_String("FLST"), 16#a6e8#, 16#e7ff#, 2, NOACC_MODE_IND_2_WORD_X_FMT, ECLIPSE_FPU, 1),
I_FMD => (To_Unbounded_String("FMD"), 16#8168#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FMOV => (To_Unbounded_String("FMOV"), 16#8768#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FMS => (To_Unbounded_String("FMS"), 16#8128#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FNEG => (To_Unbounded_String("FNEG"), 16#e628#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FNS => (To_Unbounded_String("FNS"), 16#86a8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_PC, 0),
I_FPOP => (To_Unbounded_String("FPOP"), 16#eee8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_STACK, 0),
I_FPSH => (To_Unbounded_String("FPSH"), 16#e6e8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_STACK, 0),
I_FRDS => (To_Unbounded_String("FRDS"), 16#84d8#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FRH => (To_Unbounded_String("FRH"), 16#a628#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FSA => (To_Unbounded_String("FSA"), 16#8ea8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_PC, 0),
I_FSD => (To_Unbounded_String("FSD"), 16#80e8#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FSEQ => (To_Unbounded_String("FSEQ"), 16#96a8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FSGE => (To_Unbounded_String("FSGE"), 16#aea8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FSGT => (To_Unbounded_String("FSGT"), 16#bea8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FSLE => (To_Unbounded_String("FSLE"), 16#b6a8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FSLT => (To_Unbounded_String("FSLT"), 16#a6a8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FSNE => (To_Unbounded_String("FSNE"), 16#9ea8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FSNER => (To_Unbounded_String("FSNER"), 16#fea8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FSS => (To_Unbounded_String("FSS"), 16#80a8#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FSST => (To_Unbounded_String("FSST"), 16#86e8#, 16#e7ff#, 2, NOACC_MODE_IND_2_WORD_X_FMT, ECLIPSE_FPU, 1),
I_FSTS => (To_Unbounded_String("FSTS"), 16#84a8#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, ECLIPSE_FPU, 1),
I_FTD => (To_Unbounded_String("FTD"), 16#cee8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FTE => (To_Unbounded_String("FTE"), 16#c6e8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_FPU, 0),
I_FXTD => (To_Unbounded_String("FXTD"), 16#a779#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_OP, 0),
I_FXTE => (To_Unbounded_String("FXTE"), 16#c749#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_OP, 0),
I_HALT => (To_Unbounded_String("HALT"), 16#647f#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, NOVA_IO, 0),
I_HLV => (To_Unbounded_String("HLV"), 16#c6f8#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, ECLIPSE_OP, 0),
I_HXL => (To_Unbounded_String("HXL"), 16#8308#, 16#87ff#, 1, IMM_ONEACC_FMT, ECLIPSE_OP, 0),
I_HXR => (To_Unbounded_String("HXR"), 16#8348#, 16#87ff#, 1, IMM_ONEACC_FMT, ECLIPSE_OP, 0),
I_INC => (To_Unbounded_String("INC"), 16#8300#, 16#8700#, 1, NOVA_TWOACC_MULT_OP_FMT, NOVA_OP, 0),
I_INTA => (To_Unbounded_String("INTA"), 16#633f#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, NOVA_IO, 0),
I_INTDS => (To_Unbounded_String("INTDS"), 16#60bf#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, NOVA_IO, 0),
I_INTEN => (To_Unbounded_String("INTEN"), 16#607f#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, NOVA_IO, 0),
I_IOR => (To_Unbounded_String("IOR"), 16#8108#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_OP, 0),
I_IORI => (To_Unbounded_String("IORI"), 16#87f8#, 16#e7ff#, 2, ONEACC_IMMWD_2_WORD_FMT, ECLIPSE_OP, 0),
I_IORST => (To_Unbounded_String("IORST"), 16#653f#, 16#e73f#, 1, ONEACC_1_WORD_FMT, NOVA_IO, 0),
I_ISZ => (To_Unbounded_String("ISZ"), 16#1000#, 16#f800#, 1, NOVA_NOACC_EFF_ADDR_FMT, NOVA_MEMREF, 0),
I_ISZTS => (To_Unbounded_String("ISZTS"), 16#c7c9#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_PC, 0),
I_JMP => (To_Unbounded_String("JMP"), 16#0000#, 16#f800#, 1, NOVA_NOACC_EFF_ADDR_FMT, NOVA_PC, 0),
I_JSR => (To_Unbounded_String("JSR"), 16#0800#, 16#f800#, 1, NOVA_NOACC_EFF_ADDR_FMT, NOVA_PC, 0),
I_LCALL => (To_Unbounded_String("LCALL"), 16#a6c9#, 16#e7ff#, 4, NOACC_MODE_IND_4_WORD_FMT, EAGLE_STACK, 1),
I_LCPID => (To_Unbounded_String("LCPID"), 16#8759#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_IO, 0),
I_LDA => (To_Unbounded_String("LDA"), 16#2000#, 16#e000#, 1, NOVA_ONEACC_EFF_ADDR_FMT, NOVA_MEMREF, 0),
I_LDAFP => (To_Unbounded_String("LDAFP"), 16#c669#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, EAGLE_STACK, 0),
I_LDASB => (To_Unbounded_String("LDASB"), 16#c649#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, EAGLE_STACK, 0),
I_LDASL => (To_Unbounded_String("LDASL"), 16#a669#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, EAGLE_STACK, 0),
I_LDASP => (To_Unbounded_String("LDASP"), 16#a649#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, EAGLE_STACK, 0),
I_LDATS => (To_Unbounded_String("LDATS"), 16#8649#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, EAGLE_STACK, 0),
I_LDB => (To_Unbounded_String("LDB"), 16#85c8#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_MEMREF, 0),
I_LDSP => (To_Unbounded_String("LDSP"), 16#8519#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_PC, 1),
I_LEF => (To_Unbounded_String("LEF"), 16#6000#, 16#e000#, 1, NOVA_ONEACC_EFF_ADDR_FMT, ECLIPSE_MEMREF, 0),
I_LFAMD => (To_Unbounded_String("LFAMD"), 16#80d9#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_FPU, 1),
I_LFDMD => (To_Unbounded_String("LFDMD"), 16#81f9#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_FPU, 1),
I_LFDMS => (To_Unbounded_String("LFDMS"), 16#81e9#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_FPU, 1),
I_LFLDD => (To_Unbounded_String("LFLDD"), 16#82d9#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_FPU, 1),
I_LFLDS => (To_Unbounded_String("LFLDS"), 16#82c9#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_FPU, 1),
I_LFMMD => (To_Unbounded_String("LFMMD"), 16#81d9#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_FPU, 1),
I_LFMMS => (To_Unbounded_String("LFMMS"), 16#81c9#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_FPU, 1),
I_LFSMD => (To_Unbounded_String("LFSMD"), 16#80f9#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_FPU, 1),
I_LFSTD => (To_Unbounded_String("LFSTD"), 16#82f9#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_FPU, 1),
I_LFSTS => (To_Unbounded_String("LFSTS"), 16#82e9#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_FPU, 1),
I_LJMP => (To_Unbounded_String("LJMP"), 16#a6d9#, 16#e7ff#, 3, NOACC_MODE_IND_3_WORD_FMT, EAGLE_PC, 1),
I_LJSR => (To_Unbounded_String("LJSR"), 16#a6e9#, 16#e7ff#, 3, NOACC_MODE_IND_3_WORD_FMT, EAGLE_PC, 1),
I_LLDB => (To_Unbounded_String("LLDB"), 16#84c9#, 16#87ff#, 3, ONEACC_MODE_3_WORD_B_FMT, EAGLE_MEMREF, 1),
I_LLEF => (To_Unbounded_String("LLEF"), 16#83e9#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_MEMREF, 1),
I_LLEFB => (To_Unbounded_String("LLEFB"), 16#84e9#, 16#87ff#, 3, ONEACC_MODE_3_WORD_B_FMT, EAGLE_MEMREF, 1),
I_LMRF => (To_Unbounded_String("LMRF"), 16#87c9#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_OP, 0),
I_LNADD => (To_Unbounded_String("LNADD"), 16#8218#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_MEMREF, 1),
I_LNADI => (To_Unbounded_String("LNADI"), 16#8618#, 16#87ff#, 3, NOACC_MODE_IMM_IND_3_WORD_FMT, EAGLE_MEMREF, 1),
I_LNDIV => (To_Unbounded_String("LNDIV"), 16#82d8#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_OP, 1),
I_LNDO => (To_Unbounded_String("LNDO"), 16#8698#, 16#87ff#, 4, LNDO_4_WORD_FMT, EAGLE_PC, 1),
I_LNDSZ => (To_Unbounded_String("LNDSZ"), 16#86d9#, 16#e7ff#, 3, NOACC_MODE_IND_3_WORD_FMT, EAGLE_PC, 1),
I_LNISZ => (To_Unbounded_String("LNISZ"), 16#86c9#, 16#e7ff#, 3, NOACC_MODE_IND_3_WORD_FMT, EAGLE_PC, 1),
I_LNLDA => (To_Unbounded_String("LNLDA"), 16#83c9#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_MEMREF, 1),
I_LNMUL => (To_Unbounded_String("LNMUL"), 16#8298#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_MEMREF, 1),
I_LNSBI => (To_Unbounded_String("LNSBI"), 16#8658#, 16#87ff#, 3, NOACC_MODE_IMM_IND_3_WORD_FMT, EAGLE_MEMREF, 1),
I_LNSTA => (To_Unbounded_String("LNSTA"), 16#83d9#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_MEMREF, 1),
I_LNSUB => (To_Unbounded_String("LNSUB"), 16#8258#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_MEMREF, 1),
I_LOB => (To_Unbounded_String("LOB"), 16#8508#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_OP, 0),
I_LPEF => (To_Unbounded_String("LPEF"), 16#a6f9#, 16#e7ff#, 3, NOACC_MODE_IND_3_WORD_FMT, EAGLE_STACK, 1),
I_LPEFB => (To_Unbounded_String("LPEFB"), 16#c6f9#, 16#e7ff#, 3, NOACC_MODE_3_WORD_FMT, EAGLE_STACK, 1),
I_LPHY => (To_Unbounded_String("LPHY"), 16#87e9#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_OP, 0),
I_LPSHJ => (To_Unbounded_String("LPSHJ"), 16#C6C9#, 16#E7FF#, 3, NOACC_MODE_IND_3_WORD_FMT, EAGLE_PC, 1),
I_LPSR => (To_Unbounded_String("LPSR"), 16#a799#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_OP, 0),
I_LRB => (To_Unbounded_String("LRB"), 16#8548#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_OP, 0),
I_LSH => (To_Unbounded_String("LSH"), 16#8288#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_OP, 0),
I_LSTB => (To_Unbounded_String("LSTB"), 16#84d9#, 16#87ff#, 3, ONEACC_MODE_3_WORD_B_FMT, EAGLE_MEMREF, 1),
I_LWADD => (To_Unbounded_String("LWADD"), 16#8318#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_MEMREF, 1),
I_LWADI => (To_Unbounded_String("LWADI"), 16#8718#, 16#87ff#, 3, NOACC_MODE_IMM_IND_3_WORD_FMT, EAGLE_MEMREF, 1),
I_LWDO => (To_Unbounded_String("LWDO"), 16#8798#, 16#87ff#, 4, LNDO_4_WORD_FMT, EAGLE_PC, 1),
I_LWDSZ => (To_Unbounded_String("LWDSZ"), 16#86f9#, 16#e7ff#, 3, NOACC_MODE_IND_3_WORD_FMT, EAGLE_PC, 1),
I_LWISZ => (To_Unbounded_String("LWISZ"), 16#86e9#, 16#e7ff#, 3, NOACC_MODE_IND_3_WORD_FMT, EAGLE_PC, 1),
I_LWLDA => (To_Unbounded_String("LWLDA"), 16#83f9#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_MEMREF, 1),
I_LWMUL => (To_Unbounded_String("LWMUL"), 16#8398#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_MEMREF, 1),
I_LWSTA => (To_Unbounded_String("LWSTA"), 16#84f9#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_MEMREF, 1),
I_LWSUB => (To_Unbounded_String("LWSUB"), 16#8358#, 16#87ff#, 3, ONEACC_MODE_IND_3_WORD_FMT, EAGLE_MEMREF, 1),
I_MOV => (To_Unbounded_String("MOV"), 16#8200#, 16#8700#, 1, NOVA_TWOACC_MULT_OP_FMT, NOVA_OP, 0),
I_MPx => (To_Unbounded_String("*MP*"), 16#c729#, 16#ffff#, 2, MULTI_PROC_2_WORD_FMT, EAGLE_MP, 0),
I_MSKO => (To_Unbounded_String("MSKO"), 16#643f#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, EAGLE_IO, 0 ),
I_MSP => (To_Unbounded_String("MSP"), 16#86f8#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, ECLIPSE_STACK, 0),
I_MUL => (To_Unbounded_String("MUL"), 16#c7c8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, NOVA_MATH, 0),
I_MULS => (To_Unbounded_String("MULS"), 16#cfc8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_OP, 0),
I_NADD => (To_Unbounded_String("NADD"), 16#8049#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_NADDI => (To_Unbounded_String("NADDI"), 16#c639#, 16#e7ff#, 2, ONEACC_IMM_2_WORD_FMT, EAGLE_OP, 0),
I_NADI => (To_Unbounded_String("NADI"), 16#8599#, 16#87ff#, 1, IMM_ONEACC_FMT, EAGLE_OP, 0),
I_NCLID => (To_Unbounded_String("NCLID"), 16#683f#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_IO, 0),
I_NDIV => (To_Unbounded_String("NDIV"), 16#8079#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_NEG => (To_Unbounded_String("NEG"), 16#8100#, 16#8700#, 1, NOVA_TWOACC_MULT_OP_FMT, NOVA_OP, 0),
I_NIO => (To_Unbounded_String("NIO"), 16#6000#, 16#ff00#, 1, IO_FLAGS_DEV_FMT, NOVA_IO, 0),
I_NLDAI => (To_Unbounded_String("NLDAI"), 16#c629#, 16#e7ff#, 2, ONEACC_IMM_2_WORD_FMT, EAGLE_OP, 0),
I_NMUL => (To_Unbounded_String("NMUL"), 16#8069#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_NNEG => (To_Unbounded_String("NNEG"), 16#8509#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_NSALA => (To_Unbounded_String("NSALA"), 16#e609#, 16#e7ff#, 2, ONEACC_IMM_2_WORD_FMT, EAGLE_PC, 0),
I_NSANA => (To_Unbounded_String("NSANA"), 16#e629#, 16#e7ff#, 2, ONEACC_IMM_2_WORD_FMT, EAGLE_PC, 0),
I_NSBI => (To_Unbounded_String("NSBI"), 16#85a9#, 16#87ff#, 1, IMM_ONEACC_FMT, EAGLE_OP, 0),
I_NSUB => (To_Unbounded_String("NSUB"), 16#8059#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_PIO => (To_Unbounded_String("PIO"), 16#85d9#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_IO, 0),
I_POP => (To_Unbounded_String("POP"), 16#8688#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_STACK, 0),
I_POPB => (To_Unbounded_String("POPB"), 16#8fc8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_STACK, 0),
I_POPJ => (To_Unbounded_String("POPJ"), 16#9fc8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_STACK, 0),
I_PRTSEL => (To_Unbounded_String("PRTSEL"), 16#783f#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_IO, 0),
I_PSH => (To_Unbounded_String("PSH"), 16#8648#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_STACK, 0),
I_PSHJ => (To_Unbounded_String("PSHJ"), 16#84b8#, 16#fcff#, 2, NOACC_MODE_IND_2_WORD_E_FMT, ECLIPSE_STACK, 1),
I_PSHR => (To_Unbounded_String("PSHR"), 16#87c8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_STACK, 0),
I_READS => (To_Unbounded_String("READS"), 16#613f#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, EAGLE_IO, 0),
I_RSTR => (To_Unbounded_String("RSTR"), 16#efc8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_STACK, 0),
I_RTN => (To_Unbounded_String("RTN"), 16#afc8#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, ECLIPSE_STACK, 0),
I_SAVE => (To_Unbounded_String("SAVE"), 16#e7c8#, 16#ffff#, 2, UNIQUE_2_WORD_FMT, ECLIPSE_STACK, 0),
I_SBI => (To_Unbounded_String("SBI"), 16#8048#, 16#87ff#, 1, IMM_ONEACC_FMT, ECLIPSE_OP, 0),
I_SEX => (To_Unbounded_String("SEX"), 16#8349#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_SGE => (To_Unbounded_String("SGE"), 16#8248#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_PC, 0),
I_SGT => (To_Unbounded_String("SGT"), 16#8208#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_PC, 0),
I_SKP => (To_Unbounded_String("SKP"), 16#6700#, 16#ff00#, 1, IO_TEST_DEV_FMT, NOVA_IO, 0),
I_SNB => (To_Unbounded_String("SNB"), 16#85f8#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_PC, 0),
I_SNOVR => (To_Unbounded_String("SNOVR"), 16#a7b9#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_PC, 0),
I_SPSR => (To_Unbounded_String("SPSR"), 16#a7a9#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_OP, 0),
I_SPTE => (To_Unbounded_String("SPTE"), 16#e729#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_OP, 0),
I_SSPT => (To_Unbounded_String("SSPT"), 16#e7d9#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_OP, 0),
I_STA => (To_Unbounded_String("STA"), 16#4000#, 16#e000#, 1, NOVA_ONEACC_EFF_ADDR_FMT, NOVA_MEMREF, 0),
I_STAFP => (To_Unbounded_String("STAFP"), 16#c679#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, EAGLE_STACK, 0),
I_STASB => (To_Unbounded_String("STASB"), 16#c659#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, EAGLE_STACK, 0),
I_STASL => (To_Unbounded_String("STASL"), 16#a679#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, EAGLE_STACK, 0),
I_STASP => (To_Unbounded_String("STASP"), 16#a659#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, EAGLE_STACK, 0),
I_STATS => (To_Unbounded_String("STATS"), 16#8659#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, EAGLE_STACK, 0),
I_STB => (To_Unbounded_String("STB"), 16#8608#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_MEMREF, 0),
I_SUB => (To_Unbounded_String("SUB"), 16#8500#, 16#8700#, 1, NOVA_TWOACC_MULT_OP_FMT, NOVA_OP, 0),
I_SZB => (To_Unbounded_String("SZB"), 16#8488#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_PC, 0),
I_SZBO => (To_Unbounded_String("SZBO"), 16#84c8#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_PC, 0),
I_WADC => (To_Unbounded_String("WADC"), 16#8249#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_WADD => (To_Unbounded_String("WADD"), 16#8149#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_WADDI => (To_Unbounded_String("WADDI"), 16#8689#, 16#e7ff#, 3, ONEACC_IMM_3_WORD_FMT, EAGLE_OP, 0),
I_WADI => (To_Unbounded_String("WADI"), 16#84b9#, 16#87ff#, 1, IMM_ONEACC_FMT, EAGLE_OP, 0),
I_WANC => (To_Unbounded_String("WANC"), 16#8549#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_WAND => (To_Unbounded_String("WAND"), 16#8449#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_WANDI => (To_Unbounded_String("WANDI"), 16#8699#, 16#e7ff#, 3, ONEACC_IMM_3_WORD_FMT, EAGLE_OP, 0),
I_WASH => (To_Unbounded_String("WASH"), 16#8279#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_WASHI => (To_Unbounded_String("WASHI"), 16#c6a9#, 16#e7ff#, 2, ONEACC_IMM_2_WORD_FMT, EAGLE_OP, 0),
I_WBLM => (To_Unbounded_String("WBLM"), 16#e749#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_MEMREF, 0),
I_WBR => (To_Unbounded_String("WBR"), 16#8038#, 16#843f#, 1, SPLIT_8BIT_DISP_FMT, EAGLE_PC, 0),
I_WBTO => (To_Unbounded_String("WBTO"), 16#8299#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_MEMREF, 0),
I_WBTZ => (To_Unbounded_String("WBTZ"), 16#82a9#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_MEMREF, 0),
I_WCLM => (To_Unbounded_String("WCLM"), 16#8569#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_PC, 0),
I_WCMP => (To_Unbounded_String("WCMP"), 16#a759#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_MEMREF, 0),
I_WCMV => (To_Unbounded_String("WCMV"), 16#8779#, 16#FFFF#, 1, UNIQUE_1_WORD_FMT, EAGLE_MEMREF, 0),
I_WCOM => (To_Unbounded_String("WCOM"), 16#8459#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_WCST => (To_Unbounded_String("WCST"), 16#e709#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_MEMREF, 0),
I_WCTR => (To_Unbounded_String("WCTR"), 16#8769#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_MEMREF, 0),
I_WDecOp => (To_Unbounded_String("WDecOp"), 16#8719#, 16#ffff#, 2, WIDE_DEC_SPECIAL_FMT, EAGLE_DECIMAL, 1),
I_WDIV => (To_Unbounded_String("WDIV"), 16#8179#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_WDIVS => (To_Unbounded_String("WDIVS"), 16#e769#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_OP, 0),
I_WFFAD => (To_Unbounded_String("WFFAD"), 16#8499#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_FPU, 0),
I_WFLAD => (To_Unbounded_String("WFLAD"), 16#84a9#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_FPU, 0),
I_WFPOP => (To_Unbounded_String("WFPOP"), 16#a789#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_STACK, 0),
I_WFPSH => (To_Unbounded_String("WFPSH"), 16#87b9#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_STACK, 0),
I_WHLV => (To_Unbounded_String("WHLV"), 16#e659#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, EAGLE_OP, 0),
I_WINC => (To_Unbounded_String("WINC"), 16#8259#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_WIOR => (To_Unbounded_String("WIOR"), 16#8469#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_WIORI => (To_Unbounded_String("WIORI"), 16#86a9#, 16#e7ff#, 3, ONEACC_IMM_3_WORD_FMT, EAGLE_OP, 0),
I_WLDAI => (To_Unbounded_String("WLDAI"), 16#c689#, 16#e7ff#, 3, ONEACC_IMM_3_WORD_FMT, EAGLE_OP, 0),
I_WLDB => (To_Unbounded_String("WLDB"), 16#8529#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_MEMREF, 0),
I_WLDI => (To_Unbounded_String("WLDI"), 16#e679#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, EAGLE_FPU, 0),
I_WLMP => (To_Unbounded_String("WLMP"), 16#a7f9#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_IO, 0),
I_WLSH => (To_Unbounded_String("WLSH"), 16#8559#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_WLSHI => (To_Unbounded_String("WLSHI"), 16#e6d9#, 16#e7ff#, 2, ONEACC_IMM_2_WORD_FMT, EAGLE_OP, 0),
I_WLSI => (To_Unbounded_String("WLSI"), 16#85b9#, 16#87ff#, 1, IMM_ONEACC_FMT, EAGLE_OP, 0),
I_WMESS => (To_Unbounded_String("WMESS"), 16#e719#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_PC, 0),
I_WMOV => (To_Unbounded_String("WMOV"), 16#8379#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_WMOVR => (To_Unbounded_String("WMOVR"), 16#e699#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, EAGLE_OP, 0),
I_WMSP => (To_Unbounded_String("WMSP"), 16#e649#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, EAGLE_STACK, 0),
I_WMUL => (To_Unbounded_String("WMUL"), 16#8169#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_WMULS => (To_Unbounded_String("WMULS"), 16#e759#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_OP, 0),
I_WNADI => (To_Unbounded_String("WNADI"), 16#e6f9#, 16#e7ff#, 2, ONEACC_IMM_2_WORD_FMT, EAGLE_OP, 0),
I_WNEG => (To_Unbounded_String("WNEG"), 16#8269#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_WPOP => (To_Unbounded_String("WPOP"), 16#8089#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_STACK, 0),
I_WPOPB => (To_Unbounded_String("WPOPB"), 16#e779#, 16#FFFF#, 1, UNIQUE_1_WORD_FMT, EAGLE_STACK, 0),
I_WPOPJ => (To_Unbounded_String("WPOPJ"), 16#8789#, 16#FFFF#, 1, UNIQUE_1_WORD_FMT, EAGLE_STACK, 0),
I_WPSH => (To_Unbounded_String("WPSH"), 16#8579#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_STACK, 0),
I_WRTN => (To_Unbounded_String("WRTN"), 16#87a9#, 16#ffff#, 1, UNIQUE_1_WORD_FMT, EAGLE_STACK, 0),
I_WSANA => (To_Unbounded_String("WSANA"), 16#a689#, 16#e7ff#, 3, ONEACC_IMM_3_WORD_FMT, EAGLE_PC, 0),
I_WSAVR => (To_Unbounded_String("WSAVR"), 16#A729#, 16#FFFF#, 2, UNIQUE_2_WORD_FMT, EAGLE_STACK, 0),
I_WSAVS => (To_Unbounded_String("WSAVS"), 16#A739#, 16#FFFF#, 2, UNIQUE_2_WORD_FMT, EAGLE_STACK, 0),
I_WSBI => (To_Unbounded_String("WSBI"), 16#8589#, 16#87ff#, 1, IMM_ONEACC_FMT, EAGLE_OP, 0),
I_WSEQ => (To_Unbounded_String("WSEQ"), 16#80b9#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_PC, 0),
I_WSEQI => (To_Unbounded_String("WSEQI"), 16#e6c9#, 16#e7ff#, 2, ONEACC_IMM_2_WORD_FMT, EAGLE_PC, 0),
I_WSGE => (To_Unbounded_String("WSGE"), 16#8199#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_PC, 0),
I_WSGT => (To_Unbounded_String("WSGT"), 16#81b9#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_PC, 0),
I_WSGTI => (To_Unbounded_String("WSGTI"), 16#e689#, 16#e7ff#, 2, ONEACC_IMM_2_WORD_FMT, EAGLE_PC, 0),
I_WSKBO => (To_Unbounded_String("WSKBO"), 16#8f49#, 16#8fcf#, 1, WSKB_FMT, EAGLE_PC, 0),
I_WSKBZ => (To_Unbounded_String("WSKBZ"), 16#8f89#, 16#8fcf#, 1, WSKB_FMT, EAGLE_PC, 0),
I_WSLE => (To_Unbounded_String("WSLE"), 16#81a9#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_PC, 0),
I_WSLEI => (To_Unbounded_String("WSLEI"), 16#e6a9#, 16#e7ff#, 2, ONEACC_IMM_2_WORD_FMT, EAGLE_PC, 0),
I_WSLT => (To_Unbounded_String("WSLT"), 16#8289#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_PC, 0),
I_WSNB => (To_Unbounded_String("WSNB"), 16#8389#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_PC, 0),
I_WSNE => (To_Unbounded_String("WSNE"), 16#8189#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_PC, 0),
I_WSNEI => (To_Unbounded_String("WSNEI"), 16#e6e9#, 16#e7ff#, 2, ONEACC_IMM_2_WORD_FMT, EAGLE_PC, 0),
I_WSSVR => (To_Unbounded_String("WSSVR"), 16#8729#, 16#ffff#, 2, UNIQUE_2_WORD_FMT, EAGLE_STACK, 0),
I_WSSVS => (To_Unbounded_String("WSSVS"), 16#8739#, 16#ffff#, 2, UNIQUE_2_WORD_FMT, EAGLE_STACK, 0),
I_WSTB => (To_Unbounded_String("WSTB"), 16#8539#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_MEMREF, 0),
I_WSTI => (To_Unbounded_String("WSTI"), 16#e6b9#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, EAGLE_FPU, 0),
I_WSUB => (To_Unbounded_String("WSUB"), 16#8159#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_WSZB => (To_Unbounded_String("WSZB"), 16#82b9#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_PC, 0),
I_WSZBO => (To_Unbounded_String("WSZBO"), 16#8399#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_PC, 0),
I_WUSGE => (To_Unbounded_String("WUSGE"), 16#8099#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_PC, 0),
I_WUSGT => (To_Unbounded_String("WUSGT"), 16#80a9#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_PC, 0),
I_WUGTI => (To_Unbounded_String("WUGTI"), 16#c699#, 16#e7ff#, 3, ONEACC_IMM_3_WORD_FMT, EAGLE_PC, 0),
I_WULEI => (To_Unbounded_String("WULEI"), 16#c6b9#, 16#e7ff#, 3, ONEACC_IMM_3_WORD_FMT, EAGLE_PC, 0),
I_WXCH => (To_Unbounded_String("WXCH"), 16#8369#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_WXOR => (To_Unbounded_String("WXOR"), 16#8479#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
I_WXORI => (To_Unbounded_String("WXORI"), 16#86b9#, 16#e7ff#, 3, ONEACC_IMM_3_WORD_FMT, EAGLE_OP, 0),
I_XCALL => (To_Unbounded_String("XCALL"), 16#8609#, 16#e7ff#, 3, NOACC_MODE_IND_3_WORD_XCALL_FMT, EAGLE_PC, 1),
I_XCH => (To_Unbounded_String("XCH"), 16#81c8#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_OP, 0),
I_XCT => (To_Unbounded_String("XCT"), 16#a6f8#, 16#e7ff#, 1, ONEACC_1_WORD_FMT, ECLIPSE_OP, 0),
I_XFAMD => (To_Unbounded_String("XFAMD"), 16#8019#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_FPU, 1),
I_XFAMS => (To_Unbounded_String("XFAMS"), 16#8009#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_FPU, 1),
I_XFDMS => (To_Unbounded_String("XFDMS"), 16#8129#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_FPU, 1),
I_XFLDD => (To_Unbounded_String("XFLDD"), 16#8219#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_FPU, 1),
I_XFLDS => (To_Unbounded_String("XFLDS"), 16#8209#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_FPU, 1),
I_XFMMD => (To_Unbounded_String("XFMMD"), 16#8039#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_FPU, 1),
I_XFMMS => (To_Unbounded_String("XFMMS"), 16#8029#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_FPU, 1),
I_XFSTD => (To_Unbounded_String("XFSTD"), 16#8239#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_FPU, 1),
I_XFSTS => (To_Unbounded_String("XFSTS"), 16#8229#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_FPU, 1),
I_XJMP => (To_Unbounded_String("XJMP"), 16#c609#, 16#e7ff#, 2, NOACC_MODE_IND_2_WORD_X_FMT, EAGLE_PC, 1),
I_XJSR => (To_Unbounded_String("XJSR"), 16#c619#, 16#e7ff#, 2, NOACC_MODE_IND_2_WORD_X_FMT, EAGLE_PC, 1),
I_XLDB => (To_Unbounded_String("XLDB"), 16#8419#, 16#87ff#, 2, ONEACC_MODE_2_WORD_X_B_FMT, EAGLE_MEMREF, 1),
I_XLEF => (To_Unbounded_String("XLEF"), 16#8409#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_MEMREF, 1),
I_XLEFB => (To_Unbounded_String("XLEFB"), 16#8439#, 16#87ff#, 2, ONEACC_MODE_2_WORD_X_B_FMT, EAGLE_MEMREF, 1),
I_XNADD => (To_Unbounded_String("XNADD"), 16#8018#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_MEMREF, 1),
I_XNADI => (To_Unbounded_String("XNADI"), 16#8418#, 16#87ff#, 2, IMM_MODE_2_WORD_FMT, EAGLE_MEMREF, 1),
I_XNDO => (To_Unbounded_String("XNDO"), 16#8498#, 16#87ff#, 3, THREE_WORD_DO_FMT, EAGLE_PC, 1),
I_XNDSZ => (To_Unbounded_String("XNDSZ"), 16#a609#, 16#e7ff#, 2, NOACC_MODE_IND_2_WORD_X_FMT, EAGLE_PC, 1),
I_XNISZ => (To_Unbounded_String("XNISZ"), 16#8639#, 16#e7ff#, 2, NOACC_MODE_IND_2_WORD_X_FMT, EAGLE_PC, 1),
I_XNLDA => (To_Unbounded_String("XNLDA"), 16#8329#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_MEMREF, 1),
I_XNMUL => (To_Unbounded_String("XNMUL"), 16#8098#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_MEMREF, 1),
I_XNSBI => (To_Unbounded_String("XNSBI"), 16#8458#, 16#87ff#, 2, IMM_MODE_2_WORD_FMT, EAGLE_MEMREF, 1),
I_XNSTA => (To_Unbounded_String("XNSTA"), 16#8339#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_MEMREF, 1),
I_XNSUB => (To_Unbounded_String("XNSUB"), 16#8058#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_MEMREF, 1),
I_XOR => (To_Unbounded_String("XOR"), 16#8148#, 16#87ff#, 1, TWOACC_1_WORD_FMT, ECLIPSE_OP, 0),
I_XORI => (To_Unbounded_String("XORI"), 16#a7f8#, 16#e7ff#, 2, ONEACC_IMM_2_WORD_FMT, ECLIPSE_OP, 0),
I_XPEF => (To_Unbounded_String("XPEF"), 16#8629#, 16#e7ff#, 2, NOACC_MODE_IND_2_WORD_X_FMT, EAGLE_STACK, 1),
I_XPEFB => (To_Unbounded_String("XPEFB"), 16#a629#, 16#e7ff#, 2, NOACC_MODE_2_WORD_FMT, EAGLE_STACK, 1),
I_XPSHJ => (To_Unbounded_String("XPSHJ"), 16#8619#, 16#e7ff#, 2, IMM_MODE_2_WORD_FMT, EAGLE_STACK, 1),
I_XSTB => (To_Unbounded_String("XSTB"), 16#8429#, 16#87ff#, 2, ONEACC_MODE_2_WORD_X_B_FMT, EAGLE_MEMREF, 1),
I_XWADD => (To_Unbounded_String("XWADD"), 16#8118#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_MEMREF, 1),
I_XWADI => (To_Unbounded_String("XWADI"), 16#8518#, 16#87ff#, 2, IMM_MODE_2_WORD_FMT, EAGLE_MEMREF, 1),
I_XWDIV => (To_Unbounded_String("XWDIV"), 16#81d8#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_MEMREF, 1),
I_XWDO => (To_Unbounded_String("XWDO"), 16#8598#, 16#87ff#, 3, THREE_WORD_DO_FMT, EAGLE_PC, 1),
I_XWDSZ => (To_Unbounded_String("XWDSZ"), 16#A639#, 16#e7FF#, 2, NOACC_MODE_IND_2_WORD_X_FMT, EAGLE_PC, 1),
I_XWISZ => (To_Unbounded_String("XWISZ"), 16#a619#, 16#e7ff#, 2, NOACC_MODE_IND_2_WORD_X_FMT, EAGLE_PC, 1),
I_XWLDA => (To_Unbounded_String("XWLDA"), 16#8309#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_MEMREF, 1),
I_XWMUL => (To_Unbounded_String("XWMUL"), 16#8198#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_MEMREF, 1),
I_XWSBI => (To_Unbounded_String("XWSBI"), 16#8558#, 16#87ff#, 2, IMM_MODE_2_WORD_FMT, EAGLE_MEMREF, 1),
I_XWSTA => (To_Unbounded_String("XWSTA"), 16#8319#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_MEMREF, 1),
I_XWSUB => (To_Unbounded_String("XWSUB"), 16#8158#, 16#87ff#, 2, ONEACC_MODE_IND_2_WORD_X_FMT, EAGLE_MEMREF, 1),
I_ZEX => (To_Unbounded_String("ZEX"), 16#8359#, 16#87ff#, 1, TWOACC_1_WORD_FMT, EAGLE_OP, 0),
   -- These are handled differently...
   -- The values here are dummies - they are actually set in Decooder
   I_CINTR => (To_Unbounded_String(""), 0, 0, 2, MULTI_PROC_2_WORD_FMT, EAGLE_MP, 0),
   I_IMODE => (To_Unbounded_String(""), 0, 0, 2, MULTI_PROC_2_WORD_FMT, EAGLE_MP, 0),
   I_JPFLOAD => (To_Unbounded_String(""), 0, 0, 2, MULTI_PROC_2_WORD_FMT, EAGLE_MP, 0),
   I_JPFLUSH => (To_Unbounded_String(""), 0, 0, 2, MULTI_PROC_2_WORD_FMT, EAGLE_MP, 0),
   I_JPID => (To_Unbounded_String(""), 0, 0, 2, MULTI_PROC_2_WORD_FMT, EAGLE_MP, 0),
   I_JPLCS => (To_Unbounded_String(""), 0, 0, 2, MULTI_PROC_2_WORD_FMT, EAGLE_MP, 0),
   I_JPLOAD => (To_Unbounded_String(""), 0, 0, 2, MULTI_PROC_2_WORD_FMT, EAGLE_MP, 0),
   I_JPSTART => (To_Unbounded_String(""), 0, 0, 2, MULTI_PROC_2_WORD_FMT, EAGLE_MP, 0),
   I_JPSTATUS => (To_Unbounded_String(""), 0, 0, 2, MULTI_PROC_2_WORD_FMT, EAGLE_MP, 0),
   I_JPSTOP => (To_Unbounded_String(""), 0, 0, 2, MULTI_PROC_2_WORD_FMT, EAGLE_MP, 0)
);

end CPU_Instructions;
