まごころせいじつ堂

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

レトロPC

PC98RGBS V02L02 PC98シリーズの映像出力をVGAに変換

 PC98RGBS V02L02

 PC98シリーズおよび互換機のDsub15ピンアナログRGB出力をシュリンクDsub15ピンに変換します。水平同期周波数24kHzに対応したVGAディスプレイで表示できます。スライドスイッチをDsub15ピン側に倒すことで複合同期信号を出力し、スキャンコンバーターGBS8220などに対応します。
 音声出力の3.5mmミニジャックを搭載。エプソン製互換機の一部ではFM音源の音声が出力されます。
 未確認ですがPC-8801mkIISR以降のDsub15ピンアナログRGB出力にも対応しています。
 また、PC98シリーズ対応のアナログRGBディスプレイにVGA出力の信号を接続することができます。(ただし水平同期周波数が24kHzであること)

試作時の情報はこちら

2022-11-04 22.20.00

回路図 V02L01~から変わらず
PC98RGBSV02L01-sch

 L02ではDsub15ピンコネクタ周辺の寸法のみ修正
PC98RGBSV02L02-pcb


boothにて配布予定です。
→販売開始しました。PC98RGBS PC-9801シリーズアナログRGB出力→VGA変換

東芝 MSX PASOPIA IQ HX-20とHX-22の比較

 PASOPIA IQシリーズは東芝が独自路線からMSX規格に変更したパソコン。 HX-22はHX-20シリーズの最上位機種で、この時期では珍しくRS-232Cインターフェースを内蔵している。

MSXでは珍しい、ステレオサウンド出力が可能だった「東芝 HX-20」
(AKIBA PC Hotline!)

HX-20が基本でHX-21はアナログRGB対応、HX-22は加えてRS-232Cというグレード。HX-22を分解して気になったのは以下の記事の写真にあるHX-20とマザーボードが異なることだった。

パソピアIQ(HX-20)を分解!
(濃飛樹脂軌道)

子基板の変更だけで対応しているのではないのか。ロットにより異なるのか。気になってしかたがないのでHX-20を入手し確認した。

HX-20背面 RS-232C付近のパネルは外せる。
2022-11-08 20.39.29
HX-22背面 パネルは一体化。アナログRGB出力とRS-232Cのコネクタ、ON/OFFスイッチがある。
2022-11-08 20.40.11

HX-20底面ラベル 消費電力12W。
2022-11-08 20.44.46
HX-22背面ラベル 消費電力19W。そんなに変わるものだろうか。修理歴あり。
2022-11-08 20.45.11

HX-20 AV出力基板 マザーボードとは10Pのコネクタで接続。
2022-11-08 20.46.40
HX-22 AV出力基板 基板はHX-20と共通と思われる。アナログRGB出力にはこの基板からとマザーボードからの配線(3P)がある。
2022-11-08 20.51.52

HX-20電源基板
2022-11-08 20.48.42
HX-22電源基板 L4にインダクタが実装されている。空きパターンにRS-232Cの信号を通すコネクタと背面に出るDsub25Pコネクタが実装されている。
2022-11-08 20.53.51

HX-20マザーボード
2022-11-08 20.48.01
HX-22マザーボード
2022-11-08 20.53.20

HX-22のRS-232Cボード
2022-11-08 20.54.10

 マザーボードは部品はほぼ同じだがレイアウトが異なる。一番の違いはVDPで、HX-20はTMS9918 TMS9118、HX-22はTMS9928を搭載している。TMS9928は外付けのディスクリート回路でアナログRGB出力が可能だが、そのあたりはAV子基板に実装されている。しかしレイアウトを変えるほどの変更が必要だったのだろうか。HX-21はアナログ出力対応なのでマザーボードとAV子基板はHX-22と同一と思われる。

 マスクROMはTMM23256P 2013と2014で、HX-20とHX-22で共通。つまりHX-22で使えるRS232C拡張BASICがハードウェアさえあればHX-20でも使えるはず。HX-21でもおそらく同じで変える理由がない。
2022-11-08 00.19.02

 電源基板はRS-232Cの信号を背面に通すおもしろい構造。おそらくはRS-232Cに必要な±12Vをここからもらっている。HX-20ではインダクタが省略されているので-12Vが出力されないのかもしれない。

 アナログRGBのコネクタはヒロセRP13A

 とりあえずは目視で確認できる範囲でだが、HX-20とHX-22(HX-21)でマザーボード基板が大幅に変わる理由がよくわからない。

※追記
@sunagawa_keikiさんの指摘でDRAM数が違うんじゃないかということで見直したらHX-20のVDPはTMS9918ではなくTMS9118でした。これは16kbit DRAM(4116) 16個→16x4bit DRAM(MB81416-2) 2個の変更があります。これにより-5Vの供給はなくなっていると思われます。

※追記2
TMS9918の互換チップで東芝製のT6950というのがあるらしい。HX-20に搭載という記事があるがこのモデルはTMS9118なのでロットによって違うのかもしれない。

Toshiba T6950 (MSX Resource Center)
TMS9118 to TMS9128 Adapter のご紹介 (TMS-RGBのblog)


SMC-777(カラーパレットSMI-733) VGA変換時のノイズ問題 解決

