SSブログ

HD63701でTiny BASIC [6801]

かなり間が空いてしまったが引き続きHD6301関係で、これまたTiny BASIC。
製作したボードはHD6301の動作モードを変更できるようにしているので、外部ROMレスでの動作を試みる。
MC6801系の内部ROMサイズは4Kバイトなので、4Kのサイズに電大版Tiny BASICとモニタを詰め込むことにするが、電大版Tiny BASICは2Kを少しオーバー。使用しているモニタLILBUGは元々は2K内に収まっているようであるが、シリアル入出力に割込を使用したり、タイマやポート等のちょっとしたルーチンを入れたので2Kを超えてしまっている。
そこでモニタの一部機能を削除することにした。
多くの人がMC6801系を使った自分システムにLILBUGを流用しているようだが、決してMC6801系の汎用モニタというわけではなく、モトローラの評価ボード(?)のモニタであるのでそのハード依存部分が多々ある。

(1)トレースはPTM(MC6840)を使用したもので使えないので、トレースコマンドを削除。
(2)NMIもトレースで使用しており、自作ボードはNMIを使用していないので削除。
(3)その他、使用しないであろうコマンド(VERIFY等)を削除。
(4)基本ルーチンは、AccBにファンクション番号をセットするシステムコール形式になっており、当時の小規模な8bitマイコンシステムにしてはしっかりしたつくりになっているが、システムコールの数も少ないし、テレタイプ前提の紙テープパンチャー/リーダ関係を削ると、実質シリアルin/outしか残らないので削除し、単なるサブルーチンコールに変更。
(5)その他、今まで変更してきた箇所は変更したまま使用。

(5-1)改行コードはLF。これはモニタ側も。
(5-2)TinyBASICの演算処理等、可能な限りDレジスタを使用した16bit演算処理に変更。
(5-3)テレタイプライタ前提の制御処理は削除。

以上3つの変更処理は今までで変更済み。

以上色々削った結果、TinyBASICとあわせてぴったりと4Kに収まった。
今回使用するCPUは次の2つ。

hd68p01_hd63701.jpg

HD68P01V07とHD63701V0C。
窓付のHD63701は珍しいかな?なぜかそれなりの数量を所有しているが。

まずはHD68P01V07。
32KbitROM、2732にソフトを焼いてHD68P01の上にセット。
ボードはモード6となるようにジャンパセット。

syc-6801-hd68p01v_1.jpg

何の問題なく起動しTinyBASICも動作。
次にHD63701。
今、これを焼けるROMライタはないと思われるのでアダプタ基板を製作。
ユニバール基板に手配線でと考えたが、今この程度の手配戦もおっくうになってきてしまっているので結局基板を起こした。

hd63701_writer_adpter.jpg

写真左側が生基板で、右が28pin側に連結ソケット、40pin側にZIFソケットをハンダ付けした完成形。
HD63701は内蔵ROMサイズは4Kバイトだが、27256タイプのROMとして認識されるのでROMライタには27256、あるいは27C256として設定。
使用しているアセンブラはモトローラSレコードしかはかないのでバイナリ変換し、ROMライタにはファイルスタートアドレスを$F000~として読み込ませる。

hd63701_writer_adpter_2.jpg

写真のようにROMライタにセットし書き込ませ、ソフトを書き込んだHD63701をHD68P01に変わってセット。
これも無事動作成功。

syc-6801-hd63701v_1.jpg

入出力関係を削りすぎたせいか、モニタの一部動作がおかしいのはご愛敬(笑)





nice!(0)  コメント(5) 
共通テーマ:趣味・カルチャー

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。