6503がようやく動いた報告

イメージ
  回路図まで載っけて作りましたと宣言した前回。 いざ色々動かそうとしたものの、 プログラムがまともに動かないので試行錯誤してたら何年たってたんですかねこれ 。月日が経つのは怖いですね。 今回ようやく6503と6532が無事に動きました。 何につまづいたのかというと、多分アセンブラの文法です。 6502系のアセンブラって結構豊富で、 いろんなところから出てるんですがそれぞれアドレスの表記とか微 妙に違うんですね。 で、 今回久しぶりにca65というアセンブラを使用してみたのがつま づいた原因でした。 一度設定すれば大体の6502系には対応できるのが魅力ですが、 本当よくわからないmakeファイルの設定とかで地獄を見ました 。 以下何やってたのか簡単にまとめていきます。 新しい道具も作ったよ! ■:まず動かない いや、電気は通ってるしクロックは走ってるんですよ。 なのに6532の挙動がおかしくてIRQはでっぱなしだしcpu は止まるし訳がわかりません。 そこで今一度6532のデータシートを読むと、 「 NMIとIRQはオープンコレクタなので 必ずプルアップすること 」 ってあるんですね。何その罠。 というわけでプルアップ抵抗を追加しました。 これでcpuがすぐに止まる事故は解決… と思いきやまだ止まります。というか出力がよくわからない。 そこで大昔に作りかけてやめた出力確認用LEDパネルを作成する ことにしました。 ■:めちゃくちゃ便利なLEDパネル 5年くらい前にこんなの作ったら便利やろってLEDだけ並べて、 回路に不備があることに気がついてなげたもの。 今ならなんとかできそうってことで抵抗とトランジスタ をばーっと取り付けて、 カードエッジからも表のポートからも入力できるようにしました。 これまでは毎回ブレッドボードでled回路組んでたんでクソめん どくさいし抜けるしで散々だったのですが、 これで見やすい簡単出力もicに負担がなく万々歳になりました。 やったぜ。 まあ回路図書かずにえいやっと作ったので裏はすごいことになって ます。ちゃんと整えて、 入力スイッチもつけて体裁整えたら普通に便利道具になりそう。 クロックパルスも出せるようにしたいですね。 ledドライブのために2sc1815を贅沢に使用してます。 意外と高いですがいつ買ったのか結構あったので奮発...

[ソフトがないなら]Macintosh Plusでプログラミング![自分で作る]

実際の作業風景

あれからいろいろあり、外付けハードディスクと中のコンデンサーの交換が終わり、ソフトなどもいちいちフロッピーを入れなくてもよくなりました・・・が、
肝心のソフトがありません。手に入れようにも、Macintoshのソフトで、かつ800kbフロッピータイプのソフトはあまりというかほぼ手に入りません。しかし、この時代ソフトは確かに買うのももう普通に行われていましたが、同じぐらい「自作」することがメインの時代です。とうじにあやかり、同じく自作することにしました。

というわけで今回使用したのは・・・
MSBASIC3.0!!!!

手当たり次第に漁った古いHDDや、MDの中を探したら偶然手に入りました。これ以外にも、きっどぴくすとかフライトシミュレーターとかも見つかり思った以上に当時のソフトが残っていましたが・・・
このソフトを使って、何か新しくゲームなりソフトを開発できないか挑もう・・・というのがこれからの方針です。

■APPLE2とは勝手が違う!GUIになったMacintosh
さて、ソフトが手に入ったものの肝心のマニュアルがありません。ひとまずBASICなのでド定番の命令から適当に打ち込んでいきます。それ以前に、テキストを打ち込むウインドウとがある時点で今までと全然違います。そして、画面に描画する命令群も「効きません」。うっそだろおい・・・
いちおうド定番のPRINT文を実行すると・・・
やっぱり開発環境としては狭い・・・・!

もう一つのウインドウに表示されました。というかそこに出るのか。
しかしそこに出たメッセージはクリックしても「選択」できません。どうすることもできない。つまり、この画面は「実行画面」ということになります。APPLE2でいう描画画面・・・ということなのでしょう。
ちなみによくごり押しに使用した命令「PEEK」と「POKE」はどういうわけか書き方が違うということで実行することができませんでした。そのほかの命令も、画面を描画することができません・・・


えっなんでこんなに互換性がないのよBASIC。おまけに矢印キーが使えない。なので、編集はそれなりにめんどくさいです。まあ、打った行列がそのまま編集できるだけありがたいのですが。
ゴリゴリ書くとこんな感じ。既に登録されている言葉などは太文字で表示される。

しかし、悪いことだけではないのがやはりAPPLE2との違い。なんと、ラベル指定によるプログラミングが可能になっているのです。ラベル指定とは、いわゆるBASICではプログラミングの際に行番号を指定し、プログラムを書くことが普通なのですがこのMSBASICでは行番号は任意で、その代わりにGOTOで指定するものとしてラベルというC言語などでいうvoid ~~の~~にあたるぶぶんとしてプログラムの塊の管理に使用できます。これが噂のオブジェクト指向ですか。
とりあえずサンプルコードを打ち込んでみた。往年のインベーダー!
UFOも出てくる

■天下のMSBASIC、今でもテキストが手に入った!

とにもかくにも仕様や勝手が違うMacintosh 版MSBASIC。正直、あてずっぽうではらちが明かないのでグーグル先生に不慣れな英語でぶち込んだら一発ヒット。すごい。ゆうしゅう。
 ついでに、「今でも」開発されているChipmunkBasicというBasicも見つけました。ただ、これは矢印キーなどが使用できますが、MSBASICと違いラベル指定によるプログラムの機能が備わっていません。なおかつ、一つ一つの命令が非常に長いのでグラフィック命令などを乱用したりするとそれだけで打ち間違いやらなんやらを誘発し非常に書きづらいです。一応、このソフトは無料で公開されているうえ68000でも動くように作られている、ネットでもそれなりに情報が手に入ります。なにせ難しい。
超独特文法に途中編集機能なし!
いまでも無料で手に入るから、やってみたい人はぜひ。開発には・・・使えるかなぁ

それに比べると、編集の容易さや情報がすでに手に入っているMSBASICのほうが向いている、ということで今回はこちらをえらんだのですが、実はすでにこのころにMacintosh 向けのC言語プログラミングソフトが公開されています。もしかしたらそちらでできるようになれば、今の時代ならC言語のほうが役に立つのでそちらで開発したいですかね。

無謀にも英語テキストでMSBASICに挑んでいる記事がこちら。
[ソフトがないなら]Macintosh Plusでプログラミング 1日目[自分で作る]
[テキスト英語は]Macintosh Plusでプログラミング 2日目[さすがにきつい]
無料で今でも手に入るChipmunkBasicのインストール方法はこちら
[あなたも]Chipmunk BasicをOld Macintoshにインストールする方法[プログラミング]

コメント

このブログの人気の投稿

ファミコンの完全自作ROM&カセットを作ろう!!その1~立ちはだかるコンパイラの壁~

ファミリーベーシックでゲームプログラミング

ファミコンの完全自作ROM&カセット作ろう!〜cc65で起動ROMをつくる〜