You are here

SC61860 & SC62015 (その1)


カテゴリー:

先月、古い友人と食事をしたのですが、そこで話題になったものの一つにシャープのポケコンのCPUがあります。

PC-1261, PC-1350などに使われたSC61860と、PC-E500シリーズに使われたSC62015です。

その後、そういえばASは対応してたかな? と思って確認したところどちらも未対応でした。

するとまた対応作業してみたくなってしまい、資料を探し始めたのですが......

この辺りのアセンブラは最後に弄ってから既に30年以上経過しています。『I/O』『The BASIC』『ポケコンジャーナル』あたりに掲載されていたと思うのですが、目次の公開されていたI/Oはともかく他はどの号に掲載なのか探すのは結構大変です。

そんな中『ポケコン・マシン語ブック』がかろうじて出てきました。SC61860の命令表はこれに記載されていますが、PC-E500発売前のものなのでSC62015は当然載っていません。

ネットで探してもSC61860の資料はそこそこあるものの、SC62015については詳細な資料があまりありません。以前インストラクションマニュアルがあった形跡はあったのですが既にリンク切れ、Wayback Machineにもありませんでした。そんな中で一つ見つけたのが「ポケコンうらわざ大事典 特別版」、これもオリジナルは失われているようでWayback Machineを利用しました。ほかに見当たらないのでこれを参考にすることにしました。

まずは簡単なSC61860からです。

これ、オペランドが単純(アドレッシングモードやレジスタはニーモニックに含まれている)なので対応は容易です。

このアーキテクチャでちょっと面白いなと思うのは、相対分岐命令が先に進むものと戻るもので別になっていること。例えば無条件のものだと先に進むJRPと戻るJRMに分かれています。それぞれ8ビットなので分岐できる範囲が実質9ビット相当になります。今回分岐方向を示すP/Mを省略してJRとだけ書けば自動的に適切な方を選ぶ機能を入れてみました。

ポケコンのCPUということもあって(またユーザによって独自に解析されたという経緯もあって)標準的なアセンブラというものがありません。16進定数の表記法とか、メモリに定数を配置する疑似命令とか、どうしようかと思いましたが『ポケコン・マシン語ブック』にいくつか掲載されているリスティングがMC6800風なのでそれに合わせました。

現時点でのasl-1.42bld261に対するパッチ(と追加ファイル)を付けておきます。これには次回予定のSC62015対応も含まれています。

参考文献・関連図書: 
『ポケコン・マシン語ブック』工学社.

Comments

自分はポケコンはCASIO派でしたが、たしかCPUコアが同じ派生品が使われた電子手帳やザウルスを持っていました。
電子手帳やポケコンは、古くなるとタンタルコンデンサが短絡故障して、電源を入れてもすぐ落ちるようになる。
逆にパソコンは、古くなると電解コンデンサが絶縁故障して、容量抜け始めるとだんだん電源が入らなくなる。

ポケコンジャーナルでよく名前をお見かけした加古氏と水野氏のサイトに、ソース付きでアセンブラと逆アセンブラがいくつかありました。
ここで公開されている色々なソースが、そのまま通るニモニックがいいかもしれません。
http://www.kako.com/neta/1999-016/1999-016.html
http://www.kt.rim.or.jp/~tmizuno/pocket/library/sharp01.html
http://www.kt.rim.or.jp/~tmizuno/pocket/pj.html

シャープ派だったので現役時にも弄っていたのですが、さすがに忘却の彼方ですね。
まだ手元にいくつかありますが、幸か不幸か電源系はまだ大丈夫のようです。
一番よく使ったPC-1261は電源は入るが動作がおかしい、PC-1350は特におかしな点は無いといった感じ。

ご指摘のサイトは探索中に見つけてはいたのですが、辿っていくと結構リンク切れで......
それでも貴重なSC62015の資料なのでWayback Machineからいくつか見ていました。

ニーモニックについては以下の方針で作っています。

・SC61860
『ポケコン・マシン語ブック』巻末の「PC12シリーズ ニーモニック→OPコード対応表」
ここに載っているものについてはほぼ揺れは無いようです。
上に記載のない未定義命令については同書の「PC-14シリーズ 解析と応用」を元にしています。
こちらは揺れがあるので同じコードに複数のニーモニックを対応させています。
# 「CASE」のようにASの疑似命令と衝突するものは諦めました。

・SC62015
こちらは資料が少ないので何とも言えませんが、揺れも未定義命令もあまり無いようです。
詳しくは次回書こうと思っています。

SC61860のニモニックが載った純正のマニュアルを見つけました。
https://www.yumpu.com/xx/document/view/4129074/pc1350-ml-ref-manual

CASIOで使われたHD61700と比べるとすごいシンプルですね。あれは非公開命令が山ほどあった。
若松さんで投げ売りされていたVX-4で少しいじりましたが、大きすぎて全然持ち歩かなかった。
自分のは残念ながら壊れてしまったが、FX-740Pぐらいのサイズと厚さと画面がちょうどよかった。

こ、こんな資料が!
『ポケコン・マシン語ブック』で未定義命令扱いされていた$69, $7AにCASE1, CASE2なんてニーモニックが割り当てられてる。これ資料によってニーモニックがまちまちでメジャーそうなのをいくつか採用していたのですが、これは入れてないので追加しなくては。

CASIO系は使ったこと無いのですが、探せば資料はあるみたいですね。
あとPC-1500に使われたLH5801なんかも。

SC62015について一通り実装後にいくつかの疑問点を確認しようと捜索していて前者は発見していました。
報告遅れてすみません。

後者はアセンブラの開発にはあまり関係ないですが、読んでみると思った以上に汎用的にできていますね。
デバイスドライバの追加とか出来たのか。
私がマトモに買った最後のポケコンがPC-E500だったのですが、深いところまで弄る前に興味が他へ移ってしまったので一ユーザ以上のことはあまり知りませんでした。

Add new comment

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
※ コメントは原則公開です。個別のご相談などは「ご意見・ご要望」からお願いします。