# Glossary

Plain definitions of the vintage PC terms used on this site, from A20 and CHS to IOCHK, One ROM and the [I], [E] and [U] evidence labels.

Source page: https://barelybooting.com/glossary/

The terms that keep turning up on this site, in plain words. If one of these is wrong, tell me.

## The evidence labels

<dl class="glossary" markdown="1">
<dt>[I] real hardware</dt>
<dd markdown="1">Measured on a real machine. For Atlas so far that means my Packard Bell PB686. Lately its ROM sockets hold One ROM emulators instead of burned EPROMs, and the page says so where it matters.</dd>

<dt>[E] emulator</dt>
<dd markdown="1">Measured in the 86Box emulator. Useful, fast, repeatable, and not the same as real hardware. It's only a model.</dd>

<dt>[U] CPU model</dt>
<dd markdown="1">Measured on the Unicorn CPU emulator, which runs the BIOS code without a whole emulated PC around it. Good for checking logic, like disk maths, that would take a long time to set up for real.</dd>

<dt>[D] documented</dt>
<dd markdown="1">Taken from a datasheet, a manual or another document, and not measured by me.</dd>
</dl>

## Hardware and BIOS terms

<dl class="glossary" markdown="1">
<dt>286</dt>
<dd>The Intel 80286 processor, the CPU in the IBM PC/AT and the clones that copied it. It can address 16 MB of memory in protected mode, but it can't get back to real mode without being reset, which is why AT BIOSes have a whole mechanism for coming back from a reset.</dd>

<dt>287</dt>
<dd>The 80287 maths co-processor, an optional chip for floating-point arithmetic. The PB686 has a 287XL fitted. On an AT it reports errors on hardware interrupt line 13 (IRQ 13).</dd>

<dt>8042</dt>
<dd>The keyboard controller chip in an AT. Besides the keyboard, it controls the A20 gate and, on some boards like the PB686, the CPU speed.</dd>

<dt>A20 gate</dt>
<dd>A switch on address line 20. With it off, memory addresses wrap around at 1 MB the way they did on the original PC, which some old software relied on. With it on, the extended memory above 1 MB is reachable. HIMEM.SYS turns it on and off a lot.</dd>

<dt>AT</dt>
<dd>The IBM PC/AT, model 5170, from 1984. "AT compatible" meant a machine that behaved like one closely enough to run the same software.</dd>

<dt>BIOS</dt>
<dd>The program in ROM that runs first when a PC powers on. It tests and sets up the hardware (POST), finds something to boot, and then stays around as a library of routines for disks, keyboard, screen and clock that DOS and programs call.</dd>

<dt>CF (CompactFlash)</dt>
<dd>A flash memory card that speaks the same ATA protocol as an IDE hard disk, so with a simple adapter an old PC treats it as a hard drive.</dd>

<dt>CHS</dt>
<dd>Cylinder, head, sector: the original way of addressing a hard disk, by its geometry. The BIOS interface and the drive interface each limit the numbers, and the overlap is the 504 MB limit.</dd>

<dt>504 MB limit</dt>
<dd>The largest disk you can reach when both the old BIOS disk interface and the ATA CHS limits apply at once: 1024 cylinders, 16 heads and 63 sectors of 512 bytes, about 504 MiB. Getting past it needs translation or LBA.</dd>

<dt>EPROM</dt>
<dd>An erasable programmable ROM chip. You burn it in a programmer and erase it with ultraviolet light. AT-style boards usually keep the BIOS in a pair of them, one holding the even bytes and one the odd.</dd>

<dt>IDE / ATA</dt>
<dd>The hard disk interface where the controller lives on the drive. The card in the PC is very simple, which is why one CF adapter on a cheap IDE card can replace a whole hard disk controller.</dd>

<dt>IDENTIFY</dt>
<dd>The ATA command that asks a drive to describe itself: its model, its geometry and what features it supports.</dd>

<dt>IOCHK (I/O channel check)</dt>
<dd>An alarm signal on the ISA bus, raised for things like a memory parity error. When it fires, the PC normally stops dead with an error message. Atlas's open bug E1 is an IOCHK halt.</dd>

<dt>ISA</dt>
<dd>The expansion bus of the PC and AT: 8-bit slots on the original PC, 16-bit on the AT. NetISA is designed as an 8-bit ISA card.</dd>

<dt>LBA28</dt>
<dd>Logical block addressing with 28-bit sector numbers. Instead of geometry, sectors are numbered from zero, which reaches 128 GiB (137 GB) of disk.</dd>

<dt>MFM / ST-506</dt>
<dd>The original AT hard disk technology, with the controller on a card and the drive doing very little thinking. Atlas 1.0 doesn't support it; it needs an IDE or CF disk.</dd>

<dt>One ROM</dt>
<dd>A small board by Piers Finlayson that plugs into a ROM socket and pretends to be the ROM chip, so a new image can be loaded in minutes instead of burning an EPROM.</dd>

<dt>Option ROM</dt>
<dd>A ROM on an expansion card, such as a video card or a disk controller, that the BIOS finds by its signature and runs during POST so the card can set itself up.</dd>

<dt>POST</dt>
<dd>Power-on self test: the checks and set-up a BIOS does before it boots anything, and the messages it prints while it does them.</dd>

<dt>TSR</dt>
<dd>Terminate and stay resident: a DOS program that loads, stays in memory and keeps working in the background. NetISA's DOS driver is designed as a small TSR.</dd>

<dt>XT-IDE</dt>
<dd>The XTIDE Universal BIOS, an option ROM that lets older PCs boot from IDE and CF disks their own BIOS can't handle. Atlas aims to make it unnecessary on boards with an IDE port.</dd>
</dl>

## Atlas project terms

<dl class="glossary" markdown="1">
<dt>E1, F11, S1</dt>
<dd markdown="1">Names of open Atlas bugs. E1 is the occasional IOCHK halt with HIMEM, F11 is the 1.44 MB floppy write problem on drive A:, and S1 is the speed display reading slow under HIMEM. They're explained on the [Atlas page](/atlas286/).</dd>

<dt>M15, M16, M17, M18</dt>
<dd markdown="1">Atlas milestones, numbered in order. The [status page](/atlas286/status/) says where each one stands.</dd>

<dt>RED build</dt>
<dd>A copy of Atlas broken on purpose in exactly the way a change is meant to prevent. The change's test has to fail on it, which proves the test can actually catch the problem.</dd>
</dl>
