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

Reply via email to