但是我注意到在“内存”中添加了一些其他检查后,我注意到了一些东西……有很多未遂的写作。在大多数情况下,他们已经在那里写下了该值,但是一对夫妇实际上会更改数据。尝试的写入为0x8000和0xfd6d(后者甚至可能在其中一个写字的原因范围内)
从拆卸工作,似乎是lab_fd64 / lab_fe91的两个sta:
https://www.mdawson.net/vic20chrome/vic20/docs/kernel_disassembly.txt我还尝试了其他一些简单的VIC20模拟器中的同样的粗糙诱捕,它们似乎在某种程度上做了同样的事情,乍一看似乎是同一罪魁祸首。
因此,我想知道这些旧系统采取的实际合法行动是否是实际的合法行动?还是从那些建造模拟器(尤其是VIC20)的人来看 - 是否更表示仿真,ROM等中有问题?我隐约记得我制作的48k频谱中类似的东西,但这是几年前。
在这里,ROM或仿真没有任何错误。书面的代码将尝试写入ROM地址,而仿真
请捕获并阻止写入,就像在物理上不可能写入真实硬件中的这些地址-Isection -usalyly.comely.ind..might actually be permissible - for example Block 5 ($A000-$BFFF) is commonly described as the 'Cartridge ROM Area' and (when a cartridge is plugged-in) will typically contain ROM which would often be a game or programmers utility tool, etc. But there's nothing stopping you from plugging in a suitably-configured RAM pack在那里,给您额外的8K玩游戏(尽管基本不可见)。这就是为什么VICE允许您将块5配置为RAM,然后将LOWLAL写入该地址范围。 *代码确实尝试写入ROM,但这是例行程序的工作方式,而不是有意的行为的副作用。可以说是草率的代码,它利用了它在ROM中运行的事实,而不必费心检查目标地址是否是RAM,而是依靠硬件的物理限制来防止流氓写入。