Image Map Image Map
Results 1 to 2 of 2

Thread: Creating a new CP/M image for a Superbrain

  1. #1

    Default Creating a new CP/M image for a Superbrain

    Hi all

    Assume I have three source files: BIOS.ASM, BDOS.ASM and CCP.ASM. I want to create a CP/M out of these and write them to a floppy disk, so that the machine boots the new image. What steps should I take? In reasonably plain English...

    Naturally I've been reading the CP/M System Alteration Guide, but it is rather opaque. On the Superbrain, the floppy disk is made bootable by custom versions of SYSGEN v1.4. Intertec had a naming convention to identify the memory size, drive type and sector size on A: and B:, so for example 64CPM5/5.COM is a version of SYSGEN.COM that is preloaded with the 64K Superbrain CP/M having 512byte sectors for A: and B:. To use it, you just issue the command 64CPM5/5 and it responds with the usual SYSGEN prompt. Skip the source drive and specify the destination drive, and it writes CP/M to the boot tracks. in this regard it is a bit like a PUTSYS.

    So... how do I get from my three ASM files to a version of SYSGEN that can write them to the disk?

  2. #2


    As you note, SYSGEN is normally customized by each vendor. Typically, the BIOS, BDOS, and CCP (and boot loader, if applicable) is relocated/assembled for the memory size and put into a .COM image in a "well known" address that is beyond the SYSGEN.COM program. I've often seen 0900H or 0980H, as I recall. SYSGEN "knows" where the image starts. MOVCPM.COM is this same image, plus relocation table, and a relocator program to make the image for a specific memory configuration. As systems started shipping with only 64K, this became obsolete. Typically, SYSGEN writes that CP/M image to the first tracks of the disk, where monitor/boot ROMs know to get it. But you need to know whether your system requires a boot loader in the first (few) sectors. For example, the Kaypro ROM read the system size off the first sector and loaded the rest of the image using ROM routines. The Heathkit H8/H89 systems loaded a mini-program in the first few sectors and just executed that - which was then responsible for loading the rest of the image into memory.

    Skipping over MOVCPM generation (considerably more complicated), you can assemble each of BIOS, BDOS, and CCP using the correct ORG values for their final location in memory (I've some cases where those files are just concatenated and assembled as one). Then you add the boot loader or header, if required, and add SYSGEN.COM. This is typically done with DDT. If your only source of SYSGEN is an existing complete image, you'll need to load that first to avoid overwriting the others. Also, it is tricky to load HEX files as DDT tries to put them in the location for which they were assembled, not 0900H.

    If this is the kind of info you're looking for, I can try and come up with details. It's been a long time since I did that, in modern times I just use Linux utils to manipulate images "offline".


Posting Permissions

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