Category Archives: cp/m

cpmfs 2.00

cpmfs tool to copy files to cpm disk images

Version 2.00 of cpmfs has just been released, and it’s pretty good even if I do say so myself.

Cpmfs is a tool that allows you to copy files to and from CP/M disk images. It runs on Windows (but should easily port to linux) so you can set up disks for an old Operating System from the comfort of your current one. I use it in automated builds but it’s designed to be easy to use manually too. Here’s what you can do: Continue reading cpmfs 2.00

INIT.COM for Cromemco CP/M

Formatting a disk in CP/M is hardware dependant. This is a bit strange because the intent of CP/M was to move the hardware dependencies to a common Basic Input Output System or BIOS, so you could run any program on any CP/M system.

They either forgot about formatting disks, or didn’t consider it happened often enough to warrant inclusion. The result is every system needs its own disk formatting program and Cromemco called theirs INIT.COM.

INIT.COM was originally fairly simple. It used to ask if you wanted to format a “Mini disk” (5″ disk) or a normal (“Maxi” / 8″) one. That program worked well and it ran under Cromemco’s CDOS operating system or under normal CP/M.

As disk formats evolved to allow double-sided disks and double-density (more data in the same amount of space), things got more complicated. Cromemco included features in INIT.COM that made it easier for a user to get the correct format; but these required things that CP/M doesn’t provide. Their solution was to include them in CDOS and, as a result, later versions of Cromemco’s INIT.COM won’t run under CP/M any more.

So how did I end up with the picture above, which shows an advanced INIT.COM running under CP/M? Continue reading INIT.COM for Cromemco CP/M

CDOS Ver 0.20 on 8 inch disks

CDOS Ver 0.20 is available on the internet for systems with small (5″) floppy disks. However, 5″ systems are painfully small. STAT.COM will tell you a 5″ disk holds 83KB but that includes 2KB of directory entries, I have always thought of them as 81KB disks.

There’s not a lot you can fit in 81KB so I’d standardized on 8″ single-sided, single-density disks for everything – other than CDOS Ver 0.20. 8SSSD was the universally agreed format for interchangeability between CP/M systems at the time so it’s a good one to pick for emulators of computers of that time.

CDOS came on 8″ disks or 5″ disks. Later versions included CDOSGEN.COM which allowed you to reconfigure the operating system to work with different amounts of installed memory and different drive configurations. My guess is, Ver 0.20 preceded CDOSGEN. There doesn’t seem to be a way to reconfigure what you have for different systems. However, … Continue reading CDOS Ver 0.20 on 8 inch disks

BASIC1

I’ve recently been looking at BASIC for Windows. What I wanted was something that captured the simplicity of CP/M or early MSDOS days, was small in size and had a reasonably useful set of functionality. TinyBASIC was a fairly good compromise but it lacked a few things … Continue reading BASIC1

z80sim Clock Speed

The z80sim program always had a command line option to set clock speed. I can’t say that I expected it to work though. That’s not a comment on Udo, who wrote and maintains the original software. It’s a comment on things that got removed by me when I did the Windows build. There were a number of things using very nicely written unix timers that were never going to work in a pure Windows environment. (I’m told that cygwin adds all of the needed unix support – a great plus – but there seems to be a lot of it to download, install and configure; a bit of a minus.)

To my surprise, despite what I’d initially removed to get z80sim running, the -f option for CPU frequency works just fine. Continue reading z80sim Clock Speed

z80sim and Front Panel

The z80sim program had a Front Panel before I got to it and cut things out to get it running on basic Windows. The picture above is what the front of a Cromemco Z1 computer looks like. I think it was taken by Udo. It is included in the files distributed as part of his z80pack and it is believed to be covered by the pack’s open source license. There is a story that one of his images ended up, uncredited, on a commercial poster site; so I’m specifically mentioning credit here. Continue reading z80sim and Front Panel

Spending 15 Minutes in a Microsecond

Debugging real-time systems is difficult. The real world happens while you’re trying to understand what the CPU is thinking in a moment. Interrupts happen. Data arrives. Buffers empty and need refilling. The simple act of stepping the CPU through its process changes the process.

What if you could slow the real world down too and spend 15 minutes inside a microsecond? Continue reading Spending 15 Minutes in a Microsecond