[Simh] Intel 8008 simulator in SIMH
Hans-Åke Lund
hans-ake at trei-lund.st
Wed Sep 6 06:11:09 EDT 2017
Hi,
I have just made a simulator for Intel 8008 in SIMH. This is a "just for
fun" project that started when I found our old master thesis report from
1976 describing how we developed a computer using the Intel 8008 CPU.
I started to develop some code for 8008 based on the ALTAIR code. Later
I found simulator code for 8008 in Intel-Systems/common/i8008.c but that
code would not compile and was also missing i/o simulation so I
continued to develop my own code and eventually got it working.
To test the simulator I used the SCELBAL interpreter written in 8008
assembler (http://www.willegal.net/scelbi/scelbal.html). As the AS8 8008
assembler that was used to assemble this code does not seem to be
available any longer, I modified the SCELBAL assembler source code to be
assembled with the Macro Assembler AS
(http://john.ccac.rwth-aachen.de:8000/as/).
I added some i/o routines to the SCELBAL assembler code that uses the
ports on the hardware for the computer we developed in our master thesis.
My simulator development is done on a Lubuntu 64 bit Linux system so I
have not tested the code on Windows etc.
Do you think it is worth putting this code (i8008_cpu.c, i8008_defs.h,
i8008_io.c, i8008_sys.c and some lines added to makefile) on the simh
GitHub?
If the answer to the previous question is yes, do you have any ideas
about where the 8008 code should be placed in the simh source tree? (And
what is the best procedure to add a new simulator?)
A small example of running the SCELBAL interpreter (from the SCELBAL
book, chapter 14):
hal at LinuxServer:~/retro/simh/i8008/SCELBAL$ ../../simh-master/BIN/i8008
Intel 8008 simulator V4.0-0 Beta git commit id: ba447399
sim> load sc-asl.bin
12006 Bytes loaded.
sim> g 0
READY
SCR
READY
10 PRINT 'RADIUS';
15 INPUT R
16 K = 1.6
20 R2 = R^2
21 PRINT 'AREA =';3.14159*R2,'CIRCUM =';3.14159*2*R
22 PRINT
23 PRINT
25 K1 = K*R
30 FOR X = -R TO R + 0.1
40 Y = K*SQR(R2 - X^2)
50 PRINT TAB(2.5 + K1 - Y);'*';TAB(5.5 + K1 + Y);'*'
60 NEXT X
70 END
RUN
RADIUS?6
AREA = 113.0973 CIRCUM = 37.69910
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
READY
Best regards
Hans-Åke Lund
More information about the Simh
mailing list