This is Apple ][e and later models double hires
While a true 560x192 monochrome
addressable display is only present with DHR on the IIe and later,
everything on
every Apple II's display is fundamentally 560x192 monochrome. Including lo-res and text.
Consider at the display of this in monochrome:
Code:
HCOLOR=1 : HPLOT 0,0 TO 279,0
HCOLOR=5 : HPLOT 0,1 TO 279,1
If you look closely, the half-pixel shift on the second line reveals that the display is ultimately decomposed into 560 units across. It's true that
individual 560 unit elements are usually not addressable without DHR on the IIe and later, but half-shifted bytes reveal their presence. Add this to the mix in addition to the lines above:
This produces a "pixel" half as wide as normal hi-res "pixels" - and it's exactly 1/560th of the width of the screen! This is because it turns on a bit in a byte with the half-pixel shift turned on, but the subsequent byte does not have the half-pixel shift turned on, so it is truncated.
Lo-res colors are also produced with patterns that vary at 560 units across the screen within the large 40x48 blocks. These are the same 16 distinct patterns that in DHR on the IIe and later you can use to produce arbitrary colors approximating 140x192 resolution using the complex aux/main and 7-pixels-per-byte memory scheme.
to utilize all colors in HGR mode I need to treat the screen as if it is only 140x192
Sort of, but it's even more complex than that. Try this:
Code:
HCOLOR=1 : HPLOT 0,3 TO 1,3
HCOLOR=2 : HPLOT 2,3 TO 3,3
If you're thinking about the screen as 140x192 pixels, that should be a green pixel next to a purple pixel, right? Nope - you get a short
white "pixel".
Why? Because you've lit up two hires dots on the screen next to each other. Two hires dots are four 560 units, and four 560 "on" units anywhere on a line are interpreted by NTSC as white.
So 140x192 is the maximum color resolution you can expect, but you are not just using a weird scheme to address 140 distinct pixels.