uPD78C10

テーマ:

カテゴリー:

μCOM-87シリーズはQuad in-line Packageで取り上げたμPD7800Gがありますが、シュリンクDIP品を見かけたので買ってみました。


μPD78C10ACW、μCOM-87ADファミリの一員です。NECの独自アーキテクチャのいわゆるワンチップマイコンです。

レジスタセットはBC, DE, HLなどというのがあって、しかも2セットを交換できるなどZ80によく似ています。命令は(まだデータシートを流し読みしただけですが)ニーモニック数が多い印象ですね。

INS8070ボード(その2)

テーマ:

カテゴリー:

手持ちのINS8073/Nを仮に載せていたINS8070ボードですが、INS8070も到着したことですし、INS8073でやろうとしていたことも一通りできたので、本来のINS8070に載せ替えました。


INS8073とINS8070の違いは内蔵ROMの有無だけですのでそのまま載せ替えられますが、メモリ配置は変更が必要です。

0x0000番地から起動用のメモリが必要なので0x1000~0x1FFFに配置していたものを0x0000~0x0FFFに移動しました。0xF000以降をRead Onlyにしておく理由もなくなったので書き込み可能にしました。

INS8073のBASICで独自のコンソールを使う

カテゴリー:

前にBASICの持つコンソールルーチンをモニタから使用する方法を書きましたが、今度は逆に独自に用意したコンソールルーチンをBASICに使用させる方法です。

こちらは一応マニュアルにも載っている公認の機能です。

マニュアルの情報不足と誤りのせいでROMを読むまでは動かせませんでしたが...

ということでINS8073のコンソールの設定方法についてまとめておきます。

INS8070

テーマ:

カテゴリー:

INS8073のBASICでユーザが用意したコンソール入出力ルーチンを使う方法を予定していましたが、到着を待っていたCPUが届いたので先に取りあげることにします。


National SemiconductorのINS8070、そもそもINS8070ボードを製作した目的のデバイスです。

製造は1983年の26週のようですね。

INS8073のROMを読む(続き)

前回、ROM内のコンソールからの1文字入力ルーチンは0x092Bではないかという予測が立ちました。これをもう少し確認してみます。

まず0x0020~0x003FまでのCALL命令のベクタには0x092Bは登場しません。

それではJSR 0x092Bはどこかにないか、と探してみると1箇所だけありました。1箇所からしか呼ばれないなら貴重なCALL命令のベクタを割り当てないのも納得がいきます。

例によって付近を逆アセンブルしてみます。

INS8073のROMを読む

カテゴリー:

INS8070ボードでROMのBASICの1文字入出力ルーチンを独自のものにしようとしてうまくいかなかったと書きましたが、モニタを移植したことでROM内を読めるようになったので関連箇所を調べてみることにしました。

まずはPコマンドでROMのアドレス範囲(0x0000~0x09FF)をPCに持ってきます。

そう、P(unch)コマンドを実装したのはこのためです。

手頃な逆アセンブラがないかネットを探してみたのですが見当たらなかったので簡単なものを書いてしまいました。

さて、どこから手を付けるかですが、先頭から読んでいくのはしんどいです。

今回調べたいのは文字入出力だけなのでメッセージから追っていくことにします。

メモリダンプを見ていくとASCII文字列がいくつもありますが、多くはBASICの予約語なので今回の目的には使えません。その中で良さそうなものが見つかりました。

INS807xにモニタを移植

前回書き始めていたモニタですが、いつものようにD(ump)コマンドが動くころには慣れてしまって残りはサクサク進み基本的なD,G,S,Lコマンドはすぐにできました。今回はちょっとわけあってP(unch)コマンドも追加しています。

SC/MP(I と II)とは以下のような相違点があります。

  1. 16ビット演算命令
    これ自体は便利でありがたいのですが、キャリ/ボロー込みの加減算命令がなくなってしまいました。モニタには必要ありませんでしたが、16ビットを超える演算は相当面倒になると思われます。条件分岐がAレジスタ(下位8ビット)でしかできないのも意外に不便です。
    SC/MPでは16ビットの値をメモリとやり取りすることがなかったのでエンディアンの概念がありませんでしたが、SC/MP IIIはリトルエンディアンです。
  2. スタックとサブルーチン
    サブルーチン呼び出しの機能が追加されたのは助かります。同時に長距離ジャンプも追加され、4kBページの制約も解消されています。

INS8070ボード

テーマ:

カテゴリー:

CDP1802ボードの次は何にしよう、と考えていて選んだのがこれです。実は先日eBayを眺めていてついINS8070をポチってしまったので...


いつものようにEMILY Boardで動かします。

私は普段ボードを作るときは少なくともメインのチップを手に入れて(ヘタをすると何年も寝かせて)からなのですが、今回は珍しく到着前に作り始めてしまいました。

作っているうちに着くかなと思っていたのですが... 海外からなので時間がかかっているようです。

ページ