MSXでプログラミングの限界を知る②
さてどうしたものか。何でも出来ると思っていたプログラミングがちょっとしたことも出来ない。
どうすればいいのか見当もつかないから見て覚えるのがいいなと。
MSXマガジンやMSX・FANに載っているプログラムをひたすら打つ。アスキー出版のポケットバンクは色んなジャンルのプログラムが書籍化されていて面白そうなのを買っては楽しんだ。
BASICのプログラムをひたすら打って実行して気付く。
「なんかBASICって遅いぞ!?」
うまい人が作ったのはそれなりだけど市販のゲームみたいなのは無い。だから速度面を補うために画面が荒いモード(SCREEN3)や画面が小さいゲーム(タイニーなんとか)で作ったりしている。
まあ知らないフリしても白々しいのでもうマシン語が速いってことですわ。MSXマガジンにもマシン語のリストが出てた。プログラムじゃなくてリストって言いたくなる。
マシン語のプログラムは人間の分かる単語が出てこない。16進数の数字アルファベットの洪水を機械的に入力する。これぞ機械語。まず打っていても人間が理解できない内容だから全く勉強にならない。
キーパンチャーとしての練習でも辛い。これは子供がやったらいけないなと今でも思う。
wifiのパスワードを機種変したら入れるじゃん。あれでも面倒と思うけどそれをずーとやるようなもの。
MIAの市販のゲームが収録されている本があった。本のままだと曲がっていて打ちにくいから拡大コピーして定規をそえて一行ずつ打ってた。
本の値段と売ってるゲームの値段を比較したらお得だけど多感な時期を数字打ちに費やすよりかは欲しいゲームだけ買っても良かったんじゃないかな。
市販のゲームまんまが出来るマシン語はすごい。これは大変でもマシン語やる価値あるぞとなる。本屋に行きまして信頼のポケットバンクからマシン語入門を買う。もうね別世界よ。
コンピューターの中でどう演算するか、どこに数値を格納してどうやって引き出すか。BASICの入門書とは次元が違う。どうやって円を描くかなんてどこにも書いてない。
円を描きたければ0と1の世界でどうやって三角関数を使うか、描画するにはMSXのVRAMがどう構成されているか、全てを熟知しないと何も出来ない!
アセンブリ言語を使ってプログラミングするわけだがニーモニックは機械よりなのでBASICみたく人に優しくない。
しかも私はアセンブリ言語をマシン語にするアセンブラのプログラムを打つのが面倒くさくて上級者がやるようなハンドアセンブルをしていた!無茶だね。
ノートにLDだのPOPだの書いて本で見た数字に変換していく。楽しくは無かったな。
タイニーグラディウスみたいなのをBASICで作って一部をマシン語化することにした。
自機が動いて弾が撃ててカプセルをとるとパワーアップゲージが増えてオプションとフォースフィールドが付く。敵は出ない。
スティックの入力と自機の移動、カプセルとの当たり判定をマシン語でやらせた。もうBASICとマシン語の変数の共用とか苦労しまくった。でも形にはなった。すごいね。楽しくないんだもん。
結局速くなったかといえばタイニーだし敵も出ないから全然実感が無い。これ以降はマシン語使おうなんて思わなかった。
数年後のプログラムをしなくなった頃に中古のMSXべーしっ君を激安でゲットした。BASICをマシン語に変換してくれて高速化するコンパイラのカセット。
ものすごい時間がかかるレイトレーシングの綺麗な画像を描くプログラムを実行してみたらえらく速くて驚いた。
べーしっ君使ってプログラミングしようかまでは行かなかった。なんというか今更もういいかなって感覚。
べーしっ君はMSXマガジンでもあまり取り上げられてなかったから存在は知ってても買うまでに至らず。SANYOのMSX2+みたいに他のメーカーのMSXもべーしっ君を標準装備してくれてたらBASICの遅さで挫折する人も居なかっただろうに。
続く…
