SCELBALSCELBAL, short for SCientific ELementary BAsic Language, is a version of the BASIC programming language released in 1976 for the SCELBI and other early Intel 8008 and 8080-based microcomputers like the Mark-8. Later add-ons to the language included an extended math package and string handling. The original version required 8 kB of RAM, while the additions demanded at least 12 kB. The language was published in book form, with introductory sections followed by flowcharts and then the 8008 assembler code. The book described ways to save more memory, turning off arrays for instance, and how the user could add their own new features to the language. HistoryThe primary author of SCELBAL is Mark Arnold, who was a high-school student in 1974 when the SCELBI was announced. Arnold was friends with professors at the University of Wyoming (UW), and through them had arranged to have an account on their Sigma 7 mainframe computer. The first version of what became SCELBAL was written for this machine. Later that year, he wrote an 8008 cross compiler on that platform. Arnold entered UW in 1975 and contacted Nat Wadsworth, one of the founders of SCELBI, pitching the idea of a compiled version of BASIC for their new platform. This would be a multi-pass system that would save the intermediate versions on cassette tape. This would be very tedious to use but would produce programs that would run on the 4 kB 8H models of the system. Wadsworth favored an interpreter, which would require 8 kB, which would be available on the new 8B models of the system. The language used floating point routines published by Wadsworth in 1975 in Machine Language Programming for the 8008. It took Wadsworth several months to finally arrange a contract, which included sending Arnold an 8B development system. This significantly delayed the release of the language into 1976. Arnold speculated that, lacking these delays, SCELBAL could have been released at about the same time as Altair BASIC in late 1975. It was first presented in a lengthy article in the second issue of Dr. Dobb's Journal in February 1976.[1] The release of SCLEBAL was announced in an advertisement in Byte's June 1976 issue. The ad did not specifically link the language to the SCELBI platform, instead, it simply offered itself in book form as a complete source listing to create a version of BASIC on any 8008 or 8080 system with the requisite 8 kB of RAM. The book's price was $49, about $262 in 2023.[2] DescriptionSCELBAL used a 32-bit (four byte) floating point format for numeric calculations, with a 23-bit mantissa, 1-bit sign for the mantissa, a 7-bit exponent, and 1-bit sign for the exponent. These were organized in reverse order, with the least significant byte of the mantissa in the first byte, followed by the middle and then most significant byte with the sign in the high bit. The exponent came last, again with the sign in the high bit.[3] The manual provides well-documented assembly code for the entire math package, including entry points and usage notes.[4] 32-bit formats were common in this era, while later versions of BASIC, starting with Microsoft BASIC for the MOS 6502, generally adopted a 40-bit (five byte) format for added precision.[5] SCELBAL was otherwise similar to other BASIC dialects, including early MS versions like Altair BASIC, lacking string variables and operators and a number of mathematic functions. Other differences were less pronounced. The
The base language did not support string handling, although literal (constant) strings could be used in PRINT "HELLO";CHR(172);CHR(160);"WORLD"
to produce the string "HELLO, WORLD" in the output.[8]
Among the few other differences was that the Error codes were reduced to two letters, and code for Language features
CommandsImmediate-mode onlyReferred to as "executive" mode in the documentation.
Immediate or program mode
Functions
ExtensionsSCELBI published two extensions to the system, the Mathematical Functions Supplement, and the Strings Supplement. Math Functions SupplementThe Mathematical Functions Supplement added five new transcendental functions, String SupplementThe String Supplement was somewhat larger than the Math Functions, including a number of new features. Strings could be up to 80 characters long, and the system could hold a total of 64 string variables. Any one of those 64, or all of them, could be one-dimensional arrays, but the total number still had to be 64 strings in total. Oddly, string arrays did not require a In contrast to MS BASIC, and the Dartmouth BASIC string handling that inspired it, SCELBI used the "slicing" style of string manipulation found in contemporary BASICs like SDS BASIC, HP Time-Shared BASIC and Northstar BASIC, or the later Atari BASIC. Instead of using functions like 10 LET A$="HELLO"
20 PRINT A$(:2;3)
would result in "ELL" being printed to the output. If an array was used the syntax required the array index in the first parameter:[15] 100 LET A$(1)="HELLO"
150 LET A$(2)="WORLD"
200 PRINT A$(2:2;3)
would result in "ORL" being printed to the output. SCELBAL also allowed omitting the semicolon, which specifies the characters from the starting point to the end of the string. So, for instance, the code: 210 PRINT A$(2:2)
would result in "ORLD" being printed to the output. Although similar to SDS BASIC, there is a major difference in the way this works in comparison to the other BASICs that used slicing syntax, in that the last parameter is the length, not a position. For instance, in Atari BASIC the similar-looking code:[16] 20 PRINT A$(2,3)
would instead output "EL", as the instruction translates to "print all characters between positions 2 and 3". In this fashion, SCELBAL works in a fashion more similar to MS BASIC, where the equivalents would be:[17] 20 PRINT MID$(A$,2,3)
and 210 PRINT RIGHT$(A$(2),2)
To add full support for strings, the Supplement replaced the original ReferencesCitations
Bibliography
External links |