Image Map Image Map
Results 1 to 3 of 3

Thread: Question about WBOOT (warm boot routine)

  1. #1

    Default Question about WBOOT (warm boot routine)


    I'm reverse engineering one of the Superbrain BIOSes (actually the Compustar Model 30 BIOS but I expect it is identical to the Superbrain I QD and it's the one I use).

    I'm looking at the warm boot code and it appears to be loading the CCP and BDOS. I guess there is no reason why it shouldn't, but it seems inefficient to reload BDOS every warm boot. I thought you only needed the CCP reloaded, as applications usually need the BDOS to run, but don't need the CCP; so the memory used by the CCP is up for grabs providing the application doesn't exit with a RET.

    Have I got that right?

    On the other hand, a cold boot needs the CCP, BDOS and BIOS loaded. If this routine is loading the CCP + BDOS, I need to find the part where it loads the BIOS...

    [Edit: heck, the ROM routine should be loading the BIOS. BIOS can't magically load itself!]
    Last edited by JonB; September 4th, 2018 at 06:24 AM.

  2. #2


    It was generally acknowledged that there were 4 basic types of CP/M applications, based on how they return control to CP/M.

    1) Preserve the CCP (and it's stack, and BDOS and BIOS) and simply return directly to CCP.
    2) Use the CCP memory but preserve the BDOS, and perform a warm boot (JMP 0) on exit.
    3) Overwrite the CCP and BDOS, but preserve the BIOS. Depending on the BIOS implementation, you could recover by warm boot (provided the BIOS re-loads the BDOS as well as CCP).
    4) Use all of memory (overwrite CCP, BDOS, BIOS), or basically be a stand-alone program that directly accesses hardware. The only way to recover from this type is to cold boot, i.e. RESET the computer.

    I have not read that part of the CP/M alteration guide in a while, but seem to recall that they suggest that the BIOS implementer reload both BDOS and CCP on warm boot.

  3. #3


    Ah, right durgadas311, then it makes sense. I suppose an application could zap the BDOS, if it was prepared to implement its own file I/O - assuming it needed any.

    So now I just need to reverse engineer the boot ROM code (which has already been attempted by Warren Gay and I have his commented ASM file, but the cold boot code isn't commented).


Posting Permissions

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