まごころせいじつ堂

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

レトロPC

CBM3016(PET2001N) DRAM調査

 PET2001Nは回路図にはDYNAMIC PETと書いてあってDRAMを使用してメモリ空間を32KB使用できる。

 CBM3016では8Kx1bitのDRAMを8個、これを2バンク分で16個。奥がUI2~UI9で*CAS0に、手前がUJ2~UJ9で*CAS1に接続されている。CBM3032ではこれが16Kx1bitのDRAMになる。
8K品と16K品のDRAMの混在はできない。
2021-03-24 22.50.07

 DRAMにアドレスを与える部分。RAM TYPEに8K-1/8K-0とあるのは何か?
PET2001N-RAMTYPE


この部分はリフレッシュアドレスと通常アクセスのアドレスを二分割で与えているので表にしてみた。
PET2001-DRAMADDR

 DRAMのA0の扱いが異なる。16Kx1 DRAMはバスアドレス13、8Kx1 DRAMは0または1。リフレッシュアドレスは同じだが、8Kx1品でも桁数が多い分には構わない。
 8Kx1 DRAMのデータシートを調べると、A0に"L"を与えるものと"H"を与えるものがサフィックスによって区別されている。CBM3016に搭載されているMK4115-41のサフィックスはスピードグレードのような特性表示ではなかった。
 ピンはコンパチだがMN5298についてはA0ではなくA5が"L"または"H"の設定。これではそのままMK4115-41と差し替えて使うことはできない。
 1992年のメモリIC規格表を見ると、8Kx1 DRAMはIntel,Motorola,NS,TIしか作っていない。これが次世代の16x1 DRAMになると多数のメーカーが製造している。




PCG6500内部調査

 驚く無かれ、HAL研究所のPET2001用PCG6500ですよ。

2021-03-25 22.03.10

 これは64~127に位置するキャラクタを任意の8x8ドットに置き換えて表示するものでゲームで重宝された。ポートCB2からの出力をアンプで増幅して内蔵スピーカーで音を出すことができる。

 表示キャラクタの入れ替えはPET2001本体のCGROMを外し、PCG6500からのフラットケーブルを本体に接続、外したCGROMはPCG6500内のソケットに装着する。

 ピン曲がりがあったので修正し、保護のため丸ピンICソケットを付けた。PCG6500の電源もここからもらっている。
2021-03-25 17.55.30

2021-03-25 20.54.30

 キャラクタの書き込み、サウンド出力はUserport経由で行う。これは一部が断線している。
2021-03-25 21.59.50


C:PA0 - CN2-10
D:PA1 - CN2-9
E:PA2 - CN2-8
F:PA3 - CN2-7
H:PA4 - CN2-6
J:PA5 - CN2-5
K:PA6 - CN2-4
L:PA7 - CN2-3
M:CB2 - CN2-1

なんとGND接続がない。

  本体基板。引き出してあるビニール線は改造の跡。
2021-03-25 18.41.07

 ICの型番が読みやすいよう反対から。
2021-03-25 18.42.01

主要部品はD2101AL-4 x4(256x4 SRAM) → 512バイト64キャラクタ分、
M53357P(SN74157) x4
74LS75 x3 12bit分のD-FF
LS42 書き込み時のコマンドPA7:5デコード
LS123 書き込みパルス生成
LS04,LS00
サウンド部分はLM386によるアンプ

 PCG6500のマニュアルより。書き込みのためのソースコードあり。

 おそらくDATA5-8はADR5-8の誤記。このタイミングでPCG6500内蔵のRAMにデータを書き込む。

PA7:5=110 / PA3:0 データ上位4bit
PA7:5 =100 / PA3:0 データ下位4bit
PA7:5 = 010 / PA3:0 アドレス8:5
PA7:5 = 001 / PA4:0 アドレス4:0
スクリーンショット 2021-03-25 22.09.16

 さてこのPCG6500は改造の跡があった。IC8:LS00のpin13(入力)とIC7(PET本体からのCGROM)のpin3(A5)間がカットされ、IC8:LS00 pin13入力は3PトグルスイッチでA5/GNDが切り替えられるようになっていた。
2021-03-25 21.21.14

 さらにUserport PA7,PA6からLS123にいく線もカットされている。これはデータを書き込むコマンドのはず。
2021-03-25 22.00.41

 裏面をみるとかなり改造されていた。
2021-03-25 21.57.52

 拡大。
2021-03-25 21.58.09

 ユーザーによる改造だろうか?当時の雑誌記事?どのような意図で改造されているのかよくわからないのでいったんここまで。


CBM3016(PET2001N)の修理 - メインボードの故障箇所

前回のつづき。

電源を投入すると、CRTが温まっていれば一瞬ランダムパターンが表示されて消える。
CRT自体も輝度調整のVRが接触不良だがちょっと後回しで、動いているPET2001Nの筐体にメインボードを接続して調査。

調査結果:
(1) CPU単体は正常
(2) VRAMは片側が故障
(3) ROMは正常
(4) RAMは故障
2021-03-21 11.49.54

 ROM/RAM replacement boardを使ってメインボード上のROM/RAMをバイパスし動作確認。

