Hot answers tagged

106 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 ...
cjs's user avatar
  • 24.5k
73 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 ...
Davislor's user avatar
  • 8,401
54 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 ...
Stephen Kitt's user avatar
53 votes

Why did "protected-mode MS-DOS" never happen?

16-bit protected mode DOS did sort of happen: Concurrent DOS 286 and FlexOS 286 were able to run some DOS applications in protected mode (this involved complex LOADALL shenanigans and revealed bugs in ...
Stephen Kitt's user avatar
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 ...
JeremyP's user avatar
  • 11.4k
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 ...
Christophe's user avatar
36 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, ...
Raffzahn's user avatar
  • 208k
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 ...
Harper - Reinstate Monica's user avatar
32 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 ...
Will Hartung's user avatar
  • 12.1k
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 ...
ssokolow's user avatar
  • 6,326
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 ...
Raffzahn's user avatar
  • 208k
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 ...
Stephen Kitt's user avatar
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 ...
ssokolow's user avatar
  • 6,326
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 ...
user3840170's user avatar
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,...
Stephen Kitt's user avatar
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 ...
Justme's user avatar
  • 27k
22 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, ...
Justme's user avatar
  • 27k
21 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 ...
Ralf Kleberhoff's user avatar
21 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 ...
Tommy's user avatar
  • 35.6k
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 ...
Raffzahn's user avatar
  • 208k
20 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 ...
Tommy's user avatar
  • 35.6k
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 ...
Raffzahn's user avatar
  • 208k
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 ...
TheAdmiester's user avatar
19 votes

Why did "protected-mode MS-DOS" never happen?

And, marketing-wise, did everyone want multitasking and GUI so much that an idea of a single-tasked OS was no longer appealing by definition? In a word, yes. The 80386 came to market in 86/87, well ...
mschaef's user avatar
  • 4,696
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 ...
tofro's user avatar
  • 32.4k
17 votes

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

It was a team of engineers at Compaq and it cost the company $1 million, before it even had any other product to sell, so you can be sure it's well documented by Compaq who did what. It was a big ...
El Profesor's user avatar
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 ...
Stephen Kitt's user avatar
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).
user3840170's user avatar
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 ...
Stephen Kitt's user avatar

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