SCELBI Simulator with Intel 8008 CPU | |
==================================== | |
1. Background. | |
The SCELBI (SCientic-ELectronics-BIology) computer was probably | |
the first commercially available micro-computer marketed toward hobbyist. | |
The first market announce for SCELBI-8H was a tiny advertisement in the | |
back of the March 1974 issue of QST, an amateur radio magazine. | |
The computer was built around the Intel 8008 architecture. There were two | |
versions of the SCELBI. The first version was called the 8H. The H standing | |
for hobbyist. The second version was called the 8B, the B standing for | |
business. It had all the features of the 8H, but added support for up | |
to 16K of memory. As the default memory configuration for the SCELBI simulator | |
is 16K, it is really a SCELBI-8B that is simulated. More information about the | |
SCELBI computer can be found at: http://www.willegal.net/scelbi/scelbi.html | |
and http://history-computer.com/ModernComputer/Personal/Scelbi.html. | |
2. Hardware | |
We are simulating a SCELBI-8B from about 1975, with the following | |
configuration: | |
device simulates | |
name(s) | |
I8008 SCELBI-8B with Intel 8008 CPU, 16KB of RAM. | |
TTY Serial "bit banger" interface (commonly to an | |
ASR-33), is assumed to be connected to a serial | |
"glass TTY" that is your terminal running the Simulator. | |
PTR Paper Tape Reader, not implemented yet. | |
2.1 CPU | |
You may select different memory sizes, the default size is 16K. | |
SET I8008 4K | |
SET I8008 8K | |
SET I8008 12K | |
SET I8008 16K | |
CPU Registers include the following: | |
name size comments | |
PC 14 The Program Counter | |
A 8 The accumulator | |
B 8 The B register. | |
C 8 The C register. | |
D 8 The E register. | |
E 8 The E register. | |
HL 16 The HL register pair. H is the top 8 bits, L is | |
the bottom 8 bits. | |
SP 3 Stack Pointer to return address in stack. | |
CF 1 Carry Flag. | |
ZF 1 Zero Flag. | |
PF 1 Parity Flag. | |
SF 1 Sign Flag. | |
WRU 8 The interrupt character. This starts as 005 | |
(Ctrl-E) | |
2.2 The TTY Serial Interface | |
This interface simulates a "bitbanger" TTY interface as | |
implemented on the SCELBI computer in the SCELBAL source code. | |
Inport 2 bit 7 is used as input from the TTY and Outport 2 bit 0 | |
is used as output to the TTY. In other SCELBI documentation Inport 5 | |
is used for input from the TTY and Outport 6 is used for output to the TTY. | |
The I/O simulation routines are mapped in the i/o configuration table | |
to both port variants. | |
There are also functions that support simulated I/O for | |
an Intel 8008 computer built for a master thesis in 1975. | |
These functions are however not mapped in the i/o configuration | |
table as they conflict with the SCELBI TTY interface. | |
3. Sample Software | |
SCELBAL was called the SCientific ELementary BAsic for the 8008 | |
and 8080 by SCELBI Computer Consulting. SCELBAL could be run on a SCELBI | |
or other 8008 based machine that had 8K of memory. SCELBAL completely | |
supported floating point math with 6 digits of precision. As time went on, | |
additional packages including matrix arithmetic and math functions were added. | |
SCELBAL can be downloaded from http://www.willegal.net/scelbi/scelbal.html | |
there are assembler source, hex and binary images available for three | |
variants of SCELBAL. The web page also includes information about SCELBAL | |
and a link to a scan of the SCELBI's SCELBAL book: | |
http://www.scelbi.com/files/docs/scelbal/SCELBAL.pdf | |
In chapter 14 of the SCELBAL book there is a language reference. | |
To run SCELBAL on the SCELBI simulator, download the binary code from: | |
http://www.willegal.net/scelbi/software/sc1.bin | |
Then start the simulator, load the code and run: | |
SCELBI simulator V4.0-0 Beta git commit id: ba447399 | |
sim> d pc 100 | |
sim> load sc1.bin | |
11942 Bytes loaded. | |
sim> g | |
READY | |
SCR | |
READY | |
10 A=1 | |
20 B=7 | |
30 PRINT "A + B ="; | |
40 PRINT A+B | |
50 END | |
LIST | |
10 A=1 | |
20 B=7 | |
30 PRINT "A + B ="; | |
40 PRINT A+B | |
50 END | |
READY | |
RUN | |
A + B = 8.0 | |
READY | |
<exit simulation by pressing Ctrl-E> | |
Simulation stopped, PC: 000103 (INP 5) | |
sim> exit | |
Some notes on SCELBAL: | |
Only upper case is recognized. | |
Always do SCR before entering a program, otherwise strange | |
things will happen. | |
The binary code at the web page above shall be loaded starting | |
at address 0100. The program shall also start to run from | |
address 0100. |