• Please review our updated Terms and Rules here

Book 8088 discovery and modification thread

I've noticed my Book8088 crashes fairly quickly with an 8087 in it, especially in Turbo mode, due to heat. Even with the top cover removed.

It's possible I have an underperforming rebadged 8087, but before I go looking for another, do these machines work with an 8087 when on turbo speed?

It’s not just you, the 8087 runs hot and is not a good fit to run it in the Book8088. I had the same thing happen to me with my 8087 before my Book8088 stoped working entirely. Fortunately there’s no reason to use an 8087 for games.
 
Does anyone know why Lemmings 2 is silent? Maybe it only supports PCM sound and effects? In the game files, I found the file adlib.bin, which should be the sound card for the book 8088. There are no settings in the game to choose the type of sound card.
 
The monitor of my book8088 starts up with blue text... using CheckIt, the video card passes all the tests, and when I run the color test, everything recovers. Then, after exiting the test program, it often starts working properly again... but if I reset the book8088, the screen turns blue again. Do you think the problem could be with the LCD controller?
 
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


View attachment 1271248
View attachment 1271249
Just FYI. I tried this new firmware on a V1 Book 8088. The screen turns blue and says not compatible. I had to revert to the original.
 
I guess the card is a good workaround to the lack of Intel 8088 support in the Book 8088 V2. I tried to contact DZT's Store for one, but he seems to be out of them.

I own the KM180VM88 and the KR1810VM88 too (the former is the military, ceramic version and the latter is the plastic version) and I was unable to boot the machine with either. I then tried a bunch of other 8088s and the result was the same. The K1810VM88 is a pretty reliable clone, it could be that it is an exact clone. Mine were made quite recently in the Kvazar factory in Kiev.

I guess the difference between my machine and this guy's machine (the guy on youtube) is probably the VGA bios. It could be, as he bought the computer after I did, that he got a machine with the VGA bios "fixed" so to run on an 8088.

Ideas anyone?
My KM180VM88 arrived few days ago. Works in Book8088 V1 but not V2 because the VGA BIOS needs V20 (it has some 186 instructions like shifts). Still looking for the 8087 clone. I love the white ceramic package.
It would probably work if you replace VGA with CGA module.
Mine isn't very stable, it even crashed in Volkov Commander.
I do have the card because I am all kinds of stupid I have 2*Book8088 V1, Book8088 V2, Hand386 and Pocket386 and whole bunch of accessories ;-)
 
Hello everybody!

I've also got a Pocket 8086 with a V30. So far it's lots of fun. I have a few projects and ideas - will keep you up to date. One thing I couldn't yet get to work is the UMBs. It's easy to activate via `USE!UMBS.SYS` and I can load drivers into the UMBs, but afterwards, the system becomes unstable. Launching some CGA game will reliably crash it. Looks like the UMB area is video RAM? I was hoping it is a separate chip. Or perhaps the RAM chip needs to be replaced.

I guess, it's probably not safe to plug in an 8Mhz 8086 clone in turbo mode (10Mhz). Haven't done that yet.
 
Hello everybody!

I've also got a Pocket 8086 with a V30. So far it's lots of fun. I have a few projects and ideas - will keep you up to date. One thing I couldn't yet get to work is the UMBs. It's easy to activate via `USE!UMBS.SYS` and I can load drivers into the UMBs, but afterwards, the system becomes unstable. Launching some CGA game will reliably crash it. Looks like the UMB area is video RAM? I was hoping it is a separate chip. Or perhaps the RAM chip needs to be replaced.

I guess, it's probably not safe to plug in an 8Mhz 8086 clone in turbo mode (10Mhz). Haven't done that yet.
Just a question about the Pocket 8086: was the RTC (Real Time Clock) issue fixed in this computer? Because the Book 8088 has no RTC and this is quite some pain in the... Rear ports...
 
Just a question about the Pocket 8086: was the RTC (Real Time Clock) issue fixed in this computer? Because the Book 8088 has no RTC and this is quite some pain in the... Rear ports...
I have one, it has no RTC (you can confirm by glancing at the official schematics) and that's indeed the most annoying thing about it. The second most annoying thing is the shitty bios, but I am hopeful the open XT bioses will support it explicitly at some point.
 
I have one, it has no RTC (you can confirm by glancing at the official schematics) and that's indeed the most annoying thing about it. The second most annoying thing is the shitty bios, but I am hopeful the open XT bioses will support it explicitly at some point.

Did you get the UMBs to work?
 
Did you get the UMBs to work?
Tried using that USE!UMBS.SYS thing. I managed to load some stuff high. The system is unstable somewhat, but I think it is regardless of UMBs.

