Hot answers tagged

103 votes
Accepted

Why did IBM make the PC BIOS source code public?

In the late '70s and very early 80s it was not unusual to make BIOS source code available. Apple did indeed do so; the full source listing starts at page 76 of the Apple II Reference Manual. Atari did ...
user avatar
  • 21k
71 votes

Why did IBM make the PC BIOS source code public?

When other manufacturers attempted to copy the BIOS from the source listings, IBM sued them for copyright violation and won. Besides, even without the listings, anyone would have been able to dump ...
user avatar
  • 5,825
49 votes
Accepted

Why is there only one PS/2 port on my computer?

Given your computer’s vintage, I’m going to guess that the reason there’s a single PS/2 port, intended for use with a mouse, is that its keyboard port is a 5-pin DIN connector as used in the IBM PC AT ...
user avatar
  • 95.7k
37 votes

Why did CP/M and MS-DOS use the BIOS instead of their own drivers to access hardware?

The BIOS originated as part of the CP/M operating system. It was the "layer" that interfaced directly with the hardware and as such, was usually machine specific. The idea is that, if you ...
user avatar
  • 10.1k
37 votes
Accepted

How did early x86 BIOS programmers manage to program full blown TUIs given very few bytes of ROM/EPROM?

The architecture of the original IBM PC (and its clones) let the BIOS access the video memory directly. So making nice text layouts did not require positioning the cursor or making a sequence of ...
user avatar
34 votes

Why did IBM make the PC BIOS source code public?

Harry Potter and the Half-Blood Prince is another work whose source code is entirely available for public view, yet it's definitely under copyright and you will get in big trouble for commercially ...
user avatar
32 votes
Accepted

Why have MS-DOS device drivers if the ROM BIOS provides access to the same devices already?

TL;DR: MS-DOS is a vendor independent DOS and IO.SYS is its abstraction layer encapsulating all machine dependent parts. If DOS would direct access the ROM BIOS it would be specific to the IBM-PC, ...
user avatar
  • 168k
31 votes

How did early x86 BIOS programmers manage to program full blown TUIs given very few bytes of ROM/EPROM?

TUI-drawing code can be pretty compact when you're working in assembly and relying on the IBM video BIOS to do the heavy lifting. For example: INT 10h/AH=06h and INT 10h/AH=07h can be used either to ...
user avatar
  • 4,018
31 votes

Why did IBM make the PC BIOS source code public?

Just because they released the source code didn't mean that copyright no longer applied. They didn't "open source it". Having access to the source was as effective documentation on interoperating ...
user avatar
  • 10.9k
29 votes
Accepted

What is a "sympathetic bit"?

What is a "sympathetic bit", and why must IBM PCs check for it? Sympathic Bits, in this context, are bits within a data word that always flip with some other bit. For example when a word ...
user avatar
  • 168k
27 votes

How was the real-time clock implemented in the original IBM PC and PC/XT?

Or was the clock maintained in software, and based off of something like the 18.2 Hz system timer interrupt? This is exactly how time was tracked; you can see the implementation of the timer tick ...
user avatar
  • 95.7k
27 votes

In x86 real mode, how does BIOS know what hardware is present?

The IBM PC design makes a provision for option ROMs, which allow expansion cards to patch extensions into the BIOS. That's how you get things like the IBM EGA card retrofitting new int 10h services ...
user avatar
  • 4,018
26 votes
Accepted

How does Windows 9x determine which disk drivers correspond to which BIOS disks/DOS drive letters?

By their contents. When Windows boots, the I/O Supervisor VxD (IOS) uses BIOS interrupt 0x13 services to read sector 0 (the Master Boot Record) of each drive. It then looks at two bytes at offset ...
user avatar
  • 16.6k
22 votes
Accepted

How did Drive Overlay programs break BIOS disk barriers on older PCs?

The reference for this is DEW Associates’ pages on the topic. Multiple barriers have existed in the history of hard drives on PC compatibles. The main ones are the barriers at 528 MB (504 MiB) barrier,...
user avatar
  • 95.7k
22 votes

Are BIOS ROMs interchangeable among different vendor's PCs?

