作为一个个人项目,我正在用 JavaScript(基于 HTML5)编写一个 6502 模拟器。我正在从我用 C 语言创建的前身移植其中的一些内容。要加载文件(在我的情况下为 ROM),我可以使用以下 C 代码:
unsigned char* buffer = calloc(1, 4096);
FILE* file = fopen("xyz", "rb");
fread(buffer, 1, 4096, file);
fclose(file);
并像这样访问它:
char firstChar = buffer[0];
short nextShort = (buffer[2] << 8) | buffer[1];
free(buffer);
现在,我需要能够将它移植到 JavaScript。对于输入,我可以使用文件输入做这样的事情:
var file = document.getElementById("picker").files[0];
var reader = new FileReader();
reader.readAsDataURL(file);
从这里开始,我将 reader.result 作为文件的巨型 base64 编码。我需要一种访问二进制文件的方法,就像在开始的 C 示例中所做的那样,我可以简单地获取值(或使用简单的按位运算)
我猜最可行的解决方案是一组值 0-255,但我只需要访问,不管如何。