dBase II was a database management system for a very old computer system. Despite its age, it was innovative, powerful, flexible, and incredibly useful. Continue reading dBase II and Windows
Category Archives: cp/m
What is in a CP/M File Control Block?
This seems straight forward and already well documented; but it isn’t. There are some of the underlying “technical details” that aren’t mentioned but which have a big effect at the higher level. Continue reading What is in a CP/M File Control Block?
cpmfs 2.00
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
Is CP/M SYSGEN safe?
SYSGEN is used in CP/M to copy an operating system onto a new disk.
In many cases, it is safe; but sometimes it’s not. Here’s why, and when it is and isn’t safe. Continue reading Is CP/M SYSGEN safe?
CP/M 2.2 GEN 2
CP/M 2.2 Gen 2 is a standard CP/M 2.2 installed in a non-standard way on non-standard hardware. It has some benefits over the usual arrangement; yet it looks quite normal:
Continue reading CP/M 2.2 GEN 2
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
A Better CCPPATCH for CP/M 2
A patch was developed many years ago to cause CP/M 2 to look on drive A: if it couldn’t find a .COM file. This is probably a precursor to the Windows and MSDOS search PATH command, though unix may have already had a PATH variable.
You can find a copy of the patch to search drive a at: www.classiccmp.org.
BUT it has some side effects. Continue reading A Better CCPPATCH for CP/M 2
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
R.COM, W.COM and CDOS
CDOS is the Cromemco Disk Operating System. It was patterned after CP/M; but it isn’t really CP/M. In most cases the differences don’t matter or, IMHO, work in CDOS’s favour. However, with R.COM and W.COM, there are some examples where it doesn’t. Continue reading R.COM, W.COM and CDOS
R.COM, W.COM and z80sim
R.COM and W.COM are two very useful programs that Peter Schorn wrote for his AltairZ80 version of the SIMH computer simulator. They allow you to transfer files across the virtual boundary between the simulated computer and its host. Simply put, you can copy Windows files in and out of a CP/M computer; right from inside the CP/M computer. Continue reading R.COM, W.COM and z80sim
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
BASIC for Windows
One of the nice things about MSDOS/PCDOS computers and early Windows ones was they came with a BASIC interpreter. Now BASIC isn’t a language that people admit to using; but it is a fast way of exploring or demoing something. It is a pity that it vanished at some point. Continue reading BASIC for Windows
Using CCPZ
CCPZ is like CP/M, with bonuses. Underneath what you see is a standard CP/M installation but sitting above it is an improved interface. After people used CP/M for a while, they made some improvements. This is the story of one of those. Continue reading Using CCPZ
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
CpmFS Version 0.04
It’s bigger. It’s better. It’s cooler. Here’s why … Continue reading CpmFS Version 0.04
The CDOS 2.58 Boot Sector
I recently did an article on the Cromix Boot sector to show how it adapts to the disk type. However, it didn’t. So, here’s the same article again, but with CDOS 2.58 – which does. Continue reading The CDOS 2.58 Boot Sector
The Cromix Boot Sector
Here’s what the Cromix boot sector (for Cromix 11.27) looks like and why … Continue reading The Cromix Boot Sector
z80sim Hard Breakpoints
The z80sim by Udo Munk comes with the ability to set soft breakpoints. A soft breakpoint is where an instruction is temporarily replaced with a HALT instruction and the program runs until it gets to that point. Then the emulator announces “we got to …”, puts the original instruction back, and lets the user choose what to do next. However, Continue reading z80sim Hard Breakpoints