• Please review our updated Terms and Rules here

Book 8088 discovery and modification thread

What a goofy mistake/omission/whatever. I'd have guessed that the "default" out-of-the-box firmware for that scaler chip would know how to deal with this; only thing I can think of is maybe they tweaked it to do a better job with the 70hz modes and somehow broke it.



If you figure this out be sure to fulsomely document it. A few years ago I started digging into the rabbit hole of custom firmware for these LCD controller boards hoping for a clear answer on the a similar thing, IE, if it's possible with a custom firmware to get these boards to handle 15khz input, but I gave up because of how scattered the info was. (And much of it not being in English.) The datasheet seemed to imply that the RGB input bottomed out at 31.5khz, which doesn't make a ton of sense given it supports 15khz composite, but, well, said datasheet just generally was unclear when it came to distinguishing what were limits of the hardware vs. the reference firmware.
It also seems to be proof that it can in fact do 15Khz since in the version 1, it is connected directly to the 6545 CRT controller and displaying CGA. The version 1 has an actual 6545 in it, not emulated in a CPLD.
 
It also seems to be proof that it can in fact do 15Khz since in the version 1, it is connected directly to the 6545 CRT controller and displaying CGA. The version 1 has an actual 6545 in it, not emulated in a CPLD.

FWIW, it’s at least *possible* that the CPLD in that model could incorporate a line buffer and double-scans the output at 31Khz if they make CPLDs with enough gates to do it, but that’s probably a stretch.
 
Unlikely. Not enough memory cells in that CPLD

Yeah, when I wrote that I didn't realize it was just an ATF1508AF. At minimum for a completely "dumb" line doubler for CGA I'd think you'd need around 1K of RAM for a pair of alternating line buffers, this is FPGA territory.
 
Ok, i fixed the Book with replacing SN74HC245D chip.
Got RGBtoHDMI convertor and other needed parts.
Results of hacking the Book are on photo.
DMA refresh hack by GloriousCow - works fine.
CGA disconnect - same. Though EGA card on ISA extender is not recognised if CGA disabled. When CGA enabled - strange thing happen: EGA starts to show garbled, but recognizable picture. I actually have no idea if that me done something wrong or Book ISA bus problem. PicoGUS was not recognised (no I/O on control port) on ISA extender way before my hands got there. ISA extender itself is good - PicoGUS works on Hand386.
RGBtoHDMI works great, but i missed the part, that you should use at least Pico Zero W to emulate composite CGA, so only IRGB for now.

Video with connected external display:
Video with MPH8088 running with DMA memory refresh hack:
 

Attachments

  • photo_2023-11-03_20-46-05.jpg
    photo_2023-11-03_20-46-05.jpg
    184.3 KB · Views: 26
  • photo_2023-11-03_20-39-18.jpg
    photo_2023-11-03_20-39-18.jpg
    156.4 KB · Views: 31
  • photo_2023-11-03_20-39-15.jpg
    photo_2023-11-03_20-39-15.jpg
    268.3 KB · Views: 32
  • photo_2023-11-03_20-39-11.jpg
    photo_2023-11-03_20-39-11.jpg
    157.8 KB · Views: 29
  • photo_2023-11-02_18-15-30.jpg
    photo_2023-11-02_18-15-30.jpg
    133.2 KB · Views: 25
I saw the creator Ian Scott suggested change of a control chip for PicoGUS as Femto uses a different one which is reported working on Book..
Mainly using Freddy's MOD tracker XT.
 
  • Like
Reactions: n0p
I saw the creator Ian Scott suggested change of a control chip for PicoGUS as Femto uses a different one which is reported working on Book..
Mainly using Freddy's MOD tracker XT.
Yes, i've surely seen his post, but as adding 100nF capacitor fixed PicoGUS for Hand386 and i read the debug log from it - no resets, it simply cannot talk to it's control port.
Now, as EGA card not recognized with disabled CGA (and i checked EGA card in Pentuim with RGBtoHDMI) - i suggest something doesn't work in my particular Book :(
Not a big problem, actually, as i don't need any extensions.
Started to think of connecting Pi Pico XT-IO to CPLD chip - it has 8-bit data input for keyboard scancodes so it should be relatively easy (just to learn programming of Pico first :) )
 
Yes, i've surely seen his post, but as adding 100nF capacitor fixed PicoGUS for Hand386 and i read the debug log from it - no resets, it simply cannot talk to it's control port.
Now, as EGA card not recognized with disabled CGA (and i checked EGA card in Pentuim with RGBtoHDMI) - i suggest something doesn't work in my particular Book :(
Not a big problem, actually, as i don't need any extensions.
Started to think of connecting Pi Pico XT-IO to CPLD chip - it has 8-bit data input for keyboard scancodes so it should be relatively easy (just to learn programming of Pico first :) )
I have no idea where my Femto has got to :( but I will report back.
 
RGBtoHDMI works great, but i missed the part, that you should use at least Pico Zero W to emulate composite CGA, so only IRGB for now.

Great job on the external display test. How are you liking it? Was it worth it to do?

I have received the ISP tool for the KB processor, but need to find the time to get it wired up and see if I can download the firmware from it.
 
Great job on the external display test. How are you liking it? Was it worth it to do?

I have received the ISP tool for the KB processor, but need to find the time to get it wired up and see if I can download the firmware from it.

Absolutely. Apart from correct aspect ratio / big overscan and overall size, display gives much nicer magenta / cyan colors.
After testing correct composite emulation (i expect to get Pico Zero W in a week) i will mark that my point as done :)
I was hoping end effects in Area5150 would work, but they don't :( though RGBtoHDMI does show a bit more than blank display there.

