Skip to content

Commit

Permalink
*** empty log message ***
Browse files Browse the repository at this point in the history
  • Loading branch information
lisper committed Aug 31, 2004
1 parent cf1437d commit 8285114
Show file tree
Hide file tree
Showing 8 changed files with 79 additions and 118,136 deletions.
14 changes: 14 additions & 0 deletions Makefile
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


53 changes: 53 additions & 0 deletions README
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 :-)


4 changes: 4 additions & 0 deletions decode.c
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$
*/

Expand Down
5 changes: 5 additions & 0 deletions readmcr.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
/*
* read cadr .mcr file on a little endian linux box
*
* just a simple hack to see if we can decode the binary file
* before we try to turn it into a microcode band.
*
* $Id$
*/
#include <stdio.h>
#include <fcntl.h>
Expand Down
3 changes: 3 additions & 0 deletions ucode.c
Original file line number Diff line number Diff line change
Expand Up @@ -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$
*/
Expand Down
Binary file removed usim
Binary file not shown.
117,947 changes: 0 additions & 117,947 deletions xx

This file was deleted.

189 changes: 0 additions & 189 deletions yy

This file was deleted.

0 comments on commit 8285114

Please sign in to comment.