• Please review our updated Terms and Rules here

Book 8088 discovery and modification thread

Retroplayer

Experienced Member
Joined
Jun 6, 2023
Messages
65
I though it might be a nice idea to put together a thread to collect information about the Book 8088.

I just received mine (Version 1) and I have a version 2 on the way with the parallel and serial port.

Here is a list of Fn+ commands (that I know about)
1 mute
2 sound on
3 sound on?
4 play +enter
5 dn +enter
6 turbo mode switch (no indication of mode?)
7 mode 80
8
9 HOME
10 END
11 PGUP
12 PGDN

The Fn+4 and Fn+5 are interesting because you can make play.bat or dn.bat files to launch applications. These must be stored in the CPLD as I am not finding references to it in the BIOS.

Sergey Kiselev compiled a bios that has the updated XT-IDE and proper attribution. This works so much better. You will need an eeprom programmer and W27C512 in order to update this. Well worth it.
https://github.com/skiselev/8088_bios

GloriousCow has found a hack to add DRAM refresh cycles back to the hardware which makes it far more accurate.
https://martypc.blogspot.com/2023/09/hacking-book8088-for-better-accuracy.html

Freddy V created an improved driver for the CH375 used for the USB port. https://www.vogonsdrivers.com/getfile.php?fileid=1991&menustate=0

Joshua Shaffer did some work on getting a USB mouse to work. https://github.com/joshuashaffer/book8088-ch375mouse-poc
I would love to see a driver for a USB to serial adapter for this. I will look into this. A USB gamepad would be a very lofty goal!

A 3.5 ohm resistor can be replaced on the LCD board with a 7 ohm to increase the brightness of the display. I have no details on this and have not done it myself yet.

I ran a keyboard scancode tool on the unit to see if the unused keys will actually generate codes and they all do. This means that we should be able to utilize the keys in our own apps.

On the board is a 10 pin header that could be connected to an external CGA monitor. The schematics show the pinout. I assume zero ohm 0603 resistors need to be installed. I do not own a CGA monitor, so I cannot experiment with this yet.

A useful tip: check out Adhesive bookmark tabs on Amazon. I am using them to attach to my CF card to make it easier to remove. Another option would be adhesive hang tags which would be a stronger adhesive and sturdier material.

Some ideas I have had:
Small ISA board that plugs directly into the expansion port and provides serial and parallel ports.
Adding EMS memory
Swapping the 128KB SRAM for a 256KB for 768KB to enable loading DOS high.

If you know of other information, mods, hacks, or ideas please reply and add it here.
If you have a list of must-have software to install on these, that would also be appreciated.
 
The Fn+4 and Fn+5 are interesting because you can make play.bat or dn.bat files to launch applications. These must be stored in the CPLD as I am not finding references to it in the BIOS.
It is likely not in the CPLD, but in the keyboard microcontroller. Do I understand correctly that pressing these key combinations simply sends "play.bat" or "dn.bat" strings to the computer?
 
It is likely not in the CPLD, but in the keyboard microcontroller. Do I understand correctly that pressing these key combinations simply sends "play.bat" or "dn.bat" strings to the computer?
It types "play" or "dn" at the command prompt and presses enter. No extension.

If you make batch files with these names, it will run them. Would be neat to customize this.

I don't know what the BK82C42 actually is. Maybe a remarked microcontroller? It is a LQFP 48 pin chip.
 
Last edited:
48 or 44 pin? The 82C42 is the CMOS version of the veneered and generated Intel 8042. Here's the datasheet pdf here. According to it, the QFP has 44 pins.
It doesn't look anything like 82C42 or similar AT / PS/2 style keyboard controller. It appears to be a microcontroller programmed specifically to scan the keyboard matrix directly and output the scancodes together with activating IRQ1 line.
1697613545454.png
 
I looked at several popular microcontrollers and I think it might be a STC8 series by STC Micro with an 8051 core and ISP programmable.
The unused pins match up with the SPI port. But it looks like it is programmed using UART on pins 19 and 20.

The BATIN pin comes directly from the battery and lines up with ADC0 adding further to the suspicion that this is the correct micro.


STC8G.png

If it is possible to download and reverse engineer (or just re-write from scratch) that firmware, it could be possible to make use of the un-used keys (like Windows key to launch windows?) But also with the unused pins which have an SPI or I2C interface, one could probably also control a digital pot to adjust the volume and use the volume keys.
 
