PDA

View Full Version : CP/M beginner- where to start?



arfink
November 10th, 2010, 07:37 AM
I have zero experience with CP/M and I'm interested in giving it a whack. I don't have any CP/M hardware around at the moment, and I just want to play with CP/M. Is there a good emulator I should check out, or any particular resources or hardware I should be interested in? I have an Apple IIgs that I could get a Z80 card for if need be, but an emulator or something of that nature would be acceptable at this point.

Any suggestions you have for a CP/M newbie would be appreciated. Thanks!

commodorejohn
November 10th, 2010, 08:05 AM
SIMH (http://simh.trailing-edge.com/) includes a pair of Altair emulators (one for 8080 and one for Z80) and CP/M disk images you can use. Also, there's MyZ80, (http://www.z80.eu/myz80cpm.html) which is CP/M-specific and includes nice features for easy transfer between emulated disks and the actual filesystem of your computer. Either one would be a good start (though if you're using SIMH on a Windows machine, I'd suggest connecting it to a Telnet port and using a terminal program like PuTTY, as you'd have to set up ANSI escape-code interpretation otherwise.)

MikeS
November 10th, 2010, 08:10 AM
There's also 22NICE and 22DISK; the author occasionally checks in here.

http://www.cpm80.com/

And then there's CP/M-86 of course...

NobodyIsHere
November 10th, 2010, 08:23 AM
Hi! I recommend getting some real hardware. Get a Kaypro or Osborne at least. If your only experience with CP/M is through an emulator I think it loses something in translation. Certainly a Z80 card for an A2 is better but a dedicated machine would be best.

Thanks and have a nice day!

Andrew Lynch

MikeS
November 10th, 2010, 08:26 AM
Hi! I recommend getting some real hardware. Get a Kaypro or Osborne at least. If your only experience with CP/M is through an emulator I think it loses something in translation. Certainly a Z80 card for an A2 is better but a dedicated machine would be best.

Thanks and have a nice day!

Andrew LynchAnd then there are build-it-yourself Z80 CP/M projects, right Andrew?

NobodyIsHere
November 10th, 2010, 08:36 AM
Hi Mike, yes, of course. However you don't need a build it yourself home brew system for CP/M.

IMO, using modern Windows based PC based CP/M emulator doesn't look much different than using MS-DOS. If that's OK with you then fine. However, I think CP/M is more relevant when placed in an appropropriate historical context -- like running a Kaypro or Osborne or any of the many available systems. Otherwise it is missing an essential quality. There is a *big* difference of running CP/M on a modern PC versus a Northstar Horizon even when running the exact same program.

Heck, an A2 or IBM PC with Z80 board is a lot more "authentic" CP/M system than any modern PC. Maybe that's just me though.

Thanks and have a nice day!

Andrew Lynch

per
November 10th, 2010, 08:44 AM
And then there are build-it-yourself Z80 CP/M projects, right Andrew?

By the way, what is exactly the requirements for running CP/M besides a 8080/Z80 CPU? The bootloader is of course in ROM, and must be machine-spesific. I also guess the BIOS (is this in ROM or on disk?) is also quite machine spesific, but that BDOS and CCP is interchangeable between different systems. How many of my guesses are correct?

I have a TIKI-100 Z80 machine, which has it's own CP/M clone called KP/M. It's more or less identical to CP/M 2.2, and not even experienced CP/M users would see much of a difference. The only differences I have found so far is that some of the Ctrl+Key functions don't work. I was wondering if it was possible to boot real CP/M on this machine, or what I need to do in order to boot it.

commodorejohn
November 10th, 2010, 09:26 AM
The basic requirements for CP/M, IIRC are an 8080, 16KB of RAM, a disk drive, some kind of console I/O (it appears to the system as a serial port, but a keyboard and video display will work fine as long as there's code making them act as a virtual serial terminal) and a machine-specific BIOS for the OS to interface to the hardware with. Your Tiki machine's differences probably have less to do with the OS and more to do with applications needing to be configured for whatever it provides in the way of terminal codes.

per
November 10th, 2010, 10:08 AM
The basic requirements for CP/M, IIRC are an 8080, 16KB of RAM, a disk drive, some kind of console I/O (it appears to the system as a serial port, but a keyboard and video display will work fine as long as there's code making them act as a virtual serial terminal) and a machine-specific BIOS for the OS to interface to the hardware with. Your Tiki machine's differences probably have less to do with the OS and more to do with applications needing to be configured for whatever it provides in the way of terminal codes.

The TIKI-100 has only graphics modes. Because of this, the system monitor in ROM contains a driver for regular alphanumeric ASCII output in addition to the bootstrap loader. It also has some misc routines for general I/O, which is very simple; basically it's just to emulate a terminal as you suggest as a requirement.

An appropriate BIOS is already present on each disk, but it's difficult to seperate it from the clone disk system and clone command interface which is also stored in the boot sector of each disk.

ahm
November 10th, 2010, 01:42 PM
I just want to play with CP/M. Is there a good emulator I should check out,
Yes! There's an awesome emulator for MSDOS* called MYZ80 (http://www.gaby.de/myz80.zip).
It doesn't come with the CP/M operating system binaries (http://www.cpm.z80.de/download/cpm22-b.zip); you'll need to import them onto the virtual A: drive.
* (it may also run under W!nd*ws -- I wouldn't know, I'm a Linux user).

In Linux I run an emulator called YAZE, but I actually prefer MYZ80.

Lots of other good stuff here http://www.cpm.z80.de/

Cheers,
Andy

Chuck(G)
November 10th, 2010, 02:11 PM
Why not just make a floppy and boot CP/M-86? Is there something sacred about the 8-bit version?

SteveH
November 10th, 2010, 02:14 PM
And then there's CP/M-86 of course...

Yes, and that can be persuaded to run on even the most current PC hardware - so long as it has a floppy drive.

A bootable image of CP/M-86 for the IBM-PC can be downloaded from http://www.cpm.z80.de/binary.html
That copy would probably require patching to enable it to run on 'AT' class PCs. Instructions for that, plus more CP/M-86 software, can be downloaded from http://www.eolith.co.uk (http://www.eolith.co.uk/)

Have fun :)

MikeS
November 10th, 2010, 04:17 PM
The basic requirements for CP/M, IIRC are an 8080, 16KB of RAM, a disk drive, some kind of console I/O (it appears to the system as a serial port, I think 16KB is not quite enough; AFAIR the official minimum is 20-something (I'm not at home right now, where my manuals are) but 48KB is the usual minimum for actually doing something.

commodorejohn
November 10th, 2010, 04:31 PM
Could be. Wikipedia says 16KB bare minimum, but it might be more depending on the version and the particular BIOS. And yeah, naturally you want closer to a full 64KB complement in practice.

glitch
November 10th, 2010, 05:56 PM
Definitely go with real hardware. I started playing around with a Z80 emulator and CP/M when I began repairing my Cromemco system, but quickly decided to get some real hardware. I ended up with a Kaypro II, a purchase I definitely haven't regretted (plus, when I got mine, they were going for around $25 + shipping).

Having just gotten my Microsoft SoftCard clone working in an Apple IIe (story here (http://www.glitchwrks.com/vintage/a2cpm/index.html)), I've found it to be reasonably sufficient for running CP/M. Getting software over is a chore, since the Apple 16-sector CP/M format is unreadable on most other machines without special hardware. I did manage to get a copy of Modem7 working for my setup, which allowed me to get Kermit-80 working.

If you've already got an Apple II compatible (from what I've read, the IIgs works fine), a Z80 card is probably your cheapest option. The shipping will certainly be less than a full machine! Let me know if you decide to go that route, and I'll make images of my Modem7 and Kermit-80 floppies sooner rather than later.

Lord Moz
November 10th, 2010, 08:20 PM
I'd like to mention the Commodore 128 + 1571 drive as an option as well. The flat style C128s aren't too expensive and are fairly easy to find on eBay, and often include the 1571 and CP/M disks. One of my C128s CP/M disks were still sealed even, which is a bit of a statement of it's own I guess, heh.

It runs all the Kaypro software I've thrown at it, including Turbo Pascal 3.

I guess it depends on what you are looking for exactly. I have 2 Kaypro IVs and 2 10s, and I would have to say they feel more "authentic" CP/M with their green screens and industrial look. The C128 has more capabilities under the hood though, with it's color graphics and sound, and an expansion port.

If you have an old XT class PC with a V20 processor you can get software that will let you run native CP/M right on your PC. There are so many options you could start anywhere.
What ever method you choose, getting software into the system is going to be the key. The easier it is to get your programs running, the more enjoyable the experience.

__
Trevor

Chuck(G)
November 10th, 2010, 09:13 PM
Again, why do some seem to think that CP/M is x80 (and some, Z80) only?

I can do far more with CP/M-86 and CP/M-68K that I ever could with CP/M-80.

But if you want to run CP/M-80, you could hardly do worse than a later system with hi-res graphics and lots of memory, say, like a Sharp MZ2500 or MZ2800. For a friendly system, I like the Epson QX-10. Not just a simple Z80 box with some generic software thrown in, but a system with some thought put into it.

Even a lowly Amstrad PCW 9512 has 512K of RAM and does 720x256 graphics and runs CP/M 3.0.

The late Z80 systems could be pretty spectacular when compared with the older clunkers like the Tandy TRS-80 or Kaypro. In general, the US makers jumped to the x86 family pretty quickly, but the European and Japanese systems hung onto the Z80 for quite a long time.

(Just speaking from experience; I've run CP/M since version 1.3 on an IMSAI).

SteveH
November 11th, 2010, 11:44 AM
I think 16KB is not quite enough; AFAIR the official minimum is 20-something...
That was my recollection also. However after checking a copy of the CP/M 1.4 Interface Guide, I found that under section 6. Address Assignments, it does state:

"The standard distribution version of CP/M is organized for an Intel MDS microcomputer development system with 16k of main memory, and two diskette drives. Larger systems are available in 16k increments, providing management of 32k, 48k, and 64k systems..."

EDIT: Just dug out a copy of the CP/M 2.0 Alteration Guide, and it states that "The standard distribution version of CP/M is set for operation within a 20k memory system..."

Chuck(G)
November 11th, 2010, 12:35 PM
It's entirely possible (I can check) that 1.4 could run on a 16K machine; 1.3 almost certainly could.

MikeS
November 11th, 2010, 12:36 PM
My recollection is from the DR CP/M 2.2 manual and I thought it was 20 or a bit more; I suppose like most software it grew larger with every release ;-)

Pretty irrelevant in this context though, since it's likely that whatever the OP uses will have >32KB

tezza
November 11th, 2010, 12:46 PM
But if you want to run CP/M-80, you could hardly do worse than a later system with hi-res graphics and lots of memory, say, like a Sharp MZ2500 or MZ2800. For a friendly system, I like the Epson QX-10. Not just a simple Z80 box with some generic software thrown in, but a system with some thought put into it.

Yes, I'm thinking of adding an Epson QX-10 to my (now very short) wanted list. I remember seeing them in the day and thinking they were a beautiful machine.

The Japanese CP/M'ers are a line of computers a lot of people forget about, but there was some nice work there. I've decided I really need an example of one.

Tez

Chuck(G)
November 11th, 2010, 12:55 PM
Another Japanese line that many people are completely ignorant about was the great line of 6809-based professional systems by Fujitsu. No CoCo, they.

commodorejohn
November 11th, 2010, 01:38 PM
For Japanese machines there's also MSX-DOS, which is basically CP/M with FAT12 support and a few other niceties. Kinda hard to get ahold of the hardware, though...

arfink
November 30th, 2010, 09:36 PM
Wow, thanks for the input. I'll probably mess with it slightly in emulator, then look at getting a softcard for my IIgs probably. My next question would be, what's some good software to play with? :D

ahm
December 1st, 2010, 08:59 AM
what's some good software to play with? :D
Get a copy of the Walnut Creek CP/M CDROM (http://www.google.com/search?q="walnut+creek+cp%2Fm").
It contains "Over 19,000 text, source and excutable files for the CP/M operating system".

Cheers,
Andy

Dwight Elvey
December 1st, 2010, 12:52 PM
Hi
I noticed in an earlier post that it is always assumed that one
needs a boot ROM. The machine I have has no boot ROM, in fact,
I have no system ROM at all. It has 100% 64K RAM( no shadowing ).
It has a floppy controller that DMAs a boot track into RAM on
reset. It runs CP/M just fine. It is an IMSAI box with a Digital System
disk interface.
Dwight

tingo
December 2nd, 2010, 02:18 PM
Dwight: how does your machine boot then? It must have a "hardware loader" in it somewhere? On the disk controller perhaps?

glitch
December 2nd, 2010, 02:35 PM
Dwight: how does your machine boot then? It must have a "hardware loader" in it somewhere? On the disk controller perhaps?

My Cromemco 4FDC (and the rest of the *FDC line) has a boot ROM on board. It uses the /Phantom line to keep any conflicting RAM boards from responding to its range. What actually keeps this from occupying 1K of the system RAM is that a write to a control port disables the ROM and the /Phantom assert.

Dwight, if your controller is doing DMA, is it halting the system processor and taking control of the address and data buses, writing the boot track into RAM, and then resetting the system processor and giving it control?