From eae5314e3b7572a343c4caa2d16fb0b1c62c28a0 Mon Sep 17 00:00:00 2001 From: David Bowerman Date: Wed, 3 Jun 2026 09:54:36 -0400 Subject: [PATCH] added a new ToString method to Word, DWord, and QWord classes. The ToString method will concatenate the string representations of the high and low words (or dwords) to create a single string representation of the entire word. This can be used to more easily write and read the value from the MC and CU classes. --- CPU.cs | 29 ++++++++-- CU.cs | 18 ++++--- MC.cs | 19 ++++++- Models.cs | 51 ++++++++++++++++++ Utils.cs | 29 +++++++++- bin/Debug/net10.0/CPUSimulation.dll | Bin 10240 -> 12800 bytes bin/Debug/net10.0/CPUSimulation.exe | Bin 162304 -> 162304 bytes bin/Debug/net10.0/CPUSimulation.pdb | Bin 14504 -> 15580 bytes .../net10.0/CPUSimulation.AssemblyInfo.cs | 2 +- .../CPUSimulation.AssemblyInfoInputs.cache | 2 +- obj/Debug/net10.0/CPUSimulation.dll | Bin 10240 -> 12800 bytes obj/Debug/net10.0/CPUSimulation.pdb | Bin 14504 -> 15580 bytes obj/Debug/net10.0/apphost.exe | Bin 162304 -> 162304 bytes obj/Debug/net10.0/ref/CPUSimulation.dll | Bin 6144 -> 6656 bytes obj/Debug/net10.0/refint/CPUSimulation.dll | Bin 6144 -> 6656 bytes 15 files changed, 132 insertions(+), 18 deletions(-) diff --git a/CPU.cs b/CPU.cs index 3284fd1..64b461d 100644 --- a/CPU.cs +++ b/CPU.cs @@ -4,7 +4,7 @@ namespace CPUSimulation { public class CPU { - static int numberOfMemoryBanks = 4; + public static int numberOfMemoryBanks = 2; static int memoryBankSize = 1024; static MC _memoryController; @@ -17,8 +17,8 @@ namespace CPUSimulation _memoryController.Write("0000000000000010","1111000000001111"); for (int i = 0; i < 16; i++) { - Word dataRead = _memoryController.Read((Int16)i); - Console.WriteLine($"Data read from address {new Address((Int16)i).ToString()}: {dataRead.ToString()}"); + string dataRead = _memoryController.Read((Int16)i); + Console.WriteLine($"Data read from address {new Address((Int16)i).ToString()}: {dataRead}"); } } @@ -27,8 +27,27 @@ namespace CPUSimulation _memoryController = new MC(numberOfMemoryBanks, memoryBankSize); for (int i = 0; i < memoryBankSize; i++) { - Word dataToWrite = Utils.GenerateRandomWord(numberOfMemoryBanks); - _memoryController.Write((Int16)i, dataToWrite); + if (numberOfMemoryBanks == 2) + { + Word dataToWrite = Utils.GenerateRandomWord(numberOfMemoryBanks); + _memoryController.Write(new Address((Int16)i).ToString(), dataToWrite.ToString()); + } + else if (numberOfMemoryBanks == 4) + { + DWord dataToWrite = new DWord(Utils.GenerateRandomWord(2), Utils.GenerateRandomWord(2)); + _memoryController.Write(new Address((Int16)i).ToString(), dataToWrite.ToString()); + } + else if (numberOfMemoryBanks == 8) + { + QWord dataToWrite = new QWord(new DWord(Utils.GenerateRandomWord(2), Utils.GenerateRandomWord(2)), new DWord(Utils.GenerateRandomWord(2), Utils.GenerateRandomWord(2))); + _memoryController.Write(new Address((Int16)i).ToString(), dataToWrite.ToString()); + } + else + { + throw new ArgumentException($"Number of memory banks must be between 1 and 8 (inclusive)."); + } + + //Word dataRead = _memoryController.Read((Int16)i); //Console.WriteLine($"Data read from address {new Address((Int16)i).ToString()}: {dataRead.ToString()}"); } diff --git a/CU.cs b/CU.cs index 5a59f89..9d58c9c 100644 --- a/CU.cs +++ b/CU.cs @@ -2,10 +2,12 @@ namespace CPUSimulation { public class CU // Control Unit { + int numberOfRegisters = 16; Dictionary _instructionSet; Dictionary _registers; public CU(int numberOfMemoryBanks) { + _instructionSet = new Dictionary(); _instructionSet.Add("00000", "NOP"); _instructionSet.Add("00001", "LOAD"); @@ -25,9 +27,11 @@ namespace CPUSimulation _instructionSet.Add("01111", "DEC"); _registers = new Dictionary(); - for (int i = 0; i < numberOfMemoryBanks; i++) - { - _registers.Add($"R{i}", new Word(new Byte[0])); + Word zeroWord = new Word(new Byte[2] { new Byte("00000000"), new Byte("00000000") }); + for (int i = 0; i < numberOfRegisters; i++) + { + string registerName = ((byte)i).ToString().Substring(4, 4); + _registers.Add(registerName, zeroWord); } } @@ -43,13 +47,13 @@ namespace CPUSimulation { _value++; } - public void SetValue(Int16 value) + public void SetValue(string value) { - _value = value; + _value = Convert.ToInt16(value, 2); } - public Int16 GetValue() + public string GetValue() { - return _value; + return Utils.Int16ToBinaryString(_value); } } } diff --git a/MC.cs b/MC.cs index 7525fbf..00d52e0 100644 --- a/MC.cs +++ b/MC.cs @@ -27,7 +27,7 @@ namespace CPUSimulation } } - public Word Read(Int16 address) + public string Read(Int16 address) { AddressOkay(address); Byte[] byteData = new Byte[_numberOfMemoryBanks]; @@ -35,7 +35,22 @@ namespace CPUSimulation { byteData[i] = _memoryBanks[i].Read(new Address(address).ToString()); } - return new Word(byteData); + if (byteData.Length == 2) + { + return new Word(byteData).ToString(); + } + else if (byteData.Length == 4) + { + return new DWord(new Word(byteData.Take(2).ToArray()), new Word(byteData.Skip(2).Take(2).ToArray())).ToString(); + } + else if (byteData.Length == 8) + { + return new QWord(new DWord(new Word(byteData.Take(2).ToArray()), new Word(byteData.Skip(2).Take(2).ToArray())), new DWord(new Word(byteData.Skip(4).Take(2).ToArray()), new Word(byteData.Skip(6).Take(2).ToArray()))).ToString(); + } + else + { + throw new ArgumentException($"Number of memory banks must be between 1 and 8 (inclusive)."); + } } public void Write(Int16 address, Word data) diff --git a/Models.cs b/Models.cs index 4c5f97b..9fcca57 100644 --- a/Models.cs +++ b/Models.cs @@ -133,11 +133,24 @@ namespace CPUSimulation return addressString; } } + + + /// + /// A word is a collection of 2 Bytes + /// public class Word { Byte[] _bytes; public Word(Byte[] bytes) { + if (bytes.Length == 0 || bytes.Length > 2) + { + throw new ArgumentException("A word must consist of 1 or 2 bytes."); + } + else if (bytes.Length == 1) + { + _bytes = new Byte[2] { new Byte("00000000"), bytes[0] }; + } _bytes = bytes; } @@ -164,4 +177,42 @@ namespace CPUSimulation return wordString; } } + + /// + /// A double word is a collection of 2 Words, or 4 Bytes + /// + public class DWord + { + Word _highWord; + Word _lowWord; + public DWord(Word highWord, Word lowWord) + { + _highWord = highWord; + _lowWord = lowWord; + } + + public override string ToString() + { + return _highWord.ToString() + _lowWord.ToString(); + } + } + + /// + /// A quad word is a collection of 2 Double Words, or 8 Bytes + /// + public class QWord + { + DWord _highDWord; + DWord _lowDWord; + public QWord(DWord highDWord, DWord lowDWord) + { + _highDWord = highDWord; + _lowDWord = lowDWord; + } + + override public string ToString() + { + return _highDWord.ToString() + _lowDWord.ToString(); + } + } } \ No newline at end of file diff --git a/Utils.cs b/Utils.cs index cb3a6df..00da09d 100644 --- a/Utils.cs +++ b/Utils.cs @@ -3,16 +3,36 @@ namespace CPUSimulation public class Utils { static Random _random = new Random(); + + /// + /// Generates a random word + /// + /// + /// input must be between 0 and 2 (inclusive) + /// + /// public static Word GenerateRandomWord(int byteCount) { - byteCount = _random.Next(1, byteCount + 1); - //Console.WriteLine($"Generating random word with {byteCount} bytes."); + if (byteCount < 0) + { + byteCount = 0; + } Byte[] bytes = new Byte[byteCount]; for (int i = 0; i < byteCount; i++) { bytes[i] = GenerateRandomByte(); } + if (byteCount == 1) + { + bytes = new Byte[2] { new Byte("00000000"), bytes[0] }; + } + else if (byteCount == 0) + { + bytes = new Byte[2] { new Byte("00000000"), new Byte("00000000") }; + } return new Word(bytes); + + } public static Byte GenerateRandomByte() { @@ -23,5 +43,10 @@ namespace CPUSimulation } return new Byte(bits); } + + public static string Int16ToBinaryString(short value) + { + return Convert.ToString(value & 0xFFFF, 2).PadLeft(16, '0'); + } } } \ No newline at end of file diff --git a/bin/Debug/net10.0/CPUSimulation.dll b/bin/Debug/net10.0/CPUSimulation.dll index 6fa2e28d47f3ddcf9a8b126d273acf6e21f3dbed..a299f516f780282f536a6144c199d3552dba0007 100644 GIT binary patch literal 12800 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 E1n+a delta 99 zcmZqp!r1^sEsR^349fj28B!V27!ny$7?K%`8Il-GfNUe6h&d3N0r^G@hG2FokYxd6 e83W}Z>OisvKz)Wlku(NVpiZC(+w04j8kqnw$`dI7 diff --git a/bin/Debug/net10.0/CPUSimulation.pdb b/bin/Debug/net10.0/CPUSimulation.pdb index 18f50917ed263cdaa763d384ae2f91d665e5f017..2fd964ea8dada8811cd4d256093b3ac92009cc37 100644 GIT binary patch delta 3580 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 PABcr^YCn`N!O+ovp%Gr~ diff --git a/obj/Debug/net10.0/CPUSimulation.AssemblyInfo.cs b/obj/Debug/net10.0/CPUSimulation.AssemblyInfo.cs index 008d7c9..bcf6372 100644 --- a/obj/Debug/net10.0/CPUSimulation.AssemblyInfo.cs +++ b/obj/Debug/net10.0/CPUSimulation.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("CPUSimulation")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9efadc3b4a2f776b2177e2873a3b46b0d1af54c3")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+faa7801376d988a2b7b81332c9df3db882f08224")] [assembly: System.Reflection.AssemblyProductAttribute("CPUSimulation")] [assembly: System.Reflection.AssemblyTitleAttribute("CPUSimulation")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/obj/Debug/net10.0/CPUSimulation.AssemblyInfoInputs.cache b/obj/Debug/net10.0/CPUSimulation.AssemblyInfoInputs.cache index 3e09ce0..f3f5d59 100644 --- a/obj/Debug/net10.0/CPUSimulation.AssemblyInfoInputs.cache +++ b/obj/Debug/net10.0/CPUSimulation.AssemblyInfoInputs.cache @@ -1 +1 @@ -c2e5aae0cecf3bbefacc496747f7594154fd639e9a9c0b2086d3b9acd9b437a5 +0093ec249d1fba7433aea9a209b4614dc995df5d3b8e509911d9d959d0697898 diff --git a/obj/Debug/net10.0/CPUSimulation.dll b/obj/Debug/net10.0/CPUSimulation.dll index 6fa2e28d47f3ddcf9a8b126d273acf6e21f3dbed..a299f516f780282f536a6144c199d3552dba0007 100644 GIT binary patch literal 12800 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 PABcr^YCn`N!O+ovp%Gr~ diff --git a/obj/Debug/net10.0/apphost.exe b/obj/Debug/net10.0/apphost.exe index a590070a3880dbaf459675d445a7a9b501e38cb0..e5a074b672d649392f7ddd721d00260192476373 100644 GIT binary patch delta 99 zcmZqp!r1^sEsR^349fk}7!rZdoWX*@fWeT#7|1eXNMW!9@-2YkMhrn+a delta 99 zcmZqp!r1^sEsR^349fj28B!V27!ny$7?K%`8Il-GfNUe6h&d3N0r^G@hG2FokYxd6 e83W}Z>OisvKz)Wlku(NVpiZC(+w04j8kqnw$`dI7 diff --git a/obj/Debug/net10.0/ref/CPUSimulation.dll b/obj/Debug/net10.0/ref/CPUSimulation.dll index 7631741ae5330f9664a77ec04ef079b0fce82c74..c9afc7b4247586eefc553cd375483c72d677f723 100644 GIT binary patch delta 2096 zcmZ8iU2IfE6#iyzyKMiqx7&ggsJ3jC0*c#R(r!b7Yg@!xV_OO(q&~2}v zZ7eoKgHo=kl9;G5(L^LFeE}aOY5HJzG&~R^L3uOA2VZ#dn{)4W3wJZ$eBU`|&YYP$ zcV{j985(5&HudMs6zV^fPg0vlGxyOppoRnwRTP`t3C*|$HZyrA8$%FaV_1oM z<2t;`sNT_rvq;3%J?+Da;0$i-Mkto(!)38t!}IiBQ{NJ61Xp1AeZk{mSrXnQ@w0;G zVRBAd7fq2Uxl<|Drno*ESM-a*jcO33VTrHSQ&pmpmWkBxi?Xz<>O{?WDj;gV7uh6g z!ppKz)b5feTSazzYOAQ2H?WQG&&EyGYbNaAu6A0xFd8@YFX0pY9HU*euz8hh)9aLa zL`At2FA}ZjW8P9(p2U7`Y(*X5$|^~Rd2TDpMqOFKuSa>VE55^zD6@yG!xhm2ruR!i=?mC(1t9)(4_W zW)t0kYff(BrL|Dk*IFJ(-)Ah=ox=5P_0$sL_!1TMxB3R#)_kw)t82=AO>M?!=3gg` zLe}!}6Y*AoCT*`%ey;FIMkzeSFG2AnxMK@=n{TTvbmFO(KT4*C*4H!aqm`jEp`g; z#%hVH>!YxFwhaymjtL$UObAXB72YIn#H^s72}7K4C#T$j6c*JU9?KuG2hF%i+=@HI z5bhCo;{h>>XBe{&eZ&C_5{FS5V>d32N#X$B!285A_)w*Ur-aW7pBH{h_$}f0h2Ix$ zDKpkmW^B9gkcY-HAbdc)Dd8!@<7!^Syg0rVteP`#ZT)kF+wWZ*V%~yD=^J1<|JHWI zrlwC!4Ia%G(m0iW%OztXjYG)6OfFMM6f=hsxpe+?IdnN#_o;gNQD6UTF=Nt5e=t*= zNSr#G!MJn1{*{KIT(P_7aK3*!mnh6S|J9EMMhp29g~aKB{MlSFQ*Z_wzUUdsr3#tT znOqSZZL)|H$u%aWKYnjHRe@d2+UKu^Qf-0icCGyWs&*A{UI>i0Z=eiz20Nwi3U)Cl z*y-oh6x_^z!Vu}EaE zlW7b&3ys0x_ud_8>RB;7zSyxz-xzj&X?)d*tCr<}9kE8TNbuK-7{ci08R|t3(mb;< s{t}2FNlTL4_@dM)`qIdfr^OzlEz7Z{k6`ce$IY`^-`OYk^kR6!|Axj|9{>OV delta 1605 zcmZ`(UuauZ82_EqBu&$r-n6zl=cH*Ii`$s_*QUk6+C-?C(=Ns-RZx>Qk!o4drf6|2 zfyo#?RLd1RL8RmS1%zhW5ODh32-Fq7l=+}it(1<&VzX(OKjn%=c=e@`9gp+3ch zJMFMOXwRtW!1XSgCO8B3C+dK*?4Q*>HQ4a!EoE(9`r^o&&BD?1BUdw-86EX<&ozzcqQG`r`b_XP4-QcRB%@5jj!7 z2DxSU)QQ~ve1Am!G9yJY3yURcGq_z%?E%bjv89q2bP}3<=DT-s4sZrJ>1%YYbt1}s zZBEC-!LOdvKCB9k;c?xI*XZxV6JlA$RprC7IzpcxU~pCNqF_|)PYJ&c6K7I(9TWbW z-fJ>TR)hBGPJb<~CrQm?;TAZmLsY<39#Ma2XU#9_bLFURQGRzVDC#>`g+$%uMi~(G zjk~rB$0y8D-m2lC-p?gRp1nQKGwc6VvGy7ZILZrh_aTA9yy>>eqO+wKGskObXRvr7 zEzjDQ>S1)ZBwZi*kFwa2E!Q9Q3@g+Q^K@JBFcscx%QJxm^tKdZE+Mo-y@LL>s%Z#ZNw~wi4WplVnOUrqUKRqJdau866Vzz;b(+j7JgayrtnSS9m@E3DC0jQJmR9U zc9N zL_D1?C&tprB5k9k*j&6=8A;71?ded&u7<3>uic-gN%oWB6Kml?-OSk^hK@CYeTk0g zag^EZMa=O6k|-fXo}eYoXOudDxbQOB7+I3*j-OeLabKL43P!k-5gM-#tZ4n`xct1= HVx9j2t)ldp diff --git a/obj/Debug/net10.0/refint/CPUSimulation.dll b/obj/Debug/net10.0/refint/CPUSimulation.dll index 7631741ae5330f9664a77ec04ef079b0fce82c74..c9afc7b4247586eefc553cd375483c72d677f723 100644 GIT binary patch delta 2096 zcmZ8iU2IfE6#iyzyKMiqx7&ggsJ3jC0*c#R(r!b7Yg@!xV_OO(q&~2}v zZ7eoKgHo=kl9;G5(L^LFeE}aOY5HJzG&~R^L3uOA2VZ#dn{)4W3wJZ$eBU`|&YYP$ zcV{j985(5&HudMs6zV^fPg0vlGxyOppoRnwRTP`t3C*|$HZyrA8$%FaV_1oM z<2t;`sNT_rvq;3%J?+Da;0$i-Mkto(!)38t!}IiBQ{NJ61Xp1AeZk{mSrXnQ@w0;G zVRBAd7fq2Uxl<|Drno*ESM-a*jcO33VTrHSQ&pmpmWkBxi?Xz<>O{?WDj;gV7uh6g z!ppKz)b5feTSazzYOAQ2H?WQG&&EyGYbNaAu6A0xFd8@YFX0pY9HU*euz8hh)9aLa zL`At2FA}ZjW8P9(p2U7`Y(*X5$|^~Rd2TDpMqOFKuSa>VE55^zD6@yG!xhm2ruR!i=?mC(1t9)(4_W zW)t0kYff(BrL|Dk*IFJ(-)Ah=ox=5P_0$sL_!1TMxB3R#)_kw)t82=AO>M?!=3gg` zLe}!}6Y*AoCT*`%ey;FIMkzeSFG2AnxMK@=n{TTvbmFO(KT4*C*4H!aqm`jEp`g; z#%hVH>!YxFwhaymjtL$UObAXB72YIn#H^s72}7K4C#T$j6c*JU9?KuG2hF%i+=@HI z5bhCo;{h>>XBe{&eZ&C_5{FS5V>d32N#X$B!285A_)w*Ur-aW7pBH{h_$}f0h2Ix$ zDKpkmW^B9gkcY-HAbdc)Dd8!@<7!^Syg0rVteP`#ZT)kF+wWZ*V%~yD=^J1<|JHWI zrlwC!4Ia%G(m0iW%OztXjYG)6OfFMM6f=hsxpe+?IdnN#_o;gNQD6UTF=Nt5e=t*= zNSr#G!MJn1{*{KIT(P_7aK3*!mnh6S|J9EMMhp29g~aKB{MlSFQ*Z_wzUUdsr3#tT znOqSZZL)|H$u%aWKYnjHRe@d2+UKu^Qf-0icCGyWs&*A{UI>i0Z=eiz20Nwi3U)Cl z*y-oh6x_^z!Vu}EaE zlW7b&3ys0x_ud_8>RB;7zSyxz-xzj&X?)d*tCr<}9kE8TNbuK-7{ci08R|t3(mb;< s{t}2FNlTL4_@dM)`qIdfr^OzlEz7Z{k6`ce$IY`^-`OYk^kR6!|Axj|9{>OV delta 1605 zcmZ`(UuauZ82_EqBu&$r-n6zl=cH*Ii`$s_*QUk6+C-?C(=Ns-RZx>Qk!o4drf6|2 zfyo#?RLd1RL8RmS1%zhW5ODh32-Fq7l=+}it(1<&VzX(OKjn%=c=e@`9gp+3ch zJMFMOXwRtW!1XSgCO8B3C+dK*?4Q*>HQ4a!EoE(9`r^o&&BD?1BUdw-86EX<&ozzcqQG`r`b_XP4-QcRB%@5jj!7 z2DxSU)QQ~ve1Am!G9yJY3yURcGq_z%?E%bjv89q2bP}3<=DT-s4sZrJ>1%YYbt1}s zZBEC-!LOdvKCB9k;c?xI*XZxV6JlA$RprC7IzpcxU~pCNqF_|)PYJ&c6K7I(9TWbW z-fJ>TR)hBGPJb<~CrQm?;TAZmLsY<39#Ma2XU#9_bLFURQGRzVDC#>`g+$%uMi~(G zjk~rB$0y8D-m2lC-p?gRp1nQKGwc6VvGy7ZILZrh_aTA9yy>>eqO+wKGskObXRvr7 zEzjDQ>S1)ZBwZi*kFwa2E!Q9Q3@g+Q^K@JBFcscx%QJxm^tKdZE+Mo-y@LL>s%Z#ZNw~wi4WplVnOUrqUKRqJdau866Vzz;b(+j7JgayrtnSS9m@E3DC0jQJmR9U zc9N zL_D1?C&tprB5k9k*j&6=8A;71?ded&u7<3>uic-gN%oWB6Kml?-OSk^hK@CYeTk0g zag^EZMa=O6k|-fXo}eYoXOudDxbQOB7+I3*j-OeLabKL43P!k-5gM-#tZ4n`xct1= HVx9j2t)ldp