CASduinoを試してみました
Arduinoでカセットテープ ドライブをエミュレートする、CASduinoとういのを見つけ、
面白そうなので、試してみました。
昔(30年前)の8ビットパソコンのプログラム保存方法といえば、
カセットテープが標準的な方法でした。「ピー、ガー・ガ―」と音で記録保存します。
CASduinoは、「ピー、ガー・ガ―」音を生成してMSXにプログラムとしてロードさせるものです。
参考にしたサイト
・MSX – Arduino as Tape Drive (CASDuino)
https://modelrail.otenko.com/arduino/msx-arduino-as-tape-drive-casduino
動作の様子
カセットテープをプログラム保存メディアとして使ったことが無い世代の方には
意味不明な動画かもしれません。
MSXは、ヤフオクで1,000円で落札したSANYO MPC-2 WAVY2 を利用しました。
上の動画では、
ブラウザ上で動くMSXエミュレータWMSX(https://webmsx.org)で作成した
カセットテープイメージ形式(CAS形式)のプログラムを実機のMSXに読み込ませています。
CAS形式のファイル(拡張子.CAS)は、カセットテープの音声データを、
バイナリーデータ化したのもで、MSXの世界では標準的に使われているようです。
そのファイルの作成にあたり、MSXエミュレータWMSX を利用しました。
1行プログラム("hello,world"を表示)を、
CSAVEコマンドでカセットテープ(当然エミュレータ)に保存します。
エミュレータのメニューでブランクのテープの作成し、CSAVEコマンドで
保存したプログラムを更にCAS形式のファイルとしてSDカードに保存します。
ここでは、"hello.cas"という名前で保存しました。
このファイルをCASDuinoで実機のMSXに読み込ませることが出来ます。
CASDuinoの製作について
CASDuinoの実装は、手持ちのSDカードロガーシールドをベースとして、
先日購入したキャラクタ液晶をI2Cで接続しています。
CASDuinoの最新版V1.1.7のソースを見ると、
表示デバイスはOLED(SSD1306)ディスプレイ、 P8544モノクログラフィックディスプレイにも
対応しているようです。
データ通信速度は、最大速度で 3675ボーレートまで対応しているようです。
MSXの仕様では1200、2400ボーレートが利用出来るのですが、MSXのBIOSレベルでは
3600ボーレートにも対応しているようです。
更にちょことだけ、オーバースペックの3675ボーレートも機種によっては利用出来るようです。
とりあえず、3600ボーレートで利用しました。
ボーレートの設定は、内部EEPROMに保存することが出来ます。
以降の利用では、再設定不要です。
データ出力(音声)は、矩形波を生成して出力してます。
圧電スピーカーを付けるとモニター出来ます。
ピンからの出力だけではレベル不足になるようで、参考にしたサイトでは
アンプモジュールを利用して増幅しています。
私も同じものを利用しましたが、オペアンプやトランジスタを使った増幅でも
行けると思います。
比較的実装は楽でしたが、MSXに接続するための8ピンDINコネクタが類の入手が
意外と困難でした。
結局、Aliexpressにてパーツを見つけました。
DIN 8ピンオス - オス ケーブルを自作しました。
最後に
さてこの、CASduino、残念ながらデータのセーブに対応していません。
データのロード専用となります。
用途としては、ゲームローダ専用機のようです。
インターネット上に公開されているCAS形式のゲームイメージをSDカードにいれて
ロード出来ます。
MSXでプログラムをロードする手段としては、安価でお手軽な手段なのは確かです。
ただし、3600ボーレートとだと、
450バイト/秒なので32Kバイトのゲームをロードするのに73秒、
ヘッダー部やらいろいろと入れると2分はかかると思います。
プログラムの保存も含め、何にか別の手段を模索中です。
追記
実験的に実装したCASduino、このままでは使いにくいので、
ユニバーサル基板に実装し直しました。
裏側にArduino Pro miniを使っています。
ディスプレイはOLEDに変更しました。
裏には、同じ基板をかぶせて保護するようにしています。
3.3V電源のみ対応の小型のマイクロSDカードスロットを使いたいため、
5V 16MHz版 Arduino pro miniを3.3Vで動かしています。
マイクロUSBコネクタから5Vを三端子レギュレータで3.3Vに落として
全体の電源として利用しています。
とりあえず、いい感じに利用出来るようになりました。
ちょっとしたプログラムの持ち運びに利用出来るでしょう。
« Aliexpressの安価なキャラクタ液晶モジュールの動作確認 | トップページ | MP3プレーヤーでMSXにプログラムをロードさせる »
「arduino」カテゴリの記事
- Arduino UNO R4 WiFiに関するメモ(2024.03.21)
- Arduino用 美咲フォントライブラリを更新しました(2024.03.21)
- Arduino用ライブラリの自作用のメモ(2024.03.18)
- 豊四季Tiny Basic for micro:bit のマニュアルを更新しました(2020.11.21)
- 豊四季タイニーBASIC for Arduino 機能拡張版 V0.08の更新(2020.07.27)
「MSX・レトロPC」カテゴリの記事
- キーボードの黄ばみ落とし(2021.01.28)
- MSX関連の書籍を収集中!(2020.06.17)
- 東芝 MSX PASOPIA IQ(HX-10D)を入手しました(2019.09.18)
- SCART・HDMIコンバータを追加購入しました(2019.07.29)
コメント
« Aliexpressの安価なキャラクタ液晶モジュールの動作確認 | トップページ | MP3プレーヤーでMSXにプログラムをロードさせる »
たま吉さん、こんにちは。無事にCASduino動作したのですね。
ますますMSXが欲しくなってしまいました。
そういえばMSXにはデータレコーダのコントロール端子がありましたね。すっかり忘れていました。
ベーマガ復刊号ももちろん買いましたよ。
ちょうど日経のネット記事で、データレコーダからPCM録音にデータをバックアップする記事がありました。
https://nkbp.jp/2TfFED5
PCMではOKでしたが、MP3ではだめだったそうです。
私も実機が手に入ればMDレコーダーで試してみます。
投稿: Mori99 | 2018年12月28日 (金) 11時30分
Mori99さん、こんにちは
日経の記事、タイムリーな記事です。教えて頂いてありがとうございます。
次の挑戦として、MP3形式で再生録音できる安価なボード($4.75)と、MP3レコーダーを試す予定です。
MP3がダメか、調べてみます。
投稿: たま吉さん(管理者) | 2018年12月28日 (金) 12時27分
是非お願いします。楽しみにしています。
私はもう少し部屋を片付けないと実機を置く場所がないです。
買うとしたら、売ってしまって後悔しているMSX2+だと思いますが、こちらはフロッピー付きですね。
投稿: Mori99 | 2018年12月28日 (金) 18時21分