Finally we reached the most exciting part – we will launch CP/M operation system on “UT-88”.

This system was initially developed in 1975 by Gary Kildall of Digital Research, Inc. for Intel 8080 based computers. “UT-88” is based on the Soviet analog of this processor (KR580VM80A), so it was possible to adapt it for this computer as well. OS listing for “UT-88” and detailed description were published in the “Young Technician” magazine.

This system utilise 256Kb “RAM-disk” of the computer.

There are two methods to load the system to my computer: using memory dump with the system and some programs already recorded on “RAM-disk”, and traditional way of loading the system and programs from a tape.

Lets start with the first method as the most convenient. Firstly, MONITOR-F has to be launched as it was describe in one of the previous posts. Secondly, DE1 needs to be connected to a Windows machine with USB cable. Then SW[8] switch has to be turned on to transfer DE1 to USB JTAG mode. DE1_Control_Panel.exe, that can be found on CD disk that comes with DE1 board, then can be launched. Choose Open -> Open USB Port from the menu:

After that go to SRAM tab, tick File Length and press the “Write a File to SRAM” button:

Choose memory dump file to load. For instance, it can be the file that I used: Memory dump with CP/M (it needs to be unarchived before).

When a memory dump is loaded, turn off switch SW[8] and perform “hot reset” of the system with GDA00 command of MONITOR-F. The following command DIR will show what programs are on the “RAM-disc”.

You can create your own memory dumps that contain any programs or files on “RAM-disc”. To do this choose “Entire Sram” option in the DE1_Control_Panel program, and press “Load SRAM Contetnt to a File” button to save a memory dump to a file for future use. Just make sure that switch SW[8] is turned on before doing this.

To launch CP/M traditionally, from a tape, a loader needs to be loaded from a tape in MONITOR-F. Then MONITOR-0 and its programms ROMs, as well as timer interrupts, have to be turned off if it hasn’t been done before (switches SW[2], SW[4] and SW[6] in “0” position). Loader can be executed with G3100 command. It will perform a memory initialisation and launch CP/M. The following message will appear:

СРМ V―2,2 DISK RAM 256 К

А>

An invitation message А> means that OS СР/М is waiting for a command. If you notice a mistake in a command before “ВК” button is pressed you can fix it using “←” button.

Internal commands are a part of the operation system. They can be launched at any time and don’t require any files on connected drives. СР/М has following internal commands:

DIR ― file list;

REN ― rename file;

ERA ― erase file;

TYPE ― display file on screen;

SAVE ― save RAM range on a disk as a file.

External commands are programs stored on a disc. Their files have «СОМ» extension. They can be loaded to RAM from 100Н address and then copied to the “RAM-disk”.

To execute external commands only a name without «СОМ» extension can be used. СР/М will find the file on “RAM-disk” and launch a corresponding program.

The main external command is CH.COM. This program reads and writes files from/to a tape to/from “RAM-disk”. It is the simplest way to fill “RAM-disk” with files.

To write this program to the “RAM-disk” the following steps need to be done (if you’ve loaded CP/M from the memory dump, this program is already recorded on the “RAM-disk” and you don’t need to do following steps):

4) If you don’t have the extension board, 7-segment indicators on VGA display need to be turned on with switch SW[1] and PS/2 keyboard switched to keypad mode (switch SW[0] in position “1”).

5) When “11” message is displayed on 7-segment indicators, MONITOR-F needs to be launched by (7 F800) command.

6) After that PS/2 keyboard can be switched back to full mode (switch SW[0] in “0” position). Now the CH.COM program can be loaded from address 0100 from tape. The program can be downloaded from here.

7) Now CP/M “hot start” command can be entered – GDA00.

8) When CP/M invitation message A> appears, we can use command SAVE to copy loaded program from RAM to “RAM-disk”. The program length is 3 blocks (256 bytes each) and so the command will be:

A>SAVE 3 CH.COM

(it means that first 3 blocks starting from the address 0100 will be saved on disk into a file named CH.COM).

You can use steps 2-8 to load any other programs to the “RAM-disk” but it is much quicker to use CH.COM program instead.

You can check that CH.COM is on the “RAM-disk” by DIR command.

Just to show how CH.COM command works, lets create a small file with SAVE command:

A>SAVE 2 EX.COM

Lets check that this file exists with DIR command:

А: СН СОМ : EX СОМ

А>

We can see that there are two files on the disk now. Lets record EX.COM file on tape. To do this the following command can be used:

А>СН ЕХ.СОМ

The following message will appear:

CHANGER VERS1.1 READY TR FOR OUTPUT, PRESS CR

it means that “ВК” needs to pressed as soon as a tape recorder is turned on. When the file is recorded the following message appears:

READY TR FOR VERIFY, PRESS CR

The system is waiting to verify the record. “ВК” button needs to be pressed as soon as the record from a tape starts to play. If any errors are discovered the following message appears:

VERIFY ERROR

Otherwise a standard invitation message appears:

А>

Lets now delete the file from the disk with ERA command:

A> ERA EX.COM

If we check the file list now it will show:

А> DIR

А: СН СОМ

which means that EX.COM file has been erased.

