First post, by jdredd
yah yah i know...
I picked up a NCR 486 , Model 3230 A week or so ago, and found the BIOS... lacking. No boot order. No boot from CD. Limited on HDD size. Pain to even set hard drive, ect.
So I read my chip, fed Claude the file, and had it decompiled.
After that recompiled, and burned the chip and it worked. Very promising.
Then went work on that. First thing was missing USERHDD.exe to set a custom hard drive . After that worked, I figured what else can we do?
Apparently... a lot!
Fixes to the original BIOS
• Boots without a hard disk and without a CMOS battery. A keyboard check could drop the stock BIOS into NCR's factory burn-in mode, where F1 did nothing.
• An attached CD-ROM no longer stalls POST for ~30 seconds or shows up as a phantom hard disk.
• "Press F1 / Press ENTER" error prompts now continue on their own after a short countdown.
• After lost settings (dead battery), hard disks default to Automatic instead of "Not installed", so the drive is still found.
• A drive set to Automatic but not connected is skipped quietly instead of giving "Disk controller failure".
• "PROCESSOR SPEED" now shows the real, measured clock. The stock BIOS printed a CMOS byte nothing ever set.
• Setup accepts two-digit years 00–79 as 2000–2079.
Booting
• Blue boot screen with coloured messages, credits and a start-up chime (can be switched off in Setup)
• End-of-POST system summary: CPU and measured MHz, memory, caches, drives, ports, video, boot order
• F8 boot menu: boot once from floppy, hard disk, CD-ROM, or a card's own boot ROM
• Saved boot order, like later BIOSes: put the devices in any order and switch each on or off
• Boot from CD-ROM (El Torito): DOS/Win9x boot CDs and Linux/FreeDOS/Win2000-style CDs, with its own ATAPI CD-ROM driver
• Works with cards that take over booting, such as the PicoMEM: the boot menu and boot order still decide
Hard disks
• Hard disk setup screen, which replaces NCR's lost USERHDD.EXE utility
• Large-disk (LBA) support: disks over the old 504 MB limit, up to 8.4 GB for DOS and up to 128 GB through the INT 13h extensions (FAT32, Win95 OSR2/98)
F10 Tools menu (built into the unused part of the chip)
• System information with measured CPU speed
• Drives and devices with IDE model names
• Memory map and option ROMs
• Memory test covering all memory with five patterns
• CMOS viewer
• NCR's hidden floppy drive test <---- really interesting as it was in the BIOS but not exposed easily. Ctrl-D at end of post is how it was reached. Possibly a NCR service thing?
• Hard disk setup, boot menu and boot order
• Chipset settings for the board's UMC 82C480 chipset: ISA bus clock, I/O recovery time, DRAM and L2 cache wait states. A fail-safe skips the new settings if a boot with them doesn't finish, and holding Shift skips them once.
• Chipset register viewer
How it was done
The ROM was disassembled, and every change is a small NASM assembly patch that checks the original bytes it replaces. Each patch was tested by running the real ROM code in an emulator against simulated hard disks, CD-ROMs (real ISO images) and memory, with over 300 automated checks, before the chip was burned with an EPROM programmer.
Video of old vs new @ https://www.youtube.com/watch?v=7n-stwXmWIA&feature=youtu.be
I found this really neat as was able to get features and tools that didn't exist. Like booting from a CD didn't exist. Now it does.
Repo over @ https://github.com/jdredd87/ncr-486-3230-bios to inspect everything.
I found this really interesting and actually learned a few things along the way. BIOS and such was always kind of A mystery to me. Never got into it. Mostly because when this was a thing I was still A kid and didn't have anything about it and as I got older, lost interest. Now I have interest again and find this really fun again. Unlocking possibilities of what could have been.