<div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 1 Feb 2024 at 14:34, John Elliott wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">You can get the number of planes using vq_extnd(), but I don't think<br>
there's any way to determine the native pixel format used by the screen<br>
(short of drawing on the screen, using <span class="gmail_default" style="font-family:courier new,monospace"></span>vro_cpyfm() to read the bits, and<br>
making deductions from what you get back). Back when GEM was being sold<br>
commercially, almost everything was either mono or 16-colour in 4<br>
bitplanes; I think the one 256-colour driver was for the 8514/a, which<br>
used 8 bitplanes.<br></blockquote><div><br></div><div><div style="font-family:courier new,monospace" class="gmail_default">
Fortunately GEM is bitplane based plus one (I think) 8bit packed-pixel format,
It seems recognizing the screen format would not be a difficult task. I will try to use vro_cpyfm or vr_trnfm (to transform from standard to device format).<br></div><br></div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

The 256-colour drivers I wrote use packed pixels on the display, but<br>
still present video memory to vro_cpyfm() as eight planes. The older<br>
ones do a lot of shifts and rotations to do this (so the first "plane"<br>
maps to bit 0 of every byte, the second "plane" maps to bit 1 of every<br>
byte and so on). The newer ones avoid this by saying plane 0 is bytes<br>
0,8,16,24... of video RAM, plane 1 is bytes 1,9,17,25... and so on.<br></blockquote><div><br></div><div style="font-family:courier new,monospace" class="gmail_default">Do you mean "sd256.VGA" - I downloaded it from somewhere but now I'm not able to find it in Google.<br></div><div style="font-family:courier new,monospace" class="gmail_default">Does this mean the screen data in RAM is in linear format? </div><div style="font-family:courier new,monospace" class="gmail_default">A) </div><div style="font-family:courier new,monospace" class="gmail_default">    1st byte - 1st pixel, 2nt byte - 2nd pixel, 3rd byte - third pixel, and so on.<br></div><div style="font-family:courier new,monospace" class="gmail_default"></div><div style="font-family:courier new,monospace" class="gmail_default">Or 'interleaved':</div><div style="font-family:courier new,monospace" class="gmail_default">B) </div><div style="font-family:courier new,monospace" class="gmail_default">    1st 
byte - 1st pixel, 2nd byte - 9pixel, 
3rd byte - 17pixel </div><div style="font-family:courier new,monospace" class="gmail_default">    .....</div><div style="font-family:courier new,monospace" class="gmail_default"></div><div style="font-family:courier new,monospace" class="gmail_default">    n byte - 2nd pixel, n+1 - 10pixel, n+2  - 
18pixel <br></div><div style="font-family:courier new,monospace" class="gmail_default">
<div style="font-family:courier new,monospace" class="gmail_default">    .....</div><div style="font-family:courier new,monospace" class="gmail_default"></div><div style="font-family:courier new,monospace" class="gmail_default"></div>

</div><div style="font-family:courier new,monospace" class="gmail_default"><br></div><div><div style="font-family:courier new,monospace" class="gmail_default">Thanks</div><br></div><div><br></div><div>Regards<br><br>Cyprian<br><a href="https://260ste.atari.org">https://260ste.atari.org</a></div><div><br></div><div><br></div><div><div style="font-family:courier new,monospace" class="gmail_default">--</div><br></div><br></div></div>