[m5-dev] changeset in m5: m5: Regression Tester Update

2010-01-29 Thread Brad Beckmann
changeset 5bd33f7c26ea in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=5bd33f7c26ea description: m5: Regression Tester Update This patch includes the necessary regression updates to test the new ruby configuration system. The patch includes support for

[m5-dev] changeset in m5: ruby: Replaced gems_common debug statements

2010-01-29 Thread Brad Beckmann
changeset a162a2b0b1f8 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=a162a2b0b1f8 description: ruby: Replaced gems_common debug statements Replaced Ruby debug statements with M5 statements. diffstat: 2 files changed, 3 insertions(+), 1 deletion(-) src/mem/gem

[m5-dev] changeset in m5: ruby: removed last level cache support

2010-01-29 Thread Brad Beckmann
changeset 775342cda4db in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=775342cda4db description: ruby: removed last level cache support Removed the last level cache support and MOESI_hammer's dependency on it. Replaces the LLC support with the more gener

[m5-dev] changeset in m5: ruby: Added a Scons option to prevent HTML file...

2010-01-29 Thread Brad Beckmann
changeset a27441e3d106 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=a27441e3d106 description: ruby: Added a Scons option to prevent HTML file creation diffstat: 2 files changed, 13 insertions(+), 4 deletions(-) src/mem/protocol/SConscript | 14 ++ src/me

[m5-dev] changeset in m5: ruby: ruby_se.py updated to new config system

2010-01-29 Thread Brad Beckmann
changeset bb6be90ec74b in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=bb6be90ec74b description: ruby: ruby_se.py updated to new config system diffstat: 1 file changed, 29 insertions(+), 30 deletions(-) configs/example/ruby_se.py | 59 +

[m5-dev] changeset in m5: ruby: Removed if else statement in create_system

2010-01-29 Thread Brad Beckmann
changeset 1a46c5d58ede in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=1a46c5d58ede description: ruby: Removed if else statement in create_system Based on Steve's suggestion, the ugly if-elif statement and multiple protocol module import calls are remove

[m5-dev] changeset in m5: ruby: Removed static members in RubyPort includ...

2010-01-29 Thread Brad Beckmann
changeset 1620cffaa3b6 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=1620cffaa3b6 description: ruby: Removed static members in RubyPort including hitcallback Removed static members in RubyPort and removed the ruby request unique id. diffstat: 10 files changed

[m5-dev] changeset in m5: ruby: Removed the old config interface

2010-01-29 Thread Brad Beckmann
changeset fd852ed8c6b4 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=fd852ed8c6b4 description: ruby: Removed the old config interface Removed the old config interface from RubySystem and libruby. diffstat: 4 files changed, 11 insertions(+), 115 deletions(-) s

[m5-dev] changeset in m5: ruby: memtest-ruby updated to the new config sy...

2010-01-29 Thread Brad Beckmann
changeset dd45a54732aa in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=dd45a54732aa description: ruby: memtest-ruby updated to the new config system diffstat: 2 files changed, 58 insertions(+), 10 deletions(-) configs/example/memtest-ruby.py | 11 +++ tests/configs

[m5-dev] changeset in m5: ruby: Re-enabled orion power models

2010-01-29 Thread Brad Beckmann
changeset e031f09a7dcc in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=e031f09a7dcc description: ruby: Re-enabled orion power models Removed the dummy power function implementations so that Orion can implement them correctly. Since Orion lacks modular d

[m5-dev] changeset in m5: ruby: Converted Garnet to M5 configuration

2010-01-29 Thread Brad Beckmann
changeset 9b57f0108bc8 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=9b57f0108bc8 description: ruby: Converted Garnet to M5 configuration diffstat: 28 files changed, 340 insertions(+), 245 deletions(-) configs/common/Options.py

[m5-dev] changeset in m5: Garnet: reorganize directory tree.

2010-01-29 Thread Steve Reinhardt
changeset 341a71fd2600 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=341a71fd2600 description: Garnet: reorganize directory tree. Rename the ruby/network/garnet-foo directories to garnet/foo. Move the common NetworkHeader.hh file from garnet-fixed-pipeli

[m5-dev] changeset in m5: ruby: Added a mesh topology

