VOGONS


Will the Book 8088 be a future classic?

Topic actions

Reply 240 of 339, by SVHS

User metadata
Rank Newbie
Rank
Newbie

Fantastic! Great work! This is probably overly ambitious for me. What is it about the USB port that prevents a USB keyboard from working? Is it the driver? Power? Alternatively could a legacy or modern keyboard be connected via the serial or parallel port? I came across this a while ago

https://geekhack.org/index.php?topic=11174.0

n0p wrote on 2023-12-05, 07:25:
USB wired keyboard is possible, but it ain't an easy task. I've posted on VCFED and maybe forgot to post here initial release: V […]
Show full quote

USB wired keyboard is possible, but it ain't an easy task.
I've posted on VCFED and maybe forgot to post here initial release:
Video:
https://www.youtube.com/watch?v=jP_Zx4weHFM
Source code for Pico:
https://github.com/jinshin/BookKbd/tree/stable
--
Traces are very small and i managed to kill original keyboard IC on Book, awaiting new one.
So the project is not complete, idea is to use Pico as a medium controller, which would process external kbd and onboard IC.
--
As Pico lines are 3.3V, IC supply needs to be 3.3V. I plan to use 3.3V from Pico in next try and use resistor block to limit current to it from Pico lines. IC Iworks with that voltage (but i killed it on some point connecting it's output to Pico and don't so far get how) and more, XT-IO CPLD chip is fine with 3.3V signals.

Reply 241 of 339, by SVHS

User metadata
Rank Newbie
Rank
Newbie

Just came across this. Would PS/2 keyboard work?

https://www.aliexpress.com/item/1005006028425189.html

Also a rather obscure cable for an XT keyboard that seems to support a serial connection

https://www.reddit.com/r/modelm/comments/gkm7 … omment/fqsatxy/

n0p wrote on 2023-12-05, 07:25:
USB wired keyboard is possible, but it ain't an easy task. I've posted on VCFED and maybe forgot to post here initial release: V […]
Show full quote

USB wired keyboard is possible, but it ain't an easy task.
I've posted on VCFED and maybe forgot to post here initial release:
Video:
https://www.youtube.com/watch?v=jP_Zx4weHFM
Source code for Pico:
https://github.com/jinshin/BookKbd/tree/stable
--
Traces are very small and i managed to kill original keyboard IC on Book, awaiting new one.
So the project is not complete, idea is to use Pico as a medium controller, which would process external kbd and onboard IC.
--
As Pico lines are 3.3V, IC supply needs to be 3.3V. I plan to use 3.3V from Pico in next try and use resistor block to limit current to it from Pico lines. IC Iworks with that voltage (but i killed it on some point connecting it's output to Pico and don't so far get how) and more, XT-IO CPLD chip is fine with 3.3V signals.

Reply 242 of 339, by SergeK

User metadata
Rank Newbie
Rank
Newbie
n0p wrote on 2023-12-04, 18:05:
As for origins on Book8088 - i would like to summirize what i personally know so far: Done by a person or a team named "Cycle Lo […]
Show full quote

As for origins on Book8088 - i would like to summirize what i personally know so far:
Done by a person or a team named "Cycle Logic"
Knows how to program STM microcontrollers (STC8G2K32S4), controls keyboard, Turbo, Mute and some leds - found by Retroplayer @ VCFED
Knows CLPD programming quite good- XT-IO and CGA logic are there, and COM/LPT IO were added on V2 fast
Did a good study on Sergey's BIOS (not only to remove copyrights 😀) - look at the number of Chinese comments in published archives
Both DZT and Hardcore Expert guys @ Aliexpress are not the authors. Both took time to answer simplest tech questions and referred to sending those to "technicians"
Tend to keep production price to a most minimum - that might answer EPROM vs EEPROM question
PR:
Aliexpress store managers are friendly and can help if exact problem is presented (i use two-way Google translate to make sure it says what i mean)
Promised to change BIOS in V2 - did not
Provided wiping copyrights reason is nonsensical - GPL does not prohibit selling.
--
With all that said - it's a really niche product and i'm glad it exists and at that price - as acquiring/making an XT seem to be near impossible task to me.

