6503がようやく動いた報告

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

[性能もよかったのに]幻のプログラミングソフト、Macintosh Basicに触れる[知名度で負けた?]

画面中央、キーボードに触れている手のマークがMacintosh Basic。

■|ベンチマークも操作性もよかった、Apple純正のプログラミングソフト

 前回、MSBASICにて開発していくというお話をしましたが、実は開発ソフトの候補としてもう一つ上がっていたものがあります。それがこの「MacintoshBasic」。
開発は1985年。しかし当時出回ったのかそうでなかったのか詳細は分からず、いまではこの存在を知る当時のファンがMSBASICに対する恨めしそうなメッセージとともに公開していた。
前回書いたMSBASICの欠点はこのMacintoshBasicにはなく、それどころか動きも非常に早くかつ編集も容易。驚くほど使いやすく、最初は本気でこれで開発しようと考えていたのです、が。このソフト、ある欠点があります。しかもかなり致命的な。
ウインドウ配置もよく考えられており、実行画面と編集画面もこの通り。
また、MSBASICでは実行しないとコードのエラーを指摘してくれなかったもののこのMacintoshBasicでは一行書くごとにチェックし教えてくれる。

それがこちら。

恐怖の爆弾マーク。ここでりじゅーむを押してはいけない。地獄を見る。
システムエラーが起きるんです。しかも入力中に。前兆としては、突然画面がぶるっと震えます。入力がバグります。もうそうなったらおとなしくいったん閉じましょう。なぜなら、OSを破壊されて二度と起動できなくなるからです・・・!!

■|原因として考えられるのはアドレスバスの違いか?

このプログラミングソフトが登場したのは1985年。そのため、まだ今回使用しているMacintoshPlusは登場していないのです。そのために入力に使っているキーボードも128k
512kとは違いがあります。それが原因で入力の際にこのようなバグが発生すると考えると自然かもしれません。(キーコードが違うため?)

また、128k、512k時代にはなかったSCSIデバイスもこのPlusにはついているため、一部機能の命令が対応していないという事態になっている点でも、バグが発生する余地があるとみてよさそうです。

■|MacintoshのROM開発メンバーが作ったので激早!でも・・・

内部処理ルーティーンがおそらく最適化されていると考えられるのが、入力へのレスポンスの速さ。MSBASICでは入力の受付がどこかもっさりとしていたように感じましたが、こちらでは驚くほどストレスフリーに入力ができます。たぶん今の言語開発環境と引けを取らないレベルかも。(それは言い過ぎか)

また、当時の記事を見るとベンチマークの記録でもMSBASICよりこちらのMacintoshBasicのほうが速かったと記載されています。しかし先ほどのOS破壊バグや、プログラミング言語の互換性(当時既にMicrosoftのBasicが覇権を握っていたため言語の互換性を考えるとMSBASICのほうがよかったという場合が多かったらしい)を考えたのか、この一回限りでApple純正BASICは姿を消したようです。

■|本も出版されていたが、結局主流はMSBASIC、THINK Cに

一応MacintoshBasicのプログラミングマニュアルは出版されたようで、そのことを考えると市販もされたと考えられます。しかし、いざ動かしてOSをクラッシュ、再インストールということを考えるとちょっとメインでは使えない代物です。

また、もうこのころにはC,C++にての開発ツールも登場しBasicの覇権自体陰りが見えていたようです。

それでも、開発のしやすさ、最適化されていた内部構造などを考えると、さすが純正ソフトといえるでしょう。

ただし、OS破壊だけは許せない!!

よって、MSBASICにて引き続き開発に挑もうと思います。ThinkCが手に入ったらそちらでの開発もいいですね。その前に、破壊されたOSをもとに戻さねば・・・

コメント

このブログの人気の投稿

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

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

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