Site icon xiphod

Polymorphic Systems (1976)

Advertisements

Designers: Mark MacLin, Mark Lottor, Bob Martin.
ROM Software: D.L. Faiman, D.W. Sallume, R.L. Deran

TABLE OF CONTENTS


Introduction to the POLY-88 System

In 1974, two inspiring kits were introduced: the SCELBI-8H and MARK-8, both 8-bit systems that used the Intel 8008 processor (which was limited to 14-bit addressing or 16KB). While functional computers in the technical sense, numerous support chips were required, and each had their own rudimentary bus convention. Incorporating an expansion bus was becoming an expected aspect of a computer system ever since the OMNIBUS of the PDP-8/E introduced at the end of 1970.

ABOVE: The characteristic blue-front of the SCELBI-8H (8-bit Homebrew) and the distinct compact MARK-8 (8-bit).

The quiet existence of these two systems motivated other tinkerers to follow. A year later in 1975, the famous MITS Altair 8800 addressed the main shortcomings by incorporating the improved Intel 8080 CPU (reducing the number of necessary support chips) and designed-in a rapidly developed S-100 bus (which had its own shortcomings but did achieve the goal of having a modular system, and good-enough to become a standard). In addition, MITS had strategically negotiated a bulk-discount deal on the newly released Intel 8080, giving them a cost advantage across both Altair kits and factory-assembled systems—an advantage that only lasted about a year, as MITS struggled to supply the demand (of both built-systems and working RAM cards). Deliberate competition followed swiftly (via IMSAI and other clones).

In July 1976, two quite-different systems were introduced: The Apple-1, which was still largely a kit, but featured a clever single board design (that incorporated a video signal). And also, the SOL-20, which was a more complete turn-key system: ready to run out-of-the-box, had a catalog of purchasable software and peripherals, used the established S-100 bus standard, and pioneered the “wedge-shape” case style. Over 10,000 SOL-20 computers were sold over its three-year run, compared to the barely 200 units of the Apple-1 that were sold over about 14 months.

But two months earlier than either of these systems, the “Micro-Altair” was introduced by Polymorphic Systems. The Micro-Altair resembles what eventually did become the typical desktop-computer configuration: a case with simple power and reset buttons, with a detached keyboard and monitor. Polymorphic ads made a point that physical Front Panel Switches were old fashion, since you could effectively “simulate” their same operation through interactive software and a video display (ironically, this type of software became known as “The Monitor”).

However, video displays were still expensive at this time, so inexpensive systems with Front Panel Switches remained popular for several years. But the convenience and utility of a video display combined with a rapid character generator was undeniable. Each of these early systems featured a built-in machine-language-monitor program, a concept found also in the earlier IBM 5100 from 1975 (which that system called the DCP, Diagnostic Control Program). The 1950s fashion of flip switches and status lights as a primary way of interacting with a computer was rapidly coming to a close.

In numerous magazine ads (such as in Byte Magazine), MITS consistently reminded how the “Altair is a trademark of MITS, Inc.” The homebrew-computing industry was quickly getting very competitive and protective, setting the stage for what would become the home computer market. Rather than partnering-with or acquiring Polymorphic, MITS kindly requested the “Micro-Altair” be renamed, since it had no association with the MITS Altair 8800 product.

A month later, Polymorphic Systems had complied – and advertisements for June were updated to use the name POLY-88 instead. Kits were available, but documentation and ROM software were still being perfected.

By the end of November 1976, the final “Monitor 4.0” ROM software had been prepared for the POLY-88 (essentially its equivalent of a “System BIOS”), and the December 1976 issue of BYTE magazine had a favorable review of the POLY-88 by Jef Raskin. Then in January 1977 – while Chuck Peddle was introducing the Commodore PET at CES in Chicago (first of the 1977-Trinity systems) – the POLY-88 assembled systems were taking orders in BYTE magazine: 8KB RAM, an 8K BASIC, with a verified compatible TV monitor and keyboard, ran $1390. A base kit was $595 with a complete “theory of operations” manual to describe every aspect.

ABOVE: Polymorphic Systems advertisement in BYTE January 1977

But the POLY-88 had two flaws: (1) a case-overheating issue and (2) a somewhat-incompatible interpretation of S-100.

The POLY-88 CPU Card contains an 8080 CPU (white ceramic), 3x ROMs (each 1KB), two serial interfaces (one for tape storage then a more general-purpose port), and 0.5KB of onboard RAM.

Capability-wise, there wasn’t much different between the SOL-20 and POLY-88. Both had various pros and cons relative to each other, but mainly they each gave a preview of what was coming just around the corner: the appliance computer concept was “almost there.” No hardware tinkering, but ready-made systems that you would plug-in power and operate, focusing more on software applications than probing electronic signals.

