aboutsummaryrefslogtreecommitdiffstats
path: root/atk16-utils/charmem.py
diff options
context:
space:
mode:
Diffstat (limited to 'atk16-utils/charmem.py')
-rw-r--r--atk16-utils/charmem.py63
1 files changed, 0 insertions, 63 deletions
diff --git a/atk16-utils/charmem.py b/atk16-utils/charmem.py
deleted file mode 100644
index aaac122..0000000
--- a/atk16-utils/charmem.py
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/usr/bin/env python3
-# Generate .bin file with ATK16 CPU TPU charmem data
-
-# Addressed by _CCC CCCC CYYY
-# Data width 8bit: ___X XXXX
-# where _ = unused, C = 8bit character code, Y = character y coordinate, X = pixel value
-
-import sys
-
-if len(sys.argv) != 2:
- print("usage: charmem.py <outfile.bin>")
- sys.exit(1)
-
-outfile_path = sys.argv[1]
-
-with open("charset.txt", "r") as f:
- lines = [s.strip("\n") for s in f.readlines()]
-
-header_chars = lines[0]
-
-charset: list[list[str]] = []
-
-CHAR_HEIGHT = 8
-CHAR_WIDTH = 8
-
-i = 0
-while i < len(lines):
- i += 1 # skip comment line
- char = lines[i:i+CHAR_HEIGHT]
- for row in char:
- if len(row) != CHAR_WIDTH:
- raise Exception(f"char row number {i} has width != {CHAR_WIDTH}: {len(row)}\n" + row + "\n" + "\n".join(char))
- charset.append(char)
- i += CHAR_HEIGHT + 1
-
-CHAR_N = len(charset)
-
-TOTAL_BYTEARRAY_SIZE = CHAR_N * CHAR_HEIGHT
-
-def string_to_byte(input_string: str):
- # Replace spaces with '0' and '#' with '1'
- binary_string = input_string.replace(' ', '0').replace('█', '1')
-
- assert(len(input_string) == CHAR_WIDTH)
-
- # Check if the string contains only '0' or '1'
- if not all(c in '01' for c in binary_string):
- raise ValueError("Input string must contain only spaces and '█' characters.")
-
- # Convert the binary string to an unsigned integer byte
- return int(binary_string[::-1], 2)
-
-
-res_b = bytearray(TOTAL_BYTEARRAY_SIZE)
-for cn, char in enumerate(charset):
- for cy in range(0, CHAR_HEIGHT):
- addr = (cn << 3) + cy
- byte = string_to_byte(char[cy])
- print(f"{byte:>08b}")
- res_b[addr] = byte
-
-with open(outfile_path, "wb") as f:
- f.write(res_b)