> I know I know, don't write directly to the screen...
Actually, the mantra is "Don't write directly to the screen. But if you do,
refuse to run on any device you haven't explicitly tested on." Before doing
anything else, you should add checks to your program so that it runs only on the
devices you've tested it on (I think that the Feature Manager in 3.5 has some
OEM values you can check). Also, step a little closer to the Palm OS Emulator
next time and test out your application on all the devices it supports.
As for your crash, you're manipulating the Dragonball LCD controller base
address. However, the Palm IIIc doesn't use the Dragonball LCD controller.
This should be easily inferred from the fact that the Palm IIIc is a color
device, which the DragonballEZ doesn't support. Ergo, a different controller is
being used.
Now, as a card (well, badge) carrying Palm employee, I probably shouldn't give
any specific details on the controller. In fact, I think David Fedor's posting
sums it up nicely:
<http://www.escribe.com/computing/pcpqa/m13791.html>
However, all the information you need *can* be determined by net resources...
:-)
-- Keith Rollin
-- Palm OS Emulator engineer
Tim Charron <[EMAIL PROTECTED]> on 10/19/2000 12:09:25 PM
Please respond to "Palm Developer Forum" <[EMAIL PROTECTED]>
Sent by: Tim Charron <[EMAIL PROTECTED]>
To: "Palm Developer Forum" <[EMAIL PROTECTED]>
cc: (Keith Rollin/US/PALM)
Subject: Writing directly to screen
I know I know, don't write directly to the screen...
However, I have an app that does just this. It works wonderfully
on every device I've ever tried it on. Now, a user in a distant land
tells me that it causes a fatal error on his Palm IIIc. I don't have
a IIIc, and can't really diagnose it.
The app sets the screen bit depth to 1 before writing to the screen,
but it still dies with a fatal. I don't like when people ask vague
questions without providing code, so here's the non-standard
code that doesn't seem to work on the IIIc:
WinScreenMode(winScreenModeSet, NULL, NULL, 1, NULL);
#define SCREEN_BASE (*(long*)0xfffffa00)
dest = (UInt8 *)(*SCREEN_BASE);
for ( i=0;i<20*160;i++ ) *dest++ = 0;
Should I allocate my own 3200 bytes of memory, and then set the
video buffer myself, as in:
*SCREEN_BASE = my_memory_block;
?
The "Gray matters" paper in the knowledge base makes me
think that this is possible with minimal work. Does anyone here
write directly to the IIIc screen?
Thanks
-- Tim
--
For information on using the Palm Developer Forums, or to unsubscribe, please
see http://www.palmos.com/dev/tech/support/forums/
--
For information on using the Palm Developer Forums, or to unsubscribe, please see
http://www.palmos.com/dev/tech/support/forums/