HDDは魔導書の中に
縮小のシーケンスを使うことで魔導書に空きができたので、HDDもどきは魔導書の中に領域を確保することとした。
今自分が使えるのは約二〇ページ。
そのうち表示や計算、文字列操作などの基本シーケンスが一〇ページありこれを一六分の一にしたから今の所一ページで収まるが、HDD制御用のシーケンスを追加すればおそらくはみ出る。
余裕をもたせて物理四ページ論理六四ページ分を確保。
ここがBIOSエリアとなる。
BDOSやCCPエリアもそれぞれ物理四ページあればとりあえず大丈夫であろう。
これで多少シーケンスが増えてもしばらくはレイアウト変更しなくても間に合うはずだ。
問題はHDDエリアとここから読み出して実行可能なシーケンスを書き込むためのメモリアエリアだ。
ここは常に消去と書き込みが行われるため、ページを開きっぱなしにする必要がある。
そこで僕は見開き片側一ページをHDDエリアとして確保し、残り一ページをメモリエリアとした。
各論理一ページで一六ページ分だ。
ここまでで一二ページプラス二ページ使用するがあと六ページ分の余裕がある。
メモリエリアが少ない気がするが、いざとなったら主要アプリなんかは常駐させとけばいいだろう。
HDDエリアは将来的に外部にも増設できるようにシーケンスの拡張性を残し、シーケンスの多くはHDDエリアから読み込むから基本、起動時のメモリエリアは白紙となる。
HDDエリアに文字列でデータを書き込んでしまうと文書の中に起動キーワードがあったりすれば変なものが起動してしまうのでHDDエリアはビットデータとして書き込むことにした。
つまり黒点の有りと無しで一ビットを表すことにしたのだ。
ドットなら文字よりもにじみやかすれがあっても認識しやすい。
羊皮紙は湿気などによって伸び縮みするため、ガイド用のドットを二五六(+八)ドットごとに入れている。
つまり点線の枠の中に二五六(+八)×二五六(+八)ドットの正方形ビットデータが並べられることになる。
これが一セクタで、八一二九バイトのデータとなる。
縦横に付加された+八ビットはチェックサムだ。
エラー訂正にはCRCとかECCとか色んな方法があったと思うが、詳しい方法が思い出せないので、単純なチェックサムで確認する。
そのかわり上四〇九六バイトと下四〇九六バイトには同じデータを書き込み、エラーがあったらもう片方からコピーし直す。
ドットデータはほぼエラーが出ない大きさにしたところ一ページあたり五〇メガバイトも確保できた。
当分十分な量であろう。
昔は二〇メガバイトとか四〇メガバイトとかのHDDが一〇万円以上したのだ。
それを考えれば今の段階では十分すぎる容量と言える。
定年間近の頃ではメガとか誤差の範囲だったが。
問題は読み込み速度だ。
「まるでカセットテープ時代に戻ったような遅さだ」
エラー訂正処理を入れてしまったため、かなりのシーケンスを費やしてしまった。
HDD関連処理は縮小しても論理一六ページ分。物理ページで一ページだ。
これがBIOSエリアにプラスされるから物理ページで二ページ分となる。これでBIOSエリアの残りは二ページプラス論理六ページ分だが、キーボード用のシーケンスなどなどまだまだ入れるものがある。
このペースだとBDOSが四ページだときついかもしれない。
逆にCCPが四ページは多い気もするので、このへんは作りながら調整していく必要がありそうだ。
現在BIOSに入っているのはセクタの読み書きとエラー訂正処理、フォーマット処理のみだ。
フォーマット処理はページをまるごと消去して一セクタ分の領域をドットデータで囲む処理だ。
いわゆる物理フォーマットということになる。
ファイルをアクセスしたり管理したりする機能はOS側に入れる。こちらにもフォーマット処理が入るがこっちは論理フォーマットで、ファイル管理に必要なデータを書き込む処理だ。
「まさか論理二ページ分読み込むだけで五分もかかるとか。初期の八ビットマシンとそんなに変わらないけどよく耐えたよな、昔の自分」
昔は記憶装置がカセットテープ(音楽テープ)で遅いと三〇〇ボーとかで、自分の使っていたやつでも一二〇〇ボーくらい。一秒で三〇バイトとか一〇〇バイトとかそのくらいの早さだからディスプレイへの表示速度を考えるとまあこんなものか。
「マジで高速化したい」
これほど遅いとなるとやはりOSは起動時にHDDから読み込む方式ではなく、常駐させたほうがいいな。
アプリもページが足りなくなるまではHDDからいちいち読み出すのはやめよう。
変更があったときだけ読み書きすればいいや。
HDDの読み書きは最低限にしておくのが無難か。
「データの読み書きだけなら、まあ耐えられる」
作成途中のシーケンスはHDDに入れて完成したら、各エリア固定で書き込む。
手動でページを捲ってあげれば、書き込むのに支障はない。
どうせ魔導書の各ページはF-ROMみたいなものだからな。
電源を落としたら消えるものでもないし。
まあ、HDDと大まかな仕様はこんなもんでいいだろう。
となれば後はキーボードを作れば、一通り必要な機能は揃うことになる。
頑張ろう。
HDD容量は年々増大していき、最近では20TBにも達しました。
自分が初めて買ったHDDは40Mバイトで14万ほどもしたかと思います。
今では誤差としか言えないような容量ですが、当時はそれでも大容量w
結構筐体がデカかったので、もしかしたら中身は5インチHDDだったかもしれません。
でかいHDDといえば思い出すのは、汎用コンピュータにつながっていたリムーバブルHDDですね。
40センチくらいあるディスクが何枚か重なったものがむき出しで収められているやつで、プラスチックのカバーを上からかぶせて、ガコッと取り出して入れ替えていました。
今では信じられない話ですね。