8080のTinyBASICで遊ぶ その4 – 走らせる。

走らせる。当時はプログラムを実行することを「走らせる」と表現した。もちろんTinyBASICのユーザープログラムを実行するコマンドも「RUN(走れ)」だ。

※これまでのエントリ

1.8080 C-Sim本体、TinyBASIC入りファーム、ビルド済みWin32 Exe
https://mzex.wordpress.com/2018/05/26/12977/

3.サンプルコード
https://mzex.wordpress.com/2018/05/26/12986/

1のエントリからBase64デコード+unzipしてPATBSIM.EXE、PATBSIM.HEXを取り出したら実行する。

「PALO ALTO TINY BASIC V3.0/OK/>」 と出たら成功。

patbsim-1

PRINT 3+3*3 [Enter]

と入力すると、四則演算の結果として

12

が表示されればそこはもうハローTiny BASICワールド。

TinyBASIC本体には一切の拡張を行っていないしWindows GUI対応とか、64ビット対応なんて、なんてもってのほか。したがって文法、コマンドは完全にPALO ALTO TINY BASIC V3.0仕様。コマンド、ステートメント、変数名は大文字で。小文字はストリング(文字列リテラル)内のみで使用可能。バックスペースはカーソルが戻るだけでコンソールの文字は消えないが、内部のラインバッファは消去される。

Ctrl-Cでシミュレータのコンソールに切り替え、1:LoadResでコンソール読み込みのファイル名を指定 (prime.bas)、指定ファイルがキー入力として流し込まれる。(いわゆるLOADコマンドの代わり)

あとはRUN[Enter]するだけ。省略表記でR.でもよい。

patbsim-2

Ctrl-Cで出てくるメニューで終了を含む各種制御ができる。9:Shutdownで終了。

Tiny BASICのソースを用意すればスタートレックだって遊べる。STARTREK.BASの動作が若干バギーなのでコードは掲載しない。

patbsim-3.JPG

ちょっとだけ解説というか個人的感想。

Tiny BASICを動かしたければ、単純にWindowsで動くインタプリタを用意すればよいのだが、オリジナルのPALO ALTO TINY BASICのコードをできるだけいじらずに動かしたかったので8080シミュレータ(エミュレータ)を作り、その中でPALO ALTO TINY BASICのコードを動かすことにした。8080アセンブラで書かれたインタプリタをWin32なアセンブラやCに移植するよりは、単純な8080エミュレータを新規に組むほうが確実だろう。目的としてタイニーBASICを動かすこと以外は考えていないが、テストプログラムですべてのマシン語命令が動くことは確認しているのでファームとI/OポートやメモリマップドI/Oを追加すれば他の8080マシンのエミュレーションにも使えるとは思う。

今回作ったC-Simがエミュレータというのかシミュレータというのかは微妙で、クロックサイクルや割り込みタイミングの再現やらオペコードの分解解釈などを実装しているのでエミュレーションに近いと思う。再現しているのは8080CPU本体と64kBytesメモリのほかはIOポート3種類と簡易ICE機能のみ。本当はディスクIFとBIOSを実装してCP/M互換機にしたいが「今後の実装」ってことで放置。

自分が生まれる前の市販マイコン登場前夜に個人が作ってたマイコンってこんな雰囲気だったんだろうか。できればその時代の最先端に触れたかった。うらやましい。

8080のTinyBASICで遊ぶ その4 – 走らせる。」への1件のフィードバック

  1. ピンバック: 8080のTinyBASICで遊ぶ その1 – C-Sim本体 – の回想録

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中