MCL(41)

インデックスに戻る

前のMCLへ  次のMCLへ

▼ My Computer Life (41)

41. X68000マシン語プログラミング

 確か91年の年始だったと思うが、私は家族でスキーに出かけていった。もう私もいい年だったし、あまり親とは仲良くしていないので、一緒に旅行に行くというのは珍しい。いつも親が出かけても一人で家にいるような感じだったから。ただ、なんとなくこの時は行く事にした。確か次の年は受験で忙しいだろうからとかそんな話をした記憶がある。

 それで、前回書いたとおり、私がX-BASICで書いたプログラムは非常に重くてどうしようもなかった。こればかりは、コーディング上の工夫とかじゃどうにもならないというのは一目で分かった。
 ま、一応色々と対策を練ってはみたのだが、やはりこの重さの根本的な原因は、X-BASICという環境そのものにある。そこから変えていかないと駄目だ。

 まず普通に思いつくのは、C言語である。Cで組めば、マシになるに違いない。しかし、X68kのCコンパイラは4万円ほどするのが分かり、かなり迷った。買えと言われれば買えない事はないが、安い買い物ではない。
 次に出てきたのが、マシン語で組んだらどうかということ。これなら経済的な支出なし(と、その時は思ったのだ)で開発環境が作れる。確かに、マシン語で組むのはきついかも知れないが、いつの時代だってマシン語で直接組むのが最速である。勉強になっていいじゃないかと思ったわけだ。

 そういう事で、スキーのために泊まった新潟のホテルの近くで、「X68000マシン語プログラミング」という本を買ってきた。Oh!Xの村田敏幸さんの著書だ。
 当時この本は出たばかりで、Oh!Xに広告が載っていたし、連載も継続していた。X-BASICの遅さに絶望していた私にとっては渡りに舟という事で、旅先ではあったが買ってきて読んでたのだ。

 ところが、最初の方のページでもう打ちのめされてしまった。なんと、今私が持っているX68kには、標準でアセンブラ・リンカがついてないという事が判明したのだ。
 え、嘘、まさか…と思ったね。初代X68kには、システムディスクの中にAS.X(アセンブラ)、LK.X(リンカ)が同梱されていた。それは前もって知っていたし、昔店頭でいじくった時に実際入っているのを確認した。
 だが、それは初代の話であり、その後アセンブラ・リンカは同梱されなくなった。確かACEが発売された時だっけな。その時同時に、シャープから福袋という名前のソフトが発売され、アセンブラ・リンカはそちらに入る事になった。早く言えば、別売りの商品になってしまった。
 しかしその福袋もやがて発売されなくなってしまい、この時点でAS.XやLK.Xを欲しいと思ったら、先ほど書いたシャープのCコンパイラを買うしかない。それが嫌でマシン語を勉強しようかと思ったのに、結局これじゃ一緒じゃん…そういう思いだった。

 まあそれはともかく、この「マシン語プログラミング」という本自体は、買ってしまったからには読む事にした。これはこれで、役に立つ本だった。
 著者の村田氏は、Oh!Xのライター陣の中でもかなり気に入っている部類の人だ。書き方も質実剛健で、このX68000マシン語プログラミングにも、「細かい事はいちいち説明せんからお前らしっかり自分でやりながら勉強しろ」と言うような事が書いてある。ま、そのわりには結構細かく丁寧に説明されているんだけどね。

 少し先の話になるが、Oh!X本誌の連載において、91年2月号〜3月号の2号にわたってソーティングアルゴリズムを色々紹介している。最も原始的なバブルソートから、最も速いクイックソートまで、順番に並べつつ理論的な説明や実際のコーディングを解説したりしている。
 この記事が私はとても好きで、その後も何度も何度も読み返している。
 村田氏の連載はその後グラフィック編に移り、こちらはまた別に単行本化された。従って、ソーティングの話については22冊ある単行本のどちらにも収録されていない。非常に残念である。ソーティングという純粋に理論的な問題に対し、人間がどのような手法で立ち向かってきたかが分かり、とても楽しい話だったのに。

 この単行本にも、日本語コードが化ける仕組みや、ファイルの終端処理など、いじる前はややこしくて意味わからないけど、実際プログラミングをしていくと突き当たる厄介な問題について解説していて、その後マシン語に関わらず多くの場面で役に立つ知識を得る事が出来た。
 最初に書いたとおり、アセンブラ本体が同梱されていなかったという事もあって、結局マシン語でのプログラム制作はしなかったけど、その考え方や取り組み方が分かったというのは貴重であった。


前のMCLへ  次のMCLへ

戻る

TOM 2005