Navigation

Personality Modules

One neat feature of the Sol is that the boot/bios/monitor (call
it what you will) ROM is on a tiny removable PC card, that Processor Technology
called "Personality Modules." The intention was that you could change
the "personality" of your machine by swapping in different boot ROMs.
Each card contained up to 2 KB of EPROM.

Stan Sieler has a web page listing which personality modules he has
here.

Another driving force behind the personality modules was economics.
Processor Technology concurrently offered both the SOLOS personality module
and the stripped down version, CONSOL. The difference was that while
SOLOS took up 2 KB of EPROM, CONSOL fit into 1 KB. Although a piddling
amount today, the cost difference was substantial back in 1977. The
struggling hobbyist could decide how much they wanted to spend on the monitor
program.

Another economic factor was that there were many types of EPROMs in
use back then, and many of which had incompatible pinouts. P.T. shipped
functionally identical Sol-20 systems but they were able to use whatever
EPROM was cheapest at that moment by picking the appropriate personality
module for the chosen EPROM manufacturer. P.T. could use four 512B
EPROMs, two 1024B EPROMs (e.g. 2708) or one 2048 byte EPROM (e.g. 2716).

appears to have been the most popular option. Besides
offering a few spartan commands for controlling the machine (setting memory,
dumping memory, jumping to a program at a given address, loading a program,
saving a program), it had some more sophisticated features too. For
instance, the input and output could be redirected to any of four I/O devices
(one of which was user definable). I find this feature quite useful
when playing with my Sol. I can tell the monitor to accept input
from the serial port as if it was coming from the keyboard; I then use
a terminal program on my PC to interact with the Sol. This way I
can transfer files and capture output quite readily. SOLOS also contained
a number of I/O routines, many of which were in a vector table at the start
of the ROM. This was meant to provide a degree of hardware/software
independence, just like the more modern IBM-PC BIOS. Quoting page
I-2 of the Sol manual,

is a variant of the SOLOS program. The
SOLOS/CUTER manual, on the
manuals page, explains
that they are largely compatible programs, except that SOLOS is targeted
specifically for the Sol computer, while CUTER is the version for other
8080 machines that use the P.T. VDM-1 (display), CUTS (tape system), and
"3P+S Parallel/Serial I/O" boards. The only command that SOLOS has
that CUTER doesn't is the "TERM" command (dumb terminal mode). Also,
the manual says that there is a ROM version of CUTER and a relocatable
version that came on tape. The version here must be the ROM version.

was a stripped down version of SOLOS, as it fits into 1 KB
of EPROM. This was targeted at more cost conscious buyers.
Quoting page I-2 of the Sol manual,

CONSOLTM – allows simple terminal operations plus direct
control of the basic computer functions for entering or examining data
in any memory location, or executing a program stored at a known location
in memory.

was another variant of SOLOS. The "TERM" command
was removed and in its place the command "BOOT" was added. This command
is used in conjunction with the Helios II Disk Memory System
in order to bootstrap the disk process. "This personality module
is supplied with Sol Systems III and IV." (i.e., system bundles that
include the helios disk system.)

is mentioned in some P.T. sales literature. It was also
a 2 KB module, like SOLOS, but the commands and features were targeted
at smart terminal applications. It was possible to do off-line editing
and then send blocks of data to the host machine under local or remote
control. I don't know if this was ever shipped or if it was just
marketing hot air. Quoting page I-2 of the Sol manual,

is a 3rd party personality module from Micro Complex, and
was an interesting development. Although it is still only 2KB, quite
a few new commands were added, such as dumping/entering in ascii or hex,
filling/moving/searching/comparing/testing memory, and adding a number
of jump vector commands. The catch is the monitor tossed out support for
the cassette interface and all related commands (CAT/XEQ/GET, plus the
standard entry points for manipulating the tapes). You can read more
about it in its manual. The
source code also has assembly-time
options for relocating the personality module to F000
(requires a hardware mod)
and for supporting 80 column displays (requires a hardware mod).

Does anybody know if any personality modules other than
CONSOL/CUTER/SOLOS/SOLED/BOOLOAD were ever produced? If you have SOLED or
some other personality module I don't know about, I'd be interested in
hearing about it and somehow getting a binary/hex dump of it from you.
Let me know!

source for the BOOTLOAD version of Solos. Replaces TERM with
the BOOT command to boot from a Helios drive.

The code above is the code for four different personality module
types.

Notice that there are three versions of SOLOS source code. Many
owners customized their SOLOS a bit for their own needs. Modifying
it was relatively easy since P.T. was nice enough to supply the SOLOS source
code. Because the "bios" was on EPROM and there were (supposedly)
well-defined entry points to the BIOS, owners could tinker with their SOLOS
as they saw fit.

"solos1" appears to have been one of these jobs. P.T. architected
SOLOS to have a jump table at the start and documented only a few "well-known"
entry points. As long as you maintained those few addresses, no applications
should be the wiser. However, many programs did have carnal knowledge
of non-standard entry points, so any fiddling with SOLOS had to be done
carefully. This version has tweaked the GCLIN routine to add code
to give the LOAD key special meaning.

"solos2" came from a personality module that appears to be a mask ROM.
It carries the legend "SOLOS-1" on it, stamped at the same time the manufacturer
put their legend on the gold lid. Thus I expect this was an "official"
version.

"solos3" came from CPMUG 015, which says it appears in P.T. Access
newsletter. This isn't true, though. Between its publication
in Access and CPMUG 015, somebody "fixed" the PCR routine (process
carriage return) to prevent the command line from erasing itself in CP/M.
Unfortunately, because PCR here is of different length than in solos1 and
solos2, it causes the entry point of subsequent routines to be off by two
bytes. Because a lot of software made direct calls into the ROM,
that software will break with this version of the P.M. So just don't
use it unless you know you want it. There is a slight change in GTBYT
(a bug?), plus the stack pointer is loaded one address higher, which works
because the 8080 decrements the SP before pushing the first word.

Paul Schaper has sent in a list of some
bugs and shortcomings he found with SOLOS that aren't otherwise documented
by P.T.

Unfortunately, the designers of the Sol decided to put the personality
module decode at $C000, which means if you have a 64 KB RAM card, it has
a hole punched in the middle of it. Actually, the system RAM and
display RAM were adjacent to this area too, so the whole block from $C000
to $CFFF is taken out of the memory map. Some people hacked up their
hardware to relocate these to the high end of 64 KB to allow more contiguous
memory for programs.

Micro Complex sold a kit that fixed the problem and was supported by
dpmon, but it did require cutting and jumpering a few traces to make it
all work. A toggle switch on the personality module then selected
between conventional and relocated behavior.