Lets restore EX.COM file on the “RAM-disk from tape. The following command can be used:

А> СН EX.COM

If there is no such a file on the disk the following message will appear:

READY TR FOR INPUT, PRESS CR

which means that the computer awaits “ВК” button to be pressed as soon as a tape player is on. If the file is successfully read from the tape, a standard invitation message will appear: А>.

You can check that file is on the disk by DIR command.

Another useful external command is STAT.COM. It can be used for file list generation, getting a file size, checking free space on a disk and some other functions. Lets assume that you already have STAT.COM on the disk. If you use STAT command the following information about “RAM-disk” will be displayed:

A:R/W, SPACE : 152К

А>

It means that the disk is in read & write mode and it has 152 Kbytes of free space.

Command STAT can change disk status by turning on write protection. It can be done with the following command:

A>STAT A:R/0

Lets check the disk status now:

A>STAT

A:R/O, SPACE: 152K

A>

Command STAT also allows to display information about files:

A>STAT *.*

As a result information about all files on the disk will be displayed:

RECS BYTES EXT АСС

41 6К 1 R/O A:STAT.COM

BYTES REMAINING ON A:152K

A>

This data means that:

RECS ― a quantity of records that a file occupies (one record – 128 bytes);

BYTES ― file size in Kbytes;

ЕХТ ― it is “1′ if file size is not more than 16 Kbytes;

АСС ― from the word ACCESS ― file access status

R/O ― read only.

Command STAT can be used for filtering files if only a part of its name is known. Unknown parts can be replaced with «*» and «?» metasymbols or its combinations.

For example:

STAT FILE. *

STAT *. COM

STAT FI??. ?0?

STAT F??. *

To replace a group of characters “*” is used. To replace only one character ― “?” is used.

These metasymbols can be used as well with internal commands DIR and ERA.

In the first example above command STAT will display information about all files with the name FILE and any extensions. In the second it will display only information about files that have .COM extension. In the third – about all files which has four characters in its names and first two of them are FI and their extensions have О in the middle. In the forth example – about all files which names consists from three characters, start with F and have any extension. It is obvious that a file name cannot have more than eight “?” metasymbols and an extension more than three.

A file can be renamed with REN command. For instance:

А> REN FILE.COM = STAT.COM

You will not be able to rename a file if it has R/O status.

Command TYPE displayes text files.

As you probably remeber, command ERA erases files from disk. For instance:

А> ERA FILE. COM

А>

You can use metasymbols with ERA command. Files with R/O status cannot be erased.

In the final part we will have a look on some programs for CP/M and learn how to load programs to the “RAM-disk”.

As you may remember, I’ve designed a universal platform for building retro-computers “Retrobyte”. I have successfully tested it by building the “Mikro-80” computer a few months ago and now I’m working on adapting my other retro-computer project “AGAT-7” to this platform. “AGAT-7” requires more functionality than “Retrobyte” has, so I’ve build an extension board for[…]

A blog format is not very suitable for short status updates of my projects, sharing ideas or interesting facts and news. So, I have created a twitter account to supplement the blog. You can now see the latest tweets on the right side of the home page. The detailed articles are still going to be[…]

The computer “Mikro-80” was made in the Soviet Union in 1980 by a team of enthusiasts before in 1982, the magazine “Radio” began publishing its documentations and schematics. In a nutshell, this was the first accessible personal computer in the USSR; in that era, only single digits of people in the country had the ability[…]

In my previous post, I explained my idea of a modular platform for building modern replicas of retro-computers, of which the Rev.A has already been built and tested. In the process, I found a few things to improve: On the silkscreen, the diode D1 was shown incorrectly (the cathode points to the anode) The voltage[…]

During the time I worked on the “Agat-7” replica, I came across the need for constant changes and improvements; these resulted from either new ideas or troubleshooting. Some of these troubleshoots involve tinkering with the circuit board. Currently, I have four different revisions and modifications of PCB’s for “Agat”; this isn’t even the total amount,[…]

The multimedia center in my car is quite useful – it features a built in GPS navigator, a rear-view camera, an MP3 player and several other handy functions. However, its greatest weakness is the inability to play music via Bluetooth. The only supported option is the hands-free bluetooth phone connection mode. To listen to music[…]

Not so long ago I found out about a very interesting computer under the name of Maximite. It is built on the microprocessor PIC, on which are assigned all the main functions of this computer. This small device was made in 2011 and became popular enough so that now some games and programs were made for[…]

In the previous post, I promised to tell you about the holders that I made for the spool of plastic for my 3D printer. In the original kit, there is no holder or support for the plastic and it just sits there next to the printer. The spool, positioned thus, often tangles and requires constant attention. This[…]

It was always a problem to find a proper enclosure for my devices. So, I decided to build a 3D printer for these purposes. It is a great project to build. It can be used not only for customised enclosures but for all sorts of other projects. I didn’t want to buy a pre-build printer[…]

I’m about to finalise my Rev.0 of the modern replica of the retro-computer “AGAT-7”. The next step will be Rev.A design with fixed mistakes, improvements and some new ideas. In this post I’m going to summarise the Rev.0 experience and share with you with some ideas for Rev.A. At the moment the Rev.0 computer starts[…]