まごころせいじつ堂

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

PET2001

CBM4032の清掃

 CBM4032はCBM3032の後継機。12インチCRTモデルもあるらしいがこの9インチCRTモデルはぱっと見CBM3032と変わらない。

 これは喫煙環境で長く使われたせいか全体的に茶色くなっていた。水拭きしてこのくらい。キーボードはヤニを吸った埃だらけでとてもお見せできない。
2022-04-04 15.17.09

 筐体上部は鉄板に代わって樹脂製になっている。CRTもボルトをナットで留めていたのがネジに。
2022-04-04 14.57.16

 内部もうっすらと茶色い。本体内にファンなどないので全体的にヤニが降り積もっている。
2022-04-04 14.25.16

 部品配置はCBM3032と変わらないように見える。
2022-04-04 14.39.23

 DRAM,PIA,VIA,ROMが直付け。電源のタンタルコンデンサが電解コンデンサになっている。
2022-04-04 14.43.41

 ROMをリワークしている部分を除いて裏側はきれい。ジャンパもない。
2022-04-04 14.48.34

 PART NO 320350 REV E
2022-04-04 14.48.45

 ヤニと綿ほこりなのでいきなりアルコールなどの液体をかけたらまずそうなのでブラシで清掃。

ぼちぼちつづく。

ICの錆落とし

 ふるい基板だと部品の端子が錆びていることが多い。これなんかソケットに入っていたICの足が錆びて脆くなっていた。クエン酸水溶液に浸けて錆取りに挑戦したこともあったが、一晩かけてもわずかに錆が取れて沈殿する程度だった。
 今回はネジザウルスリキッドを使って錆落としをやってみた。泡の出るタイプを工具に試したらかなりよかったので液を垂らすタイプを使ってみる。

 CBM3032のCGROM。これに対してやってみる。
2021-06-20 18.12.55

 パッケージがちょうど収まるようなプラ容器があったので浸ける。錆は紫色になって出てくる。
2021-06-20 18.15.54

 ネジザウルスリキッドに浸けて数分おき、水洗い。これを10回くらい繰り返す。
2021-06-20 18.27.01

 刻印が読める程度に錆を落とすことができた。
2021-06-20 18.47.15

 セラミックパッケージの金属部分の錆落としに関して有効。ただ、パッケージを封止しているこの金属の蓋の隙間から水分が侵入するかもしれない。このCGROMはデータを取り出した上で錆落としをやっているので観賞用ということで。



PET2001 キャラクタの右半分が欠ける問題

 CMB3032はもう一台あるのだが、このマザーボードはキャラクタ表示に問題がある。文字の右半分が表示されない。
2021-05-08 20.58.52

 これはCGROMの出力を読み出してパラレルーシリアル変換後表示をしている部分があやしい。
PET2001CGROMLS165

 挙動としてはCGROM6316の出力D7~D4は正常に出力されているがD3~D0は"0"のままE11 LS165に取り込まれている。LS165によるシフト動作、S/LやCKに問題があるとすると右半分はシフトできずall'0'にはならないはず。
 CGROMを正常に動作しているCBM3032のものと交換してみても挙動は同じ。海外のフォーラムを探してみると同じような症状でCGROMを交換したら直った、というのがあったが何が違うのか。

  ということでE11 LS165をソケット化し、D3~D0に対応する部分を10KΩプルアップしてみたが挙動は変わらず。
2021-06-16 00.06.24

 そんなことをやっているうちに電源が入らなくなってしまった。まいった。

次はCGROMを現行品で入手できるROMに焼き直してピンを変換しテストしてみる。


※解決編

 ROM焼き直しは関係なかった。筐体を正常動作するものと交換して確認を続ける。

E11 LS165でシフトとロードを制御している部分はG9 LS74のQ出力。このFFはDRAMリフレッシュやビデオタイミングを生成しているH3 74164から制御されている。H3を74LS164に交換しても変わらず。
G9 LS74は……TL866PLUSで確認するとエラーがある。故障している。これを手持ちのHC74に交換。
スクリーンショット 2021-06-19 030638
 
 正常に表示した。E11 LS165のプルアップを外しておく。
2021-06-19 03.26.11




