139 lines
4.7 KiB
Text
139 lines
4.7 KiB
Text
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.
|