|
|
1.1 root 1: /*
2: * A debugger.
3: * Tables for the Intel 8086.
4: */
5: #include <stdio.h>
6: #include <sys/const.h>
7: #include <l.out.h>
8: #include "trace.h"
9: #include "i8086.h"
10:
11: /*
12: * Global variables.
13: */
14: int cacdata;
15: int cacaddr;
16: int cacsegn;
17: int sysflag;
18: BIN sin;
19: REG reg;
20:
21: /*
22: * Breakpoint instruction
23: */
24: BIN bin ={
25: 0xCC
26: };
27:
28: /*
29: * Table containing format strings.
30: */
31: char *formtab[4][4] ={
32: "%4d", /* 'b', 'd' */
33: "%3u", /* 'b', 'u' */
34: "%04o", /* 'b', 'o' */
35: "%02x", /* 'b', 'x' */
36: "%6d", /* 'w', 'd' */
37: "%5u", /* 'w', 'u' */
38: "%07o", /* 'w', 'o' */
39: "%04x", /* 'w', 'x' */
40: "%10ld", /* 'l', 'd' */
41: "%11lu", /* 'l', 'u' */
42: "%012lo", /* 'l', 'o' */
43: "%08lx", /* 'l', 'x' */
44: "%8ld", /* 'v', 'd' */
45: "%8lu", /* 'v', 'd' */
46: "%09lo", /* 'v', 'o' */
47: "%06lx" /* 'v', 'x' */
48: };
49:
50: /*
51: * Fault types.
52: */
53: char *signame[] ={
54: "Hangup",
55: "Interrupt",
56: "Quit",
57: "Alarm clock",
58: "Termination signal",
59: "Restart",
60: "Bad argument to system call",
61: "Write on open pipe",
62: "Kill",
63: "Breakpoint",
64: "Segmentation violation",
65: "Divide error",
66: "Overflow",
67: "Signal 14",
68: "Signal 15",
69: "Signal 16",
70: };
71:
72: /*
73: * Names of registers.
74: */
75: char regitab[] ={
76: 'b', 'p',
77: 'd', 'i',
78: 's', 'i',
79: '?', '\0',
80: 'e', 's',
81: 'c', 'x',
82: 'd', 'x',
83: 'a', 'x',
84: 'b', 'x',
85: 'd', 's',
86: 's', 'p',
87: 's', 's',
88: '?', '\0',
89: 'i', 'p',
90: 'c', 's',
91: 'f', 'w',
92: '\0', '\0'
93: };
94:
95: /*
96: * Byte registers.
97: */
98: char *regbtab[] ={
99: "al", "cl", "dl", "bl", "ah", "ch", "dh", "bh"
100: };
101:
102: /*
103: * Word registers.
104: */
105: char *regwtab[] ={
106: "ax", "cx", "dx", "bx", "sp", "bp", "si", "di"
107: };
108:
109: /*
110: * Indirect mode table.
111: */
112: char *indmtab[] ={
113: "(bx)(si)",
114: "(bx)(di)",
115: "(bp)(si)",
116: "(bp)(di)",
117: "(si)",
118: "(di)",
119: "(bp)",
120: "(bx)"
121: };
122:
123: /*
124: * Jump table.
125: */
126: char *jumptab[] ={
127: "jo",
128: "jno",
129: "jb",
130: "jae",
131: "je",
132: "jne",
133: "jbe",
134: "ja",
135: "js",
136: "jns",
137: "jp",
138: "jnp",
139: "jl",
140: "jge",
141: "jle",
142: "jg"
143: };
144:
145: /*
146: * Table of system calls.
147: */
148: char *sysitab[NMICALL] ={
149: NULL,
150: "exit",
151: "fork",
152: "read",
153: "write",
154: "open",
155: "close",
156: "wait",
157: "creat",
158: "link",
159: "unlink",
160: "exece",
161: "chdir",
162: NULL,
163: "mknod",
164: "chmod",
165: "chown",
166: "brk",
167: "stat",
168: "lseek",
169: "getpid",
170: "mount",
171: "umount",
172: "setuid",
173: "getuid",
174: "stime",
175: "ptrace",
176: "alarm",
177: "fstat",
178: "pause",
179: "utime",
180: NULL,
181: NULL,
182: "access",
183: "nice",
184: "ftime",
185: "sync",
186: "kill",
187: NULL,
188: NULL,
189: NULL,
190: "dup",
191: "pipe",
192: "times",
193: "profil",
194: "unique",
195: "setgid",
196: "getgid",
197: "signal",
198: NULL,
199: NULL,
200: "acct",
201: NULL,
202: NULL,
203: "ioctl",
204: NULL,
205: "getegid",
206: "geteuid",
207: NULL,
208: NULL,
209: "umask",
210: "chroot",
211: NULL,
212: NULL,
213: "sload",
214: "suload",
215: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.