A modern, scratch-built, open-source alternative BIOS for vintage PC, XT, 8088 Clone or Turbo PCs.
Copyright © 2022, 640KB and contributors.
Vote now for the new tagline for the next major version!
- GNU General Public License v3.0. See LICENSE.
Please send bug reports, feedback, questions or thoughts to [email protected] or submit an Issue.
- A complete 100% PC Compatible BIOS for retro/vintage PC, XT, 8088 Clone or Turbo PCs.
- Support for 5150, 5160, Turbo and compatible clone hardware.
- FAST! Performance-optmized CGA/MDA text and graphics routines.
- Multiple levels of "CGA snow" removal (configurable at build-time).
- 5150 Cassette tape support.
- Accurate PIT-based I/O timing. Better stability at faster clock speeds and increased speed on slower PCs.
- NEC V20 enhanced instruction set support (enabled at build-time).
- Customizable POST test screen colors themes.
Because learning. I've always wanted to know what actually happens inside the big gray box and how everything actually works on a PC. Like an old car, radio or TV it's actually possible for a hobbyist to learn all of the inner workings and be able to repair or build.
If you aren't familiar with the reference, ask a gamer.
There are several other excellent BIOS projects out there each with it's own design goals and use cases. These are the goals for this one:
- Learning
- A fully open-source PC BIOS, built and improved by the community, free of outside proprietary or copyrighted code
- Feature-complete with full support for original vintage hardware
- Fit in an 8K ROM to drop in to any original PC or clone
VGA with 8087 FPU:
EGA with V20:
CGA with 736K memory:
Bad RAM detected! Use standard address and bit indicator to locate failed IC:
5150 with cassette:
1-2-3 ver 1A
Flight Simulator 1.0
Built using MASM 5.0. MASM and it's syntax has been what I have used and most familiar with in assembly programming. It also provides some sense of historical authenticity [citation needed].
- Tab Size: 6 spaces. Indented with TAB characters.
GLaBIOS uses all UPPERCASE mnemonics because 1) it was the way I originally learned assembly language 2) it's what's used in MASM 5 documentation and manuals 3) it would have been an accepted practice in the era in when PC BIOS clones were written.
MASM GLABIOS;
LINK GLABIOS;
Will create GLABIOS.EXE.- Run
GLA2ROM GLABIOS
to convert to an 8 KiB ROM file.
OR
- Convert EXE manually by removing the EXE header (the first 512 bytes of the EXE file) and extracting the last 8 KiB
- Calculate 8-bit checksum byte and insert into relative file offset
1FFF
in GLABIOS.ROM.
Hampa Hug's excellent PCE/ibmpc emulator works very well for build testing and debugging. This provides a near-perfect hardware-accurate emulation of a PC with inspection of ICs, memory and code stepping. 86Box and PCem also work very well.
Minuszerodegrees (-0°) has a lot of information about original ROM types and "modern" equivalents. I found using Winbond W27E257 EEPROMs worked very well since it could be electrically erased and re-written quickly. Since these are 32K EEPROMS, the image will need to be written 4 times sequentially. I use a TL866 II Plus to write the EEPROMs.
-
https://sites.google.com/site/pcdosretro/ (now offline)
-
Font bitmaps by "VileR", (CC BY-SA 4.0)
- The Code Golf (CGCC) community on Stack Exchange for helping me become a better ASM programmer.
- Hampa Hug for the excellent PCE software that helped make development and debugging much easier.
- @Raffzahn, Contributor, Advisor and Meckerhut.
- Dave Nault, my partner in crime for 2 semesters of college assembly language programming classes back in the day. Wherever you are buddy, hope you're doing well!
- @MadMaxx12345, @Makefile and @punishedbunny for testing, bug finding and feature suggestions.
This project is built upon the collective knowledge of the community by and for the benefit of the community. Unless stated otherwise, cited public sources are considered as "public domain" or "fair use" of the copyrighted material as provided for in section 107 of the US Copyright Law. If your copyrighted material appears in this project or on this web site and you disagree with our assessment that it constitutes "fair use," contact us.