public void UlaNextControlRegisterSetsActivePaletteForUlaNextSecond() { // --- Arrange var nfs = new NextFeatureSetDevice(); // --- Act nfs.UlaNextControlRegister.Write(0x40); // --- Assert nfs.ActivePalette.ShouldBeSameAs(nfs.UlaNextSecondPalette); }
public void PaletteRegistersAreInitializedProperly() { // --- Act var nfs = new NextFeatureSetDevice(); // --- Assert nfs.PaletteIndexRegister.LastValue.ShouldBe((byte)0); nfs.PaletteValueRegister.LastValue.ShouldBe((byte)0); nfs.UlaNextControlRegister.LastValue.ShouldBe((byte)0); nfs.UlaNextPaletteExtensionRegister.LastValue.ShouldBe((byte)0); nfs.ActivePalette.ShouldBeSameAs(nfs.UlaNextFirstPalette); }
public void SinglePaletteValueSettingWith8BitWorks(int index, int rgb, int expIndex, int expRgb) { // --- Arrange var nfs = new NextFeatureSetDevice(); nfs.UlaNextControlRegister.Write(0x00); // --- Act nfs.PaletteIndexRegister.Write((byte)index); nfs.PaletteValueRegister.Write((byte)rgb); // --- Assert nfs.ActivePalette[(byte)index].ShouldBe(expRgb); nfs.PaletteIndexRegister.LastValue.ShouldBe((byte)expIndex); }
public void FullPaletteValueSettingWith8BitWorks(int shift) { // --- Arrange var nfs = new NextFeatureSetDevice(); nfs.UlaNextControlRegister.Write(0x00); // --- Act nfs.PaletteIndexRegister.Write((byte)shift); for (var i = 0x00; i <= 0xFF; i++) { nfs.PaletteValueRegister.Write((byte)i); } // --- Assert for (var i = 0x00; i <= 0xFF; i++) { var expColor = (byte)(i - shift) * 2 | (((byte)(i - shift) & 0x03) == 0 ? 0 : 1); nfs.ActivePalette[(byte)i].ShouldBe(expColor); } }