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

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

中間報告(22)

このブログは日々の疑問を書いていくスタイルにいったん変更してみることにしました。ブログなのでそのスタイルの方が合っているともいえますし、生成AIで調べる形式であればできるのでとりあえずやってみます。 超越数と無限長リスト プログラミング言語の…

X68000(19)

キーボード入力のサンプルで Windows X68000 で切り替えることができるものを作成しました。 #include <string> #include <sstream> #include <iostream> #define USE_PC // 定義を切り替えることでPC版とX68000版を切り替え可能 #ifdef USE_PC #include <conio.h> // _kbhit, _getch #else #incl</conio.h></iostream></sstream></string>…

X68000(18)

マウスのサンプルを Windows の GUI X68000 で切り替えるようにしたものを作成しました。X68000 については前回と同様になっています。GitHub - hikakankan/MouseGX に公開することにしました。 #include <string> #include <sstream> #define USE_PC // 定義を切り替えること</sstream></string>…

X68000(17)

修正した「IOCSコール」のマウスのサンプルは以下のようになります。 #include <stdio.h> #include <stdint.h> // IOCSコールをアセンブラで呼び出す void msinit() { __asm__ volatile ( "moveq #0x70, %%d0\n\t" // _MS_INIT "trap #15\n\t" : : // 入力なし : "d0" // 使用す</stdint.h></stdio.h>…

X68000(16)

「IOCSコール」のグラフィックス機能を調べるために Windows ではウィンドウに描画する X68000 ではグラフィックス機能で描画する プログラムを作ろうと考えています。そのため、まず Windows のコンソールからウィンドウに描画するプログラムを ChatGPT で…

かけ算・わり算計算機コマンド版(2)

「かけ算・わり算計算機コマンド版」を拡張して Windows ではウィンドウにシフトによって乗算・除算を行う様子を表示する X68000 ではグラフィックスでシフトによって乗算・除算を行う様子を表示する プログラムを作っていきます。そのため ChatGPT で Windo…

X68000(15)

「IOCSコール」への対応についてさらに ChatGPT でやり方を確認してみましたが、とくに問題はないようでした。いろいろ修正していたらとくに変更したとは思えないのですが動くようになっていました。X68000 エミュレーターでは F12 キーでマウスモードを切り…

X68000(14)

「IOCSコール」への対応はまだできていません。ChatGPT でやり方を確認中です。 __asm__ volatile の使い方を教えてください と入力すると以下のような回答が返されました。 もちろんです! GCC (特に `m68k-elf-gcc` などのクロスコンパイラ) で インライン…

X68000(13)

以下のように ChatGPT で入力すると、クロスコンパイラでコンパイルできるコードが返ってきました。しかしエミュレーターで実行するとエラーになります。前回はコンパイルがエラーになっていたので、少し改善されました。「Human68k BIOS の呼び出し」が何な…

X68000(12)

X68000 のマウス処理のやり方は Windows とは違うということがわかってきたので、Windows 上で動作確認をするためには同様の処理を Windows 上のプログラミング言語で書けるようにした方が良いようです。X68000 のマウス処理のサンプルを ChatGPT で C と X-…

X68000(11)

Windows 上で動作確認をするため ChatGPT で QB64 に書き換えてもらいましたが、これは思ったように動きませんでした。他の方法も考えていきたいと思います。 Windows 上で動作するイベントドリブンではない BASIC 系のプログラミング言語はありますか と入…

X68000(10)

「式の計算電卓コマンド版」、「かけ算・わり算計算機コマンド版」は X68000 エミュレーターで動かすことができました。「昔ながらの BASIC」もX68000 エミュレーターで動かすことはできましたが、間違っているところがあるのでまだ使えません。ファイルサイ…

X68000(9)

