forked from unya/usim
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
8 changed files
with
79 additions
and
118,136 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,20 @@ | ||
# | ||
# usim CADR simulator | ||
# $Id$ | ||
# | ||
|
||
SRC = main.c decode.c ucode.c | ||
|
||
all: usim readmcr | ||
|
||
usim: $(SRC) | ||
cc -o usim -g $(SRC) | ||
./usim >xx | ||
|
||
readmcr: readmcr.c | ||
cc -o readmcr readmcr.c | ||
|
||
clean: | ||
rm -f *.o usim readmcr | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
CADR simulator | ||
8/31/04 | ||
Brad Parker | ||
[email protected] | ||
|
||
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. The divide code is broken and needs to be fixed. I think | ||
most of the ALU code is ok as is the branch and byte code. | ||
|
||
The dispatch code is non-existant. This needs to be added. I am | ||
missing page 18 of the CADR memo. I think this is important for | ||
dispatch. | ||
|
||
What needs to be done? | ||
---------------------- | ||
|
||
- fix the divide code | ||
- create a proper disk emulation (i.e. one which uses a disk image) | ||
- create a disk image with a real label and a microcode band | ||
- fill in 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 :-) | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,9 @@ | ||
/* | ||
* decode.c | ||
* | ||
* disassemble CADR microcode | ||
* or at least, try to :-) | ||
* | ||
* $Id$ | ||
*/ | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,6 +4,9 @@ | |
* very brute-force CADR simulator | ||
* from AIM-528, "CADR" | ||
* | ||
* please remember this is not ment to be fast or pretty. | ||
* it's ment to be accurate, however. | ||
* | ||
* Brad Parker <[email protected]> | ||
* $Id$ | ||
*/ | ||
|