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 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.