chainloading PC-DOS IBMBIO.COM
#1
Posted 15 May 2011 - 11:10 AM
What I get is:
Non-System disk or disk error
Replace and press any key when ready
#2
Posted 15 May 2011 - 12:34 PM
Please share your associated config-file section, if you are using one. If you aren't, then please show the command-line you are using. Please also share which kind of Syslinux you are using; [SYS|ISO|PXE|EXT]LINUX.I knew that there is pcdos= switch in chain.c32, but I can't get it working.
#3
Posted 15 May 2011 - 12:37 PM
Environment:Please share your associated config-file section, if you are using one. If you aren't, then please show the command-line you are using. Please also share which kind of Syslinux you are using; [SYS|ISO|PXE|EXT]LINUX.
Syslinux 4.04 installed on a 1440K floppy image, with ibmbio.com, ibmdos.com command.com from PCP-DOS 2000 (also tested PC-DOS 7.1 build 132)
Test with qemu -fda syslinux.img
command-line: chain.c32 pcdos=ibmbio.com
Edited by roytam1, 15 May 2011 - 12:39 PM.
#4
Posted 18 May 2011 - 07:19 AM
You may want to have a look for a reference: http://code.google.c...es/detail?id=27
#5
Posted 18 May 2011 - 08:52 PM
Environment:
Syslinux 4.04 installed on a 1440K floppy image, with ibmbio.com, ibmdos.com command.com from PCP-DOS 2000 (also tested PC-DOS 7.1 build 132)
Test with qemu -fda syslinux.img
command-line: chain.c32 pcdos=ibmbio.com
I've never heard of "PCP-DOS 2000" or "PC-DOS 7.1 build 132" and don't know who the last person to test those with chain.c32 might have been, but thanks for reporting the bug and sharing your code. I will try to remember to share this with other Syslinux community members.I'm not familiar with Syslinux chain.c32, but on Grub4DOS side I put my effort on getting PC DOS 2000/7.1 support.
You may want to have a look for a reference...
Have a nice day.
#6
Posted 19 May 2011 - 10:39 AM
"PCP-DOS 2000" is a typo, it should be "PC DOS 2000".I've never heard of "PCP-DOS 2000" or "PC-DOS 7.1 build 132" and don't know who the last person to test those with chain.c32 might have been, but thanks for reporting the bug and sharing your code. I will try to remember to share this with other Syslinux community members.
Have a nice day.
For newer code you can have a look in stage2/builtins.c in svn which have improved in stability.
Edited by roytam1, 19 May 2011 - 10:39 AM.
#7
Posted 25 May 2011 - 03:30 PM
What is really needed to boot PC-DOS?
The grub4dos code is difficult to understand.
Which values can the ecx register contain?
#8
Posted 25 May 2011 - 03:40 PM
It is a bug report: chain.c32 says you can use pcdos=ibmbio.com to chainload PC-DOS, but it doesn't boot at all.@ roytam1
What is really needed to boot PC-DOS?
The grub4dos code is difficult to understand.
Which values can the ecx register contain?
For register details, please see the comment in FreeDOS SYS 3.6d SOURCE\ke2039\boot\oemboot.asm:
; File:
; oemboot.asm
; 2004, Kenneth J. Davis
; Copyright © 200?, <add name here>
; Description:
; OEM boot sector for FreeDOS compatible with IBM's ® PC-DOS,
; and Microsoft's ® MS-DOS. It may work with older OpenDOS/DR-DOS,
; although the standard FreeDOS boot sector is needed with ver 7+
; releases. May work with other versions of DOS that use
; IBMBIO.COM/IBMDOS.COM pair. This boot sector loads only up
; to 58 sectors (29KB) of the kernel (IBMBIO.COM) to 0x70:0 then
; jumps to it. As best I can tell, PC-DOS (and MS-DOS up to version
; 6.xx behaves similar) expects on entry for:
; ch = media id byte in the boot sector
; dl = BIOS drive booted from (0x00=A:, 0x80=C:, ...)
; ax:bx = the starting (LBA) sector of cluster 2 (ie the 1st
; data sector, which is 0x0000:0021 for FAT12)
; ?note? IBMBIO.COM/IO.SYS may use ax:bx and cluster # stored
; elsewhere (perhaps dir entry still at 0x50:0) to determine
; starting sector for full loading of kernel file.
; it also expects the boot sector (in particular the BPB)
; to still be at 0x0:7C00, the directory entry for IBMBIO.COM
; (generally first entry of first sector of the root directory)
; at 0x50:0 (DOS Data Area). The original boot sector may update
; the floppy disk parameter table (int 1Eh), but we don't so
; may fail for any systems where the changes (???) are needed.
; If the above conditions are not met, then IBMBIO.COM will
; print the not a bootable disk error message.
;
; For MS-DOS >= 7 (ie Win9x DOS) the following conditions
; must be met:
; bp = 0x7C00, ie offset boot sector loaded at
; [bp-4] = the starting (LBA) sector of cluster 2 (ie the 1st
; data sector [this is the same as ax:bx for earlier versions
; and dx:ax in Win9x boot sector]
; The starting cluster of the kernel file is stored in
; di for FAT 12/16 (where si is a don't care) and si:di
; for FAT 32.
; The values for ax,bx,cx,dx,ds and the stack do not
; seem to be important (used by IO.SYS) and so may be any value
; (though dx:ax=[data_start], cx=0, bx=0x0f00 on FAT12 or
; 0x0700 on FAT32, ds=0, ss:sp=0:7b??)
; the boot time stack may store the original int1E floppy
; parameter table, otherwise nothing else important seems
; stored there and I am unsure if even this value is used
; beyond boot sector code.
;
; This boot sector only supports FAT12/FAT16 as PC-DOS
; does not support FAT32 and newer FAT32 capable DOSes
; probably have different boot requirements; also do NOT
; use it to boot the FreeDOS kernel as it expects to be
; fully loaded by boot sector (> 29KB & usually to 0x60:0).
;
; WARNING: PC-DOS has additional requirements, in particular,
; it may expect that IBMBIO.COM and IBMDOS.COM be the 1st
; two entries in the root directory (even before the label)
; and that they occupy the 1st consecutive data sectors.
; Newer releases may support other positions, but still
; generally should occupy consecutive sectors. These conditions
; can usually be met by running sys on a freshly formatted
; and un-label'd disk.
Edited by roytam1, 25 May 2011 - 03:42 PM.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users