CP/M Emulators for DOS I presumed you have read enough about OverDrive 486DXs (don't get pulled over), object-oriented neural net backpropagation algorithms, matchbox hard disks, and virtual reality. It's about ten years ago that a little group get together in Austin over some heavy steel boxes called Kaypro IIs. Let's talk about CP/M. No, my spinal column and most things that attach to it are still intact. I found some neat code (some manager told me programmers should use this term sparingly) which emulates CP/M under DOS. Why would any sane person still delve into CP/M? Perhaps it's like the thrill of discovering some fragments of the Dead Sea scrolls. Or you may just have the infrequent need to access some CP/M data that you or someone else might still be using. I have three very different CP/M emulators and I'll describe them briefly here. They are 22nice, zsim, and myz80. Each has its pros and cons and I hope my summary here can help you decide if any of them might be useful for you. 22nice is from SYDEX and is the oldest, out since 1989. $40 is asked for this shareware package. A companion package, 22disk, helps with the mundane task of file transfer between CP/M and DOS. It has utilities to transfer files either way, copy files, erase files, and format CP/M diskettes. It understands over 200 CP/M formats (could this be one of the reasons for CP/M's demise?) and I was pleasantly surprised when I plug in a onetime nemesis of CP/M drives, the quad density floppy, into a DOS 1.2 MB drive, and I can read and transfer files from this old disk! A very nice feature of 22nice is it can emulate either an 8080, a Z80, or even a V20. The V20 is an interesting chip. It is really an 8088 and 8080 in one. PCs using the V20 and 22nice can run CP/M in native mode! Alas! there are some bugs in the V20's emulation and 22nice will try to warn against these. The following are some key features from the 22nice manual: * Provides terminal emulation for most common CP/M machines with terminal types for Osborne, Kaypro, Heath/Zenith, Morrow, Actrix, DEC VT-100/VT-52, Televideo 925 and LSI ADM-3X. * Supports CP/M user number to DOS subdirectory translation. * Allows use of DOS "pipes" and utilities with CP/M programs. * Supports a complete set of BDOS and BIOS function interfaces, including direct disk read/write. * CP/M programs are fully integrated into the DOS environment; the user is unaware that a program is CP/M- or DOS-based. You can install 22nice in one of three ways -- as a device driver in config.sys, as a terminate-and-stay-resident program or as a regular program. For occasional use, I would recommend the last method. CP/M files are named with a .CPM extension. A utility called GENCOM creates a pre-loader. When this program is run , it then looks for the CP/M program of the same name and executes it. For example, I gencom'ed D.COM, my favorite CP/M superdirectory program, and it creates a D.COM for DOS which loads D.CPM and runs it. Let me tell you, it's an errie feeling running D.COM on DOS and see it display my DOS files in a DOS subdirectory. Zsim is by Jrgen Weber in Germany. He calls it "The hundred percent Z80 Emulator" and asks for $20, or $50 if you want the encrypted source which is included in the ZIP file. (When you send money, he'll send you the password to extract the files from the archive. Actually I think that's a fairly reasonable way of protection.) Jrgen mentioned that his emulation equates 1 Mhz of a Z80 to 10 Mhz of the DOS Landmark test. I've seen Landmark claims of 120 Mhz on some 486 systems. (Don't ask me what they smoked to get those numbers). So a 12 Mhz Z80? That boggles the mind. Is that like a Studebaker going 120 MPH on Mopac? Read his instructions before using. Here's an excerpt: "Be sure that you do not insert a MS-Dos disc when prompted for a CP/M disc. The CP/M bios would overwrite the MS-Dos disc without prompting. Also MS-Dos overwrites CP/M discs." The major disadvantage of this package is it requires the A drive to be set as a CP/M drive. This could be rather clumsy where the A drive is a 3.5 inch drive on a PC, such as the one I'm using now, which is actually Reed Stone's machine, and I have to butcher, er, I mean reconfigure his system to run these tests. As far as I know, no CP/M system supports a 3.5 inch drive. Also, it only knows about a few native CP/M disk formats and suggests using 22disk from SYDEX to use other formats. As the name implies, zsim emulates a Z80, and it requires a CP/M bootable disk in drive A to work. Perhaps to avoid legal entanglements? The most interesting feature is its creating a 640K CP/M virtual machine and a RAMdisk. For example, you can have a 400K ramdrive within the 640K CP/M system. Unfortunately I've forgotten enough about low-level CP/M details to find zsim interesting. The manual contains lots of assembly code fragments for illustration. MYZ80 is shareware written by Simeon Cran from the land of Oz (Australia) who also claims it's the best Z80 CP/M emulator in the world. Programmers are so modest. The latest version, 1.03, emulates the Z80/64180 processors and claims to be compatible with CP/M 2.2, CP/M 3.0, and also ZCPR. It's the only one that claims compatibility with most of the popular CP/M systems. This package is interesting that it emulates CP/M as a virtual A drive. There is actually a file named A.DSK. All work done on CP/M is stored in this file so A.DSK will grow in size as time goes on when more files are imported. Importing a file means moving a file from DOS to the CP/M environment. Exporting is the reverse function. Of course, you can also create B.DSK, C.DSK, etc. as work progresses. Some resemblance exists in the packaging of this shareware to 4DOS. They both claimed to be full non-crippled versions of the actual product. A difference between the shareware and the registered versions is the startup screens. On 4DOS, the shareware version has a banner reminding you to register. This one has eight screens! of text before it puts you into CP/M. Although most of the screens are actual help files I find that somewhat annoying. Of course, that's the whole purpose to entice one to register. Perhaps the most powerful feature of MYZ80 is its support of newer DOS operating systems. It can run either in 16- or 32-bit mode depending on whether it is run on an AT-class or 386 or newer system. For multitasking operating systems such as OS/2, Windows, and Desqview, one can run it as a single task. I tried exactly that. I opened a DOS window in Windows, cd to the cpm directory and start MYZ80. After the annoying screens, I got an A0> prompt. I'm in CP/M in a DOS window under Windows! MYZ80 contains only a couple of small help files. The few commands that came with it has built-in help. I suppose he really wants people to register to get proper documentation. All three packages are concerted efforts by these hardcores to provide perhaps the last linkage from CP/M to the DOS world. Some of you may have long since sold your CP/M computers but may need to access some files for whatever reason. Or you have this really neat (I promised this is the last time I'll use this word) recipe program in CP/M with a bunch of recipes stored in the database. You can now access this data on your DOS PC with any one of these. And I promise not to talk about CP/M for another decade. -- Luis Basto Feb, 1993