PET2001 データセットの修理 メカ編

 Commodoreのパソコンで使うデータセットの写真集


で、今度は横長のデータセットの修理。

 症状はPLAYを押してもちゃんとテープが動かない。早送り/巻き戻しはOK。
2021-05-18 20.27.26

 縦長のデータセットとはメカが異なる。ゴムベルトのテンションを確認したが問題なさそう。正常に駆動しているが念のために交換。
モーター:角1.2φ 75mm
カウンター:角1.2φ 55mm
カウンター用のゴムベルトは55mmでは若干ゆるかったので元に戻した。
※角0.95φの40mmまたは50mmが適合。
2021-05-18 20.39.51

 ベルトは交換したけど現象は変わらず。分解した状態で観察したらキャプスタンとピンチローラーの間が滑っている。ここが密着していないとテープは正常に走行しない。まずピンチローラーをアルコールで清掃。
2021-05-18 21.07.46

 ピンチローラーを押し上げるバネが弱いのだろうか。外して少しひろげてみる。
2021-05-18 21.17.36

 広げたバネを付け直してみたがキャプスタンとピンチローラーがどうも密着していない。ピンチローラー部分を下から押し上げると引っかかりがある。指の感覚をたよりに探ってみると、ピンチローラー右の金具が歪んでいた。ここに引っかかっているようだ。
2021-05-18 21.29.01

 そういえばカセットのフタがEJECTボタンを押してもきちんと開かなかったのだが、この部分がEJECTボタンと連動してカセットのフタを押し上げている。ペンチで直してキャプスタン部分もカセットのフタも期待通りに動くようになった。ロード/セーブもOK。

 金具の歪具合からみて、カセットのフタを開けた状態で無理やり閉めるか落としたか、そのようなことで壊れてしまったようだ。逆に考えるとEJECTボタンでフタがきちんと開かないものはここが疑わしいということでしょう。

 今回電気とまったく関係ありませんでした。









PET2001 データセットの修理 回路編

 前回でメカの部分は修理したがまだロードやセーブができない。ということで次は電子回路部分を追っていきます。

データセット内の基板はいくつかのバリエーションがあって、今回調べるのはこれ。
※回路図は診断コネクタのpin6(READ DATA)とpin5(+5V)が入れ替わっています!

主な部品はデュアルオペアンプLM358 x2、7414 x1。
2021-04-23 22.37.35

 症状だがロード(読み出し)、セーブ(書き込み)ができない。他のデータセットを使って記録したカセットテープも読み出せないが、セーブすると内容は消去される。つまり録音再生ヘッドの部分は動作せず消去ヘッドは動作している。

 コネクタから基板までの導通チェックをしても問題なし。読み書きともできないということで磁気ヘッドを疑う。テスターで録音再生ヘッドの導通チェックをすると約310Ω。基板から磁気ヘッドの配線を外して確認しても同様なので、断線などはしていない。
2021-05-03 00.54.37

 次にスイッチ。これはRECボタンと連動する3極6連のプッシュスイッチで、このうち3連使っている。
赤で囲んだ部分がすべてショートしていた。これは録音再生ヘッドの信号を受けるオペアンプの初段入力が7414の出力と常にぶつかっている状態になる。
2021-05-03 01.54.39-1

 ということでスイッチ部分を洗浄。IPAを使ったら赤錆が出てきた。さらにニューリレークリーナーで洗浄し、正常に動作するようになった。


 以下の写真ではもし改善しなかった場合に備えて未使用の3Pスイッチ部分が使えるようにランドを剥がしている。結局使わないで済んだ。
2021-05-03 15.15.58

 動作確認。相変わらず読み込めないがセーブはできた。スイッチの切り替えは期待どおりであとは磁気ヘッドからのアンプ部分が疑わしい。

 アンプ部分はLM358の4段で、磁気ヘッドから反転増幅(-33倍)/イコライザー(-6.3倍)/イコライザー(-14.4倍)/非反転増幅(221倍)の順に繋がっている。トータルで4419倍になり、最後はインバータ7414の2段を通ってPET2001本体に繋がっている。インバータの入力スレッショルド電圧から考えると磁気ヘッドの出力はmVのオーダーとなる。
 何も考えなければLM358の交換だけやってみるけど今回はファンクションジェネレータを使って追ってみる。

 これ最低の振幅が200mVだけどまあいいか。1kHz正弦波を入力し、オペアンプの出力をオシロスコープで確認。しかしCRを介して結合している箇所を除き波形が全く見えない。リファレンス電圧を生成している部分を確認したら1.8V出ている。同時に2個壊れることってあるのかな?

