まごころせいじつ堂

浜町庄金 研究開発  マイコンで遊んでばっかりで

ZX81

TIMEX Sinclair 1000(ZX81)の内蔵RAMを16Kにする

 TIMEX Sinclair 1000は2KバイトのRAMを内蔵している。RAMのサイズはワークエリアRAMTOPを読み出すことで確認できる。

PRINT PEEK 16388+256*16389
これで18432(0x4800)と表示されれば2KB、16K RAM PACKを接続していれば32768(0x8000)と表示される。また、このRAMTOPワークエリアに値を書き込むことでBASICのワークエリアを縮小してユーザー向けの機械語の領域を確保できる。マイクロソフト系BASICのCLEAR文に似てますね。

 さてRAMを拡張するにはいくつかの方法がある。エッジコネクタに出ている*RAMCS信号をHにすれば内蔵RAMをdisableにできるので、アドレスデコードを自前で行うことにより任意のメモリ配置ができる。ZX81のメモリマップは以下のとおり。

0x0000-0x1fff ROM 8KB
0x2000-0x3fff 上記ROMのイメージ 8KB
0x4000-0x7fff RAM領域16KB VRAM領域 (*RAMCSはこの領域)
0x8000-0xffff 未使用 32KB

RAM領域16KBに加えROMイメージ領域と未使用の領域を合わせて最大56KBのRAMを設定可能。

作例を探してみる。

Internal 32K RAM for ZX81
32K SRAMを使い、前半を標準の16K RAM領域に、後半を未使用の0x8000~から16KB割り当てる。未使用領域は初期化されないためメモリバックアップが可能。

32k Speichererweiterung Selbstbau
同じく32KB SRAMを使うがROMのイメージ領域8KBと0x8000~から8KBを割り当てている。74HC251 1個によるデコードが巧妙だがこれオープンドレインでない74HC151でないといかんのでは?

https://quix.us/timex/rigter/Thanks@20for@20all@20the@20Memories.html
32K SRAMを2個使い、56KBのRAM領域を実現。バッテリバックアップ付き。

128KB SRAMを使えば1個でフルカバー、GALを使うかなどいろいろ考えたが本体内蔵なら*RAMCSの範囲内、つまり16KBにしたほうがRAMのみで済みシンプルでよい。複雑なのはエッジコネクタでいくらでも外に増設したらよかろうと判断。32KB SRAMを使った改造を行う。

 まず内蔵の2KB SRAMを外す。いつもは外したいICの足に低融点はんだを盛って全体を溶かしながら外していたが、これをすると外したICの足にはんだが糸を引く。そこで通常のはんだを端子ごとに少量追加してはんだ吸い取り器で吸い切り、全部吸い取ったらペンチで足をいじりスルーホールから外していく。こうしてピンセットなどをICと基板の間に差し込んでこじると簡単に外すことができた。
2022-03-31 01.19.17

16KBにするために必要なアドレス線はダイオードD1~D8のカソード側に出ているのでここから結線する。32K SRAM 62256のピン1,23,26を起こしてそれぞれをダイオードD1(A11),D3(A12),D5(A13)のカソードと接続。TIMEX Sinclair 1000の場合はA10が配線済みなのでこのままでよいが、1K RAMのZX81ではジャンパLK1からLK2への切り替えが必要。
2022-03-31 02.43.07

 ということで割と簡単に内蔵16KB化ができた。外付けRAM PACKが不要になったので消費電力も300mA程度に下がるだろう。

ZX81 16K RAM PACKと消費電力

 ZX81は1KB(TIMEX Sinclair 1000は2KB)のRAMを内蔵している。これを拡張する16K RAM PACKはZX81背面のエッジコネクタに接続することで内蔵RAMをdisableし16KBの空間を提供する。
2022-03-28 18.29.46

 2枚の基板がカートリッジ内に収めてある。
2022-03-28 18.28.01

16K DRAMと昇圧回路など。NECのuPD416C-1(アイルランド製)が8個無理やり詰めてある感じ。必要な+12Vと-5Vは電源(DC9V)から生成されている。
2022-03-28 18.28.22

 制御回路。内蔵RAMの~CSにはカスタムチップZX81 ULAの~RAMCS信号が抵抗を経由して接続されている。このRAM の~CSがエッジコネクタに出ており、16K RAM PACK内で直接+5Vに接続することで内蔵RAMをdisableしている。エッジコネクタにはZ80の信号が直接出ているのでそこからDRAMの制御信号を生成。
