[Coco] SDCC and other C topics

L. Curtis Boyle curtisboyle at sasktel.net
Fri Mar 18 23:49:27 EST 2005


    If you remember the task 0/1 sets of GIME MMU registers, the main OS9  
system uses task 0, and GRFDrV and everything else use task 1. GRFDRV has  
it's own 64K map... 8 K for data, 8K for Get/put buffer mapping, 32K for  
screen mapping, and 8K for actual grfdrv code... leaving an 8K block that  
is never mapped in or used. That's why some hacks allowed the x225  
modes... there was all this extra room for it. Myself, I wanted to make  
the GUI and graphics primitives a lot more extensive (and did some of this  
within the 8K GRFDRV code block... like the 224 character fonts and the  
filled ellipse/circle (the latter based on, but developed independently  
from, the Level II upgrade).
     Basically, whenever GRFDRV is required, it jumps to a routine in the  
FE00-FEFF block of RAM that stays in place between all maps, and there is  
hardcoded routiens to swap the GRFDRV MMU set in, and running programs's  
MMU set in (as well as simply switching to Task 0 for the main OS-9  
Kernal). Things would have been better if Tandy had allow 3 or 4 separate  
MMU set lists; GRFDRV could have been swapped in/out with a single store  
into the task register select, instead of having to preload all of the MMU  
registers first and then switching tasks.

On Fri, 18 Mar 2005 14:54:12 -0600, Boisy G.Pitre <boisy at boisypitre.com>  
wrote:

>
> On Mar 18, 2005, at 1:12 PM, L. Curtis Boyle wrote:
>
>>     Actually, I wanted to go further and move grfdrv from it's current  
>> location, to allow an extra 8K contiguous block to use for GRFDRV code  
>> itself. The other option was to use an extra 8K for either Get/put  
>> buffer manipulation, or a higher res screen (say, x225 instead of  
>> x199/200). I was more steering towards having an extra 8K of graphics  
>> driver code, so one could add all kinds of stuff, or even more stuff  
>> out of Windint and into grfdrv to free up more system RAM in Task #0.
>
> Curtis,
>
> Can you explain how GRFDRV uses memory?  Does it have its own entire 64K  
> address space or what?  I was never too clear on this.
> --
> Boisy G. Pitre
> E-Mail: boisy at boisypitre.com
> Mobile: (337) 781-3997
> Web: www.boisypitre.com
>
>



-- 
L. Curtis Boyle



More information about the Coco mailing list