試作品の完成
約束通り三日後、その手に小さなカバンを持ち、カイゼルさんがやってきた。
「今日は試作品を持ってきた。簡単な魔法が発動することは確認してある」
彼はカバンをテーブルに置くと、一つの箱を取りだした。
「ずいぶん早かったですね」
「作るだけなら一日かからなかったぞ。時間がかかったのは板ガラスと緩衝材の入手だ。どちらも手元になかったから、商人を呼んで持ってこさせた」
「なるほど」
見ればわかる。
ガラスと魔石がむき出しの状態の、とても魔導「書」とは言えない代物だ。
ガラス板に魔石とインク瓶がくっついているだけのものを収めたただの箱だ。
ガラス板の四隅に敷いているのは緩衝材だろうか。
ぼくはその緩衝材をつついてみつる。
「それはスライムを日干ししたやつだな。グニグニしている上に少し粘りがあるから、ガラスなんかの割れやすくてツルツルしたものを重ねたりする時によく使われるんだ。滑りにくいし弾力があるからな」
「スライムの日干しは初めて見ました」
「そんなに珍しいものじゃないぞ。たぶんここだってガラスのコップやら食器やらを収めている棚の下敷きとか、箱詰めにしてあるものの中なんかに入っているはずだ」
「いつもメイドが食器を持ってきてくれますから、ぼくは食器棚なるものを見たことがないですね」
食器はメイドさんとかが持ってきてくれるものであって、ぼくが取りに行ったことはないから当然目にする機会はない。
「これだからお坊ちゃまは……」
彼は呆れたかのように言う。
「貧乏士爵家では、メイドなんていない家が多いからな。うちだっていない。当主自ら皿洗いしてるとこも多いってのに」
カイゼルさんも皿洗いしているのだろうか?
想像してちょっと吹き出してしまった。
「言っておくが俺は皿洗いはしてないからな。できたかみさんがちゃんとやってくれるし、母親もまだ健在だから女手には困っていない」
なるほど。困っているのは男手か。
基本貴族の女性がお金を稼ぐ手段は限られている。
大抵は親戚縁者のところへ侍女や乳母といった仕事や、子女への礼儀作法の先生とかそんな感じになる。
例外は騎士爵の息女や婦人たちだ。
彼女らは、上級貴族の護衛などとして働く道がある。
特に後宮は小さな子供以外男子禁制だから、女性の護衛が必要になってくるのだ。
その他化粧室など女性しか入れない場所は多い。
そんな場所で護衛を務めるのが騎士爵の娘などとなる。
なので、騎士爵家の女たちは外で働く機会が多く、普通の士爵や魔導士爵の女たちはあまり気味になるというわけだ。
その分、男が稼げればいいのであるが、若い貴族の給料などさほど高いものではない。
貴族らしい対面を保つだけで精一杯の家も少なくない。
魔導士爵の場合その給料もなく自分で稼がないとならない。
足りなければ寄り親なり国になり借金して賄うらしい。
カイゼルさんの家も生活に困っているのか、当主自らこうしてアルバイトに精を出さないといけないのであろう。
「無駄話はここまでだ。まずは出来を確かめてほしい」
「わかりました」
僕はガラスの魔導書をよく見分します。
硝子板は一枚だけ。
大きさは僕の魔導書と同じくらい。
そうしたのは縮小率の計算がしやすいからだ。
四ページ入れば面積が四分の一ってことだからね。
僕の魔導書だと一ページにA4一六ページ分のシーケンスが入る。
僕の魔導書自体がB5程度だから、実際の原紙に比べれば面積が二〇分の一程度になっていることになる。
前にした計算ではA4が一〇〇ページ分入れば、ほぼ八ビットマシンと同じくらいの処理速度になるはずだ。
だが今回最初に挑戦するのは五一二ページ分。
八ビットマシンの五倍の性能だ。
その当時使われていた八ビットパソコンの多くはZ80AというCPUが搭載されており、このシリーズのCPUは今でもパチンコの組み込み用などにも使われるベストセラーCPUである。
僕もパソコンの速度はこれを基準に計算している。
このCPUの動作クロックは約四メガヘルツ。
これの五倍だとすると約二〇メガヘルツで動作するのと同等ということになる。
もちろん当時二〇メガヘルツで動作するZ80なんてなかったが。
となると、参考になりそうなのはV30というCPUであろうか。
国民機とも言われた初期のPC-9800Vシリーズに搭載されたCPUで、一番早いやつで一〇メガヘルツで動作したはずだ。
一六ビットCPUということで八ビットCPUの二倍のバス幅を持っていることから、ちょっと乱暴ではあるが同じクロックで八ビットCPUの二倍の性能と仮定した場合、二〇メガヘルツのZ80とほぼ同じ性能ということになる。
もっとも、この計算はあまりというか全く参考にならないんだけどね。
何しろCPUの性能はバス幅やクロックサイクル以外にも関係してくるからだ。
だが一つの目標としてこれを設定した。
とりあえずここまで行けば事務用PCとして十分な性能が発揮できるはずだ。
グラフィックだって高解像度でなければなんとかなるだろう。
今はキャラクタしか表示できないディスプレイにグラフィックが表示できれば表現力が大幅にアップする。
「先生。まずは品質チェック用のシーケンスを複写します」
「そうだな。やってみなさい」
ぼくは前もって作っておいた、いわばメモリチェック用のプログラムを五一二ページ分の縮小率で複写して、表示用の板をセットする。
「【メモリーチェック】」
ぼくが起動キーワードを唱えるとガラス板が徐々に薄く曇った感じになっていく。
これはチェック用に、位置報告シーケンスを起動キーワードや位置情報などと言った部分を変更して空きエリアを埋める様に書き込んでいるためだ。
この縮小率だと一センチ角の文字なら一〇マイクロメートルほどの文字になるのだからもう文字としては見えない。
処理自体は単純なので、使用するステップ数は少ない。
そのため、かかる時間はインクをガラス板まで移動させるだけの時間となる。
物理的移動のためちょっと時間がかかるのが難点だ。
その後メモリチェックが始まったのか、板の上に文字が表示され始めた。
ここには今チェックしているメモリ位置がページ、桁数、行数の順で表示される。
「結構早いですねぇ」
桁数行数の表示はほとんど読めない。
一秒あたり三ページほどというところか。
五一二ページ全部チェックが終わるのに三分ほどかかった。
「なんだこりゃぁ」
「ああ、説明していませんでしたね。これはどれだけ小さい文字が精霊に読めるか確認していたんです」
「はあ? こんなに小さくちゃ精霊が読めても人間は読めんだろ」
「拡大すれば読めますよ。この板に表示します。この間試作を頼んだ光魔法を映し出す板もこれと同じ役割ですね」
「この板がないと読めないんじゃ、小さくする意味がないんじゃないか。五〇〇ページ位なら普通の魔導書の範疇だし」
羊皮紙の厚さは大体〇・一ミリメートル前後らしいから五一二ページ二五六枚の羊皮紙なら約二・五センチの厚さにしかならない。
「意味はあります。まあ見ていてください」
僕はガラス板の文字を消去して今度は一〇二四ページ相当の縮小率にして複写し、メモリーチェックを起動する。
密度が二倍だが処理速度二倍でページ数も二倍だから同じ時間で終わるはずだ。
「三分。ほぼ同じですね。先生、ここまでは予想通りです」
「うむ、続けたまえ」
ぼくは先生に促され、二〇四八ページ相当の縮小率で実行した。
「あれ? 止まりましたね」
表示が四ページあたりで止まっている。
僕は魔導書にディスプレイ用の板とキーボード用の板、そしてインク瓶を接続して、OSを起動させる。
「なんだそりゃあ」
カイゼルさんには初めて見せるパソコン第一号だ。
彼がどれだけデキる人なのかわからなかったから、これまで見せていなかったが、これだけのものを三日で作って持ってきたのだ。
能力的に問題はないだろうから彼には本格的に関わってもらうため見せることとしたのだ。
「僕が今作ろうとしている魔導具の試作品ですよ。さてと、顕微鏡起動、座標をセットと」
僕は表示された座標を拡大表示するアプリを起動させた。
このプログラムは指定した座標の周りを拡大して画面に表示することができる。
今回の確認のため先生から提供してもらった顕微鏡のシーケンスをこのパソコンで動かせるように僕がカスタマイズしたものだ。
「ちょっと拡大率が大きすぎてよくわかりませんね。もうちょっと拡大率を下げてっと」
座標指定でちょうど一文字分を見えるようにしてあるため、一文字より大きな物があると画面いっぱいに広がってしまうのだ。
僕は拡大率を下げるPageDownキーを押す。
すると少しずつ文字が周りにも見えてくる。
ちなみにカーソルキーで表示位置の移動も可能だ。
「これはホコリですか?」
そこにみえたものは、なにやら白っぽい塊。
「文字はこのホコリの上から書かれていますね。それで形が歪になっています」
この縮小率だと一文字がおよそ数マイクロメートルほどだ。
目に見えるホコリが数マイクロメートルから一〇マイクロメートルほどだから、もう文字よりホコリのほうが大きい。
「そう考えると五一二ページの方もたまたまホコリが積もっていなかっただけということも考えられますね」
先生の指摘も最もだ。
五一二ページでも一文字は一〇マイクロメートルくらい。
ホコリと同じ大きさなのだ。
当然文字を構成している線はもっと細い。
最初はまだホコリが積もっていなかったものの時間がたつに連れ空気中のホコリがガラスの表面に落ち始め、ここでエラーになったとも考えられる。
ホコリの大きさを考えると一二八ページくらいが限界かな?
つまり八ビットパソコンくらいの速度が限界。
これだと事務に使うのは厳しいか。
詰んだか?
「書き込む前に洗浄の魔法を使ってはどうでしょう? 書き込んでしまえば多少ホコリが付いても文字は読めるはずです。そうですよねカイゼルくん」
「確認したことはないがたぶんそうだ。この魔導板は特殊な液体でコーティングされていて精霊は板から外側に向けて文字を認識しているはずだ。俺たちは外側から見ているからホコリしか見えないが精霊側からはホコリの前にインクがあるから問題なく読めると思う」
いや、詰んでいなかった。
確かに。ガラスに書いてある文字の外側がどんなに汚れたって内側からなら読める。
なるほど、書き込む時だけきれいになっていれば、あとから多少汚れてもいいわけだ。
汚れがひどくなるようなら時々洗浄してあげればいいだけだし。
「やってみましょう」
ぼくはエディタを起動しメモリーチェックプログラムの最初に洗浄の魔法を追加して行く。
「そんなので修正できるのか?」
カイゼルさんはぼくの手元とスクリーンを見ながら興味深そうに問いかける。
「ええ、この『エディタ』で一行ごとあるいは一文字ずつ修正することが可能です。編集したものは仮想のページとして展開して複写することができます。よし、できた。洗浄して複写っと。んで、続いて実行だ」
最初の複写も洗浄しないとまずいので、洗浄した後二〇四八ページでの縮小率で複写し実行した。
「行けそうですね」
ページ数は順調に上がっていく。
三分後にすべてのページのスキャンが終わった。
「次は四〇九六ページですね」
続いてさらに倍の四〇九六ページに挑戦。
「止まりましたね」
二〇〇〇ページあたりで止まってしまった。
「今度は何でしょうね」
僕は再度顕微鏡アプリを起動させ、エラーの起こった文字付近を拡大表示した。
「文字はちゃんと書かれているように見えますが」
人間でも判別できるくらいちゃんと見えている。
「どれどれ」
カイゼルさんもディスプレイを覗き込む。
「こりゃ、あれだ。ガラス表面に塗ってあるコーティング剤にゴミがあってそれが認識を阻害しているんだな」
「コーティング剤の問題ですか?」
「ああ、成分は秘密だが、ガラスの表面に薄くコーティング剤を塗ってある。これと魔導線をつなぎ魔石と接続することで魔導書や魔導具として機能するんだ。だがそのコーティング剤自体にゴミが混ざっちまったんで、そこだけ魔導書として機能しなくなっているんだろう」
「それって洗浄とかで今取り除けますか?」
「たぶん無理だな。一体化して固まっているから精霊が認識しねえだろう」
「そうですね。洗浄は表面についている異物を取り除くものですから、一体化してしまっているものは取り除けません」
「では次にコーティング剤を作る時や塗るときにこのゴミが入らないようにできますか?」
「うーん、どうかな。やったことはないし、そもそも目に見えないんじゃ、取り除けたかもわからん。こうやって拡大すればわかるだろうが、全部を見るのにこのシーケンスを動かさないといけないんだろ? 手間がかかりすぎる」
「えーと、この液体を作る際はしっかり濾過したり、塗る時に機材や部屋の空気自体を洗浄したりしながら作業するとかはどうですか?」
「できるかもしれねぇが、洗浄しながらだと結構魔力食うぞ」
ホコリのような小さなものでも空気中には大量にあるため常にそれを排除しつづけるとなれば、それなりのエネルギーを消費する。
精霊の魔力消費量は使用するエネルギー量に比例するから、実行時間が二倍になれば使用エネルギーも二倍になり、通常一瞬で終わる洗浄を長時間かけ続けるとなれば、何千倍何万倍の消費エネルギーになるということである。
また距離が離れるほど魔力の消費が大きくなるため、部屋全体を洗浄するとなると相当の魔力を使うのは想像できる。
「密閉した小さな部屋の中で、断続的に洗浄の魔法をかけてはどうでしょうか? 完全にはなくなりませんがある程度は防げるはずです。あとはわざといくつか穴を開けて、そのうちの一つから洗浄した空気を入れるとか」
向こうの世界で言うクリーンルームを思い出しながら僕は提案してみる。
確かCPUなんかの精密部品はクリーンルームで作られているはずだ。
これも精密部品には違いないのであるから、それである程度はなんとかなるはずだ。
洗浄の魔法も常時なら魔力を使うが一秒毎とかならそんなに使わないだろうし、部屋を密閉しておけば新たなるホコリの侵入を防げる。
酸欠になる危険があるから部屋の中に洗浄した空気を圧力をかけて流し込んだほうがいいか。これなら外が負圧になるから汚染された空気は入ってこない。
断続的に洗浄するのは服などが擦れて剥がれ落ち、新たなるホコリとなったものを除去するためだ。
「やってみないとわからんが、それならだいぶ減らせはすると思う。完全に除去できるかどうかはわからんぞ」
「できるだけで結構です。こちらでエラーの起きるエリアを使用しないようにフラグを立てておけばいいだけですから」
HDDでいうバッドセクタ情報をどこかに書き込んでおけば、それで事足りる。
またこのバッドセクタ情報はホコリ等に影響されない大きさで書き込めば、この情報自体が読めなくなる心配もない。
とはいえバッドセクタが多すぎると、当然容量が減るわけだから、既定値以上のバッドセクタがあるやつは不良品として弾く必要があるだろう。
不良品が増えれば当然歩留まりが悪くなりコストが上昇してしまう。
魔導板を作成できるのは貴族だけだから、一枚の不良品を出すだけでも大きな損失となる。
それを考えて倍率を決める必要があるな。
「とりあえず今の所このガラス基板では、二〇四八ページが限界のようですから、その縮小率でOSとアプリを複写します」
今はまだバッドセクタを判定するプログラムを入れていないから、問題なく動く縮小率でコピーする。
この縮小率は八ビットパソコンの二〇倍の性能。
八〇メガヘルツ動作の Z80A相当だから、一六ビットなら四〇メガヘルツ。三二ビットなら二〇メガヘルツ。
初期の三二ビットパソコンに近い性能が出るはずだ。
「複写完了。OS起動っと」
僕はOSを立ち上げる。
起動メッセージが出て、HDD領域がありませんというメッセージと共にコマンドプロンプトが表示される。
「フォーマットと」
僕はフォーマットプログラムを起動させ、硝子板の裏面にHDD領域を確保した。
「さてと、ここからが問題だ」
今複写したのはBIOSとOS部分、そしてファイル転送ツールのみ。
アプリは僕の魔導書のHDD領域に入っているが、容量とかエリアの確保の仕方が違うのでそのままでは複写はできない。
ファイルを一個一個転送していかないといけないのだ。
これはパソコンが二台ないと確認できないので、今回が初実行になる。
転送シーケンスはとりあえず電波のonoffを発信受信することで実現している。
シリアル伝送の送受信機能を参考にして作ってみた。
エラー訂正はなく、最後にチャックサム送って確認し、問題があれば再度実施だ。
「ファイル転送っと」
ガラスの魔導書側で受信プログラムを起動した後、元祖パソコンでファイル送信プログラムを起動する。
画面にコピー状況が表示されていく。
「問題なさそうですね」
先生と一緒に時間かけて確認したのだ。
コピーするだけの簡単なプログラムだし、そうそう間違えることはないと思っていたが、やはりちゃんと動くと嬉しい。
「終わりました。まずは『エディタ』を立ち上げます」
定番アプリのエディタを起動。
読み込ますのは、やはりエディタのソースだ。
「早い!」
画面表示が一瞬だ。
八ビットマシンの二〇倍だからな。
元祖精霊コンピュータに比べれば一六〇倍くらいか。
表示切り替えが見えないほど早い。
これまで二秒で一画面だったのが、0.0125秒で表示が完了する。
ディスプレイのリフレッシュレートで一般的な六〇ヘルツだと一画面をリフレッシュするのに、0.0166秒だからリフレッシュレートより早い。見えないわけだ。
「先生! やりました!!」
僕は歓声を上げて先生に飛びつきました。
「これが君の目指したものですか……」
画面切り替えに二秒かかっていたものでさえ大したものだと思っていたが、これだけ早くなれば、元祖パソコンの二秒は耐え難いものになるだろうことはあきらかだ。
これならシーケンスを書く際のストレスは大幅に削減されるはずだ。
「いいえまだです! カイゼルさんの改良が成功すれば、更に速くなります。もっと複雑なシーケンスでももっと大量のシーケンスでもストレスなく実行できるんです! これはもう魔導書界の革命と言っても過言ではありません。今僕たちは今、歴史を変えたんです!!」
ぼくは興奮して叫びまくる。
「革命とか大げさじゃね?」
「いえ、アルカイト様の目指す先は私には見通せませんが、これが画期的な魔導書であることは確かです。このまま発展していけばいったいどんな事ができるようになるか想像もつかないほどに」
「なんだってできます! 夢と創意工夫があれば。これには魔導書界だけじゃない、世界を変えられる、革命するだけの力があるんです!!」
ああ、そうだとも。
僕はこれで世界を革命してみせる。
一人テンションの上がっている僕に先生たちはついてこれないようで、ちょっと呆れたように見ているが、そんなの気にしない。
近い将来、世界が変わっているのに気がつくだろうから。
がっつりアセンブラで書いたことのあるCPUといえばZ80シリーズか68000シリーズでしょうか。
Intel 8080のアセンブラも見たことはあるのですが、Z80シリーズ比べ命令セットがわかりにくいし、そもそも8080系のマイコンといえばTK-80くらいしか見かけたことがないので、使う機会はありませんでしたね。
Intel 8086系のアセンブラはC++のインラインアセンブラで書いたくらいでしょうか。
グラフィック処理を高速化するために、MMX命令なんかも使いました。
今ではよほど速度が必要な機能以外アセンブラに触れる機会はなくなりましたね。