Last edited:
Thanks for starting this thread, @Retroplayer .

@sergey , I bought a chip from you, not because I can't program my own, but to support you for all the effort you have put into the Xi8088, the BIOS, and all of the other projects that you have created. Thank you so much!

I'm going to go through and do some of the hacks and report back. I had considered replacing the LCD with an IPS screen, but haven't spent the time on Panelook to find something compatible. Does anyone here have a v2? It's reported that the "VGA" solution is actually EGA, which I actually like the idea of better.

It wouldn't be too hard to take a minimal serial/parallel circuit and make a tiny 8-bit ISA card with just those on it, and package it as a backpack for the v1s.

- Alex
 
@sergey thank you for BIOS!

I've built your BIOS for Book8088 awhile ago to put fixes for 3-Demon and Turbo Basic, those are now in 1.0.0 - great!
Since that time i've added some stuff to your BIOS:
1. Contains two XT-IDE BIOS'es - only one for V20 or 8088 will init. I have two CPUs, V20 came with Book8088, and i still have working КМ1810ВМ88 chip which i sometimes use in Book8088. This saves BIOS chip swapping. I know i could use 8088 version, but V20 XT-IDE is much faster.
2. Basic int 13h handler for CH375 chip. As i don't plan to use floppy, it emulates it, so you could boot from "floppy", if a USB flash is inserted on boot and boot sector looks like floppy. Took some time to make, as CH375 documentation cannot be considered as helpful. You need to write floppy image to USB with Rufus or DD. Handler fully replaces original floppy routines.
3. Bells and whistles - plays PWM floppy seek and beep sound from real XT on boot (or pretty close :))

Maybe someone will find it helpful:
https://github.com/jinshin/8088_bios
(As i messed up with git, i couldn't sync to latest version, so it's updated to 1.0.0 with PIT_DELAY manually)
 
My version 2 should be arriving tomorrow. I am waiting for that one before I dive too deeply into modding/hacking the V1.

While we are waiting, perhaps an interesting discussion would be a list of must-have software to load up on these?
 
1. Contains two XT-IDE BIOS'es - only one for V20 or 8088 will init. I have two CPUs, V20 came with Book8088, and i still have working КМ1810ВМ88 chip which i sometimes use in Book8088. This saves BIOS chip swapping. I know i could use 8088 version, but V20 XT-IDE is much faster.
2. Basic int 13h handler for CH375 chip. As i don't plan to use floppy, it emulates it, so you could boot from "floppy", if a USB flash is inserted on boot and boot sector looks like floppy. Took some time to make, as CH375 documentation cannot be considered as helpful. You need to write floppy image to USB with Rufus or DD. Handler fully replaces original floppy routines.
3. Bells and whistles - plays PWM floppy seek and beep sound from real XT on boot (or pretty close :))

Maybe someone will find it helpful:
https://github.com/jinshin/8088_bios
(As i messed up with git, i couldn't sync to latest version, so it's updated to 1.0.0 with PIT_DELAY manually)
Very cool! I'll take a look at your modifications.
How do you decide which one of XUB BIOSes get initialized? Did you tweak the BIOS extension scan routine?
Regarding floppy vs. CH375, perhaps it is possible to check if an FDC is present in the system (read FDC registers, send some dummy command?!), and enable or disable floppy support based on that. It is not impossible that people will plug an FDC into the extension board
 
Very cool! I'll take a look at your modifications.
How do you decide which one of XUB BIOSes get initialized? Did you tweak the BIOS extension scan routine?
Regarding floppy vs. CH375, perhaps it is possible to check if an FDC is present in the system (read FDC registers, send some dummy command?!), and enable or disable floppy support based on that. It is not impossible that people will plug an FDC into the extension board

I've took the shortest route :) changed XT-IDE init routine. Diff is here: https://github.com/jinshin/XTIDE/blob/main/xtide.diff