2021-05-07 05.59.53

 LM358を2個とも交換する。ハンダブリッジなどやってしまったがこれでOK。
2021-05-07 06.05.26

 さて、このデータセット自身でのテープの読み書きはできるようになったのだが他のデータセットではどうか。あらかじめ別のデータセットで保存しておいたカセットテープは読み込めたが今度はその別のデータセットで読み書きができなくなってしまった。こんどはこっちか、ヤンナルネ

→ニューリレークリーナーでのスイッチ洗浄で直りました












PET2001 データセットの修理 駆動編

 前回はPET2001本体の部品交換と別の動作するデータセットを用意して解決したが、手元に動かないデータセット2台と預かり品の1台があるため修理してみた。
 データセットはCommodore 1530 またはC2Nという名前で、Commodore64まで共通に使える。ここでは縦長のデータセットを扱います。



 初代PET2001に内蔵のデータセットは市販のカセットレコーダを流用している。カットされたケース部分にはスピーカーグリルと電池ボックスの跡がある。
2021-04-24 23.56.18

 これは外付けのデータセット。
2021-04-23 22.37.35

 これは別の外付けデータセットの基板。パターンが手書きではなくなっている。
2021-05-03 01.15.56

 ほとんどの場合、ゴムベルトが劣化して切れているが弾性がなくなっているのでこれを交換。角ゴムベルトの直径80mm、厚さ1.2mm。


 フライホイール(一番大きくて重い灰色の円盤)を固定している箇所のネジを緩め、ゴムベルトを通してモーターとプーリーに引っ掛ける。


 モーターそのものが動かない場合は6Vの電圧をかけて単体で回転するかどうか確認する。モーターはらは茶色のシールド付きケーブルが1本、基板にはんだ付けされている。
2021-04-11 19.34.18

 モーターはCANON MD39-R5CN-F または MD39-R24CN-F。最大12V 3800rpm、PETでは約6Vで駆動している。ebayで入手可能。
2021-04-13 23.45.03

 カセットのメカ自体はフレームを留めているネジ3本を外すと上部カバーを外すことができる。通常はここまでバラす必要はない。
2021-05-03 01.02.14

 PET2001に接続して巻き戻しや早送りができれば駆動系に関しては済。手持ちの1台はこれだけで使えるようになった。この状態でセーブやロードができなければ基板その他の電気系に問題がある。

つづく

PCG6500の取り付け

 PCG6500、残りは元オーナーによるPCG有効/無効の切り替えスイッチをどうするか。

 IC7:CGROM A9(22) - IC8:LS00(13)間をカットして、6Pトグルスイッチの片側で信号を通すかGNDに落とすかで切り替えているが、パターンカットした表面にはんだ付けして信号を取っていること、劣化したセロテープで巻いてケース内にごろんと置いてあったので固定することに。6Pトグルスイッチのもう片方でブラケット入り二色LEDの表示を切り替えているが、全面パネルに穴を開けるわけにもいかないので(鉄板だし)、背面フラットケーブルの取り出し口にプラ板などで取り付ける。

2021-04-03 22.51.07

 高速に変化するアドレスA9の信号をスイッチに通すのはよろしくないので、ANDをかますことにした。LS08は手持ちになかったのでLS00で構成。トグルスイッチは"H"か"L"に切り替えることでPCGを有効/無効にできる。
2021-04-04 08.31.28

 PET本体のCGROMソケットに接続するケーブルだが、丸ピンICソケットで保護した状態だと筐体背面の隙間を通せない。どおりで受け取った時のコネクタのピンが曲がっていたわけだ。

 Userportもデリケートで、外すときに引っ張ってケーブルの1本を切ってしまった。また、キーが潰れているせいで間違えて上下逆さまに取り付けてしまった。この状態だとPCGへの書き込みができず、スピーカーから画面の変化に応じた音が出る。
 外すときにケーブルを引っ張らないようつまみを付けてみた。
2021-04-04 17.08.17

 PCG6500本体はPET2001の上部に載せて背面で連結してネジ止めするのだけれども後ろの足は浮いてしまう。これは仕様。

 さて接続後、POKE 59468,14でグラフィックキャラクタをカタカナに置き換えることができる。これはPCG6500未接続または無効にしたときの表示。
2021-04-03 23.11.39

 PCG6500が有効だと後半64文字がユーザーで定義した文字を表示する。データは適当に書き込んだのでこのようになった。
スクリーンショット 2021-04-04 16.41.49

 テストプログラム。
2021-04-04 17.43.30

 このような結果になる。
2021-04-04 17.44.40

 0クリアしたり斜線が描けたりするので少なくともデータ部に関しては問題ない。
2021-04-04 17.49.57

おまけ:偶然見つけた。BASIC Programmer's TOOLKITやPCG6500の広告が載っている。

PCG6500の回路を調べる 制御論理

 PCG6500の回路を調べる Userportの続き。これで最後。

 SRAMへの書き込み、セレクトなどはまとめて図を起こした。
 ここでPET_A9 IC7:(22)とIC8:LS00のpin13間がカットされてトグルスイッチが挿入されていた。ここは元オーナーによる改造と思われる。カットしたLS00のpin13をGNDに落とすとPCGによる変換が無効になる。

PCG6500LOGIC

 IC3:LS04のうち2つは未使用。ADDRSELはIC1:LS123のトリガ入力(1)(9)にも接続されている。
IC1:LS123の*Q2(13)はSRAMの*WEに接続されており、ライトのパルス一発を生成している。
時定数はRx=1kΩ、Cx=4700pFで約4.7μs。

 IC1:LS123の裏は改造されていたが、テスターでパターンを追っていくとLS123で間違いない。どうやらLS123の代わりに別のワンショットIC、CD14538Bで設計した可能性がある。これはメーカー側での修正と判断する。
 2021-03-25 21.58.09














 で、ワンショットの片側の出力、どこにも繋がってないのよね。コンデンサも抵抗も実装してあるのに。SRAMブロックのデータ上位とデータ下位でそれぞれライトパルスを出すつもりだったんだろうかと想像。


PCG6500の回路を調べる Userport

 PCG6500の回路を調べる ROM/RAM の続き。

 PCG6500のデータ書き込みはUserport経由のVIA PA7-PA0で行う。CGROM/PCG切り替えはCA2、サウンドはCB2なのでPCG6500の制御は結局VIAですべてやっていることになる。

W65C22のデータシートのほうがみやすいですかね。

 PCG6500のデータ書き込みについてはマニュアルと日本語による解説があった。

 PET2001のVIA 6522のアドレスは$E840から16バイト。

 書き込みは$E843(DDRA)に$FFを書き込み、PA7-0を出力に設定し、以下の手順。$E84FはPA7-0のポートに対応。

$E84F <- 1100_D7D6D5D4
$E84F <- 0000_D7D6D5D4

$E84F <- 1000_D3D2D1D0
$E84F <- 0000_D3D2D1D0

$E84F <- 0100_A8A7A6A5
$E84F <- 0000_A8A7A6A5

$E84F <- 001_A4A3A2A1A0
$E84F <- 000_A4A3A2A1A0

D7~D0:ドットのデータ
A2~A0: キャラクタのライン位置
A8~A3: キャラクタの番号0~63 これがCGROMの64~127に対応する。

・PA7-PA6デコード
 UserportからのPA7,PA6はIC2:74LS42の入力A1,A0に接続されている。A2,A3は"L"。デコード出力はインバータを経由して3つの4bit D-FF 74LS75のenableに接続。IC4~IC6の入力はPA3~PA0にパラ接続。
*1がIC4でA6,A5,A6,A7、*2がIC5でD3~D0、*3がIC6でD7~D4を保持する。

・SRAMとの接続
 IC5,IC6の出力D7~D0はSRAMのD7~D0inに接続。これが書き込みデータ。
 LS157によるセレクタIC9,IC10,IC11の0側入力をSA8~SA0とすると、以下のように接続。
