Image Map Image Map
Page 1 of 6 12345 ... LastLast
Results 1 to 10 of 52

Thread: Which CP/M for a new port: 2.2 or 3?

  1. #1
    Join Date
    Feb 2017
    Location
    Zürich, Switzerland
    Posts
    109

    Default Which CP/M for a new port: 2.2 or 3?

    So recentlyi figured out how to boot an Amstrad NC200 from floppy (it's super interesting: http://cowlark.com/2017-12-04-nc200-...ing/index.html). I did a Fuzix port port while cool, it's a bit too chunky to be useful. So, I reckon I should do a CP/M port.

    Should i target CP/M 2.2 or 3?

    3 is generally more powerful, with bank switching support etc, but I gather it's also much more complicated to bring up. 2.2 is drastically simpler (I've done 2.2 clones before). The machine has 128kB of RAM in eight 16kB banks, so bank switching would make sense sense, but I need one bank for the video system, leaving only three spare after the main address space has been subtracted.

    Implementing a bank switching 2.2 with the BIOS being a lightweight stub and the actual code held in another bank seems a lot simpler than a full-on 3 port while still giving me 60kB or so of TPA. That seems to give me most of the benefit of 3 without the work. I can use the remaining 48kB for a tiny ramdisk, or a disk cache, or something. Or is there something about 3 which would make it worth targeting directly?

    Thoughts?

  2. #2
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    29,203
    Blog Entries
    20

    Default

    I didn't find that the enhanced capabilities of CP/M 3 over 2.2 warranted the more complex adoption of the later version. Most CP/M application software is made to work with 2.2 and is generally not even aware of the added functionality.

    You didn't say if you were running a system with a hard disk or floppy-only. If you do it right, you can get huge boosts in speed on a floppy-only system by using the extra ram for disk caching.

  3. #3
    Join Date
    Feb 2017
    Location
    Zürich, Switzerland
    Posts
    109

    Default

    Oh, good, that's what I was thinking --- I've never used CP/M Plus much (except on an Amstrad PCW as a teenager; still looking for one of those), so I don't fully know what the extra features are.

    The machine is a laptop with a single 3.5" DSDD floppy drive and a type 1 PCMCIA port. I've got a 1MB SRAM card for it which would make an excellent ramdisk. I'm hoping to find a type 1 flash card adapter one day; my existing type 2 adapters won't physically fit. Until then, I don't think the 8MB CP/M 2.2 file system limit will be a problem...

  4. #4
    Join Date
    Jan 2014
    Location
    Western North Carolina, USA
    Posts
    1,101

    Default

    For a real hoot port ZS-DOS and the B/P BIOS.
    --
    Bughlt: Sckmud
    Shut her down Scotty, she's sucking mud again!

  5. #5

    Default

    Chuck and I disagree about the merits of CP/M 3. But 2.2 is certainly a lot simpler, and putting the bulk of your BIOS in an alternate bank can help get you a large TPA. You still have complications of getting data between the banks, so it may not be as simple as it sounds. CP/M 3 is not designed for arbitrary banking/paging of memory, instead you select a common page boundary (often C000H) and bank switch everything below that line. Not sure what sort of MMU capabilities you have, and that will make all the difference.

  6. #6
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    29,203
    Blog Entries
    20

    Default

    On a floppy-only system, I really can't see the benefit of CP/M 3--and I have an OEM copy here that I purchased new. Even though I'd already done a working XIOS for MP/M, I balked at moving it over to CP/M 3 (the target system had 192K of memory, re-mappable in 1K chunks), as the benefit to the average user would be close to negligible compared to the amount of work that needed to be done.

    In particular, if this is your first CP/M hosting project, working out the nuances of CP/M 3 can be daunting to say the least.

    Now, if you have software that requires CP/M 3, that's a different matter. But even after CP/M 3 was released to vendors, most stuck with CP/M 2.2. The foray into MP/M made some sense, as the host machine had 4 comm ports in addition to the console--and those were used for multi-user access under a different operating system. So it made sense.

    Not that older is better; if you have a CP/M 1.4 system, I'd endorse going to 2.2 as there are features that are used by a fair number of application programs.

    Mind you, I'm speaking as a nuts-and-bolts commercial integrator, not as a hobbyist. If I were a hobbyist, I'd seriously consider TurboDOS.

  7. #7
    Join Date
    Feb 2017
    Location
    Zürich, Switzerland
    Posts
    109

    Default

    My machine has 16kB bank switching, so for CP/M 3 I'd have to put the split at C000. With 128kB RAM that'd give me two banks, plus one page spare, in which I'd put the 8kB framebuffer (and probably stuff like the terminal emulator code). The biggest advantage of CP/M 3, from having just found the system manual, is that I get to put the BDOS in another bank, so only the resident part consumes space. But given that I'd still need to keep the resident portion in the transient bank that would only save me that much. I'd still get a 55kB TPA or so. OTOH it does look like 3 would make better use of the rest of the system bank; I see lots of caches in the memory map.

    I have ported CP/M before, but mostly in really weird-arse ways where I compiled everything into a single image from a modern PC. (Most recently I did a CP/M BDOS emulator to use CP/M binaries in a test suite.) So I'm reasonably familiar with it. For this project I think I'd rather like to do it the classic GENCPM way, using all original tools, apparently because I'm a masochist.

    TurboDOS looks very cool --- what's it like to port? Although there's no source, and the license situation makes me nervous...

  8. #8
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    29,203
    Blog Entries
    20

    Default

    Software 2000 never published source, and the versions that are out there are generally keyed to certain hardware. Still, rehosting it on other hardware would make for an interesting project.

  9. #9

    Default

    Quote Originally Posted by hjalfi View Post
    My machine has 16kB bank switching, so for CP/M 3 I'd have to put the split at C000. With 128kB RAM that'd give me two banks, plus one page spare, in which I'd put the 8kB framebuffer (and probably stuff like the terminal emulator code). The biggest advantage of CP/M 3, from having just found the system manual, is that I get to put the BDOS in another bank, so only the resident part consumes space. But given that I'd still need to keep the resident portion in the transient bank that would only save me that much. I'd still get a 55kB TPA or so. OTOH it does look like 3 would make better use of the rest of the system bank; I see lots of caches in the memory map.

    I have ported CP/M before, but mostly in really weird-arse ways where I compiled everything into a single image from a modern PC. (Most recently I did a CP/M BDOS emulator to use CP/M binaries in a test suite.) So I'm reasonably familiar with it. For this project I think I'd rather like to do it the classic GENCPM way, using all original tools, apparently because I'm a masochist.

    TurboDOS looks very cool --- what's it like to port? Although there's no source, and the license situation makes me nervous...
    CP/M 3 (banked) would give you advanced commandline editing, and generally faster access to files (extra buffers and directory hashing for fast lookups). System utilities were also generally enhanced. BTW, I would think you'd get more than 55K TPA. But that depends on how much of your BIOS must be resident, and how many different devices you support.

    Chuck and I disagree on the merits of CP/M 3. I spent many years doing software development in a CP/M 3 environment, and have a different perspective of it's value.

  10. #10
    Join Date
    Jan 2014
    Location
    Western North Carolina, USA
    Posts
    1,101

    Default

    Quote Originally Posted by Chuck(G) View Post
    Software 2000 never published source, and the versions that are out there are generally keyed to certain hardware. Still, rehosting it on other hardware would make for an interesting project.
    Thus why I point to ZS-DOS, which is completely open-source and compatible with CP/M 2.2, with some ZCPR3 enhancements. See http://www.gaby.de/ftp/pub/cpm/znode...ssrc/zsdos.htm for the files. It's the OS of choice for the P112, among other boards.
    --
    Bughlt: Sckmud
    Shut her down Scotty, she's sucking mud again!

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •