[Coco] hardware scrolling

Steve 6809er at srbsoftware.com
Mon Dec 9 13:07:39 EST 2013


On 12/8/2013 2:55 PM, Mathieu Bouchard wrote:
> Le 2013-12-01 à 00:18:00, Steve Bjork a écrit :
>
>> Now, on the subject of horizontal scrolling.  This system of changing 
>> the pointer to what byte will be read at the start of a scan line 
>> does change the source of the graphics data.  But that's not the 
>> change what bits of the byte to start with. The VDG must use the same 
>> one or two bits of a byte to create the first dot.  (It can not 
>> "scroll" them.) So, you must scroll on 4 or 8 dot boundary based on 
>> the color mode being 4 or 2 colors.  If in TEXT mode, the scroll 
>> would be by character (8-dots) and not by one dot at a time. Sorry, 
>> but scrolling on every fourth or eighth dot is not hardware scrolling.
>
> Is there any way to change the size of the left and right borders ? If 
> you do so for a whole picture by an amount of 0 to 3 pixels wide, you 
> can combine it with a every-fourth-dot scrolling to make smooth 
> scrolling in almost all of the picture.
>
> Playing with borders has been done extensively with VGA and Amiga, but 
> I don't know whether it's possible on CoCo, and to which extent (or 
> maybe I just don't recall).
>
No, you can not change the size of the marge on a CoCo 1/2.  Even it you 
could, you would jump every 4 or 8 dots when you started the next byte 
over.  To do hardware scrolling the VDG would need to be able to change 
what bites are used for what dot on the screen.  The VDG used the same 
bit(s) in the byte for the first color dot and then shifts the data 
(from the byte) for the next dot and so on.

The CoCo design to shared the memory between the CPU and VDG.  (Most 
games systems at the time use two memory systems, one for CPU and one 
for Video.)  Since both memory bandwidth and size was very limited at 
the time, there was no time left for fancy VDGs that read more the 
Bitmap display memory in any but byte by byte in a row of graphics.

Systems like Atari 400/800 and Commodore Vic 20 and 64 used character 
(block) graphics system.  This was simlinar to the text screens of the 
CoCo that would display an 8 by 8 block of graphics select by the number 
stored in the screen memory.  The advantage over the CoCo text mode is 
the the "blocks" (Characters) data were stored in ram and easy change by 
the CPU.  It was common to have hardware scrolling and sprites because 
of the lower memory bandwidth and size needed by this type of display 
system.

Like the CoCo, Apple and IBM all used standard Bitmap graphics for their 
Hi-res Graphic displays because of there ease of design. (Very simple 
VDG and memory circuit design.)

Even today's 3-D graphics systems have a Bitmap display at the heart.  
It's just the have lots of hardware that draws the image on to the 
Bitmap memory known as the frame buffer.

Steve




More information about the Coco mailing list