前々回はこちら

 SMC-777Cが内蔵しているカラーパレットボードSMI-733の調査結果はつぎのとおり。

 ノイズ対策のためにやってみたのは:
・Trのベース側にフェライトビーズ挿入
・カラーパレットボードのハンダ面をアルミテープでシールド
・GND強化 本体電源シャーシとカラーパレットボードのGNDを接続

 いずれも効果なしで黒い色の部分がうっすらと白く浮き、ドットクロック(16MHz)に同期したノイズが乗る。

 やっとDAコンバータまわりの回路を起こせたのでよく眺めていると、4入力NANDオープンコレクタ出力のALS22が気になる。これは取ってつけたような部分で入力がすべてOFF(値は0000で反転しているので"HHHH")だと強制的にGNDに落として色を黒にする回路だが、当初から疑っててソケット化はしていた。ただしLS22に交換してみたが変化がなくそのままにしていた。

 あらためて回路図。

SMI733DAC

 トランジスタの入力であるベース側をALS22は強制的にGNDにしている。ここをGNDにしてもなんかエミッタ側に出てしまってるのではないか?ということでテストクリップを使いまずベース側をGNDに落として確認した。
2022-08-26 21.59.12

 BASICからカラーパレットをON/OFFしてみる。カラーパレットONではGNDに落とした色は黒になるはずである。結果は変わらず黒の部分が白く浮く。次にクリップをTrのエミッタ側に接続する。カラーパレットボードの出力を直接GNDに落とすことになる。これで白浮きはでなくなった。

 対策としてソケット化したALS22の出力端子をピン上げし、それぞれのTrのベースからエミッタに接続を変える。
2022-08-26 22.38.09

R:2Cの位置にあるALS22のピン6を上げてQ1のエミッタに、
G:2Cの位置にあるALS22のピン8を上げてQ2のエミッタに、
B:5Bの位置にあるALS22のピン6を上げてQ3のエミッタに接続。

2022-08-26 22.37.57

 元通りに搭載して確認。
2022-08-26 22.56.56


確認のためのプログラムはつぎのとおり。ビープ音1回で内蔵カラー(カラーパレット無効)、ビープ音2回でカラーパレットボード有効。これらの切り替えで画面に変化がなければOK。
100 WIPE
110 GMODE 1
120 CURSOR OFF
130 '
140 FOR Y=0 TO 15
150 BOXF(0,Y*8)-(319,Y*8+7),Y
160 NEXT Y
170 FOR W=0 TO 3000:NEXT W
180 BEEP
190 OUT &H51,6
200 OUT &H51,7
210 FOR W=0 TO 3000:NEXT W
220 BEEP:BEEP
230 OUT &H51,&H16
240 OUT &H51,&H17
250 GOTO 170

2022-08-26 22.06.34


 今回はALS22をソケット化したので、同じようにすると改造が大変かもしれない。パターンカットならばもう少し簡単にできる。まだ実施してないが以下の方法で可能。

(1)2Cの位置にあるALS22ははんだ面でパターンカット可能。カット後、配線すればいい。
(2)5BのいちにあるALS22はTr(Q3)に近くカット困難。空きユニットがあるのですべての入力をパラに配線したあとピン8の出力をQ3のエミッタに接続。

 ここまで書いて思いついたがALS22を1個追加して2Cの位置に親亀子亀方式で載せたら(1)のパターンカットいらなくなるね。ベース側をGNDに落とすのと被ってもかまわないのでそうしましょう。


 しかし長かった。去年の11月ぐらいから原因がわからず悩んでいた。なぜSMC-777Cが現役の時代に表面化しなかったのだろうか?当時は液晶ディスプレイでなくブラウン管のディスプレイ、ブラウン管の方が液晶ディスプレイとくらべ映像信号の変化に対して鈍ければこのノイズは観測できなかったのかもしれない。


追記:LTspiceによる出力段の簡単な確認。Q1はパレットボード上のPNPトランジスタ。このエミッタがSMC-777本体側の映像出力用NPNトランジスタ Q1のベースに繋がっている。
74ALS22の"L"出力はtyp 0.35VなのでQ1のベースに0.35Vを与え、アナログ映像出力(R4の上)を観測すると70mV。これはVGAのアナログ映像信号が0~0.7Vなので10%に相当する。これがおそらく白浮きに見える。
SMI733SIML-70mV

 これはALS22の出力をQ1のエミッタ(=Q2のベース)に接続したものでアナログ映像出力は0Vになった。
SMI733SIML-00mV

twitterでのskyriver(@wcinp)さんとのやりとりでだいぶ明確になりました。ありがとうございます。




 やっとこれで安心して地球を防衛することができる…明日着荷予定

【PS4】地球防衛軍6
D3PUBLISHER
2022-08-25



SMC-777用カラーパレットボードSMI-733の調査(2) DAC

 SMI-733調査の続き。前回はカラーパレットの対応を格納するSRAM 74S189の書き込みパスまで。

 カラーパレットによる色の変換はドットごとに変化するR,G,B,X 4bitの信号をSRAM 74S189 3個のアドレスに与えてR,G,Bそれぞれ4bitの情報を取り出す。これをDA変換してアナログRGBの信号を生成する。
 SRAM 73S189のデータ出力は反転することに注意。これをドットクロック(16MHz)のタイミングでいったんFF LS378で受ける。

