Basic On An SBC With A Single Line 7-Segment Display

Microprofessor MPF-1b
The MPF-1b. Picture by Michael Wessel

Back in the 1980s the BASIC programming language was a must have feature on any home computer. Initially conceived in the mid-1960s it was swiftly adapted even for the first personal computer, the MITS Altair 8800 that became available in 1975. The freely available Tiny BASIC could fit into 2-3 kByte of memory and thus made it ideal for machines with only a few kilobytes of RAM and ROM. With additional features, BASIC then really took off in the 1980’s as the programming language for the masses on computers such as the Commodore 64, the Apple II and uncountable other platforms. They pretty much all had in common that programs were entered with line numbers and programs could be listed on the screen while programming and debugging. Editing code was nowhere near as easy as it is today but one could at least see a TV screen full of code at a time which helps a lot when coding algorithms with many variables and loops.

An interesting fact that is perhaps a bit forgotten is that BASIC also made it to much more restricted devices such as calculators that only had a single display line. The Sharp PC-1401 calculator that was released at the beginning of the 1980s is an interesting example. Being semi-conscious about such devices I was quite surprised when a friend recently showed me an even more restricted device that came with a BASIC interpreter but only had a single row of 7-segment digits instead of full ASCII characters and a non-ASCII keyboard.

The picture on the left shows the Microprofessor MPF-1 single board computer that was built to teach the basics of computing, hardware and assembly programming. Produced by Multitech in Taiwan and released in 1981, its capabilities were enhanced in 1983 with a 2 kByte add-on BASIC ROM chip. Take a closer look at the picture on the left to see just how restricted the platform is and how Multitech worked around this.

BASIC instructions were not typed in character by character. Instead, each BASIC instruction was represented by a key on the keypad for which an overlay template was delivered as the keys had a different meaning for assembly language programming. It also takes some imagination to read the contents of an instruction line on the display as there were only 6 numeric digits and thus not all characters could be printed. To adapt to the 6 numeric digits, instruction names were abbreviated to 3 characters and scrolling to the left was used when longer constructs were typed in. Apart from adapting to these physical limitations, however, it was a real basic with line numbers. Variable names were limited to a single character and a optional number and could only hold 16 bit signed integers. There were no strings and no arrays. However, values could be written to and read from any memory location so it was possible to interact with input and output ports mapped to specific memory addresses. Here’s a link to the manuals in case you would like to find out more.

So even though I was semi-aware about BASIC calculators, seeing the programming language on even more restricted machines was a real surprise. Thanks, Michael, for showing this machine to me, it has significantly enriched my understanding of the early days of personal computing!