SA8,7,6,5 = IC4出力
SA4,3,2,1,0 = PA4,3,2,1,0

 ということでケーブルの断線は改造のためといった意図的なものではなさそうなので元通りにはんだ付けした。しかしこの接続、信号線だけでGNDがないのよね。
2021-04-03 19.25.10

 PET2001のUserportに取り付けるときはこちら側を下にする。キーがあるので逆にはならないけど。
キーは潰れている事がある!!
2021-04-02 21.10.47

 CB2については単なるLM386によるアンプなので省略。
2021-04-03 18.41.27


つづく

PCG6500の回路を調べる ROM/RAM

 PCG6500内部調査の続き。

 POKE59468,14でPCG ON、POKE59468,12でPCG OFF。これは文字のキャラクタセット128文字を小文字(日本モデルではカナ)に切り替えるための操作でC5:VIA 6522のCA2ポートに対応する。PCG6500ではこれを内蔵のRAMで定義した64文字と置き換える。
 CGROMはA10~A0の2Kバイトで、前半(A10="L")が通常のキャラクタ128文字、後半(A10="H")が小文字やカナのキャラクタ128文字に割り当てられている。



・CGROM

 PCG6500は、PET2001本体のCGROM F10:6316を外して24ピンのフラットケーブルで信号と電源を取り出している。これがPCG6500の本体コネクタCN1。外したCGROMはICソケットIC7に装着する。

 フラットケーブルが接続されるCN1のうち、A10-A0,D7-D0 はIC7の対応するピンとパラに接続されている。PET2001Nの回路図をみるとCN1:CS1(20)=GND、CN1:CS2(18)=GND、CN1:CS3(21)=*INIT に接続。

 IC7:CS3(21)=Vcc、IC7:CS2(18)=GND。IC7:CS1(20)=IC8:LS00(8)で、"L"のときにIC7ソケットに挿したCGROMが有効。

・SRAM

 定義したデータを格納するIC12~IC15のSRAMは256バイトx4のD2101AL-4。4個で合計512バイト、64キャラクタ分。IC12,IC13はデータの上半分D7~D4、IC14,IC15はデータの下半分D3~D0担当で、それぞれのデータアウトがCGROMのD7~D0とパラに接続。アドレスはA7~A0だが、*CE1(19)でIC13,15とIC12,14のどちらか片方がenableになる。これがアドレスA8相当。データ出力はODで制御される。


・アドレスセレクタ
 SRAMアドレスはPET2001Nからの参照用とデータ書き込み用の二種類のアドレスを3個のM53357P(74LS157) IC9,IC10,IC11で切り替えている。
セレクト信号は0でSRAM書き込み、1でSRAMをキャラクタジェネレータとして使う。
それぞれの出力、IC9はA4,A5,A7,A6、IC10はA0,A1,A3,A2、IC11はA8(*CE1)、ODに接続。
入力0側はPCG内の書き込み用アドレスラッチとユーザーサポートの値、入力1側はCN1からのアドレス8~A0。

PCG6500ROMRAM

つづく





CBM3016(PET2001N) CRT輝度調整のVR修理

 PET2001のCRT背面には輝度調整のつまみが出ている。このCBM3016は電源を入れても画面に何も表示しないことがあり、このつまみをグリグリ動かすと表示したり消えたりする。

CRT背面の金属パネルを外すとこのようになっている。
2021-03-31 16.08.13

 可変抵抗にガリがあると、つまみをいじるたびに輝度がビクンビクンと変化するはずだが、これは表示するか消えるかのどちらか。つまみの軸は割と長いので、壁にぶつけて摺動子の部分が曲がったのだろうか。作業のためCRTを本体から外す。ナット4個で固定されていて、ケーブルは電源トランスから直結している部分があるためCRT内基板の方のコネクタを外す。

 金属のツメ4つを起こして背面のカバーを外してみる。右側に見えるつまみの根本にあるのが摺動子で、これがカーボン抵抗に押し付けられている。
2021-03-31 16.14.37

 これが本体側に塗布されたカーボン抵抗。鏡がハッピーセットのおまけですまん。
2021-03-31 16.18.05

 先程の摺動子を清掃する。接触する箇所を紙やすりで磨き、ピンセットで接触がよくなるよう少し起こす。元通りカバーを付ける。
