まごころせいじつ堂

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

2021年04月

YIS-303 メモリ増設+16KB

 YAMAHAのMSX YIS-303は上位機種YIS-503とくらべてプリンタ周りの削減、メモリが半分の16KB、そしてキーボードが変更されている。7〜8年くらい前に分解したらメモリの増設が簡単そうだったので(今頃)やってみた。

 基板全景。
2021-04-23 13.05.01

 プリンタポート近辺。ここはLS74,LS32,LS125,LS374およびプリンタ用のコネクタを実装すればよさそう。今回はやらない。
2021-04-23 13.20.44

Z80A近辺にMB81416(16Kx4bit DRAM)の空きパターン。スルーホールのハンダを抜く。
2021-04-23 13.20.49

 DIP 18PのICソケット2個をはんだ付けしてM5M4416P-15を実装。上側にある黄色いワイヤーはアドレスバッファ用途のLS244に交換するところだが今回は無視。また16Kx4 DRAMは120ns品が指定してあるが手持ちの150ns品を使用。このあたりはまあ動くだろうという感じでやってます。
2021-04-23 14.09.33

 32KB認識しているっぽいですね。長時間動作はさせていないのでとりあえずOKということで。
2021-04-23 14.23.45

 16Kx4bit DRAMの種別に関しては

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


をどうぞ。


FM-11用RGBIインターフェース

 FM11はテキスト領域で16色、グラフィックス領域で16色中8色が表示できる。これまでは以前作ったRGB-VGA変換ケーブルを使っていたができそうだったので作ってみた。

FM11のカラー映像出力はDIN8P。
1.. +12V
2.. GND
3.. INTENSITY
4.. *HSYNC
5.. *VSYNC
6.. RED
7.. GREEN
8.. BLUE

(TOP VIEW)
DIN8P-RECEPTACLE

通常のRGB 8色に加えてINTENSITY信号で輝度を変える。RGBI 16色の場合はINTENSITY信号が"H"で輝度最大、"L"で半分。黒についてはINTENSITY=”L"で最低輝度、"H"で白のINTENSITY="L"よりも低い輝度の灰色。
ZX SpectrumもRGBIだが黒のINTENSITYはサボっていて15色。FM11はユーザーズマニュアルシステム解説を読んでもそんな記述はなく16色と書いてある。


アナログスイッチ74HC4066を使えばデジタルRGBからVGAの映像信号に繋ぐ抵抗をINTENSITY信号で切り替えれば実現できそう。

しかし先程の黒のINTENSITYに対応しなければならない。追加で74HC27を使いR,G,B入力がすべて"L"のときにダイオードでR,G,B出力に低輝度の灰色が表示できる電圧を供給する。

FM11RGBI-CONN

FM11RGBI-MAIN

+12Vから5Vを生成する部分は省略。78L05で充分だけど手持ちの7805を使用した。
2021-04-21 03.30.22

2021-04-21 03.30.38

 F-BASIC V4.0でテスト。COLOR C,,,A でCは0~7、Aは0/4でINTENSITYの有無。
2021-04-21 03.49.15



 さてついでにFM-7の16色について。元々はRGB 8色表示だが使われているカラーパレットIC MB15021はFM-11と同じもの。カラー映像出力のDIN8PについてFM-11の違いはpin3がINTENSITYではなく2MHzのクロック。これはFM-8と同じでライトペン用のもの。FM-11ではライトペンは専用のコネクタに接続する。
 FM-7は内部のジャンパJ3でカラー映像出力のpin3をINTENSITYに切り替えることができる。実際切り替えて実験してみた。ジャンパJ3はメイン基板の右上側にある。

■ ■ ← MB15021のINTENSITY出力
↑← 2MHz CLK
■ ← 7407P経由でpin3

2021-04-21 17.02.10

 F-BASIC V3.0で8色中16色の実験。パレット指定のCOLOR=(P,C)でPのパレット番号0~7、Cのカラー番号0~15が指定できた。つまりINTENSITYの指定はもともとサポートしていたことになる。
2021-04-21 17.27.02

 こうしてみると色々想像しますね。FM-8の後継FM-7は8色中16色表示が可能だった。BASICでパレット指定のサポートも行ったが、ハードウェアはFM-8との互換性をとった。RGBIをサポートしているディスプレイは当時特殊でRGBまでのものが多数だったせいかもしれない。

 さて作ってみたがやや表示が暗いと感じるので調整が必要かもしれない。330//330Ω、330Ω、330+330Ωにしているが220Ωに変えてもよいかも。


パソピア/パソピア7用ジョイスティックアダプタPA7390

 古いパソコンにはごくまれに期待してなかったオプションが入っていることがあって、入手したパソピア7にはジョイスティックアダプタPA7390がささったままだった。

2021-04-11 02.03.01

2021-04-11 02.03.23

 主要な石は8255にTC40H004P。片面基板。
2021-04-11 02.06.37

2021-04-11 02.06.54

PA7390の回路図はI/O1983年12月号p.213『パソピアにタッチパネルを継ぐ』に載っている。


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

つづく





記事検索
プロフィール

hardyboy

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