Hubbry Logo
search
logo

Data General Extended BASIC

logo
Community Hub0 Subscribers
Write something...
Be the first to start a discussion here.
Be the first to start a discussion here.
See all
Data General Extended BASIC

Data General Extended BASIC, also widely known as Nova Extended BASIC, was a BASIC programming language interpreter for the Data General Nova series minicomputers. It was based on the seminal Dartmouth BASIC, including the Fifth Edition's string variables and powerful MAT commands for matrix manipulation. In contrast to the compile-and-go Dartmouth BASIC, Extended BASIC was an interpreter.

To Dartmouth's simple string manipulation system, Extended BASIC added array slicing, which was common on BASICs of the era after its introduction in HP Time-Shared BASIC. It became common in 1980s era microcomputers that did not use Microsoft BASIC, like Sinclair BASIC, Atari BASIC and others. This contrasts with the Microsoft style which uses string functions like LEFT$, and thus makes porting string code to other dialects somewhat difficult.

Data General later purchased rights to a much-expanded BASIC which was released as Data General Business Basic. This added powerful database functionality and largely replaced Extended BASIC on DG platforms.

The internal floating point number format normally used two 16-bit words for a total of 32-bits, stored least significant bit first. Bit 0 was the sign, 1 through 7 was the exponent stored in excess-64 format, and 8 through 31 the mantissa stored as hexadecimal digits. Numbers could alternately use a double-precision format that extended the mantissa only, adding another 32-bits. That meant the double-precision format did not extend the range of numbers that could be stored, only the accuracy of those numbers. Possible numbers ranged from 5.4×10−79 to −7.2×1075. Numbers with less than six digits were displayed as decimals, while those with more were displayed in exponent format.

Variable names could consist of a single letter, or a letter and a single digit. Two-letter names were not allowed. Arrays could be DIMmed in 1 (array) or 2 (matrix) dimensions, and the lower bound was always 1. As was common at the time, variables with no DIM defaulted to a 1-D array of 10 elements. Confusingly, if a variable was DIMed, it was not the same as a variable with the same name that had not been DIMed; A(1) and A might be the same or different variables depending on how they were created.

Mathematics operators were the standard set, with the addition of a unary plus. Relational operators for comparisons were also the standard set, there was no # for not-equals as found in some contemporary BASICs.

Extended BASIC added the suite of matrix math operations from Dartmouth BASIC's Fifth Edition. These were, in essence, macros that performed operations that would otherwise be accomplished with FOR...NEXT loops.

The system included a number of pre-rolled matrixes, like ZER for a zero-matrix, CON for a matrix of all 1's, and IDN for the identity matrix. Most mathematical operations were supported, for instance, MAT A=A*2 multiplies every element in A by 2. MAT A=DET A takes the determinant, and MAT A=INV(A) inverts it.

See all
User Avatar
No comments yet.