2021-03-31 16.27.59

 元通りに組み立てる。今度はつまみを動かしても画面は消えない。OK。
2021-03-31 16.57.50



薔薇の名前 特別版 [DVD]
F・マーレイ・エイブラハム
ワーナー・ホーム・ビデオ
2004-09-10











CBM3016(PET2001N)の修理 - メインボード動いた

前回の調査でわかった所に着手。

・VRAM交換
 VRAMはUF7/UF8の1K x4bit SRAM、2114。疑わしいのはUF7。
2021-03-28 15.11.40

 ひっくり返して位置を確認。カプトンテープで囲む。低融点ハンダで溶けている間にSRAMを外す。
2021-03-28 15.17.39

 問題のUF7、MM2114N。これを正常に動いているCBM3032のVRAMと入れ替えて確認。同じような画面の乱れ。これで故障確定。
2021-03-28 15.31.51

 ハンダ吸い取り器で基板側のハンダを除去。ペットボトルのキャップを皿代わりにハンダ吸い取り器に溜まったハンダくずを捨てると作業効率がよい。
2021-03-28 16.10.33

 18ピンのICソケットをはんだ付けし、手持ちの2114を2個挿入。
2021-03-28 16.25.59

 画面表示問題なし。(筐体はまだテストのためCBM3032です)
2021-03-28 16.36.28

・メモリ

CBM3016の設定は8Kbit DRAM使用の16KB。この前半だけを有効にしてテストするためIをカット、Lをショートで8KBに設定。
PET2001N-BANKSEL


これは2バンクあるうちの片方づつテストするため。この設定でもPETTESTERでは"B"ad表示。
次にメモリ前半と後半のバンクを入れ替えてみる。*CASを駆動するLS10のダンピング抵抗R41とR42の所で*CAS0 / *CAS1を入れ替える。

PET2001N-CAS


このように抵抗の端の部分をカットしメッキ線で入れ替えてみたが同様だった。
2021-03-28 17.12.48


さてここまでやってみて、両方のバンクにそれぞれ1つ以上の故障チップがありソケット化して入れ替えなければならないかと考えていたが念のためDRAMに供給されている電源を確認してみた。
8K/16K DRAMは+5Vの他に-5V、+12Vが必要で、+5VはほかのロジックICにも供給されているが-5Vと+12VはDRAMのみに供給されている。確認すると4.83V / -5.15V / 0V で12Vが観測できない。

2021-03-28 17.47.33

+12VはシリーズレギュレータLM7812CKで作られている。その入力であるUNREG+16Vは測定すると18.73V。LM7812CKが動いていないように見える。

 そこで12V1AのスイッチングACアダプタを使用して12Vラインにはんだ付け。しかし動かない。測定するとやはり0V。ACアダプタ自体は事前に12Vが出ることを確認している。
2021-03-28 18.10.54

 そこで思い至ったのがタンタルコンデンサ。タンタルコンデンサはショートモードといって故障時には短絡する。12Vラインにある10μFのC41,C43,C83を外してテスターで確認。C41,C83は約10μFの容量が観測できたがC43はショートしていた。
2021-03-28 18.19.02

 C43は手持ちのものと交換。たしかPC-6001の修繕用にと買っておいたもの。12V-GND間の抵抗を測ると約6.7KΩ。
2021-03-28 19.00.36

 今度は12.11Vが観測できた。OK。そういえばレギュレータが載った放熱板だが手前のLM7812CK近辺だけ触れないくらい熱くなっていたのが直っている。出力が短絡していたせいだ。
PETTESTERも"G"ood表示。BASICも8KBで起動した。先程メモリの確認のためいじった箇所を元に戻す。なにげにオリジナルの状態で動かすことができたのは初。Replacementboardが便利すぎて……
2021-03-28 19.31.27

 オリジナルのCBM3016筐体に戻し、16KBでBASICの起動を確認。
2021-03-28 20.45.45

あとはしばらく負荷をかけて通電してみればよさそう。
結局、故障していたのは2114が1つ、タンタルコンデンサが1つ、ということだった。



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では更に深刻な故障のキーボード修理をしている





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の筐体に組み込んでみますかね。


メモ: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個で実現できそう。



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

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

記事検索
プロフィール

hardyboy

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