逆アセンブラ
2024.11.27
逆アセンブラ とは、バイナリ(マシン語)からニーモニックに変換するプログラム。
たとえばROMの内容を読み出して、ソースを再現したり解析したりする時に使う。

今ではネットからフリーソフトをダウンロードしてくれば済むが、

昔、具体的に言うと'80年代は買うか、雑誌に載っていたら打ち込むか、自作するぐらいしかなかった。

私の場合は自作しか選択肢が無く、とりあえずBASICで作り始めた。

思い出すと恥ずかしいが、当初はバカ正直に IF A=&H00 THEN PRINT "NOP" の羅列で、あまりにも工夫がなかった。
まあ、でもとりあえず動けば良いという勢いは大事だ。難しい事はあとから考える。

そのうち命令コードの規則性に気づいて、少しずつ整理していった。

たとえば 01 XXX YYY はレジスタ同士のLD命令(一部は違う)
LD X,Y
XXX YYYの部分は下記の通り。
000:B
001:C
010:D
011:E
100:H
101:L
110:(HL)
111:A

但し、LD (HL),(HL)に相当する命令は無く、01 110 110 は 76h (HALT)

余談だが LD A,A などの命令は無駄じゃないかと思う。なんで存在するのだろう。規則上、できてしまっただけ。

こんなふうにBASICで逆アセンブラを作っていたが、マシン語のCB、DD、EDで始まる命令までは手が回らず、8080と互換性のある命令ぐらいまでで終わった。BASICだとあまりにもメモリが足りなかった。当時MZ-2000のHu-BASIC上で作っていたけど、フリーエリアが確か24Kぐらいしか無かった。

遅いのは全然構わなかった。ほっといて忘れた頃に出来上がっていればよいのだから。

あと、ラベルを付ける機能まではできなかったな。ラベルを付けると見やすいけれど、それなりの処理が必要だし、そのためのワークエリアも。

バイナリレベルだと命令なのかデータなのか、逆アセンブラで判断させるのは難しい。人間だったらダンプを見て、文字に変換されているところをみれば、ああ、このへんはメッセージが入ってるとか、BASICの中間言語のテーブルだろう、キャラクタの形状だろうって推測できるけれど。
いまPC98がアツい
2024.11.23
PC98に限らず、MZもMSXもSC/SGも相変わらずアツいのだが、
どうもこれら古いパソコン(マイコン)をいじると、脳が活性化するような気がする。(当社比)

それに気づいたのはキーボードを久しぶりに叩いた時。DOSコマンドを打ち込んだ時。

昔取った杵柄というぐらいだ。
こうなったら、当時を再現せねばなるまい。

一日の始まりはピポに限る。

いまはPC-9801BX/U2を修理中で、これを含めてうちのPC98は(互換機含む)、
PC-486SE2
PC-9821AS/U2
PC-9801BX/U2
の3台となった。

キーボードをバラしてキートップを洗い、よく乾かしてスッキリした。


いまはPC-9801BX/U2の電解コンデンサを交換中。


電源ユニットも修理中。今日の時点では部品入荷待ち。

それからFDDだけど、開けてみるまでもなくゴムベルトがベタベタだろうから交換は必須。

最後にCFを取り付けてMS-DOSのインストール。こんな流れです。

----------追記
修理作業完了
まず電源単独で通電し、各出力が正常である事を確認(5V,+12V,-12V)してから本体へ取り付け。
中古入手時に内蔵HDDが入っていたけれど、異音を出して読み込まないので撤去
メモリチェックOK
まずフロッピーから起動OK
FDDはゴムベルトではなくダイレクトドライブ

CFを取り付け、フロッピーから起動してDOSをインストールしている途中(フロッピー3枚目)でエラーが出て読み込まなくなった。
フロッピーではなくドライブの不調
Bドライブに変えてみるが、やはりエラー
どちらもクリーナーをかけてみるがNG

インストールは中途半端だが、最低限の外部コマンドは入ったし起動できる状態
Bドライブは先程駄目だったが今度は読み込めた。
リモートドライブのソフトをフロッピーからCFへ移した。

再起動し、リモートドライブを使ってもう1台のPC98から必要なファイル等を移してくる作業。とても時間がかかる。何しろRS-232Cで送っているから。

そのほか、今のところ問題なし。
PC98で元気になる
2024.11.21
なぜだろう、うまく説明できないけれど、
PC98のキーボードを叩いていると、指が軽やかに動くというか、
ワクワクしてくるんですよ。

実際、このキーボードは打ちやすい。今どき出回っている安物とは全然違う。

そして若返ったような感じもします。元気になります。

そして、数十年のブランク(たまに操作した事もあったけれど)が有りながら、いじっているうちに手が思い出してきた。

FD(フロッピーじゃなくてファイル操作の方)さえ有れば何でもできたのでした。

