IC・トランジスタで出来たコンピューターを設計・製作するためのブログ
| Jeans & Development | 電子ブロック工房 | 三日坊主 | フロントページ |
3D Maze for MachiKania [MachiKania]
2016年2月22日
マチカニア用のBASICで書かれたアプリケーションとして、立体迷路を作成しました。敷地に作られた平面状の巨大迷路に人が入って探索するアレ(迷路自身が立体というのではなく)の、シミュレーションです。
プログラムファイル(maze3d.bas)は、ここからダウンロードできます。
このBASICプログラムは、MachiKania 1.0及びKM-BASIC web 0.5のどちらでも実行することが出来ます。
実行すると、次のような画面になり、横29ドット縦27ドットの迷路が作成されます。MachiKaniaでは1秒もかからないのであっという間に消えますが、KM-BASIC webは実行が遅いので、時間をかけて少しずつ作成される様子が分かります。

プログラムファイル(maze3d.bas)は、ここからダウンロードできます。
このBASICプログラムは、MachiKania 1.0及びKM-BASIC web 0.5のどちらでも実行することが出来ます。
実行すると、次のような画面になり、横29ドット縦27ドットの迷路が作成されます。MachiKaniaでは1秒もかからないのであっという間に消えますが、KM-BASIC webは実行が遅いので、時間をかけて少しずつ作成される様子が分かります。

KM-BASIC web ver 0.5 [MachiKania]
2016年2月21日
MachiKania 1.0に搭載のBASIC KM-1120に対応した、KM-BASIC web ver 0.5を公開しました。
使い方は、以前のKM-BASIC for MIPSに同梱されていた物と同じです。KM-1120で新たに追加された命令、USEPCG, PCG, WAIT, SCROLLを使えるようにして、いくらか不具合修正をしています。
以下、KM-BASIC webを使う上での注意点です。主に、MachiKania 1.0との違いについてです。
・ 割り算を行なう場合は、演算結果を()で囲って下さい。これにより、演算結果が 必ず整数になります。
・ GOSUB()関数は、一つのステートメントの中で2回以上使わないで下さい。
・ INPUT$()関数の戻り値は、変数に代入して使って下さい。直接PRINT命令を使用す ると(そういうプログラムはほとんど無いと思いますが)、同じ内容が何回も画 面に表示されます。
・ パレット番号は、15迄が有効です。
KM-BASIC web 0.5の実行及びダウンロードは、ここから出来ます。
http://hp.vector.co.jp/authors/VA016157/kmbweb05/
20190329追記
ver 0.6を公開しました。アンドロイド等でボタンが使えない不具合が修正されています。実行及びダウンロードは、ここから出来ます。
http://hp.vector.co.jp/authors/VA016157/kmbweb06/
使い方は、以前のKM-BASIC for MIPSに同梱されていた物と同じです。KM-1120で新たに追加された命令、USEPCG, PCG, WAIT, SCROLLを使えるようにして、いくらか不具合修正をしています。
以下、KM-BASIC webを使う上での注意点です。主に、MachiKania 1.0との違いについてです。
・ 割り算を行なう場合は、演算結果を()で囲って下さい。これにより、演算結果が 必ず整数になります。
・ GOSUB()関数は、一つのステートメントの中で2回以上使わないで下さい。
・ INPUT$()関数の戻り値は、変数に代入して使って下さい。直接PRINT命令を使用す ると(そういうプログラムはほとんど無いと思いますが)、同じ内容が何回も画 面に表示されます。
・ パレット番号は、15迄が有効です。
KM-BASIC web 0.5の実行及びダウンロードは、ここから出来ます。
http://hp.vector.co.jp/authors/VA016157/kmbweb05/
20190329追記
ver 0.6を公開しました。アンドロイド等でボタンが使えない不具合が修正されています。実行及びダウンロードは、ここから出来ます。
http://hp.vector.co.jp/authors/VA016157/kmbweb06/
MachiKania ver 1.00 の紹介 [MachiKania]
2016年2月6日
ケンケンさんと共同で開発したBASIC搭載カラーゲームシステム、マチカニア(MachiKania)が、公開になりました。こちらでも、紹介させて頂きます。
マチカニアは、ビデオ端子のあるテレビと、PS/2キーボードをつなぐことで、それ単体でBASICプログラムを作成したり、色々なテレビゲームを楽しんだりすることの出来る、小型コンピューターシステムです。

私が製作した物は、6.5 cm x 9.5 cm x 4 cmほどの小さな筐体に収まっています。
使い方やソフトのダウンロードなどはケンケンさんが公開なさっているwebページに譲るとして、ここでは、私が担当したBASIC コンパイラー KM-1120 (KM-BASIC)の技術的なことに関して述べます。
マチカニアは、ビデオ端子のあるテレビと、PS/2キーボードをつなぐことで、それ単体でBASICプログラムを作成したり、色々なテレビゲームを楽しんだりすることの出来る、小型コンピューターシステムです。

私が製作した物は、6.5 cm x 9.5 cm x 4 cmほどの小さな筐体に収まっています。
使い方やソフトのダウンロードなどはケンケンさんが公開なさっているwebページに譲るとして、ここでは、私が担当したBASIC コンパイラー KM-1120 (KM-BASIC)の技術的なことに関して述べます。
KM-BASIC for MIPS ver 1.1 [電子ブロック工房]
2015年12月23日
ケンケンさんのSDカードブートローダーのRev.2に対応し、かつ、PS/2キーボードの使用に対応した、KM-BASIC for MIPSのver 1.1を公開しました。ダウンロードの為のリンクは、記事の最後にあります。
(キャプチャー画面は、HTML5によるエミュレーターからのものです。)

