• Please review our updated Terms and Rules here

Book 8088 discovery and modification thread

I wrote a small program to work around the issues with the Book 8088 not centering the display properly. It's a TSR that wraps the BIOS video interrupt and briefly sets pixels in the top left and bottom right of the screen to help the LCD display calibrate correctly.

I've only tested on my V2 with VGA but am interested to hear if it helps for the V1 / CGA units too
I've had 0 issues with centering on VGA, only on my CGA boards (in V2), just as an fyi.
 
can you download the already compiled .com file?
Yes, I included a binary in the releases section of the Github page
I tried similar approach on my V1 long time ago, but it seemed to be more random. Tried different chars/patterns after setting text video mode. For example, pattern with characters in corners worked on V20 somewhat 80% of time, but not at all on real 8088. So i ditched the idea. Will test your TSR for sure when i assemble my Book back :)
--
Second idea - if you do a short between hsync or vsync and ground you will cause LCD reset as well, but it didn't help me play Rogue on Book either, so no luck there too.
Interesting that you had different results with a V20 vs 8088. My approach was to set a single pixel in the top left / bottom right for graphics mode, and a white cell in text mode. So far it has worked on my machine. I'm interested to hear if the TSR works for you.
I've had 0 issues with centering on VGA, only on my CGA boards (in V2), just as an fyi.
I wonder if there are different variations of driver boards used. My VGA machine will center correctly on boot but will consistently be offset when switching to graphics modes for certain games. For example, Space Quest 1 will switch between text and graphics modes during the starting sequence. The text mode for entering your name is always way off to one side, which seems to be because the screen is mostly black. There is also an issue in Commander Keen as the border / background colour is changed from black to cyan and the display locks on to the edge of the overscan region, cutting off the bottom right of the screen. Prince of Persia is hit and miss with centering correctly. When starting, it shows a 'loading' message centered in an otherwise black screen which appears to be the issue. (Prince of Persia has a problem with the VGA palette routines but that appears to be a different issue entirely)

My TSR fixes the issues for these games, at least on my machine. :)
 
well i loaded it on my book 8088, it didn't work the first time i ran it but after power cycle it was working lets see if it keeps the CGA screen in check a little better.
 
Interesting that you had different results with a V20 vs 8088. My approach was to set a single pixel in the top left / bottom right for graphics mode, and a white cell in text mode. So far it has worked on my machine. I'm interested to hear if the TSR works for you.

Alas, i'm observing same random behavior on 8088 with and without TSR :(
My V1 has centering issue only with 80 col text mode (one column shift to the left, mostly when using 8088 CPU). All other modes work fine by itself.
I tried to address that for BIOS in this naive commit
and my test on V20 shown that it has somewhat stable effect, but as soon as i used 8088 cpu - removed that part :)
 
Is there any fix for control c not working correctly? When in basic if you run a program control c does not interrupt.
 
Usually GW-BASIC uses control-break to interrupt. On more modern keyboards it's usually control-pause, and on XT-style boards, it might be control-scroll lock.
 
I wrote a small program to work around the issues with the Book 8088 not centering the display properly. It's a TSR that wraps the BIOS video interrupt and briefly sets pixels in the top left and bottom right of the screen to help the LCD display calibrate correctly.

I've only tested on my V2 with VGA but am interested to hear if it helps for the V1 / CGA units too
Wow! Thanks a lot!
 
Yes, I included a binary in the releases section of the Github page

Interesting that you had different results with a V20 vs 8088. My approach was to set a single pixel in the top left / bottom right for graphics mode, and a white cell in text mode. So far it has worked on my machine. I'm interested to hear if the TSR works for you.

I wonder if there are different variations of driver boards used. My VGA machine will center correctly on boot but will consistently be offset when switching to graphics modes for certain games. For example, Space Quest 1 will switch between text and graphics modes during the starting sequence. The text mode for entering your name is always way off to one side, which seems to be because the screen is mostly black. There is also an issue in Commander Keen as the border / background colour is changed from black to cyan and the display locks on to the edge of the overscan region, cutting off the bottom right of the screen. Prince of Persia is hit and miss with centering correctly. When starting, it shows a 'loading' message centered in an otherwise black screen which appears to be the issue. (Prince of Persia has a problem with the VGA palette routines but that appears to be a different issue entirely)

My TSR fixes the issues for these games, at least on my machine. :)

I tested the little program on my V2, with the modified LCD controller and apparently it has no effect... the program starts during video changes, but in the end the display does nothing different. in 1 case commander keen4 started with strange colors.
 
I got my v2 Book8088 and it's a tremendous improvement over the original. The included V20 and better screen makes turns it into an actual USABLE system. Does anyone know of a serial to wifi modem that works well with these?
 
serial wifi modems that i have used.



both are based off the same code.

i think the oldnet version works slightly better but i go back and forth.
 
i'm using the TSR Vidsync it is helping a little bit but programs are still causing video resetting and being jumped over one character.

i'm also using Book8088 BIOS v1.0.5

still have to try mode 80 sometimes.
sometimes you have to hit enter a few times to fill the screen with more character and then mode 80 works.
would like to maybe get a V2 at some point.
i have an external serial/parallel card off the ISA expander.
 
do any of the replacement bios allow for the book 8088 to boot into turbo mode instead of hitting fn key?
 
