Screen clear code needs improvement, my Gateway logo obscures menu

Started by fcassia, January 09, 2010, 20:07:26 PM

Previous topic - Next topic

fcassia

Hi there!

First a short introduction, so you can see where I'm coming from (or actually, the hardware I'm trying to use Plop boot manager on).

I have a Gateway Connected Touchpad (hereinafter referred to as GCTP).
It was developed back in y2000. Manufactured by Gateway Computer, sponsored by AOL.

It was a locked down system consisting on a TRANSMETA CRUSOE (x86 compat) TM4200 CPU, 64MB of RAM, USB 1.x, a MiniPCI slot, and a CF slot. Thanks to an IDE header, people in the modding scene liked to buy the $99 GCTP (often used on eBay) then solder an IDE header and run a 2.5" IDE laptop HD on it with Win98. Anything above Win98SE gave the unit the fits.

Also, the unit was notorious for NOT letting people get into the BIOS. Apparently the guys at Gateway LOCKED DOWN the BIOS so getting to the CMOS screen is not possible.

As a result, the unit can't change boot order, boot from USB (probably code isn't in the BIOS to begin with), or accept any Compactflash card larger than 512MB (probably due to hardcoded CHS/LBA settings).

Well, since the best I could get installed on a CF card what I thought of doing is installing PLOP on a 32MB CF, then using it to boot a Pen drive from USB 1.x (I will later add a USB 2.0 controller to the MiniPCI bus, but first things first(.

Well, it should work, except that I CANNOT SEE the PLOP menu.

Apparently Gateway set up the unit Bios so teh Gateway logo is left on the screen and all on screen messages are supressed. If you boot Win98 (say from a 2.5" HD) you only see the transition from the ("semi-graphics mode") Gateway bios logo to the Win98 logo, no text messages.

When you load Plop, however, you know PLOP has been loaded, IF you set it to use 80x50 text mode and no animation...

IF you set 80x50 mode with custom fonts, animation, 640x480, or anything higher, what Plop does is REBOOT the unit.

So definitely there's somethign about the way PLOP boot manager handles graphics switching that the GCTP BIOS doesn't like.

QUESTION: is there ANY way to have a "drastic screen clearing" code to the beginning of PLOP so that it makes 100% sure that the dreaded Gateway logo is erased and the display set to the basic text mode (80x25, like doing a "MODE CO80,25" from a dos prompt) BEFORE it loads the current code?.

Using VESA 1.0 calls would be advisable, I think, althought I'm not even sure this unit has VESA VBE calls in place (I could load dos and check, if you tell me what tools to use).

Thanks
FC

Elmar

hmm,
i use for text mode and graphic mode the interrupt 10h of the bios. i am wondering that you cannot see the text mode version of the boot manager.

regard
elmar

fcassia

Quote from: Elmar on January 10, 2010, 21:38:27 PM
hmm,
i use for text mode and graphic mode the interrupt 10h of the bios. i am wondering that you cannot see the text mode version of the boot manager.

regard
elmar

Hi Elmar,

I don´t have the knowledge to ASM debug your code. So I can only tell you what i see. If I configure Plop for text mode with no countdown, the logo stays there. (So I assume it´s waiting for input).

If I select any graphics mode (wether I enable countdown or not) a few seconds after the gateway logo, I get a reboot, and the logo, and a reboot, and so on.

Googling around I found this about the VESA 1.2 spec (I will later today run several SVGA information tools to see what I can come up with with regards to this system´s BIOS support for VESA, and what level).

In the meantime I wonder if perhaps the BIOS on this systems displays the logo using the older VGA calls instead of VESA?:

---------------------------
"However, two standard VGA BIOS functions are affected by the VESA extension. These are Function 00h (Set video mode) and Function 0Fh (Read current video state).  VESA-aware applications will not set the video mode using VGA BIOS function 00h.  Nor will such applications use VGA BIOS function 0Fh.  VESA BIOS functions 02h (Set Super VGA mode) and 03h (Get Super VGA mode) will be used instead.

However, VESA-unaware applications (such as old Pop-Up programs and other TSRs, or the CLS command of MS-DOS), might use VGA BIOS function 0Fh to get the present video mode.  Later it may call VGA BIOS function 00h to restore/reinitialize the old video mode.

To make such applications work, VESA recommends that whatever value returned by VGA BIOS function 0Fh (it is up to the OEM to define this number) should be used to reinitialize the video mode through VGA BIOS function 00h.  Thus, the BIOS should keep track of the last Super VGA mode in effect."
---------------------------
http://docs.ruudkoot.nl/vesasp12.txt

Incidentally, I managed to install the Docsboot boot manager  (which was my favourite boot manager in the late 1990s when I ran OS/2) on this system and it DOES show. So I really don´t know what to think

http://www.docsware.com/docsboot/

Why does Docsboot show and Plop doesn´t?. Clearly there´s something going on in the way Plop interfaces with the graphics display that makes teh Gateway logo NOT go away.

Thoughts? Comments?

If, perhaps you could create a custom build of Plop that uses normal text mode (80x25) and does a screen-clear before calling your existing screen init routines, we could have a clearer idea of what´s going on?.

Best.

FC
FC

Elmar

Quote from: fcassia on January 10, 2010, 22:13:27 PM
"However, two standard VGA BIOS functions are affected by the VESA extension. These are Function 00h (Set video mode) and Function 0Fh (Read current video state).  VESA-aware applications will not set the video mode using VGA BIOS function 00h.  Nor will such applications use VGA BIOS function 0Fh.  VESA BIOS functions 02h (Set Super VGA mode) and 03h (Get Super VGA mode) will be used instead.

However, VESA-unaware applications (such as old Pop-Up programs and other TSRs, or the CLS command of MS-DOS), might use VGA BIOS function 0Fh to get the present video mode.  Later it may call VGA BIOS function 00h to restore/reinitialize the old video mode.

To make such applications work, VESA recommends that whatever value returned by VGA BIOS function 0Fh (it is up to the OEM to define this number) should be used to reinitialize the video mode through VGA BIOS function 00h.  Thus, the BIOS should keep track of the last Super VGA mode in effect."

again a hmm.
i use 4f02h, to init the graphics mode. but i will take a look at docsbooks tomorrow. today, my beer is empty so lets hear later.

regards
elmar

fcassia

Quote from: Elmar on January 10, 2010, 22:25:03 PM
Quote from: fcassia on January 10, 2010, 22:13:27 PM
"However, two standard VGA BIOS functions are affected by the VESA extension. These are Function 00h (Set video mode) and Function 0Fh (Read current video state).  VESA-aware applications will not set the video mode using VGA BIOS function 00h.  Nor will such applications use VGA BIOS function 0Fh.  VESA BIOS functions 02h (Set Super VGA mode) and 03h (Get Super VGA mode) will be used instead.

However, VESA-unaware applications (such as old Pop-Up programs and other TSRs, or the CLS command of MS-DOS), might use VGA BIOS function 0Fh to get the present video mode.  Later it may call VGA BIOS function 00h to restore/reinitialize the old video mode.

To make such applications work, VESA recommends that whatever value returned by VGA BIOS function 0Fh (it is up to the OEM to define this number) should be used to reinitialize the video mode through VGA BIOS function 00h.  Thus, the BIOS should keep track of the last Super VGA mode in effect."

again a hmm.
i use 4f02h, to init the graphics mode. but i will take a look at docsbooks tomorrow. today, my beer is empty so lets hear later.

regards
elmar

Idea: implement a "set debug mode" in the config screen so Plop can be configured on a working system, the HD (CF card in my case) connected to the "trouble system" and then on the next boot it uses function 0Fh to "detect current video state" and writer down the returned values to some special sector on the disk, which can then be retrieved on a working system using "read debug data".

I know, it sounds like some coding involved.... :)
FC

Elmar

i don't know what sense it has to know the info of the current video state