forked from unya/usim
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
57 lines (40 loc) · 1.62 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
CADR simulator
9/1/04
Brad Parker
What is this?
-------------
This is a simple hack designed to simulate (emulate?) the CADR
hardware. A CADR is a second generation MIT lisp machine. A good
description can be found in "A.I. Memo 528" from the MIT AI Labs
entitled, "CADR".
The CADR was a 32 bit microcoded machine designed to run the lisp
language.
This program attempts to run the microcode found in the machine
starting with the "prom" microcode which runs when the machine is
first powered on.
What state is this in?
----------------------
The emulation is about 75% done. It gets pretty far into the prom
code. The disk emulation is a hack, but enough to get past the disk
label code. I think most of the ALU code is ok as is the branch and
byte code.
The divide code is broken and needs to be fixed. I put in a hack
which shifts Q initially and now it seems ok, but I think something is
wrong with my emulation of the h/w.
The dispatch code is partially implemented. I need page 18 of the
CADR memo to complete it. Or at least I think I do.
I added some basic disk emulation and a program to create a disk image
with a microcode band.
What needs to be done?
----------------------
- fix the divide code
- finish the dispatch emulation
And most important, find a valid load band. Without this the emulation
is uninteresting. Once we have a load band
- add "tv" emulation
- add mouse & keyboard emulation
And then we can boot the CADR into the lisp environment.
Long term I want to do some recompiling of the microcode into C and
assembler, both statically and on-the-fly. This is the interesting
part for me :-)