EtchedPixels/EmulatorKit でMIKBUGを動かしてみた(3)

BASICMASTER

引き続き 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のアドレスが違うのでパッチを書き直しました。

以下、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の移植版はどうなっているんだろ?


リンク

続く

BASICMASTER

Posted by ず@沖縄