11

私が書いている Forth のコモドール PET (楽しみのために) のデュアル カセット テープ デッキに仮想メモリを実装しています。興味があれば、私がこれまでに持っているものはhttp://github.com/chitselb/pettilにあります。

PET のネイティブ 192 バイト カセット データファイル形式を使用する予定です。そうそう、すべてに 32K の RAM しかありません。私はウォズの優れたメモリ効率の良いSweet-16インタプリタを言語に組み込みました。

Forth ブロックは (通常) 1024 バイトです。ブロック ID に 2 バイトを追加すると、利用可能な仮想アドレス空間が 64 メガバイトに制限され、テープに収まる容量よりもはるかに大きくなります。「再生」デッキ (デバイス 1) と「記録」デッキ (デバイス 2) があり、FLUSH では仮想メモリ全体を 1 つのドライブから別のドライブにコピーする必要があります。なぜ風車を傾けるのですか?当時、ほとんどの PET 所有者が持っていたのはカセット テープでした。

ほとんどのデータは Forth コードの画面であり、この実装では 1000 バイトのテキストと 24 バイトの行折り返しテーブルになります。これは、PET ROM 画面エディターも利用しているためです。私が探しているのは、Lempel-Ziv のような複雑なものの CPU とメモリのオーバーヘッドなしで、この目的のために (おそらく) 単純なランレングス エンコーディングを打ち負かすものの提案です。「忘れてください」以外のすべての提案を歓迎します。

4

1 に答える 1