diff options
author | Yann Herklotz <git@yannherklotz.com> | 2022-11-24 22:27:15 +0000 |
---|---|---|
committer | Yann Herklotz <git@yannherklotz.com> | 2022-11-24 22:27:15 +0000 |
commit | 59c9a162631b78eff84e2002478413b98c2cffbb (patch) | |
tree | 7d604206a2deb29c9f097ff1f3b7de78f44b34a3 /scripts/cxxdemo/hex8tohex32.py | |
download | butterstick-59c9a162631b78eff84e2002478413b98c2cffbb.tar.gz butterstick-59c9a162631b78eff84e2002478413b98c2cffbb.zip |
Move all files
Diffstat (limited to 'scripts/cxxdemo/hex8tohex32.py')
-rw-r--r-- | scripts/cxxdemo/hex8tohex32.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/scripts/cxxdemo/hex8tohex32.py b/scripts/cxxdemo/hex8tohex32.py new file mode 100644 index 0000000..ae44101 --- /dev/null +++ b/scripts/cxxdemo/hex8tohex32.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python3 + +import fileinput +import itertools + +ptr = 0 +data = [] + +def write_data(): + if len(data) != 0: + print("@%08x" % (ptr >> 2)) + while len(data) % 4 != 0: + data.append(0) + for word_bytes in zip(*([iter(data)]*4)): + print("".join(["%02x" % b for b in reversed(word_bytes)])) + +for line in fileinput.input(): + if line.startswith("@"): + addr = int(line[1:], 16) + if addr > ptr+4: + write_data() + ptr = addr + data = [] + while ptr % 4 != 0: + data.append(0) + ptr -= 1 + else: + while ptr + len(data) < addr: + data.append(0) + else: + data += [int(tok, 16) for tok in line.split()] + +write_data() + |