From 18be144349b988853da645aa5ae18773d0f1daab Mon Sep 17 00:00:00 2001 From: Seth Morabito Date: Fri, 19 Aug 2016 14:12:08 -0700 Subject: [PATCH 1/2] Only add Memory device once Moves setting of main memory device from inner loop to outside the loop. --- Contralto/Memory/MemoryBus.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Contralto/Memory/MemoryBus.cs b/Contralto/Memory/MemoryBus.cs index e385566..5316f65 100644 --- a/Contralto/Memory/MemoryBus.cs +++ b/Contralto/Memory/MemoryBus.cs @@ -62,14 +62,14 @@ namespace Contralto.Memory else { _bus.Add(addr, dev); - - if (dev is Memory) - { - _mainMemory = (Memory)dev; - } } } } + + if (dev is Memory) + { + _mainMemory = (Memory)dev; + } } public void Reset() From bdc3b0f0e8e3c076c671a0bbc36208e9a3838495 Mon Sep 17 00:00:00 2001 From: Seth Morabito Date: Fri, 19 Aug 2016 14:22:59 -0700 Subject: [PATCH 2/2] Simplify mode switching logic Collapses several switch statements and removes duplicate assignments. --- Contralto/CPU/UCodeMemory.cs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/Contralto/CPU/UCodeMemory.cs b/Contralto/CPU/UCodeMemory.cs index 3826ba0..1b25a29 100644 --- a/Contralto/CPU/UCodeMemory.cs +++ b/Contralto/CPU/UCodeMemory.cs @@ -189,9 +189,6 @@ namespace Contralto.CPU break; case MicrocodeBank.RAM0: - _microcodeBank[(int)task] = (nextAddress & 0x80) == 0 ? MicrocodeBank.ROM0 : MicrocodeBank.RAM2; - break; - case MicrocodeBank.RAM1: _microcodeBank[(int)task] = (nextAddress & 0x80) == 0 ? MicrocodeBank.ROM0 : MicrocodeBank.RAM2; break; @@ -210,15 +207,12 @@ namespace Contralto.CPU break; case MicrocodeBank.RAM0: - _microcodeBank[(int)task] = (nextAddress & 0x80) == 0 ? MicrocodeBank.RAM1 : MicrocodeBank.RAM1; + _microcodeBank[(int)task] = MicrocodeBank.RAM1; break; case MicrocodeBank.RAM1: - _microcodeBank[(int)task] = (nextAddress & 0x80) == 0 ? MicrocodeBank.RAM0 : MicrocodeBank.RAM0; - break; - case MicrocodeBank.RAM2: - _microcodeBank[(int)task] = (nextAddress & 0x80) == 0 ? MicrocodeBank.RAM0 : MicrocodeBank.RAM0; + _microcodeBank[(int)task] = MicrocodeBank.RAM0; break; } }