summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2025-04-19 21:41:34 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2025-04-19 21:41:34 -0400
commit48ca8e4061cb346392e57b0ec8ab5750feb455e4 (patch)
treea77244fe9b91bfc10a52d78ca50332eace5a00be
parent6a4294b14f6fe05d59964844153f364c6e096b62 (diff)
HW 12: MD command done
-rw-r--r--cmpen472hw12_McDonnell/Full_Chip_Simulation.ini2
-rw-r--r--cmpen472hw12_McDonnell/Sources/main.asm48
-rw-r--r--cmpen472hw12_McDonnell/bin/Project.absbin7998 -> 8542 bytes
-rw-r--r--cmpen472hw12_McDonnell/bin/Project.abs.s1987
-rw-r--r--cmpen472hw12_McDonnell/bin/main.dbg48
-rw-r--r--cmpen472hw12_McDonnell/cmpen472hw12_McDonnell_Data/Standard/ObjectCode/main.asm.obin7998 -> 8542 bytes
-rw-r--r--cmpen472hw12_McDonnell/cmpen472hw12_McDonnell_Data/Standard/ObjectCode/main.asm.sx87
-rw-r--r--cmpen472hw12_McDonnell/cmpen472hw12_McDonnell_Data/Standard/TargetDataWindows.tdtbin65120 -> 65227 bytes
8 files changed, 171 insertions, 101 deletions
diff --git a/cmpen472hw12_McDonnell/Full_Chip_Simulation.ini b/cmpen472hw12_McDonnell/Full_Chip_Simulation.ini
index b71f542..dc0c4a5 100644
--- a/cmpen472hw12_McDonnell/Full_Chip_Simulation.ini
+++ b/cmpen472hw12_McDonnell/Full_Chip_Simulation.ini
@@ -10,7 +10,7 @@ Target=sim
Layout=ASM_layout.hwl
LoadDialogOptions=AUTOERASEANDFLASH NORUNAFTERLOAD
CPU=HC12
-MainFrame=2,3,-1,-1,-1,-1,53,19,1873,1042
+MainFrame=0,1,-1,-1,-1,-1,53,19,1873,1042
Configuration=Full_Chip_Simulation.hwc
Statusbar=1
ShowToolbar=1
diff --git a/cmpen472hw12_McDonnell/Sources/main.asm b/cmpen472hw12_McDonnell/Sources/main.asm
index 3abe95a..a5935af 100644
--- a/cmpen472hw12_McDonnell/Sources/main.asm
+++ b/cmpen472hw12_McDonnell/Sources/main.asm
@@ -98,10 +98,6 @@ pgstart lds #$3100 ; initialize the stack pointer
jsr WriteString ; Write the string to the serial console
mainLoop
- ldx #$3000
- ldy #$0100
- jsr MDCommand
-
ldx #buffer ; Load the address of the buffer into X
ldy lenBuf ; Load the length of the buffer into Y
jsr Zeros ; Fill the buffer with zeros
@@ -151,16 +147,18 @@ CheckInput
pshd ; Save D to the stack
ldaa 1,x+ ; Read Character from the string in X
cmpa #'W' ; Compare Character to 'W'
- beq cWrite ; If A == 'W', branch to cWrite
+ lbeq cWrite ; If A == 'W', branch to cWrite
cmpa #'Q' ; Compare A to 'Q'
- beq cTypeWrite ; If A == 'Q', branch to cTypeWrite
+ lbeq cTypeWrite ; If A == 'Q', branch to cTypeWrite
+ cmpa #'M' ; Compare A to 'M'
+ beq cMDCommand ; If A != 'M', Check if MD command
cmpa #'S' ; Compare A to 'S'
- bne cUnknownCMD ; If A != 'S', Command unknown
+ lbne cUnknownCMD ; If A != 'S', Command unknown
ldaa 0,x ; Load next character but don't increment
cmpa #'$' ; Compare A to '$'
- bne cUnknownCMD ; If A != '$', branch to unknown command
+ lbne cUnknownCMD ; If A != '$', branch to unknown command
jsr ReadHex ; ReadHex to Read the memory Address
- beq cBadAddr ; If Z == 1, branch to cBadAddr
+ lbeq cBadAddr ; If Z == 1, branch to cBadAddr
exg Y,X ; Exchange Y for X
pshx ; Save X to the stack
ldx #buffer ; Load address of buffer into X
@@ -168,6 +166,33 @@ CheckInput
jsr Zeros ; Fill buffer with Zeros
pulx ; Restore X from the stack
bra cDone ; branch always to cDone
+cMDCommand ldaa 1,x+ ; Load next character into A
+ cmpa #'D' ; Compare do 'D' character
+ bne cUnknownCMD ; If A != 'D', unknown command
+ ldaa 0,x ; Load next character but don't increment
+ cmpa #'$' ; Compare A to '$'
+ bne cUnknownCMD ; If A != '$', branch to unknown command
+ jsr ReadHex ; ReadHex to Read the memory Address
+ beq cBadAddr ; If Z == 1, branch to cBadAddr
+ exg Y,D ; Exchange Y and D
+ pshd ; Save D to the stack
+mSkipSpaces ldaa 1,x+ ; Load next character into A
+ beq cBadData ; If A == 0, branch to bad Data (no data given)
+ cmpa #' ' ; Compare A to space character
+ beq mSkipSpaces ; While A == ' ', loop to skip spaces
+ cmpa #'$' ; Compare A to '$'
+ bne cBadData ; If A != '$', branch to cBadData
+ dex ; Decrement X by 1
+ jsr ReadHex ; Jump to ReadHex to read hex data
+ beq cBadData ; If Z == 1, branch to cBadData
+ puld ; Restore D from the stack
+ exg D,X ; Exchange D and X
+ pshd ; Save D to the stack, cBadData usually has 2 D's on the stack
+ cpy #2 ; Compare Y to 2
+ blo cBadData ; No distances below 2 bytes
+ puld ; Restore D from the stack
+ jsr MDCommand ; Jump to MDCommand
+ bra cNoPrint ; Done with command
cWrite ldaa 0,x ; Load next character but don't increment
cmpa #'$' ; Compare A to '$'
bne cUnknownCMD ; If A != '$', branch to unknown command
@@ -192,7 +217,7 @@ cWriteData puld ; Restore D from the stack
exg D,X ; Exchange D and X
sty x ; Write data in Y to memory in X
cDone jsr PrintMem ; Jump to PrintMem to print the contents of the location
- puld ; Restore D from the stack
+cNoPrint puld ; Restore D from the stack
pulx ; Restore X from the stack
rts ; Return to caller
cBadAddr ldx #badAddr ; Load the address of badAddr into X
@@ -818,6 +843,9 @@ twMsg dc.b 'Welcome to Type Writer, you may type below.',CR,LF
; msg: this is the main option menu string
msg dc.b 'S: Show the contents of memory location in word',CR,LF
dc.b 'W: Write the data word (not byte) to memory location',CR,LF
+ dc.b 'MD: Display the contents of continuous memory locations',CR,LF
+ dc.b 'LD: Load a block of data to continuous memory locations',CR,LF
+ dc.b 'GO: Run the program at the specified memory location',CR,LF
dc.b 'QUIT: Quit the main program, run Type writer program.',CR,LF,NULL
end ; last line of the file
diff --git a/cmpen472hw12_McDonnell/bin/Project.abs b/cmpen472hw12_McDonnell/bin/Project.abs
index bafb25c..a70038c 100644
--- a/cmpen472hw12_McDonnell/bin/Project.abs
+++ b/cmpen472hw12_McDonnell/bin/Project.abs
Binary files differ
diff --git a/cmpen472hw12_McDonnell/bin/Project.abs.s19 b/cmpen472hw12_McDonnell/bin/Project.abs.s19
index 32c163b..43572df 100644
--- a/cmpen472hw12_McDonnell/bin/Project.abs.s19
+++ b/cmpen472hw12_McDonnell/bin/Project.abs.s19
@@ -1,44 +1,51 @@
S0590000433A5C55736572735C4A61636F62204D63446F6E6E656C6C5C446F63756D656E74735C434D50454E2D3437322D48575C636D70656E343732687731325F4D63446F6E6E656C6C5C62696E5C50726F6A6563742E6162731C
S1233000000500000000000000000000000000000000000010000000000000000000000097
S10B3020000000000000001094
-S1233100CF310086FF5A03860C5ACBCC00015CC8CE353B163467CE3000CD0100163232CE1E
-S12331203002FD3013163458863E1634928620163492CE3002FD3013163473CE3002163111
-S12331405520D3CE34EA16346716349927FB1634925A0120F4343BA63081572722815127D7
-S12331606D81532660A6008124265A1631E72742B7E534CE3002FD301316345830202DA64D
-S123318000812426401631E72728B7E43BA630272A812027F881242708091632A2271C20BC
-S12331A006091631E727143AB7C56D001632CF3A303DCE34A21634673A303DCE34BB1634AF
-S12331C0673A3A303DCE34D11634673A303DA630815526F1A630814926EBA630815426E54E
-S12331E0A63026E10631433BCD0000E630C124263BE6302732C120272EC1302D2FC1392202
-S12332000EC03037CC001013B7C63319ED20E2C1412D19C1462215C041CB0A37CC0010134C
-S1233220B7C63319ED20CA87B7023A3D8604B7023A3D34353B3435B754CE3002FD3013160B
-S12332403458CD300216339486201634923130CC00008D0000273D0303E630163360E63087
-S1233260163360B760840F26E9860D163492860A1634928D0000271C3435B754CE3002FDCC
-S12332803013163458CD30021633948620163492313020BE860D163492860A1634923A3162
-S12332A0303D3BCD0000E630271AC1202716C1302D17C1392213C03037CC000A13B7C633FC
-S12332C019ED20E287B7023A3D8604B7023A3D353BB7D4CD3002163394B7C5863D1634927F
-S12332E0863E163492EC00CE3002FD301316345816333B36862016349216349232CD300213
-S123330016339436862016349216349232CE3002FD3013163458CD3002163406860D1634F8
-S123332092860A1634923A313D343536A67F27056A3020F8876A303231303D343B37180E84
-S12333408625163492CE001055B72084018B301634920405088E000826EE3320EB3A303D1C
-S12333603B353487CE00101810B750810A24048B3020048B41800A163492180F810A240473
-S12333808B3020048B41800A163492862016349230313A3D343B358C0000275336353486EF
-S12333A030CE3015CD00051634613031876A4032CE001018108E00002716C10A2D0ACB41A6
-S12333C0C00A6B60B7D420E8CB306B60B7D420E08C000026E586246A60CE301516332916CA
-S12333E03467FD3026CE3015163458313A303D862416349286301634921634921634921668
-S12334003492313A303D343B358C000027413635348630CE3015CD00051634613031876A3B
-S12334204032CE000A18108E00002708CB306B60B7D420EE8C000026F3CE301516332916BA
-S12334403467FD3026CE3015163458313A303D8630163492313A303D36876A300436FB32C5
-S12334603D6A300436FB3D36A630270516349220F7323D36353416349927FB810D270A6A98
-S12334803016349203270220ED860A1634923031323D4FCC80FC5ACF3D4FCC200396CF3DCA
-S12334A0873D696E76616C696420696E7075742C20616464726573730D0A00696E76616CAA
-S12334C0696420696E7075742C20646174610D0A00696E76616C696420696E7075742C204B
-S12334E0636F6D6D616E640D0A0057656C636F6D6520746F205479706520577269746572A4
-S12335002C20796F75206D617920747970652062656C6F772E0D0A526573746172742074BE
-S12335206F20656E746572206D61696E206D656E7520616761696E2E0D0A00533A202020EE
-S123354020202053686F772074686520636F6E74656E7473206F66206D656D6F7279206C3D
-S12335606F636174696F6E20696E20776F72640D0A573A2020202020205772697465207480
-S12335806865206461746120776F726420286E6F7420627974652920746F206D656D6F72EB
-S12335A079206C6F636174696F6E0D0A515549543A2020205175697420746865206D6169C6
-S12335C06E2070726F6772616D2C2072756E2054797065207772697465722070726F6772F7
-S10935E0616D2E0D0A00CE
+S1233100CF310086FF5A03860C5ACBCC00015CC8CE35751634A1CE3002FD3013163492861C
+S12331203E1634CC86201634CCCE3002FD30131634ADCE300216314C20DCCE35241634A1A3
+S12331401634D327FB1634CC5A0120F4343BA6308157182700638151182700AC814D272412
+S1233160815318260099A60081241826009116322118270077B7E534CE3002FD301316340D
+S123318092302062A63081442675A6008124266F1632212757B7E43BA6302759812027F8FE
+S12331A08124265109163221274B3AB7C53B8D000225423A16326C2030A60081242640161F
+S12331C032212728B7E43BA630272A812027F881242708091632DC271C2006091632212789
+S12331E0143AB7C56D001633093A303DCE34DC1634A13A303DCE34F51634A13A3A303DCE9A
+S1233200350B1634A13A303DA630815526F1A630814926EBA630815426E5A63026E106319A
+S12332203A3BCD0000E630C124263BE6302732C120272EC1302D2FC139220EC03037CC00DD
+S12332401013B7C63319ED20E2C1412D19C1462215C041CB0A37CC001013B7C63319ED2037
+S1233260CA87B7023A3D8604B7023A3D34353B3435B754CE3002FD3013163492CD300216C6
+S123328033CE86201634CC3130CC00008D0000273D0303E63016339AE63016339AB76084BC
+S12332A00F26E9860D1634CC860A1634CC8D0000271C3435B754CE3002FD3013163492CD70
+S12332C030021633CE86201634CC313020BE860D1634CC860A1634CC3A31303D3BCD000077
+S12332E0E630271AC1202716C1302D17C1392213C03037CC000A13B7C63319ED20E287B7EB
+S1233300023A3D8604B7023A3D353BB7D4CD30021633CEB7C5863D1634CC863E1634CCEC4A
+S123332000CE3002FD30131634921633753686201634CC1634CC32CD30021633CE36862083
+S12333401634CC1634CC32CE3002FD3013163492CD3002163440860D1634CC860A1634CC17
+S12333603A313D343536A67F27056A3020F8876A303231303D343B37180E86251634CCCEB3
+S1233380001055B72084018B301634CC0405088E000826EE3320EB3A303D3B353487CE00FE
+S12333A0101810B750810A24048B3020048B41800A1634CC180F810A24048B3020048B4147
+S12333C0800A1634CC86201634CC30313A3D343B358C000027533635348630CE3015CD00D6
+S12333E00516349B3031876A4032CE001018108E00002716C10A2D0ACB41C00A6B60B7D41C
+S123340020E8CB306B60B7D420E08C000026E586246A60CE30151633631634A1FD3026CE79
+S12334203015163492313A303D86241634CC86301634CC1634CC1634CC1634CC313A303DE9
+S1233440343B358C000027413635348630CE3015CD000516349B3031876A4032CE000A18FD
+S1233460108E00002708CB306B60B7D420EE8C000026F3CE30151633631634A1FD3026CEAC
+S12334803015163492313A303D86301634CC313A303D36876A300436FB323D6A300436FBC1
+S12334A03D36A63027051634CC20F7323D3635341634D327FB810D270A6A301634CC032780
+S12334C00220ED860A1634CC3031323D4FCC80FC5ACF3D4FCC200396CF3D873D696E766114
+S12334E06C696420696E7075742C20616464726573730D0A00696E76616C696420696E70A8
+S123350075742C20646174610D0A00696E76616C696420696E7075742C20636F6D6D616EC3
+S1233520640D0A0057656C636F6D6520746F2054797065205772697465722C20796F752015
+S12335406D617920747970652062656C6F772E0D0A5265737461727420746F20656E74650C
+S123356072206D61696E206D656E7520616761696E2E0D0A00533A20202020202053686F5F
+S1233580772074686520636F6E74656E7473206F66206D656D6F7279206C6F636174696F08
+S12335A06E20696E20776F72640D0A573A2020202020205772697465207468652064617499
+S12335C06120776F726420286E6F7420627974652920746F206D656D6F7279206C6F636199
+S12335E074696F6E0D0A4D443A2020202020446973706C61792074686520636F6E74656EAD
+S12336007473206F6620636F6E74696E756F7573206D656D6F7279206C6F636174696F6E21
+S1233620730D0A4C443A20202020204C6F6164206120626C6F636B206F6620646174612097
+S1233640746F20636F6E74696E756F7573206D656D6F7279206C6F636174696F6E730D0A50
+S1233660474F3A202020202052756E207468652070726F6772616D2061742074686520733F
+S12336807065636966696564206D656D6F7279206C6F636174696F6E0D0A515549543A2007
+S12336A020205175697420746865206D61696E2070726F6772616D2C2072756E20547970E7
+S11736C065207772697465722070726F6772616D2E0D0A0073
S9030000FC
diff --git a/cmpen472hw12_McDonnell/bin/main.dbg b/cmpen472hw12_McDonnell/bin/main.dbg
index f017a20..2a24b35 100644
--- a/cmpen472hw12_McDonnell/bin/main.dbg
+++ b/cmpen472hw12_McDonnell/bin/main.dbg
@@ -98,10 +98,6 @@ pgstart lds #$3100 ; initialize the stack pointer
jsr WriteString ; Write the string to the serial console
mainLoop
- ldx #$3000
- ldy #$0100
- jsr MDCommand
-
ldx #buffer ; Load the address of the buffer into X
ldy lenBuf ; Load the length of the buffer into Y
jsr Zeros ; Fill the buffer with zeros
@@ -151,16 +147,18 @@ CheckInput
pshd ; Save D to the stack
ldaa 1,x+ ; Read Character from the string in X
cmpa #'W' ; Compare Character to 'W'
- beq cWrite ; If A == 'W', branch to cWrite
+ lbeq cWrite ; If A == 'W', branch to cWrite
cmpa #'Q' ; Compare A to 'Q'
- beq cTypeWrite ; If A == 'Q', branch to cTypeWrite
+ lbeq cTypeWrite ; If A == 'Q', branch to cTypeWrite
+ cmpa #'M' ; Compare A to 'M'
+ beq cMDCommand ; If A != 'M', Check if MD command
cmpa #'S' ; Compare A to 'S'
- bne cUnknownCMD ; If A != 'S', Command unknown
+ lbne cUnknownCMD ; If A != 'S', Command unknown
ldaa 0,x ; Load next character but don't increment
cmpa #'$' ; Compare A to '$'
- bne cUnknownCMD ; If A != '$', branch to unknown command
+ lbne cUnknownCMD ; If A != '$', branch to unknown command
jsr ReadHex ; ReadHex to Read the memory Address
- beq cBadAddr ; If Z == 1, branch to cBadAddr
+ lbeq cBadAddr ; If Z == 1, branch to cBadAddr
exg Y,X ; Exchange Y for X
pshx ; Save X to the stack
ldx #buffer ; Load address of buffer into X
@@ -168,6 +166,33 @@ CheckInput
jsr Zeros ; Fill buffer with Zeros
pulx ; Restore X from the stack
bra cDone ; branch always to cDone
+cMDCommand ldaa 1,x+ ; Load next character into A
+ cmpa #'D' ; Compare do 'D' character
+ bne cUnknownCMD ; If A != 'D', unknown command
+ ldaa 0,x ; Load next character but don't increment
+ cmpa #'$' ; Compare A to '$'
+ bne cUnknownCMD ; If A != '$', branch to unknown command
+ jsr ReadHex ; ReadHex to Read the memory Address
+ beq cBadAddr ; If Z == 1, branch to cBadAddr
+ exg Y,D ; Exchange Y and D
+ pshd ; Save D to the stack
+mSkipSpaces ldaa 1,x+ ; Load next character into A
+ beq cBadData ; If A == 0, branch to bad Data (no data given)
+ cmpa #' ' ; Compare A to space character
+ beq mSkipSpaces ; While A == ' ', loop to skip spaces
+ cmpa #'$' ; Compare A to '$'
+ bne cBadData ; If A != '$', branch to cBadData
+ dex ; Decrement X by 1
+ jsr ReadHex ; Jump to ReadHex to read hex data
+ beq cBadData ; If Z == 1, branch to cBadData
+ puld ; Restore D from the stack
+ exg D,X ; Exchange D and X
+ pshd ; Save D to the stack, cBadData usually has 2 D's on the stack
+ cpy #2 ; Compare Y to 2
+ blo cBadData ; No distances below 2 bytes
+ puld ; Restore D from the stack
+ jsr MDCommand ; Jump to MDCommand
+ bra cNoPrint ; Done with command
cWrite ldaa 0,x ; Load next character but don't increment
cmpa #'$' ; Compare A to '$'
bne cUnknownCMD ; If A != '$', branch to unknown command
@@ -192,7 +217,7 @@ cWriteData puld ; Restore D from the stack
exg D,X ; Exchange D and X
sty x ; Write data in Y to memory in X
cDone jsr PrintMem ; Jump to PrintMem to print the contents of the location
- puld ; Restore D from the stack
+cNoPrint puld ; Restore D from the stack
pulx ; Restore X from the stack
rts ; Return to caller
cBadAddr ldx #badAddr ; Load the address of badAddr into X
@@ -818,5 +843,8 @@ twMsg dc.b 'Welcome to Type Writer, you may type below.',CR,LF
; msg: this is the main option menu string
msg dc.b 'S: Show the contents of memory location in word',CR,LF
dc.b 'W: Write the data word (not byte) to memory location',CR,LF
+ dc.b 'MD: Display the contents of continuous memory locations',CR,LF
+ dc.b 'LD: Load a block of data to continuous memory locations',CR,LF
+ dc.b 'GO: Run the program at the specified memory location',CR,LF
dc.b 'QUIT: Quit the main program, run Type writer program.',CR,LF,NULL
diff --git a/cmpen472hw12_McDonnell/cmpen472hw12_McDonnell_Data/Standard/ObjectCode/main.asm.o b/cmpen472hw12_McDonnell/cmpen472hw12_McDonnell_Data/Standard/ObjectCode/main.asm.o
index bafb25c..a70038c 100644
--- a/cmpen472hw12_McDonnell/cmpen472hw12_McDonnell_Data/Standard/ObjectCode/main.asm.o
+++ b/cmpen472hw12_McDonnell/cmpen472hw12_McDonnell_Data/Standard/ObjectCode/main.asm.o
Binary files differ
diff --git a/cmpen472hw12_McDonnell/cmpen472hw12_McDonnell_Data/Standard/ObjectCode/main.asm.sx b/cmpen472hw12_McDonnell/cmpen472hw12_McDonnell_Data/Standard/ObjectCode/main.asm.sx
index 9d4a153..08e7c59 100644
--- a/cmpen472hw12_McDonnell/cmpen472hw12_McDonnell_Data/Standard/ObjectCode/main.asm.sx
+++ b/cmpen472hw12_McDonnell/cmpen472hw12_McDonnell_Data/Standard/ObjectCode/main.asm.sx
@@ -1,44 +1,51 @@
S0860000433A5C55736572735C4A61636F62204D63446F6E6E656C6C5C446F63756D656E74735C434D50454E2D3437322D48575C636D70656E343732687731325F4D63446F6E6E656C6C5C636D70656E343732687731325F4D63446F6E6E656C6C5F446174615C5374616E646172645C4F626A656374436F64655C6D61696E2E61736D2E70726D71
S1233000000500000000000000000000000000000000000010000000000000000000000097
S10B3020000000000000001094
-S1233100CF310086FF5A03860C5ACBCC00015CC8CE353B163467CE3000CD0100163232CE1E
-S12331203002FD3013163458863E1634928620163492CE3002FD3013163473CE3002163111
-S12331405520D3CE34EA16346716349927FB1634925A0120F4343BA63081572722815127D7
-S12331606D81532660A6008124265A1631E72742B7E534CE3002FD301316345830202DA64D
-S123318000812426401631E72728B7E43BA630272A812027F881242708091632A2271C20BC
-S12331A006091631E727143AB7C56D001632CF3A303DCE34A21634673A303DCE34BB1634AF
-S12331C0673A3A303DCE34D11634673A303DA630815526F1A630814926EBA630815426E54E
-S12331E0A63026E10631433BCD0000E630C124263BE6302732C120272EC1302D2FC1392202
-S12332000EC03037CC001013B7C63319ED20E2C1412D19C1462215C041CB0A37CC0010134C
-S1233220B7C63319ED20CA87B7023A3D8604B7023A3D34353B3435B754CE3002FD3013160B
-S12332403458CD300216339486201634923130CC00008D0000273D0303E630163360E63087
-S1233260163360B760840F26E9860D163492860A1634928D0000271C3435B754CE3002FDCC
-S12332803013163458CD30021633948620163492313020BE860D163492860A1634923A3162
-S12332A0303D3BCD0000E630271AC1202716C1302D17C1392213C03037CC000A13B7C633FC
-S12332C019ED20E287B7023A3D8604B7023A3D353BB7D4CD3002163394B7C5863D1634927F
-S12332E0863E163492EC00CE3002FD301316345816333B36862016349216349232CD300213
-S123330016339436862016349216349232CE3002FD3013163458CD3002163406860D1634F8
-S123332092860A1634923A313D343536A67F27056A3020F8876A303231303D343B37180E84
-S12333408625163492CE001055B72084018B301634920405088E000826EE3320EB3A303D1C
-S12333603B353487CE00101810B750810A24048B3020048B41800A163492180F810A240473
-S12333808B3020048B41800A163492862016349230313A3D343B358C0000275336353486EF
-S12333A030CE3015CD00051634613031876A4032CE001018108E00002716C10A2D0ACB41A6
-S12333C0C00A6B60B7D420E8CB306B60B7D420E08C000026E586246A60CE301516332916CA
-S12333E03467FD3026CE3015163458313A303D862416349286301634921634921634921668
-S12334003492313A303D343B358C000027413635348630CE3015CD00051634613031876A3B
-S12334204032CE000A18108E00002708CB306B60B7D420EE8C000026F3CE301516332916BA
-S12334403467FD3026CE3015163458313A303D8630163492313A303D36876A300436FB32C5
-S12334603D6A300436FB3D36A630270516349220F7323D36353416349927FB810D270A6A98
-S12334803016349203270220ED860A1634923031323D4FCC80FC5ACF3D4FCC200396CF3DCA
-S12334A0873D696E76616C696420696E7075742C20616464726573730D0A00696E76616CAA
-S12334C0696420696E7075742C20646174610D0A00696E76616C696420696E7075742C204B
-S12334E0636F6D6D616E640D0A0057656C636F6D6520746F205479706520577269746572A4
-S12335002C20796F75206D617920747970652062656C6F772E0D0A526573746172742074BE
-S12335206F20656E746572206D61696E206D656E7520616761696E2E0D0A00533A202020EE
-S123354020202053686F772074686520636F6E74656E7473206F66206D656D6F7279206C3D
-S12335606F636174696F6E20696E20776F72640D0A573A2020202020205772697465207480
-S12335806865206461746120776F726420286E6F7420627974652920746F206D656D6F72EB
-S12335A079206C6F636174696F6E0D0A515549543A2020205175697420746865206D6169C6
-S12335C06E2070726F6772616D2C2072756E2054797065207772697465722070726F6772F7
-S10935E0616D2E0D0A00CE
+S1233100CF310086FF5A03860C5ACBCC00015CC8CE35751634A1CE3002FD3013163492861C
+S12331203E1634CC86201634CCCE3002FD30131634ADCE300216314C20DCCE35241634A1A3
+S12331401634D327FB1634CC5A0120F4343BA6308157182700638151182700AC814D272412
+S1233160815318260099A60081241826009116322118270077B7E534CE3002FD301316340D
+S123318092302062A63081442675A6008124266F1632212757B7E43BA6302759812027F8FE
+S12331A08124265109163221274B3AB7C53B8D000225423A16326C2030A60081242640161F
+S12331C032212728B7E43BA630272A812027F881242708091632DC271C2006091632212789
+S12331E0143AB7C56D001633093A303DCE34DC1634A13A303DCE34F51634A13A3A303DCE9A
+S1233200350B1634A13A303DA630815526F1A630814926EBA630815426E5A63026E106319A
+S12332203A3BCD0000E630C124263BE6302732C120272EC1302D2FC139220EC03037CC00DD
+S12332401013B7C63319ED20E2C1412D19C1462215C041CB0A37CC001013B7C63319ED2037
+S1233260CA87B7023A3D8604B7023A3D34353B3435B754CE3002FD3013163492CD300216C6
+S123328033CE86201634CC3130CC00008D0000273D0303E63016339AE63016339AB76084BC
+S12332A00F26E9860D1634CC860A1634CC8D0000271C3435B754CE3002FD3013163492CD70
+S12332C030021633CE86201634CC313020BE860D1634CC860A1634CC3A31303D3BCD000077
+S12332E0E630271AC1202716C1302D17C1392213C03037CC000A13B7C63319ED20E287B7EB
+S1233300023A3D8604B7023A3D353BB7D4CD30021633CEB7C5863D1634CC863E1634CCEC4A
+S123332000CE3002FD30131634921633753686201634CC1634CC32CD30021633CE36862083
+S12333401634CC1634CC32CE3002FD3013163492CD3002163440860D1634CC860A1634CC17
+S12333603A313D343536A67F27056A3020F8876A303231303D343B37180E86251634CCCEB3
+S1233380001055B72084018B301634CC0405088E000826EE3320EB3A303D3B353487CE00FE
+S12333A0101810B750810A24048B3020048B41800A1634CC180F810A24048B3020048B4147
+S12333C0800A1634CC86201634CC30313A3D343B358C000027533635348630CE3015CD00D6
+S12333E00516349B3031876A4032CE001018108E00002716C10A2D0ACB41C00A6B60B7D41C
+S123340020E8CB306B60B7D420E08C000026E586246A60CE30151633631634A1FD3026CE79
+S12334203015163492313A303D86241634CC86301634CC1634CC1634CC1634CC313A303DE9
+S1233440343B358C000027413635348630CE3015CD000516349B3031876A4032CE000A18FD
+S1233460108E00002708CB306B60B7D420EE8C000026F3CE30151633631634A1FD3026CEAC
+S12334803015163492313A303D86301634CC313A303D36876A300436FB323D6A300436FBC1
+S12334A03D36A63027051634CC20F7323D3635341634D327FB810D270A6A301634CC032780
+S12334C00220ED860A1634CC3031323D4FCC80FC5ACF3D4FCC200396CF3D873D696E766114
+S12334E06C696420696E7075742C20616464726573730D0A00696E76616C696420696E70A8
+S123350075742C20646174610D0A00696E76616C696420696E7075742C20636F6D6D616EC3
+S1233520640D0A0057656C636F6D6520746F2054797065205772697465722C20796F752015
+S12335406D617920747970652062656C6F772E0D0A5265737461727420746F20656E74650C
+S123356072206D61696E206D656E7520616761696E2E0D0A00533A20202020202053686F5F
+S1233580772074686520636F6E74656E7473206F66206D656D6F7279206C6F636174696F08
+S12335A06E20696E20776F72640D0A573A2020202020205772697465207468652064617499
+S12335C06120776F726420286E6F7420627974652920746F206D656D6F7279206C6F636199
+S12335E074696F6E0D0A4D443A2020202020446973706C61792074686520636F6E74656EAD
+S12336007473206F6620636F6E74696E756F7573206D656D6F7279206C6F636174696F6E21
+S1233620730D0A4C443A20202020204C6F6164206120626C6F636B206F6620646174612097
+S1233640746F20636F6E74696E756F7573206D656D6F7279206C6F636174696F6E730D0A50
+S1233660474F3A202020202052756E207468652070726F6772616D2061742074686520733F
+S12336807065636966696564206D656D6F7279206C6F636174696F6E0D0A515549543A2007
+S12336A020205175697420746865206D61696E2070726F6772616D2C2072756E20547970E7
+S11736C065207772697465722070726F6772616D2E0D0A0073
S9033100CB
diff --git a/cmpen472hw12_McDonnell/cmpen472hw12_McDonnell_Data/Standard/TargetDataWindows.tdt b/cmpen472hw12_McDonnell/cmpen472hw12_McDonnell_Data/Standard/TargetDataWindows.tdt
index 79d5b40..42dd979 100644
--- a/cmpen472hw12_McDonnell/cmpen472hw12_McDonnell_Data/Standard/TargetDataWindows.tdt
+++ b/cmpen472hw12_McDonnell/cmpen472hw12_McDonnell_Data/Standard/TargetDataWindows.tdt
Binary files differ