6503がようやく動いた報告

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

MZ80を起動せよ!公式BASICを読みこませてみた結果

MZ-80を触って震えた四コマ


前回、なんかカセットテープの調子が悪いということで終わりました。
MZ80を起動せよ!モニター修理というか交換しました
読み込まないのはなんで?テープ?回路?コンデンサ?ICの故障?
とまあさっぱりわからなくなり、ついに秋葉原のBEEPに飛び込んで相談してきました。

んでちょっと怖い整備係のおじさんにカセットの互換性、在庫状況を尋ねたところ…
1)基本、mz80系でmz700系のカセットテーププログラムは動かない。
2)ここ1~2年、店頭でmz80系のソフトは出ていない。本体も入荷していない。
(ガラスケースの上に鎮座していますが、あれは展示用でしょう。そうであってほしい。)

という回答を頂いたため、その時よく出回っていたmz700系のテープを使用することは断念。次に試すのは、MZ-80実機で使用できるという「KM-Z80 BASIC」というもの。
こちら、プログラム的には完全互換を達成しているそうなので、あとはテープに焼いて動けば成功、というわけです。

【KM-Z80をカセットテープに焼いてみる】
というわけでさっそくデータをカセットテープに書き込みたいと思ったのですが、まず焼き込むにはこれをwavデータ、つまり音データにしないといけないのです。
カセットテープに焼き込む
カセットテープに焼き込む

まあ音データなんだしカセットに書き込めばいいんでしょカセットデッキ使用してやれば簡単じゃんとか雑なこと考えてテープに録音し、起動させ、モニタコマンドにLOADと打ち込みますが…認識しません!
反応すらしません。理由としてはMZやSharp X1に使用された、特殊なカセットデッキが原因であることは容易に想像がつきます。そのため、カセットデッキの裏の回路に直接電極をつないでPCから音声を再生、8255のピンから正しい信号が出ていることを確認しましたが、やはり認識しませんでした…
カセットデッキの裏基板
ちなみに、基板に直接電極をつないで入力をしてみましたが反応せず…


【公式BASICを入手し読み込ませることに】
本来、修理を行うのであれば必ず公式のモノが動くか確認する必要があるのですが、まあ今回それをすっ飛ばしてあたふたしていたのでこれではだめだとホンモノを入手しました
BASIC SP-5030

それがこちら。ジャンク品ということで出品されていましたが、そもそも出回っているかどうかも怪しいレベルで貴重品なので飛び付きました。真似してはいけません

そして、早速読み込ませてみると・・・・
MZ-80 にBSAICを読み込ませた結果

あっさり読み込み。あれだけ苦労したのが嘘のようです。
とまあソフトだけあっても、使用方法がわからなければどうしようもありません。しかしながらそこがMZ-80のすごいところで、有志が解析しまくった情報がネットに公開されているのと、公式が当時の取扱説明書を公開しているため、そこらへんに困ることはまずありません。(そこまで公開するならソフトも配布してくれればいいのにとかは贅沢な考えですかね…)
そしてお約束のHello world。
特に何も癖もなく表示できました。
SP-5030で"HELLO WORLD"

MSXなどと違い、男らしくテキストのみです。しかしながら、セミグラフィックテキストが存在しているため、メモリにじかに書き込むこともしくは描画命令を使用することで簡単なドット絵やその他グラフィックを使用することができます。もうここまできたらアイデア勝負です。頭をこねくり回しましょう。
MZ-80のフォント一覧

BGM,外部出力など命令は多岐にわたり、結構充実しているというのが第一印象です。感覚的にはモニタとメモリが増えたでかいArduinoUnoといった感じでしょうか。

そんな比較方法は野暮なのです。MZ-80はその武骨であるがシャープなデザイン。残念ながら、モニタを入れ替えたためグリーンのモニタになりましたがこの単色のモニタ。そしてどこまでもアクセスできる超オープンなデザイン。(BASIC内にアクセスするには、多少書き換えが必要になるのですが、それもすべて完結します。)

脱線しましたが、今回の結果、カセットテープデッキには特に問題がないことがわかりました。ジャンクカセットテープということだったのでひやひやしましたが、特に問題もなく大勝利ということに。

んじゃこれからゲームでも作ろうかとか思ったんですけど、そこは問屋が卸さず、絶望的な描画速度の前に頭を抱えてます。アセンブラを使えばいいのですが、残念ながらアセンブリソフトを持っていないためハンドアセンブラで特攻です。
ドット絵を表示するテスト
セミグラフィックフォントでドット絵を描くにはちょっと癖が強すぎます…

次回はドット絵を動かせるようになれたらいいかな!

前回の記事:

コメント

このブログの人気の投稿

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

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

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