That is an interesting analysis. I think it is quite possible that "Cycle Logic", "Hardcore Expert" and Shan Zhongyu are the same person, or a team including Shan Zhongyu.
Possibly that one person or a small team developed the system and then someone else builds these systems, and yet another company or companies sell that.
This approach seems to be pretty common among Chinese companies.

Regarding understanding of the BIOS and comments in Chinese, I did this analysis half a year ago: https://forum.vcfed.org/index.php?threads/chi … 52/post-1318112
A few interesting points:
- The Book 8088 specific modifications were minimal and didn't show good understanding of the working of the BIOS.
- There are a few workarounds to make Book8088 work. Particularly, it appears that early Book 8088 didn't have speaker control bits in port 61h readable.
- They did not take advantage of the configurability of the BIOS. For example, they commented out or removed chunks of code that was there to support other platforms (Xi 8088, FE2010A). They could have used %ifdefs instead fairly easily.
- There are a lot of comments in Chinese in the AT-style keyboard controller code, that is not used in Book 8088. I don't know why they went through a trouble of documenting it and then not using it. Another piece of code with Chinese comments is delay.inc, and that one has "SHAN" name in it, likely referring to Shan Zhongyu.

BTW, if you make changes to 8088 BIOS, that you feel will be useful to others, please feel free to submit pull requests in GitHub

Reply 243 of 339, by Jo22

User metadata
Rank l33t++
Rank
l33t++

They could have used %ifdefs instead fairly easily.

I can partly understand they didn't.
Last time I tried to use/understand them, I ended up being totally confused.

That was with a hacked version of XTIDE Universal BIOS, I believe (hardware was XT-CF Lite something).

The story was I wanted to recompile it for NEC V20 support all by myself, to increase performance.
Because, the hardware was non-standard and didn't work with original XUB, which exists in V20 flavors.

Anyway, it just came to mind.
I've come to terms with the fact that 8088 PCs are very sluggish by nature.
Necessity has become a virtue, so to speak.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 244 of 339, by n0p

User metadata
Rank Member
Rank
Member
SergeK wrote on 2023-12-07, 20:06:
That is an interesting analysis. I think it is quite possible that "Cycle Logic", "Hardcore Expert" and Shan Zhongyu are the sa […]
Show full quote
n0p wrote on 2023-12-04, 18:05:
As for origins on Book8088 - i would like to summirize what i personally know so far: Done by a person or a team named "Cycle Lo […]
Show full quote

As for origins on Book8088 - i would like to summirize what i personally know so far:
Done by a person or a team named "Cycle Logic"
Knows how to program STM microcontrollers (STC8G2K32S4), controls keyboard, Turbo, Mute and some leds - found by Retroplayer @ VCFED
Knows CLPD programming quite good- XT-IO and CGA logic are there, and COM/LPT IO were added on V2 fast
Did a good study on Sergey's BIOS (not only to remove copyrights 😀) - look at the number of Chinese comments in published archives
Both DZT and Hardcore Expert guys @ Aliexpress are not the authors. Both took time to answer simplest tech questions and referred to sending those to "technicians"
Tend to keep production price to a most minimum - that might answer EPROM vs EEPROM question
PR:
Aliexpress store managers are friendly and can help if exact problem is presented (i use two-way Google translate to make sure it says what i mean)
Promised to change BIOS in V2 - did not
Provided wiping copyrights reason is nonsensical - GPL does not prohibit selling.
--
With all that said - it's a really niche product and i'm glad it exists and at that price - as acquiring/making an XT seem to be near impossible task to me.

