フォト
2024年9月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
無料ブログはココログ

« Aliexpressの安価なキャラクタ液晶モジュールの動作確認 | トップページ | MP3プレーヤーでMSXにプログラムをロードさせる »

2018年12月25日 (火)

CASduinoを試してみました

Arduinoカセットテープ ドライブをエミュレートする、CASduinoとういのを見つけ、
面白そうなので、試してみました。

昔(30年前)の8ビットパソコンのプログラム保存方法といえば、
カセットテープが標準的な方法でした。「ピー、ガー・ガ―」と音で記録保存します。
CASduinoは、「ピー、ガー・ガ―」音を生成してMSXにプログラムとしてロードさせるものです。

01

参考にしたサイト
・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 を利用しました。

04

1行プログラム("hello,world"を表示)を、
CSAVEコマンドでカセットテープ(当然エミュレータ)に保存します。

05

エミュレータのメニューでブランクのテープの作成し、CSAVEコマンドで
保存したプログラムを更にCAS形式のファイルとしてSDカードに保存します。
ここでは、"hello.cas"という名前で保存しました。

このファイルをCASDuinoで実機のMSXに読み込ませることが出来ます。


CASDuinoの製作について

CASDuinoの実装は、手持ちのSDカードロガーシールドをベースとして、
先日購入したキャラクタ液晶をI2Cで接続しています。

CASDuinoの最新版V1.1.7のソースを見ると、
表示デバイスはOLED(SSD1306)ディスプレイ、 P8544モノクログラフィックディスプレイにも
対応しているようです。

データ通信速度は、最大速度で 3675ボーレートまで対応しているようです。
MSXの仕様では1200、2400ボーレートが利用出来るのですが、MSXBIOSレベルでは
3600ボーレートにも対応しているようです。
更にちょことだけ、オーバースペックの3675ボーレートも機種によっては利用出来るようです。

04_2

とりあえず、3600ボーレートで利用しました。
ボーレートの設定は、内部EEPROMに保存することが出来ます。
以降の利用では、再設定不要です。

データ出力(音声)は、矩形波を生成して出力してます。
圧電スピーカーを付けるとモニター出来ます。

ピンからの出力だけではレベル不足になるようで、参考にしたサイトでは
アンプモジュールを利用して増幅しています。
私も同じものを利用しましたが、オペアンプやトランジスタを使った増幅でも
行けると思います。

03

比較的実装は楽でしたが、MSXに接続するための8ピンDINコネクタが類の入手が
意外と困難でした。

結局、Aliexpressにてパーツを見つけました。

07

06_2

DIN 8ピンオス - オス ケーブルを自作しました。


最後に

さてこの、CASduino、残念ながらデータのセーブに対応していません。
データのロード専用となります。

用途としては、ゲームローダ専用機のようです。
インターネット上に公開されているCAS形式のゲームイメージをSDカードにいれて
ロード出来ます。
MSXでプログラムをロードする手段としては、安価でお手軽な手段なのは確かです。

ただし、3600ボーレートとだと、
450バイト/秒なので32Kバイトのゲームをロードするのに73秒、
ヘッダー部やらいろいろと入れると2分はかかると思います。

プログラムの保存も含め、何にか別の手段を模索中です。

追記

実験的に実装したCASduino、このままでは使いにくいので、
ユニバーサル基板に実装し直しました。

Dscn9222

裏側にArduino Pro miniを使っています。
ディスプレイはOLEDに変更しました。
裏には、同じ基板をかぶせて保護するようにしています。

Dscn9212

3.3V電源のみ対応の小型のマイクロSDカードスロットを使いたいため、
5V 16MHz版 Arduino pro miniを3.3Vで動かしています。

マイクロUSBコネクタから5Vを三端子レギュレータで3.3Vに落として
全体の電源として利用しています。

Dscn9226

とりあえず、いい感じに利用出来るようになりました。

Dscn9221

ちょっとしたプログラムの持ち運びに利用出来るでしょう。

« Aliexpressの安価なキャラクタ液晶モジュールの動作確認 | トップページ | MP3プレーヤーでMSXにプログラムをロードさせる »

arduino」カテゴリの記事

MSX・レトロPC」カテゴリの記事

コメント

たま吉さん、こんにちは。無事にCASduino動作したのですね。
ますますMSXが欲しくなってしまいました。
そういえばMSXにはデータレコーダのコントロール端子がありましたね。すっかり忘れていました。
ベーマガ復刊号ももちろん買いましたよ。
ちょうど日経のネット記事で、データレコーダからPCM録音にデータをバックアップする記事がありました。
https://nkbp.jp/2TfFED5
PCMではOKでしたが、MP3ではだめだったそうです。
私も実機が手に入ればMDレコーダーで試してみます。

Mori99さん、こんにちは

日経の記事、タイムリーな記事です。教えて頂いてありがとうございます。
次の挑戦として、MP3形式で再生録音できる安価なボード($4.75)と、MP3レコーダーを試す予定です。
MP3がダメか、調べてみます。


是非お願いします。楽しみにしています。
私はもう少し部屋を片付けないと実機を置く場所がないです。
買うとしたら、売ってしまって後悔しているMSX2+だと思いますが、こちらはフロッピー付きですね。

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: CASduinoを試してみました:

« Aliexpressの安価なキャラクタ液晶モジュールの動作確認 | トップページ | MP3プレーヤーでMSXにプログラムをロードさせる »