• Please review our updated Terms and Rules here

IBM PC XT, AT CP/M86 boot sector contents

Oldcoder

Member
Joined
Feb 28, 2021
Messages
49
I have a CP/M86 disk that will boot on my Thinkpad laptop but not on an Intel d915GAG desktop.

On the desktop the ROM bios looks at the Boot sector Track 0, Sector 1 and rejects the disk. On the Thinkpad the Rom bios is happy to boot the disk.

Can anyone point me to the source for the BOOT sector? The alteration guide ignores the boot sector and only documents the LDRCPM, (ldrbios) and CPM (bios for the SBC)

Where can I find out what the ROM bios is looking for in the boot sector?

Thanks

Peter
 
I'm not sure what the two machines you refer to are, or what the differences between them might be.

I have an old copy of IBM CP/M86, which boots from a SS 5.25" floppy. I could if need be extract the code of the boot sector from that, I think it would be fairly similar to the standard PC similar, all the important stuff will be in the subsequent BIOS file.

I have booted this using a i486sx tower, everything went fine. I have the IBM manual, but this doesn't say anything about the technicalities of the boot process.

What sort of boot disk are you using, it this an original one?

Geoff
 
I've just used ANADISK to look at the disk. The boot sector code doesn't look for any file explicitly, so I'm sure it does little more than a normal PC does, i.e. load the first file in the dir (which here is CPM.SYS, although attributes are set) and then hand over to that file.

What do you mean by 'rejects the disk'? Do you get an error message? Does it check the disk again, like it's looking for a file. More detail as to exactly what happens would help.

Geoff
 
The book by Ray Duncan 'Advanced MSDOS' does have some discussion of the boot process, and the boot sector, for a normal DOS disk, and I don't think the CP/M variant will be much different at this stage. There is a partial disassembly of the boot sector. pages 163-167.

Here though he shows the boot sector including the explicit names of the BIOS and DOS files, and I'm sure that that was NEVER the case in my day, as if you copied a system you HAD to ensure that the BIOS file was the FIRST file on the disk, although the DOS file could be anywhere. This was one of the things that the SYS command did for you, and I think that if the disk had other files on it then something had to be moved?

I see a note that as different machines might have different disk controllers, there might be differences in parts of the code?
 
I doubt it. How about dumping and posting the boot sector of the disk in question? It could be something as simple as lacking the required hex 55 aa in the last two bytes of the sector. Some systems check for that; others don't care.
 
Does the Pentium 4 system boot with MS-DOS or FreeDOS floppies? Some systems had BIOS settings that could prevent booting from a floppy.
 
The BIOS may be looking for a 0x55 0xAA signature at the end of the boot sector. CP/M-86 disks don't have this, as they use the last byte of the sector to hold the disk type (0 for 160k, 1 for 320k).
 
However, if the 0x55 0xAA problem (I noted that also, above) is the issue, it should be possible to remedy this with a little creative coding.
 
Chuck & John

Thanks. The BIOS on the Intel board is looking for 0x55 0xAA in the last 2 bytesof the boot sector, without them it refuses to recognise the disk as having a valid boot sector.

I have done a temporary hack to change these 2 bytes to the 55AA used by MSDOS systems and this BIOS. It now accepts that it is a valid system but as it nolonger has 01, or 10h, 11h, 48h, or 90h in 1ffh it fails later in the boot process as it then assumes that it is a 160k SSDD disk.

So I need to write a completely new boot sector to make it work and modify the BIOS to use a slightly different capacity detection mechanism.

The thinkpad BIOS does not seem to test for 55AA in the last 2 bytes of the boot sector.

Yes both systems will happily boot an MSDOS 6.22 floppy disk.

thanks for all your inputs

Peter
 
You may want to look around on the web--I seem to recall that someone really hacked CP/M 86 to support 1.44M 3.5" floppies.
Freek Heite's 144FEAT2 enables 'CP/M-86 for The IBM, Version 1.1' to use regular IBM-style high capacity floppy drives. (https://www.z80cpu.eu/mirrors/klaw/files.htm - about 1/3 down the page.) Also, 144CPM86.ZIP (just under http://www.cpm.z80.de/binary.html#operating) is a full CP/M-86 system already set up for PC AT systems. But, I do not remember any source files with either of them, nor any information about the boot sector, or process.
 
Thanks for the replies.

As far as I can ascertain Freek Heite's 144FEAT2 is an additional driver that is loaded before the CPM.SYS file by an ammended LOADER on the boot tracks prior to loading CPM.SYS that adds the additional floppy support.

Not sure why it works that way rather than replace the BIOS with a CBIOS including additional DPBs and code to select the correct DBP either by drive letter - the easy way or by analysing the disk media.

However, when I try to use it I can happily boot a 1.44 Mb 144FEAT2 disk but when I create a harddisk partition and boot from it then it looses the 144FEAT2 driver and can nolonger access any floppy disks other than the original 160k SSDD8 and 320k DSDD8. 144FEAT2.cmd refuses to load after CPM.SYS.

Any ideas on loading 144FEAT2 as part of the harddisk boot process?

I have another system (Research Machines Nimbus PC - a 80186 based sort of IBM clone) which can natively boot CP/M86 1-1 off 720k 3.5" drives. It has its own CBIOS with 3 DPBs. (A: / B: are 720k 3.5"; C: is SSDD 170k RM CP/M 2.2 format on an external 5.25" 40T drive; and D: is SSDD 160K IBM PC on the same 5.25" drive.)

In addition the only way I have managed to create a suitable blank 1.44 disk for 144FEAT2 is to use the COPYQM process and then to delete all the files.

Peter
 
You may want to look around on the web--I seem to recall that someone really hacked CP/M 86 to support 1.44M 3.5" floppies.
Chuck any ideas where assuming that the variant to which you are referring is a native cbios one and not the 144FEAT2 one?

Peter
 
IBM created a hacked version of CP/M-86 to show off the virtual machine capabilities of OS/2 2.0. I think it used a 1.44MB disk. That was considerably before 144FEAT was created. I can't find any download for it.
 
At the end of last year, I got CCPM86 patched and assembled to boot on a 144MB HD 3.5" floppy.
Here is my patched sources and process to make the boot track. I had to lay the track using MSDOS and debug.
I also do not have a formatter, I had to use a DOS formatted floppy but laying the boot track also clears the directory for cp/m.
If you want more info or even a booter disk image let me know. This should be close to what CPM86 would require as well.

Larry G
 

Attachments

  • 144cpm.zip
    27.1 KB · Views: 9
Oh also a big sleeper on this which took me some time to figure out. CPM86 knows NOTHING about an IDE hard drive controller. I do have MFM hard drives running on my CPM86 boxes.
I do have a source patch for it to not try to log in the hard drive. Usually when CPM86 tries to log in an IDE drive it just hangs. Another thing you could do is just disable the hard drive controller
in BIOS.

Larry G
 
Back
Top