最近のお買い物(2021/10)
カテゴリー:
今日は衆議院議員選挙の投票日、投票後に投票所近くのサイゼリヤで昼食をとろうと思ったら同じこと考えた人多数のようで大混雑、諦めて帰ってきてしまいました。
今日は衆議院議員選挙の投票日、投票後に投票所近くのサイゼリヤで昼食をとろうと思ったら同じこと考えた人多数のようで大混雑、諦めて帰ってきてしまいました。
ボードが出来たら当然次はソフトウェアを何とかしなくてはなりません。
いつものようにUniversal Monitorを移植することにします。
こういうのってCなどの高級言語か擬似コードを元にアセンブリ言語に変換していくのが一般的なのかもしれませんが、私の場合は似たプロセッサ向けのアセンブリ言語のソースを見ながら直接アセンブリ言語で書き下ろしています。
今回は8080用を元にしていて、現時点でD(ump), S(et), G(o), L(oad), P(unch)の各コマンドが動いています。ここまでで感じたことをあげてみます。
SHLD
, LXI
などASのCP-1600対応などで停滞していましたが、2週間ほど前から作り始めていたμPD78C10のボードが動き始めました。
例によってEMILY Board仕様です。
μPD78C10ボードと銘打っていますが、少々の改造(63ピンと64ピンを短絡)でNMOS版のμPD7810もいけると思います。μPD7807もざっと見たところいけそうなのですが、どうでしょう。
CP-1600を実際に動かしてみるとなると問題になるものの一つとして開発環境をどうするかというのがあります。
ざっと探してみましたが使えそうなアセンブラが見当たりません。
Cコンパイラなどが無いのはともかく、アセンブラも無いのはさすがに困ります。いくら昔を懐かしむといっても今さらハンドアセンブルはしたくありません。
というわけで以前ASをMN1610対応させたようにCP-1600対応のコードジェネレータを書いてみました。
16ビットワードマシンであることなどMN1610に似ている点もあり、基本的な枠組みはMN1610とほぼ一緒です。
続いて各命令のデコーダを書いていきますが、結論から言うととても楽でした。
また買ったまま忘れていたデバイスです。最近ブレッドボードで動かそうとされている方がいて思い出しました。
General InstrumentのCP-1600A、1982年48週の製造のようです。
TMPZ84C015にはA7RFという出力があって、リフレッシュアドレスが8ビットになっているのですが、そうなるとR
レジスタの動きはどうなるのだろうという疑問が出てきます。ならば現物で確認するのが一番、というわけでAKI-80を引っ張り出して動かしてみることにしました。
いずれEMILY Boardにつなげてみたいということでそれを意識した配置にしています。
でもまずは上記の疑問を解決したいということで最低限の配線しかしていません。
μCOM-87シリーズはQuad in-line Packageで取り上げたμPD7800Gがありますが、シュリンクDIP品を見かけたので買ってみました。
μPD78C10ACW、μCOM-87ADファミリの一員です。NECの独自アーキテクチャのいわゆるワンチップマイコンです。
レジスタセットはBC
, DE
, HL
などというのがあって、しかも2セットを交換できるなどZ80によく似ています。命令は(まだデータシートを流し読みしただけですが)ニーモニック数が多い印象ですね。
手持ちのINS8073/Nを仮に載せていたINS8070ボードですが、INS8070も到着したことですし、INS8073でやろうとしていたことも一通りできたので、本来のINS8070に載せ替えました。
INS8073とINS8070の違いは内蔵ROMの有無だけですのでそのまま載せ替えられますが、メモリ配置は変更が必要です。
0x0000番地から起動用のメモリが必要なので0x1000~0x1FFFに配置していたものを0x0000~0x0FFFに移動しました。0xF000以降をRead Onlyにしておく理由もなくなったので書き込み可能にしました。