Ok, since i assembled my Book V1 back (connected the LCD screen) for testing VidSync, I've decided to dig into textmode centering issue a bit more.
Everything below is for Book V1 CGA only.
I thought, might reprograming 6845 CRTC help at least to some extent?
This page https://stanislavs.org/helppc/6845.html has all basic info for that, including init tables for video modes.
I've tried changing registers 02 and 03.
03 seemed to have no effect, but playing with 02 gave a result: if set to 59h instead of 5Ah and video centering fails, it makes screen shift to the right in text mode :). Somewhat usable, but not the real solution. So i extended my PALTSR to change register 02 of 6845 to 5Ah/59h if called from 80x25 text mode.
Odd enough, if centering failed (it's shifted to either left of right), changing register moves screen eating one column from one side (LCD reinits with that new value). BUT, if centering done right, changing that register has no effect at all!
Next, i tried setting screen border via port 3D9h right after setting CGA text mode 80x25 and got some new weird effects. LCD controller alters colors - white becomes kind of opposite to border color, other colors changed as well. On external screen everything is fine, so it's some quirk on either LCD or CGA CLPD LCD part. Might be good for some Book V1 specific virus :D
I also noticed that changing register 0 to any value different from 71h caused LCD to lose signal and figured at some point that returning back from that state positioned screen just right. It's surely pure hit-and-miss, but it worked more reliable than "mode 80" aaand it has some success rate (>30%) with Rogue, which has 0 success rate centering with 8088 chip.
So, keeping LCD with lost signal a bit and returning back definitely helps my text mode centering issues.
PALTSR3 attached to this post and source is here: https://github.com/jinshin/Book8088/blob/main/PALTSR3.ASM
Press Ctrl+~ (key under Escape) to reset screen in 80x25 text mode.
Knows bugs: you'll need to press CTRL after screen centering as CTRL gets "stuck" after long interrupt processing.
 

Attachments

  • PALTSR3.zip
    708 bytes · Views: 3
Ok, since i assembled my Book V1 back (connected the LCD screen) for testing VidSync, I've decided to dig into textmode centering issue a bit more.
Everything below is for Book V1 CGA only.
I thought, might reprograming 6845 CRTC help at least to some extent?
This page https://stanislavs.org/helppc/6845.html has all basic info for that, including init tables for video modes.
I've tried changing registers 02 and 03.
03 seemed to have no effect, but playing with 02 gave a result: if set to 59h instead of 5Ah and video centering fails, it makes screen shift to the right in text mode :). Somewhat usable, but not the real solution. So i extended my PALTSR to change register 02 of 6845 to 5Ah/59h if called from 80x25 text mode.
Odd enough, if centering failed (it's shifted to either left of right), changing register moves screen eating one column from one side (LCD reinits with that new value). BUT, if centering done right, changing that register has no effect at all!
Next, i tried setting screen border via port 3D9h right after setting CGA text mode 80x25 and got some new weird effects. LCD controller alters colors - white becomes kind of opposite to border color, other colors changed as well. On external screen everything is fine, so it's some quirk on either LCD or CGA CLPD LCD part. Might be good for some Book V1 specific virus :D
I also noticed that changing register 0 to any value different from 71h caused LCD to lose signal and figured at some point that returning back from that state positioned screen just right. It's surely pure hit-and-miss, but it worked more reliable than "mode 80" aaand it has some success rate (>30%) with Rogue, which has 0 success rate centering with 8088 chip.
So, keeping LCD with lost signal a bit and returning back definitely helps my text mode centering issues.
PALTSR3 attached to this post and source is here: https://github.com/jinshin/Book8088/blob/main/PALTSR3.ASM
Press Ctrl+~ (key under Escape) to reset screen in 80x25 text mode.
Knows bugs: you'll need to press CTRL after screen centering as CTRL gets "stuck" after long interrupt processing.
Do you expect problems if I tested this on one of my v2s with the CGA card shoved in?
 
Do you expect problems if I tested this on one of my v2s with the CGA card shoved in?

It should work, no irreversible problems expected, as i simply manipulate CRTC registers - they'll be back to default after reboot anyway.
Screen reset on key combo should work only in 80x25 text mode, and press Ctrl once again when/if screen is centered after that.
BTW, previous main purpose of that TSR was to switch CGA palettes in games (i personally prefer red-cyan-white almost everywhere)
I would love to hear any feedback!
--
I'm also really interested - will running attached book_bug.com break colors in V2 with CGA? That not permanent :)
--
Also, new version of PALTSR3 with hopefully fixed Ctrl key bug attached.
 

Attachments

  • BOOK_BUG.COM.zip
    173 bytes · Views: 4
  • PALTSR3.COM.zip
    744 bytes · Views: 4
Last edited:
I received a new LCD controller as well and I was able to dump the firmware from both boards and I can confirm that a simple firmware transplant seems sufficient to fix the original board.
Unfortunately it was necessary to desolder both EEPROMs otherwise the TL866 complained about overcurrent when just clipped to the chip while on the board.

The boards are identical except for a slight difference in the main controller chips, the original is RTD2660 C3F62G1 while the new one is RTD2660 D8C23G3, I don't think it's particularly relevant.

The EEPROM is a P25Q40SH (4Mbit SPI) in both boards and it's not directly listed at least in the old MiniPro software, I selected more or less randomly the BG25Q40A and disabled the ID check and everything worked


IMG_7970.jpeg
IMG_7967.jpeg
 

Attachments

  • Book8088_LCD_firmware.zip
    148 KB · Views: 19
Back
Top