|
|
1.1 root 1: /*
2: * Trace bit.
3: */
4: #define TBIT 0x0100
5:
6: /*
7: * Offsets into the users area.
8: */
9: #define UREGOFF (02000-(sizeof (struct ureg)))
10:
11: /*
12: * Registers from the user area after a core dump.
13: */
14: struct ureg {
15: int ur_bp; /* bp */
16: int ur_di; /* di */
17: int ur_si; /* si */
18: int ur_ra; /* ra ? */
19: int ur_es; /* es */
20: int ur_cx; /* cx */
21: int ur_dx; /* dx */
22: int ur_ax; /* ax */
23: int ur_bx; /* bx */
24: int ur_ds; /* ds */
25: int ur_sp; /* sp */
26: int ur_ss; /* ss */
27: int ur_id; /* id */
28: int ur_ip; /* ip */
29: int ur_cs; /* cs */
30: int ur_fw; /* fw */
31: };
32:
33: /*
34: * Registers.
35: */
36: typedef struct reg {
37: unsigned r_ax; /* Accumulator */
38: unsigned r_bx; /* Base */
39: unsigned r_cx; /* Count */
40: unsigned r_dx; /* Data */
41: unsigned r_sp; /* Stack pointer */
42: unsigned r_bp; /* Base pointer */
43: unsigned r_si; /* Source index */
44: unsigned r_di; /* Destination index */
45: unsigned r_cs; /* Code segment */
46: unsigned r_ds; /* Data segment */
47: unsigned r_ss; /* Stack segment */
48: unsigned r_es; /* Extra segment */
49: unsigned r_ip; /* Instruction pointer */
50: unsigned r_fw; /* Status flags */
51: } REG;
52:
53: /*
54: * Instruction table.
55: */
56: typedef struct {
57: unsigned i_code; /* Code */
58: unsigned i_mask; /* Mask */
59: char *i_name; /* Name */
60: } INS;
61:
62: /*
63: * Functions.
64: */
65: char *putifmt();
66:
67: /*
68: * Global symbols.
69: */
70: extern int cacdata; /* Current word in cache */
71: extern int cacaddr; /* Address of word in cache */
72: extern int cacsegn; /* Segment number of word in cache */
73: extern int sysflag; /* Executing a system call */
74: extern BIN sin; /* Instruction after sys call */
75: extern REG reg; /* General registers */
76:
77: /*
78: * Tables.
79: */
80: extern char *formtab[4][4]; /* Format table */
81: extern char regitab[]; /* Register name table */
82: extern char *regbtab[]; /* Byte register table */
83: extern char *regwtab[]; /* Word register table */
84: extern char *indmtab[]; /* Indirect mode table */
85: extern char *jumptab[]; /* Jump table */
86: extern char *sysitab[]; /* System call table */
87: extern INS insrtab[]; /* Instruction table */
88: extern INS fpinstab[]; /* 8087 Instruction table */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.