IBM ROM BASIC or lack thereof

From: Sean 'Captain Napalm' Conner <spc_at_conman.org>
Date: Wed Oct 3 19:04:39 2001

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)
Received on Wed Oct 03 2001 - 19:04:39 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:34:17 BST