diff options
author | Wojciech Kosior <kwojtus@protonmail.com> | 2020-09-07 20:38:44 +0200 |
---|---|---|
committer | Wojciech Kosior <kwojtus@protonmail.com> | 2020-09-07 20:38:44 +0200 |
commit | bf735fa64184033131c17b13d457a1313c2846e2 (patch) | |
tree | 8f16a773496547b39ad87d87d189bf51e556d202 /tests | |
parent | 50066f519e9c59544bf3ef440c32109644ebaa9a (diff) | |
download | AGH-engineering-thesis-bf735fa64184033131c17b13d457a1313c2846e2.tar.gz AGH-engineering-thesis-bf735fa64184033131c17b13d457a1313c2846e2.zip |
update soc toplevel module to use new version of stack machine
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/soc_simple_display/instructions.s.tcl | 33 |
1 files changed, 11 insertions, 22 deletions
diff --git a/tests/soc_simple_display/instructions.s.tcl b/tests/soc_simple_display/instructions.s.tcl index 4bfc73f..616c1bc 100755 --- a/tests/soc_simple_display/instructions.s.tcl +++ b/tests/soc_simple_display/instructions.s.tcl @@ -1,47 +1,36 @@ #!/usr/bin/env tclsh -source tclasm_old.tcl +source tclasm.tcl -## also look at stack_machine_cond_jump test +## also look at stack_machine_cond_jump test ## we're going to write numbers from 0 to 639 at addresses h100000 to h1009FC ## and then write non-zero value at h100A00 -# this will translate to 3 16-bit instructions -set_sp h0FFFFC +# this will translate to 2 16-bit instructions +set_sp h100000 -## set up the counter -# each of those 2 will translate to 1 16-bit instruction +## set up the counter (1 16-bit instruction) const 0 -stack down - -## this is the point we later jump to, address 10 +## this is the point we later jump to, address 6 +tee tee ## compute address: counter * 4 + h100000 -stack down const 4 mul -const h100000 -add -stack up -## load computed address to im -exchange_im -## save value of counter at address pointed by im -swap -store swap +store+ h100000 + ## increase counter by 1 const 1 add ## compare value of counter to 640 tee -stack down const 640 sub -stack up ## loop if counter != 640 -cond_jump 10 +cond_jump 6 ## write hFFFFFFFF to address h100A00 (the point is to write a non-zero value ## there, but because our stack machine only knows how to write 32-bit values @@ -49,6 +38,6 @@ cond_jump 10 ## VGA power-on register - what matters is the later write, so at least one of ## higher 16 bits of written value has to be non-zero) const -1 -store@ h100A00 +store h100A00 halt |