80-Bus News


January–February 1983, Volume 2, Issue 1

Page 51 of 56

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 speed.

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 processes, etc.

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 networking.)

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

Page 51 of 56