「円の面積」と同様のものを ChatGPT に X-BASIC で作ってもらいました。 X68000 の X-BASIC の機能について教えてください と入力すると以下のような回答が返されました。 もちろんです!X68000 の X-BASIC は、シャープのX68000シリーズ(1987年発売の日本…

X68000(8)

「式の計算電卓コマンド版」、「かけ算・わり算計算機コマンド版」、「昔ながらの BASIC」は、X68000 をターゲットとするクロスコンパイラでコンパイルすることができました。しかしこれを公開する場所がないので、GitHub で公開しようかと考えています。Vis…

かけ算・わり算計算機コマンド版(1)

「「かけ算・わり算計算機」の説明: 数学とソフトウェアのメモ2」・「かけ算とわり算」のコマンド版を ChatGPT を使って作っていきます。 以下の仕様の、シフトによって乗算・除算を行う様子を表示するプログラムを C++ で書いてください: 数値は 進数( は…

X68000(7)

前回からの手順がわからなかったので ChatGPT で調べました。 X68000 をターゲットとしたクロスコンパイラで作ったファイルを、X68000 のエミュレータで実行する手順を教えてください と入力すると以下のような結果が返されました。 1 クロスコンパイル環境…

X68000(6)

新しい Windows11 のノート PC を導入したので、X68000 向けのクロスコンパイラの導入を再開しました。まず「xdev68k(GitHub - yosshin4004/xdev68k: Cross development environment for the SHARP X68K.)」に従って「MSYS2」をインストールしました。その後…

昔ながらの BASIC(9)

16ビット整数の乗算・除算 Z80 では乗算・除算の命令がないため、処理を書く必要があります。この処理を C++ で説明します。16ビット整数の乗算・除算を C++ で書くと以下のようになります。レジスターを節約するため引数と結果をまとめて 16 ビットで表しや…

昔ながらの BASIC(8)

8086 の例を参考に 68000 のフィボナッチ数列の例を変換した結果にコメントを追加します。「JSR OUTPUT」で数値を出力できるものとします。『【電子復刻版】bit 1984年07月号(通巻185号)』に「68000の命令セット」という記事があるのでこれも参考になるかも…

昔ながらの BASIC(7)

Z80 の例を参考に 8086 の例について考えます。『【電子復刻版】bit 1980年08月号(通巻138号)』の「16ビットマイクロプロセッサ8086」という記事に「8080 から 8086 へのプログラムの変換」という項目があったので Z80 から 8086 への変換にも使えそうです。…

昔ながらの BASIC(6)

Z80 のフィボナッチ数列の例を変換した結果から PUSH HL POP HL は不要なので取り除くと以下のようになります。「CALL OUTPUT」で数値を出力できるものとします。 ; フィボナッチ数列 LD HL, 10 LD (var_N), HL ; N = 10 LD HL, 1 LD (var_I), HL ; I = 1 LD…

昔ながらの BASIC(5)

今回は仮想命令のコードを Z80 のアセンブリ言語に変換する処理を追加しました。これも ChatGPT で作ってもらったものを改造しました。「CALL OUTPUT」で数値を出力できるものとします。Z80 は以前使ったことがあったので少しわかります。MZ-80K・MZ-80C の…

昔ながらの BASIC(4)

『16ビットアセンブリ言語』という 8086 の本があったので、今度は仮想命令のコードを 8086 のアセンブリ言語に変換する処理を追加しました。これも ChatGPT で作ってもらったものを改造しました。「CALL OUTPUT」で数値を出力できるものとします。本がある…

昔ながらの BASIC(3)

仮想命令のコードを 68000 のアセンブリ言語に変換する処理を追加しました。ChatGPT でやってもらったところ動かなかったのでそれを改造して作りました。 class VirtualTo68000 { unordered_map<string, string> variables; public: void translate(map<int, string> program) { int label</int,></string,>…

昔ながらの BASIC(2)

「C++ の調査(10) - 非専門的シンギュラリティー研究所」のコンパイルの処理で行番号を出力するようにします。 void compileExpression(const string& expr, int& line_number) { vector<string> postfix = toPostfix(expr); bool first = true; for (const string& </string>…

昔ながらの BASIC(1)

「C++ の調査(8) - 非専門的シンギュラリティー研究所」から「C++ の調査(10) - 非専門的シンギュラリティー研究所」で ChatGPT を使いながら簡単な BASIC インタープリターを作成しました。これについても今後ポインターのラッパークラスを作っていく予定で…

BSD予想(8)

BSD予想は楕円曲線の有理点群のランクは、そのL関数の における零点の位数に等しいということなので 楕円曲線の有理点群のランク 楕円曲線の有理点全体に無限遠点を付け加えたものはアーベル群 このアーベル群は有限生成(モーデル・ヴェイユの定理) 有限生成…

BSD予想(7)

最終的にはBSD予想の問題の意味がわかるようになるためのシステムを考えることが目的ですが、そのためにいろいろやってみます。 ディリクレのL関数について教えてください と ChatGPT で入力すると以下のような結果が返されました。 ディリクレのL関数(Diri…

BSD予想(6)

『p進ゼータ関数---久保田-レオポルドから岩澤理論へ シリーズゼータの現在』は少しは読んだと思いますがあまりわかっていません。ディリクレのL関数について書かれています。この本の最初の方の基本的なことは ChatGPT はちゃんと答えてくれるし、関連性も…

未来都市(7)

都市の仕様を考えるため調べていきます。 住宅が増えているのに人口が減っているのはなぜですか と ChatGPT で入力すると以下のような結果が返されました。 「住宅が増えているのに人口が減っている」という現象には、いくつかの社会的・経済的・文化的な要…