まごころせいじつ堂

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

PCG6500

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

つづく





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

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


記事検索
プロフィール

hardyboy

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