SMI733DAC
 4つのオープンコレクタ7406で2K2/4K3/9K1/18Kを使って階調を作る。これはSMC-70のモノクロ出力回路とそっくり。MSBは1KΩでプルアップしているが、その他3bitは他のポイント(O123PU)でプルアップしている。なぜこのようにプルアップのポイントを分けているかは理解できていない。
 ALS22によりR,G,B,Xがすべて0の場合は強制的に0Vにしている。これらの信号をPNPタイプのトランジスタで受けてエミッタフォロワで出力。この回路がO123PU生成部を除いてR,G,Bの3セット分ある。

 やっと回路が起こせたのでノイズ問題の調査を再開する。

SMC-777 VGA変換時のノイズ問題 続


 SMC-777Cをシステムディスクから起動したときの画面はノイズがないが、BASICを選択しBASICに制御が移ったらノイズが発生する。どうやらBASIC側でカラーパレットボードの存在を確認したらenableにするらしい。
 ということでBASIC側から制御してカラーパレットを有効/無効にしてどう変わるか確認してみる。
 OUT &H51,6:OUT &H51,7でキャラクタ画面とグラフィック画面それぞれに対するカラーパレットの適用をOFFにする。OUT &H51,&H16:OUT &H51,&H17でカラーパレットをONにする。これによりノイズもOFF/ONと変化することがわかった。さらに絞り込んでOUT &H51,7とOUT &H51,&H17でグラフィック画面に対する設定のみでノイズが観測できることがわかった。なおBASICのWIPEコマンド(画面消去)を実行するとカラーパレットが存在すれば有効化される。
 これらの動作はSMC-777にカラーパレットボードを追加したものでも再現したので個別の問題ではなさそう。

 SMC-777Cの本体からの16色表示信号とカラーパレットボードからのカラー信号はエミッタとコレクタを共有した2つのトランジスタで切り替えている。外への出力はエミッタフォロワ。出力したい信号の反対側のベースを7405(オープンコレクタ)により強制的にGNDレベルに落として抑止している。
2022-08-08 02.36.26

 この信号の切り替えはIC60のLS74で行っている。このFFのCLKは4φ(16MHz)。
 カラーパレットボードが実装されていてdisableにされている状態では本体からのカラー信号が有効でカラーパレットボード側の信号がGNDに落とされている。このときノイズは出ない。

2022-08-08 02.46.32

 IC60(LS74 UNIT-1)のQ出力が"L"のとき、本体カラー有効。Q="H"のときカラーパレット側有効。

・カラーパレットボードが存在しないとき(*CPON="H")、常にQ="L"。
・カラーパレットボードが存在するとき(*CPON="L")は*BLANK="L"のときに強制的にQ="L"。その他"H"。

