逆アセンブラ
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の中間言語のテーブルだろう、キャラクタの形状だろうって推測できるけれど。
たとえば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の中間言語のテーブルだろう、キャラクタの形状だろうって推測できるけれど。
昔と今のモデム
2024.11.27
昔はボックス型、そして内蔵ボード型、現在はUSB型
昔と今を比較すると非常に小さくなった。
ボックス型の中身(Deskporte V.34ESII)

USB型の中身

昔はモデム信号処理を専用LSIで行っていた。それとPC本体とのやりとりや制御のためのコントロールLSIとROM、RAMを組み合わせていた。
さらに回線周りのアナログ回路(DAAと呼ばれる)があった。
今では小さなIC、LSIが3個! USBメモリよりは大きいが、それでも十分小さいサイズにおさまっている。
信号処理をPC側のソフトで行うようになったので、その分、小型化できたというわけです。
ただ、この私が持っている個体はノイズに弱いような気がする。疑似交換機を通して別のモデムと接続してみたが、21,600bpsしか出なかった。
パソコンからUSB経由で電源をもらっているから、当然ノイズがのっている。パソコンにイヤホンをさして、無音状態の時でもチリチリジリジリとノイズが聞こえてくるぐらいだから・・・。
この点では、ボックス型のほうが有利といえそう。もちろんトランス式のACアダプタを使っている機種。
昔と今を比較すると非常に小さくなった。
ボックス型の中身(Deskporte V.34ESII)

USB型の中身

昔はモデム信号処理を専用LSIで行っていた。それとPC本体とのやりとりや制御のためのコントロールLSIとROM、RAMを組み合わせていた。
さらに回線周りのアナログ回路(DAAと呼ばれる)があった。
今では小さなIC、LSIが3個! USBメモリよりは大きいが、それでも十分小さいサイズにおさまっている。
信号処理をPC側のソフトで行うようになったので、その分、小型化できたというわけです。
ただ、この私が持っている個体はノイズに弱いような気がする。疑似交換機を通して別のモデムと接続してみたが、21,600bpsしか出なかった。
パソコンからUSB経由で電源をもらっているから、当然ノイズがのっている。パソコンにイヤホンをさして、無音状態の時でもチリチリジリジリとノイズが聞こえてくるぐらいだから・・・。
この点では、ボックス型のほうが有利といえそう。もちろんトランス式のACアダプタを使っている機種。
草の根ネットのホスト局 襲撃
2024.11.26
襲撃というと物騒な感じがするけれど、当時は普通に使っていた。
みんな気楽に「襲撃」と称して、うちにやってきた。
特に週末になると要注意だった。だいたい、朝から静かな土曜日だったりする。嵐の前の静けさというやつである。
メールが来たり、いきなりSYSOP呼び出しが鳴ったりして「今から行くぞ」と。
「どうせ家にいるだろ」ってなもんで・・・(どうせ)
何人も連れ立って、うちに乱入してきたりする。
お菓子など持参してきたり、クロスケーブルでホストにつながっているPCからログインしてみたり、何かの話題で盛り上がったり、あやしいフロッピーやCDを持参したり・・・
私のPCのCONFIG.SYSとAUTOEXEC.BATを勝手にいじる奴もいた。帰った後に見ると、たいてい何か仕込まれている。
車にそのまま私も便乗して、ほかの会員さんと合流したり、あちこち出かけたりした。
そして、回線を増やせだの高速化しろだの、みんな言いたい放題であった。誰がお金を出すんだよ。私が全部出すのだから。
そういえばオフ会で、BBQ大会からそのままキャンプになった事も。
みんなでログハウスにゴロ寝して、自由に過ごしていた。
その様子を撮影して、当時あったパソコン通信の雑誌に送ったら掲載されたっけ。
逆に取材の連絡があったっけな。確かGUESTで入って連絡をもらい、正式にやりとりをしたような。あの雑誌まだ持っていただろうか。間違って捨てた?
みんな気楽に「襲撃」と称して、うちにやってきた。
特に週末になると要注意だった。だいたい、朝から静かな土曜日だったりする。嵐の前の静けさというやつである。
メールが来たり、いきなりSYSOP呼び出しが鳴ったりして「今から行くぞ」と。
「どうせ家にいるだろ」ってなもんで・・・(どうせ)
何人も連れ立って、うちに乱入してきたりする。
お菓子など持参してきたり、クロスケーブルでホストにつながっているPCからログインしてみたり、何かの話題で盛り上がったり、あやしいフロッピーやCDを持参したり・・・
私のPCのCONFIG.SYSとAUTOEXEC.BATを勝手にいじる奴もいた。帰った後に見ると、たいてい何か仕込まれている。
車にそのまま私も便乗して、ほかの会員さんと合流したり、あちこち出かけたりした。
そして、回線を増やせだの高速化しろだの、みんな言いたい放題であった。誰がお金を出すんだよ。私が全部出すのだから。
そういえばオフ会で、BBQ大会からそのままキャンプになった事も。
みんなでログハウスにゴロ寝して、自由に過ごしていた。
その様子を撮影して、当時あったパソコン通信の雑誌に送ったら掲載されたっけ。
逆に取材の連絡があったっけな。確かGUESTで入って連絡をもらい、正式にやりとりをしたような。あの雑誌まだ持っていただろうか。間違って捨てた?