PC-8001(実機)へSDカード (3) SRAMボードとSD-DOS

PC-8001

前回、PC-8001にMicroSDカードが装備できたので、次はちくらっぺさん作のSD-DOSを動かしてみたいと思います。SD-DOSはFAT16でフォーマットされたMicroSDをPC-8001で使えるという画期的なDOSです。PC-8001の空きROMエリア(6000h〜)にSRAM領域がある前提で作られています。

SRAMボードの作成

まず作るのは、ちくらっぺさん設計ボード第2段 8kB SRAMボードです。ガーバーデータはGithubで公開してくださっています。

GitHub - chiqlappe/ram8k: PC-8001用 8KB拡張RAMボード
PC-8001用 8KB拡張RAMボード. Contribute to chiqlappe/ram8k development by creating an account on GitHub.

このボードもいつものJLCPCBで製造をお願いしました。

部品の注意点としては….

  • ボタン電池CR2032でバッテリーバックアップするためCMOSタイプのロジックIC(74HC04、HC20、HC32)が必要です。
  • SRAMは手持ちのHM6264の300mil(細型)28ピンタイプがピン互換だったのでそれを使用しました。(たしか若松通商通販で購入したと思います。)
  • 50ピンIDC(MIL)ボックスヘッダは共立エレショップでしたが、それ以外の部品は秋月電子で購入しました。
  • R9はLEDの電流制限抵抗なので、LEDにあわせて適切なものにしてください。
  • R1はSRAMのCS2をプルアップしてるので10kΩなど手持ちのものでもOKかも。
  • R2〜R5とD2(ツェナーダイオード)はVcc断検知回路なんで、近い値の部品が吉です。D2はちくらっぺさんの部品表にもリンクがある秋月電子の4.3vのでOKです。
  • D1はCR2032の逆流防止なので1N4148などのスイッチダイオードでよさげ。
株式会社若松通商 / http://wakamatsu.co.jp/biz/user_data/index.php
【共立エレショップ】eleshop.jp:電子部品,半導体,キットの通販
共立エレショップでは半導体、センサ、電子部品から電子工作キット、パソコン周辺機器に至るまで、エレクトロニクスに関する商品を幅広く提供しています。
秋月電子通商 トップページ
株式会社秋月電子通商(電子部品の通販、販売)のページです。

SRAMボードの動作テスト

SRAMボードを組み上げて、テスターでVccとGNDが短絡していないことを確認後、PC-8001の拡張バスに接続して、ICを挿す前にちゃんと5VがICソケットに来ていることを確認します。

各ICを装着して スライドスイッチをONにすると、PC-8001の拡張バス信号線 #ROMDS3がGNDに落ちてSRAMボードが有効になります。この状態で、PC-8001のモニターに入り、Sコマンドで6000hや7000hの空きROMエリアのアドレスのデータを変更して見て変更できればSRAM化成功です。あとはPC-8001の電源OFF/ONしてみて、変更したデータが残っていればバックアップ電源も動作してます。下の写真はボタン電池CR2032を入れる前ですが…

上の写真では、74HC20が手元になくて、74HC30を無理くり配線を変えて装着しています….あとでちゃんとしたICが届いたので差し替えました。

SD-DOSのロード

次にSRAM領域にSD-DOSをロードします。

GitHub - chiqlappe/SD-DOS: PC-8001用 SD-DOS(要 専用microSDドライブ)
PC-8001用 SD-DOS(要 専用microSDドライブ). Contribute to chiqlappe/SD-DOS development by creating an account on GitHub.

SD-DOSも上記のgithubで配布してくださってます。配布サイトにPC-8001のカセットI/F音声データが上がってますので、それをどうにか再生してPC-8001にロードします。私はMacに付属しているQuickTimePlayerを使用して再生しました。カセットテープに録音し直す必要はありません。(あたりまえか…)

PC-8001をリセットしてSD-DOSを起動

SD-DOSをSRAM領域(6000h〜)にロードしたら、本体背面のリセットスイッチを押してSD-DOSを起動します。

いつものN-BASICの起動メッセージの前に以下のようにSD-DOSのバージョン表示が出るはずです。拡張ROM領域に常駐していて、6000hから”AB”が書かれているのでSD-DOSが先に起動するのです。下の例はちょっと古めのSD-DOSを起動したところなので日付が古いですが…

SD-DOSの基本的な使い方

SD-DOSの使い方は、README.mdに詳しく書かれています。以下に基本的な流れを紹介します。

SDカードのマウントと日時セット

SD-DOSを使うには、まずF1に登録されている mount コマンドでSDカードをマウントします。
このときに、DATE$とTIME$を手動で設定できる行が表示されますので、日時を設定してください。PC-8001は電源ONやリセットのタイミングで内蔵の時計IC(RTC)が初期値にリセットされてしまうのです。SDへプログラムを保存するために必要なので正しい日時を設定しましょう。

….とはいえ、mountのたびに日付、時刻を設定するのもたいへんなので、ちくらっぺさんも実施していますが 時計IC(RTC)を外付けして自動設定できるようにした顛末も、そのうち別記事でまとめて見たいと思います。

ファイル一覧の表示/ディレクトリー移動

SDカードがmountできたら、F3にアサインされているfilesコマンドでSD上のファイル一覧を見ることができます。

ファイルのロード/セーブ

filesで出てきた一覧のファイル名の左側に具合良くスペースで空いた場所がありますので、loadコマンドでBASICやマシン語のプログラムをPC-8001へ読み込んだり、saveコマンドを使ってMicroSDへファイルを保存したりできます。拡張子は”.CMT”にするとPC-8001 miniや各種エミュレーターとの互換性がとれます。

CMT形式はPC-8001のカセットテープインターフェースに記録するフォーマットと同じフォーマットでファイル化したもののようです。詳しくは 「N80解體新書」のページにとても詳しく解説されています。ありがたや。

N80の部屋

BASICの場合はファイル名だけ save "xxx.CMT" みたいな感じ、マシン語の場合はファイル名と開始、終了アドレス save "xxx.CMT",&hDxxx,&hExxx みたいに入力します。詳しくはREADME.mdに詳しく出ています。

MacやPCでSDカードのファイルを扱う

いったんPC-8001の電源をOFFにして、MicroSDカードを抜いてMacやPCのカードリーダーにつないで見てみてください。FAT16フォーマットなので普通にファイル一覧が見えます。パソコンへコピーしてファイルのバックアップも取れますし、エミュレーターやPC-8001miniで動いたCMT形式ファイルをMicroSDへコピーすることもできます。

これで、わたしのPC-8001のも念願の補助記憶装置がつきました。セーブしたCMT形式はPC-8001 miniや各種エミュレーターでもサポートされているため、大変可搬性が良いものとなってます。
PC-8001初代がモダンなPCの仲間入りです!

コメント