Remembering my high-schools first computer a Research Machines 380Z

So way back in my early teenage life, probably around 1982, my high school received its first school computer, a Research Machines 380Z.

Apart from the usual home computers seen often at the time on television, common high-street magazines and stores, this was the first ‘serious’ computer I’d probably seen up close in real life.  

Packaged as it was in a serious looking metal case with a key that was required to start it up; this had all the trappings of a computer for doing serious things with.

Over the years, I’d always been on the lookout for a way to try and find a way of emulating the machine to try it for myself it a bit more detail without any real success. When we had the single unit at high-school it was rare any pupils would be able to get close to it let alone hands-on, looking at the price list below it doesn’t really come as a surprise.  It was sighted rarely, but did form the early vanguard for the RM 480s that would later form my high-schools computer lab when it was built. I never had the chance to take any formal computer lessons while at high school as they weren’t offered as part of my school age-groups class curriculums at the time, I’d missed out by a couple of years.  I did manage though to get access into the computer lab at lunchtimes so I was able to sneak half-hours here and there to get some hands-on time. While trawling around for CP/M information for some of the other emulation machines I have been setting up, I did come across a dump of RM floppy disks, archived on the VT100.net site but couldn’t find an easy way to use these for a few weeks. Then, by chance I’d been testing some MESS  machines, which are now a part of the larger MAME emulation package, to see if I could get Concurrent CP/M working and had another attempt at using the RM380z machine under MAME. Maybe because of a few other things I’d learnt since the last time I’d looked at it, or more likely because of the work by the other people involved in the MAME and vt100 floppy archiving work I was able to get a RM 380z machine booted and working with CP/M 2.2. It took a while and it only at this time runs the RM basic and a few other education based BASIC programs – but it does work.  The RM480 doesn’t work at the moment so that journey will have to wait a while longer, to recreate the old computer lab experience.

I’m using the command line below to load the RM380z machine and necessary files into MAME (0.263) to get it to run.  Remembering to press B at the initial prompt to tell the machine to (B)oot from disk to load CP/M.   R command to boot to ROM BASIC does not work,

So I have the second floppy loaded with Microsoft BASIC for consistency with other machines that are using the same flavour of BASIC on them.

Note this is using the option to load the machine with the Hi-Res Graphics option.

mame rm380zhrg -ramsize 56k -window -rompath "C:\mame\roms\rm380z" -numscreens 1 -aspect1 4:3 -keepaspect -flop1 "C:\Mame\roms\rm380z\380Z_RML_CPM22C.IMD" -flop2 "C:\Mame\roms\rm380z\MBASIC.IMD" -uimodekey "AltGr" -mouse_device none

The Monitor commands are:
B – Boot CP/M (COS /F, COS /M, ROS 1.2, ROS 2.2)
X – Boot CP/M from another drive (as above) e.g. the B: drive
N – Boot network (ROS)
T – Enter terminal mode (ROS)
L – Load program from cassette (COS /C, ROS)
D – Dump memory to cassette (as above)
C – Continue program at restart address (as above)
J – Go to address
O – Select printer option (and cassette speed for COS /C, ROS)
M – Enable HRG board as memory (COS 3.4, COS 4.0)
W – Select 40 or 80 characters per line (All 80-column machines)
R – Start ROM BASIC (ROS 1.1, ROS 1.2, ROS 2.2)


Ctrl+Shift+8 – Break and return to current OS (ROS)
Ctrl+Shift+9 – Break and return to front panel (ROS)

Ctrl+F – Enter Front Panel (=the debugger)
Ctrl+T – Enter Typewriter mode
Ctrl+S – Autopaging on
Ctrl+Q – Autopaging off
Ctrl+A – Toggle autopaging

For anyone familiar with MAME you will be quick to note that I have intentionally split the machine ROM files into a sub-directory under the main ROMS directory, this is purely to help my own organisation and to make it easier to work with the files while I’m testing rather than bloating the main ROMS directory with trial files.  Normally the rm380z.zip file would normally work from that location.

Technical specifications

from the December 1978 issue of Practical Computing

Hardware

CPU: The 380Z uses the Zilog Z80A microprocessor with a 4MHz clock.

RAM (Random Access Memory): The 380Z has sockets and circuitry for two blocks of dynamic RAM. Each block can use either 4K or 16K bit devices. 4K and 16K blocks can be mixed. Thus the basic 380Z can be supplied with up to 32K socket on one of the circuit boards.

Printer interfaces: The SIO-1 interface card is available to provide RS232 or 20mA current loop standard serial input output to serial peripherals.

Input/output support: cassette I/O can be selected to be at 300 or 1,200 bits/second. Output to the VDU is at a speed equivalent to about 5,000 baud with automatic paging, which can be suppressed. Output routines are included for the SIO-1, 2 and 3 interfaces and for the Centronics Line Printers.

Hard-copy: Three printers are available. The Centronics 701 is a 132-column dot matrix printer which uses ‘intelligent’ bi-directional printing to achieve a throughput of about 60cps. The Centronics 779 is an 80-column dot matrix printer with a throughput of about 30cps. The Trend 800 is a quiet, lightweight (11kg) printer with a 30cps throughput. It uses standard Teletype paper.