As for keyboard - looking at the schematics and doing some pinning with multimeter there's quite straightforward hack comes to mind: inserting a device to XT-IO CPLD chip. I plan to use Pi Pico, as it's quite interesting to learn anyway (as a start base to adding more functionality to PicoGUS :))
 
PicoGUS Femto arrived today - can anyone offer me the ideal pgusinit settings (Port DMA IRQ) for the Book8088? I have the OPL3 installed - would I need to take that out or can I assign something different for the PicoGUS?
 
PicoGUS Femto arrived today - can anyone offer me the ideal pgusinit settings (Port DMA IRQ) for the Book8088? I have the OPL3 installed - would I need to take that out or can I assign something different for the PicoGUS?
Adlib card afaik doesn't use IRQ, so DMA1 / IRQ 5 or 7 should work fine, except if you put PicoGUS in Adlib mode - there will be port conflict
 
I'm getting together my thoughts about keyboard emulator and would be grateful for answers as i'm certainly don't have the needed microcontroller base (sorry if my terminology wrong):
I'm sure raising to high pins KD0-KD7 on XT-IO chip with bits of the scancode and generating IRQ1 will do the job.
Basically i plan to use Pico USB port for external keyboard (with microUSB OTG adaptor) and using it's GPIO to send data. Most tedious task there is to write an array with HID key - XT scancode conversion :)
But will 3.3V signal from Pico be enough for that?
Will the same 3.3V be enough to trigger interrupt on 8259A IC?
Should i use diodes when connecting the lines, so when real keyboard generates signal with 5V it won't kill the Pico?
How long (2 clock cycles ~ 2 microseconds?) should i keep the interrupt line high? Will bigger than need values do?
 
Adlib card afaik doesn't use IRQ, so DMA1 / IRQ 5 or 7 should work fine, except if you put PicoGUS in Adlib mode - there will be port conflict
OK so I checked vid - DMA 1, IRQ 5 are locked on the Femto. And you have to use extra random digit. Still Port 240? SET ULTRASND=240,1,5,0
I seem to remember Ian saying something about (probably IRQ 1) in the Femto vid -may have to check.
I'm still getting a "not found" error. I've uploaded the current 070 GUS firmware to the Pico.
 
Last edited:
OK so I checked vid - DMA 1, IRQ 5 are locked on the Femto. And you have to use extra random digit. Still Port 240? SET ULTRASND=240,1,5,0
I seem to remember Ian saying something about (probably IRQ 1) in the Femto vid -may have to check.
I'm still getting a "not found" error. I've uploaded the current 070 GUS firmware to the Pico.

Do you have the possibility to test it on any other PC? I have same error on the Book, but it works on my two other machines.
 
Do you have the possibility to test it on any other PC? I have same error on the Book, but it works on my two other machines.
Ah okay. Feeling deflated.
I don't have anything else vintage to try it on sadly - my desktops are away in storage.
 
Regarding Book8088 and it's keyboard controller:
I've cut 5V supply to pins 15-16, trying to disable it before connecting Pico to Book and it somehow still works, probably getting power from BATIN line (pin 5)
This answers one of my questions: both "XT-IO" and 8239A controllers are fine with 3V signalling :D
@Retroplayer: what would you think should be correct way to temporarily disable "BK82C42" (i know that's false mark on it) chip?
I would really love to avoid cutting more traces as they are really small :(
They won't work together with external kbd anyway, as bits KD0-KD7 will stay in the state of last key press event.
 
I am not familiar with Disk-on-Chip, perhaps it interacts somehow with XT-IDE BIOS, and breaks things...

As far as BIOS scan goes. 8088 BIOS scans 0xC0000 first, to see if there is VGA BIOS in there. If so, it will initialize it, so that display will work during the POST (e.g. memory test and diagnostic messages).
Later in the boot process it scans 0xC8000 to 0xF8000 and initializes the BIOS extensions in the order they were found.
I actually use XTIDE BIOS and DiskOnChips in several machines. A few things to note. The DOC can be configured via the cmd line tools to be first or last. Obvs what address it lives at is configured by the card it lives on (or in the case of some of my boards, the rom socket its sitting in). The only machine I've had 0 success with getting a DOC to work on is my 5150 iirc. The 5160 and other 8088 boxes were fine. You have to make sure the 'order' is correct (for the ones that do work). I tend to have DOCs at 0xC800 (if there's no MFM controller) or if there is, 0xD000. The XTIDE sits at 0xD800 if my memory serves (from how i configured my ISA/DOC cards. The DOC has to initialize first or it won't work. When I try to use one on the 5150, it hangs during the DOC BIOS extensions initialization (but ONLY on the 5150).. Depending on if this thing is more like a NuXT/Micro8088 it may play better. I'll have to see.. My V2 w/ VGA just showed up today.


Now I need to know which BIOS I should use? I notice n0p's bios is 18 commits ahead, 12 commits behind skiselev:master.
 
Last edited:
Now I need to know which BIOS I should use? I notice n0p's bios is 18 commits ahead, 12 commits behind skiselev:master.

Main difference - i added floppy emulation (though very basic) via CH375 USB chip to my build of Sergey's BIOS, but at the cost of removing real FDC support.
--
That kbd controller - i've cut BATIN line and that didn't disable it fully either, just led to constant keypress simulation :)
I guess if where was 35+ GPIO pins RP2040 device i would just replace that small controller chip. Working project for Pico with HID keyboard support, translating HID codes to XT scancodes is ready and tested.
 
Last edited:
Back
Top