2021-03-26 23:34 — asano
カテゴリー:
Z180の判別と初期化でHD64180RとHD64180Z(Z180)の判別ができましたが、そうなるとZ8S180の判別もしたくなります。これは持っていないので新たに調達しました。
Zilog Z8S18010VSG、10MHz版になります。Z8S180には33MHz版などという高速なものもありますが目的が目的なのでこれで十分です。
デートコードは2007、なんと2020年製ですね。このZ8S180は現行品なので買ったのもいつものeBayやAliExpressではなくて真っ当なルートです。
まずはそのまま載せ替えてみます。
Universal MonitorはHD64180Zと認識しました。これは予想通りです。これでHD64180Zと認識された後Z8S180かどうか判別すればいいことになります。Z80やZ280のルートには影響しないので確認が楽になりますね。
206/ 1A1 : ;; HD64180Z
207/ 1A1 : ID_180Z:
208/ 1A1 : 3E 40 LD A,OMCR_V
209/ 1A3 : ED 39 FE OUT0 (IOBASE+3EH),A
210/ 1A6 : AF XOR A
211/ 1A7 : ED 39 D2 OUT0 (IOBASE+12H),A
212/ 1AA : ED 38 D2 IN0 A,(IOBASE+12H)
213/ 1AD : E6 40 AND 40H
214/ 1AF : 28 07 JR Z,ID_Z8S
215/ 1B1 : 21 52 0A LD HL,IM180Z
216/ 1B4 : 3E 02 LD A,02H
217/ 1B6 : 18 0C JR IDE
218/ 1B8 : ;; Z8S180
219/ 1B8 : ID_Z8S:
220/ 1B8 : 21 5D 0A LD HL,IMZ8S
221/ 1BB : 3E 03 LD A,03H
222/ 1BD : 18 05 JR IDE
HD64180Zと認識された後の部分です。
判別のためにOMCRには仮に07FHを書き込んだので、HD64180Zの場合は本来の値を書き直します(208,209行)。
IOBASE+12HはZ8S180から追加されたASEXT0レジスタのアドレスです。このレジスタはHD64180Zでは常に0FFHが読み出され、Z8S180ではビット1以外は書き込んだ値が読み出されますので、ビット1以外のビットに0が書き込めるか確かめれば良いでしょう。
Z8S180ではリセットでこのレジスタは0に初期化されていますが、念のため0を書き直します(210,211行)。その後で読み直してビット6が0になっているかを確認します(212~214行)。
これもそのうち試してみたいですね。
このバージョンに変えてみたところ正しくZ8S180と判別しました。
これでHD64180系は完了と思っていたのですが、Z8S180にはSL1960なるものもあるらしい。ちょっと面白そうな感じですが今からこんなの手に入るのかなぁ。
コメント
SL1960
SL1960 と刻印された Z8S180 を入手するのは難しいかもしれませんが、
1997年以前に出荷された Z8S180 は初期スペックの物だと思います。
(=CPU Controlレジスタのみ追加されている物)
中日電工さんのサイトによれば SL1960 は 2012年版もあるようですが。
それよか、SL1919 の Errata が修正されてるのか放置されてるのか気になりますね。
Re: SL1960
一瞬また変なバージョンがあるのかと思ってしまいました。
SL1919はSL1960が生産され続けた原因となった新しいものですね。なんで新しいほうが番号若いんだろう?
SL1960が2012年まで作られていたということはそれまで修正されていないということでしょう。15年も放置したものをそれから直しますかねえ。新規に設計される機器はSL1919前提にすると思いますし。
そういえば思い出しましたけど、20年ほど前に仕事で使ったUSBコントローラ、ErrataのところにIsochronous転送が動作しないと書かれていて、しばらくしたらFunction欄から削除されてました。修正を諦めたみたいです。
コメントを追加