Disc system: Floppy disc systems are being developed along with the requisite software.

Software

RML 9K Basic: Size approximately 9K bytes; suggested minimum size of memory, 16K bytes; precision 7 digits; floating point. Commands, keywords and functions:

ABSFNLNULLPLOTSPC
ANDFORLOADPOKESQR
ASCFRELOGPOSSTEP
ATNGOSUBLPOSPRINTSTOP
CHR$GOTOLPRINTRANDOMIZESTR$
CLEARGRAPHLVARREADTAB
COSIFLWIDTHREMTAN
DATAINPMID$RENUMBERTHEN
DEFINPUTNEWRESTORETO
DELETEINTNEXTRETURNTRACE
DIMLEFT$NOTRIGHT$USR
EDITLENNULLRNDVAL
ELSELETONRUNWIDTH
ENDLISTORSAVE
EXPLLISTOUTSGN
FILESLLVARPEEKSIN

This is a fast general-purpose Basic interpreter with floating point numbers, string-handling functions, graphics, re-numbering and line editing. Extensions support the 380Z graphics and allow the plotting of symbols, characters and numbers. Two versions are available, the larger including also the ability to read and write data files on cassette, utilising the RML cassette file system.

RML 12K Basic: Size, approximately 12K bytes; suggested minimum size of memory, 20K bytes; precision 12 digits; floating point. This includes all the features of RML 9K Basic with additions. Lines may be formatted. AUTO line numbering. a RAM can follow every statement, MID$ can be used to insert a substring into an existing string. PRINT USING statement for formatted output—options, right-justified, numeric fields, decimal point alignment, floating £ sign, commas every three digits, string field specification. Hexadecimal constants. Substring search. Enhancement of user-defined functions (multi-line, recursive). Program loading under program control. COPY, EXCHANGE, CALL.

The RML 12K Basic will be of use in business and scientific applications requiring features not found in the RML 9K Basic. Due to its 12 digit precision, however, RML 12K Basic is not as fast as the RML 9K Basic. Graphics commands will be added to 12K Basic in late 1978.

RML 2K Tiny Basic: Suggested minimum size of memory, 4K bytes; precision: INTEGERS only. Range +32767 to -32767; commands, RUN, LIST, NEW, OLD, SAVE. Keywords: REMARK, LET, INPUT, PRINT, PLOT, IF, GOTO, GOSUB, RETURN, FOR, NEXT, STEP, GRAPH, TEST. Functions: ABS, RND, SIZE. This is a small, powerful, integer Basic adapted from Li-Chen Wang’s Palo-Alto Tiny Basic for the 8080. The original 8080 code has been streamlined to use Z80 codes and graph plotting with 380Z VDU graphics has been added. This is a Tiny Basic for graphics, games and learning Basic programming.

RML Interactive Text Editor: Suggested minimum size of memory, 8K: This is a character-orientated text editor comparable to text editors available on large mainframes. The editor responds to a command string which can include commands to locate, delete, type and insert characters and lines, and to move an internal pointer. A command string can be saved and executed as a Macro.

In the interactive mode, normal editor operation is continued and uses four scrolling lines at the bottom of the console screen. Whenever a command string is terminated, text either side of the pointer is displayed immediately on the upper 20 lines of the screen. Portions of the command string can be repeated n times using brackets—brackets can be nested up to eight levels. The editor also includes an immediate mode.

RML Z80 Assembler: This is an absolute assembler using Zilog mnemonics and producing object code in either the industry-standard Intel format or the RML binary format. The assembler incorporates a number of special features to speed program development on cassette-based systems.

Source text is copied into memory during the first pass: the second pass can be made using this stored copy, bypassing the relatively slow process of re-reading the source from cassette. Errors can be corrected using a co-resident editor which implements a subset of the commands available in the RML text editor. Larger programs can be assembled in stages in a similar manner, if desired, or in the normal line by line fashion.

Utilities: Supplied free with all 380Z/280Z systems. Diagnostics, Memory, cassette.

Prices

4K Bytes£834
8K Bytes£884
16K Bytes£965
20K Bytes£1,015
32K Bytes£1,158
48K Bytes£1,421

A 3K ROM Monitor is supplied as standard. The 380Z may be supplied without a keyboard. For cost of the 380Z without a keyboard, subtract £159 from the above prices.

Other hardware
4K Bytes£398
8K Bytes£448
16K Bytes£529
20K Bytes£579
32K Bytes£722
FDS-2 dual full floppy disc system£1,695
MDS-2 dual minifloppy disc system£895
MDS-1 single minifloppy disc system£629
Printers
Centronics 701£1,389
Centronics 779£847
Centronics connecting cables£5
Accessories
380Z-compatible cassette recorder with record/playback head accurately aligned. Includes connecting cable£40
Video monitors from£123
Interfaces
SIO-1 Serial Interface Card£74
SIO-2 Serial Interface Card£19
SIO-3 Serial Interface Card£18
Software
ZPL 8K Basic Interpreter£24·50
ZPL 12K Basic Interpreter£75
RML Z80 Assembler£25