さあ、あなたもピポりませんか?(笑)
PC98元気になる
2024.11.21
5年前か7年前か忘れたけれど、不動品を直して一応動くようにしたものだったが、なぜか時計がクルッたように猛烈な勢いで回るという難点があった。なんとか解決したい。

HDDに関しては先日CF化を完了した。

そこで、RTC(時計IC)とその周辺をこの際に直してしまおうと決めた。

これはそのICを取り外した後。汚い。


確か過去には一度はずして基板を掃除してからICを戻したと思うのだが、今回はこのICを新品に交換した。記憶が曖昧で、ひょっとしたら過去は周辺の清掃とはんだ付けのやり直しだけで手抜きしていたかもしれない。

さらに、その周辺を良く見直してみる。
どうもトリマーコンデンサ(緑)が怪しい。電解コンデンサの液体が染み込んでいるのではないか。
はんだごてを当てて加熱すると、あの独特の臭いがしたので当たり。

さっきのICだって、内部に液体が浸透していた可能性がある。
あんな樹脂封止で液体が入るわけないと思うだろう?じつは入るのだ。それで焼けたと思われるICも最近の修理事例がある。
湿気を吸うのは確かで、パッケージが吸湿するとリフローで加熱した時に水分の膨張で破裂する場合がある。そのため、SMD部品のICやLSIを代理店から買うと銀色のパックに乾燥剤入りで届く。



それにしても、このPC-9821As/U2は分解・組み立てが面倒だ。

中身は色々パズルみたいに詰め込まれており、はずす順番と取り付ける順番が決まっている。たとえば、あるユニットを先につけると、その隣のやつが付けられなくなったりする。
先に基板のビスを締めてしまうと、じつはその上に載るユニットの足をのせてから締めないといけなかったと気づいたりする。
また今日もそれでやらかしてしまい、付け外しをやり直したりした。

めんどくさー、とかブツブツ言いながらも手は休みなく動いて、あっという間に分解・組み立ててしまうところはさすがプロだと自画自賛する。


ようやく全体を組み立て、さて見てみようか。

まず、DOSでDATEとTIMEを実行して日付・時刻をあわせる。NTPなんか無い。

そしてTIMEを複数回実行し、時刻を確認すると・・・おおっ、正常に進んでいるようだ。良かった。


これで草の根パソコン通信ネットのホスト局が再開できるぞ(笑)

当然、アナログのモデム専用(笑)
PC98のフロッピーが飲み込まれた
2024.11.21
古いフロッピーディスクを発掘したので、中身は何だろうと思いながらPC98に入れてみた。

フロッピー何枚組かのゲームで、ある程度読み込み終わったら「次のディスクを入れて下さい」と表示されるので、入れ替える。

いまAドライブにさしているとして、それを差し替えるのが普通だが、ためしにBに次のフロッピーを入れておくと、そちらを読んでくれるという親切な作り。

その点に感心していたら、あれっ、抜けなくなった。

ボタンを押しても出てこない。AもBも駄目。

そういえば、
VHSビデオデッキでありがちな話。えちーなビデオテープに限って、中にはいったまま出てこなくなり、電器店へ修理に出すのが恥ずかしかったと聞いたことがある。

ちなみに私は当時ビデオの修理も(某メーカーのサービスマン指導の下)やっていた。
消耗品キットというのがあって、ローラー等のゴム部品やスイッチ等の消耗品が一式入っていた。これらを全部交換してメンテナンスできた。ギヤのタイミングには注意しないといけない。

'90年代はじめのビデオデッキで、電解コンデンサの液漏れでベタベタになった機種も直した。困ったのは印刷抵抗で、腐食しているのを普通の抵抗に置き換えたいが、基板に直接印刷されているから抵抗値がわからない。腐食した状態だから測定しても正しい抵抗値はわからない。メーカーから回路図を取り寄せて、抵抗値が判明した。


またバラさにゃならんのか。めんどくさー。

このPC98は5年以上前に不動品だったのを、自分でバラしてあちこち手直しして復活させた。
勿論FDDも動かなかったので、分解して腐ったベルトを取り除き、新しいベルトと交換するなどして直した物。

つい先日も、不安定で動いたり止まったりするHDDを撤去してCF化し、快適になったばかりなのに。

ただもうひとつ問題点が残っていて、日付・時刻がめまぐるしい速度で回る。電解コンデンサの液漏れの影響と思うが、それは以前バラした時、念入りに清掃したつもりだったのだが・・・

ひょっとしたらIC自体がやられているかもしれない。かなり希少なICだったが入手できたので、いずれにしてもバラさにゃならんか。

これさえ直せば、スッキリして新年を迎えられるだろう。(気の早い話、まだ11月なのに)

----------追記
ボタンを押している間、フロッピーは浮き上がっているので、ピンセットでつまんで引っ張れば取り出す事ができた。

別のメーカーのフロッピーを試しに入れてみると、今度はボタンで正常にイジェクトできた。なぜ?微妙な違い? AもBもOK

- CafeLog -