KM-BASIC for MZ80K/MZ-700 ver 0.8を公開 [Z80]
2015年12月10日
Z80用KM-BASICのver 0.8を公開しました。
http://www.vector.co.jp/soft/other/other/se499422.html
主な変更点は、以下の4つの関数を追加したことです。
・VAL()
・DEC$()
・INKEY()
・INPUT$()
初期のバージョンは、ユーザーからの入力を受け付ける機能がなく、そういったプログラムはマシン語を挿入するなどしないと出来ませんでした。これはうっかりしていました。Star Trek(ゲーム)でも作ろうかなと思って色々見ていた時に気がついた次第です。
今回のバージョンでそれを導入したので、ある程度のプログラムならまともに書けるようになったかなと思っています。
http://www.vector.co.jp/soft/other/other/se499422.html
主な変更点は、以下の4つの関数を追加したことです。
・VAL()
・DEC$()
・INKEY()
・INPUT$()
初期のバージョンは、ユーザーからの入力を受け付ける機能がなく、そういったプログラムはマシン語を挿入するなどしないと出来ませんでした。これはうっかりしていました。Star Trek(ゲーム)でも作ろうかなと思って色々見ていた時に気がついた次第です。
今回のバージョンでそれを導入したので、ある程度のプログラムならまともに書けるようになったかなと思っています。
トランジスターCPU、NAND6TRの全回路図 [一般的なこと]
2015年6月21日
NMOSで作った、ジョンソンカウンター [デジタル回路]
2015年5月25日
MOSFET-Nを53個用いて、3つのFFを持つジョンソンカウンターを作成した。現在作成中のトランジスターCPUのクロックシグナルを制御する、大元になる部分の回路。
トランジスターを用いた回路設計がうまく行っているように思えるので、CPUの回路全体を近々公開しようかな。
トランジスターを用いた回路設計がうまく行っているように思えるので、CPUの回路全体を近々公開しようかな。
NMOSで作ったD-FF [デジタル回路]
2015年5月2日
コンピューターの原理を考える上で、フリップフロップ(FF)の理解は欠かせない。FFの安定動作は、CPU全体の安定動作に必須の条件だ。トランジスターでどの様に回路を組めば、FFが安定して動作するかを考察・実験してみた。
ほぼ出来上がっているトランジスターCPUの回路に於いて、FFはすべて、DタイプFFとして実装している。そこで、D-FFをブレッドボード上に構築して、予想したとおり動作するかどうかを、実験した。
ほぼ出来上がっているトランジスターCPUの回路に於いて、FFはすべて、DタイプFFとして実装している。そこで、D-FFをブレッドボード上に構築して、予想したとおり動作するかどうかを、実験した。
KM-BASIC for MIPSの紹介 [PIC]
2015年4月14日
KM-BASIC for MIPSは、PIC32MX上で動く整数型BASICコンパイラーです。ケンケンさん作成のPIC32テレビゲームシステム(以下、PIC32TVGS)上で動くアプリケーションとして作成しました。表示はテキストのみですが、カラーでの表示が可能です。BASICプログラムを機械語コードにコンパイルしてから実行するので、高速な動作が特徴です。SDカードに複数のBASICプログラムを入れておき、PIC32TVGSの選択画面で選択して実行することが可能です。SDカード上のファイルの配置方法については、ダウンロードファイルのreadme.txtを参照して下さい。記事の最後に、ダウンロードのためのリンクがあります。
NAND型 CPU [CPU]
2015年3月16日
演算がNANDと左シフトのみが可能な、6ビットCPUを考えてみた。
ここのところ、PICやLPCなどの組込みマイコンと、MZ-80Kの話題ばかり続いたが、このブログは本来、副題にもあるとおり「IC・トランジスタで出来たコンピューターを設計・製作する」ためのもので、久々にその初心の話。
NANDの組み合わせだけですべての論理演算が可能であるのはよく知られていることであり、初期のコンピューターの中には、このロジックで作成されていたものもあったらしい。
ということは、CPUで使える演算子としてNANDだけを用意しておけば良いはずで、あと、上位ビットと下位ビットとの間での情報のやりとりとして、シフト演算(左シフト)があれば、すべての演算が行える。加えて、条件分岐できれば、CPUとしての体裁が整うはずである。
この、必要最小限の機能を持ったCPUを如何にシンプルな構造で構築するかというのを、この1-2週間考えていた。
ここのところ、PICやLPCなどの組込みマイコンと、MZ-80Kの話題ばかり続いたが、このブログは本来、副題にもあるとおり「IC・トランジスタで出来たコンピューターを設計・製作する」ためのもので、久々にその初心の話。
NANDの組み合わせだけですべての論理演算が可能であるのはよく知られていることであり、初期のコンピューターの中には、このロジックで作成されていたものもあったらしい。
ということは、CPUで使える演算子としてNANDだけを用意しておけば良いはずで、あと、上位ビットと下位ビットとの間での情報のやりとりとして、シフト演算(左シフト)があれば、すべての演算が行える。加えて、条件分岐できれば、CPUとしての体裁が整うはずである。
この、必要最小限の機能を持ったCPUを如何にシンプルな構造で構築するかというのを、この1-2週間考えていた。