No reason to expect it works at all. So if the CPU can even start executing the code, the moment where it goes wrong is when there are instructions for a newer CPU, or some chipset-specific ...
user avatar
  • 17.2k
21 votes
Accepted

Which is the minimum set of interrupts/functions I should implement in a replacement BIOS for a home made IBM PC class computer?

TL;DR: It all boils down to the question if you want to build a fully IBM like system with ROM BIOS independent of DOS, with all the bells and whistles attached, or if your goal can be reached with a ...
user avatar
  • 168k
21 votes
Accepted

How does the BIOS distinguish Interrupt(08h-12h) from INT instructions, vs. actual exceptions inside the CPU?

As mentioned in the 8086/8088 manuals, even if first 32 interrupt vectors were marked reserved for future use, only the first 5 were actually used by CPU exceptions (Divide Error, Single Step, NMI, ...
user avatar
  • 17.2k
20 votes

Why did CP/M and MS-DOS use the BIOS instead of their own drivers to access hardware?

CP/M was hardware independent - there was no notion of a reference machine (as the IBM PC was for MS-DOS), so CP/M could not provide drivers. The hardware producer had to develop the drivers and ...
user avatar
20 votes
Accepted

Are BIOS ROMs interchangeable among different vendor's PCs?

How interchangeable was PC BIOS? Usually not interchangeable at all. Keep in mind, there is no single PC-BIOS, but a machine BIOS. Different CPUs, chips sets and additional hardware need specific ...
user avatar
  • 168k
19 votes
Accepted

What happens when PS1's "Fearful Harmony" is triggered?

Just a disclaimer: Most of this is based on observation and assumptions from experience and should be taken with a grain of salt. From what I've seen with this glitch, the audio being played is ...
user avatar
18 votes
Accepted

Who were the first engineers to "cleanroom" the IBM PC BIOS?

Even just restricting discussion to the first season, before the same people apparently not only clone the PC but also create (facsimiles of) Sierra Online, McAffee, Netscape and Yahoo, she's not ...
user avatar
  • 32.4k
18 votes

What information was "off limits" to IBM PC clone BIOS authors?

Apparently, US law allows analysis of an implementation as a base for a clean-room implementation, as long as the analysis and the implementation is done by separate teams that are only exchanging ...
user avatar
  • 28.3k
17 votes
Accepted

DOSBox problem reading floppy boot sector using INT 0x13 on a drive mounted using MOUNT

DOSBox only allows absolute sector reads from disk images, as mounted by IMGMOUNT. You can’t use interrupt 0x13, service 0x02 on drives mounted with MOUNT. (To understand that link, note that ...
user avatar
  • 95.7k
17 votes
Accepted

How can I enter BIOS setup on a Commodore PC 30-III?

Press Ctrl+Alt+Esc before you get the ‘Starting MS-DOS…’ prompt, but after the memory test (if any).
user avatar
  • 16.6k
16 votes
Accepted

How did DOS know where to load itself in upper memory?

When configured to use upper memory (DOS=UMB) or high memory (DOS=HIGH) or both, the DOS “kernel” doesn’t find that memory itself; it relies on the services of a memory manager such as HIMEM.SYS, and ...
user avatar
  • 95.7k
16 votes

Did the IBM PC use the 8088's NMI line?

In a 100% compatible PC, NMI is used only to communicate unrecoverable errors — normally a RAM parity failure, but possibly something else, which should reveal itself via one of the system control ...
user avatar
  • 32.4k
16 votes

In x86 real mode, how does BIOS know what hardware is present?

However, BIOS lived in a ROM. No, but.... Step 1: DOS-BIOS != ROM-BIOS BIOS, as seen by DOS comes from DISK and is loaded with DOS. OEM users had to provide their BIOS as loadable code. A DOS capable ...
user avatar
  • 168k
15 votes
Accepted

Hard coded hard drive BIOS geometries

The tables were built using the parameters for various real hard drives. For example, type 1 is used for the original Shugart drives used in the PC XT (ST506). So the intention was for the drive types ...
user avatar
  • 95.7k

Only top scored, non community-wiki answers of a minimum length are eligible