2022-03-28 18.28.32

 本題。当初16K RAM PACKを接続した状態では起動しなかった。ACアダプタの容量が足らなかったせいで、9V250mA品から9V650mA品に交換したら動いた。
2022-03-28 21.54.12

 16K RAM PACKありでは約500mA。
2022-03-28 22.03.56

  本体のみでは約280mA。
2022-03-28 22.05.13

 ACアダプタの容量からみても妥当な動作。プログラムは乱数を繰り返し表示するものだが消費電力に大きな変動は見られなかった。これはZX81が画面表示のタイミングやCGROMの表示もZ80のソフトウェアでやっているので常に全力で動いているからだと思われる。


TIMEX Sinclair 1000(ZX81)のコンポジットビデオ出力改造

 TIMEX Sinclair 1000はSinclair ZX81のバリエーションでUSA向けの製品らしい。ZX81と比較して内蔵RAMが1K→2Kに増えている。
Timex Sinclair 1000(Wikipedia)

2022-03-28 15.50.43

ZX81 Chip Pin-outsを参照。メインRAMの2114 x2がTMM2016P x1になっている。
TS1000 Hardware Page こちらも参照。
2022-03-28 15.52.57

 さて、標準ではZX81の映像はUHF帯のRF出力だが古いテレビに繋いでもうまく表示できなかった。かすかに左下にカーソルキーらしきものが映ることもあったがRFモジュレータが故障しているのかもしれない。今後のことを考え、コンポジットビデオ信号を取り出すことにする。以下を参考にした。

Tutorial: Modifica video composito su Sinclair ZX81
Sinclair ZX81 液晶ディスプレイに繋いだらよくなかったので出力にダイオードを入れた例。

手持ちの関係でこのような回路にする。トランジスタは2SC373。
2022-03-28 19.49.53

 カスタムIC、ZX81 ULAの裏側にトランジスタ類を配線。
2022-03-28 16.57.47

 トランジスタのエミッタからの出力信号をRFモジュレータ内に引っ張って、電解コンデンサ経由でRCAコネクタに接続。RCAコネクタの中央の配線はあらかじめニッパーで切っておく。
2022-03-28 16.55.02

 縦方向のノイズが気になるけどうまくいきました。
2022-03-28 17.11.14

さらにビデオ出力を改善するための改造もあるようです。
ZX81 Video Conditioning


ZX81PSA Sinclair ZX81用電源アダプタ

 Sinclair ZX81(TIMEX Sinclair 1000)用の電源アダプタを作ってみた。
ZX81の電源は3.5mmプラグで供給され、電源のON/OFFはこのコネクタの抜き差しで行う。
2022-03-23 21.58.00

 3.5mmプラグの先端(Tip)が+9V、根本(Sleeve)がGND。使ったケーブルはモジュラーシンセのパッチケーブルというもので程々短くてよい。

KORG パッチケーブル セット MS-CABLE-YL 5本入り イエロー
B00F94SI5G

 作った基板はDC9V出力の(極性不問)のACアダプターを接続し、3.5mmジャック経由で極性を合わせて出力する。ついでに電源スイッチもつけた。
2022-03-23 21.56.17

だがしかし大失敗をしておるのだ。3.5mmジャックのSleeveとTipを逆にしてしまったため出力の極性が反転。ダイオードD1~D4の極性をすべて逆にすることで回避。
ZX81PSA-ch

ZX81PSA-pcb

 ZX81本体の電源はLM7805で受けており9Vから多少外れても問題ない……と思っていたが16K拡張RAMパックは16kbitのDRAMを採用し、必要な+12V,-5Vをこの9V電源から生成している。なので大きく外すことはできない。手持ちに電子楽器用などの9V出力ACアダプターがある場合に活用できる。

追記:Wikipediaによると7~11V 420mA。

 で、令和最新の解決方法はUSB PD規格の電源アダプターから9V対応のトリガーケーブルを使って改造する、というのがいちばん良いです。




記事検索
プロフィール

hardyboy

カテゴリ別アーカイブ
月別アーカイブ
QRコード
QRコード
  • ライブドアブログ