魔力計算機の作り方
突然だが、貴方は突然異世界に飛ばされたら、どうやって生き延びることを考える?
このような時、お決まりのテンプレだと、神様からチートスキルが貰える。
ではもしチートスキル無しなら?
そのような人のために、知識チートがある。オセロなどのゲームや、稲作、ジャガイモの農業知識、醤油や酒造りの食品知識などなど
しかしよく考えて欲しい。
オセロはシンプル故にすぐに真似される。
なんとか一年分ほどの生活費が稼げる程度であり、すぐに人気は下火。
将棋に似たゲームとかトランプっぽいゲームとかに埋もれることになる。
え?異世界にトランプとかあるの、って??
当たり前だよ。地球でも中世にはヨーロッパに広がってたんだし。
農業知識はそもそも植生違いすぎて似た植物すら見つからない。
それっぽい野生種見つかっても、品種改良されてないから美味しくないし、取れる量少ないし、病気や天候ですぐ全滅する。
というか現地人なめんなって話だよね。そこで育てられてる作物がやっぱり一番効率良いわ。
イモくらいかな、そこそこいけるのは。
食品知識は現代の機械化された手順の知識はあっても、その前のより原始的な手順が分からず、どうにもならない。
まず米麹を用意します、の段階で挫折する。
結局のところ、地球にいた頃と同じように、金を稼ぐしかなくなる。
何の経験もなければ、コンビニバイトのように店番で稼いだり、酒場のホールに出たりするしかない。
専門職ならガッツリ稼げる。料理人なら料理。医者なら医療。大工やデザイナー。
やはり手に職持っている人は強いのである。
ちなみに、私はプログラマをしていました。
手に職は持ってますよ!プログラミングなら任せてください!!
えっ?そうですよね異世界にパソコンなんてないですよねハハハ
という訳で採用を断られ断られ、残した黒星の数は100。
コミュ障気味で運動神経ない自分がどうすれば職にありつけるか。
考えに考えぬいた結果、ひとつの結論にたどり着いた。
パソコンがない→ないなら作ればよくね?
これは実に名案であると思われた。後々よく考えたらパソコン作るとかめっちゃ大変やんどう考えても個人で無理やろやめときー、と気づいたがもう後には引けない段階になっていた。
異世界にてパソコンを作る際の最初の問題は、電源が無いことである。
動力がないと動かない。当たり前だ。
しかしそこは異世界ファンタジー。代替品として魔力がある。
しかも人間の手から自由に魔力が出せる。現代だと人間発電機だ。異世界凄い。
安定した魔力供給を行うために、魔力を一定の量に調整して装置に渡す必要がある。
電力で言えば、電圧を変換する機能だ。
弱い魔法攻撃を無効化するゴーレムがいて、そいつの外殻を使うことにした。ゴーレムの癖に魔法対抗しようとして物理防御が下がり中途半端な性能となって、初心者でも簡単に狩れる。素材の性能も微妙だから打ち捨てられる事も多い不遇な奴である。
また、魔力を溜める機構を実現する為にクズ魔石を使用した。クズ魔石は微量の魔力を蓄える性質をもつ。これを使ってパソコンのメモリを実現する。
魔力メモリ完成だ。なおハードディスクやSSDは現時点で必要がないので置いておく
次に問題となったのは、CPUである。
CPUは、演算機能と制御機能を併せ持っている。
まず演算機能を実現する為に、加算器と言われる足し算を行う装置を作る。
パソコンの中ではデータが1と0で表現されている。
1と0を並べることで、数値を表す。例えば、数字の0から7は順に、0,1,10,11,100,101,110,111と表現される。これを2進数と言う。
2進数の足し算は、たとえば6+7だと111+110=1101となる。
一桁ずつ分割して計算すると、
1+0=1,1+1=10,3桁目は下の桁の繰り上がりがあるので1+1+1=11
となっていく。
珠が各桁一つのソロバンという考え方をすれば少しわかりやすい人もいるだろう。
組み合わせとしては、
一つ目の値 二つ目の値 下の桁の桁上がりがそれぞれ2パターンで合計8パターンとなる。
つまり、この8パターンが入力されたら0,1,10,11のどれかを出す回路を作って、組み合わせれば、2進数の足し算を行う装置が完成する。
回路の作成にもクズ魔石を使った。クズ魔石は微弱すぎて使いみちがないのでタダ同然である。
クズ魔石に加工をし、NANDという回路を作る。NANDという回路は、2つの入力から1つの値を出し、入力が0.0か1.0か0.1なら1を,1.1なら0を出力する。この回路は万能で、あらゆる回路はこのNAND回路を組み合わせる事で実現できる。
興味がある人はNAND回路の万能性、で調べたら細かい話が出てくるのでここではこのくらいにしておく。
さて、NAND回路を組み合わせることによって魔力加算器が完成した。次はCPUのもう一つの機能である制御機能である。
制御機能は命令にしたがって制御を実行する。例えば、A+Bを計算するならAをメモリからよびだして加算器の入力1にセットし、Bをメモリからよびだして加算器の入力2にセット、足し算を実行して結果をメモリCに入れる、というように命令をステップに分割し、それぞれ実行する。
この一つ一つのステップを行うための命令セットを定義し、それぞれが実現できるように回路を作成していく。
ステップ中に一時的に値を入れる、レジスタにはメモリと同じクズ魔石を使った。
あとは入力と出力ができるように、スイッチと表示ランプを用意した。
スイッチはレジスタ5に、表示ランプはレジスタ7に繋ぐ。
このスイッチと表示ランプは製品化の際に進数用から10進数用に改良する。
これでひとまず魔力計算機は完成した。
そしてやっとプログラマの出番である。
魔力計算機はそれ単体ではなにもできない。命令をメモリに書き込むことではじめて意味を為す。
プログラムは原始的なパンチカードで作成し、魔力メモリに書き込む事とした。パンチカードには特殊な魔石をつけて、魔力メモリに書き込む際に偽造防止機能をつける。
パンチカードは所謂機械語と呼ばれるものが書かれる。書かれるというか、穴が開けられた紙だ。
この機械語は人間が見てもさっぱりなので、アセンブリ言語という人間が見たらわかるプログラミング言語で書いて、機械語には単純変換して書き込む。
最初は変換は人間がやればいい。そのうちアセンブラとよばれる変換器を用意できるようになるだろう。
わたしは一心不乱にプログラミングをした。
やっと知識チートできるのである。
それこそ寝る間も惜しんでいろんなものを作り上げた。
一人では限界があるので人を雇い、皆で昼夜働いた。
そして私は過労死した。
いいか、これから転生するキミへ向けての忠告だ。
健康が一番。
あと働き過ぎには注意な。
では、グッドラック