4

Years ago, I upgraded my IBM PCjr with a V20 and I was able to run CP/M 2.2. I have been looking for a CP/M 2.2 image that I can run on my current PCjr with 640K and Dual floppy (RACOR expansion). Where can I find a floppy image that I can run? Or, how can I create one?

9
  • 1
    DO you have the other upgrade too with a V20? Oct 17 '20 at 19:16
  • 2
    Have you checked the “official” CP/M images and Dave Dunfield’s images? Oct 17 '20 at 21:49
  • 7
    Also, an unmodified CP/M won't do it as the V20 comes up as 8088, not Z80 - not to mention the missing drivers. Usually Running CP/M Applications on such systems was done using an emulation layer mapping CP/M calls to DOS calls. That not only allows seamless integration (like simply starting CP/M programs from DOS command line, but as well adds intstant compatibility with all DOS supported Hardware - no need for CP/M Drivers/BIOS.
    – Raffzahn
    Oct 17 '20 at 22:08
  • 2
    Back in the day, there was a program called 22DISK, which was a nice companion to the 22NICE that you were probably using, which could read CP/M disks using a standard PC 5.25" drive. That could probably create images if you can find any software on disk at a flea market, ebay, or whatever.
    – supercat
    Oct 18 '20 at 1:47
  • 2
    According to Wikipedia, "The V20 offered a mode that allowed it to emulate an Intel 8080 CPU. A BRKEM instruction is issued to start 8080 emulation." So CP/M doesn't require any kind of emulation to run on a V20, just that instruction and support for the PCjr's hardware. Oct 18 '20 at 5:45
8

Years ago, I upgraded my IBM PCjr with a V20 and I was able to run CP/M 2.2.

Are you sure you were really running a CP/M 2.2 on that machine? Or was it rather that you could run CP/M 2.2 applications, maybe in a CP/M like shell?

I'm asking, as I'm not aware that anyone ever has gone the length to write a CP/M BIOS layer for 2.2 for the IBM PC(jr). All I ever seen were various emulation/switching layers to allow CP/M 2.2 programs to run on V20/V30 equipped PC under MS-DOS.

I have been looking for a CP/M 2.2 image that I can run on my current PCjr with 640K and Dual floppy (RACOR expansion).

I would be quite surprised if such exists.

Or, how can I create one?

Either by downloading one of the emulation layers, or writing one yourself. It's a rather easy task suitable even for beginners (basic knowledge given). After all, MS-DOS is virtually a clone of CP/M 2.2 - at least for DOS 1.x - with direct equivalents for all BDOS calls.

This reduces the task to write a CP/M style loader for:

  • Allocating 64 KiB of memory
  • Moving the emulation stub somewhere at the end
    • Considering of
      • backswitch to 8086 mode
      • Call of translation code and
      • switch to 8080 mode again
    • as well as BIOS entry points (only if you want to be perfect)
  • Preparing the CP/M Zeropage, especially with
    • Emulation stub addresses for
      • for BDOS entry
      • Program Exit
    • Default FCB setup
    • Command line parameters
  • Loading the CP/M binary to 0100h
  • Switch to 8080 emulation mode and start at 0100h

Like the loader, the main part of the emulation layer will be outside the 8080's virtual address space and consist mainly of stubs for each BDOS (and if needed BIOS) call into MS-DOS calls. For next to all this is simply about moving some register values. And maybe a few data fields. Heck, even the call numbers are almost the same :)

Such a setup is not only way less work than writing a CP/M BIOS, it does allow almost seamless integration as well - using CP/M programs like DOS without any booting or switching. Even within multiprocessing environments.

2
  • This sounds interesting. If I can't find a boot disk, I may give it a try. It will give a project to work on for the PCjr. Thank you. Oct 26 '20 at 20:29
  • 1
    @CarlosSantiago if you ever find on booting a CP/M-80 (not just starting a DOS or CP/M-86 based emulation), make sure to post it here, as it would be quite interesting.
    – Raffzahn
    Oct 26 '20 at 21:23
4

I remember it also (I did it on the Tandy 1000). This was common at the time to expand the library of applications. Now everybody thinks you're crazy.

The V20 has the ability to drop into 8080 compatibility mode and emerge into DOS. It was NOT an emulator.

I still have my Tandy 1000 and the V20, but the disk died and the label was long gone, so I can't even search for it by name.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.