ソフトウェア
5.25インチ版 SIP
前に3.5インチ版を見つけましたが、5.25インチ版も発見です。
紙製のケースに入っていました。「Flexible disk」というのがいいですね。
EPSONのディスクというとソフトウェア・インストレーション・プログラム(SIP)くらいしか心当たりはありません。
ケースを開けて取り出してみると案の定SIPでした。
5.25インチ2HDフォーマット、バージョンは2.18でしたので以前取り上げたものより新しいものです。
ASに新CPU対応を(その4)
モニタも動いてこれまでに実装済みのMN1610命令に問題無いことがわかり、時間にも余裕が出てきたので、残りのMN1613拡張命令も一気に実装してしまいました。
MN1613で追加された命令にはパースの面倒なアドレッシングなどは無く、命令の数が多いだけの単純作業に近かったですね。
一段落したので現時点のファイル(asl-patch-20191120.tar_.gz)を添付しておきます。
ビルド方法
MN1613ボード(モニタ移植編)
前回は簡単なテストプログラムを動かしましたが、その後アセンブラもある程度動作するようになったのでいつものUniversal Monitorを移植することにします。
しばらくボードを動かしていなかったので念のためにもう一度小さなプログラムを試してみましたが、何故か動作が変というかいきなり暴走している感じです。
原因はいくつか考えられます。
- ボードかCPUが壊れてしまった
- (リセット動作には不明な点が多いので)以前動いたのは偶然だった
- アセンブラが誤ったコードを吐いている
ハンドアセンブルと比較したり、以前と同じコードを試したりで3.で無いことはすぐに判明しました。
ASに新CPU対応を(その3)
あれから作者の方と連絡とって質問したり、ID番号もらったり...
軽い気持ちで始めたのですが、ここまできたら本家への追加を目指そうかな。
code***.cを参考に推測・試行錯誤した結果です。全体を理解して書いているわけではないので、間違っていたり作者の意図しない使い方をしたりしているかもしれません。ご了承ください。
前回厄介と書いたメモリに関係する L, ST, B, BAL, IMS, DMS の各命令も使えるようになりました。これらをデコードする DecodeAdr は長いのでゼロページ間接インデックス(MN1610で一番複雑)を例にみてみます。
ASに新CPU対応を(その2)
昨日に引き続きASのMN1610対応についてです。
code***.cを参考に推測・試行錯誤した結果です。全体を理解して書いているわけではないので、間違っていたり作者の意図しない使い方をしたりしているかもしれません。ご了承ください。
前回の SwitchTo_MN1610() の最後で呼び出していた InitFields() です。
ASに新CPU対応を(その1)
EMILY Board +8 (ソフトウェア編)
前回、EMILY Boardの16ビットバス化のハードウェアに書きました。今回はソフトウェアについてです。
4k×8bitのメモリ空間2つがターゲットCPUにどう見えるかはCPUボードのハードウェアによって決まります。
それではEMILY Boardのコンソールから各種コマンドでアクセスする場合にはどう見えるのが良いのでしょうか?
ターゲットからの見え方に合わせないと不便ですが、あまり自由度を高くすると設定が難しくなります。とりあえず必要最小限ということで以下のモードを用意しました。
SC/MPボード(ソフトウェア編)
SC/MPボードへのモニタの移植が一段落つきました。新しいプロセッサへの移植は毎回似たような流れで行なっていますので、その流れを書いてみたいと思います。
- いつもループ確認の後はいきなりモニタを書き始めているのですが、今回のSC/MPはサブルーチンコールなど基本的な命令が不足しているので使いそうなマクロをまず用意しました。
- なるべく似たプロセッサ(今回はMC6800, 6502)を参考にしながら先頭から実装していきます。最初の目標はオープニングメッセージの表示で、いわゆる"Hello, world!"に相当します。
- サブルーチン類は必要になったものから実装していきます。ラベルや配置順は可能な限り共通にして、他プロセッサ向けとの対応が取りやすいようにします。
- メッセージが表示できるようになったら次は行入力ルーチンです。
SC/MP使いの憂鬱
SC/MPボードにUniversal Monitorの移植を始めたのですが、前にも書いたように癖が強くて大変です。
そこで移植をしていて「げっ」と思ったことを書いてみたいと思います。