Running CP/M business applications on a Vice emulated Commodore 128

https://unvarnishedgeek.github.io/retrocomputing/cpm/commodore/128/wordstar/2021/02/06/Wordstar-C128.html

Re-creating my first business computer experience using CP/M (ZPM) on a Vice emulated C128

A long time fanboy of the Commodore computers of the 80’s, Vic 20/C64/C128 – yes I owned all three of these in turn before jumping to the PC platform.

The ICL30 ran CP/M and came with a few business applications such as SuperCalc, WordStar and dBase installed on the 20MB Hard Disk. You can read more about this on my post covering my experiences with this machine here.

https://unvarnishedgeek.github.io/retrocomputing/cpm/commodore/128/wordstar/2021/02/06/Wordstar-C128.html

Creating a blank CMD-HD to use (linux)

With these somewhat nostalgic memories I decided I would try and get these same pieces of software running on the Vice C128 emulator to capture that first exposure to business computing.

This post runs through what has ended up being the main steps and setup to re-create a CP/M environment and contains links to the reference sources I have used to help me discover and learn about some of the computing options that where available back in the day, that I’d never even heard of but are now more easily accessible due to the very clever, wonderful people out in the world who have spend the time and energy to virtualise these retro computers.

Basic information on the setup I used to get this up and running.

Vice GTK C128 Emulator v3.7
JiffyDos ROMS v6.01

CMD-HD ROM v2.8
Commodore CPM 87
(CMD) HD-Tools
ctools (linux)

dd (100MB)

dd if=/dev/zero bs=512 count=0 seek=$[512*400] of=test100Mb.dhd

dd if=/dev/zero of=testfile bs=1024 count=102400

 copy nul cmd-hd-a.dhd

used as the ’empty’ file method didn’t seem to work for me at the time, but dd reliably did

I used the 100MB sizing as a reasonable working size for the software I was looking to run as each 1581 drive would hold around 800K

D64 = 1541 = 170KB
D71 = 1571 = 340K
D81 = 1581 = 800K

SPORT.COM

sport /d8 or 10 /sf /c’cp1′

CMD-HD Partition types
1541
1571
1581
81-C (1581 CP/M)
NATV (CMD-HD native partition supports up to 16MB size)

PBUF – apparently never worked even on the original hardware, was supposed to be for printer buffering?
FORN – Foreign

SETUP of CMD-HD partitions

(Blank)

  1. Create HD System

    1. Attach disk image for drive 8 to cmd-hd-tools.d64.

    2. Load and run “CREATE SYS" from 8. Press RETURN in the welcome screen.

    3. RESET TO INSTALLATION

    4. Accept default with RETURN. Press Y to clear area below system.

    5. When finished, do a hard reset of the C64.

Create Partitions

Boot into CPM

SETUP NEW Partition Steps

Boot to HD-TOOLS and create a new 1581-C partition
REBOOT TO
CPM BOOT DISK in Drive 8 (will need SPORT.COM)
CMD-HD DISK in Drive 9 (It seems this is the only way to get it to format?)
BOOT CPM then use SPORT to set destination partition e.g. sport /d9 /sf /c’CP99′

Change Partitions (SPORT) in CPM

From BASIC

OPEN 15,9,15:PRINT#15,”CP1″:CLOSE15

Jiffy DOS Wedge

@CP1

CP/M format the CP/M partitions

Copy over pip.com. sport.com. submit.com zde.com

CMD-HD Partition Table – unless noted these are all using the 1581-CPM partition type
#1 – MENU (1571) (NOW BOOTS TO MENU)!
#2 – CPM3-87 ++
#3 – CPMFAST
#4 – ZPM

#9 – HDTOOLS (1571)

#10 – WORDSTAR
#11 – DBASE2
#12 – SUPERCALC2

#20 – COBOL
#21 – TURBO PASCAL
#22 – LISP
#23 – MBASIC

List Partitions
LOAD “$=P”,9

BOOT D0,U9 (BOOTS CURRENT SET PARITION on device 9)

Windows batch (.cmd) script to load the C128 Vice Emulator with key settings

SET WORKDIR="C:\Users\seanl\SynologyDrive\My Documents\Programming\c128\CPM"
SET C128BIN="C:\Users\seanl\SynologyDrive\My Documents\Programming\c128\CPM\GTK3VICE-3.7-win64\bin\x128.exe"
SET C128SET=%WORKDIR%\CPM.settings
SET UKKEYB=1
SET UKKEYT=1
SET KEYMAP=2
SET SYMMAP="C:\Users\seanl\SynologyDrive\My Documents\Programming\c128\CPM\GTK3VICE-3.7-win64\C128\gtk3_sym_uk.vkm"
SET REUSIZEKB=512
REM SET CART=snappyrom-5.34-pal.crt
REM C:\Users\seanl\SynologyDrive\Vice\SDL2VICE-3.7-win64\x64sc.exe -chdir "C:\Users\seanl\SynologyDrive\My Documents\Programming\c64" "C:\Users\seanl\SynologyDrive\My Documents\Programming\c64\assembler\prog_assembler.vsf"
REM ----------------
%C128BIN% ^
-chdir %WORKDIR% ^
-config %C128SET% ^
-80col ^
-reu ^
-reusize %REUSIZEKB% ^
-drive8type 4844 ^
-dos4844 "C:\Users\seanl\SynologyDrive\My Documents\Programming\c128\JIFFYROMS\JiffyDOS_1571_repl310654.bin" ^
-drive9type 1581 ^
-dos1581 "C:\Users\seanl\SynologyDrive\My Documents\Programming\c128\JIFFYROMS\JiffyDOS_1581.bin" ^
-drive10type ^
-fs10 %WORKDIR%\Drive9 ^
-iecdevice10 ^
-keymap %KEYMAP% ^
-symkeymap %SYMMAP% ^
-keyboardtype 1 ^
-keyboardmapping 1 ^
-VICIIfilter 0 ^
-VICIIintpal
REM ----------------

Running the software

Commodore CP/M

ADM31/31a Terminal