Benton Harbor BASIC

[1] Heathkit had been watching the emerging microcomputer field since 1974, but at the time, they could not figure out what any of the traditional Heath customers would use one for.

Heathkit began a program to develop their own kit that would be much superior to the Altair,[2] which was known to have poor reliability due to a number of design decisions.

Wintek sent one of their programmers, Gordon Letwin, to the Heath headquarters in Benton Harbor, Michigan to meet with them.

The project lead at Heath, Louis Frenzel, recounted that Letwin once arrived for a business meeting with long hair, high-top sneakers and a velvet coat.

The first versions were extremely simple, supporting only the most basic functionality, limited to 6 digits of precision, lacking string manipulation,[3] and only allowing a single statement per line.

For $10, the user could also purchase Extended BASIC, which started at Version 10, which added string variables and various additional functions.

One review called it "medium quality" and expressed concern about how slow it was, some 10 times slower than North Star BASIC.

[6] Additionally, in spite of Heath's claims that Extended offered improved performance, benchmarking by one user demonstrated that most operations were either identical in speed or slightly slower, with the exception of some math functions like square root.

In contrast to later home computer versions, the H8 did not assume any sort of cursor addressable display, so editing the code had to be done by re-entering the entire line at the * prompt.

[10] Although some other dialects like Sinclair BASIC offered similar features, they did so using special keystrokes or characters that performed the replacement.

A number of statements seen in most dialects of the era were missing, including STOP, END, DEF FN and REM.

[15] Functions were largely standard as well, including ABS, ATN, ABS, COS, EXP, INT which was a truncate, not a floor as is the case in most versions, LOG, POS which returned the cursor position, RND, SGN, SIN, SQR, SPC that output a number of space characters and TAB to move to a particular column, FRE to print the amount of free memory and USR to call assembler language routines.

[20] String functions included the standard CHR$, STR$, LEFT$, RIGHT$, MID$, ASC and VAL.

[22] Another change was that the FRE function supplanted with the command FREE, which printed out a detailed table showing the memory use.