モニタのFPU対応

カテゴリー:

NS32081を追加してみたで書いたように、マンデルブロのデバッグ中に必要に迫られてモニタのFPU対応を書き始めたわけですが、一段落したのでここで簡単にまとめておきたいと思います。

トラップとダンプ

最初は当面のデバッグに必要な、トラップが発生したらレジスタを保存し、その内容をダンプする、機能を作りました。

NS32000ファミリはFPUのレジスタを直接メモリに書き込む命令が存在するので保存は簡単です。CPUのレジスタを保存した後にFPUレジスタも保存します。

ダンプも16進で表示するだけなら特に難しいことはありません。NS32081にはステータスのFSRレジスタの他に単精度の浮動小数点数を格納できる32ビットのレジスタがF0~F7の8本あります。これはF0とF1を連結して倍精度の64ビットのL0として使用することもでき、同様にL2, L4, L6と合計4本の64ビットレジスタとしても使用可能です。ダンプ時はF0~F7として表示します。

データブックには応用回路がいっぱい

カテゴリー:

LM3909のところで触れた『初歩のラジオ』の連載「データブックには応用回路がいっぱい」の一覧を作ってみました。

『初歩のラジオ』は持っていた全号を「夢の図書館」に寄贈したため手元には無いのですが、国立国会図書館のデジタルコレクションにありました。国立国会図書館内公開なので行かないと内容は確認できませんが、目次情報は読めるのでそれをもとにまとめています。

NS32081を追加してみた

テーマ:

カテゴリー:

NS32016ボードのコメントにちょっと書いたようにNS32081 FPUを搭載してみました。


空きエリアに24ピンソケットを置いてNS32081D-10を載せます。

このFPUはたったの24ピンしかないのにバスは16ビットあります。接続は簡単でデータシートの通りにNS32016の同名の信号と接続するのみ、CPU空間のデコードを必要とするMC68881などよりシンプルです。あ、クロックだけはNS32201から引っ張ってきます。

MC68881/68882と異なり複数搭載はできません。いや、外部にセレクタ置けば出来なくはないのかな?

ハードウェア的に接続出来たら次はソフトウェアですが......

CE-130Tのマニュアルが出てきた

テーマ:

カテゴリー:

ポケコン用のレベルコンバータCE-130Tのマニュアルが出てきました。


以前PC-1350のところで少し触れましたが、いわゆるRS-232の電圧レベルに変換するユニットです。

中学・高校の頃は電車通学だったこともあり、通学中に電車の中でいじれるポケコンを愛用していました。

PC-1246, PC-1261といった機種を持っていて、これら同士はカセットインターフェイスを介してある程度のやり取りができましたが、パソコンとは無理だったのです。

そんなとき買ったPC-1350はシリアルポートを持っていて接続できるらしい......

LM3909

テーマ:

カテゴリー:

1980年頃の『模型とラジオ』『初歩のラジオ』などの常連だったデバイス、ふと思い出したらまた遊んでみたくなってeBayで買ってしまいました。


National SemiconductorのLM3909 LED Flasher/Oscillatorというものです。

LEDの順方向電圧は低い赤色でも2V程度あり乾電池の1.5Vでは点灯できません。そこでコンデンサを利用して電圧を上げるのが本ICです。懐中電灯などに取り付けて暗いところでも見つけやすくするというのが用途として考えられていたようですね。

なのですが、やたらと応用範囲が多いんですよ、このICは。

データシートにも、トライアックのトリガ、LEDの点滅、矩形波発振器、ブザー、豆電球の点滅などが挙げられています。ネットを探すとアンプにする話なんかも出てきますね。

最近のお買い物(2023/11)

テーマ:

カテゴリー:

ちょっと前の話になりますが、突然背中というか肩のあたりが痛くなりまして、そのあたりの痛みはヤバいことがあるという話を聞いたことがあったので近所の医院に行ってきました。

心電図・レントゲン撮って血液検査もしたのですが......

単なる筋肉痛だったようです。長らく検診をサボっていたのでいろいろ見つかるんじゃないかとも心配していましたが、すぐに治療を要するような問題も無くてとりあえず一安心。

今月もこれといった買い物はあまりないのですが......

NS32016ボード(ソフトウェア編)

カテゴリー:

前回プログラムが動き始めたので、例によってUniversal Monitorの移植を行なっています。似ているプロセッサとしてMC68000をベースに、HEXファイル関係については長いアドレスに対応したH8/300Hが元にしています。

現時点でD(ump), G(o), S(et), L(oad), P(unch)の各コマンドが動作するようになっており、引き続きR(egister)の実装を進めているところです。

ということで気付いたことを書いてみようかと思います。

バイトオーダー

NS32000のバイトオーダーはリトルエンディアンなのですが、命令語に含まれる即値やディスプレースメントなどはビッグエンディアンで格納されます。

面白いのはディスプレースメント(絶対アドレッシングのアドレスも含む)は可変長で、最初のバイトの最上位ビットが"0"なら符号付7ビット、上位2ビットが"10"なら符号付14ビット、"11"なら符号付30ビットになることです。

NS32016ボード(動作確認編)

テーマ:

カテゴリー:

今回はNS32016ボードの組み立て終わってからUniversal Monitorの移植を始めるまでの動作確認編をお送りします。

まずは発振器とTCUのみで動かしてみます。CPU→TCUの信号が数本あるので仮にプルアップしておきます。これでPHI1, PHI1が出ていることを確認します。

リンギングが酷いですが、とりあえずTCUは動作してそうですね。

NS32016ボード(ハードウェア編)

テーマ:

カテゴリー:

約半年ぶりにマイコンボードを作ってみました。


今度のはNS32016のボードです。もちろんEMILY Boardを使っています。

8ビットバスのNS32008を使った方が配線が少し楽になりますが、こちらは入手しずらいのと、NS32016はいくつも持っているからです。

ページ