というのがいくつかあるそうです。パソコンで空想レトロPCを再現するソフトで、レトロゲーム、解像度が128×128ドットとか240×136ドット16色とかで、簡単な横スクロール、縦スクロール、静止画と文字コマンドによるアドベンチャーゲームとかが組めるそうです。
これの開発にLuaと呼ばれる言語を使うそうで、ちょっと調べてみたらローカルなデータベース作成のための操作言語付きのユーティリティーみたいです。違っていたらすみません。
さて、今の私はとても暇が無いので趣味で構想しているだけですが、FPGAの教育用ボードというのがあって、例えば1チップMSXとかが過去にあって、そこまで豪華にするつもりはありませんが、簡単なゲームマイコンなら組めそうです。価格は3万円ほどで、一つだけ例を挙げるならterasic社のDE0-CVです。
CPUはロジックで作らないといけません。しかし、例はいくつもあるようです。出力はVGAで、市販のモニタには今もこのアナログのビデオ端子が付いていると思います。PS/2キーボード/マウスが接続でき、しかし用意されているのは接続するハードだけですから具体的な信号を知ってないとプログラムできません。MicroSDカードが外部記憶として使えますが、これもハードだけなのでプログラムしないと使用できません。つまり、FATファイルシステムなどを知っている必要があります。
FPGA評価ボードの使い方の指南書はいくつも市販されていて、大型書店で手に入ると思います。クロック数100MHz程度の簡易CPUだったらアマチュアでも組めるはずですし、メーカー提供の無料CPU回路もあります。必要ならギガヘルツに近いクロック数のARM-CPUが内蔵されているタイプが別にあります。GPU内蔵のFPGA評価ボードはあるのか無いのか知りません。ユーザーがGPUを組むのは可能と思いますがクロック数は100MHz程度です。
たとえばVGA端子の制御はここに書いてあるので、最悪、コピーすれば使えるはずです。FPGAに内蔵のRAMは300Kバイトほどだったか。ただしこれは貴重な高速RAMで、パソコンのCPUで言えばキャッシュに相当し、しかし普通は300MHz級の動作速度です。
難題なのは64Mバイト程度のSDRAMが接続されていて、これをどう使うかです。もちろんFPGA開発メーカー提供の(ハードの)プログラムは用意されていますが、私は使ったことが無いので中身は知りません。
なので、これをローカル・データベースとして使うユーティリティーの構想をしていた、ということ。SDRAMはパソコンやスマホに入っているDDRとか呼ばれている主記憶のメモリのことで、現時点ではこれ以外の主記憶メモリは珍しいと思います。
前座が長々と続きましたが、要するにそのユーティリティー・プログラム群と上述のファンタジー・コンソールで使われているLuaがそっくりだったので、今更私は衝撃を受けている、ということ。世の中、同じことを考える人は多数いて、そんなことはとっくに実現されている、のを思い知りましたよ。
そのローカル・データベースとは具体的には連想配列と文字列操作、とくにパターンマッチングです。連想配列はC言語の配列、aa[ii]の整数iiの所に任意の文字列が記入できて、返値も任意の(可変長の)文字列を許すと考えると良いです。文字列は表計算ソフトの文字列と同じで、パターンマッチングは正式には正規表現ですが、もっと簡単なものでも役立ちます。
こういうの、普通はあまりに面倒なのでEmacs LISPのような簡易LISP言語を自作したりします。それなりの知識は必要ですが、個人で作成できる範囲と思います。そのための仕掛け(リストとintern表)も上述の(構想中)ユーティリティーには含まれています。
なあに、(私の頭の中では)そんなに複雑では無いです。これがネットワーク対応したら、つまりイーサネットと排他制御があれば、いっぱしのOSになってしまいます。
ちなみに、私が読んだ本は工学社のI/O BOOKSの一つ、「TIC-80 プログラミングガイド」(2019年)です。私のように興味のある方はどうぞ。
これの開発にLuaと呼ばれる言語を使うそうで、ちょっと調べてみたらローカルなデータベース作成のための操作言語付きのユーティリティーみたいです。違っていたらすみません。
さて、今の私はとても暇が無いので趣味で構想しているだけですが、FPGAの教育用ボードというのがあって、例えば1チップMSXとかが過去にあって、そこまで豪華にするつもりはありませんが、簡単なゲームマイコンなら組めそうです。価格は3万円ほどで、一つだけ例を挙げるならterasic社のDE0-CVです。
CPUはロジックで作らないといけません。しかし、例はいくつもあるようです。出力はVGAで、市販のモニタには今もこのアナログのビデオ端子が付いていると思います。PS/2キーボード/マウスが接続でき、しかし用意されているのは接続するハードだけですから具体的な信号を知ってないとプログラムできません。MicroSDカードが外部記憶として使えますが、これもハードだけなのでプログラムしないと使用できません。つまり、FATファイルシステムなどを知っている必要があります。
FPGA評価ボードの使い方の指南書はいくつも市販されていて、大型書店で手に入ると思います。クロック数100MHz程度の簡易CPUだったらアマチュアでも組めるはずですし、メーカー提供の無料CPU回路もあります。必要ならギガヘルツに近いクロック数のARM-CPUが内蔵されているタイプが別にあります。GPU内蔵のFPGA評価ボードはあるのか無いのか知りません。ユーザーがGPUを組むのは可能と思いますがクロック数は100MHz程度です。
たとえばVGA端子の制御はここに書いてあるので、最悪、コピーすれば使えるはずです。FPGAに内蔵のRAMは300Kバイトほどだったか。ただしこれは貴重な高速RAMで、パソコンのCPUで言えばキャッシュに相当し、しかし普通は300MHz級の動作速度です。
難題なのは64Mバイト程度のSDRAMが接続されていて、これをどう使うかです。もちろんFPGA開発メーカー提供の(ハードの)プログラムは用意されていますが、私は使ったことが無いので中身は知りません。
なので、これをローカル・データベースとして使うユーティリティーの構想をしていた、ということ。SDRAMはパソコンやスマホに入っているDDRとか呼ばれている主記憶のメモリのことで、現時点ではこれ以外の主記憶メモリは珍しいと思います。
前座が長々と続きましたが、要するにそのユーティリティー・プログラム群と上述のファンタジー・コンソールで使われているLuaがそっくりだったので、今更私は衝撃を受けている、ということ。世の中、同じことを考える人は多数いて、そんなことはとっくに実現されている、のを思い知りましたよ。
そのローカル・データベースとは具体的には連想配列と文字列操作、とくにパターンマッチングです。連想配列はC言語の配列、aa[ii]の整数iiの所に任意の文字列が記入できて、返値も任意の(可変長の)文字列を許すと考えると良いです。文字列は表計算ソフトの文字列と同じで、パターンマッチングは正式には正規表現ですが、もっと簡単なものでも役立ちます。
こういうの、普通はあまりに面倒なのでEmacs LISPのような簡易LISP言語を自作したりします。それなりの知識は必要ですが、個人で作成できる範囲と思います。そのための仕掛け(リストとintern表)も上述の(構想中)ユーティリティーには含まれています。
なあに、(私の頭の中では)そんなに複雑では無いです。これがネットワーク対応したら、つまりイーサネットと排他制御があれば、いっぱしのOSになってしまいます。
ちなみに、私が読んだ本は工学社のI/O BOOKSの一つ、「TIC-80 プログラミングガイド」(2019年)です。私のように興味のある方はどうぞ。