This question is about the Macintosh 128k, but if you can give an answer which describes one of the other very similar machines, that's good too.
The bitmap was 512 by 384 pixels. Assuming that one byte stores eight pixels, so that the CPU can read or update 16 bits in a single bus cycle, that means it would take 10 944 bus cycles to re-write the entire display. Assuming it used something like a move.w a0+, a1+
which is 12 cycles, I calculate that to take around 0.3 seconds to copy a bitmap onto the screen, at 8 MHz. Add to that a variable number of roxl
or roxr
instructions (in case you want to scroll or move something some pixels to the left or right), and overhead for even a generously unrolled loop, you've got a dog slow GUI.
Another problem is that we have a mouse, but apparently no sprite hardware. So now we need to copy around a (partial) shadow of the bitmap, overlaying the cursor with and
and or
, whenever the user moves the mouse.
This link does not list any hardware which was obviously intended to alleviate these problems.
So how did this line of "classic macs" address the problem of scrolling and moving large areas, or rendering a mouse cursor?
move.w a0+, a1+
= 147,456 cycles at 8MHz = 0.018 seconds or just over 50Hz,