4 ms·
I remember working with the Amstrad PCW, which had an interesting layout for the video memory. The pixels in the 90x32 character monochrome display were stored
by xioxox 8y ago
I remember working with the Amstrad PCW, which had an interesting layout for the video memory. The pixels in the 90x32 character monochrome display were stored in character order. The 1st 8 bytes were the leftmost character, the next 8 were the character to the right, and so on. This wasn't the only complexity as there was a lookup table to give the memory location of each of the 32 screen lines. The advantage of this table was very quick character scrolling, at the expense of computing the location of individual pixels. It was rather tricky to write quick Z80 code to draw line with this quirky setup, but some people managed some rather nice vector games, such as Starglider.
- JdeBP 8y agoThe BBC Micro had a similar arrangement in some of its screen modes.
- theclaw 8y agoI think both machines must use a Motorola 6845 CRT controller, which is intended for character-based screens. It does not scan the video RAM sequentially, but in the way described by the GP, (all first char rows, then all second char rows, etc, with each chars rows stored sequentially in RAM)
- theclaw 8y agoI spent some time looking into this and found I was wrong - CRTC does generate linear addresses but the beeb (and possibly the CPC) translates them to the character-based screen format in hardware.