# HG changeset patch # User Paul Boddie # Date 1330820548 -3600 # Node ID 316b8e54c28b1c2ea63b3b98af281fb4ba771750 # Parent 4e5f93f2cae7ecaf2745b0791ca1ea07e929a0b4 Added video, audio and general notes. diff -r 4e5f93f2cae7 -r 316b8e54c28b ULA.txt --- a/ULA.txt Sun Feb 26 23:22:17 2012 +0100 +++ b/ULA.txt Sun Mar 04 01:22:28 2012 +0100 @@ -1,3 +1,24 @@ +Principal Design and Feature Constraints +---------------------------------------- + +The features of the ULA are limited by the amount of time and resources that +can be allocated to each activity necessary to support such features given the +fundamental obligations of the unit. Maintaining a screen display based on the +contents of RAM itself requires the ULA to have exclusive access to such +hardware resources for a significant period of time. Whilst other elements of +the ULA can in principle run in parallel with this activity, they cannot also +access the RAM. Consequently, other features that might use the RAM must +accept a reduced allocation of that resource in comparison to a hypothetical +architecture where concurrent RAM access is possible. + +Thus, the principal constraint for many features is bandwidth. The duration of +access to hardware resources is one aspect of this; the rate at which such +resources can be accessed is another. For example, the RAM is not fast enough +to support access more frequently than one byte per 2MHz cycle, and for screen +modes involving 80 bytes of screen data per scanline, there are no free cycles +for anything other than the production of pixel output during the active +scanline periods. + Timing ------ @@ -269,7 +290,11 @@ those outputs are strictly digital and can only be set to a "high" and "low" value, then only the existing eight colours are possible. If a modern ULA were able to output analogue values, it would still need to be assessed whether the -circuitry could successfully handle and propagate such values. +circuitry could successfully handle and propagate such values. Various sources +indicate that only "TTL levels" are supported by the RGB output circuit, and +since there are 74LS08 AND logic gates involved in the RGB component outputs +from the ULA, it is likely that the ULA is expected to provide only "high" or +"low" values. Palette Definition Lists ------------------------ @@ -467,6 +492,16 @@ especially since accessing regions of the screen would involve incrementing pointers by amounts that are inconvenient on an 8-bit CPU. +Genlock Support +--------------- + +The ULA generates a video signal in conjunction with circuitry producing the +output features necessary for the correct display of the screen image. +However, it appears that the ULA drives the video synchronisation mechanism +instead of reacting to an existing signal. Genlock support might be possible +if the ULA were made to be responsive to such external signals, resetting its +address generators upon receiving synchronisation events. + Enhanced Sound -------------- @@ -487,6 +522,17 @@ As with a hardware sprite function, waveforms could be uploaded or referenced using locations as registers referencing memory regions. +Sound Input/Output +------------------ + +Since the ULA already controls audio input/output for cassette-based data, it +would have been interesting to entertain the idea of sampling and output of +sounds through the cassette interface. However, a significant amount of +circuitry is employed to process the input signal for use by the ULA and to +process the output signal for recording. + +See: http://bbc.nvg.org/doc/A%20Hardware%20Guide%20for%20the%20BBC%20Microcomputer/bbc_hw_03.htm#3.11 + BBC ULA Compatibility --------------------- @@ -576,3 +622,8 @@ CAS MO (motor relay output) ÷13 IN (~1200 baud clock input) + +References +---------- + +See: http://bbc.nvg.org/doc/A%20Hardware%20Guide%20for%20the%20BBC%20Microcomputer/bbc_hw.htm