2021-03-23 21.57.10

 BASICは起動するがVRAMが化けている。文字を入力すると離れた所に化けた文字が出てくる。毎回同じ表示なのでなんらかの法則性がある。
 文字入力で64キャラクタ離れた所に化けた文字が表示される。画面の位置によっては64文字先だったり64文字前だったり。これはVRAMのアドレスSA6がおかしそう。
 文字化けのパターンをさぐる。0~9で0、AAAと入力すれば@@@、P入力でP。PETSCIIコードで確認すると上位4bitが化けている。下位bitが書き換えられていないか確認する。64文字先をX(0101_1000)で埋めた後、A(0100_0001)を書き込むとH(0100_1000)が表示される。これで上位4bitだけ書き換わっていることがわかった。

 この UF7 2114 が故障している可能性がある。UF8 2114にも同じアドレスが与えられ同じタイミングで書き込まれているがUF7のみSA6を0/1両方の状態で受け取って複数の箇所に書き込まれている。
 ただ直付けされているので外してソケット化しなければならない。私のPET2001N(CBM3032)はソケットだった。
2021-03-23 22.42.16

 さてROM/RAM replacement boardでメインボード上のROMやRAMを有効にしながら動作確認。まずROMはOKだった。
2021-03-24 22.32.48

 RAMは有効にするとBASICは起動しない。前半16KBをROM/RAM replacement boardに、後半16KBをメインボード(メインボード上は空)にするとRAM 16KBで起動する。
2021-03-24 22.34.09

 メインボード上のRAMを有効にしてPETTESTERを動作させると"B"表示、異常がある。

 このCBM3016は8Kx1bitのDRAM(MK4115P-4)が16個で直付け。CBM3032は16Kx1bit DRAM(4116)が16個。
2021-03-24 22.50.07

 もし下位8KバイトのみにしたければジャンパーのIをカットしLを接続すればよいが、下位8Kバイトに対応する8個のDRAMが生きていることが前提。
 ソケット化して入れ替えてもMK4115P-4が入手困難なので元通りにするのは難しいので、入手しやすい16Kx1 DRAMに交換すれば同等になる。ジャンパーは変更が必要。

CBM3032  8KRAMx16 xxCxxF HIJxxxxPxS / BA15 32K
CBM3016 16KRAMx16 AxxxEx xIJxxMxPxS / BA15,BA14 16K

