2024-02-10 17:51 — asano
カテゴリー:
今回は予告通り、SC61860の公式ドキュメントを教えていただいてちょっと修正した件を書きたいと思います。
その1のコメントとしてenakaさんより教えていただいたSC61860のドキュメント、正確にはPC-1350の機械語のドキュメントですが、CPU SC61860の記述がメインになっています。PC-1350も持っているので残りも興味深いのですが、今はあくまでもCPUのマニュアルとして読むことにします。
そもそもこのSC61860というCPU、当初は仕様は非公開だったはずです。PC-1250の時代だと思いますが実機の動作から解析された方がいて、わかってしまったのならということで後から情報が出てきたという経緯だったとどこかで読んだような。今回参考にしている『ポケコン・マシン語ブック』の前の『ポケコン・マシン語入門』だった気がするのですが、残念ながらこの本が行方不明でして確認できていません。今度永田町に読みに行こうかな。
ということで『ポケコン・マシン語ブック』とシャープの資料を比較してみたところ、ちょっとした相違点はあるものの大きな違いはありませんでした。
見つけた1点目は16進の表記法について、インテル流の8000H(一部BASICに関連したところでは&8000)表記が使われています。これはCPUの資料であってアセンブラのマニュアルではないのでアセンブリソースにどう書くべきかを規定するわけではないのですが気になる点です。まぁASはRELAXED ON
などとすればどの表記も使えるので特に困ることは無いでしょう。
2点目は『ポケコン・マシン語ブック』では未定義命令扱いだった$7A, $69にCASE1
, CASE2
とニーモニックが割り当てられていたことです。
ちなみにこれやたら複雑な命令でして...... 以下のように使用します。
3/ 0 : 7A CASE1
4/ 1 : 03 FCB 3
5/ 2 : 00 10 FDB LABELR
6/ 4 : 69 CASE2
7/ 5 : 41 FCB 'A'
8/ 6 : 00 10 FDB LABEL1
9/ 8 : 46 FCB 'F'
10/ 9 : 00 11 FDB LABEL2
11/ B : 58 FCB 'X'
12/ C : 00 12 FDB LABEL3
13/ E : 00 13 FDB LABELD
Aレジスタが'A'だったらLABEL1、’F'だったらLABEL2、’X'だったらLABEL3、それ以外だったらLABELDをCALLしてLABELRに戻ってくるというもの。ここでは飛び先を3つ(デフォルト含め4つ)としましたが、増やすことも勿論できます。上限は書かれていませんがいくつだろう?
3点目も同様に未定義命令扱いだった$4F, $6FにCUP
, CDN
とニーモニックが割り当てられたことです。
これらはXinピンの”L"または”H"の期間を測るもので、カセットインターフェイスからの復調用です。以前書いたソフトウェアUARTでは1ビット単位の処理でしたが、FSKの復調も必要なのでボーレートが低いとはいえ時間的に大変です。このCPUもお世辞にも速いとは言えないのでこのような命令が必要なのでしょう。
これら新たに分かったニーモニックを追加しました。
テストデータについても書くつもりでしたが思ったより長くなってしまったのでそれはまた次回ということで。
コメント
独自解析
工学社には伝手があったんでしょうね。I/Oに独自解析と評してMZ80KやPC-8001の全回路図が載っていたりしましたから。
何か聞かれたら「向河原駅のごみ箱で拾った」と答えて、みたいなやり取りがあったんだろうか。元ネタの駅が思い出せない。
Re: 独自解析
数は少なかったですがアスキーもですね。PC-8001の回路図を最初に見たのはアスキーでしたし、ロードテストも実際にバラしたもの以外に生基板や新品パーツ並べたのもあった記憶が......
MZ-80やPC-8001の時代は汎用パーツだったから本当に独自解析もできたかもですが、後のカスタムIC満載になっても信号名がしっかり入っていて何らかの情報提供受けてるよなぁと思っていました。
コメントを追加