Recreating my experiences using an ICL PC 30

ICL Model 30 PCPicture of an old fashioned iCL Model C£) CP/M PC. Very beige.

ICL PC Model 30

This computer is the one that really started me off in business computing.  The young company I joined as a YTS as my second company eventually took me on, through another scheme as their full time office manager.  As we were starting to grow the company/companies, it was decided we needed something with a bit more oomph to help with the administration and paperwork than the single electronic typewriter that we started with.

The owner had a friend who used to work at ICL at Kidsgrove and we made a deal which meant that one day the below computer turned up in the office with a few manuals where an enthusiastic, young, office manager was waiting to start making use of it.

I’d had some early exposure to CP/M while at school, thanks to lunchtime sessions in thew newly built computer lab, but pretty much everything else would have been based on software available to the Commodore 64 and Commodore 128 home computers I’d grown up owning.

The specs were:

  • Intel 8085 CPU a Intel 8080 compatible CPU (1)
  • Running around 3 Mhz
  • 64k Memory
  • 5 1/4″ Floppy Drive
  • 5 MB HARD DISK
  • CPM-80 2.2E Operating System
  • Green screen monitor (80×25)

(1) – Comparison between the chips I think it either came with,  or we acquired at the time a Daisy Wheel printer, we were replacing a typewriter after all.

 

ICL Model 30 PC

To try and recreate this experience, which is the aim of this series, as well as forcing me to write up some notes based on the many, many hours I have spent working on these retro computing experiences, building on information and skills of people far greater than my own. 

As this uses a 8080 compatible processor, I settled on using Z80pack as it provided a working CP/M 8080 environment almost straight from a download and build/make exercise from the web to a suitable Linux based machine.

Using z80pack in 8080 mode I currently have a CP/M v3 operating system running, rather than a CPM v2.2 one, its not 100% the same but its close, at least until I can get one sorted.  It also needs a 5 1.4″ floppy disk image to boot as at the moment it doesn’t boot direct from the emulated 5 MB hard disk image, but as its virtualised this isn’t a huge problem.

Before running the emulator I need to add the directory shown below into my $PATH environment variable, as I stopped short of the full install instructions to keep track of items better.  If you follow the instructions all the way through to the ‘make install’ stage then you wouldn’t need this.

export PATH=$PATH:$HOME/bin

I created a shell script to start the cpmsim program and point it to a specific set of disk images in a folder rather than using the ln swapping method used in the scripts and instructions provided, as I thought this was neater for what I wanted to achieve.  This script starts the emulator in 8080 mode (-8) at a CPU speed of (4 Mhz), I treated myself to the extra Mhz because it seemed easier, same to the 5MB hard disk image used for the hard disk.

cpmsim -8 -f4 -d /path.to.ICL30PC.disk.images $*

The disk defs  used by this command  and some of the others to refer to the image e.g. “z80pack-hd” which is the default 5MB image size, can end up in a couple of different location, on my particular Ubuntu install they ended up in

/etc/cmptools/diskdefs 

In the folder I copied the existing CPM/3 floppy disk images (drivea.dsk & driveb.dsk), which are based on 8″ floppy disks, and created a new blank 5MB hard disk image using the downloaded cpmtools package.

mkfs.cpm -fz80pack-hd drivei.dsk

Z80pack uses drive I: as a 5MB hard drive.  P can be a 512MB hard drive image which was far larger than I need to use for this, drives a to d are 8″ floppy emulated drives. 

On the hard disk image I then pip’d over all of the CP/M v3 files from the floppy drives into the User 0 area of the hard disk

pip I:=a:*.*[r] 
pip I:=b:*.*

The [r] command added to the end of pip copies the system files from the floppy, which are hidden from the normal dir and pip commands.

I then created some additional user areas on to the hard disk and copied over the same software packages that came with the machine as we received it, leaving me with the following layout on the 5MB hard drive image.

User Areas

0 = CPM Systems Files

1 = WS

2 = SuperCalc

3 = DBase

Copying the files from a local folder into the hard drive is fairly straightforward using the cpmcp command.  The example below copies files from a local folder into user area 1

cpmcp -fz80pack-hd drivei.dsk ./*.* 1:

Repeating this to populate the user areas with the software files for the others required I soon had a working virtual environment.  I then updated the profile.sub file on the drivea.dsk image to refer to drive I: rather than A: for no other than trying to reflect everything working of I: drive as the main drive, as on the original machine the boot floppy would not have been required.

If error on tools is displayed – need to add the path

export $PATH=/home/sean/bin:$PATH

Many thanks to the following links and people involved who made my tinkering around in this particular nostalgic experience even remotely possible:

  • https://www.autometer.de/unix4fun/z80pack/
  • https://symbolicdebugger.com/retro-programming/emulated-cpm-development-system/
  • https://techtinkering.com/articles/emulating-a-cpm-system-with-z80pack/
  • http://www.vintage-icl-computers.com/icl20