Hi Hans, > infamous "Bad or missing Command Interpreter" error
This means FreeDOS looked for the boot files on the wrong drive or failed to access any drive at all. If it cannot open fdconfig.sys, it will try config.sys next, and if it cannot open that, it will use a built- in default configuration which just loads command.com ... and fails with that, too, in your case :-). > My BIOS sets the "Equipment List" word (0040:0010) to 043C > (no floppy) and returns this value by INT11. I believe recent versions of the kernel install two dummy drive letters for A: and B: then. If you say you only have 1 floppy, you get A: and B: sharing a drive, with that "change disk and press key" message or similar to switch between "the drive is A: now" and "the drive is B: now"... I think DOS is used to having some A: drive, so you could try what happens if your BIOS says that A: exists but always returns no disk in drive error messages ;-). The kernel probably does not mean drive A: when it says drive 0, I guess it means harddisks[0] then, which is drive 0x80. The kernel will normally check both A: and all harddisk drives which exist, based on some int13 "how many installed harddisks?" call. Your BIOS, MBR (if applicable) and boot sector have to pass the boot drive number (see RBIL, I believe it was passed in BL or DL) to let FreeDOS know which drive - either A: or C: - has to be used for loading the (fd)config.sys file :-). > B maps to A and A maps to C if A and B do not exist? No, harddisks always start at C:, and drives A: and B: will be either 2 floppies, 1 floppy and a clone of it, or two dummy drive letters, all depending on how many floppy drives you have. > My BIOS INT13 only support one hardisk (drive=80h) > and will return 0Ch (unsupported track or invalid media) > in AH if the kernel tries to access any other drive I do not know by heart, but I would say there should be a return value for invalid drive, too. And do not forget to set/reset the carry flag on error/success. > DYNDATA:allocating ddt - 1 * 104 bytes, total 104, 0..104 > DYNDATA:allocating ddt - 1 * 104 bytes, total 104, 104..208 Probably the two dummy floppy drives... > DSK init: found 1 disk drives > drive parameters 80 - 196854-32-26 total size 7MB That is the harddisk... > Error reading partition table drive 00 sector 0 drive parameters 80 - > 196854-32-26 total size 7MB Note that harddisks have to be partitioned, maybe you had an unpartitioned CF and DOS treated boot sector contents as a pointer to a partition at a bad location, or maybe there is some other issue with your BIOS... On the other hand, the boot sector apparently was okay, otherwise you would not have gotten that far :-). > SDA located at 0x00d3:0320 > DYNDATA:allocating DPBp - 2 * 33 bytes, total 66, 208..274 > init_buffers (size 532) at (8cee:0000) done > Preliminary: > f_node 0x8f87:0000 > sft table 0x00d3:00cc > CDS table 0x8c5f:0000 > DPB table 0x00d3:1a7a > Preliminary allocation completed: top at 7c60:fff0 > truename(AUX) > CDS entry: #0 @8c5f:0000 (2) 'A:\' > Absolute logical path: "A:/AUX" ... > truename(fdconfig.sys) > CDS entry: #0 @8c5f:0000 (2) 'A:\' > SUBSTing from: A:\ ... As you can see, FreeDOS believes you booted it from floppy, because it wants to read files from A: and not from C: ... You have to pass the right register values from int19/BIOS to the MBR. The MBR should then pass the values to the boot sector and that should pass them to the kernel, but if you use the standard MBR and boot sector, I would say that the problem is probably in your BIOS int 19 code ;-). Eric PS: When you are done with all this, you could write a summary about all the caveats of making an embedded system ready for running FreeDOS, a howto maybe :-) ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Freedos-kernel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freedos-kernel