I suspect the main issue to be that the BIOS assumes CMOS, and the lack of CMOS causes some randomness in configuration each boot. Which is why sometimes it won't even boot at all.

I also observed that the serial port boot in XTIDE BIOS seems to do nothing (silence at serial port). Might be DSR/sessionhandshake related.

In any event, I feel strongly that most issues would (probably) go away with a proper BIOS we don't have yet.

And if we could load DOS high, it'd save a lot of base memory and still leave some UMBs for drivers, but so far no dice.
 
Tried using that USE!UMBS.SYS thing. I managed to load some stuff high. The system is unstable somewhat, but I think it is regardless of UMBs.
According to my tests, I can reliably provoke the instability once loading something into the UMBs. So either the D000 area is used for something else or the RAM chip is fried. But if you experience the same, it would point to something else. It would be really nice to get the UMBs to work. Perhaps RAM would even suffice to load two processes in Desqview :p
There are tools that can write/read check the potential UMB areas, aren't there?
 
First hack, first fail. I was trying to build a small "Wifi dongle" by attaching an IDC connector directly to an ESP8266 D1 Mini V2 board, which would plug into the Pocket 8086's COM-port. I flashed a ESP SLIP router firmware on the board. The DOS side would speak ETHERSL. Since it's a plain UART at TTY levels on that interface, there would be no need for RS232 converters or the like. The ESP gets powered directly from the interface. Also, no dongle with cables hanging in between. That would be a truly mobile Wifi solution for the Pocket 8086/386. I know it works in principle since it was already online. Unfortunately, it was extremely tricky to get the cables into that IDC connector to make contact the right way, especially since RX/TX are right above each other on the connector. These IPC connectors are really meant for ribbon cables. Once I had it plugged in, the connector would come apart every time I tried to remove my "Wifi dongle". So I glued it in place. I was impatient with the glue and moved the dongle before it completely solidified. It creeped into the pin holes, effectively closing them. Now it's trash - everything has to be redone! :cautious:

Perhaps somebody knows a better way to attach my board to the connector.

