# HG changeset patch # User Paul Boddie # Date 1323391540 -3600 # Node ID eee56889c57b8b9fec690af9f5c8bf77f17b39d4 # Parent 4f2eaf6a0ed3bd04f5f80e925a58e43d829d2c48 Added notes about colour planes, hardware sprites, and BBC sound support. diff -r 4f2eaf6a0ed3 -r eee56889c57b ULA.txt --- a/ULA.txt Thu Dec 08 23:50:49 2011 +0100 +++ b/ULA.txt Fri Dec 09 01:45:40 2011 +0100 @@ -21,9 +21,9 @@ One argument for a 2 byte resolution is smooth vertical scrolling. A pitfall of changing the screen address by 2 bytes is the change in the number of lines from the initial and final character rows that need reading by the ULA, which -would need to maintain this state information. Another pitfall is the -complication that might be introduced to software writing bitmaps of character -height to the screen. +would need to maintain this state information (although this is a relatively +trivial change). Another pitfall is the complication that might be introduced +to software writing bitmaps of character height to the screen. Region Blanking --------------- @@ -123,8 +123,8 @@ that hardware to reduce the load on the system CPU which was responsible for producing the video output. -Hardware Sprites ----------------- +Hardware Sprites and Colour Planes +---------------------------------- An enhanced ULA might provide hardware sprites, but this would be done in an way that is incompatible with the standard ULA, since no &FE*X locations are @@ -137,6 +137,14 @@ particular state after each write. For example: read LSB of region, read MSB of region, read size, read height. +Providing hardware sprites can be awkward without having some kind of working +area, since the ULA would need to remember where each sprite is to be plotted +and then deduce which sprites would be contributing to any given pixel. An +alternative is to use memory into which the sprites would be plotted, and this +memory would be combined with the main screen memory, taking a particular +colour as the "colourkey" which is to be considered transparent, and only +overwriting the main screen pixels with pixel values for other colours. + Enhanced Graphics ----------------- @@ -158,6 +166,12 @@ the given framework. The BBC Micro ULA employs &FE40-&FE4F for sound control, and an enhanced ULA could adopt this interface. +The BBC Micro uses the SN76489 chip to produce sound, and the entire +functionality of this chip could be emulated for enhanced sound, with a subset +of the functionality exposed via the &FE*6 interface. + +See: http://en.wikipedia.org/wiki/Texas_Instruments_SN76489 + Waveform Upload ---------------