640-KB / GLaBIOS

A modern, scratch-built, open-source (GPLv3) alternative ROM BIOS for PC, XT, 8088 Clone or Turbo PCs.
https://glabios.org/
GNU General Public License v3.0
249 stars 13 forks source link

CGA Fast Scrolling #4

Open 640-KB opened 2 years ago

Maxx1234 commented 1 year ago

An interesting solution was FlickerFree (https://winworldpc.com/product/flickerfree/10) - altough it does not appear to work with programs that bypass BIOS video routines...

640-KB commented 1 year ago

An interesting solution was FlickerFree (https://winworldpc.com/product/flickerfree/10) - altough it does not appear to work with programs that bypass BIOS video routines...

This is fascinating - never come across this one before. It was written by Steve Gibson, the wizard behind SpinRite, so no wonder it's good. It is indeed faster than standard BIOS routines which I'd guess is a combination of clever coding as well as having more byte space to be able to handle specific cases in separate code branches. It's already a challenge to implement all of the INT 10h features and also stay within the restricted code size in an 8K BIOS, so you end up with some "jack of all trades" routines that have to handle lots of different situations (so could end up doing unnecessary work). Also since the INT 10h code is now running in RAM it can, in many cases, execute faster than it would in ROM so you end up with effectively video ROM shadowing out of the gate.

That said, it does not seem to implement "fast scrolling" the way I was envisioning. This feature is a "trick" where you don't actually need to copy CGA memory when scrolling a line, rather you just change where the video adapter points in its memory. This breaks a number of things by design, so would be a compatibility issue. It's really intended to be a "cool" optional feature, not necessarily a general replacement.

Thanks for sharing this - it's really cool!

640KB