SCELBAL was the first (1974-75) and only open-source, floating-point, BASIC-like language for the 8008, Intel's first 8-bit microprocessor. The purpose of this site is to preserve a machine-executable version of SCELBAL to show what programming an early personal computer was like. Because of the similarity of the 8080 instruction set, SCELBAL was also available for that processor, making SCELBAL the first competitor to Bill Gates and Paul Allen's Altair BASIC. The source code of SCELBAL was distributed (1976) in book form (at publication cost, $49) by Scelbi Computer Consulting, making it an early example of significant open-source personal computer software, in contrast to the high price charged for the source of Altair BASIC. The authors of the book, SCELBAL: A Higher Level Language for 8008/8080 Systems, are the late Nat Wadsworth (founder of Scelbi) and Mark G. Arnold (MGA), who created this site a half-century later. Nat wrote the floating-point package (also open-sourced and published separately in Machine Language Programming for the 8008 and Similar Microprocessors); MGA wrote the rest of SCELBAL.
This github site hosts a few variations of an 8008 simulator written in Javascript that run different versions of SCELBAL. The Javascript is a direct transliteration of SCELBAL code that emulates the 8008 (as can be seen by viewing the js source). The link(s) below emulate enough of the 8008 instruction set to run these versions of SCELBAL (the emulator lacks parity and restart, neither of which SCELBAL needs):
https://scelbal.github.io/scel24.htm emulates the minimal (8K) published version (with bug patches) that offers floating-point variables, one-dimensional arrays and square root, but does not implement strings or transcendental functions.
https://scelbal.github.io/scelstrmath24.htm emulates the full (16K) version, upgraded with the "String Supplement" and "Math Supplement" (SIN(X), COS(X), ATN(X), EXP(X) and LOG(X)).
Some hints: To start SCELBAL, click the "RUN" button. The output appears in a js prompt (if more than fits in the js prompt, hitting enter will scroll --an artifact of this emulator not the original behavior.) Normally hitting enter (or clicking OK) will continue interaction with SCELBAL. Clicking on CANCEL will pause SCELBAL; all the output will have been saved in the CONSOLE OUTPUT (but in most browsers, this only updates at the time of the CANCEL). Like other software of the era, SCELBAL expects all upper case input (caps locks will make interaction more convienent). SCELBAL, like other BASICs of this era, use something like the Read-Eval-Print-Loop (REPL) of a modern command-line IDE like Python, just a bit more primative. Typing PRINT 2*3+4*5 immediately evaluates the expression and prints the result. Prefacing it with a line number saves the statement in memory to be executed in numerical order (unless altered by statements like IF, GOTO, GOSUB, RETURN or FOR/NEXT). You can RUN or LIST this program or SCR (to scratch it and all workspace variables). While a SCELBAL program is running, the js prompt disappears and the 8008 simulator silently generates its output (unlike the original behavior on vintage hardware). The next js prompt only reappears when an INPUT statement executes or the SCELBAL program finishes. To save typing, several interesting SCELBAL programs can be selected before starting SCELBAL by clicking on a link; once SCELBAL is running, you can simply type LOAD to bring the program into emulated memory (similar to the LOAD command of that era, which loaded programs from magnetic cassette tape) and then type RUN. One of these SCELBAL programs ("sim8") is the 8008 simulator running under SCELBAL (Because the js source was derived from this, it is close to a demonstration of the universality of the 8008 and SCELBAL as a general-purpose computer). Others programs: list primes less than 1000; print the Mandelbrot set; compute the gcd; solve simultanous equations; test or plot the math functions, and compute up to 100! using strings and logs. The 8008 simulator is usually faster than the original 8008 chip, but even so, some of these programs (like Mandelbrot) are slow. Some browsers will prompt to ask if you want it to wait for the 8008 simulator to finish.
The history of Scelbi is documented at: https://www.scelbi.com. A summary of SCELBAL (including its unique string features) can be found at https://en.wikipedia.org/wiki/SCELBAL. An iOS downloadable emulator (for the 8008-based Scelbi 8B) that runs SCELBAL with a more accurate look and feel can be found at https://www.willegal.net/scelbi/the8008andScelbi.html. A modern hobbyist hardware implementation, the Retroshield8008, uses a vintage 8008 chip but otherwise modern components and is preloaded with SCELBAL. This website was derived from http://www.xlnsresearch.com/scelbal.htm , which is likely to become unavailable in the future.
MGA requests the following appear in any derivative works:
SCELBAL, the only open-source, floating-point, high-level language ever implemented on the 8008, was published in book form: SCELBAL: A Higher-Level Language for 8008/8080 Systems by Mark G. Arnold (MGA) and Nat Wadsworth (c)1975-78 Scelbi Computer Consulting,Inc. All Rights Reserved MGA created this simulator (4/2012) and gives permission to use SCELBAL in it for educational, historical, non-commercial purposes, with the understanding no warranty is expressed or implied. As stated in the original, 'no responsibility is assumed for inaccuracies or for the success or failure of various applications to which the information herein may be applied.' This message must appear in any version of SCELBAL downloaded, distributed, posted or disseminated.