jhhoward / MicroWeb

DOS Web browser for 8088 class machines
GNU General Public License v2.0
436 stars 31 forks source link

Support 640x400 extended CGA graphics mode #22

Closed mlaux closed 12 months ago

mlaux commented 1 year ago

This PR adds support for the 640x400 graphics mode available on the Olivetti M24, AT&T PC 6300, Compaq Portable II/III, and Toshiba T3100 (and maybe others?). This mode is a mash up between ordinary CGA and Hercules, with the four-page interlacing behavior of Hercules but pretty much everything else from CGA.

I don't know a good way to autodetect the availability of this mode, so I added two new command line options (-o for most of the machines, which use BIOS mode 0x40, and -t3100 for the Toshiba, which uses BIOS mode 0x74). Suggestions welcome on how to make this better!

Comparison with the existing VGA support:

Screenshot from 2023-05-19 15-55-54

And on a real Toshiba T3100:

t3100-small

Future improvements could include refactoring Hercules support to reuse more code from CGA, kind of like I did for this Olivetti support.

mlaux commented 12 months ago

Any interest in this PR/anything I can do to get this merged?

jhhoward commented 12 months ago

This looks fantastic, thank you for contributing to the project. I was hoping to test on my Toshiba laptop that supports this mode but unfortunately the machine is dead!