That is an interesting analysis. I think it is quite possible that "Cycle Logic", "Hardcore Expert" and Shan Zhongyu are the same person, or a team including Shan Zhongyu.
Possibly that one person or a small team developed the system and then someone else builds these systems, and yet another company or companies sell that.
This approach seems to be pretty common among Chinese companies.

Regarding understanding of the BIOS and comments in Chinese, I did this analysis half a year ago: https://forum.vcfed.org/index.php?threads/chi … 52/post-1318112
A few interesting points:
- The Book 8088 specific modifications were minimal and didn't show good understanding of the working of the BIOS.
- There are a few workarounds to make Book8088 work. Particularly, it appears that early Book 8088 didn't have speaker control bits in port 61h readable.
- They did not take advantage of the configurability of the BIOS. For example, they commented out or removed chunks of code that was there to support other platforms (Xi 8088, FE2010A). They could have used %ifdefs instead fairly easily.
- There are a lot of comments in Chinese in the AT-style keyboard controller code, that is not used in Book 8088. I don't know why they went through a trouble of documenting it and then not using it. Another piece of code with Chinese comments is delay.inc, and that one has "SHAN" name in it, likely referring to Shan Zhongyu.

BTW, if you make changes to 8088 BIOS, that you feel will be useful to others, please feel free to submit pull requests in GitHub

