NEC μPD8080Aのデータシートが見つからないで悩んでいたら@electrelicさんからbitsaversにあるよ、と教えていただきました。その 1977_NEC_Microcomputer_Catalog.pdf を参照しつつこれまでの実験結果からINTEL 8080との非互換部分を整理。(電気的特性は省略)


・命令実行のサイクル数
 これはIC Collection MCS80に詳しい表があります。

・割り込み応答時間が3バイト命令(例:CALL)後でアクティブ
 通常、割り込み発生時にはデータバスにRSTx(1バイト命令)のコードを流し込んで決まったエントリに飛ぶが、3バイトのCALL命令で任意の番地を割り込みエントリにできるということか?

※追記:システムコントローラ8228は割り込み時にCALL命令が入ると続く2サイクルの間も*INTAをアクティブにして、CALL命令で指定した任意のアドレスを割り込みの飛び先にする機能がある。NEC μPD8080Aは8228のサポートなしでこれができるということだろうか。

8080Aの割り込み応答の謎を参照。Intel 8080Aと変わらず

・未定義フラグbit3が常に1。INTEL 8080Aは常に0

・フラグbit5はSUBフラグ。DAA命令で参照。INTEL 8080Aは常に0

NEC μPD8080Aのフラグ
スクリーンショット 2019-02-13 21.00.44

NEC μPD8080AF(INTEL 8080A完全互換)のフラグ
スクリーンショット 2019-02-13 21.01.28


・DAA十進補正命令はSUBフラグ=1で減算後十進補正。SUBフラグは減算命令(SUB/DCR)で1になる。加算命令(ADD/INR)で0クリア。

・DCR命令でACYフラグが立たない場合があり、被減数が00,10,20,30,40,50,60,70,80,90でDCR後DAAで誤動作する。

・XRA/ANA/ORA命令後ACフラグがクリアされずそのまま。
 カタログには"Also,arithmetic flags not affected by logical instructions. "とある


また、さる方面からBCD演算の実装について教えていただきました。https://en.wikipedia.org/wiki/Double_dabble


 減算命令後のDAA補正対応や論理演算命令での算術フラグを操作しないなど命令を追加しないで改善しようとした感じがしますね。




マイクロコンピュータ・ハードウエア基礎技術―M6800系,8080系,Z-80系 (1981年)
B000J7VKF8 1981-03

¥ 2,400 (中古品)