You're absolutely right about floppy, but those mapped to address routines scare me a bit, and releasing would require me testing the environment - but i have no FDC. Passing the testing to community might be ok, if that would not require having a EEPROM programmer.
Wiped copyrights: I worked on open-source projects and do understand the paint if someone simply wipes the name off your many-hours work. Main open-source rule "Credit where credit is due" is broken. I suggest they don't simply understand the damage to project if developer decides to quit.
I don't even understand the reasoning behind that decision - and i'm glad you're selling premade BIOS chips.
--
I still think that the weakest parts of the Book8088 is screen and keyboard.
I ordered pre-made RGB2HDMI as all my attempt to connect a display failed.
CH375 interrupt pin appears to be hanging, so i ditched the idea to write a mouse driver for it.
And i still have no idea for keyboard :(
--
Might be helpful for research - my Book8088 had a severe problem with kbd right from start: Enter returned 0, Backspace - 9. Most interesting - Fn-F7 returned "mode 80o" instead of "mode 80<cr>". Fixed that with cleaning and reseating big CLPD chip marked "XT-IO"
 
I received the Version 2 Book 8088 with VGA and ports for serial and parallel. I have dumped the bios and backed up the stock CF card. The BIOS appears quite different than the version 1, which is to be expected with the VGA. The CF card looks pretty identical, except no UCDOS (Chinese DOS) and a folder called SBVGM has been added that looks like some sort of universal sound card driver? SBVGM -h lists all sorts of sound card options including Tandy PC Jr. As far as I am aware this model still only has the OPL3. The module is the same. So maybe just there for people to add a SB card with the ISA expansion.

So far, at least, I have not had the issue with the screen offsetting. That could be random and might pop up the more I use it. I have not disassembled it yet to see what is different about the board. I will do that this weekend when I have a free block of time. Anyone have any questions or things they would like me to check out on it to solve any mysteries?

Area5150 that is loaded on the drive looks very messed up. I had expected that the VGA card would fall back to CGA mode, but it does not appear to do so.
 
Windows did not work when switching to VGA. It looks great under EGA, however and becomes much more usable with the higher resolution. However, this needs some EMS memory to really use windows. I did not dig too deeply into the VGA issue. It could just be that it needs a proper driver. Note that to switch to EGA mode, I needed to extract all of the Windows 3.0 disks to a single folder and then copy them to a flash drive. Then I needed to point windows setup at them so it copy over the necessary files.

A serial mouse works as expected.

Simon The Sorcerer 1 runs on it. I could not get it to run on the old version because it required a VGA card. It looks really good, but the animations are just a tad slow.

Thought of a useful mod. Change the turbo LED to a different color so it is much easier to determine if turbo mode is on. It would actually be even nicer to relocate this LED or go real old-school and install a 7 segment speed display. :)
 
Last edited:
Vogons potentially has the VGA driver.


The graphics chip is a Cirrus Logic CL-GD5429

I tried adding it through the windows setup, but windows would not start. It will most likely need some manual configuration. which I will keep playing with and re-package it.
 
I received the Version 2 Book 8088 with VGA and ports for serial and parallel. I have dumped the bios and backed up the stock CF card. The BIOS appears quite different than the version 1, which is to be expected with the VGA.
Actually VGA has nothing to do with the System BIOS. It has its own VGA BIOS extension.
I looked at the binary that you've sent me. It is still based on my code.
Interestingly enough, they've added some code and messages back, e.g., CPU type detection, or perhaps just went back in their edits...

Cirrus Logic CL-GD5429 is an interesting choice. It requires unlatched LA17-LA19 addresses to work properly. That's not a problem if you build your own motherboard, but it won't work in 8-bit ISA slot exactly because unlatched addresses are missing there.
Also, the original Cirrus Logic BIOS used 80186+ instructions, so the chances are that the system will not work with 8088/80C88 CPUs, only with NEC V20.
 
That's actually pretty neat and useful. Not only for Book8088, but for any other system. It's better to skip initialization instead of hanging due to an invalid opcode.
Can you submit the patch to @Krille ?

Being a new moderated user here, i so far cannot send DMs, but if that idea is of any use for other projects - feel free to use it, thank you for reviewing!
--
May i ask could be interrupt pin on CH375 be connected with jumper wire to interrupt controller or ISA bus to produce INT 03, for example? Sorry if that sounds dumb, but i really more on software side and still would like to extend USB port capabilities.
--
If there's any idea how external keyboard connector could be implemented - i would love to do that.
--
As for leds - i'd change all blue ones to white and green if i could :)
 
Back
Top