The main limitation this generation had was the 2KB ROM. At the very least, this ROM avoided having to key in a custom “bootstrap loader” each time the system was powered on. TinyBASIC was written that could fit into 2KB, giving that “boot to BASIC” feel. But typically, more practical use of the system involved loading additional software from tape (such as the 8KB BASIC, which would take several minutes to load). While larger 8KB ROM chips did exist, their use would conflict with the chosen memory address arrangement of the POLY systems.

In addition, such larger capacity ROMs were still very expensive- and these systems were vying for affordability to hobbyist home users. Part of that lower cost also translated into lower build quality. But owners of these systems worried not about warranties or being able to type quickly – they were just ecstatic to have a fully functional interactive computer.

1974-1976: The era of Den Computing.


Relation to the POLY-8813

A review of the POLY-88 appears in Dr. Dobbs Journal page 313 here (or Vol 1, No 10 from 1976)
Dr. Dobb’s Journal – Vol 1 : People’s Computer Company : Free Download, Borrow, and Streaming : Internet Archive That article is also repeated here: 1000BiT – Product Review: POLY-88 The review is generally positive but points out a few inconsistencies in how the POLY88 deviates from the S-100 standard.

Within about a year after the POLY-88, Polymorphic Systems introduced 5.25 disk drive solution (as did also the SOL-20 system). Polymorphic introduced an alternative configuration of the POLY-88, called the 8813. This was a larger chassis that addressed the overheating issue and provided room for up to three integrated disk drives. The modular nature of the POLY-88 meant that these same drives could also be used with that system as well.

ABOVE: Courtesy of https://oldcomputers.net/

Polymorphic Systems continued system support and sales operations up until 1988. The POLY supported CP/M but also offered a brand-unique EXEC operating system (and WordMaster word processing software). The early Apple-II documentation is said to have been written using a POLY-8813 system (by Apple employee Jef Raskin, the same Jef who earlier wrote the POLY-88 review for BYTE magazine). Polymorphic Systems well documented their own system, and this willingness-to-teach established a loyal base of users (including an independent newsletter dedicated to their system, called PolyLetter, that continued until 1993).


POLY-88 Monitor 4.0 ROM Software

The main System ROM for the POLY-88 is the “Monitor 4.0” software from November 22, 1976. This specific date is well documented from Polymorphic Systems,, I have an original hard-copy print of the annotated code listing.

Monitor 4.0 Commands

When the POLY-88 is powered on, it first loads and runs the contents of the Monitor 4.0 ROM. This Monitor gives you a solid cursor at the top left, indicating it is in Tape Load mode, and supports three commands:

In addition to the code to monitor for the key-presses of these commands, this 1K ROM also contains various support routines. For example, the DSPLY offset supports placing a character onto the display, while handling all end-of-line and end-of-screen scrolling behavior as appropriate (this also handles control codes like ENTER, TAB, HOME, CLEAR SCREEN, and cursor movement). There is also the TIMER handler to increment the timer increment, and USART support routines (for tape load support of BYTE and POLY format — a self-enclosed bootstrapper sequence used to load in more substantial RAM software).

Front Panel Mode (aka the Front Panel Monitor Display ) (CTRL+Z)

The Altair 8800 (and other prior computer systems, going back to minicomputers like the PDP-8) were characterized by having a series of toggle switches, directly tied to CPU registers and states. This was because CRTs weren’t generally available or affordable yet- the science of making a CRT and precise control of beam-steering, was still an exotic technology. This started to change around 1970s, as the manufacturing the CRTs was better understood, combined also with hardware-accelerated “character generators.” This marked a paradigm shift in the thinking on how to use a computer: why physically print everything, instead use a reprogrammable display. This led to the phrase “Print is dead” in a scene of the Ghostbusters movie in 1984 (good foresight, but printed correspondence continued to be heavily used for several more decades).

The phrase the POLY-88 manual uses is “a simulated front panel display onto the system video terminal.” This simulated front panel is accessed by pressing CTRL+Z. Not just at startup, but an interrupt is used to access this simulated front panel display at any time.

Because the Monitor allows directly typing in hex values into RAM, one thing to know is that keys A-F and 0-9 are reserved as hex data inputs (not Monitor commands). Or in other words, all monitor commands are outside this range of A-F and 0-9.

POLY-88 Front Panel Display Usage Example

Example machine code program, entered using the Monitor (page 61 of POLY-88 Operation Software).

Monitor commands:


TinyBASIC for the POLY-88

For my particular POLY-88, the other two ROMs contain TinyBASIC. The exact origin of this TinyBASIC remains unknown, in terms of who actually created it for the POLY88 and decided to call it Version 4.0P. But there are other references about TinyBASIC, tracing its origins as thus:

