SCELBAL 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. The manual provides well-documented
assembly code for the entire math package, including entry points and usage notes. 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. 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 statement had an optional form that removed the need for , It also retained the MS-style short form for the same concept, It also allowed conditional execution of other statements, such as . The base language did not support string handling, although literal (constant) strings could be used in , and had the supporting functions of to print non-printable characters, and to provide layout. Oddly, the system required
ASCII codes to have the high-bit set, so to convert from normal ASCII to SCELBI character codes, one had to add or subtract 128. For instance, to produce the string "HELLO, WORLD" in the output. would normally read the user-entered text as a number, but allowed the dollar sign to indicate the value should be read as the SCELBI code instead. For instance, would read the user input "1" into A as the floating-point value 1, while would result in A being set to 177, 49 (ASCII for "1") + 128. Additionally, when the dollar sign is used, the traditional "?" prompt is not printed, and command returned to the language as soon as a single character is entered, instead of waiting for the carriage return as in the normal case. Among the few other differences was that the command found in MS, which clears out existing program code and data, is called for "scratch", and the function, which called a
machine language routine, was for "user defined function". allowed a single floating-point parameter to be passed to the user-defined function, whose machine-language code must have been loaded into memory at a fixed location ahead of runtime. Error codes were reduced to two letters, and code for and were provided in boilerplate form and expected to be implemented when ported to different platforms. Line numbers could be between 1 and 999999, whereas most BASICs used a 16-bit integer and thus supported lines from 1 to 32767 or 1 to 65535. ==Language features==