|
|
researchv10 Dan Cross
/* The include file for the fault handling program.
* Lee Ward 7/1/83
*/
/* Opcode definitions */
#define CVTDF 0x76
#define ADDF2 0x40
#define ADDF3 0x41
#define SUBF2 0x42
#define SUBF3 0x43
#define MULF2 0x44
#define MULF3 0x45
#define DIVF2 0x46
#define DIVF3 0x47
#define ADDD2 0x60
#define ADDD3 0x61
#define SUBD2 0x62
#define SUBD3 0x63
#define MULD2 0x64
#define MULD3 0x65
#define DIVD2 0x66
#define DIVD3 0x67
/* Masks for operand specifiers */
#define MODE_MASK 0xf0
#define REG_MASK 0xf
/* Addressing modes */
/* Literal modes are missing */
#define INDEXED 0x4
#define GENERAL 0x5
#define REG_DEFRD 0x6
#define AUTO_DEC 0x7
#define AUTO_INC 0x8
#define AUTO_INC_DEF 0x9
#define BYTE_DISP 0xa
#define BYTE_DISP_DEF 0xb
#define WORD_DISP 0xc
#define WORD_DISP_DEF 0xd
#define LONG_DISP 0xe
#define LONG_DISP_DEF 0xf
/* Types */
#define DOUBLE 8
#define QUAD 8
#define FLOAT 4
#define LONG 4
#define WORD 2
#define BYTE 1
#define GARBAGE 0
/* Registers */
#define PC 0xf
#define SP 0xe
#define FP 0xd
#define AP 0xc
#define MAXFLOAT 0xffff7fff
#define MAXDOUBLL 0xffff7fff
#define MAXDOUBLR 0xffffffff
#define MINFLOAT 0x00000000
#define MINDOUBLL 0x00000000
#define MINDOUBLR 0x00000000
/* Though these are not all representable types for VAX, they are all the types
* that we can really work with. This is because VAX uses register pairs.
*/
typedef union {
char byte;
short word;
long llong;
} ANYTYPE;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.