diff options
| -rw-r--r-- | cmpen472hw10_McDonnell/Full_Chip_Simulation.ini | 2 | ||||
| -rw-r--r-- | cmpen472hw10_McDonnell/Sources/main.asm | 47 | ||||
| -rw-r--r-- | cmpen472hw10_McDonnell/bin/Project.abs | bin | 10894 -> 11006 bytes | |||
| -rw-r--r-- | cmpen472hw10_McDonnell/bin/Project.abs.s19 | 128 | ||||
| -rw-r--r-- | cmpen472hw10_McDonnell/bin/main.dbg | 47 | ||||
| -rw-r--r-- | cmpen472hw10_McDonnell/cmpen472hw10_McDonnell_Data/Standard/ObjectCode/main.asm.o | bin | 10894 -> 11006 bytes | |||
| -rw-r--r-- | cmpen472hw10_McDonnell/cmpen472hw10_McDonnell_Data/Standard/ObjectCode/main.asm.sx | 128 | ||||
| -rw-r--r-- | cmpen472hw10_McDonnell/cmpen472hw10_McDonnell_Data/Standard/TargetDataWindows.tdt | bin | 62911 -> 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 Binary files differindex d36595c..d82f317 100644 --- a/cmpen472hw10_McDonnell/bin/Project.abs +++ b/cmpen472hw10_McDonnell/bin/Project.abs 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 Binary files differindex 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 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 Binary files differindex 2d38aef..bbe2d6e 100644 --- a/cmpen472hw10_McDonnell/cmpen472hw10_McDonnell_Data/Standard/TargetDataWindows.tdt +++ b/cmpen472hw10_McDonnell/cmpen472hw10_McDonnell_Data/Standard/TargetDataWindows.tdt |
