たまには部屋をかたづけようよ

部屋を片付けせなあかんと思いつついつも放置プレイ。そんな自分の日々の想いをつづった日記系ブログですよ?

最近書いた記事

もう二度と見たくない恐怖のマシン語ダンプリスト

納涼!ほんとにあった怖いコード(by CodeIQ×はてな)

CodeIQ x はてな エンジニア夏祭り2013 第2夜ということで応募します。


 その前に、まず自分の近況報告から。審査員の方はここはスルーでお願いします。

8/7(水)入院7日目終了:今日やっと絆創膏が全部とれた。念願の抜糸も半分だけ終わった。

 前歯を全損する大怪我から、今日でちょうど1週間が経った。

 今でこそ普通に喋られる(注:「シ」と「チ」は除く)ほどまで回復したが、先週の今頃は怪我で大変な思いをしていたわけで、この1週間はほんとめまぐるしく状況が変わっていったなぁ、としみじみ思ってしまった。


 今日の午前の診察で、怪我当日からずっと絆創膏を貼っていた部分(右手、右肩、上唇、眉間)も剥がせて、これで体中から絆創膏が全部なくなった。

 これで絆創膏を気にすることなく、思う存分風呂に入ることが出来る。


 それと今日は念願の、口の中を縫ったところの抜糸をやってもらえた。

 ただし4カ所のうち2カ所だけ。

 残りは様子を見て明日、ということになった。

 今日時点では、退院の日程について主治医の先生から何も言われていないが、次回の診察時には何かしら話があるのではないか?と思っている。


 あと、今日は七夕の日。

 病院の夕食に短冊が配られたので、今の願いを書いてみた。

f:id:BNorider:20130807183926j:plain
 いやいや、生えてこん、生えてこん。

f:id:BNorider:20130807184135j:plain
 こっちが正解。




 さて、ここからが本題。

 今でも思い出すのも嫌なトラウマのことを書きたいと思う。

 その話は今から約30年前、月刊マイコンという雑誌がまだ発行されていた時期に遡る。

 当時、ナショナルが発売していたJR-200というパソコンを持っていたのだが、この時代のメジャー機種であったPC-6001PC-8001などに比べると、マイナー機種故の悲しさから市販されているソフトなどほとんどなく、ゲームは専ら、雑誌に掲載されていたBASICのソースコードを手打ちでパソコンに打ち込んで、やっと遊べるような状況だった。

 そんな折、月刊マイコンにJR-200用に市販されていたシューティングゲーム(だったと思う)のソースコードが掲載*1されたことがあった。


 ただでさえ少ない市販ゲームで、そのソースコードが載っているということで、喜び勇んで月刊マイコンを買ってきた。

 ただし、こういったゲーム関係は処理スピードを重視するため、BASICではなく全てマシン語で書かれており、当然ソースコードも16進数のダンプリスト。

 しかも、それがなんと60ページもあった。


 自分はそれまでBASICでプログラムを入力したことはあったが、バイナリエディタを使ってマシン語を入力したことはない。

 でも、自分には市販ゲームを遊ぶことができるという嬉しさから、そんなことはさして気にせず入力し始めた。

 めくれど、めくれど、ダンプリストは続き、ぱっと見、同じようなページが何ページも続くが、とにかくひたすら16進数を入力していった。

 それでやっと打ち込み終えることが出来たのだが、起動してみると動かない。


 なんでだろう?と思って最初のページから打ち込んだソースと比較していくと、

 なんと10ページほど進んだところで、丸々2ページとばして、最後まで入力していたことに気づいた。

 ページをめくる際に2枚一緒にめくってしまったことに気づかなかったようだ。


 これが上級言語なら、文脈の流れで飛ばしたことに気づいただろうが、相手は16進数ダンプリスト。

 ぱっと見、単なる16進数の羅列のため、違いなんてわからない。


 「唯一、違うといったら・・・」と思った時点で気がついた。

 「あーっ! だから一番左側の数値(入力アドレス値)が違っていたのか!」

 つまり、誤ってページを飛ばしてしまって以降、入力アドレス値が、画面に表示されているものと、見ているページとで違っていることには気づいていたのだが、そこは編集出来なかったため「そういうものなのだろう」と思ってスルーしてた。

 #こんな一番肝心なところをスルーするところは、さすがマシン語入力初心者。
 #慣れている人からするとあり得ないミスをする。
 #でも、こうやって痛い思いしながら、なんでも覚えていくもんなんだよね。
 #以上、現在の自分からのコメント

 
 どうしたものかと考えたが、当時のバイナリエディタは、コピペなんて好都合な機能は持っていなかったため、

 結局は
 抜けたページを含めて、残りの50ページをまた入力し直し
 するしかなかった。

 マ、マジですか・・・orz

 さすがに同じ労力をする根気はなく、諦めざるを得なかった。


 えぇ、さすがにブチギレましたよ。

 でも、原因は自分のため怒りをぶつける相手がいなく、哀れ月刊マイコンがそのとばっちりをくらって、即ゴミ箱行きになったとさ。


 それ以来、マシン語のダンプリストは、二度と見たくなくなったことは言うまでもない。


*1:そういえば、その当時は市販ソフトでも普通にソースコードが掲載されてたね

↑ページトップへ