My second hack probably also isn't going to realize. The idea was to modify Bret Johnson's USB HID drivers, so they would work on an 8086 and with the CH375, which is already in the Pocket 8086. This means you could directly attach USB mouses, including of course really small cute ones. Or wireless mouses with these small wireless dongles. (The driver package has keyboard drivers as well, but I didn't plan to port those at the beginning.) I know this is possible in principle, since I got the mouse proof of concept to run. I even munged it a bit to work with 12-bit resolution. This project would benefit not only the Pocket 8086 and 386, but potentially lots of people with one of those CH375 cards. They are currently only really used for mass storage on MS DOS. But the host controller is a host controller. It can do HID as well. Unfortunately, studying Bret Johnson's drivers, I got the impression that this would be a lot of work. I was going to cut away the separate host controller drivers and directly fork USBMOUSE.COM, so it would be simpler and use less conventional memory. But it's still 15000 lines of assembly code and with quite some tricks to get it all nonblocking, PS/2 mouse "emulation" and stuff liket hat. Not impossible, but it would take me a week perhaps. Also, adding 12-bit resolution support - some mouses just work like that and you can't do anything about it - would require some major refactoring as the code makes some pervasive assumptions about the report descriptors' memory layout.

Anyway... regarding the UMBs. I couldn't yet find a working memory checker. Not even CheckIt 2 runs.
 

Attachments

  • DSCI0648.JPG
    DSCI0648.JPG
    232.1 KB · Views: 7
Last edited:
Anyway... regarding the UMBs. I couldn't yet find a working memory checker. Not even CheckIt 2 runs.
I got Checkit 2.1 to work. The zip just had some leftover config, that prevented it from starting correctly. I did an extensive memory test from 832kb (D0000) to 960kb (EFFFF) and it goes through. So the RAM is definitely fine.

I enabled UMBs and loaded stuff there. Ran the video checks in CheckIt. Everything is fine. I launch some CGA game like Sopwith or Test Drive and the machine immediately locks up... But it's probably not related to graphics. I can reliably provoke the lockups by just running BEEP on the command prompt (4DOS has a BEEP). This happens until I remove everything up to the last driver from the UMBs. If USE!UMBS.SYS itself is loaded but nothing is actually loaded into the UMBs, BEEP works. But afterwards, MEM will hang!
 
Last edited:
If USE!UMBS.SYS itself is loaded but nothing is actually loaded into the UMBs, BEEP works. But afterwards, MEM will hang!

I get exactly the same results with the HIRAM and UMBDRVR UMB providers. They should be able to do roughly the same as USE!UMBS. Next I will probably try DR-DOS (or rather SvarDOS). It even has its own UMB provider included. Perhaps I will try to get in contact with the creator - they do have a (suspiciously looking) email address on their website.
 
Last edited by a moderator:
I got Checkit 2.1 to work. The zip just had some leftover config, that prevented it from starting correctly. I did an extensive memory test from 832kb (D0000) to 960kb (EFFFF) and it goes through. So the RAM is definitely fine.

I enabled UMBs and loaded stuff there. Ran the video checks in CheckIt. Everything is fine. I launch some CGA game like Sopwith or Test Drive and the machine immediately locks up... But it's probably not related to graphics. I can reliably provoke the lockups by just running BEEP on the command prompt (4DOS has a BEEP). This happens until I remove everything up to the last driver from the UMBs. If USE!UMBS.SYS itself is loaded but nothing is actually loaded into the UMBs, BEEP works. But afterwards, MEM will hang!
Does just doing the memory test also cause the hang by running BEEP?

Just thinking, maybe the RTL for the CPLD or whatever does memory decoding is bugged, and something latches, or more than two targets get the enable signal at once.
 
Next I will probably try DR-DOS (or rather SvarDOS). It even has its own UMB provider included.
So I installed SvarDOS. I first installed it in Virtual Box. It is important to choose manual partitioning of the drive since the SvarDOS installer will otherwise format the drive as FAT32 and that's not supported on 8086. In FDISK disable FAT32 support. I recommend to install with the complete repo archive. After installation, copy all the *.svp files to some place on the disk, so you can install stuff afterwards. I then exported the Virtual Box VDI to a raw image, e.g.:

Bash:
VBoxManage clonehd  SvarDOS\ \(DR\ DOS\)/SvarDOS\ \(DR\ DOS\).vdi svardos.img --format raw

You can then flash svardos.img to the CF card and copy some more absolutely necessary files to the disk, like the CH375 driver.

Once in SvarDOS, I tried all of the UMB providers, but they all either did not boot to the shell or the UMBs wouldn't even be shown by MEM. I had some success with the DRHIMEM driver:

Code:
pkg install repo\drhimem.svp

Then add a line like this to CONFIG.SYS:

Code:
DEVICE=C:\DRIVERS\DRHIMEM\HIMEM.SYS /CHIPSET=RAM /USE=D000-EFFF

Or D000-F000 would probably also work. The problem is that the same bug I described earlier will still happen under DR-DOS as well: If you actually load something into the UMBs, every time something tries to use the speaker, the system will hang. We investigated the issue in this Github thread and it turns out that it's very easy to trigger by a typical read-modify-write cycle of IO port 61h, which is commonly used to program the speaker. The 3rd bit (bit 2) must be 0 to enable the UMBs. The documentation falsely claims it's controlled by port 60h, while in reality, it's port port 61h. Now when you read 61h, you appear to get a hardwired 1 (even though there is a flip-flop that could return the current state!) and writing back that 1 on port 61h as 99.9% of DOS programs would do, will disable UMBs and cause a lockup once some TSR or DOS interrupt from the UMB kicks in. So this would basically be a bug in the CPLD, that cannot be fixed without reprogramming it. Perhaps it has already been fixed and we just got old revisions? But then, you can pretty much explain this behavior just by reading the schematics from their website.

So unless we get the CPLD source code and there is some undocumented way to force the bit in question low or ignore the UMB-enable-flag when reading port 61h, there is very little we can do about it. I can't think of a way to fix this in software, other than hand-patching each and every program that uses the speaker and possibly other IO ports as well. Or trapping on each and every instruction to clear the flag, which could work on the V30 at least. UMBs just appear to be broken on the Pocket 8086, for all practical purposes at least. 😢
 
Last edited:
Well, I guess we could still at least fork apps like Microweb to make exclusive use of the UMB memory. That should be safer, at least if you can guarantee that no other TSR or driver is going to mess with the relevant ports. (It's apparently not only 61h, but also 63h, 65h up to 6fh. But I haven't confirmed that yet and checked what these are used for.)
 
I have added Wi-Fi to my Pocket8086 by using an ESP8266 microcontroller emulating a SLIP ethernet device, soldered up to the 5V and GND on the USB port for power, and the RX & TX to the COM1 breakout connector pins for serial. You can use a multimeter on continuity mode to find the RX & TX pins by checking them against the 16C552 chip (pinout is available in the datasheet, free download from Texas Instruments).
You will surely want to add a diode on the 5V line, as if I plug the ESP8266 into USB for firmware updates or something, it now causes the laptop to power on, even if there is no battery or charger connected.. xD
1745744637989.png
1745744643122.png
1745744649088.png
1745744654020.png
 
Back
Top