1.1 --- a/ULA.txt Sun Feb 26 23:22:17 2012 +0100
1.2 +++ b/ULA.txt Sun Mar 04 01:22:28 2012 +0100
1.3 @@ -1,3 +1,24 @@
1.4 +Principal Design and Feature Constraints
1.5 +----------------------------------------
1.6 +
1.7 +The features of the ULA are limited by the amount of time and resources that
1.8 +can be allocated to each activity necessary to support such features given the
1.9 +fundamental obligations of the unit. Maintaining a screen display based on the
1.10 +contents of RAM itself requires the ULA to have exclusive access to such
1.11 +hardware resources for a significant period of time. Whilst other elements of
1.12 +the ULA can in principle run in parallel with this activity, they cannot also
1.13 +access the RAM. Consequently, other features that might use the RAM must
1.14 +accept a reduced allocation of that resource in comparison to a hypothetical
1.15 +architecture where concurrent RAM access is possible.
1.16 +
1.17 +Thus, the principal constraint for many features is bandwidth. The duration of
1.18 +access to hardware resources is one aspect of this; the rate at which such
1.19 +resources can be accessed is another. For example, the RAM is not fast enough
1.20 +to support access more frequently than one byte per 2MHz cycle, and for screen
1.21 +modes involving 80 bytes of screen data per scanline, there are no free cycles
1.22 +for anything other than the production of pixel output during the active
1.23 +scanline periods.
1.24 +
1.25 Timing
1.26 ------
1.27
1.28 @@ -269,7 +290,11 @@
1.29 those outputs are strictly digital and can only be set to a "high" and "low"
1.30 value, then only the existing eight colours are possible. If a modern ULA were
1.31 able to output analogue values, it would still need to be assessed whether the
1.32 -circuitry could successfully handle and propagate such values.
1.33 +circuitry could successfully handle and propagate such values. Various sources
1.34 +indicate that only "TTL levels" are supported by the RGB output circuit, and
1.35 +since there are 74LS08 AND logic gates involved in the RGB component outputs
1.36 +from the ULA, it is likely that the ULA is expected to provide only "high" or
1.37 +"low" values.
1.38
1.39 Palette Definition Lists
1.40 ------------------------
1.41 @@ -467,6 +492,16 @@
1.42 especially since accessing regions of the screen would involve incrementing
1.43 pointers by amounts that are inconvenient on an 8-bit CPU.
1.44
1.45 +Genlock Support
1.46 +---------------
1.47 +
1.48 +The ULA generates a video signal in conjunction with circuitry producing the
1.49 +output features necessary for the correct display of the screen image.
1.50 +However, it appears that the ULA drives the video synchronisation mechanism
1.51 +instead of reacting to an existing signal. Genlock support might be possible
1.52 +if the ULA were made to be responsive to such external signals, resetting its
1.53 +address generators upon receiving synchronisation events.
1.54 +
1.55 Enhanced Sound
1.56 --------------
1.57
1.58 @@ -487,6 +522,17 @@
1.59 As with a hardware sprite function, waveforms could be uploaded or referenced
1.60 using locations as registers referencing memory regions.
1.61
1.62 +Sound Input/Output
1.63 +------------------
1.64 +
1.65 +Since the ULA already controls audio input/output for cassette-based data, it
1.66 +would have been interesting to entertain the idea of sampling and output of
1.67 +sounds through the cassette interface. However, a significant amount of
1.68 +circuitry is employed to process the input signal for use by the ULA and to
1.69 +process the output signal for recording.
1.70 +
1.71 +See: http://bbc.nvg.org/doc/A%20Hardware%20Guide%20for%20the%20BBC%20Microcomputer/bbc_hw_03.htm#3.11
1.72 +
1.73 BBC ULA Compatibility
1.74 ---------------------
1.75
1.76 @@ -576,3 +622,8 @@
1.77 CAS MO (motor relay output)
1.78
1.79 ÷13 IN (~1200 baud clock input)
1.80 +
1.81 +References
1.82 +----------
1.83 +
1.84 +See: http://bbc.nvg.org/doc/A%20Hardware%20Guide%20for%20the%20BBC%20Microcomputer/bbc_hw.htm