Blitter
Created by: phil, Last modification: Tue 11 of Aug, 2009 (18:26 UTC)
The blitter is a simple byte-copying unit. It can transfer data around memory much faster than the CPU (it copies one byte every 2 system clocks, against the CPU's LDIR instruction @ 1 byte per 21 clocks). It can work in ascending or descending address order and also has modulo registers so that rectangular areas within larger overall arrays can be shifted in one go. It can, however, only operate within Video memory. There is the option to skip the writing of source bytes which equal zero, this is mainly useful in Chunky pixel mode where it can be used to mask out "transparent" pixels (eg: drawing "bobs").
The blitter takes priority over access to video RAM from the CPU (but obviously the video hardware still impedes its performance) and the CPU is forced to wait for the blitter to finish its operation if it tries to access video memory whilst a blit is under way. Otherwise, a blit can be started and the CPU can continue with another task (note: MOST blitter registers CAN be changed once a blit is underway without problems, however the Modulos, Width and Misc registers should not be changed until a blit is finished).