load method
Loads the given Z-Machine story file storyBytes
into the
interpreter memory.
Implementation
void load(List<int>? storyBytes) {
if (storyBytes == null) return;
rawBytes.clear();
rawBytes.addAll(storyBytes);
// print("First 10 Story Bytes");
// print(rawBytes.getRange(0,10));
ver = ZMachine.intToVer(rawBytes[Header.version]);
var result =
_supportedEngines.where(((Engine m) => m.version == ver)).toList();
if (result.length != 1) {
throw Exception('Z-Machine version $ver not supported.');
} else {
engine = result[0];
}
log.info('Zart: Using Z-Machine ${engine.version}.');
engine.mem = MemoryMap(rawBytes);
engine.visitHeader();
isLoaded = true;
}