非専門的シンギュラリティー研究所

無限に動き続けるシステムを表す方法を AI なども使って考えていきます。

中間報告(23)

このブログでやっていることは昔なら「まじめにやれ」と言われるようなことかもしれませんが、一人でやっているため誰も何も言ってこないので大丈夫です。現在は X68000 エミュレーターで動作するプログラムを作るためのシステムを考えることを主にやっています。今の時代にやるべきことではないかもしれませんが、AIの発達によって今だからできるとも言えます。

C++

を書いています。このシステムを XCG システムと呼ぶことにします。

を切り替えます。

  • テキスト画面はコンソール入出力を行います。
  • グラフィックス画面でマウスを使わない場合は同時に使うこともできる予定です。
  • ソースコード用ウィンドウはファイル入出力に対応します。

X68000 エミュレーターで動作させる方法を検討するために

C++ で書き直して XCG システム上で動作するようにします。これをクロスコンパイラでコンパイルすると X68000 エミュレーターで動作するようになることが目標です。X68000 エミュレーターで動作させるために、IOCS 呼び出しではできない

  • 塗りつぶした楕円の描画
  • 塗りつぶした角が丸い長方形の描画
  • 塗りつぶした多角形の描画

インラインアセンブラで記述することが目標です。

X68000

WindowsX68000 で切り替えることができるグラフィックス機能のサンプルを作成中です。IOCS の呼び出しでできないものがあるので、C++ のクロスコンパイラでコンパイルした結果をインラインアセンブラに取り込もうとしています。しかし動作しないものがあり、スタックの状態をエミュレーターで調べるのは難しいので、アセンブリ言語インタープリターを作成することにしました。→ アセンブラ

関数電卓コマンド版

関数電卓」(関数電卓)をコマンドで実行できるように C++ で書き直したものを作成しています。「関数電卓」は「関数のグラフ」の関数計算の部分を取り出したものです。X68000 で関数の計算をするサンプルとしても使えるようにします。この項の続きは「関数のグラフ」で扱います。→ 関数のグラフコマンド版

関数のグラフコマンド版

関数電卓コマンド版」にグラフ描画機能を追加して「関数のグラフ」と同様にします。C# 版、TypeScript 版では構文解析中に発生したエラーが無視されていたので、エラーを返すようにしました。これは C# 版、TypeScript 版でも修正する必要がありますが、エラーを表示するエリアがないのでそこを対処しなければいけません。しかし Google Charts のサンプルで同様のものがあるので、この件は後回しとします。

80sBASIC

X68000 エミュレーターでのグラフィックス機能を調べるために X-BASIC を使おうとしたのですが、ソースファイルをを読み込ませるのが失敗するので、他に何か動かせる言語はないか調べていました。「昔ながらのBASIC」は X68000 エミュレーターで動かすことはできるとは思いますが、これはコンパイラとして使えるようにしたいためあまり拡張はしないことにします。どうするかは今後検討します。

ここでは「プログラム電卓」を C++ に書き直した「80sBASIC」を考えていますが、中断しています。

「FORTH電卓(FORTH電卓)」も今後検討する予定です。

コンパイラ

この項ではやはり X68000 エミュレーターの調査のためまずC系の言語について本を調べていましたが、その後は「自由モノイドのイテレーター」で考えた言語が使えるかどうかを調べています。

アセンブラ

XCG システム上で動作する 68000 のアセンブリ言語インタープリターを作成中です。

今後の予定

さらに X68000 エミュレーターで動作させることができそうなものを考えていきます。

X68000」の項で検討している X68000 エミュレーターでの描画機能調査用のプログラムをXCGシステムで動作するようにします。これにマウス、キーボード入力テスト用の機能を追加します。マウス入力調査用サンプルを公開していますが、これはやめてこちらに統合します。

関数プログラミングと無限論理多項式」、「ラムダ計算と無限ラムダ多項式」で扱ったイテレーターとクロージャー調査用言語についても調べます。ここで平方根の計算をやっているので「平方根の計算(平方根の計算)」についても調べます。