CRCPはキャラクタ表示に対するカラーパレットが有効なことを示す信号(OUT &H51,&H16)。
GRCPはグラフィック表示に対するカラーパレットが有効なことを示す信号(OUT &H51,&H17)。
C/*Gは現在表示中のドットがキャラクタかグラフィックかを示す信号。キャラクタ画面はグラフィック画面の手前で、キャラクタ文字のフォントがある位置で"H"、透過部分で"L"となる。

カラーパレット側が有効になるのは:
・CRCP="H"でC/*G="H"のときにD="H"が与えられCLK後にQ="H"。
・GRCP="H"でC/*G="L"のときにD="H"が与えられCLK後にQ="H"。

・カラーパレット側切替時に本体カラー側が落としきれてないんじゃないかなとIC106 7405(カラー信号をGNDに落とす役割)に重ねて74HC05を置いてみたが変わらず。

・カラーパレットと本体ボードを接続するケーブルCN3-CN1をシールドしてみたが変わらず。
・カラーパレットに供給される4φにダンピング抵抗47Ωを挿入してみたが変わらず。

 う〜ん、カラーパレットボードからの信号にすでにノイズが乗っているのかなあ。続く。

SMC-777用カラーパレットボードSMI-733の調査(1)

 SMC-777ではオプション、SMC-777Cでは内蔵の4096色中16色を表示するカラーパレットボードSMI-733。
2022-07-29 19.39.56

 左側面の10ピンコネクタ。SMC-777本体はCN3、このボードではCN1。
*CPONはカラーパレットボードの存在を示す信号で、この信号が有効だと内部のアナログカラー生成部分をこのボードと置き換える。CPS,*CPWPはカスタムチップCX20121からの出力でカラーパレットに色情報をCPUから書き込むための信号。X,R,G,Bは16色のパレット信号で、これをカラーパレットボード内で変換しCPR,CPG,CPB信号として出力する。
スクリーンショット 2022-07-31 3.56.41

 手前から出ている15本の配線はJ1。SMC-777本体のCN9とは逆順に接続されている。電源、16MHzのクロックと設定に最低限必要なアドレス、データ信号。
スクリーンショット 2022-07-31 3.57.04

 カラーパレットの設定はI/Oポート52H。Z80の仕様により値と同時にBレジスタの内容も使用する。

regB : 0 0 AD1 AD0 BD3 BD2 BD1 BD0
data : CD3 CD2 CD1 CD0 0 0 0 0

BD[3:0] 設定するカラーパレットの番号 0~15
AD[1:0] CD[3:0]で指定する明るさを書き込む色の指定 R=00,G=01,B=10
CD[3:0] 色の明るさ4bit 16段階

これにより16個のカラーパレットそれぞれに対してR,G,B 4bitの明るさ=12bit 4096色を設定する。


 部品配置。RB1~5は集合抵抗。基板に水平に配置する余地がなかった模様。SN74S189Nは16x4bitのSRAMで3個使うことでR,G,Bに対応する色情報を設定する。データの入出力が分離しており、データ入力側はSN74S158N,SN74LS139Nを通してCPUからの設定値が書き込まれる。その他の部品はD/Aコンバータを構成している。
スクリーンショット 2022-07-31 3.56.18

 3個のSRAMの*CSはGND接続で常に選択状態。アドレス4本、データ入力4本はそれぞれ共通。
LS139はCN9からのAD1,AD0をデコードし、CN3からの*CPWPをG端子に入れている。R,G,Bに対応するS189の*WEをセレクト。
S158はSRAMへのアドレス切り替え。CPS="H"でCPUからの書き込み時アドレスBD[3:0]を、CPS="L"でCN3からのパレット信号XRGBを選択。通常はCPS="L"。切り替えに同期信号などを考慮していないためパレット設定時にちらつきが発生する。S158は157の出力反転タイプだがどっちでもいいみたい。
SRAM_A[3:0] = CPS ? BD[3:0] : {X,R,G,B} ;

SRAMのデータ入力はデータバスのCD[3:0]直結。

 DAC調査につづく。

SMC-777 VGA変換時のノイズ問題

 SMC-777用VGA変換アダプタの試作から改版を重ねて第5版。フットプリントのミスなど修正したが残る問題は15kHz対応の液晶モニタに接続したときの画面ノイズ。黒画面だと縦に8本、うっすらとノイズが乗る。GBS8200にCSYNCを与えた状態で表示するとノイズは出ない。また、SMC-70でも出ない。
 基板の改版で同期信号にノイズフィルタを入れたり色々実験してみたが現象は変わらず。で、第5版ではディスプレイ側と本体側のGNDを分離してみた。どこか一点でGNDを取ればいいのではというもくろみ。

SMC777VGAV01L05a-pcb

2022-07-29 18.52.40

 GNDが共通でないので全体が白っぽく浮いてますね。
2022-07-29 17.19.10

 このようにディスプレイ側と本体側GNDをブリッジ。
2022-07-29 17.29.11

 このような縦方向のノイズは変わらず。
2022-07-29 18.50.18

 さてどうしたものかと悩んでいたらとつぜんSMC-777Cのスペースキーが利かなくなった。分解してサンハヤトのニューリレークリーナーで洗浄して復活させやれやれと元に戻していたら基板上のカラーパレットボードに気付く。ひょっとして、とカラーパレットボードへの配線を外してみたらノイズがなくなった。これはカラーパレットのないSMC-70ではノイズが見られないという現象と一致する。
2022-07-29 18.46.59

 カラーパレットボードには2つのケーブルが接続してある。左側面が映像信号のミックス(CN3)、手前がおそらくI/Oでの設定(CN9)。

 カラーパレットボード
2022-07-29 19.39.56

 トランジスタのエミッタ側にビーズがありますね。おそらくエミッタフォロワ。わざわざ入れてあるということは(そのままでは見過ごせないので)ノイズ対策をやってるということです。
2022-07-29 22.22.01

 さて原因はカラーパレットボードにあるということがわかった。

整理すると:
・*HSYNC、*VSYNCを使った15kHz対応ディスプレイ接続でノイズが見られ、CSYNC接続のGBS8200経由での表示ではノイズはない。RGB21P変換ケーブルではCSYNCを使うがこれでもノイズは見られない。

→TOWNSモニタのようなCSYNCで同期をとる15kHz対応ディスプレイでの表示確認
→RGBHVを使った変換ケーブルを作り、ノイズが観測できることを確認

・ノイズ対策はこの外付けのVGA変換基板では対応できない。カラーパレットボードまたは本体での対処が必要。

→回路図おこし
→パスコンをたっぷり入れてみる
→基板をシールド

 当時、カラーパレットを搭載したSMC-777Cは専用モニタまたはRGB21P接続での表示がほとんどで、*HSYNC,*VSYNCで同期するアナログ表示のディスプレイはほとんどなかったと考えられる。このためカラーパレット使用時の画面ノイズ発生は認識されていなかったのではと思われます。

 ということでカラーパレットボードの回路を調べることにします。




SORDm5にMSXジョイスティックを接続する

 ぴゅう太用MSXジョイスティックアダプタと同じようにSORD m5用のMSXジョイスティックアダプタを作ってみた。
 SORD m5のジョイパッド端子はmini-DIN 6ピンでL,Rの2つがある。上下左右とトリガ2つの6入力だが、これらはキーボードマトリックスの一部で2x4の構成になっている。MSXのコモン端子1つ、上下左右トリガ2つの構成はそのままでは接続できない。また、GNDも出ていない。そこでフォトカプラを使用し、MSXジョイスティックのボタンに対応する6箇所のキーをONにするような回路を考えてみた。フォトカプラのLED用に電源が別途必要になる。

SORDm5JOYV03-sch


SORDm5JOYV03-pcb

 フォトカプラは秋月電子で1個20円のPS817を使用したが今見たらもっと安いUPC817CGがあるな。
フォトカプラのLEDはCR2032のコイン電池(3V)で駆動、電流制限抵抗は集合抵抗。4.7kΩではジョイスティックの入力取りこぼしが頻繁にあった。2.2kΩで問題なし。

2022-07-22 19.08.03

 電源となるCR2032の電池ホルダは裏側から取り付ける。CR2032は220mAhとのことなので、フォトカプラ1つあたり1mAとしてざっと寿命を考えてみる。同時にオンになるフォトカプラは最大4個(トリガ2つとスティック斜め)。パイロットランプのLEDも1mAとして、220÷5=44時間。たまに遊ぶゲーム用途としては妥当じゃないですかね。
 電源は電池の他に外部入力端子を用意している。2つのジョイスティックアダプタのうち片方はこれに接続して電池を省略できる。

2022-07-22 19.08.19

 さて、悩んだのがmini DIN 6Pの接続をどうするか、だった。コネクタはあるけどはんだ付けがたいへん。完成品の配布に関しては製作の工数をある程度まけているけど、これは難しい。

2022-07-25 21.57.04

 mini-DINコネクタを搭載できるようにしているが、mini-DIN 6P オスーオス ケーブルの入手が難しい。Aliexpressで探したがPS/2ケーブルのスプリッタ(キーボード/マウス)やDIN5P変換ケーブルしか見つからなかった。なぜかAmazonにはあった。

2022-07-22 19.06.52




 ということで配布に関してはケーブルの問題に悩みつつ基板のみとするかもしれません。


***

 さてここからは開発の紆余曲折コーナーです。

 当初は無電源でMSXジョイスティックをキーマトリクスの一部に組み込めないか考えてました。フォトカプラでオンオフ→フォトカプラのLED部分がオンオフできれば動くんじゃ?ということでキースキャンの駆動部(オープンコレクタ)からGND、受け側のプルアップ2.2kΩ〜5Vで電源が取れそうということで色々LTSpiceをこねくり回していました。

SORDM5JOY-PNPNPN

 理屈の上では動くんですよ。ただし電源をキーマトリクスからもらった時点でそこに電流が流れ、導通状態になりキーが常にONになったような挙動になってしまう。永久機関は作れなかった。

 基板まで作ってしまいバカの極み。まあトランジスタの勉強になったからいいか。

2022-07-26 00.11.55


SORDm5C V01L02 SORD m5用ROM/RAMカートリッジ

 前回作ったSORDm5用ROM/RAMカートリッジの不具合を修正しV01L02としました。この基板は主にBASIC-IやBASIC-Gでのフリーエリア拡張を目的としています。ROMイメージについては自力でご用意ください。

V01L02
2022-06-15 16.41.11

仕様:
・ROMカートリッジの8Kイメージを8つ、または16Kイメージを4つ格納可能
・$8000~$FFFFに32KのRAMを拡張可能

ROMイメージ切り替え方法:
 64Kバイトの27C512を4分割し16KバイトのイメージをSORD m5の$2000~$5FFFに割り当てる。この切替はDIP SWの[14][15]で行う。これらは27C512のアドレスA14,A15に対応し、ONで"0"、OFFで"1"となる。
 8KバイトROMカートリッジのイメージは16Kバイトイメージの先頭部分を使用するが、DIP SWの[13R]をオンにすれば上位8Kバイトと下位8Kバイトを入れ替える。これにより最大8Kバイトのイメージを8つ格納できる。

回路図:
SORDm5CV01L02-sch

V01L02
SORDm5CV01L02-pcb

部品表:
U1 27C512用28ピンICソケット
U2 62256タイプ 32KバイトSRAM (28ピンICソケット)
U3 74LS86 または74HC86 (14ピンICソケット)
SW1 3P-DIPSW (4Pも可)
R1~R3 10KΩ (または集合抵抗RN4 10K)
C1 3.3uF16V 電解コンデンサ (3.3uF~10uF,16V~50V程度)
C2,C3 0.1uF 積層セラミックコンデンサ

C4... 未使用(*OEディレイ用470pF)
SW2... 未使用(リセットボタン)

※部品実装前にカードエッジの挿入する部分の角をヤスリなどで丸める(カードスロット端子保護のため)

V01L02の問題点:
SORD m5のネジ止め式カートリッジケースに収める場合はカードエッジ部分が0.5mmほどずれておりケースかカードエッジ側面を削る必要あり。

V01L03:回路図は変更なし。
・カードエッジ側面を削らなくてもケースにはいるようになった
・リセットスイッチを変更
2022-06-26 17.56.19


boothにて配布予定です。
→販売開始しました。SORD m5用ROM/RAMカートリッジ基板

追記:
KiCad5による設計データとガーバーデータを公開しました。

@morecat_lab さんがカートリッジケースのデータを公開されました。ありがとうございます。


SORD m5用ROM/RAMカートリッジの試作

 以前作ったSORD M5 ROM/RAM EXPANDERをプリント基板化した。KiCadによるカードエッジ部分に悩んだがIBM PC用のISAバス2.54mmカードエッジを元にフットプリントを作り解決。

 カートリッジに入れてみた。穴位置がずれてしまった。これは基板の横幅を10cm以内にするために少し縮めたときに穴の間隔も詰めてしまったせい。また、部品実装時にICソケットを使用するとカートリッジのフタを閉めることができなくなる。
 あと、カートリッジの形状はこのネジ止め式以外にはめ込み式のものがあって、後者には対応しない。
2022-05-31 13.54.22

 基板は1.6mm厚。特に端子の金メッキなどは指定していない。カードエッジコネクタに挿入する部分は角を丸めている。このようにテープでカードエッジの端子を保護した後で、消しゴムに紙やすりを巻きつけたもので削る。
2022-05-31 14.08.43


 SORD m5のメモリ、0x2000~0x5FFFの16Kバイトの領域に27C512(64Kバイト)を4分割して対応させる。この指定にはA15,A14のスイッチを使う。8KバイトのゲームやBASIC-Iもあるので、16Kバイトの上位8Kバイトと下位8KバイトをA13Rスイッチで切り替える機能がある。RAMはオプションで32Kバイトを0x8000~0xFFFFに配置することができる。これによりBASIC-IやBASIC-G使用時のメモリ領域が増える。あとは調査用のカードエッジ引き出し端子やユニバーサルエリアを用意した。
2022-06-01 03.09.47

 しかし動かんかった。ROMのデコードは*ROM1,*ROM2信号がそれぞれ0x2000~0x3FFFと0x4000~0x5FFFに対応しているのだが間違って*ROM0(内蔵ROM)に接続していた。デコーダ用途のLS86の1ピンをカットする代わりにソケットから出して配線しなおし。これで動いた。
2022-06-01 02.57.33

 グワーッ 10枚も作ったのに……改版作業中。あとリセットボタンも付けたい。

 オリジナルのカートリッジは*MRD端子が470pF経由でGNDに接続されている。*MRD端子はROM/RAMの*OE端子に接続されている。用途は信号を遅らせるため。各ROMのチップセレクトはSORD G015カスタムチップで作られており、動作が早すぎてアドレスが充分確定する前にセレクト信号が出てしまうことの対策と思われる。本回路ではチップセレクトにLS86が挿入されているのでアドレスが確定するまでの時間が稼げているためか、470pFのコンデンサはなくても動いた。

PASOPIA ROMPAC1互換ボードの動作確認

 前回でT-BASICカートリッジ内のイメージを読み出すことができたので、これを使ってPASOPIA用ROMPAC1互換ボードの動作確認を行う。
2022-05-28 20.56.36

 実験のため各種信号をenable/disableするスイッチ、RAMも搭載できるようバッテリバックアップの回路も入れてある。今回はROMのみの動作確認のため使っていない。
PASOPIAPAC1-pcb

PASOPIAPAC1-sch

 さてROM 27C512の前半32Kと後半32Kに同じイメージを焼いて確認。Arduino MEGA+PASOPIARW基板ではちゃんと読めた。さて実機のROMPAC1スロットに装着してみたが……動かん。
 純正のT-BASIC ROMPAC1カートリッジでは動くのでどこかに違いがある。ROMPAC1を調べ直してみた。

 ROMPAC1 T-BASIC PROGRAMS PA-7520 32KB。
2764(8KB)タイプのマスクROM 4個、LS138、LS08。LS138はおそらくROMのチップセレクト用。
2022-05-28 20.55.55

PASOPIAPAC1-logic-sch
 外部ROMは0x0000-0x7FFFまでが有効。A15は来ているが特にデコードされていない。
 カッコ内はPASOPIA7テクニカルマニュアルでの端子名。X2CLKはPASOPIA7からのクロック出力信号だがPASOPIAではカセットセレクトの入力信号*CSTENとなっている。これはPAC1内のROMが有効なときにenableになる。この箇所はオープンにしていた。*CSTENが有効な間はPASOPIA内部DRAMの*CASが抑止され、読み出せないがデータは保持される状態になる。

 ROMPAC1互換基板の修正は、同等の動作となるよう27C512の*CSを*CSTEN(X2CLK)に接続する。
2022-05-28 20.56.47

 これで動作した。27C512の前半32Kと後半32Kを切り替える機能も確認できた。基板は次回修正時に*CSTENを設定できるように反映する予定。

 さて疑問があってPASOPIA7にT-BASICのカートリッジを挿したらX2CLKとぶつかってしまうし実際動かなかったのよね。PASOPIA7では言語カートリッジを出す予定はなかったんだろうか。また、ROMPAC1はゲームカートリッジとしても使えたはずだけど出なかったですね。PASOPIA7が売れたら出る予定だったんだろうか。

PASOPIA ROMPAC1リーダをGG for Arduinoを使って書く

 東芝のPASOPIAはカセット形式で言語カートリッジが提供されている。これを読み取るためにArduino MEGA 2650用のシールドを作ったのだが、読み取ったデータをシリアルコンソール経由でコマンドを入力しダンプしたりするなどの操作をする部分が面倒で放置していた。
 あれから数ヶ月。最近、@mkogaxさんのGG for Arduinoライブラリを知りこれは便利そうだと早速使ってみた。

ハード側の説明:

ROMPAC1のピン配置は→  PASOPIA/PASOPIA7のROMPAC1

PASOPIARW基板 回路図
PASOPIARW-sch

レイアウト
PASOPIARW-pcb

 回路は大したことなくてジャンプワイヤーでもできるレベル。でもジャンプワイヤーでやったらうまくいかなかったので基板つくったの。
2022-05-27 19.38.58

 GG for Arduinoを使ったPASOPIAPAC1R.inoのスケッチはこちら。

使い方。公式ライブラリに登録してあるので、Arduino IDEのライブラリマネージャから トピック:コミュニケーションを指定して"GG"で検索。インストールする。
GG

以下はPASOPIAPAC1R.inoから引用しつつ説明。

gg_con_baud = 9600;
gg_start("\n*** PASOPIA ROMPAC1 READER ***\n"); // Start processing GG for Arduino

gg_start("タイトル");で使用開始。デフォルトでの通信速度は115200bpsだが、gg_con_baud変数を事前に変えておくと速度を変更できる。

gg_con_CmdInit();

デフォルトで内部のメモリダンプ用のコマンドが組み込まれているが、今回使わないのでまっさらにする。

GG_CON_CMDADD(PAC1_help, "h", "", "PASOPIA-PAC1 help" );
GG_CON_CMDADD(PAC1_help, "?", "", "PASOPIA-PAC1 help" );

組み込んであったhelpコマンドも消えるので自前で設定。GG_CON_CMDADD()でコンソールから指示できるコマンドを定義できる。
第1引数:コマンドで呼び出される関数
第2引数:コマンド名
第3引数:コマンドの引数の説明
第4引数:コマンドの使用方法説明

void PAC1_help(int argc, char **argv) {
  gg_con_CmdHelpAll();
}

ここで呼び出される関数は引数をargc,argvで渡すことができる。unixコマンドを自分で書いて追加するような感じ。

  gg_printf("%04X\n",PAC1_addr);

 とても便利なのが書式指定が使えるgg_printf()。このライブラリを知る前は自前でこんな感じにしてた。http://blog.livedoor.jp/hardyboy/archives/9620242.html
void sprinthex(unsigned long int x, int dg) {
  if (dg>=8) if (x<0x10000000) Serial.print("0");
  if (dg>=7) if (x<0x1000000) Serial.print("0");
  if (dg>=6) if (x<0x100000) Serial.print("0");
  if (dg>=5) if (x<0x10000) Serial.print("0");
  if (dg>=4) if (x<0x1000) Serial.print("0");
  if (dg>=3) if (x<0x100) Serial.print("0");
  if (dg>=2) if (x<0x10) Serial.print("0");
  Serial.print(x,HEX);
}
圧倒的に楽。

    if (isDigit(argv[1][0])) st = gg_asc2int(argv[1]);
gg_asc2int()で引数を数値に変換できる。このとき、"0x1000+256"のような式も評価してくれる。

    if (gg_GetC()==PAC1_BREAK) return;

if (hexflag) while(gg_GetC()<0);

 コマンド内でキー入力を見て、長いダンプリスト表示を中断させることもできる。また、PASOPIAPAC1RではIntel HEX形式でのダンプに対応しているがteratermのログに保存するときにプロンプトまで記録したくないので、ダンプ終了後のキー入力待ちも実現している。

 その他、GGにはミニFIFOバッファや日付変換、Arduinoの任意の端子を使ってトリガを出力する機能がある。ロガー用途などにも便利に使えそう。

 ということでGG for Arduinoはシリアルコンソールから対話的に操作する用途に有用です。



レトロエクスプレス6号に出展します!

 はせりん様のご厚意でレトロPCのイベント、レトロエクスプレスに出展させてもらえることとなりました。

イベント名称:レトロエクスプレス6号
日時:2022年4月29日11:00~17:00
場所:東京都大田区産業プラザPiO小展示ホール(京急蒲田駅から歩道橋で直結です)

ブースは No.14 まりえん堂 です。
まりえん堂202204

 まごころせいじつ堂からの展示物はFM11RAM、FM11RGBIVGA、FM77RGB8Pです。




 FM-11用の拡張RAMボードです。896KB搭載例を展示します。

2022-04-19 21.58.29



・FM11RGBIVGA 説明書 完成品

 FM-11専用のデジタルRGBI出力をVGAに変換するアダプタです。
 FM11RGBIVGAの後継としてCSYNC出力、RGB/RGBI切り替え可能なRGBIVGAを製作中です。

2022-04-19 22.46.42



・FM77RGB8P 説明書 完成品

 FM-77/FM77AV/FM-16βのDsub9ピン デジタルRGB出力を標準的なDIN8ピンに変換するアダプタです。FM-77、FM-77(400ライン)、FM77AV、FM-16βで動作確認しています。
(@tomi9twさん、ご協力ありがとうございました)
2022-04-20 15.23.22


 ということでよろしくお願いいたします。

FMTOWNSモデルSFの修理 PSU

 FM TOWNS モデルSFを入手した。電源ケーブルが切断されていたので動くかどうかはわからない。

 分解・修理に関しては『FM TOWNS II CX 修理マニュアル』が非常に参考になる。分解するまえに読んでおけばよかった。このマニュアルで解説してあることは縦型のTOWNSでほとんど共通のようだ。

 電源ユニット。コネクタを固定しているネジはシールドで留めてあるがネジロック剤が塗ってあって外すのが困難だった。
2022-04-24 00.26.37

 電解コンデンサをピックアップ。これらは先程の修理マニュアルで書いてある内容と同じだった。
FMTOWNS-PSA-CON-POS

C6 - 180V 560uF
C12 - 50V 47uF
C52 - 25V 560uF
C54,55 - 25V 220uF
C55 - 25V 220uF
C57 - 10V 2200uF
C58 - 10V 820uF
C60 - 50V 220uF
C70,74,75 - 25V 22uF
C84 - 50V 1uF

 錆が目立つのでブラシで清掃していたらR6(6.8Ω)の端子がもげてしまった。これは抵抗一覧も調べんといかんかなあ。
2022-04-24 17.18.37

つづく

FM-11 6809カードの修理 その2

 FM-11 6809カードの修理 のつづき。

 6809カードの修理に1Kx4bitの高速SRAM uPD2149-1(45ns品)を使ったが入手困難。もうちょっと入手しやすいのはないかと若松通商のサイトを見たらHM6268P-25という4K x4bit品があった。

uPD2149は18ピン。
uPD2149

HM6268Pは20ピン。
HM6268P-25

 ピン配置は上位互換でアドレス2bitが拡張されている。ピン1と2、ピン20と19をショートさせれば1Kアドレスとして使えるはず。ICソケットを使う。
2022-04-13 23.13.17

 こんな感じに実装。F-BASIC4.0起動確認。
2022-04-13 23.21.55

 ほんとはOS-9あたりで負荷かけたほうがいいけどとりあえず動いたってことで。25ns品なので63C09-3MHzでの安定運用が期待できますね。

SMC-777/SMC-777CのROM

 今まで確認したSMC-777/SMC-777CのROMの種類について。

 SMC-777/SMC-777CのROMは27128(16Kバイト)。

SMC-777はJ50、J51。SMC-777CはJ51、J52。J52はマスクROMでSONYのロゴはあるが東芝っぽい。J50,J51はUVEPROMだった。
2022-04-07 17.17.02


 おまけ。SMC-777CのキャラクタVRAM/アトリビュートRAMと思われるがこういったパッケージはめずらしい。
2022-04-07 17.13.03

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

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

ぼちぼちつづく。

YISVIDEO YAMAHA MSX YISシリーズ用ビデオ接続アダプタ


2022-03-08 21.23.37

 RCAジャック 外側の黄色はコンポジットビデオ、内側は音声。3.5mmステレオジャックの出力はL/R音声(モノラル)、Rのみコンポジット信号に切り替え可能。
2022-03-08 21.22.55

 回路図
YISVIDEOV01L01-sch
 DIN 5Pソケット(180°)の代わりにDIN 8Pソケットも使用可。どちらにもDIN 5Pプラグはささる。
YISVIDEOV01L01-pcb

 接続例。RCAプラグと3.5mmジャックのコンポジットビデオ信号の同時使用は単に並列に繋がってるだけなのでおすすめしません。
2022-03-12 22.43.41

 YIS303本体との接続にはDIN 5ピンのケーブルが必要。全結線のMIDIケーブルが使えます。以下は30cmと短く動作確認も行ったもの。


 boothのまごころせいじつ堂で配布予定です。

MP-9780 HITACHI VHF COLOR CONVERTER

 日立ベーシックマスターJr.用オプションのRFコンバーター MP-9780。重みのある金属ケースでケーブル直出しのDIN 8P デジタルRGB入力、RCAピンジャックによるビデオ出力とRF出力。電源はデジタルRGB入力経由で+12Vを受ける。ベーシックマスターJr.は他のパソコンに見られるようなビデオ信号用のクロック出力を供給していないので、水平同期周波数が合っていれば他の機種どれでもビデオ出力が得られる可能性がある。
2022-04-03 02.21.38

 側面3箇所のネジを外せばカバーを取り外せる。
2022-04-03 02.24.18

 LS00,LS02,LS08 x2,LS86,LS138,LS151。
2022-04-03 02.24.43

覗いただけ。おしまい。

SHARP X1キーボードのケーブル交換

 パソコンテレビX1のキーボードを入手したのだが本体と接続するカールコードの劣化がひどくて動かすたびに樹脂がぼろぼろと剥がれてくる。ちょっとよくないので交換する。
2022-03-31 15.46.28

 キーボードは初代X1のもの。本体へは3.5mmの3極プラグ。キーボード側には3Pのコネクタで繋がっている。ピンの対応は左から3-Sleeve 2-Ring 1-Tip 。
2022-04-02 17.32.36

 元々のカールコードは捨てるしかないので適当な3Pコネクタと3.5mmステレオジャックを見つけてきて工作。
2022-04-02 18.04.30

 3.5mmジャックをプラスチック製のポイントカードを使って高さ調整し、両面テープで固定。
2022-04-02 19.04.25

 4枚分重ねたが2枚でよかったかな。
2022-04-02 19.04.55

2022-04-02 19.13.28

 X1本体との接続には短めのカールコード、片側がL字のものを使った。これでOK。




記事検索
プロフィール

hardyboy

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