| name | ps2-8525-8530 |
| description | Query and apply the local IBM PS/2 Model 25 (8525-8086) and Model 30 (8530-8086) Technical References, BIOS references, ROM analysis, planar schematics, and diagnostic disks. Use when implementing, debugging, or reviewing emulation of either machine, especially RTC, DMA page registers, IRQ1 keyboard/mouse dispatch, MCGA, memory remapping, fixed disk, or model identity. |
IBM PS/2 8525/8530 reference workflow
The reference collection is under ~/src/bios8530/ or wherever else you have check out the bios8530 project from https://github.com/JoshRodd/bios8530/ - treat ~/src/bios8530/reference/hardware_spec.json as the implementation-oriented specification and 8525info/reference/model_differences.json as the mandatory model fork matrix. Both use evidence citations, not implicit PC/XT or AT assumptions.
Run commands from the 86Box repository root. All normal tool output is JSON.
Fast lookups
~/src/bios8530/tools/ps2_reference.py search 'System Board Control Register'
~/src/bios8530/tools/ps2_reference.py search 'Real Time Clock' --source model30_techref
~/src/bios8530/tools/ps2_reference.py search 'port 6[6789]' --regex
~/src/bios8530/tools/ps2_reference.py page model25_techref 26
~/src/bios8530/tools/ps2_reference.py page model30_techref 27
PDF page values are one-based physical pages, not the printed IBM section-page number. Available PDF source IDs:
model25_techref
model30_techref
bios_interface
model30_schematic
The Model 30 Technical Reference and schematic are OCR. Verify ambiguous chip suffixes and isolated digits against the PDF image or corroborating source. Do not downgrade unambiguous behavioral prose merely because it was OCRed.
ROM work
~/src/bios8530/tools/ps2_reference.py rom-info
~/src/bios8530/tools/ps2_reference.py rom-info 8530_rev2
~/src/bios8530/tools/ps2_reference.py rom-build 8525_type1_rev0 /tmp/8525.bin
~/src/bios8530/tools/ps2_reference.py rom-compare 8525_type1_rev0 8525_type2_rev0
A pair's listed even chip supplies combined offsets 0,2,4,... and odd supplies 1,3,5,... . Map the combined 64 KiB image at 0xF0000-0xFFFFF. Never mix halves. Validate byte-sum modulo 256, reset vector, date, model byte, submodel, and revision using ~/src/bios8530/reference/rom_analysis.json.
Diagnostic disk work
~/src/bios8530/tools/ps2_reference.py disk-list adv25dia
~/src/bios8530/tools/ps2_reference.py disk-compare adv25dia adv30dig
~/src/bios8530/tools/ps2_reference.py disk-extract adv30dig DTMEDTE.COM /tmp/DTMEDTE.COM
Aliases are 25start, 30start, adv25dia, and adv30dig. Details and precomputed comparisons are in ~/src/bios8530/reference/diagnostic_analysis.json. Always test a machine with its matching image; the date/time, CPU/I/O, fixed-disk, startup, and services binaries differ.
Load-bearing model forks
Implement these before treating either machine as usable:
8525: no hardware RTC. Do not decode RTC banks. INT 15h/C0 feature byte 1 bit 5 is 0.
8530: MM58167-family RTC at 0xB0-0xBF and 0xE0-0xEF, battery-backed, alarm sharing IRQ1. Feature bit is 1.
- DMA page registers differ:
- 8525:
81=ch2, 82=ch3, 83=ch1, 87=ch0.
- 8530:
80=ch2, 81=ch3, 82=ch1, 87=ch0.
- Do not instantiate an AT 8042. Ports
0x67 and 0x68 are the two PS/2 serial data buffers; port 0x60 is the BIOS scratch/keystroke latch. Use keyboard scan-code set 1.
- Shared keyboard/pointing IRQ1 enters proprietary INT 71h dispatch. Model 30 adds RTC alarm to that source set.
- 8525 launch RAM is 512 KiB plus optional socketed 128 KiB; 8530 RAM is 640 KiB with soldered low 128 KiB. Both implement port
0x6B remap/parity semantics.
- 8525 has integrated 12-inch analog display wiring; 8530 has external 15-pin analog monitor sense. Share MCGA core, not monitor identity.
- The fixed-disk port range and 44-pin connector are IBM's integrated-controller interface, not ATA.
Evidence rules
- Prefer IBM Technical Reference, BIOS Interface reference, ROM bytes, disk bytes, and schematic over secondary notes.
- The VOGONS archive is valuable for proprietary ports
0x66-0x6A and INT 71h flow because those results came from supplied BIOS disassembly. Preserve its stated uncertainty for guessed electrical bit meanings.
- The forum's broad statement that both models have an RTC is contradicted by the Model 25 Technical Reference, ROM configuration table, and diagnostics. Model 25 has no hardware RTC.
- Do not assume a conventional discrete 8259A/8042/MC146818 just because software-facing pieces resemble later PCs.
Known errata
- The PS/2 Model 30 Technical Reference contains incorrect information about the DMA page registers. The PS/2 Model 25 Technical Reference has the correct information; prefer either that or evidence from the actual PS/2 Model 30 BIOS with regard to the DMA page registers specifically.
Corpus maintenance
~/src/bios8530/tools/ps2_reference.py build --output reference --workers 8 --dpi 250
~/src/bios8530/tools/ps2_reference.py verify --output reference
build --fast skips OCR and is only a development smoke build. Normal build OCRs the image-oriented Model 30 documents and emits:
~/src/bios8530/reference/corpus.jsonl
~/src/bios8530/reference/corpus.sqlite3
~/src/bios8530/reference/source_manifest.json
~/src/bios8530/reference/rom_analysis.json
~/src/bios8530/reference/diagnostic_analysis.json
The two IBM BookManager .boo service-manual containers are hashed and inventoried but not decoded. Use an IBM BookManager export tool if those proprietary compressed payloads become necessary.