2010-01-29 Thread Brad Beckmann
changeset a421f60f0e87 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=a421f60f0e87 description: ruby: Added a mesh topology diffstat: 3 files changed, 61 insertions(+), 1 deletion(-) configs/common/Options.py |4 +++ configs/ruby/Ruby.py| 12

[m5-dev] changeset in m5: ruby: MESI_CMP_directory updated to the new con...

2010-01-29 Thread Brad Beckmann
changeset 13e4df0df905 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=13e4df0df905 description: ruby: MESI_CMP_directory updated to the new config system diffstat: 6 files changed, 215 insertions(+), 105 deletions(-) configs/ruby/MESI_CMP_directory.py | 15

[m5-dev] changeset in m5: ruby: Renamed the MESI directory sm file

2010-01-29 Thread Brad Beckmann
changeset a846f65efe55 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=a846f65efe55 description: ruby: Renamed the MESI directory sm file Renamed the MESI directory file to be consistent with all other protocols. diffstat: 3 files changed, 568 insertions(+), 5

[m5-dev] changeset in m5: ruby: Sorted the file includes to maintain cons...

2010-01-29 Thread Brad Beckmann
changeset af5360e5ccd6 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=af5360e5ccd6 description: ruby: Sorted the file includes to maintain consistency diffstat: 1 file changed, 1 insertion(+), 1 deletion(-) src/mem/protocol/MESI_CMP_directory.slicc |2 +- diffs (11

[m5-dev] changeset in m5: ruby: Removed the GPL header in MESI_CMP_direct...

2010-01-29 Thread Brad Beckmann
changeset 5d6887ca9dc4 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=5d6887ca9dc4 description: ruby: Removed the GPL header in MESI_CMP_directory-msg I'm not sure how this got past our initial ruby code import, but this obviously needed to be removed.

[m5-dev] changeset in m5: ruby: MOESI_CMP_directory updated to the new co...

2010-01-29 Thread Brad Beckmann
changeset 1fdbff869ff4 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=1fdbff869ff4 description: ruby: MOESI_CMP_directory updated to the new config system diffstat: 6 files changed, 258 insertions(+), 129 deletions(-) configs/ruby/MOESI_CMP_directory.py |

[m5-dev] changeset in m5: ruby: Added atomic support to MOESI_CMP_token

2010-01-29 Thread Brad Beckmann
changeset 70026d87d4f1 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=70026d87d4f1 description: ruby: Added atomic support to MOESI_CMP_token diffstat: 1 file changed, 4 insertions(+), 4 deletions(-) src/mem/protocol/MOESI_CMP_token-L1cache.sm |8 diffs (3

[m5-dev] changeset in m5: ruby: MOESI_CMP_token updates to use the new co...

2010-01-29 Thread Brad Beckmann
changeset 0e1d7624e641 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=0e1d7624e641 description: ruby: MOESI_CMP_token updates to use the new config system diffstat: 8 files changed, 245 insertions(+), 97 deletions(-) configs/common/Options.py |1

[m5-dev] changeset in m5: ruby: fixed memory fetch bug for persistent req...

2010-01-29 Thread Brad Beckmann
changeset 041a27b02642 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=041a27b02642 description: ruby: fixed memory fetch bug for persistent requests diffstat: 1 file changed, 44 insertions(+), 10 deletions(-) src/mem/protocol/MOESI_CMP_token-dir.sm | 54 +

[m5-dev] changeset in m5: ruby: Allows boolean and string defaults for St...

2010-01-29 Thread Brad Beckmann
changeset b05de761960e in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=b05de761960e description: ruby: Allows boolean and string defaults for StateMachine parameters diffstat: 1 file changed, 13 insertions(+), 1 deletion(-) src/mem/slicc/parser.py | 14 +-

[m5-dev] changeset in m5: ruby: MI_example updates to use the new config ...

2010-01-29 Thread Brad Beckmann
changeset 35da51c349e2 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=35da51c349e2 description: ruby: MI_example updates to use the new config system diffstat: 6 files changed, 185 insertions(+), 70 deletions(-) configs/ruby/MI_example.py | 128 +

[m5-dev] changeset in m5: ruby: Memory size consistency check

2010-01-29 Thread Brad Beckmann
changeset 12390db623b4 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=12390db623b4 description: ruby: Memory size consistency check Ruby's memory is now sized according to the size of M5 physical memory. diffstat: 2 files changed, 12 insertions(+), 2 deletions

[m5-dev] changeset in m5: ruby: fixed the memory total size variable to b...

2010-01-29 Thread Brad Beckmann
changeset 7b9f3cd45b03 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=7b9f3cd45b03 description: ruby: fixed the memory total size variable to be 64-bits diffstat: 0 files changed ___ m5-dev mailing list m5-dev@m5sim.org http:

[m5-dev] changeset in m5: ruby: convert to M5 MemorySize

2010-01-29 Thread Brad Beckmann
changeset 27f47cf65ab7 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=27f47cf65ab7 description: ruby: convert to M5 MemorySize Converted both ruby caches and directory memory to use the M5 MemorySize python type. diffstat: 8 files changed, 26 insertion

[m5-dev] changeset in m5: ruby: added data print to ruby request

2010-01-29 Thread Brad Beckmann
changeset a375402313df in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=a375402313df description: ruby: added data print to ruby request diffstat: 1 file changed, 5 insertions(+), 1 deletion(-) src/mem/ruby/libruby.cc |6 +- diffs (16 lines): diff -r 5d01c182d6a

[m5-dev] changeset in m5: ruby: Added Cache and MemCntrl profiler calls

2010-01-29 Thread Brad Beckmann
changeset b5baf1dc44b4 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=b5baf1dc44b4 description: ruby: Added Cache and MemCntrl profiler calls diffstat: 1 file changed, 34 insertions(+), 2 deletions(-) src/mem/slicc/symbols/StateMachine.py | 36 +++

[m5-dev] changeset in m5: ruby: Added atomic support to MOESI_hammer

2010-01-29 Thread Brad Beckmann
changeset 5d01c182d6a7 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=5d01c182d6a7 description: ruby: Added atomic support to MOESI_hammer diffstat: 1 file changed, 3 insertions(+), 3 deletions(-) src/mem/protocol/MOESI_hammer-cache.sm |6 +++--- diffs (30 lines):

[m5-dev] changeset in m5: ruby: added the GEMS ruby tester

2010-01-29 Thread Brad Beckmann
changeset f8057af86bf7 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=f8057af86bf7 description: ruby: added the GEMS ruby tester diffstat: 16 files changed, 1355 insertions(+), 8 deletions(-) configs/example/rubytest.py | 126 src/cpu/rubytest/Check.c

[m5-dev] changeset in m5: ruby: cleaned up ruby profilers

2010-01-29 Thread Brad Beckmann
changeset cfeb3d9563dd in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=cfeb3d9563dd description: ruby: cleaned up ruby profilers Cleaned up the ruby profilers by moving the memory controller profiling code out of the main profiler object and into a separa

[m5-dev] changeset in m5: ruby: fixed MOESI_hammer data writebacks to the...

2010-01-29 Thread Brad Beckmann
changeset dff0720d106d in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=dff0720d106d description: ruby: fixed MOESI_hammer data writebacks to the directory diffstat: 1 file changed, 2 insertions(+), 2 deletions(-) src/mem/protocol/MOESI_hammer-dir.sm |4 ++-- diffs (

[m5-dev] changeset in m5: ruby: Removed RubySystem::getNumberOfSequencers

2010-01-29 Thread Brad Beckmann
changeset 649e40aad897 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=649e40aad897 description: ruby: Removed RubySystem::getNumberOfSequencers removed the static function RubySystem::getNumberOfSequencers and replaced it with a python config variable d

[m5-dev] changeset in m5: ruby: added ruby stats print

2010-01-29 Thread Brad Beckmann
changeset 5f3d2d3f977e in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=5f3d2d3f977e description: ruby: added ruby stats print Moved the previous rubymem stats print feature to ruby System so that ruby stats are printed on simulation exit. diffstat: 6 fi

[m5-dev] changeset in m5: ruby: fixed Set.cc bug to allow zero sized sets

2010-01-29 Thread Brad Beckmann
changeset fcd9e5ed33f7 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=fcd9e5ed33f7 description: ruby: fixed Set.cc bug to allow zero sized sets This is necessary for example when no dma sequencers are necessary in the simulated system. diffstat: 1 file

[m5-dev] changeset in m5: ruby: FS support using the new configuration sy...

2010-01-29 Thread Brad Beckmann
changeset 9cdf9b65d946 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=9cdf9b65d946 description: ruby: FS support using the new configuration system diffstat: 9 files changed, 107 insertions(+), 151 deletions(-) configs/common/FSConfig.py | 23 +--- configs/c

[m5-dev] changeset in m5: ruby: reorganized ruby python configuration

2010-01-29 Thread Brad Beckmann
changeset 6a2db6c8a9b1 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=6a2db6c8a9b1 description: ruby: reorganized ruby python configuration Reorganized ruby python configuration so that protocol and ruby memory system configuration code can be shared by

[m5-dev] changeset in m5: ruby: Convered ruby tracing support usage of se...

2010-01-29 Thread Brad Beckmann
changeset 87dea2f9f791 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=87dea2f9f791 description: ruby: Convered ruby tracing support usage of sequencer Modified ruby's tracing support to no longer rely on the RubySystem map to convert a sequencer string na

[m5-dev] changeset in m5: ruby: Removed out_link_vec from Consumer

2010-01-29 Thread Brad Beckmann
changeset 77451885bb00 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=77451885bb00 description: ruby: Removed out_link_vec from Consumer Removed the out_line_vec data structure from the Consumer. I'm not sure what this did before, but currently it has no

[m5-dev] changeset in m5: ruby: Memory Controller Profiler with new confi...

2010-01-29 Thread Brad Beckmann
changeset 323cd43a3c46 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=323cd43a3c46 description: ruby: Memory Controller Profiler with new config system This patch includes a rather substantial change to the memory controller profiler in order to work with

[m5-dev] changeset in m5: ruby: Converted MOESI_hammer dma cntrl to new c...

2010-01-29 Thread Brad Beckmann
changeset de8e755aca4f in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=de8e755aca4f description: ruby: Converted MOESI_hammer dma cntrl to new config system diffstat: 5 files changed, 48 insertions(+), 12 deletions(-) configs/example/memtest-ruby.py | 11 +++

[m5-dev] changeset in m5: ruby: Added the cache profiler to the new confi...

2010-01-29 Thread Brad Beckmann
changeset b10cae7bacf4 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=b10cae7bacf4 description: ruby: Added the cache profiler to the new config system diffstat: 6 files changed, 29 insertions(+), 10 deletions(-) configs/example/memtest-ruby.py| 12 --

[m5-dev] changeset in m5: ruby: Converted the sequencer deadlock event to...

2010-01-29 Thread Brad Beckmann
changeset 3137c3d41107 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=3137c3d41107 description: ruby: Converted the sequencer deadlock event to m5 eventq diffstat: 3 files changed, 18 insertions(+), 8 deletions(-) src/mem/ruby/eventqueue/RubyEventQueue.hh |1 + src/

[m5-dev] changeset in m5: ruby: Removed the tech_nm variable from RubySystem

2010-01-29 Thread Brad Beckmann
changeset 28a5d2e6b1ff in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=28a5d2e6b1ff description: ruby: Removed the tech_nm variable from RubySystem diffstat: 3 files changed, 7 deletions(-) src/mem/ruby/system/RubySystem.py |2 -- src/mem/ruby/system/System.cc |

[m5-dev] changeset in m5: ruby: Wrapped ruby events into m5 events

2010-01-29 Thread Brad Beckmann
changeset e07489ad819f in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=e07489ad819f description: ruby: Wrapped ruby events into m5 events Wrapped ruby events using the m5 event object. Removed the prio_heap from ruby's event queue and instead schedule rub

[m5-dev] changeset in m5: ruby: Added clock to ruby system

2010-01-29 Thread Brad Beckmann
changeset f57e272cf8a1 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=f57e272cf8a1 description: ruby: Added clock to ruby system As a first step to migrate ruby to the M5 eventqueue, added a clock variable to the ruby system. diffstat: 6 files changed,

[m5-dev] changeset in m5: ruby: Ruby changes required to use the python c...

2010-01-29 Thread Brad Beckmann
changeset 898047a3672c in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=898047a3672c description: ruby: Ruby changes required to use the python config system This patch includes the necessary changes to connect ruby objects using the python configuration sy

[m5-dev] changeset in m5: ruby: connects sm queues to the network

2010-01-29 Thread Brad Beckmann
changeset 5a61a8a9009a in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=5a61a8a9009a description: ruby: connects sm queues to the network diffstat: 7 files changed, 79 insertions(+), 49 deletions(-) configs/example/memtest-ruby.py| 18 -- src/mem

[m5-dev] changeset in m5: ruby: Calculate system total memory capacity in...

2010-01-29 Thread Steve Reinhardt
changeset a9e3c07205a8 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=a9e3c07205a8 description: ruby: Calculate system total memory capacity in Python rather than in RubySystem object. diffstat: 3 files changed, 12 insertions(+), 13 deletions(-) configs/example

[m5-dev] changeset in m5: ruby: Add support for generating topologies in ...

2010-01-29 Thread Steve Reinhardt
changeset c07cf29b5a33 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=c07cf29b5a33 description: ruby: Add support for generating topologies in Python. diffstat: 7 files changed, 140 insertions(+), 148 deletions(-) configs/example/memtest-ruby.py

[m5-dev] changeset in m5: scons: ignore blank lines in .slicc files

2010-01-29 Thread Steve Reinhardt
changeset c3a3c09af8be in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=c3a3c09af8be description: scons: ignore blank lines in .slicc files diffstat: 1 file changed, 1 insertion(+), 1 deletion(-) src/mem/protocol/SConscript |2 +- diffs (12 lines): diff -r 2a1a3d916

[m5-dev] changeset in m5: ruby: Convert most Ruby objects to M5 SimObjects.

2010-01-29 Thread Steve Reinhardt
changeset a658c315512c in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=a658c315512c description: ruby: Convert most Ruby objects to M5 SimObjects. The necessary companion conversion of Ruby objects generated by SLICC are converted to M5 SimObjects in the f

[m5-dev] changeset in m5: ruby: Make SLICC-generated objects SimObjects.

2010-01-29 Thread Steve Reinhardt
changeset 2a1a3d916ca8 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=2a1a3d916ca8 description: ruby: Make SLICC-generated objects SimObjects. Also add SLICC support for state-machine parameter defaults (passed through to Python as SimObject Param default

[m5-dev] changeset in m5: tests: added M5_TEST_PROGS environment variable

2010-01-29 Thread Steve Reinhardt
changeset 22df98a968bf in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=22df98a968bf description: tests: added M5_TEST_PROGS environment variable to allow override of global location for regression test binaries. diffstat: 1 file changed, 2 insertions(+), 3 delet

[m5-dev] changeset in m5: ruby: get rid of obsolete, unused CustomTopolog...

2010-01-29 Thread Steve Reinhardt
changeset 5eb6e323b595 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=5eb6e323b595 description: ruby: get rid of obsolete, unused CustomTopology class. diffstat: 3 files changed, 158 deletions(-) src/mem/ruby/network/simple/CustomTopology.cc | 140

[m5-dev] changeset in m5: ruby: fix out_port declaration

2010-01-29 Thread Brad Beckmann
changeset f55de179b43d in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=f55de179b43d description: ruby: fix out_port declaration diffstat: 1 file changed, 1 insertion(+), 1 deletion(-) src/mem/protocol/MESI_CMP_directory-dma.sm |2 +- diffs (12 lines): diff -r b26f6

[m5-dev] changeset in m5: ruby: Added message type check to OutPortDeclAS...

2010-01-29 Thread Brad Beckmann
changeset b26f60c254c1 in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=b26f60c254c1 description: ruby: Added message type check to OutPortDeclAST.py Though OutPort's message type is not used to generate code, this fix checks that the programmer's intent

Re: [m5-dev] MIPS o3 unaligned store error

2010-01-29 Thread Matt DeVuyst
I fixed the problem. See the attached patch. For the case of writing 3 bytes to memory, first I tried using a simple 3-byte array, but that didn't work quite right. Then I wrapped the 3-byte array in a struct and added some operator overloads to it so that things like assignment to 0 will work a