retroforth/vm/nga-python/Memory.py
crc 9912a4b501 nga-python: implement support for run length encoding in image (#44)
FossilOrigin-Name: a132117aafc756384eb9a63b55678fefa7020b8a07ded9121828bb09658d4770
2021-02-02 15:22:17 +00:00

38 lines
1 KiB
Python

import os
import struct
class Memory(list):
def __init__(self, source, initial, size):
m = [0] * size
self.extend(m)
if len(initial) == 0:
cells = int(os.path.getsize(source) / 4)
f = open(source, "rb")
i = 0
for cell in list(struct.unpack(cells * "i", f.read())):
self[i] = cell
i = i + 1
f.close()
else:
i = 0
for cell in initial:
if type(cell) == list:
for v in range(0, cell[0]):
self[i] = 0
i = i + 1
else:
self[i] = cell
i = i + 1
def load_image(self, name):
cells = int(os.path.getsize(name) / 4)
f = open(name, "rb")
i = 0
for cell in list(struct.unpack(cells * "i", f.read())):
self[i] = cell
i = i + 1
f.close()
def size(self):
return len(self)