therefore, you have the choice. Either maintain portability (and more economical
use of memory) using p-code or speed up execution using native code. You can even
keep two versions of the program: one purely p-code and the other optimised for
There are, of course, other hardware features, besides the processor, which
affect portability. UCSD tackles this problem the same way as CP/M – you have a
hardware-dependent BIOS especially written for the particular machine. However,
even here, UCSD have gone one better than CP/M by simplifying the BIOs
considerably (and calling it the SBIOS – Simplified Basic Input Output System).
This is done, for instance, by standardising the Blocking/De-Blocking process in
a way that is transparant to the SBIOS writer. Other advances over CP/M include
the ability to redefine control characters to suit your console device, optional
input queuing (type ahead, etc.) and flagging of “events” to signal concurrent
Mention of Concurrency brings me back to the compilers. UCSD is a multi-tasking
operating system. You can run programs which execute several concurrent processes
at once – switching between them as necessary. (It is not, however, a multi-user
system – although it can support remote linking to a host computer or
Other powerful features that are normally available only on mainframes include
separate compilation of “Units”, overlaying (swopping in and out of memory from
disk – with all variables protected) of “Segments”, the use of “Libraries” of
pre-compiled routines and the linking of routines from different compilers, or
assembler, into one program.
Besides these advanced operating features, the Pascal compiler, itself, has
several enhancements over the Jensen & Wirth specification and these enhancements
have been the model for most of the other Pascal compilers developed since for
CP/M. Most notable is the implementation of Random Access to disk files (left out
by Jensen & Wirth who dealt primarily with sequential files) by the new intrinsic
procedure “Seek” which enables reading and writing of random records in a file.
The only major feature of Jensen & Wirth (or the ISO standard) which is missing
is the ability to pass procedure identifiers as parameters – but this is not
used very often anyway and is planned for future versions.
What does it do?
UCSD will be useful to system developers, applications programmers and business
users, and, if you have the hardware, graphics freaks. Number crunchers can
choose four-word reals (instead of two) if they wish.
When you boot up you are presented with a prompt-line giving a menu of possible
commands. (This can be altered to produce a customised “turnkey” system if
desired.) These commands are implemented by a single key and the prompting system
is followed with each of those commands in a tree-structure.
When you buy CP/M you get an editor and an assembler thrown in. However, if you
have a Z80 the the assembler is useless and unless you are dependent on an old
teletype terminal the editor will soon cause much gnashing of teeth and tearing
of hair. To get a reasonable screen editor and Z80 assembler you could end up
paying several hundred pounds extra.
With UCSD you get a very powerful screen editor which doubles as a modest
word-processor, and a macro/conditional assembler (that compares favourably with
M80) thrown in as part of the standard package. A line-oriented editor for those
using teletype terminals is also included. If you want to download assembled