モトローラ6800CPUボード(SBC6800)で電大版TinyBASICを動かす (8) EEPROMにまとめ焼きとSTARTREKゲーム

電大版TinyBASICがソースからビルドできるようになったので、EEPROMへ焼いてスイッチONでMIKBUGやBASICが動くようにしたいと思います。

EEPROM書き込み用オブジェクトデータの準備

古風平凡さんのページの手順に従ってオブジェクトデータを準備したいと思います。

MIKBUGのソースをアセンブリ

  • データパックに入っているMIKBUGのアセンブラソース(MIKBUG.ASM)をアセンブリします。
  • 古風平凡さんのページのプチ拡張部分はBASIC起動コマンド追加だけでも行っておくと便利だと思います。
  • 前回書いたとおりクロスアセンブラASを使用する場合はコメントや文字定数などの修正が必要です。(けっこうメンドイ)

VTL(SA版)のソースをアセンブリ

  • データパックに入っているMIKBUGのアセンブラソース(MIKBUG.ASM)をアセンブリします。
  • 古風平凡さんのページで紹介されている開始番地 ORG疑似命令をいじったりする部分を修正します。
  • クロスアセンブラAS用にコメントや文字定数などの修正も実施。(こっちのほうが修正量多いかも…)

電大版TinyBASICソースをアセンブリ

  • 前回RAMロード版でテストした電大版TibyBASICですが、古風平凡さんのページの手順通り ORG疑似命令を変更して $E200 からから書き込むことにします。
  • RAM版のアセンブリのときに、RAMフリーエリアのスタートアドレスを変更していなかったので、$0100へ変更します。これでフリーエリアが広がるはず。

インテルHEX形式へ変換と1ファイルへ合体

これらのアセンブリでできた オブジェクト(xxx.p)をp2hexコマンドで今度はインテルHEX形式へと変換します。後段で ROMライタ(TL866CS)を使った書き込みを実施しますが、その際にインテルHEX形式である必要がありますので…

コマンド書式は以下になります。

$ p2hex -r \$-\$ -F Intel XXXX.p

3つのインテルHEXファイルができたら、1つのテキストファイルへテキストエディタなどで合体します。
注意点としては合体する各ファイルの最終行にEOF行(:00000001FF)ががありますので、上2ファイルは取り除く必要があります。(取り除かないと途中で書き込みが終わっちゃいます)

【参考】
インテルHEXフォーマット

EEPROM書き込み用機器の準備

書き込み用のインテルHEXファイルができたら、EEPROMへの書き込みを実施します。

ROMライタ TL866CSと書き込みソフト

今回わたしはAmazonで4500円ぐらいで購入したUSB接続の中華ROMライタ(TL866CS)を使用しました。
この値段であればROMライタを自作しても同じくらいかそれ以上の部品代がかかりそうなので、素直に購入しました。

残念なことにEPROM書き込みソフトはWindowsのみ対応です。
EPROM書き込み用のソフトは、年賀状ソフトの稼働のためだけにMac上のVirtualBOXにWindows2000を導入していましたので そちらで稼働させました。ただ、これまた残念ですが配布されている自己解凍exeファイルはWinXP以上でしか動かないため別のXPの環境で解凍したファイルをVirtualBOXのWindows2000環境へ持ち込みました。(手順が回りくどい….w)

書き込み用EEPROMを買ってくる

スイッチサイエンスで販売されているMIKBUG/VTLの書き込み済みEPROMは、消去する際に紫外線ランプが必要なタイプです。
紫外線ランプを持っていない私としてはEEPROM(フラッシュ?)の方が楽ちんです。

オレンジピコ(CAT28C256やATC28C256)、若松通商(HN58C256P)でEEPROMの256kタイプが数百円で手にはいります。

参考URL → オレンジピコ AT28C256

EEPROM書き込みの際の注意点と手順

技術資料に書き込み方の注意があるとおり、ROM容量によって書き込む際のアドレス指定をする必要があります。
256kだと全体容量としては32kBですが実際は上位8kBだけ使うかたちとなります。(ちょっともったいない?)

中華ROMライタ(TL866CS)の設定は以下のところに注意です。

  • “Selected IC”
    • CAT28C256やATC28C256はサポートチップなので、”Selected IC”メニューから選択しておきます
    • HN58C256Pはメニューにありませんが “Selected IC”メニューで uPD28C256 を指定すると問題なく焼けました
  • 「P」ボタンで焼き込みの際…
    • 今回は256kタイプのEEPROMを使ったので、機械語ファイルを$8000を$0000に指定して書き込みました。
    • 書き込んだ結果確認としては、ツールの16進ダンプ表示の $6000あたりからから、インテルHEXデータ(MIKBUG+電大版BASIC+VTL)と同じものが現れるはず。

EEPROMの差し替え、スイッチON!

EEPROMが焼けたら、もともとのMIKBUGのみのEPROMと差し替えてスイッチONです!
MIKBUGの入力促進プロンプト “*” が出ればひとまずOK。つづいてBコマンドで電大版TinyBASICを起動してみます。

PRINT$ コマンドでフリーエリアを確認すると7kBぐらいに広がってるはず!!

ブルーバックスのSTARTTREKゲーム

この環境であれば、ブルーバックスに電大版TinyBASICと一緒に掲載されている “STARTREKゲーム” が動くはず….ということで、ぽちぽちと入力をしてみました。

母艦のMacのテキストエディタで入力してみましたが、転送する際に単純にシリアル端末へコピー&ペーストするとBASICの取り込みが遅くて取りこぼします。ここは残念ですがWindowsのTeraTERMなどで1行ごとにWAITを入れてあげる必要があります。

詳しくは古風平凡さんのページに出ています。

まだ入力間違いが取り切れていませんが、私の環境で電大版TinyBASICのSTARTREKゲームが動き出しました。

これで、モトローラ6800CPUのマイコンを作るという夢につづいて、高校時代からの夢〜自作パソコンでSTARTTREKゲームをやる〜 が叶いました!! うれしい!!

コメント