[cc65] TGI mode switch without tgi_clear()

From: Oliver Schmidt <ol.sc1web.de>
Date: 2010-01-24 16:33:02

on the Apple2 the RAM areas used to store the text screen content and
hires graphics screen content are disjunct. Therefore it makes sense
to be able to switch between text and graphics mode without clearing
neither screen.

One of many usecases are programs to visualize some data that allow to
switch between the data editor and the visualization result.

My first question is if this sort of an Apple2 specific feature or
rather a common option for cc65 targets with TGI driver(s).

Up to this point you might think the viable options are:
a) a new "official" TGI API allowing to switch between graphics and text or
b) just an Apple2 specific tgi_ioctl() allowing the same

However there's a special usecase that makes things somewhat more difficult:

The Apple2 hires screen RAM area lies unfortunately "in the middle" of
the RAM typically used by cc65 programs. I'd like to add another
option to the already existing ones to deal with that problem: A
secondary linker config file that uses the linker 'fill' and/or
'start' features to create programs that start below the hires screen
RAM and just "load over" the hires screen RAM.

In that scenario it would of course be a pity to have 8kB of zeros in
the program file. Rather one would want to include a splash screen or
some immutable background screen into the program file. So far so good

But how to switch into the graphics mode and show the content already
in the hires screen RAM if tgi_init() obligatory calls tgi_clear() ?
Not calling tgi_init() at all but the rather the "pure" mode swith
function discussed above doesn't seem clever as tgi_init() initializes
quite some stuff.

So at this point my actual proposal is to _not_ have an additional
switch function whatsoever but have tgi_init() _not_ call tgi_clear().
That would allow to switch between text and graphics mode using
tgi_init() and tgi_done().

Another option might be to add a parameter to tgi_init() controlling
the call of tgi_clear().

What are your opinions?

Best, Oliver
To unsubscribe from the list send mail to majordomo@musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
Received on Sun Jan 24 16:33:19 2010

This archive was generated by hypermail 2.1.8 : 2010-01-24 16:33:22 CET