cyber205の日記: シンクレアZX81 2
日本のパソコン黎明期に、海外から輸入されたパソコンの中で、
特に3万くらいで安価だったマシンに英国、シンクレアのZX81という
Z80パソコンがあるのだが、ひさびさにその話をIRCで聞いたので
自分で検索してみたところ、ニューヨークにあるゼブラシステムズ
というところから、いまだにキットを入手できるらしい。
お値段1台100ドル。2台目から1割引ちょいになるとか。
あっちの国では、古いパソコンもリプレースせずに使い続けるケースが
多いって話が出てはいたが、今でも新品を入手できるってのは凄いぞ。
回路図も掲載されていたが、Z80-CPUに8KBのROMと、2つで1KのRAM、
そしてI/Oまわりを一手に引き受けるカスタムチップでできている。
実にシンプルかつ美しい回路で、当然ながら合計部品点数もひじょうに少ない。
# 回路図のほうはTS1000というZX81の強化Verらしく、メモリが1コ多い。
これでBASICが走ってTVに画面表示まで行えるのだからたいしたものだと思う。
RAMは増設パックを買うことが勧められているけど。
もっとも、昔のパソコン広告を集めたこのPageでは
2+2の計算を実行するのに、通常の低速モードで
約「2秒」かかっていたという記述があるようだ。(遅っ…)
VRAMとか、キャラクタジェネレータのROMが部品として存在してないから、
多分、I/Oカスタムチップの当時の集積度から考えても、
CPUに毎回割込みをかけて画面出力していたと考えるのが妥当かな。
CPU側のDMA制御ピンはディスイネーブルされているし。
CPUのI(Index?)レジスタにキャラクタジェネレータROM(多分BASIC-ROM内部にある)
のアドレスが常時ポイントされているらしい記述や、RAMを拡張しないと、
高解像度モードのサポートが無かったことを考えると、ほぼ確定であろう。
きっと、CPUがひぃひぃ言いながら画面表示データを毎回カスタムチップに
送り届けていたに違いない。
と、そういう話をしていたら、「日本には日本で秋月のキットがあるじゃないか」
という話が出たので、ZX81互換キットを売っているのかと思ったら、
「秋月のAKI-80系を使ってSHARPのMZ-80相当まで拡張することは可能でしょ」というお話。
ふ~む、そういう話なら無くは無いだろうけどねぇ。
いわゆる自作パソコンだが、
BASIC-ROMを移植するのだって、昔は自分でやってたもんだし、
TinyBASICならコード部分は4Kとかで実装できてたような気がする。
もっとも、実数を扱えるのはMicrosoftの高級品だけだったかな。
自作天文愛好家はせっせと反射鏡を磨いたりして望遠鏡作りをする所から始め、
最終形態は自分の観測ドームを作ることなのだそうだが、
8ビット自作パソコンマニアの場合、CPUボードを組むところから始めて
いろいろバスにつなぐカードを揃え、BASICを移植したりしながら腕を磨き、
最終形態になると8インチのディスクドライブを接続して、
ディスク・オペレーティングシステムことCP/MのBIOSを移植するのが目標であったように思う。
# 当時、5インチミニフロッピーディスクはまだ仕様が固まってなくて使えなかった。
CP/Mは、MicrosoftのBASICを除けば、8080/Z80を積んだ
マイクロコンピュータにおいて、当時の標準OSといって良い存在だった。
CP/Mは3つのブロックから成るシングルタスクのOSで、
コマンドプロセッサ(UNIXで言うところのシェル)であるCCP、
ディスクの高レベル制御を行うBDOS(カーネル?)、
そして機種依存部分を全部収めたBIOS(デバイスドライバ)という
組合せになっている。
ちなみに、必ず常駐する必要があるのはBIOSだけで、あとの部分は
アプリケーション(コマンド)が上書きしてしまっても構わない。
アプリケーションが終了した後でまたシステム全体を読み直してくれるため、
ぎりぎりまでメモリを有効に使える仕組みになっている。
機種依存部分はコンパクトに作られたBIOS部分に集中していたので、
これさえ移植すれば、豊富なCP/Mのアプリケーション(コマンド)を自由に利用できた。
今では開発言語といっしょにシステムのソースコードが公開されているのだね。
でも今からこれをやっても、結局「なつかしいねぇ」ってことになってしまうか。
これから新規でZ80マイコンを立ち上げるとしたら、OSは何がいいかな。
マルチタスク系OSならTRON系の、Ryuz Laboratoryで開発されているHOS-80
を載せてロボ制御とか、そっちに走ったほうがいいのだろうか(w
でも、セルフでアプリを開発できないのはちょっと寂しいね。
Iレジスタ (スコア:1)
I (Interrupt Vector)レジスタは Mode 2 割り込みを使うときのベクトルテーブルの上位8ビット、です。(下位8ビットはデバイスから供給)
# mode2 割り込みは使っていないことが判明
Re:Iレジスタ (スコア:1)
どもです。