1.) Google Groups archive, see the June 7th, 2003 note by “Arobase, Salle multimédia” (this was found by Evan Allen). This described a file called PCWPATB.TXT produced from a 1977 reference called “PCC’s REFERENCE BOOK” (this article was apparently re-typed by Emmanual Roche while porting “PATB” to Amstrad PCW8256 around 1986). Note that “PATB” refers to Palo Alto TinyBASIC, where this specific re-typed reference refers to “Version 3” and “PCC” apparently means “People’s Computer Company.”
Tiny BASIC for ROM (Google Groups discussion)

2.) The above note led to a trail of other references, that reveals a sequence of discussions related to Tiny BASIC. The specific 8080 version I have is the Li-Chen Wang version originating from May 1976 issue of Dr. Dobbs (note that this was a few months after the Feb 1976 Gates Open Letter, which was always ironic relative to the 8008-version of BASIC from 1974 here)

TinyBASIC was one of the main motivating reasons for the founding of the Dr. Dobb’s Journal (as described in their March 1976 issue show below):

A sequence on the development of TinyBASIC is as follows: A general design, scope and intent was described in Sept. 1975, followed by some reference implementations for the 8080 CPU.

1975 September PCC (page 14): Dennis Allison, Happy Lady, and Friends
1975 November PCC (page 10): Dennis Allison, Bernard Greening, Happy Lady, and Lots of Friends
1976 Jan/Feb Dr. Dobbs: Whipple’s and Arnold Tiny BASIC Extended (Tyler, Texas) [octal source dump listing]
1976 March Dr. Dobbs (page 26): Fred Greeb’s Denver Tiny BASIC (8080 asm listing)
1976 May Dr. Dobbs (page 12): Li-Chen Wang (8080 specific port, Version 1.0)
1976 December Interface Age (page 94): Roger Rauskolb (Version 2.0, translated IBM to Intel assembler mnenonics)
1977 PCC: Li-Chen Wang (8080 specific port, Version 3)

VERSION 3: Found in “PCC’s Reference Book of Personal & Home Computing” by DWIGHT McCABE 1st Edition (1977)


This Tiny BASIC fits in the subsequent 2KB ROM chips (two additional 1KB chips, for a total of 3KB). The code to trap the press of CTRL-B (to activate Tiny BASIC) is part of this secondary ROM. That is, the “boot to BASIC” capability is enabled onto the system without modification of the original Monitor 4.0 ROM.

On the 8813 version of a POLY88 (same processor and S-100 bus, but with 5.25 disk drives), typically the “2nd ROM” would load disk drive support that booted EXEC DOS (where the ROM was hard coded to look for a boot on the first Drive 0). That is, Tiny BASIC was never part of a standard or official configuration provided by Polymorphic Systems (in fact these two additional ROM slots would generally be empty on a POLY-88, but TinyBASIC was the most prudent usage of them). Disk drives could be added to a POLY-88, and ROMs acquired that supported the EXEC operating system just like the 8813 system.


Use of BASIC

I have successfully loaded Polymorphic’s BASIC A00 from their original cassette tape (it took about 8 minutes). The POLY-88 emulator includes BASIC.CAS which is this BASIC A00 version. Some of the differences between this and TinyBASIC:

PM -88
B
BASIC
(basic.cas)
Wait till 002A. BASIC will auto-run after the load, there is a short delay while it initializes.

To see this particular example programming running on real hardware:

1976 POLY-88 Intel 8080 CPU BASIC A00 “PLOT” Command Example – YouTube


Some additional tape images include Polymorphic Systems original Game Tape #1 and Game Tape #2. After loading BASIC A00, then type “LOAD XYZ” to load the tape named XYZ. To switch a program, press CTRL+Y to stop the program. CLEAR and SCR to clear all the memory and LOAD to load something new.

                 A00      TB   GT#
HAMURABI          X             1
REVERSE           X             1
STOCK             X             1

CRAPS             X             2
HANGMAN           X             2
WUMPUS            X             2
BACKGAM           X             2

STARTRK                   X              STARTRK1.CAS
STARTRK                   X              STARTRK2.CAS
FORTH                                    FORTH.CAS

A00 means you must load BASIC.CAS first.
TB means just the TinyBASIC ROM is needed.

When typing a name of a program, it must match how it was stored. As an example with Star Trek:

Run emulator as: PM -88 -tbasic
B
STARTRK (all upper case)
(startrk1.cas)

Note, this STARTRK1 needs existing TinyBASIC in ROM, then the STARTRK program extends this BASIC. That’s why after loading, you get the TINY BASIC prompt.

Use “H” for HELP (list of commands).

Exit mobile version