概要
8052AH-BASICをエミュレートします。
8051/8052モジュールの動作確認用に作成したものです。
準備
MicroControllers and Electronicsからbase52all.zipをダウンロード・解凍し、”BASIC-52.BIN”ファイルをbiosディレクトリへコピーします。
実行方法
端末に、Tera Termを使用しますので、Tera Term v4.74以降(名前付きパイプ対応)をインストールする必要があります。
vdmgrを使用する場合
- vdmgrを起動。
- Tera Termを起動し、メニューから、「ファイル」‐「新しい接続」を選択し、「TCP/IP」を選択。
- ホストへ、”\\.\pipe\vdmgr”と入力し、「OK」ボタンを押下。
- vdmgrをリセット後、Tera Term上でスペースキーを押下(うまくいかない時は、リセット後にスペースキーを押しっぱなし)。
- Tera Term 上に、起動メッセージが表示されたなら、正常起動。
vdmgrdebugを使用する場合
vdmgrdebugを起動。
Tera Termを起動し、メニューから、「ファイル」‐「新しい接続」を選択し、「TCP/IP」を選択。
ホストへ、”\\.\pipe\vdmgrdebug”と入力し、「OK」ボタンを押下。
vdmgrdebugを実行後、Tera Term上でスペースキーを押下。
Tera Term 上に、起動メッセージが表示されたなら、正常起動。
起動メッセージ
*MCS-51(tm) BASIC V1.1*
READY
>
エミュレート状況
機能 | 状況 |
8052 | △※1 |
EEPROM | ×※2 |
PWM・ブザー | ○ |
※1 | 8052モジュールの制限を受けます。 |
※2 | 8052モジュールの制限により、EEPROMへの書き込み動作を行えません。
現在はROMにしてあります。 |
2021/07/31
以前から、"PRINT 0.3-0.9"などの計算ができていなかったようですが、MCS-51モジュールのDA命令を修正したことにより、正常に計算できるようになりました。
また、PWM命令によるブザーが動作しなくなっていたのを修正しました。
ついでに、RAMを4KBから64KBへ変更しました。
補足
- 8051/8052モジュールの動作確認用として作成したもので、実際のハードウェア構成とは異なります
(すみません、実機を触ったことがないため、詳細を知りません)。
- EEPROMの書き込みには対応していません。
EEPROMに関係するPROG命令などを実行すると固まります(RD,WRピンが変化しないため)。
- MCS BASIC-52は1行入力すると解析に時間がかかるのため、Tera Term のファイルの送信でファイルを送信すると失敗します。
basic_52.zipファイル内のマクロファイル(basic_52.ttl)を使用すれば、ファイルを送信できます。
(少し長めのコードだと取りこぼしが発生していたため、1バイト送信後の待ち時間を250msから350msへ変更しました)
-
時間の掛かる処理を行う時は、vdmgrのメニューから、「オプション」‐「同期」のチェックを外すことで待ち時間が無くなり、動作が速くなります。
参考資料
今回作成するにあたり、下記サイトを参考に作成しました。
大変貴重な情報を公開していただき有難うございます。