• Developing for CP/M 2.2

    From gmc@gmc@metro.cx (Koen Martens) to comp.os.cpm on Sun May 31 18:08:25 2026
    From Newsgroup: comp.os.cpm

    Hi,

    I still haven't soldered together my RC2014, but it's going to
    be a rainy week here so I guess it's going to happen :)

    In any case, I've been exploring CP/M 2.2 in the z80pack
    emulator for the past week(s) and started writing some software
    for fun and education.

    I've been using the assembler that ships with the OS, 'asm', and
    that works fine. It's been fun to re-acquaint myself with 8080
    assembly (even though I never did any 8080 assembly before, but
    did a lot of Z80 assembly which is basically the same with some
    extras).

    As the source grows longer, I'm dreading the point where I can
    no longer edit it. Once I hit 512 lines, te (the editor I'm
    using) started complaining. Apparently it's configured to have
    a max of 512 lines by default. It can be increased, but the max
    max is 4096. We'll see if I get there, but assembly tends to
    grow pretty quickly.

    I could chain assembly instructions together on one line with
    the ; separator, but that's not going to help readability
    I fear.

    Anyway, at some point I might want to split it up in
    multiple files anyway, just to keep things structured. I guess
    that means I will have to switch to microslop's M80 assembler,
    or are there others available?

    It doesn't appear that there's some kind of build tool for
    M80 either, which keeps track of which files have been
    modified and need to be reassembled. I guess one could
    (ab)use the 'changed' bit of the files for that, if one
    doesn't already use it for tracking files for backup.

    Now of course, I could be doing all this on my linux host
    using cross compilers and a modern IDE and all that, but
    where's the fun in that?

    Cheers,

    Koen
    --
    Software architecture & engineering: https://www.sonologic.se/
    Sci-fi: https://www.koenmartens.nl/
    Retrocomputing videos: https://retroscandinavian.eu/

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From David Schultz@david.schultz@earthlink.net to comp.os.cpm on Sun May 31 14:33:42 2026
    From Newsgroup: comp.os.cpm

    On 5/31/26 1:08 PM, Koen Martens wrote:
    Now of course, I could be doing all this on my linux host
    using cross compilers and a modern IDE and all that, but
    where's the fun in that?

    Something I did pretty quickly with CP/M-68K was get a better editor.
    The first was RED. Keyed in from the listing in Dr. Dobb's. And boy
    wasn't that fun.

    Then I got the uEmacs source from the C User's Group. I have been an
    Emacs user ever since.

    If you haven't found it already: http://cpmarchives.classiccmp.org/
    --
    http://davesrocketworks.com
    David Schultz
    "It's just this little chromium switch here..."
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From gmc@gmc@metro.cx (Koen Martens) to comp.os.cpm on Mon Jun 1 11:44:08 2026
    From Newsgroup: comp.os.cpm

    David Schultz <david.schultz@earthlink.net> wrote:
    Something I did pretty quickly with CP/M-68K was get a better editor.
    The first was RED. Keyed in from the listing in Dr. Dobb's. And boy
    wasn't that fun.

    Then I got the uEmacs source from the C User's Group. I have been an
    Emacs user ever since.

    There's also ve (a vi-like editor) for CP/M, listed on https://t3x.org/t3x/0/programs.html (Nils posted that here
    recently). I have yet to try it though.

    Cheers,

    Koen
    --
    Software architecture & engineering: https://www.sonologic.se/
    Sci-fi: https://www.koenmartens.nl/
    Retrocomputing videos: https://retroscandinavian.eu/

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From John@john@somewhere to comp.os.cpm on Tue Jun 2 06:21:12 2026
    From Newsgroup: comp.os.cpm

    On 5/31/26 1:08 PM, Koen Martens wrote:


    Now of course, I could be doing all this on my linux host
    using cross compilers and a modern IDE and all that, but
    where's the fun in that?

    Cheers,

    Koen


    Kudos on the effort and all the great fun you are having!

    But don't worry too much about cross assemblers.
    The 8080 has a long history of cross assemblers and compilers being used
    for large projects.
    Gates/Allen used one for the first Altair Basic for the 8080 back in the
    70's.
    I regularly use them for anything non-trivial.
    I have several vintage machines connected in an rs-232 loop with a
    Windows PC on one end running Terra Term for communication.
    On this machine I have a CP/M emulator running in DOS and Notepad++ for editing. I edit/assemble/test everything on the PC. When it looks
    good, I XMODEM it over to a vintage machine. This process saves wear
    and tear on the old hardware too.

    -J
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From gmc@gmc@metro.cx (Koen Martens) to comp.os.cpm on Tue Jun 2 13:45:12 2026
    From Newsgroup: comp.os.cpm

    John <john@somewhere> wrote:
    But don't worry too much about cross assemblers.
    The 8080 has a long history of cross assemblers and compilers being used
    for large projects.
    Gates/Allen used one for the first Altair Basic for the 8080 back in the 70's.
    I regularly use them for anything non-trivial.
    I have several vintage machines connected in an rs-232 loop with a
    Windows PC on one end running Terra Term for communication.
    On this machine I have a CP/M emulator running in DOS and Notepad++ for editing. I edit/assemble/test everything on the PC. When it looks
    good, I XMODEM it over to a vintage machine. This process saves wear
    and tear on the old hardware too.

    The RC2014 isn't exactly old hardware :)

    I've used cross compilers a lot, still do, and not just for vintage
    targets. My job involves lots of low-power ARM and Risc-V CPUs, you
    don't want to be compiling on those (if that would even be possible).

    But I just want this one to be completely developed on the target,
    to prove that it can be done. It's part of the challenge for me,
    and goes back to my interest in permacomputing. I want to be able
    to do everything I want on the physical CP/M system with as little
    dependencies as possible. At some point this will also involve
    running the system on solar power instead of from the grid.

    Cheers,

    Koen
    --
    Software architecture & engineering: https://www.sonologic.se/
    Sci-fi: https://www.koenmartens.nl/
    Retrocomputing videos: https://retroscandinavian.eu/

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From =?UTF-8?Q?Josef_M=C3=B6llers?=@josef@invalid.invalid to comp.os.cpm on Wed Jun 3 10:51:33 2026
    From Newsgroup: comp.os.cpm

    On 31.05.26 20:08, Koen Martens wrote:
    Hi,


    [...]

    Anyway, at some point I might want to split it up in
    multiple files anyway, just to keep things structured.

    I suggest doing just that: split up your source into several source
    files, then assemble each one into an object file and, last, link
    everything together into the final executable.

    Personally I have an old SB180FX with ZSystem which comes with all the
    tools necessary, so ymmv.

    Josef
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From RP0000036664@FredJScipione@alum.RPI.edu to comp.os.cpm on Sun Jun 7 21:17:13 2026
    From Newsgroup: comp.os.cpm

    Koen Martens wrote:
    Hi,

    I still haven't soldered together my RC2014, but it's going to
    be a rainy week here so I guess it's going to happen :)

    ...<snip>...

    Now of course, I could be doing all this on my linux host
    using cross compilers and a modern IDE and all that, but
    where's the fun in that?

    Cheers,

    Koen

    Are you aware of the Unofficial CP/M website at <gaby.de>? The
    Small-C section includes Small-MAC (assembler, librarian & linker) & Small-TOOLS (as well as the compiler). Various editors & other tools
    also available.

    See also the Walnut Creek CDROM (image) from <archive.org> (& SmallC
    CDROM - includes cc driver for CP/M).

    Lots of useful development tools for CP/M still available in internet accessible archives.

    Fred

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From gmc@gmc@metro.cx (Koen Martens) to comp.os.cpm on Mon Jun 8 19:03:48 2026
    From Newsgroup: comp.os.cpm

    RP0000036664 <FredJScipione@alum.rpi.edu> wrote:
    Are you aware of the Unofficial CP/M website at <gaby.de>? The
    Small-C section includes Small-MAC (assembler, librarian & linker) & Small-TOOLS (as well as the compiler). Various editors & other tools
    also available.

    I have been on that site, but wasn't aware of Small-MAC, so thanks
    for that. I'll be checking that out!

    See also the Walnut Creek CDROM (image) from <archive.org> (& SmallC
    CDROM - includes cc driver for CP/M).

    Lots of useful development tools for CP/M still available in internet accessible archives.

    My main problem is that there's so much, and I don't know what I'm
    looking for specifically, not having used CP/M before. I guess I'm
    just overwhelmed, but tips like the above make all the difference.

    Cheers,

    Koen
    --
    Software architecture & engineering: https://www.sonologic.se/
    Sci-fi: https://www.koenmartens.nl/
    Retrocomputing videos: https://retroscandinavian.eu/

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From gmc@gmc@metro.cx (Koen Martens) to comp.os.cpm on Tue Jun 9 15:19:41 2026
    From Newsgroup: comp.os.cpm

    Koen Martens <gmc@metro.cx> wrote:
    I have been on that site, but wasn't aware of Small-MAC, so thanks
    for that. I'll be checking that out!

    Small-MAC seems nice! It uses different syntax than the
    assembler shipped with CP/M itself though. I hope I can
    track down the manual somewhere, otherwise I will have
    to reverse engineer somehow ...

    Cheers,

    Koen
    --
    Software architecture & engineering: https://www.sonologic.se/
    Sci-fi: https://www.koenmartens.nl/
    Retrocomputing videos: https://retroscandinavian.eu/

    --- Synchronet 3.22a-Linux NewsLink 1.2