summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2025-04-09 17:21:17 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2025-04-09 17:21:17 -0400
commitd1cbc8fb23dfa1b7c3c87962e1c99ab65a77f1d4 (patch)
treed6a08bf94f2de31daa138ce84a1d7c06c33866dd
parentc785e7f8c1e0b58fb0b911703599bd9e65e1841b (diff)
Proper 125Hz working
-rw-r--r--cmpen472hw10_McDonnell/Full_Chip_Simulation.ini2
-rw-r--r--cmpen472hw10_McDonnell/Sources/main.asm47
-rw-r--r--cmpen472hw10_McDonnell/bin/Project.absbin10894 -> 11006 bytes
-rw-r--r--cmpen472hw10_McDonnell/bin/Project.abs.s19128
-rw-r--r--cmpen472hw10_McDonnell/bin/main.dbg47
-rw-r--r--cmpen472hw10_McDonnell/cmpen472hw10_McDonnell_Data/Standard/ObjectCode/main.asm.obin10894 -> 11006 bytes
-rw-r--r--cmpen472hw10_McDonnell/cmpen472hw10_McDonnell_Data/Standard/ObjectCode/main.asm.sx128
-rw-r--r--cmpen472hw10_McDonnell/cmpen472hw10_McDonnell_Data/Standard/TargetDataWindows.tdtbin62911 -> 62954 bytes
8 files changed, 197 insertions, 155 deletions
diff --git a/cmpen472hw10_McDonnell/Full_Chip_Simulation.ini b/cmpen472hw10_McDonnell/Full_Chip_Simulation.ini
index 8d019ae..9f8527b 100644
--- a/cmpen472hw10_McDonnell/Full_Chip_Simulation.ini
+++ b/cmpen472hw10_McDonnell/Full_Chip_Simulation.ini
@@ -10,7 +10,7 @@ Target=sim
Layout=ASM_layout.hwl
LoadDialogOptions=AUTOERASEANDFLASH NORUNAFTERLOAD
CPU=HC12
-MainFrame=0,1,-1,-1,-1,-1,234,85,1986,1101
+MainFrame=0,1,-1,-1,-1,-1,-7,85,1745,1101
Configuration=Full_Chip_Simulation.hwc
Statusbar=1
ShowToolbar=1
diff --git a/cmpen472hw10_McDonnell/Sources/main.asm b/cmpen472hw10_McDonnell/Sources/main.asm
index 2d80cd9..105b7cf 100644
--- a/cmpen472hw10_McDonnell/Sources/main.asm
+++ b/cmpen472hw10_McDonnell/Sources/main.asm
@@ -107,11 +107,14 @@ outputVal dc.b $00 ; Used to track the output value of the
outputCnt dc.w $0000 ; Used to track how many values have been outputted
-interval dc.w 3000 ; Used to set the timer module based on clock cycles
+interval dc.w 3000 ; Used to set the timer module based on clock cycles
-numPoints dc.w 2048 ; Max Number of points for waves
+numPoints dc.w 2048 ; Max Number of points for waves
-timeTrigger dc.b $00 ; Tracks when timer is triggered
+timeTrigger dc.b $00 ; Tracks when timer is triggered
+
+increment dc.w 1 ; Used for increment 31.25Hz -> 1
+ ; 125Hz -> 4
waveType dc.b 'S' ; Used to track wave type 'T' for increasing triangle,
; 't' for decreasing triangle,
@@ -281,9 +284,9 @@ SawToothWav clra ; Clear A
ldaa #LF ; Load LF into A
jsr putchar ; Write LF to serial console
pula ; Restore A from the stack
- addd #1 ; Increment output value by 1
+ addd increment ; Add increment to D
cpd #256 ; Compare D to 256
- lbne DonePrint ; If D != 256, Done
+ lblo DonePrint ; If D < 256, Done
clrb ; Reset to Zero
lbra DonePrint ; Branch to DonePrint
SquareWaveH clra ; Clear A
@@ -298,9 +301,9 @@ SquareWaveH clra ; Clear A
pula ; Restore A from the stack
clra ; Clear A
ldab outputVal ; Load the output value into B
- addd #1 ; Add 1 to D
+ addd increment ; Add increment to D
cpd #256 ; Compare D to 256
- lbne DonePrint ; If D != 256, done
+ lblo DonePrint ; If D < 256, done
clrb ; Reset B to zero
ldaa #'q' ; Load 'q' into A
staa waveType ; Update wave type to square wave low
@@ -317,9 +320,9 @@ SquareWaveL clra ; Clear A
pula ; Restore A from the stack
clra ; Clear A
ldab outputVal ; Load the output value into B
- addd #1 ; Add 1 to D
+ addd increment ; Add increment to D
cpd #256 ; Compare D to 256
- bne DonePrint ; If D != 256, done
+ blo DonePrint ; If D < 256, done
clrb ; Reset B to zero
ldaa #'Q' ; Load 'Q' into A
staa waveType ; Update wave type to square wave low
@@ -334,9 +337,9 @@ TriangleInc clra ; Clear A
ldaa #LF ; Load LF into A
jsr putchar ; Write LF to serial console
pula ; Restore A from the stack
- addd #1 ; Add 1 to D
+ addd increment ; Add increment to D
cpd #256 ; Compare D to 256
- bne DonePrint ; If D != 256, done
+ blo DonePrint ; If D < 256, done
ldaa #'t' ; Load 't' into A
staa waveType ; Update wave type to decreasing triangle
subd #1 ; Subtract 1 from D
@@ -351,9 +354,9 @@ TriangleDec clra ; Clear A
ldaa #LF ; Load LF into A
jsr putchar ; Write LF to serial console
pula ; Restore A from the stack
- subd #1 ; Subtract 1 from D
- cpd #$FFFF ; Compare D to $FFFF
- bne DonePrint ; If D != $FFFF, done
+ subd increment ; Subtract increment from D
+ cpd #0 ; Compare D to 0
+ blt DonePrint ; If D < 0, done
ldaa #'T' ; Load 'T' into A
staa waveType ; Update wave type to increasing triangle
clrb ; Clear B
@@ -585,6 +588,8 @@ isGw cmpa #'g' ; Compare A to 'g'
jsr WriteString ; Write string
ldaa #'S' ; Load 'S' for sawtooth
staa waveType ; Save A to waveType
+ ldd #1 ; Load 1 into D
+ std increment ; Set Increment to 1 -> 31.25Hz
jsr GenWave ; Jump to GenWave
ldx #doneWave ; Load the address of doneWave
jsr WriteString ; Write string
@@ -596,6 +601,11 @@ isGw2 cmpb #'2' ; Compare B to '2'
lbne badCommand ; Not NULL? bad
ldx #sw2Msg ; Load address of sawtooth 125Hz message
jsr WriteString ; Write string
+ ldaa #'S' ; Load 'S' for sawtooth
+ staa waveType ; Save A to waveType
+ ldd #4 ; Load 4 into D
+ std increment ; Set Increment to 4 -> 125Hz
+ jsr GenWave ; Jump to GenWave
ldx #doneWave ; Load the address of doneWave
jsr WriteString ; Write string
lbra ecDone ; Branch always to ecDone
@@ -608,6 +618,8 @@ isGt cmpa #'t' ; Compare A to 't'
jsr WriteString ; Write string
ldaa #'T' ; Load 'T' for triangle
staa waveType ; Save A to waveType
+ ldd #1 ; Load 1 into D
+ std increment ; Set Increment to 1 -> 31.25Hz
jsr GenWave ; Jump to GenWave
ldx #doneWave ; Load the address of doneWave
jsr WriteString ; Write string
@@ -621,6 +633,8 @@ isGq cmpa #'q' ; Compare A to 'q'
jsr WriteString ; Write string
ldaa #'q' ; Load 'q' for square
staa waveType ; Save A to waveType
+ ldd #1 ; Load 1 into D
+ std increment ; Set Increment to 1 -> 31.25Hz
jsr GenWave ; Jump to GenWave
ldx #doneWave ; Load the address of doneWave
jsr WriteString ; Write string
@@ -632,6 +646,11 @@ isGq2 cmpb #'2' ; Compare B to '2'
bne badCommand ; B != NULL? bad
ldx #sq2Msg ; Load address of square 125Hz message
jsr WriteString ; Write string
+ ldaa #'q' ; Load 'q' for square
+ staa waveType ; Save A to waveType
+ ldd #4 ; Load 4 into D
+ std increment ; Set Increment to 4 -> 125Hz
+ jsr GenWave ; Jump to GenWave
ldx #doneWave ; Load the address of doneWave
jsr WriteString ; Write string
lbra ecDone ; Branch always to ecDone
diff --git a/cmpen472hw10_McDonnell/bin/Project.abs b/cmpen472hw10_McDonnell/bin/Project.abs
index d36595c..d82f317 100644
--- a/cmpen472hw10_McDonnell/bin/Project.abs
+++ b/cmpen472hw10_McDonnell/bin/Project.abs
Binary files differ
diff --git a/cmpen472hw10_McDonnell/bin/Project.abs.s19 b/cmpen472hw10_McDonnell/bin/Project.abs.s19
index 8647ad8..1799a07 100644
--- a/cmpen472hw10_McDonnell/bin/Project.abs.s19
+++ b/cmpen472hw10_McDonnell/bin/Project.abs.s19
@@ -1,76 +1,78 @@
S0590000433A5C55736572735C4A61636F62204D63446F6E6E656C6C5C446F63756D656E74735C434D50454E2D3437322D48575C636D70656E343732687731305F4D63446F6E6E656C6C5C62696E5C50726F6A6563742E6162731E
S123300000000000000000000000000000000000000010000000000000000000000000009C
S123302000000000001000000000000000000000000000000000000000000000000000007C
-S1103040000010730000000BB808000053DE
-S1233100CF310086F15A03860C5ACBCC00015CC8CE36EC1635A04C3B194C38804C37808627
-S1233120FF5A0310EF863E1635D086201635D0CE3030FD30411635ACCE303016333BCE304D
-S123314030FD304116359120DC14104D3880CE35F01635A01635D79727FA5A011635D0207E
+S1123040000010730000000BB8080000000153DB
+S1233100CF310086F15A03860C5ACBCC00015CC8CE371A1635CE4C3B194C38804C378086CA
+S1233120FF5A0310EF863E1635FE86201635FECE3030FD30411635DACE303016333BCE30C3
+S123314030FD30411635BF20DC14104D3880CE361E1635CE1636059727FA5A011635FE2096
S1233160F34C378010EFFE302C087E302C8E00C8263FCE00007E302CFE302A087E302A8EF1
S1233180003C262ACE00007E302AFE3028087E30288E003C2618CE00007E3028FE302608BD
S12331A07E30268E00182606CE00007E30261633050BFC3047D35A5C5A4C4E2086017A3029
-S12331C04BFC3045C300017C3045BC304925031632D90B3B35B6304C81541827008A8174BC
-S12331E0182700AC81511827002B81711827005087F63044CD300016352236860D1635D0E4
-S1233200860A1635D032C300018C0100182600A4C71820009F87C6FFCD300016352236868A
-S12332200D1635D0860A1635D03287F63044C300018C01001826007CC786717A304C207441
-S123324087C7CD300016352236860D1635D0860A1635D03287F63044C300018C0100265435
-S1233260C786517A304C204C87F63044CD300016352236860D1635D0860A1635D032C3006B
-S1233280018C0100262E86747A304C830001202487F63044CD300016352236860D1635D051
-S12332A0860A1635D0328300018CFFFF260686547A304CC77B3044313A3D3B86205A405AF0
+S12331C04BFC3045C300017C3045BC304925031632D90B3B35B6304E81541827008A8174BA
+S12331E0182700AC81511827002B81711827005087F63044CD300016355036860D1635FE88
+S1233200860A1635FE32F3304C8C0100182500A4C71820009F87C6FFCD3000163550368684
+S12332200D1635FE860A1635FE3287F63044F3304C8C01001825007CC786717A304E207439
+S123324087C7CD300016355036860D1635FE860A1635FE3287F63044F3304C8C0100255401
+S1233260C786517A304E204C87F63044CD300016355036860D1635FE860A1635FE32F3307F
+S12332804C8C0100252E86747A304E830001202487F63044CD300016355036860D1635FEA9
+S12332A0860A1635FE32B3304C8C00002D0686547A304EC77B3044313A3D3B86205A405A0C
S12332C04C86805A4686005A4DCC0BB8D3445C5A4C4E2086205A4C3A3D36875A4C323D3BE5
S12332E0CC00007C30457A30441632BAB6304B27FB877A304B1631D3FC3045BC304925EC7D
S12333001632D93A3D3BB6304381682605FC3026200C816D2605FC30282003FC302A1633EC
S1233320233A3D3B34CE000A181037B7D4CE000A58585858EAB05B01303A3D3B35A630188B
-S12333402701898174267BA620812027FA1410FC30263B1634CFB7E48C00181824015F8C69
-S12333600000182D01587C3026A61F813A1826014DFC30283B1634CFB7E48C003C18240185
-S1233380398C0000182D01327C3028A61F813A18260127FC302A3B1634CFB7E48C003C180D
-S12333A02401138C0000182D010C7C302AA61F810018260101877A302C10EF3A3A3A182055
-S12333C0010A8168260FE630C100182600F67A3043182000F7816D260FE630C10018260061
-S12333E0E37A3043182000E48173260FE630C100182600D07A3043182000D18171260BE6D0
-S123340030C100182600BD0631498167182600B4A6308177263CE630C1002618CE363616CD
-S123342035A086537A304C1632DFCE36D41635A018200098C1321826008AE630C10018265A
-S12334400082CE36541635A0CE36D41635A01820007A81742620E630C10018260066CE3674
-S1233460781635A086547A304C1632DFCE36D41635A018200056817118260048E630C1004E
-S12334802618CE36961635A086717A304C1632DFCE36D41635A018200032C13218260024CF
-S12334A0E630C100261ECE36B21635A0CE36D41635A0182000163A7C302A3A7C30283A7C67
-S12334C0302610EF34CE35E01635A030313A3D3BCD0000E630272EC12B272AC12D2726C10D
-S12334E02A2722C12F271EC13A271AC1202716C1302D17C1392213C03037CC000A13B7C6D5
-S12335003319ED20CE87B7023A3D8604B7023A3D343536A67F27056A3020F8876A303231E9
-S1233520303D34353B8C0000274C2D533635348630CE3013CD000516359A3031876A403216
-S1233540CE000A18108E00002708CB306B60B7D420EE8C000026F3B6302F812D26026A60F1
-S1233560CE30131635101635A0FD3024CE30131635913A31303D86301635D03A31303D36FB
-S1233580862D7A302F3240800150C001C30001209B36876A300436FB323D6A300436FB3D11
-S12335A036A63027051635D020F7323D3635341635D727FB810D270A6A301635D0032702AB
-S12335C020ED860D1635D0860A1635D03031323D4FCC80FC5ACF3D4FCC200396CF3D873D10
-S12335E0496E76616C696420496E7075740D0A000D0A436C6F636B2073746F707065642077
-S1233600616E64205479706577726974652070726F6772616D20737461727465642E0D0A12
-S1233620596F75206D617920747970652062656C6F772E0D0A00736177746F6F7468207772
-S12336406176652067656E65726174696F6E2E2E2E0D0A00736177746F6F74682077617656
-S12336606520313235487A2067656E65726174696F6E2E2E2E0D0A00747269616E676C6524
-S123368020776176652067656E65726174696F6E2E2E2E0D0A007371756172652077617667
-S12336A0652067656E65726174696F6E2E2E2E0D0A007371756172652077617665203132CD
-S12336C035487A2067656E65726174696F6E2E2E2E0D0A00446F6E652067656E6572617476
-S12336E0696E6720776176652E0D0A00436F6D6D616E64733A0D0A67773A2067656E6572A4
-S123370061746520736177746F6F746820776176652C207072696E74696E672030207468FC
-S1233720726F756768203235352C20726570656174656420666F7220746F74616C203230E1
-S1233740343820706F696E74730D0A6777323A2067656E657261746520736177746F6F743F
-S1233760682077617665206F6620313235487A2C20776176652072657065617465642066AC
-S12337806F7220746F74616C203230343820706F696E74730D0A67743A2067656E65726197
-S12337A0746520747269616E676C6520776176652C207072696E74696E672030207468726E
-S12337C06F756768203235352C207468656E2032353520646F776E20746F20302C20726571
-S12337E070656174656420666F7220746F74616C203230343820706F696E74730D0A67710D
-S12338003A2067656E65726174652073717561726520776176652C207072696E74696E67C4
-S1233820203020666F72203235352074696D65732C207468656E207072696E7420323535CB
-S123384020666F72203235352074696D65732C207468656E20726570656174656420666FA5
-S12338607220746F74616C203230343820706F696E74730D0A6771323A2067656E657261F6
-S12338807465207371756172652077617665206F6620313235487A2C207761766520726562
-S12338A070656174656420666F7220746F74616C203230343820706F696E74730D0A743A76
-S12338C020536574207468652074696D6520696E20666F726D61742048483A4D4D3A535364
-S12338E00D0A683A20446973706C61792074686520686F757273206F6E207468652037208E
-S12339007365676D656E7420646973706C6179730D0A6D3A20446973706C61792074686512
-S1233920206D696E75746573206F6E207468652037207365676D656E7420646973706C61F9
-S123394079730D0A733A20446973706C617920746865207365636F6E6473206F6E20746854
-S1233960652037207365676D656E7420646973706C6179730D0A713A2053746F7020746867
-S12239806520636C6F636B20616E6420656E74657220747970657772697465720D0A006C
+S12333402701B78174267BA620812027FA1410FC30263B1634FDB7E48C00181824018D8CDF
+S12333600000182D01867C3026A61F813A1826017BFC30283B1634FDB7E48C003C182401FB
+S1233380678C0000182D01607C3028A61F813A18260155FC302A3B1634FDB7E48C003C1855
+S12333A02401418C0000182D013A7C302AA61F81001826012F877A302C10EF3A3A3A1820CB
+S12333C001388168260FE630C100182601247A304318200125816D260FE630C100182601D4
+S12333E0117A3043182001128173260FE630C100182600FE7A3043182000FF8171260BE617
+S123340030C100182600EB0631498167182600E2A63081772650E630C100261ECE36641629
+S123342035CE86537A304ECC00017C304C1632DFCE37021635CE182000C0C132182600B2CD
+S1233440E630C100182600AACE36821635CE86537A304ECC00047C304C1632DFCE3702162D
+S123346035CE1820009481742626E630C10018260080CE36A61635CE86547A304ECC000141
+S12334807C304C1632DFCE37021635CE1820006A81711826005CE630C100261ECE36C416C2
+S12334A035CE86717A304ECC00017C304C1632DFCE37021635CE18200040C132182600322F
+S12334C0E630C100262CCE36E01635CE86717A304ECC00047C304C1632DFCE37021635CEC4
+S12334E0182000163A7C302A3A7C30283A7C302610EF34CE360E1635CE30313A3D3BCD0012
+S123350000E630272EC12B272AC12D2726C12A2722C12F271EC13A271AC1202716C1302DE3
+S123352017C1392213C03037CC000A13B7C63319ED20CE87B7023A3D8604B7023A3D3435B3
+S123354036A67F27056A3020F8876A303231303D34353B8C0000274C2D533635348630CEF7
+S12335603013CD00051635C83031876A4032CE000A18108E00002708CB306B60B7D420EE3F
+S12335808C000026F3B6302F812D26026A60CE301316353E1635CEFD3024CE30131635BFAE
+S12335A03A31303D86301635FE3A31303D36862D7A302F3240800150C001C30001209B36DD
+S12335C0876A300436FB323D6A300436FB3D36A63027051635FE20F7323D3635341636051F
+S12335E027FB810D270A6A301635FE03270220ED860D1635FE860A1635FE3031323D4FCC2A
+S123360080FC5ACF3D4FCC200396CF3D873D496E76616C696420496E7075740D0A000D0AFB
+S1233620436C6F636B2073746F7070656420616E64205479706577726974652070726F6763
+S123364072616D20737461727465642E0D0A596F75206D617920747970652062656C6F770B
+S12336602E0D0A00736177746F6F746820776176652067656E65726174696F6E2E2E2E0DD2
+S12336800A00736177746F6F7468207761766520313235487A2067656E65726174696F6E0A
+S12336A02E2E2E0D0A00747269616E676C6520776176652067656E65726174696F6E2E2E94
+S12336C02E0D0A0073717561726520776176652067656E65726174696F6E2E2E2E0D0A0050
+S12336E0737175617265207761766520313235487A2067656E65726174696F6E2E2E2E0D05
+S12337000A00446F6E652067656E65726174696E6720776176652E0D0A00436F6D6D616E5E
+S123372064733A0D0A67773A2067656E657261746520736177746F6F746820776176652C42
+S1233740207072696E74696E672030207468726F756768203235352C20726570656174657B
+S12337606420666F7220746F74616C203230343820706F696E74730D0A6777323A2067653E
+S12337806E657261746520736177746F6F74682077617665206F6620313235487A2C207708
+S12337A061766520726570656174656420666F7220746F74616C203230343820706F696EF0
+S12337C074730D0A67743A2067656E657261746520747269616E676C6520776176652C20D2
+S12337E07072696E74696E672030207468726F756768203235352C207468656E2032353576
+S123380020646F776E20746F20302C20726570656174656420666F7220746F74616C2032E6
+S123382030343820706F696E74730D0A67713A2067656E65726174652073717561726520C6
+S1233840776176652C207072696E74696E67203020666F72203235352074696D65732C20F9
+S12338607468656E207072696E742032353520666F72203235352074696D65732C207468FF
+S1233880656E20726570656174656420666F7220746F74616C203230343820706F696E7404
+S12338A0730D0A6771323A2067656E6572617465207371756172652077617665206F662032
+S12338C0313235487A2C207761766520726570656174656420666F7220746F74616C203224
+S12338E030343820706F696E74730D0A743A20536574207468652074696D6520696E2066AD
+S12339006F726D61742048483A4D4D3A53530D0A683A20446973706C617920746865206884
+S12339206F757273206F6E207468652037207365676D656E7420646973706C6179730D0A52
+S12339406D3A20446973706C617920746865206D696E75746573206F6E207468652037206B
+S12339607365676D656E7420646973706C6179730D0A733A20446973706C617920746865AC
+S1233980207365636F6E6473206F6E207468652037207365676D656E7420646973706C61AF
+S12339A079730D0A713A2053746F702074686520636C6F636B20616E6420656E7465722051
+S11039C0747970657772697465720D0A0080
S105FFE431B234
S105FFF0316179
S9030000FC
diff --git a/cmpen472hw10_McDonnell/bin/main.dbg b/cmpen472hw10_McDonnell/bin/main.dbg
index 3934132..d635a34 100644
--- a/cmpen472hw10_McDonnell/bin/main.dbg
+++ b/cmpen472hw10_McDonnell/bin/main.dbg
@@ -107,11 +107,14 @@ outputVal dc.b $00 ; Used to track the output value of the
outputCnt dc.w $0000 ; Used to track how many values have been outputted
-interval dc.w 3000 ; Used to set the timer module based on clock cycles
+interval dc.w 3000 ; Used to set the timer module based on clock cycles
-numPoints dc.w 2048 ; Max Number of points for waves
+numPoints dc.w 2048 ; Max Number of points for waves
-timeTrigger dc.b $00 ; Tracks when timer is triggered
+timeTrigger dc.b $00 ; Tracks when timer is triggered
+
+increment dc.w 1 ; Used for increment 31.25Hz -> 1
+ ; 125Hz -> 4
waveType dc.b 'S' ; Used to track wave type 'T' for increasing triangle,
; 't' for decreasing triangle,
@@ -281,9 +284,9 @@ SawToothWav clra ; Clear A
ldaa #LF ; Load LF into A
jsr putchar ; Write LF to serial console
pula ; Restore A from the stack
- addd #1 ; Increment output value by 1
+ addd increment ; Add increment to D
cpd #256 ; Compare D to 256
- lbne DonePrint ; If D != 256, Done
+ lblo DonePrint ; If D < 256, Done
clrb ; Reset to Zero
lbra DonePrint ; Branch to DonePrint
SquareWaveH clra ; Clear A
@@ -298,9 +301,9 @@ SquareWaveH clra ; Clear A
pula ; Restore A from the stack
clra ; Clear A
ldab outputVal ; Load the output value into B
- addd #1 ; Add 1 to D
+ addd increment ; Add increment to D
cpd #256 ; Compare D to 256
- lbne DonePrint ; If D != 256, done
+ lblo DonePrint ; If D < 256, done
clrb ; Reset B to zero
ldaa #'q' ; Load 'q' into A
staa waveType ; Update wave type to square wave low
@@ -317,9 +320,9 @@ SquareWaveL clra ; Clear A
pula ; Restore A from the stack
clra ; Clear A
ldab outputVal ; Load the output value into B
- addd #1 ; Add 1 to D
+ addd increment ; Add increment to D
cpd #256 ; Compare D to 256
- bne DonePrint ; If D != 256, done
+ blo DonePrint ; If D < 256, done
clrb ; Reset B to zero
ldaa #'Q' ; Load 'Q' into A
staa waveType ; Update wave type to square wave low
@@ -334,9 +337,9 @@ TriangleInc clra ; Clear A
ldaa #LF ; Load LF into A
jsr putchar ; Write LF to serial console
pula ; Restore A from the stack
- addd #1 ; Add 1 to D
+ addd increment ; Add increment to D
cpd #256 ; Compare D to 256
- bne DonePrint ; If D != 256, done
+ blo DonePrint ; If D < 256, done
ldaa #'t' ; Load 't' into A
staa waveType ; Update wave type to decreasing triangle
subd #1 ; Subtract 1 from D
@@ -351,9 +354,9 @@ TriangleDec clra ; Clear A
ldaa #LF ; Load LF into A
jsr putchar ; Write LF to serial console
pula ; Restore A from the stack
- subd #1 ; Subtract 1 from D
- cpd #$FFFF ; Compare D to $FFFF
- bne DonePrint ; If D != $FFFF, done
+ subd increment ; Subtract increment from D
+ cpd #0 ; Compare D to 0
+ blt DonePrint ; If D < 0, done
ldaa #'T' ; Load 'T' into A
staa waveType ; Update wave type to increasing triangle
clrb ; Clear B
@@ -585,6 +588,8 @@ isGw cmpa #'g' ; Compare A to 'g'
jsr WriteString ; Write string
ldaa #'S' ; Load 'S' for sawtooth
staa waveType ; Save A to waveType
+ ldd #1 ; Load 1 into D
+ std increment ; Set Increment to 1 -> 31.25Hz
jsr GenWave ; Jump to GenWave
ldx #doneWave ; Load the address of doneWave
jsr WriteString ; Write string
@@ -596,6 +601,11 @@ isGw2 cmpb #'2' ; Compare B to '2'
lbne badCommand ; Not NULL? bad
ldx #sw2Msg ; Load address of sawtooth 125Hz message
jsr WriteString ; Write string
+ ldaa #'S' ; Load 'S' for sawtooth
+ staa waveType ; Save A to waveType
+ ldd #4 ; Load 4 into D
+ std increment ; Set Increment to 4 -> 125Hz
+ jsr GenWave ; Jump to GenWave
ldx #doneWave ; Load the address of doneWave
jsr WriteString ; Write string
lbra ecDone ; Branch always to ecDone
@@ -608,6 +618,8 @@ isGt cmpa #'t' ; Compare A to 't'
jsr WriteString ; Write string
ldaa #'T' ; Load 'T' for triangle
staa waveType ; Save A to waveType
+ ldd #1 ; Load 1 into D
+ std increment ; Set Increment to 1 -> 31.25Hz
jsr GenWave ; Jump to GenWave
ldx #doneWave ; Load the address of doneWave
jsr WriteString ; Write string
@@ -621,6 +633,8 @@ isGq cmpa #'q' ; Compare A to 'q'
jsr WriteString ; Write string
ldaa #'q' ; Load 'q' for square
staa waveType ; Save A to waveType
+ ldd #1 ; Load 1 into D
+ std increment ; Set Increment to 1 -> 31.25Hz
jsr GenWave ; Jump to GenWave
ldx #doneWave ; Load the address of doneWave
jsr WriteString ; Write string
@@ -632,6 +646,11 @@ isGq2 cmpb #'2' ; Compare B to '2'
bne badCommand ; B != NULL? bad
ldx #sq2Msg ; Load address of square 125Hz message
jsr WriteString ; Write string
+ ldaa #'q' ; Load 'q' for square
+ staa waveType ; Save A to waveType
+ ldd #4 ; Load 4 into D
+ std increment ; Set Increment to 4 -> 125Hz
+ jsr GenWave ; Jump to GenWave
ldx #doneWave ; Load the address of doneWave
jsr WriteString ; Write string
lbra ecDone ; Branch always to ecDone
diff --git a/cmpen472hw10_McDonnell/cmpen472hw10_McDonnell_Data/Standard/ObjectCode/main.asm.o b/cmpen472hw10_McDonnell/cmpen472hw10_McDonnell_Data/Standard/ObjectCode/main.asm.o
index d36595c..d82f317 100644
--- a/cmpen472hw10_McDonnell/cmpen472hw10_McDonnell_Data/Standard/ObjectCode/main.asm.o
+++ b/cmpen472hw10_McDonnell/cmpen472hw10_McDonnell_Data/Standard/ObjectCode/main.asm.o
Binary files differ
diff --git a/cmpen472hw10_McDonnell/cmpen472hw10_McDonnell_Data/Standard/ObjectCode/main.asm.sx b/cmpen472hw10_McDonnell/cmpen472hw10_McDonnell_Data/Standard/ObjectCode/main.asm.sx
index 6f57e4b..e9d86eb 100644
--- a/cmpen472hw10_McDonnell/cmpen472hw10_McDonnell_Data/Standard/ObjectCode/main.asm.sx
+++ b/cmpen472hw10_McDonnell/cmpen472hw10_McDonnell_Data/Standard/ObjectCode/main.asm.sx
@@ -1,76 +1,78 @@
S0860000433A5C55736572735C4A61636F62204D63446F6E6E656C6C5C446F63756D656E74735C434D50454E2D3437322D48575C636D70656E343732687731305F4D63446F6E6E656C6C5C636D70656E343732687731305F4D63446F6E6E656C6C5F446174615C5374616E646172645C4F626A656374436F64655C6D61696E2E61736D2E70726D75
S123300000000000000000000000000000000000000010000000000000000000000000009C
S123302000000000001000000000000000000000000000000000000000000000000000007C
-S1103040000010730000000BB808000053DE
+S1123040000010730000000BB8080000000153DB
S105FFF0316179
S105FFE431B234
-S1233100CF310086F15A03860C5ACBCC00015CC8CE36EC1635A04C3B194C38804C37808627
-S1233120FF5A0310EF863E1635D086201635D0CE3030FD30411635ACCE303016333BCE304D
-S123314030FD304116359120DC14104D3880CE35F01635A01635D79727FA5A011635D0207E
+S1233100CF310086F15A03860C5ACBCC00015CC8CE371A1635CE4C3B194C38804C378086CA
+S1233120FF5A0310EF863E1635FE86201635FECE3030FD30411635DACE303016333BCE30C3
+S123314030FD30411635BF20DC14104D3880CE361E1635CE1636059727FA5A011635FE2096
S1233160F34C378010EFFE302C087E302C8E00C8263FCE00007E302CFE302A087E302A8EF1
S1233180003C262ACE00007E302AFE3028087E30288E003C2618CE00007E3028FE302608BD
S12331A07E30268E00182606CE00007E30261633050BFC3047D35A5C5A4C4E2086017A3029
-S12331C04BFC3045C300017C3045BC304925031632D90B3B35B6304C81541827008A8174BC
-S12331E0182700AC81511827002B81711827005087F63044CD300016352236860D1635D0E4
-S1233200860A1635D032C300018C0100182600A4C71820009F87C6FFCD300016352236868A
-S12332200D1635D0860A1635D03287F63044C300018C01001826007CC786717A304C207441
-S123324087C7CD300016352236860D1635D0860A1635D03287F63044C300018C0100265435
-S1233260C786517A304C204C87F63044CD300016352236860D1635D0860A1635D032C3006B
-S1233280018C0100262E86747A304C830001202487F63044CD300016352236860D1635D051
-S12332A0860A1635D0328300018CFFFF260686547A304CC77B3044313A3D3B86205A405AF0
+S12331C04BFC3045C300017C3045BC304925031632D90B3B35B6304E81541827008A8174BA
+S12331E0182700AC81511827002B81711827005087F63044CD300016355036860D1635FE88
+S1233200860A1635FE32F3304C8C0100182500A4C71820009F87C6FFCD3000163550368684
+S12332200D1635FE860A1635FE3287F63044F3304C8C01001825007CC786717A304E207439
+S123324087C7CD300016355036860D1635FE860A1635FE3287F63044F3304C8C0100255401
+S1233260C786517A304E204C87F63044CD300016355036860D1635FE860A1635FE32F3307F
+S12332804C8C0100252E86747A304E830001202487F63044CD300016355036860D1635FEA9
+S12332A0860A1635FE32B3304C8C00002D0686547A304EC77B3044313A3D3B86205A405A0C
S12332C04C86805A4686005A4DCC0BB8D3445C5A4C4E2086205A4C3A3D36875A4C323D3BE5
S12332E0CC00007C30457A30441632BAB6304B27FB877A304B1631D3FC3045BC304925EC7D
S12333001632D93A3D3BB6304381682605FC3026200C816D2605FC30282003FC302A1633EC
S1233320233A3D3B34CE000A181037B7D4CE000A58585858EAB05B01303A3D3B35A630188B
-S12333402701898174267BA620812027FA1410FC30263B1634CFB7E48C00181824015F8C69
-S12333600000182D01587C3026A61F813A1826014DFC30283B1634CFB7E48C003C18240185
-S1233380398C0000182D01327C3028A61F813A18260127FC302A3B1634CFB7E48C003C180D
-S12333A02401138C0000182D010C7C302AA61F810018260101877A302C10EF3A3A3A182055
-S12333C0010A8168260FE630C100182600F67A3043182000F7816D260FE630C10018260061
-S12333E0E37A3043182000E48173260FE630C100182600D07A3043182000D18171260BE6D0
-S123340030C100182600BD0631498167182600B4A6308177263CE630C1002618CE363616CD
-S123342035A086537A304C1632DFCE36D41635A018200098C1321826008AE630C10018265A
-S12334400082CE36541635A0CE36D41635A01820007A81742620E630C10018260066CE3674
-S1233460781635A086547A304C1632DFCE36D41635A018200056817118260048E630C1004E
-S12334802618CE36961635A086717A304C1632DFCE36D41635A018200032C13218260024CF
-S12334A0E630C100261ECE36B21635A0CE36D41635A0182000163A7C302A3A7C30283A7C67
-S12334C0302610EF34CE35E01635A030313A3D3BCD0000E630272EC12B272AC12D2726C10D
-S12334E02A2722C12F271EC13A271AC1202716C1302D17C1392213C03037CC000A13B7C6D5
-S12335003319ED20CE87B7023A3D8604B7023A3D343536A67F27056A3020F8876A303231E9
-S1233520303D34353B8C0000274C2D533635348630CE3013CD000516359A3031876A403216
-S1233540CE000A18108E00002708CB306B60B7D420EE8C000026F3B6302F812D26026A60F1
-S1233560CE30131635101635A0FD3024CE30131635913A31303D86301635D03A31303D36FB
-S1233580862D7A302F3240800150C001C30001209B36876A300436FB323D6A300436FB3D11
-S12335A036A63027051635D020F7323D3635341635D727FB810D270A6A301635D0032702AB
-S12335C020ED860D1635D0860A1635D03031323D4FCC80FC5ACF3D4FCC200396CF3D873D10
-S12335E0496E76616C696420496E7075740D0A000D0A436C6F636B2073746F707065642077
-S1233600616E64205479706577726974652070726F6772616D20737461727465642E0D0A12
-S1233620596F75206D617920747970652062656C6F772E0D0A00736177746F6F7468207772
-S12336406176652067656E65726174696F6E2E2E2E0D0A00736177746F6F74682077617656
-S12336606520313235487A2067656E65726174696F6E2E2E2E0D0A00747269616E676C6524
-S123368020776176652067656E65726174696F6E2E2E2E0D0A007371756172652077617667
-S12336A0652067656E65726174696F6E2E2E2E0D0A007371756172652077617665203132CD
-S12336C035487A2067656E65726174696F6E2E2E2E0D0A00446F6E652067656E6572617476
-S12336E0696E6720776176652E0D0A00436F6D6D616E64733A0D0A67773A2067656E6572A4
-S123370061746520736177746F6F746820776176652C207072696E74696E672030207468FC
-S1233720726F756768203235352C20726570656174656420666F7220746F74616C203230E1
-S1233740343820706F696E74730D0A6777323A2067656E657261746520736177746F6F743F
-S1233760682077617665206F6620313235487A2C20776176652072657065617465642066AC
-S12337806F7220746F74616C203230343820706F696E74730D0A67743A2067656E65726197
-S12337A0746520747269616E676C6520776176652C207072696E74696E672030207468726E
-S12337C06F756768203235352C207468656E2032353520646F776E20746F20302C20726571
-S12337E070656174656420666F7220746F74616C203230343820706F696E74730D0A67710D
-S12338003A2067656E65726174652073717561726520776176652C207072696E74696E67C4
-S1233820203020666F72203235352074696D65732C207468656E207072696E7420323535CB
-S123384020666F72203235352074696D65732C207468656E20726570656174656420666FA5
-S12338607220746F74616C203230343820706F696E74730D0A6771323A2067656E657261F6
-S12338807465207371756172652077617665206F6620313235487A2C207761766520726562
-S12338A070656174656420666F7220746F74616C203230343820706F696E74730D0A743A76
-S12338C020536574207468652074696D6520696E20666F726D61742048483A4D4D3A535364
-S12338E00D0A683A20446973706C61792074686520686F757273206F6E207468652037208E
-S12339007365676D656E7420646973706C6179730D0A6D3A20446973706C61792074686512
-S1233920206D696E75746573206F6E207468652037207365676D656E7420646973706C61F9
-S123394079730D0A733A20446973706C617920746865207365636F6E6473206F6E20746854
-S1233960652037207365676D656E7420646973706C6179730D0A713A2053746F7020746867
-S12239806520636C6F636B20616E6420656E74657220747970657772697465720D0A006C
+S12333402701B78174267BA620812027FA1410FC30263B1634FDB7E48C00181824018D8CDF
+S12333600000182D01867C3026A61F813A1826017BFC30283B1634FDB7E48C003C182401FB
+S1233380678C0000182D01607C3028A61F813A18260155FC302A3B1634FDB7E48C003C1855
+S12333A02401418C0000182D013A7C302AA61F81001826012F877A302C10EF3A3A3A1820CB
+S12333C001388168260FE630C100182601247A304318200125816D260FE630C100182601D4
+S12333E0117A3043182001128173260FE630C100182600FE7A3043182000FF8171260BE617
+S123340030C100182600EB0631498167182600E2A63081772650E630C100261ECE36641629
+S123342035CE86537A304ECC00017C304C1632DFCE37021635CE182000C0C132182600B2CD
+S1233440E630C100182600AACE36821635CE86537A304ECC00047C304C1632DFCE3702162D
+S123346035CE1820009481742626E630C10018260080CE36A61635CE86547A304ECC000141
+S12334807C304C1632DFCE37021635CE1820006A81711826005CE630C100261ECE36C416C2
+S12334A035CE86717A304ECC00017C304C1632DFCE37021635CE18200040C132182600322F
+S12334C0E630C100262CCE36E01635CE86717A304ECC00047C304C1632DFCE37021635CEC4
+S12334E0182000163A7C302A3A7C30283A7C302610EF34CE360E1635CE30313A3D3BCD0012
+S123350000E630272EC12B272AC12D2726C12A2722C12F271EC13A271AC1202716C1302DE3
+S123352017C1392213C03037CC000A13B7C63319ED20CE87B7023A3D8604B7023A3D3435B3
+S123354036A67F27056A3020F8876A303231303D34353B8C0000274C2D533635348630CEF7
+S12335603013CD00051635C83031876A4032CE000A18108E00002708CB306B60B7D420EE3F
+S12335808C000026F3B6302F812D26026A60CE301316353E1635CEFD3024CE30131635BFAE
+S12335A03A31303D86301635FE3A31303D36862D7A302F3240800150C001C30001209B36DD
+S12335C0876A300436FB323D6A300436FB3D36A63027051635FE20F7323D3635341636051F
+S12335E027FB810D270A6A301635FE03270220ED860D1635FE860A1635FE3031323D4FCC2A
+S123360080FC5ACF3D4FCC200396CF3D873D496E76616C696420496E7075740D0A000D0AFB
+S1233620436C6F636B2073746F7070656420616E64205479706577726974652070726F6763
+S123364072616D20737461727465642E0D0A596F75206D617920747970652062656C6F770B
+S12336602E0D0A00736177746F6F746820776176652067656E65726174696F6E2E2E2E0DD2
+S12336800A00736177746F6F7468207761766520313235487A2067656E65726174696F6E0A
+S12336A02E2E2E0D0A00747269616E676C6520776176652067656E65726174696F6E2E2E94
+S12336C02E0D0A0073717561726520776176652067656E65726174696F6E2E2E2E0D0A0050
+S12336E0737175617265207761766520313235487A2067656E65726174696F6E2E2E2E0D05
+S12337000A00446F6E652067656E65726174696E6720776176652E0D0A00436F6D6D616E5E
+S123372064733A0D0A67773A2067656E657261746520736177746F6F746820776176652C42
+S1233740207072696E74696E672030207468726F756768203235352C20726570656174657B
+S12337606420666F7220746F74616C203230343820706F696E74730D0A6777323A2067653E
+S12337806E657261746520736177746F6F74682077617665206F6620313235487A2C207708
+S12337A061766520726570656174656420666F7220746F74616C203230343820706F696EF0
+S12337C074730D0A67743A2067656E657261746520747269616E676C6520776176652C20D2
+S12337E07072696E74696E672030207468726F756768203235352C207468656E2032353576
+S123380020646F776E20746F20302C20726570656174656420666F7220746F74616C2032E6
+S123382030343820706F696E74730D0A67713A2067656E65726174652073717561726520C6
+S1233840776176652C207072696E74696E67203020666F72203235352074696D65732C20F9
+S12338607468656E207072696E742032353520666F72203235352074696D65732C207468FF
+S1233880656E20726570656174656420666F7220746F74616C203230343820706F696E7404
+S12338A0730D0A6771323A2067656E6572617465207371756172652077617665206F662032
+S12338C0313235487A2C207761766520726570656174656420666F7220746F74616C203224
+S12338E030343820706F696E74730D0A743A20536574207468652074696D6520696E2066AD
+S12339006F726D61742048483A4D4D3A53530D0A683A20446973706C617920746865206884
+S12339206F757273206F6E207468652037207365676D656E7420646973706C6179730D0A52
+S12339406D3A20446973706C617920746865206D696E75746573206F6E207468652037206B
+S12339607365676D656E7420646973706C6179730D0A733A20446973706C617920746865AC
+S1233980207365636F6E6473206F6E207468652037207365676D656E7420646973706C61AF
+S12339A079730D0A713A2053746F702074686520636C6F636B20616E6420656E7465722051
+S11039C0747970657772697465720D0A0080
S9033100CB
diff --git a/cmpen472hw10_McDonnell/cmpen472hw10_McDonnell_Data/Standard/TargetDataWindows.tdt b/cmpen472hw10_McDonnell/cmpen472hw10_McDonnell_Data/Standard/TargetDataWindows.tdt
index 2d38aef..bbe2d6e 100644
--- a/cmpen472hw10_McDonnell/cmpen472hw10_McDonnell_Data/Standard/TargetDataWindows.tdt
+++ b/cmpen472hw10_McDonnell/cmpen472hw10_McDonnell_Data/Standard/TargetDataWindows.tdt
Binary files differ