我正在为我编写的Forth在Commodore PET上实现虚拟内存,使用双卡带机,并计划使用PET本地的192字节卡带数据文件格式。由于只有32K的RAM可用于“一切”,因此我在语言中嵌入了Woz的优秀且非常节省内存的Sweet-16解释器。一个Forth块(通常)是1024字节。将块ID的两个字节添加到其中,可将可用的虚拟地址空间限制在64兆以上,远远超出磁带的容量。其中一个设备为“播放”卡带机(设备1),另一个为“记录”卡带机(设备2),FLUSH将涉及将整个虚拟内存从一个驱动器复制到另一个驱动器。为什么要这样做?因为在过去,大多数PET机主都只有卡带机。如果您感兴趣,可以在http://github.com/chitselb/pettil找到我目前的进展。
大部分数据将是 Forth 代码的屏幕,该实现中将是 1000 字节的文本和一个 24 字节的换行表,因为我也利用了 PET ROM 屏幕编辑器。 我想要的是任何可能会击败简单的行程长度编码,但没有像 Lempel-Ziv 这样复杂的 CPU 和内存开销的建议。 感谢除“忘掉它”之外的所有建议。
大部分数据将是 Forth 代码的屏幕,该实现中将是 1000 字节的文本和一个 24 字节的换行表,因为我也利用了 PET ROM 屏幕编辑器。 我想要的是任何可能会击败简单的行程长度编码,但没有像 Lempel-Ziv 这样复杂的 CPU 和内存开销的建议。 感谢除“忘掉它”之外的所有建议。