A,C,B RAMTYPE 8K-1 16K-1 8K-0
E,F ROW SELECT 8K/16K
H,I,J,L,M RAMデコード
N,P I/Oセレクト BAS14/*SEL8
R,S I/Oセレクト *SEL8 *SELE

メモ:4116、I2~I9(奥)は*CAS0、J2~J9(手前)は*CAS1




CBM3016(PET2001N)の修理 - キーボード

 CBM3016のキーボード修理。今回は電気の話はありません。

2021-03-22 17.18.54

 キーの動きが渋く、一部は押されたままでなかなか戻ってこない。本体から外してまず清掃。キーの中央はシリンダーみたいになっておりその外周にバネがついているのでここにホコリが絡むと動きが渋くなる。エアダスターでホコリを飛ばす。これだけで引っかかりはなくなり打鍵感はよくなった。

 リファレンスとなる動いているPET2001Nにこのキーボードを接続し動作確認。アルファベット部分は問題なく入力できるが一部のキーが押しても文字が入力されない、または時々しか入力されない状態。特定のラインだけ効かなくなるわけではないのでキーそれぞれが個別に接触不良と思われる。

2021-03-22 17.46.23

 キーボードを裏返して止めてあるマイナスネジを外す。基板部分とキー底面にある導電性の物質が接触してスイッチがONになる仕組みなので、基板部分を古い歯ブラシを使って清掃。
 基板をひっくり返していないのはSHIFT LOCKスイッチのみオルタネートキー(ON/OFFの状態を持つ)でこれだけ個別の部品なので基板の端子部分に穴を開けて配線を出してあるため。作業性を考えるといったん配線を切断してからあとではんだ付けし直したほうがよい。

2021-03-22 18.21.44

 これだけでもだいぶ改善したのだがまだ接触が悪そうなキーがある。
 各キーのシリンダーの中央にはラバードームに導電性の物質を付けたものが挿入してある。メンブレンキーボードのような仕組みだが一枚シートにはなっていない。そこでよく利いているキーのラバードームと接触が悪いキーのものと入れ替える。基板と導電性の物質が当たるポイントが変わってくるので改善する可能性がある。思い通りうまくいった。

2021-03-22 18.35.06


 特に反応が悪かったのは右上にある大括弧[ ] で、これらはBASICでも使わない記号なので押される頻度が少なく、端子が酸化しやすかったのだろう。

2021-03-22 18.18.00

 元通りに戻しても引っかかりはなく問題なし。もしキーが引っかかるようだったらまっすぐに引き抜いてシリンダー状の側面部分に溶剤不使用のシリコンスプレーを綿棒で塗布するつもりだった。
 接触不良だからといっていきなり接点復活剤やスプレー類を直接かけるとホコリが固着してますますきかなくなる可能性があるのでまずエアダスターや綿棒などで清掃を!

追記:The 8-bit Guyでは更に深刻な故障のキーボード修理をしている





MZ-80C基板の電解コンデンサ交換

ぼちぼち水没基板の修理。電解コンデンサはどうもやばかろうと思うので交換することにした。

まず基板上の電解コンデンサ・タンタルコンデンサを調査。

C5,C23  1uF16V電解
C14  10uF16V電解
C18  220uF16V電解
C19,C21  22uF16V電解
C26,C32  100uF16V電解
C36,C37,C38  100uF25V電解
C39  33uF10Vタンタル
C41  10uF35Vタンタル

ついでにVRも交換することにする。
VR  68Kohm

方針:現在の電解コンデンサは昔のものより小型なので同容量で電圧は高くても良い、小容量(1uF)は積層セラミックで代替する。


(1)IC18(8253)近辺 IC13はタイマIC555でカーソルキーのブリンク制御を行っている。
2021-03-18 22.41.26

C5 1uF16V電解→1uF50V積層セラミックに交換。
VR 68Kohm→50Kohm、IC18にICソケット実装。
2021-03-18 23.22.48


(2) IC5(8255)近辺
2021-03-18 22.40.47

C14 10uF16V電解→10uF16V電解
C18 220uF16V電解→220uF35V電解
C19 22uF16V電解→22uF50V電解
C21 22uF16V電解→22uF50V電解
C23 1uF16V電解→1uF50V積層セラミック
2021-03-19 00.19.44

C18 220uF16V電解を外して裏返したところ。割れかかっている。
2021-03-18 23.24.26


(3)電源コネクタ近辺
2021-03-18 22.41.38

C36 100uF25V電解→100uF35V電解
C37 100uF25V電解→100uF35V電解
C38 100uF25V電解→(なし) -5V系を使わない予定のため
2021-03-19 00.54.21


(4)DRAM近辺
2021-03-18 22.41.51

C26 100uF16V電解→100uF35V電解
C32 100uF16V電解→100uF35V電解
C39 10uF35Vタンタル→(なし) -5V系を使わない予定のため
C41 33uF10Vタンタル→33uF25V電解 DRAMなしにする予定なので単なる平滑用
2021-03-19 00.18.45

 まだ泥が残っているので部品を外してはアルコールを付けた綿棒で拭いている。まだ先は長い。

 外した部品。ハンダ吸い取り器から出てくるハンダくずは作業中小さいビニール袋に入れている。
2021-03-19 00.20.34

 今回の作業ではエンジニアのハンダ吸い取り器SS-02を使用した。樹脂製のものにくらべて短いので片手で操作でき作業性がよい。

YIS-303/CX5用ビデオ接続アダプタその2

 以前つくったYIS-303用のビデオ接続アダプタ、MIDIケーブルを流用するのだが全結線していないケーブルも存在するのでもうちょっと簡単にならんかと検討。

 DIN5ピンのケーブルはコンポーネントステレオでカセットデッキをアンプと繋ぐときに使われたりしていた。RCAピンプラグだと録音用と再生用の2組が必要だったのが一本で済む。これを調べる。

DIN connector(Wikipedia)

amazonでDIN→RCAピンジャックに変換するケーブルがあったので入手して調べてみた。


このような結線だった。
DIN5P

YISでは1番ピンが+5Vなのでこれを流用するのは無理。

ではDIN5Pのプラグとミニジャックを組み合わせ、3.5mmミニプラグ→RCA変換ケーブルで接続することに。

 ピンプラグの先端が白(L)、真ん中が赤(R)、根本がGNDとなっている。
2021-03-14 16.29.26

部品は秋月電子で入手。

ぎゃんして
2021-03-14 16.36.21

ぎゃんして
2021-03-14 17.03.02

こぎゃんする
2021-03-14 17.07.13


 おしまい

低温はんだとMZ-80CのICソケットはずし

 鉛フリー低温やに入りはんだエコソルダーNEOを入手した。定価は約4000円だがモノタロウでクーポンが使える日に購入すると2割引ぐらいになる。今まで基板からDIP部品を外すのにサンハヤトの表面実装部品取り外しキットを使っていたがそろそろ付属のハンダが切れるしもうすこし安くできんかなと思って。これは融点が200℃。
2020-12-16 18.28.14

 見づらいけどカプトンテープで取り外すICソケットのピン周辺を保護。
IMGP3690

 MZ-80CのICソケットは最近の細い桟が付いたものと違って樹脂の部分が多く解体しづらい。通常なら中央部分にある桟をニッパーで切ってしまえばピンの列を片方づつ外せるのだが、このように端が脆く砕けるだけ。はんだ面に低温はんだを付けて通常のハンダゴテ(350℃)で充分に温めソケットの左右からペンチでテコの原理で持ち上げてはずす。
IMGP3691

 以前紹介したようにこの基板は水没品なのでICソケットを外したあとがこうなっている。あとで洗浄。
IMGP3692

 24ピンのICソケットは全部外したが残りの40Pソケットx2は猫が邪魔しにきたので中断。使っている小さなペンチは百円ショップで買ったものだが妙に使い勝手が良い。
IMGP3693


 続きはぼちぼちやります。

水没!MZ-80C

 オークションで入手したMZ-80C、通電確認済ということだったのだが開けてみてびっくり。

2020-08-05 16.16.35

 ただのホコリとは思えないので基板を外してみると……これは水没した跡だ。
2020-08-10 16.28.39

 電源ユニット内もこのとおり。通電してみたがなんの出力もない。
2020-08-10 15.33.49

 しかし何をもって通電確認したというのか。煙が出なくてブレーカーも落ちなかったというだけなら中身がカラでも通電ということになる。幸い基板は存在した。
2020-08-10 16.37.34

 ソケットにささった8255の端子に赤錆。
2020-08-10 16.38.23

 水洗いしてみた。
2020-08-12 10.57.38

 24個ある16Kx1bit DRAMはこのとおり。
IMGP3616

 8253はセラミックパッケージだった。
2020-08-10 17.04.36

 モニターROM、CG-ROMやZ80などソケットにささっていた部品の足は脆くなっている。
IMGP3619

 CRT、キーボード、カセットについては未確認だがそこまで水位は上がってなかった模様。おそらく重いので押入れかなんかに床置きしててこのように水没したんじゃないかな。

修理方針:
・電源 危険なので中身を12V/5Vの電源に入れ替える
・ICソケット DRAMを除き全交換
・VR 浸水して故障していないか確認
・電解コンデンサ 全交換
・メモリはSRAM置き換えを検討
・キーボードコネクタ 浸水で酸化しコネクタが固着していた。錆落とし
・CG-ROM,Monitor-ROM メッキ線などで端子を引き出してみる 別ROMに焼き直す



 ↓使ってみたいですね




Mini PETとデータセット

 まず最初に。MiniPETだがv1.42はUserPortが入れ替わっているらしい。→Mini PET Update

ではMiniPETのカセットポートについて。
Casette Port(C64 Wiki)
 このカードエッジコネクタによる接続はPET2001の後、VIC-20(VIC-1001)やCommdore64まで使われていた。読み書きはデジタルの入出力が直結されている。

 MiniPETはキーボード付のKIT Aと元々の筐体に内蔵するためのKIT Bがある。KIT Bは電源変換の基板と内蔵用カセットに接続するための基板が付属しキーボードは付いていない。スタンドアロンでも使いたかったのでKIT Aを購入したのだが手持ちの初代PET2001のケースに内蔵したいので変換基板を作ってみた。
 4mmピッチの片面カードエッジコネクタ6Pで2ピンと3ピンの間には溝がある。サンハヤトのUK-10P-67をカットし、溝はヤスリで加工した。
IMGP3606

 こんな感じ。上から
PIN1 GND
PIN2 +5V
-- -- --
PIN3 MOTOR
PIN4 READ
PIN5 WRITE
PIN6 SENSE
IMGP3607

 回路図。
スクリーンショット 2020-07-21 01.10.09

 6本のワイヤーで引き出せるようにはんだ付け。
IMGP3609

 +5VとMOTORについてパイロットランプをつけてみた。
IMGP3608

 MiniPET本体のカードエッジコネクタをカセット#1にするか#2にするか選択できるが、その残ったほうのピンに接続する。
IMGP3610

 +5Vは電源が入っていれば常に供給される。MOTORはデータセットのモーターが動くときにONになる。LOADやSAVE中はMOTORがONになり、終了したらOFFになる。REW/FF中は常にONになる。
IMGP3611

さて元のPET2001の回路図を読んだりと色々調べていたらモーター駆動の電圧は9Vではなく約6VであることがわかったのでACアダプタの電圧を変えながら観測してみる。

ACアダプタ  DC9V / PLAY時 5.93V / REW後テープ停止 5.86V
ACアダプタ DC12V / PLAY時 6.01V / REW後テープ停止 5.93V

ということでMiniPETはDC12VのACアダプタを使っても問題なさそう。



Mini PET v1.42キット

MINI PET(TFW8b.com)
Mini PET Options(tynemouth software)

 たのしみにしてたキットが届きましたよ。Mini PET v1.42。PET2001N相当のパソコン組み立てキット。KIT Aはキーボード基板付きで単体で動作。KIT BはPET2001のマザーボード置き替え用でデータセット(カセットレコーダ)と電源接続用の基板が別に付属している。
動作させるには9VのACアダプタが必要。ビデオ出力があるので画面表示はご家庭のテレビでできる。
2020-07-10 18.36.35

 サイズは純正の四分の一くらい。
2020-07-10 18.40.46

 組み立ては簡単。注意点をいくつか。
以下の左上の抵抗は1Kのシルクが塗りつぶされている。実際は470Ω。
2020-07-11 00.08.12

 6.8Vツェナーダイオードと小信号ダイオードの区別に注意。
2020-07-11 00.09.12

 あと、キーボード用のコネクタはオス側をマザーボード側にはんだ付け。こうしないと実物のキーボードが挿せない。

 PET2001内蔵CRTに接続する端子はオプションだけどこのようにコネクタに挿した状態ではんだ付けするとうまくいく。
2020-07-11 02.07.51

 さて集中して3時間くらいで完成しましたよ。
2020-07-11 02.24.17

 MINI PET BASICが起動。OK。
2020-07-11 02.46.17

 キーボード部分も組み立て。
2020-07-11 19.55.57

 自己診断テストも通りました。
2020-07-11 22.14.08

 Mini PETは現在入手できる半導体を使って主要LSI以外TTLだったPET2001を再現している。MPU/PIA/VIAはWDCのチップ、IEEE-488のドライバはLS07で構成、ビデオ関連の回路はATMega164(マイコン)で実現しクロックもここから供給している。
 オリジナルのPET2001のVRAMは2114 x2個で1Kバイト、ビデオタイミングの回路ではサイクルスチールで読み出して表示している。Mini PETではVRAMを1KバイトのDualport RAMで構成し、MPU側からの読み書きに影響を与えずにATMega164で読み出してビデオ出力を行っている。PET2001のモデルによってはビデオ信号と水平/垂直信号の極性が異なり、また垂直同期周波数も15KHz/20KHzと異なるらしい。加えてMini PETのビデオ出力はNTSC/PALに対応しているので、これらの違いを吸収するためにATMega164のソフトウェアによるビデオ出力にしているのだろう。

 ACアダプタはDC9V品が指定されている。これはデータセット(カセットレコーダ)のモーター駆動として使われている。PET2001の回路をみると安定化されていない9V接続となっている。データセットを使うのであれば9V品にしておくのが無難。
カセットの動作は以前保存しておいたプログラムで確認。セーブもOK。
2020-07-11 22.15.55

 あと、気になったことをテストしてみた。これは画面にキャラクタを繰り返し表示するプログラム。
IMGP3604

 VRAMの開始番地を変えながらテスト。VRAMのイメージは$8000~から1KBごとに$8400~ $8800~ $8C00~ とあったので初代PET2001相当。

 このような表示でCGROMの設定用DIPスイッチを切り替えてみる。日本語のキャラクタセットに切り替えると\が¥に変化する。ATMega164でリセット後にCGROMを一回読み込んだまま表示しているのかと思ったら意外にも毎回読み込んで表示しているようだ。
IMGP3605

 さて、あとはPET2001の筐体に組み込んでみますかね。


FM77AV用Z80Hカード韋駄天の回路図訂正と補足と蛇足

 I/O 1987年10月号、1987年11月号および6809活用研究(工学社)に掲載された韋駄天CP/M Z80Hカード。回路図に誤りがあってその後訂正も掲載されず、紙の資料も紛失してしまったので実物から正しい回路図を起こした。

 部品面
IMGP3592

 はんだ面
IMGP3593

 レイアウト
IDATEN-Z80H-LAYOUT

 回路図
IDATEN-Z80H-SCH

 回路図は実物からトレースしてそのまま起こした。
・SRAM(U2,U3)に対する*WEの論理が訂正箇所です。
・U12のLS02は実質不要で、U10のLS04の空きで代替可能。

 FM77AVの拡張RAMスロット図(FM-7シリーズ テクニカルノウハウ 第15章ハードウェア回路図)
IMGP3594

補足:
・6809とZ80Hのやり取りはFM77AV側の$FD64番地と$20000-$2FFFFの拡張RAM領域で行う。
・FM77AVのリセット後、Z80HはU4A(LS74)によりZ80RESET信号が有効になりリセットがかかったままの状態になる。この解除と再リセットは6809側で制御する。Z80にリセットがかかっている間はZ80のバスがハイインピーダンス状態のままであることを利用している。
・Z80Hから6809への要求はZ80側のI/O空間ライト動作でSETATTN信号がU4B(LS74)をセットする。6809は$FD64番地のbit0をポーリングしてZ80Hの要求を確認する。Z80Hがバス開放状態(Z80RESETまたはBUSACK)になればZ80BUSY信号が有効になりU4B(LS74)をクリアし要求を取り下げる。
・6809からZ80Hへのバス開放要求は$FD64のbit7書き込みで制御する。
・6809から$FD64のbit6,bit5に"1"書き込みでZ80HへNMI/INTを発生させる。
・バス開放要求/割り込み要求はU5(LS175)に保持される。Z80HからのI/O空間アクセス、またはZ80RESETで解除される。
・6809からZ80Hのバス開放状態を確認するには$FD64のbit7を読みZ80BUSYの信号をみる。
・MEMSEL信号は6809から$20000-$2FFFFのRAMをアクセスするときに有効になる。U14(LS138)でデコードして生成。Z80BUSY信号もデコードに入っているのでZ80H動作中は6809から読み書きできない。
・U2,U3(HM62256)に対するRAMOEはMEMSELまたは!Z80BUSYによるZ80動作中に有効。
・RAMWEは6809側の書き込み(MEMSEL&RWB)またはZ80Hのメモリライト(WR&MREQ)で有効。
・Y1(X'tal) 10MHzは実力で動作した。本来は8MHz。

蛇足:
・MEMSELを生成しているU14(LS138)にRWBも突っ込んでRAMWE用の信号を作ってもよかったかな?いや無理か。
・SRAM、OEがenableのままでWEがenableになってもいいんだ…(OE Low Fixed) HM62256 Datasheet
・当時Z80Hと32KバイトのSRAMは若松通商で買った最先端テクノロジーだ。今なら20MHz動作を狙えるか。
・master/slaveで言えばリセットが掛けられるZ80は6809に生殺与奪権を握られているけどCP/M動作中はZ80の要求を6809側ですべてこなしてるのよね。
・記事は3回連載の予定だったが強化版CP/Mが完成せず6809活用研究へと繰り越した。
・移植元となったX1用ランゲージマスター(CP/M)。ベスト電器に注文して届いたら店員さんが「私もX1使ってるんですよ」と嬉しそうに話しかけてくれたが「すみませんFMユーザーです…」申し訳なかった。
・初期の動作テストには@minemaz氏に協力してもらった。私Z80書けなかったので。
・Oh!FM誌に似たようなシステムが掲載されたのでたいへん焦った。同じ時期に同じようなアイデアはあるんだね。
・記事の反響というか感想すらまったくなかったのでちょっとさみしかった。

追記:
・128Kx8のSRAMに交換することを考える。TC551001AS6C1008もライト時*WEがアサートされる時は*OEはどちらの状態でもよい。



ザイログZ80伝説
鈴木哲哉
ラトルズ
2020-11-25



PASOPIA(PA7002)のマスクROM TMM2364Pのタイミング

 PASOPIA(PA7012)の分解写真と予防保守の続き。内蔵のOA-BASICは$0000-$7FFFに位置し、8KバイトのROM 4個で構成されている。これを追っていくと写真左上のLS139でデコードされ、右下-右上-左下-左上の順に$0000~、$2000~、$4000~、$6000~に対応する。
PASOPIA-INTERNAL-ROM-MARK

 最初のROMは普通のUV-PROMで残りはマスクROM。出荷直前にパッチでも当てる必要があったのだろうか。これらを前回作ったROMリーダで読んでみる。するとマスクROMが読めない。正確には常に同じ値になってしまう。
/CEを変化させてないのがいけないのかなと /CE="H"、アドレス設定、/CE="L"、データ読み出し の順で
やってみたら読み出せた。これはどういうことかな?
TMM2364Pのデータシートを見てみるとVpp(1)="H"、CS1(27)="H"、CS2(26)="H"、/OE(22)="L"にする。それぞれ基板上ではそのように接続されていた。
(CS1/CS2のenableはプログラマブルらしいがここでは"H"と判断できる)
となると/CEの挙動が通常のPROMとは異なることになる。

 データシートをみると/CEの立ち下がりでアドレスをラッチして後はOutput Enableに出力を任せるような動作だった。
スクリーンショット 2020-06-08 16.41.58
 となるとTMM2364PがROMライタTL866CSで読めなかった理由も推測できる。Device IDを厳密に見て弾いたのか、あるいはTL866CSが/CEを変化させないでenableにしたまま、というのが考えられる。

 また、はまってしまった。

ROMリーダのスケッチもアップデートしときました:


PASOPIA/PASOPIA7のROMPAC1

※追記 表を改版しました

 PASOPIAはROMPAC1というカートリッジを使えば起動時に実行するROMを内蔵のものと差し替えることができる。RAMは64KBの全空間にあり、ROMは0x0000〜0x7FFF。メモリ空間に対する書き込みはRAMに対して行われるのでROMイメージをコピーした後にROMをdisableしてすべてRAM上で動かすことも可能。OA-BASICやMINI-PASCALのカートリッジが存在する。

 これはT-BASIC V1.1のROMPAC1カートリッジの中身。サイズは秋月電子のB基板程度。
IMGP3510

IMGP3509

 さて、PASOPIA7もROMPAC1カートリッジのスロットを持っているが、このT-BASIC V1.1カートリッジを挿しても動作しない。そこでPASOPIA/PASOPIA7の回路図とPASOPIA7テクニカルマニュアルからROMPAC1端子の比較表を起こしてみた。

ROMPAC1-pinassign

 PASOPIA7では一部の制御線が変更/追加になっている。pin11で本体ROMをdisableできるのは共通。pin20は内蔵RAMと、PASOPIA7で追加されたBIOSROMをdisableする信号。おそらくこの端子がT-BASICのROMPAC1ではGNDなので内蔵RAMまでdisableになって、PASOPIAとの非互換部分がどうこう以前に動かない気がする。
 このMEMINH端子はRAMをdisableするためにDRAMの*CAS信号を抑止している。*RASは出るのでリフレッシュは行われる。DRAMの内容を保存したままdisableにできるようになっている。さらにカートリッジに向けて8MHzのクロック($X2CLK)、メモリライト(CWR)、リフレッシュ信号(COLADD)が出ているので、どうもカートリッジ側にメモリとCPUを載せて動かせるようになっているらしい。本体内蔵RAMのデータを保護したまま切り離せるようになっているのもその対応だろう。

整理すると:
・ROMPAC1はPASOPIA内蔵ROMを置き換えて他の言語を動かすことができる
・PASOPIA用ROMPAC1はPASOPIA7に挿しても動かない
・PASOPIA7用ROMPAC1はCPU/ROM/RAMを内蔵したカートリッジも想定している

参考:
PASOPIA7 テクニカルマニュアル
PASOPIA回路図 I/O 1982年11月号
PASOPIA7回路図 I/O 1983年9月号

PASOPIA(PA7012)の分解写真と予防保守

 パソピア(PA7012 OA-BASICモデル)の予防保守ついでに分解写真。回路図はI/O 1982年11月号に掲載されている。

 ケースは底面一箇所のネジを外し、左右にあるツメを押しながら上面を外す。ツメが脆くなっており片方折ってしまった。電源ユニットは上部に載っているだけ。
IMGP3525

 マザーボード全体 プリンタと液晶ディスプレイへの接続はケーブルで引き出してある。
IMGP3526

 左下 FPASO1 34T775786G01 [B] [D]1
IMGP3539

  右上 カセットのコネクタとBASIC ROM
IMGP3536

 ROM拡大。TMM2364Pは8Kx8マスクROM。なぜか1個だけMBM2764。
[C2]:5315 2B  [C1]:5313 2C
[B2]:5314 2B  [B1]:MBM2764 008D?
IMGP3537

 右下 Z80CTC、キーボード接続用10P ICソケット、Z80PIO、Z80、64K DRAM。
IMGP3528

 中央下 TMM334P(CGROM)、HD46505、8255×3。
IMGP3532

 驚いたことにZ80とCTCはMOSTEK製。MK3880N-4 Z80-CPU
IMGP3531

MK3883N-4 Z80-CTC
IMGP3530

 左上 電源、白黒ディスプレイ、液晶ディスプレイのコネクタ、14MHz発振器。シルクに漢字表記。
IMGP3534

 中央上 リセットSW近辺。RS232Cの信号を引き出す16P ICソケット。これはPASOPIA7にはない。
IMGP3535

 左 PJ4 データ・ファイルユニット。これはPACスロット2と同じもの?
→回路図をみたらPACスロット2(PJ3)と14pinのセレクト信号を除き同一。
PACスロット2 18H〜、データファイルユニット 1CH〜
IMGP3533

 さて電源ユニットだがPASOPIA7で発煙した0.1μF250Vのフィルムコンデンサと同じものは電源スイッチの下にある。ネジはすべて外さないといけない。
IMGP3540

 すでにクラックがはいっていた。これを同等品と交換。
IMGP3541

 交換して元通りに組む。問題なし。
IMGP3543

 ところでパソピアの電源ユニットのパイロットランプはTLG103と思うのだがどうか。



PASOPIA7の電源修理と分解写真

 PASOPIA7でASCIIARTを実行して遊んでいたが
2020-04-19 00.40.19

 発煙!
2020-04-19 00.42.40

 花火のにおい。こういうとき電源スイッチがすぐ切れるパソコンは便利ですね。
分解すると電源ユニット内、ヒューズ隣のフィルムコンデンサが膨らんでいた。
2020-04-19 00.59.37

 上は同等品の0.1μF 250V メタライズドフィルムコンデンサ。これと交換。
IMGP3513


 先にPASOPIA7(パソピア7)のレストア(「僧兵ちまちま」のゲーム日記。)を読んでいたのでそういこともあるのね程度に思っていたらまさか自分のところでも発煙するとは。本当に花火で遊んでるときのようなにおいで電解コンデンサが黒煙を吐いたときのような刺激臭とはまた違います。

 電源ユニットだけ先に通電。よさげ。
IMGP3514

  動作確認。PASOPIAはCOLOR=(パレット番号、色1、色2)で0-7に割り当てられているパレット番号に0-7の色を2つ混ぜて中間色を表示できる。I/O 1983年9月号の回路図を見たら74S189(16bitx4)で色を管理し、$DOTI(大元はCRTCのクロック)でパタパタと色1/色2を切り替えているハードウェアによるタイリング。なのでよく見ると縦縞がわかる。

  分解写真。独自のカスタムICらしきものはない。

 マザーボード全体
IMGP3515

 CPUとBASIC/IPL/BIOS ROM(2764x6)。
IMGP3516

 8255,8255,Z80-CTC,Z80-PIO。中央の20Pコネクタはキーボード用。
IMGP3518

 HD46505(CRTC)
IMGP3519

 2732 これはCGROMかな?
IMGP3521

 カートリッジコネクタ近辺
IMGP3520

 PSG、SN76489 x2
IMGP3523




メモ:PET2001のROMセレクト

 PET2001のROMはこのように大きなアルミ製の放熱板が接着してある。これはROM自体が発熱し内容が読めなくなるようなトラブル対策だと思われるが、実際手持ちのPET2001は基板上のROM付近が悪さをして起動しない。

2020PET2001ROM

 で、現在はROM/RAM replacement boardを使っている。これはMPU 6502と差し替えて使うボードで、メモリアクセスはボード上のROM/RAMに対して行う。ROMやRAMは一部または全部、本体側のメモリをアクセスするような設定もできる。


 PET2001のROMはMOSテクノロジ製で入手困難。このROM/RAMreplacement boardでもできるのだが入手性と価格で2台目以降のPET2001にはもっと簡便な方法で対処したい。ということでPET2001のROM領域だけでもリプレースできないか考えた。

 PET2001のROM領域は$9000~$FFFFで、このうち$E800~$EFFFの2KバイトはI/O領域となる。これを整理すると:

$8000~$FFFF はVRAM,ROM,I/O領域
$8000~$8FFF はVRAM領域なのでROMアクセスから除外
$E800~$EFFF はI/O領域なのでROMアクセスから除外
基板上のROMは全部はずし、6502と差し替えるボード上のROMにアクセスする

 ROM/RAM replacement boardはPLDでアドレスデコードを実現している。これ汎用ロジック2個ぐらいでなんとかできんだろうか。できた。

PET2001ROMDECODE_2020-03-17 21_18_56

 LS139とLS138をそれぞれ1個。初段のLS139では以下をデコード。
(1) x000_xxxx_xxxx_xxxx
(2) x110_xxxx_xxxx_xxxx

 次段のLS139では(2)に追加。
(2') x110_1xxx_xxxx_xxxx

 これらと$8000~$FFFFのアクセスを最終段のLS138でまとめ、クロックφ2とあわせROMの*CSを得る。ロジックは三段になるがクロックは1MHzなので問題ない。これで汎用ロジックIC 2個で実現できそう。



 今朝方あまりにも寒くて眠れずずっと考えていたのをメモしました。

15KHz対応の液晶ディスプレイと注意点

  1980年代の古いパソコンで遊ぶためには専用のデジタルRGB対応ディスプレイが必要になることがあるのだけれども当時物はブラウン管で場所も取るしそもそもブツがない。だが一部の液晶ディスプレイではデジタルRGBからアナログRGBの変換をすれば非公式で約15KHzの水平同期周波数に対応しているものがある。

 まずデジタルRGBからアナログRGBへの変換について。

VGA端子(Wikipedia)

 8ピン角型端子はディスプレイ側の形状で、パソコン側はほとんどがDIN 8P。すべての信号はTTLレベルだが、映像信号(R,G,B)はFM-8の例をみるとオープンコレクタの74LS07出力を330Ωで+5Vにプルアップした出力になっている。これをアナログRGBの信号入力、ピークで0.7Vになるよう電圧を変換する。インピーダンスを75Ωとして、デジタルRGBとアナログRGBをつなぐケーブルに直列に挿入する抵抗値は約130Ω。VSYNC/HSYNCはTTLレベルなのでそのまま接続してよい。

Untitled_2020-03-10 16_08_31

 作ってみたもの。68Ωと75Ωを直列にして143Ωにしている。
2020VGA1

 一部の機種はDIN 8Pに+12Vが供給されていたり、FM-11などRGBに加えてI(Intensity)信号が追加されているものもある。この基板は電源供給チェックのLEDをつけてあり、RGBIには未対応。


手持ちの液晶ディスプレイで15KHz表示が確認できたもの:

MITSUBISHI RDT171LM
MITSUBISHI RDT202WM-S
SONY CPD-L150

15KHz表示できなかったもの:

MITSUBISHI RDT156V
ADTEC AD-AS15R
LG L1753S

 15KHz表示は320x200や640x200のように縦200ドット、24KHz表示は640x400のように縦400ドット。VGAは31KHzで640x480で縦480ドット。24KHzも試したかったけど機材故障につき実験できなかった。ADTEC AD-AS15Rは以前試した結果では24KHz OK。

 さて、CASIO FP-1100ではこのようにドットが欠けたように表示される。これは640x400表示を水平同期周波数15KHzで行う場合に縦の奇数ドットと偶数ドットを交互に出力するインターレース表示を行っているせいできちんと表示できない。日立ベーシックマスターレベル3もインターレース表示モードでは同様の結果。レベル3純正では長残光ディスプレイというものを使っていた。液晶ディスプレイでは直前のフレームが残像にならないのでこうなるようだ。

2020VGA2


 これはSONY CPD-L150にCASIO FP-1100を接続した例。文字の形はちゃんとしていそうだが表示が二重にだぶっている。これはCPD-L150がディスプレイ側に画面のバッファを持っていて、インターレース表示での奇数側、または偶数側のフレームが残っているようにみえる。
あと、CASIO FP-1100は常時インターレース表示らしい。

2020VGA3


 ケーブルは完成品がありますね ↓




FM-11 ディップスイッチの設定

 意外とFM-11のDIP-SW情報はWebで検索しても見つからないそうなので。

83HM-000171-3 FM-11ユーザーズマニュアルAD2+システム解説より。

2020FM11DIPSW


表はこちら。

スクリーンショット 2020-02-03 23.25.55


スクリーンショット 2020-02-03 23.37.51


 さてFM-11だがいまは家のどこかで眠っている。重いから高いところには置いていないはず。むかし会社で引っ越しの時2階から落としてしまったけど動いたとか聞いた。


PET2001NのVRAMまわりを読む

 今回はPET2001の回路図を読むだけです。対象は主記憶にDRAMを使っているPET2001N。



 VRAMは40x25文字を表示するので1Kバイト、6114(2114) 1Kx4bitを2個使っている。VRAMはCRT表示のためのリードとMPU 6502からのリードライトがある。

 図は6114の片方だけ:
スクリーンショット 2019-09-01 18.57.27

 その二種類のアクセスはLS157で切り替え。切り替えのためのS入力は1MHzのCLK1。HでMPUからのアクセス、LでCRT表示のアクセスを行っている。サイクルスチールですね。


 74LS157はSA2~SA9を切り替えるためにあと2個ある:
スクリーンショット 2019-09-01 18.58.05


 さて、PET2001には外付けでPCG(Programable Character Generator)がHAL研究所から出ていたのだが、どのような仕組みだったか資料が見つからないので想像する。VRAMは8bitで256種類のキャラクターを表現できるが、PCGで定義したキャラクターかどうかを切り替えるためには最低1bitの属性を増やさなければならない。VRAMとして使っている6114はソケット実装なのでこれを外して*CS信号で切り替えるようにすればよさそう。CRT表示の回路から見てもそのままbit数を増やしたように見えるはず。
 MPUからのアクセスについてはVRAMのアドレス空間を倍に拡張し読み書きできるようにすればよい。LS157はソケット実装ではないのだが、同等の回路を別に作ってやればアドレス1bit分を拡張して
先程の*CSで切り替えるようにすればよい。
 残りはCGROMとPCGのキャラクタ定義に使うRAMの切り替えおよび読み書きだがこれは別途。

 MPU周りを読んでいくと特にプロセッサのサイクルを伸ばしたりウェイトをかけたりする部分が見当たらない。DRAMのリフレッシュもまた裏のサイクルで行っているように思える。



JOYPET(ジョイペット) 天然成分消臭剤ネコのフン・オシッコ臭専用 270ml
B000FQSHK4
5つ星のうち4.0
¥ 529

SANNO Primary Compter 84S(SORD M5 Jr.)にビデオ/オーディオ出力端子をつける

 m5 Jr.にビデオ出力端子を取り付ける(RETROPC.NET)をやってみただけの記事です。

 基板右上のRFモジュレータ近辺。R4左端にVDP TMS9918AのCOMVID出力(36PIN)、すぐ下のR3左端はGND。RFモジュレータの左端の端子はSN76489のAUDIO OUT(PIN7)。GNDは下のCC3電解コンデンサあたりから。
2019SANNO-01


2019SANNO-02

 カセットI/FとRF切り替えの小基板の上にエポキシ系接着剤で固定できるようケースを削る。これはいい感じにできたと思ったら

2019SANNO-03

 上のほうの削り方がへたくそだった。
2019SANNO-04

 これで3.5mmステレオプラグ-RCAピンプラグのケーブルを使用するとAV出力が使えます。

 一部のディスプレイで音にノイズが乗るのでSN76489のオーディオ出力直出しはいいんだっけかと調べてProgress on Audio (BMOW)を参考に330μF-10Ωを付けてみました。これはノイズ対策ではないので結果としては変わらず。ビニール線ではなくシールド線を使ったほうがいいのかも。

2019SANNO-05



記事検索
プロフィール

hardyboy

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