EtchedPixels/EmulatorKit でMIKBUGを動かしてみた(3)
引き続き rcbus-6800+MIKBUGでプログラムを動かしてみる。
モトローラ6800CPUボード(SBC6800)で電大版TinyBASICを動かす (6) テストプログラム動作確認と電大版TinyBASIC | KUNINET BLOG を参考にしています。
Altair 680b BASIC
Download ページ (Old MC6800) のデータパック(sbc6800_
datapack.zip)にある、Altair BASICを試してみます。
zipを展開して、sbc6800_datapack/MA680BAS.s を使います。こちらはSBC6800向けにパッチが当たっているのですが、ACIAのアドレスが違うのでパッチを書き直しました。
- Haserin Kobo(パッチの解説)
以下、rcbus-6800用に書き直したパッチ。
S1131F80F6FEA057398DF924FCF6FEA1398DF157E0 S10B1F9024FB847FB7FEA13994 S106041FBD1F8575 S1060618BD1F807F S10608ADBD1F8DDB
書き直したMA6808BAS.s をコピペしてrcbus-6800に読み込ませます。Sレコード以外の部分は削る必要があります。
0番地から開始できるようになっているので、M コマンド抜きで G で実行できます。
最初にメモリサイズを聞かれるので、16384と答えておきます(もっと大きくても良いはず)。
rcbus-6800 -r mikbug.b *L S9051F48000093DBB7FEA13994F6FEA1398DF157E0 *G MEMORY SIZE? 16384 TERMINAL WIDTH? 80 WANT SIN-COS-TAN-ATN? Y 9946 BYTES FREE MITS ALTAIR 680 BASIC VERSION 1.1 REV 3.2 COPYRIGHT 1976 BY MITS INC. OK 10 for 10 FOR I=1 TO 10 20 PRINT I 30 NEXT I 40 END RUN 1 2 3 4 5 6 7 8 9 10 OK
BASICプログラムをコピペすると、文字落ちしてしまいます。ACIAをポーリングで読んでいるのが まずそうです。
割り込み駆動にすれば良さそうなものですが、Old-Ordinaryさんの記事フローコントロール (Old MC6800) によると、BASIC内部でSPレジスタをスタック以外の用途で使っているとのこと。
そういえばGAME68や電大Tiny BASICでもLDSをバンバン使っていたもんなー。BASIC MASTERに移植するために割り込み禁止をあちこちに追加した記憶がある。
昔の6800用ソフトは、レジスタ不足を補うため(と、省メモリのため)にSPを使いまくっていたので、仕方ないではありますが。ERIS68の移植版はどうなっているんだろ?
リンク
- 古い MC6800 マイコン(Old MC6800)
- MITS ALTAIR 680 BASIC – XENESIS
- MC6800 ACIA Flow Control(/RTS) (Old MC6800)
- NMIでのタイマー割込みによる計時機能 – XENESIS
続く





ディスカッション
コメント一覧
まだ、コメントがありません