F8 I/Oボード(その1: F8のメモリアクセス)

テーマ:

カテゴリー:

SBCF8では8251はメモリマップされています。でもF8にはIN/OUT命令が存在しますので、何とかI/O空間にマップできないかやってみようと思います。

これF8(F3850)の特殊性を知らないと難しさがわからないと思うので簡単に書いておきます。

まずF3850にはアドレスバスの出力がありません。他の信号とマルチプレクスされているといったレベルではなくありません。

アドレスレジスタも(プログラムカウンタすら)ありません。

プログラムカウンタ(以下PC0)無しでどうやって動くのかというと、PC0はメモリ側が持つことになっています。

MN1613のステップ実行(その5)

テーマ:

カテゴリー:

これまで不明だったリセット解除直後のX'0000'番地からのI/Oリード、X'0000'以外の値を返したら何が起きるか?ということでその3で予告したIORサイクルでデータバスに値を送り込む回路を追加しました。


空だったソケットにはSN74LS541Nを載せました。

下に並ぶショートピンの群れは値の設定用、8ビットのところで区切りがわかるように空けておきます。写真の状態でX'F010'を設定しています。

ついにデジタルオシロを

テーマ:

カテゴリー:

いままでアナログのや工夫で何とかやってきましたが、ついにデジタルのオシロスコープを買ってしまいました。


RigolのMSO1074Zです。価格は今までのOS-5100Aとほぼ同等ですね。AliExpressあたりで輸入すればもう少し安くなりますが、劇的に異なるわけではないので安心をとって国内調達です。

SBCV20

テーマ:

カテゴリー:

電脳伝説@vintagechipsさんの最新作SBCV20ルーズキット、発売と同時に注文したところ翌日に到着したので早速組んでみました。


今回は事前に必要な部品は確保していたので素直に組めました。とはいっても新規に調達が必要だったのは19.6608MHzのクリスタルのみです。

組み方としてはV20用のほか8088用にもできますが、8088は8088ボードで動かせているので今回はV20用で組むことにします。

MN1613のステップ実行(その3)

テーマ:

カテゴリー:

(その2)から1年以上経ってしまいましたが、ちょっと動きがあったので続きを書きます。

前に買ったのとは異なるショップでMN1613を発見、在庫も豊富なようだったので予備ということでもう一つ買ってしまいました。


さすがにこの特徴あるパッケージ、リマーク品の可能性はほぼ無いと思いますが、動作確認はしておきたいところです。

Z8000 CALR命令

カテゴリー:

前回予告したように今回はCALR命令について書いてみようと思います。

CALR命令は相対サブルーチンコール命令で、JPに対してJRがあるようにCALLに対してあるのがこれです。同様に相対番地でメモリアクセスするLDR命令や、アドレスを取得するLDAR命令もあります。

Z80の位置独立なコードを書けない(著しく困難)問題に対処しています。

SBCZ8002(ソフトウェア編)

カテゴリー:

前回ハードウェアが無事に動作するようになったのでUniversal Monitorの移植してみました。

年末から初期化部分などを細々と書いていましたが、本格的に書き始めたのは年が明けてボードが動き始めてからです。それでも3日にはI(n)/O(ut), R(egister)コマンドまで動作しましたからこれまでの最速記録ですね。確かに慣れてきたという側面はありますが、Z8000がアセンブリ言語で書きやすいプロセッサだというのは間違いないでしょう。

今回はその過程で気になった点についていくつか書いてみたいと思います。

リセットの怪

シャープのマニュアルによるとZ8002のリセット時の動作について以下のように書かれています。

Z8002では,最初のサイクルで,0002H番地からFCWを読み出し,0004HH番地からPCを読み出し,つぎの最初の命令フェッチ・サイクルからプログラムがスタートする。

ページ