Subject: Re: Intvid Update
To: M.R. Zucca <mrz5149@cs.rit.edu>
From: Dave Huang <khym@bga.com>
List: port-mac68k
Date: 12/19/1996 13:24:52
On Thu, 19 Dec 1996, M.R. Zucca wrote:
> First of all, the value of videorowbytes passed in from MacOS makes no sense
> what-so-ever. For instance, say I boot into 8 bit color mode with my 640x480
> VGA monitor. Rowbytes should categorically be 640 -> 0x280. 8 bits / pixel
> 640 pixels / row = 640 bytes / row. Strangely, the value of videorowbytes
> is *always* 2048 -> 0x800. Even stranger is the fact that when I try to
> "correct" this problem by changing videorowbytes to 0x280 the console draws
> tiny little lines as though 2048 were the proper rowbytes for 640x480!!!

I don't know about the other stuff, but the rowbytes thing sounds pretty 
normal to me. You have 640 bytes visible, and then 1408 bytes that are 
"offscreen". The next row then starts after that, 2048 bytes after the 
start of the previous row. On my 660av in 1024x768 monochrome mode, 
rowbytes is 512, but only 128 bytes are actually visible on the screen.

I have no idea whether any Mac video hardware supports this (probably
not), but on VGA cards, those offscreen bytes of video memory can be used
for hardware scrolling (among other things). With 1M of VRAM and a
rowbytes of 2048, you could have a 2048x512 virtual screen. You'd then set
a VGA register to specify which 640x480 section of that you actually want
to display.
-- 
Name: Dave Huang     |   Mammal, mammal / their names are called /
INet: khym@bga.com   |   they raise a paw / the bat, the cat /
FurryMUCK: Dahan     |   dolphin and dog / koala bear and hog -- TMBG
Dahan: Hani G Y+C 21 Y++ L+++ W- C++ T++ A+ E+ S++ V++ F- Q+++ P+ B+ PA+ PL++