The old code sets the ULA colours to Black, Red, Blue, Green (or something like that) and then redefines how those colours should be displayed multiple times as the frame is "drawn".
The new code does nearly the same thing at startup, but for about 12 colours (inc 4 flashing ones) and then changes which of the twelve colours are displayed on screen.
I have only tested the NuLA code on B-Em as I still haven't installed my NuLA!
The code does not reset the NuLA when you press BREAK, so that might be what is messing with mode 7, although I thought that Rob reset the NuLA on BREAK, if not, ?&FE22=&40 should do the trick.
Can anyone see a flaw in this:
Code: Select all
Write 40 to FE22 - NuLA Reset (logical mode - IIRC)
Write 18 to FE20 - ULA Set mode 1, no interlace, flash 0
Write DA to FE23 - NuLA set colour D (ULA A)
Write 54 to FE23 - to red:A green:5 blue:4
Write C0 to FE23 - ...
Write 04 to FE23 - ... set other NuLA colours
Write A8 to FE23 -
Write 0D to FE23 -
Write 9E to FE23 -
Write 30 to FE23 -
Write 8C to FE23 -
Write CD to FE23 -
Write 7C to FE23 -
Write CD to FE23 -
Write 60 to FE23 -
Write CD to FE23 -
Write 5E to FE23 -
Write 3D to FE23 -
Write 3E to FE23 -
Write E0 to FE23 -
Write 21 to FE23 -
Write C0 to FE23 -
Write 1E to FE23 -
Write 00 to FE23 -
Write 00 to FE23 -
Write 00 to FE23 -
Write 07 to FE21 - ULA Set Mode1 colour 0 to Black
Write 17 to FE21 - ...
Write 57 to FE21 -
Write 47 to FE21 -
Write 27 to FE21 - ULA Set Mode1 colour 1 to Black
Write 37 to FE21 - ...
Write 77 to FE21 -
Write 67 to FE21 -
Write 87 to FE21 - ULA Set Mode1 colour 2 to Black
Write 97 to FE21 - ...
Write D7 to FE21 -
Write C7 to FE21 -
Write A5 to FE21 - ULA Set Mode1 colour 3 to Black
Write B5 to FE21 - ...
Write F5 to FE21 -
Write E5 to FE21 -
Write 18 to FE20 - ULA Set mode 1, no interlace, flash 0