Hot answers tagged

103

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 the same in their Operating System Source Listing section of their Atari 400/800 Technical Reference Notes.¹ For CP/M machines, having the BIOS source was near ...


70

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 and disassemble the BIOS. Publishing the source code made it harder to argue that the engineers hadn’t seen or used it. What took IBM by surprise was the ...


49

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 and its descendants. This was quite a common setup in the mid- to late nineties — most socket 7 motherboards were AT boards and included these two ports (I ...


36

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 calls like you would do with curses: It was sufficient to set the text mode at startup and write at the right place in memory the character (1 byte) and its ...


35

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 separate out the hardware interactions into one module and provide a standardised interface that the rest of the OS uses (and user programs), then the only thing ...


33

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 copying it. Making it public and releasing it from copyright are two separate things. In order to clone the IBM BIOS, they had to write totally new software ...


31

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 scroll a rectangular region of the screen or to clear the screen to a specified foreground/background colour combination. INT 10h/AH=09h can be used to tile a ...


30

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 with the machine as anything was. Back in the day, we had a stack of microfiche (I'd guess 100+ pages of fiche film) with (apparently) the source code to DECs VMS ...


27

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 handler in the IBM PC Technical Reference, page A-77. It updates a counter, stored in memory as a double word at 0x0040:0x006C, and checks for elapsing days, ...


25

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 0x0DA. If they are zeroes, IOS checks the following four bytes: if they are also zeroes (like in the standard MBR code written by Microsoft’s FDISK), IOS overwrites ...


22

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 initializations are done. The BIOS is tailored for the specific motherboard, which will have a certain chipset for a certain CPU class, and therefore it also expects ...


21

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 running DOS with a minimum in BIOS compatibility, just enough to serve whatever application need to run on top of DOS. Unlike often assumed, MS-DOS does neither ...


20

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 initialisation. And, at least for generic DOS, specific drivers. To start with, plug-in-compatible bios was only a thing for 100% hardware clones, something only ...


18

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 actually just a very stretched out version of the chimes that play over the second logo which you see when a disc is loaded, rather than a separate sample. Judging ...


18

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 based on anybody real. In real life the source code for the IBM BIOS was printed in the back of the manual. There was no Gordon inexplicably hand transcribing the ...


17

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 imageDiskList in DOSBox is only populated by the BOOT and IMGMOUNT commands, not by MOUNT.) The workaround is to use IMGMOUNT: imgmount -t floppy a /path/to/floppy.img


17

Press Ctrl+Alt+Esc before you get the ‘Starting MS-DOS…’ prompt, but after the memory test (if any).


16

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 deliver them with CP/M, and the driver package was simply called BIOS ("Basic Input/Output System"). This worked quite well over the lifetime of CP/M. MS-DOS ...


16

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, 2.1 GB, 4.2 GB and 8.4 GB. They stem from various limitations in the interfaces used to talk to hard drives. Originally, these interfaces were based on an ...


16

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 the (XMS) APIs it provides. The memory manager determines what memory is available using a variety of techniques. However, what you’re trying to do doesn’t ...


16

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 ports, specifically you should check: Port A: b4: watchdog timer status; Port B: b6: channel check failure (i.e. a bus failure, likely a peripheral device); b7:...


15

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 to be useful, and at least some of them were; in the linked page, scroll down to the list of Award-486 drive types to see more examples. Each BIOS ...


13

In all the BIOS setups I was dealing with that have similarly 47 drives to chose from the first or the last one was editable directly in BIOS SETUP for manual settings. Sometimes the manual settings was done in different menu entry (near formatting utility ... but beware do not accidentally format IDE !!!). IIRC DOS uses BIOS routines for HDD access so if ...


13

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 gamble. Maybe the producers can be given some leeway because the "Compaq story" was also distorted in computer press (and the internet, of course) as ...


13

Phoenix Technologies developed its ROM BIOS from IBM's using a cleanroom approach: To develop its ROM BIOS software, Phoenix claims in its press release that it used a process that would assure that none of IBM's original code was wittingly duplicated. One group at Phoenix examined the BIOS software documented in IBM's Technical Reference Manual, ...


13

Or was the clock maintained in software, and based off of something like the 18.2 Hz system timer interrupt? Exactly that. It is a 32 bit counter incremented by one every time INT 8 is triggered by the 8253 counter #3 (via INT 0). If the latter, was it common to lose clock accuracy if the timer rate was changed by a running program? That depends much on ...


12

The simple answer is that they just didn't need them! Why reinvent the wheel, when the required interface is already provided by the ROM BIOS? This allows the operating system to be more portable and to support a wider variety of machines and hardware from different vendors, because the vendor provides and is responsible for the ROM BIOS routines. Size of ...


12

It can be done using a third-party "disk manager", such as OnTrack Disk Manager and EZ-Drive. At the end of the DOS era, these came bundled with many hard disks. https://en.wikipedia.org/wiki/Logical_block_addressing#Enhanced_BIOS Some downloads. Kroll OnTrack have allowed this to be shared freely! https://www.philscomputerlab.com/ontrack-disk-manager.html ...


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