It was thus said that the Great Tony Duell once stated:
Because
INT 18h doesn't check for bootable devices. It is the entry to
ROM BASIC. It may well be that the most common time that it is called is
from the bootstrap after both floppy and hard disk boots have failed, but
that doesn't mean it's the only time it can be called.
Tony, are you simply being obstinate here, or didn't you see the above
reference to "common user?" Do you think "common users" -- not to
be
disrespectful to plain old computer users -- read BIOS listings???
No, perhaps not (although it would probably be a good thing if they did
:-)). On the other hand, that is _no excuse_ for displaying misleading or
incorrect error messages.
INT 18h has _nothing_ to do with bootable devices. It's the entry for ROM
BASIC. To make it display a message saying 'No bootable devices found' is
plain misleading.
While the PC XT BIOS Listing (and the PC Jr BIOS Listing) both refer to
INT 18h as the ROM BASIC entry, under the Data General/1 Laptop I have that
entry (I don't have the BIOS listing, but I do have the BIOS programming
guide and hardware reference manual) as being reserved (and in fact, if it's
called, you'll be dumped into the mini office suite-esque program that
allows terminal IO and word pressing at a minimum).
At the time the PC was first introduced, the clone manufactorers pretty
much had to follow *what* the PC BIOS did, but in their case, they *didn't*
have a BASIC to install in the BIOS. At the time, it probably made sense to
say ``no ROM BASIC'' but really, nowadays, do even IBM PCs come with BASIC
ROM? I think that in the abscence of ROM BASIC or some other internal program
that loads, saying ``no bootable device'' is acceptable.
If a user later adds a ROM with BASIC, it can follow the established
guidelines to intercepting INT 18h with its own code.
Yes, and even
more odd is that you fail to see that "no bootable device" at
power-up actually does describe the problem, whereas "no ROM BASIC" does
The only way you'll convince me that 'no bootable device' is the right
error message is that if it is displayed by the bootstrap when both
floppy and hard boots have failed _and that the bootstrap does not call
INT 18h_. Because as I keep on saying, INT 18h is nothing to do with the
bootstrap.
And writing the PDP-10 instruction set in assembly language on a Pentium
does *not* make it microcode! It's an emulator.
Tony, if your PC doesn't *have* BASIC at the end of INT 18h, calling it
the ROM BASIC loader doesn't make sense; at best it's a reserved call that
shouldn't be used.
not, since the
system in question would never call INT 18h if a bootable
device were available (unless some insane programmer called it, and I
seriously doubt that you can show me a commercially available program which
does this).
And supposing it is called for some reason (either a bug in the code,
attempting to execute unitialised/data memory, or a deliberate attempt to
call ROM BASIC). Is then 'no bootable devices' a reasonable error to
give? When the machine wasn't attempting to boot anything.
Tell me of a PCompatible (not made by IBM) that has BASIC hanging off INT
18h, then maybe I'll concede the point 8-)
Also, while INT 19h is the bootstrap loader, you *cannot* simply reload
the operating system by calling INT 19h. In fact, if any code does (other
than the BIOS after the POST but before INT 18h) it is in fact, defective.
-spc (Looked at it another way, INT 18h is the resident program loader)