Skip to content
Serhii Liubshin edited this page Jan 26, 2024 · 5 revisions

Book8088 BIOS is a fork of 8088_bios with changes and additions aimed at Book8088.

Short intro - it's started with 3-Demon game :), it displayed garbled sprites and after reversing the code i found the problem and submitted the suggestion to Sergey, meanwhile i've successfully built and flashed BIOS with the timer interrupt fix and Turbo Basic fix. I had several thing in mind for BIOS too, so here they are, in order of appearance :)

  • Alternate startup sound.

    Three notes carefully chosen on online piano :)

  • "Floppy seek" PWM sound on boot.

    Just for fun - it was interesting to extract and understand code from mushroom.com, as well as ACOMP, 8-bit ADPCM sound compressor with some additional features.

  • Two XT-IDE BIOSes included, for both 8088 and V20.

    I swap CPUs often, i still have an original CPU from my first XT and don't want to swap BIOS chip every time - yes, you can leave 8088 version, but V20 has about 1.6 times I/O speed, supporting "rep insw" command. Might be helpful for everyone.

  • Floppy emulation via USB stick.

    Some kind of alternate bootable device would be nice, isn't it? I wrote an int 13h handler interfacing CH375 chip in Book8088. That was not an easy task, but it's working now :) You need to write .img or .ima image with Rufus or DD to USB stick, insert it into Book and press A in XT-IDE menu.

  • CGA/monochrome card detection and headless mode.

    Side effect of implementing CGA card disconnection on Book (Book V1 has CGA integrated). If card not detected, beeps and installs dummy handler on int 10h.

  • Compact flash card detection.

    It's used for BIOS settings now.

  • BIOS settings support.

    Supported settings: floppy type, boot sound, ROM scan, memory test, USB floppy emulation. Saving done using boot sector of CF card. I made checks to not destroy it :) To enter setup - press F1 before memory test completes.

    A bit about setting floppy: floppy setup logic may seem somewhat strange, as as i wanted not to change original code much. Floppy emulation is auto-on if floppy 0 (A) is set to None (that's default) and flash drive is present on boot and contains a bootable floppy image. If it's set to some value - original int 13h will work, trying to use real floppy controller. If you set floppy emulation to "enforced" - emulation will always be on for drive 0 (A), regardless of drive presence - disk type will be returned from settings, if drive type set to "None" - 1.44.

Clone this wiki locally