Thanks! I wish i could see that post earlier 😀
--
Regarding pull requests - 3-Demon and Turbo Basic works now (it's where it started for me 😀), that might be the main benefit now. I doubt that main release would benefit from ADPCM compressed PWM sound or CH375 boot support. But i do plan resync to your master branch at some point and redo the diffs there to stay in line.
--
XT-IDE basic built-in support - my test code was working perfectly on PCem, but not on Book. Digging into that i've found out that Book uses XT-CF modification of it and some port I/O differs.
For me XT-IDE code is not readable, it's done with knowledge of interfacing different cards and i'm certainly not the one. Though i found main speed boost part on 186 - it does rep insw from 300h (300h-301h) instead of in/stosw on 8088 aaand it might lead to a simplier XT-IDE variant for Book.

Reply 245 of 339, by n0p

User metadata
Rank Member
Rank
Member
SVHS wrote on 2023-12-06, 06:07:
Just came across this. Would PS/2 keyboard work? […]
Show full quote

Just came across this. Would PS/2 keyboard work?

https://www.aliexpress.com/item/1005006028425189.html

Also a rather obscure cable for an XT keyboard that seems to support a serial connection

https://www.reddit.com/r/modelm/comments/gkm7 … omment/fqsatxy/

Keyboard controller implemented in Book8088 won't support any kind of external one, sorry.
You might try writing a seral keyboard driver, and it will work in some cases, but i doubt it will be useful at all.

As for USB port - keyboard needs to set a specific port to specific values and fire interrupt. As USB chip interrupt pin is not connected anywhere, even mouse is not exactly possible, though mouse support is more realistic than keyboard.

Reply 246 of 339, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

There are already ways to use serial input under DOS but anything that's not DOS legal breaks it. Simplest is to pipe com port to console. Probably fine if you wanted to hammer a load of text into Edit or something.

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.

Reply 247 of 339, by Jo22

User metadata
Rank l33t++
Rank
l33t++
BitWrangler wrote on 2023-12-08, 14:49:

There are already ways to use serial input under DOS but anything that's not DOS legal breaks it. Simplest is to pipe com port to console. Probably fine if you wanted to hammer a load of text into Edit or something.

Later versions of DOS can use CTTY command, so no COPY CON is needed. It used to be helpful to operate a DOS system via serial terminal.
This was sometimes done by programmers who ran out of memory with their compiler when working with large projects.
By removing any video adapter and installing an UMB card, about 900KB of conventional memory can be available.
If the BIOS still boots. Enough to run command line based compilers like dBase translator, Clipper or a C compiler.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 248 of 339, by n0p

User metadata
Rank Member
Rank
Member

So.
After writing code that works absolutely good in PCem, but not on Book
After being pointed by Krille to a XTCF include.
Figuring out that XT-CF ports are shifted up by one bit
Finding out that card is in 16 bit mode on start and should be switched to 8bit PIO
...
First proof of CF card access from BIOS concept is attached

Attachments

Reply 249 of 339, by SVHS

User metadata
Rank Newbie
Rank
Newbie
Jo22 wrote on 2023-12-08, 16:09:
Later versions of DOS can use CTTY command, so no COPY CON is needed. It used to be helpful to operate a DOS system via serial t […]
Show full quote
BitWrangler wrote on 2023-12-08, 14:49:

There are already ways to use serial input under DOS but anything that's not DOS legal breaks it. Simplest is to pipe com port to console. Probably fine if you wanted to hammer a load of text into Edit or something.

Later versions of DOS can use CTTY command, so no COPY CON is needed. It used to be helpful to operate a DOS system via serial terminal.
This was sometimes done by programmers who ran out of memory with their compiler when working with large projects.
By removing any video adapter and installing an UMB card, about 900KB of conventional memory can be available.
If the BIOS still boots. Enough to run command line based compilers like dBase translator, Clipper or a C compiler.

What about PCAnywhere? Version 4.5 has support for DOS and Windows. Could this be routed to work over serial or Ethernet instead of a modem?

Reply 250 of 339, by Jo22

User metadata
Rank l33t++
Rank
l33t++
SVHS wrote on 2023-12-09, 03:41:

What about PCAnywhere? Version 4.5 has support for DOS and Windows. Could this be routed to work over serial or Ethernet instead of a modem?

Hi, I haven't tried so far. PC-Tools' Communte does seems work with CGA/EGA/VGA over V.24 line, though.
I've made a litte test a while ago. PC Anywhere should do, as well, I suppose.
A quick video can be seen here. I hope it's okay to mention.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 251 of 339, by SVHS

User metadata
Rank Newbie
Rank
Newbie
Jo22 wrote on 2023-12-09, 14:40:
Hi, I haven't tried so far. PC-Tools' Communte does seems work with CGA/EGA/VGA over V.24 line, though. I've made a litte test […]
Show full quote
SVHS wrote on 2023-12-09, 03:41:

What about PCAnywhere? Version 4.5 has support for DOS and Windows. Could this be routed to work over serial or Ethernet instead of a modem?

Hi, I haven't tried so far. PC-Tools' Communte does seems work with CGA/EGA/VGA over V.24 line, though.
I've made a litte test a while ago. PC Anywhere should do, as well, I suppose.
A quick video can be seen here. I hope it's okay to mention.

This is exactly what I'm looking for, particularly the use of Windows 2.x.

Does a mouse need to be enabled on the host end? With only one COM port, it would be impossible to support both a mouse and a null modem on the Book 8088. An ethernet setup would be idea1. How much ram does Commute take up on the host side?

Reply 252 of 339, by n0p

User metadata
Rank Member
Rank
Member

Book8088 BIOS v1.0.5

Main:
BIOS settings support for Book8088
I'm using boot sector of CF card for that so be warned.
There's checks to not do save if offset 190h doesn't contain zeroes, but anyway writing there is dangerous.
So make backups 😀
Floppy emulation routine via flash drive is altered, as original floppy controller support is back.
I cannot test floppy support, but it should work.
Options supported:
Original - floppy drive type, memory test, extension scan.
Added - boot sound, USB floppy emulation enforcement (accessing drive A will always try to access USB stick regardless of it's presence at boot)
Setting are also using two bytes in reserved BDA, but that should be safe.

I consider that as beta, though i tested everything i could.

Attachments

Reply 253 of 339, by jhhoward

User metadata
Rank Newbie
Rank
Newbie

I recently ordered a Book 8088 V2 in the Black Friday sale and just received it. I've been experimenting with making a build of Wolfenstein 3D targeting the V20 CPU instead of a 286. To speed up rendering I've reduced horizontal resolution by 1/4 which reduces the number of rays required for raycasting. The VGA hardware lets you do a single write that can update four pixels at a time so this also helps performance. I've attached a photo of it running on hardware.

One interesting thing that I've discovered is that the 'fade out' routine currently looks broken. It works by reading the VGA palette values and then interpolating the RGB values to a given colour (i.e. fade to black or fade to red). The problem is that the values returned when reading the palette appear to be incorrect. For reference, here is the C function from Wolf3D to get the palette:

#define PEL_READ_ADR		0x3c7
#define PEL_DATA 0x3c9

void VL_GetPalette (byte far *palette)
{
int i;

outportb (PEL_READ_ADR,0);
for (i=0;i<768;i++)
*palette++ = inportb(PEL_DATA);
}

Perhaps a bug in the VGA implementation?

Attachments

Reply 254 of 339, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Well done! On a colour CRT with a large dot pitch (0.4mm, Commodore 1084) that low resolution graphics would look fine, actually.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 255 of 339, by KarlG

User metadata
Rank Newbie
Rank
Newbie

Very impressive! I'm wondering if it's faster than the CGA Wolfenstein 3D port on the same hardware? Sounds like it would come out to the same number of bytes for the display with your method, but simpler than having 4 pixels per byte on CGA.

Reply 256 of 339, by Yrouel

User metadata
Rank Newbie
Rank
Newbie
n0p wrote on 2023-12-12, 19:24:

Book8088 BIOS v1.0.5

You should consider making pull requests to the main repo at least for the features you think are more mature and stable while keeping your repo and releases for the more experimental stuff.
For example it would be nice to have floppy emulation merged into main

Reply 257 of 339, by n0p

User metadata
Rank Member
Rank
Member
Yrouel wrote on 2023-12-14, 12:22:
n0p wrote on 2023-12-12, 19:24:

Book8088 BIOS v1.0.5

You should consider making pull requests to the main repo at least for the features you think are more mature and stable while keeping your repo and releases for the more experimental stuff.
For example it would be nice to have floppy emulation merged into main

It's not possible ATM. Not only because i messed up with git at some point, but because floppy emulation for example requires hacking into main int 13h code in a not nice way, though i did attempt to tidy that up in latest commits. On the other side, XT-CF / Sound modules can be easily integrated.
Anyway, not right now.

Reply 258 of 339, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie
jhhoward wrote on 2023-12-13, 11:28:
One interesting thing that I've discovered is that the 'fade out' routine currently looks broken. It works by reading the VGA pa […]
Show full quote

One interesting thing that I've discovered is that the 'fade out' routine currently looks broken. It works by reading the VGA palette values and then interpolating the RGB values to a given colour (i.e. fade to black or fade to red). The problem is that the values returned when reading the palette appear to be incorrect. For reference, here is the C function from Wolf3D to get the palette:

#define PEL_READ_ADR		0x3c7
#define PEL_DATA 0x3c9

void VL_GetPalette (byte far *palette)
{
int i;

outportb (PEL_READ_ADR,0);
for (i=0;i<768;i++)
*palette++ = inportb(PEL_DATA);
}

Perhaps a bug in the VGA implementation?

What's wrong with that? The outport sets the palette index to 0, then it auto-increments after reading every 3 bytes (R/G/B).

Reply 259 of 339, by Yrouel

User metadata
Rank Newbie
Rank
Newbie
n0p wrote on 2023-12-14, 12:52:

It's not possible ATM. Not only because i messed up with git at some point, but because floppy emulation for example requires hacking into main int 13h code in a not nice way, though i did attempt to tidy that up in latest commits. On the other side, XT-CF / Sound modules can be easily integrated.
Anyway, not right now.

This is unfortunate, at the moment doing a clean install of DOS (and Windows) on the Book8088 itself is a bit of a pain, I ended up having to use an external ISA controller and a Gotek while builtin floppy emulation would solve that.
Perhaps you can work with Sergey to implement the feature in a nicer way?