ULA

Change of ULA.txt

52:575d8cc03fce
ULA.txt
     1.1 --- a/ULA.txt	Sat Dec 22 01:02:20 2012 +0100
     1.2 +++ b/ULA.txt	Sat Dec 22 02:22:47 2012 +0100
     1.3 @@ -305,11 +305,46 @@
     1.4  that the palette registers must be updated upon the flash counter - read and
     1.5  written by OSBYTE &C1 (193) - reaching zero and that some way of changing the
     1.6  colour pairs to be any combination of colours might be possible, instead of
     1.7 -having colour complements as pairs. It is conceivable that the interrupt code
     1.8 -responsible does the simple thing and merely inverts the current values for
     1.9 -colours 8 through 15, and this might be verified by looking for an operation
    1.10 -that involves the bit pattern 11001100, since this value would be EORed with
    1.11 -the existing palette register values in order to perform this value inversion.
    1.12 +having colour complements as pairs.
    1.13 +
    1.14 +It is conceivable that the interrupt code responsible does the simple thing
    1.15 +and merely inverts the current values for any logical colours for which the
    1.16 +associated physical colour (as supplied as the second parameter to the VDU 19
    1.17 +call) has the top bit of its four bit value set. These top bits are not
    1.18 +recorded in the palette registers but are presumably recorded separately and
    1.19 +used to build bitmaps as follows:
    1.20 +
    1.21 +      2 colour  4 colour  16 colour
    1.22 +      --------  --------  ---------
    1.23 +   0  00010001  00010001  00010001
    1.24 +   1  01000100  00100010  00010001
    1.25 +   2            01000100  00100010
    1.26 +   3            10001000  00100010
    1.27 +   4                      00010001
    1.28 +   5                      00010001
    1.29 +   6                      00100010
    1.30 +   7                      00100010
    1.31 +   8                      01000100
    1.32 +   9                      01000100
    1.33 +  10                      10001000
    1.34 +  11                      10001000
    1.35 +  12                      01000100
    1.36 +  13                      01000100
    1.37 +  14                      10001000
    1.38 +  15                      10001000
    1.39 +
    1.40 +An operation in the interrupt code would then combine the bitmaps for all
    1.41 +logical colours in 2 and 4 colour modes, with the 16 colour bitmaps being
    1.42 +combined for groups of logical colours as follows:
    1.43 +
    1.44 +   0,  2,  8, 10
    1.45 +   4,  6, 12, 14
    1.46 +   5,  7, 13, 15
    1.47 +   1,  3,  9, 11
    1.48 +
    1.49 +These combined bitmaps would be EORed with the existing palette register
    1.50 +values in order to perform the value inversion necessary to produce the
    1.51 +flashing effect.
    1.52  
    1.53  Palette Definition Lists
    1.54  ------------------------