PB686 "turbo": 8042 output-port bit 2 selects fast or slow
Revised . Applies to: Packard Bell PB686, TI TACT82000 chipset, Intel N80286-12; bit 2 measured under Atlas 286 M14 (2026-10-12); keyboard toggle under Atlas 286 M15 (2026-10-18); MS-DOS HIMEM.SYS
The Packard Bell PB686 has no turbo switch or jumper. It has two speed settings, 12 MHz and 8 MHz, each with its own LED on the front panel, and the line that picks between them is bit 2 of the 8042 keyboard controller's output port: set gives the fast setting, clear gives the slow one. Atlas 286 toggles it from the keyboard with Ctrl + Alt + keypad minus. The same output port also carries the A20 gate, so anything that rewrites the port for A20, HIMEM.SYS included, can put the speed back without asking.
"Turbo" was my word for it, never the machine's.
Applies to
- Packard Bell PB686, TI TACT82000 chipset, Intel N80286-12 CPU.
- The keyboard toggle: measured with Atlas 286 M15, which handles the keys itself (2026-10-18).
- Bit 2 of the output port: measured under Atlas 286 M14 (2026-10-12).
- HIMEM.SYS from MS-DOS, with and without
/CPUCLOCK:ON(2026-10-12).
Evidence
All measured on real hardware [I] (measured on real hardware), on the PB686, unless marked otherwise.
- No speed switch or jumper [I] (measured on real hardware). Looked for when the case was opened on 2026-09-14. Speed is set by the BIOS or from the keyboard.
- Bit 2 is the speed line [I] (measured on real hardware). On 2026-10-12, under Atlas M14, a probe wrote the output port with the 8042's D1h command. Clearing bit 2 switched the machine to the slow setting: the 8 MHz LED lit, and a fixed timing loop took 72 BIOS timer ticks. Setting it brought back the fast one (46 ticks). The ratio is 1.565, against 1.5 for 12 and 8 MHz, and the change worked in both directions and repeated.
- The 8042 doesn't decode the keys itself [I] (measured on real hardware). Under Atlas M14, which had no handler for them yet, the key combination arrived at the BIOS as an ordinary keypress (scan code
4Ah, Alt + keypad minus) and nothing changed speed. So on this board it's the BIOS that turns those keys into a write to bit 2. Atlas M15 does that, and its speed toggle passed on the PB686 on 2026-10-18. - E5h and E8h were also tested [I] (measured on real hardware). Neither changed the observed speed or output-port bit 2, and after a D1h write the bit won.
- A20 calls and resets undo it [I] (measured on real hardware). Under Atlas M14, a run of about a thousand A20 switches put the speed back to 12 MHz, because Atlas rebuilt the port from a copy taken at power-on. Ctrl+Alt+Del did the same.
- HIMEM.SYS undoes it too [I] (measured on real hardware). With HIMEM.SYS loaded normally and
DOS=HIGH, a slow setting lasted only until DOS's next call. WithDEVICE=HIMEM.SYS /CPUCLOCK:ONthe slow setting survived. Under Atlas M15 on 2026-10-18 the keys showed the same thing: switched to slow with HIMEM.SYS loaded andDOS=HIGH, the CPU still timed at full speed. Microsoft documented the same behaviour on another 8/12 MHz 286 [D] (documented only, not measured). - Cold boots come up at 12 MHz [I] (measured on real hardware), five of five under Atlas M14.
What isn't measured: the actual clock frequency of either setting. "12 MHz" and "8 MHz" are the front-panel LED labels, and the timing ratio of about 1.56 fits them, but nothing has measured the clock itself.
Check it yourself
- Look at the front panel: one LED is marked 8 MHz and one 12 MHz, and the lit one is the current setting. To check the speed itself rather than the label, use a timing loop (step 3).
- Under Atlas 286 M15 or later, Ctrl + Alt + keypad minus at a DOS prompt switches the setting, and pressing it again switches back.
- To see the difference, run the same fixed loop at each setting and count BIOS timer ticks (the counter at
0040:006C) before and after. Mine took 46 ticks fast and 72 slow. Your absolute numbers will depend on the loop; the ratio between the two settings is what to compare, and on the PB686 it's about 1.56. - If a slow setting keeps snapping back to fast with HIMEM.SYS loaded, add
/CPUCLOCK:ONto theDEVICE=line for HIMEM.SYS inCONFIG.SYS.
Writing the output port yourself (8042 command D1h) is possible, but the same byte holds the A20 gate and the CPU reset line. Read the port first and change only bit 2. See PB686: there is no fast A20 on port 92h for how to read it.
Sources
- Microsoft Knowledge Base Q76817, "Fountain 286 Computer Slows After MS-DOS 5 Upgrade", archived copy: https://jeffpar.github.io/kbarchive/kb/076/Q76817/. An 8/12 MHz 286 slowed by HIMEM.SYS, and the
/CPUCLOCKfix. - Microsoft Knowledge Base Q96711, "HIMEM.SYS Reports Error: Unable to Control A20 Line!", archived copy: https://jeffpar.github.io/kbarchive/kb/096/Q96711/. Describes
/CPUCLOCK:ON.
Revised
2026-10-25.
Revision log:
- 2026-10-25: first version. Reviewed before publishing: the title no longer claims measured clock speeds, and two observations whose only first-hand record is in a private repository were left out until they're re-measured.
- 2026-10-25: the front panel has two LEDs, one per speed. An earlier revision the same day wrongly said a single light lit in both modes.
Wrong about something? Tell me at [email protected].