[Coco] Nitros9 and Set Status Call SS.AScrn

Walter Zambotti zambotti at iinet.net.au
Wed Apr 10 22:03:05 EDT 2019


Thanks Bill.

I did try that!

I have a wait in the code that waits until a key is pressed, giving me plenty of time to cycle through all the windows. 

I also have waits before the allocate and from another shell I can see the mfree memory free amount decreases by 32K after the screen is allocated and increases by 32k when I de-allocate the screen.

In the mdir listing  I see:

CoVDG
CoWin
GRFDRV

What is CoGRF?

Walter

-----Original Message-----
From: Coco [mailto:coco-bounces at maltedmedia.com] On Behalf Of Bill Pierce via Coco
Sent: Thursday, 11 April 2019 9:56 AM
To: coco at maltedmedia.com
Cc: Bill Pierce <ooogalapasooo at aol.com>
Subject: Re: [Coco] Nitros9 and Set Status Call SS.AScrn

I'm not sure but you may just have to use the <CLEAR> key to go to the window. I'm not sure if if the call selects the window or not.
 
 
 
-----Original Message-----
From: Walter Zambotti <zambotti at iinet.net.au>
To: 'CoCoList for Color Computer Enthusiasts' <coco at maltedmedia.com>
Sent: Wed, Apr 10, 2019 9:33 pm
Subject: Re: [Coco] Nitros9 and Set Status Call SS.AScrn

Ok finally understood!

So I loaded v1.dw and changed the code to open /v1 instead.

It now successfully allocates the screen!!!

The SS.DScrn call also succeeds but the window is not seen!

So is there anything else needed?  I have CoVDG and v1.dw loaded.

Walter

-----Original Message-----
From: Coco [mailto:coco-bounces at maltedmedia.com] On Behalf Of L. Curtis Boyle
Sent: Thursday, 11 April 2019 12:47 AM
To: CoCoList for Color Computer Enthusiasts <coco at maltedmedia.com>
Subject: Re: [Coco] Nitros9 and Set Status Call SS.AScrn

Well… technically, if you change the high bit on a /Wx descriptor’s TYPE byte, you can “make it” a VDG screen. But everything else Bill says applies. SS.AScrn and SS.Dscrn are uniquely VDGINT (now CoVDG) based calls. They were meant for arcade games that needed to directly access the screen, and I think were put into the VDG driver because the old level 1 graphics screens also allowed direct screen writes. CoWin (formerly GrfInt/WindInt) and GRFDRV was meant for more API (system call) based graphics. Personally, I think the direct screen modes should have been in the latter, so that you could combine the two (do drawing, fonts, etc. through the “normal” system, but allow direct screen access at the same time. Bill Nobel did add a system call to help facilitate this into NitrOS-9 back in it’s commercial days, that is still there - the SS.ScInf GetStat call, which returns the # of 8K blocks the screen uses, what MMU block # the screen starts at (graphics screens are always contiguous blocks, so getting the size and the start block # lets you know which blocks are used), and even the current working area X/Y start/sizes (so you can do direct screen writes even within a window vs the whole screen). You still have to map those blocks in using existing calls.

L. Curtis Boyle
curtisboyle at sasktel.net

TRS-80 Color Computer Games website
http://www.lcurtisboyle.com/nitros9/coco_game_list.html



> On Apr 10, 2019, at 3:25 AM, Bill Pierce via Coco <coco at maltedmedia.com> wrote:
> 
> Walter, I don't think you were paying attention in class... LOL The SS.AScrn call CANNOT be used on a CoWin or CoGrf screen (i.e. /Wx). It has to be a CoVDG screen (i. e. /Vx). So yes, that would be an illegal service request to CoWin or CoGrf.
> And yes, the path would be the window path.
> 
> 
> 
> -----Original Message-----
> From: Walter Zambotti <zambotti at iinet.net.au 
> <mailto:zambotti at iinet.net.au>>
> To: 'CoCoList for Color Computer Enthusiasts' <coco at maltedmedia.com 
> <mailto:coco at maltedmedia.com>>
> Sent: Wed, Apr 10, 2019 2:00 am
> Subject: Re: [Coco] Nitros9 and Set Status Call SS.AScrn
> 
> Robert/Bill.
> 
> What kind of path will it need because at the moment I'm doing this
> 
> struct registers regs;
> int wpath;
> 
> wpath = open("/w", 3);
> regs.rg_a = wpath;
> regs.rg_b = SS_ASCRN;
> regs.rg_x = 4;
> 
> if (_os9(I_SETSTT, ®s) == -1)
> {
>  printf ("Bad SS.AScrn Err = %d\n", regs.rg_b); }
> 
> And that always returns an error of #208.  Illegal service request.
> 
> I get this error with Basic09 when trying to use SET/GET_Stat if I forget to leave some free mem for basic09.
> 
> But I'm doing this from C!
> 
> And I know the open "/w" has worked because I can then do a dwset and a window does appear!
> 
> But if the SS.AScrn is working then I shouldn't need to do a dwset!
> 
> Walter
> 


--
Coco mailing list
Coco at maltedmedia.com
https://pairlist5.pair.net/mailman/listinfo/coco


--
Coco mailing list
Coco at maltedmedia.com
https://pairlist5.pair.net/mailman/listinfo/coco

--
Coco mailing list
Coco at maltedmedia.com
https://pairlist5.pair.net/mailman/listinfo/coco



More information about the Coco mailing list