ポケコンのシステムバスコネクタ

ポケコンから出ているシステムバスの40Pコネクタだが、現在は適合するコネクタがない。

さて自分ははるか昔に買った基板やコネクタがあったのでそれを使えたが、新たに入手することはできない。
PC-G850VSを手に入れた時、代替となるコネクタの候補をいくつか買ってあったが確認することができなかった。
今回PSGボードを作ったので、ついでに買ったコネクタについて試してみた。
結果、aitendoのエッジコネクタ(1.27/40P) [ECN50A220PV]が意外と悪くないと思った。

ポケコン側の基板が薄く、若干ゆるゆるなので気を付けないといけない感じかな。

同じようなエッジコネクタなら使えそうな気はするが、物によってはポケコン側のパターンが短めになっており、接触部分が届かずに使えないものもあるようだ。
aitendoで手に入れたこれも在庫が少ない(12/25現在30点)が、コネクタは根気強く探してみるしかないかな。

カテゴリー: ポケコン, 電子工作 | コメントする

続続続・ポケコン活用研究のPSGの記事

ポケコンとPSGのタイミングについて追記。
Z80側のタイミングについても検討していたわけだが、74HC138に/IORQが使われている。
その結果、元の回路ではチップセレクト代わりの/A9が非選択状態になってからA0~A1(バスコントロールのBDIR,BC1)が変更される状態。
非選択状態でバスコントロールが変更されるためレジスタ指定機能が動かない。

MSXはどうなっているのかなと調べてみたら、MSX Datapack wiki化計画ってところに回路図があった
やっぱりちゃんとタイミングを考えてる回路になっていた。

さて、基板ができただけで終わっても面白くないので、プログラム例を実際に動かしてみることにした。
打ち込むのは面倒なのでスキャナのOCR機能を使って取り込んでみたが・・・

文字化けがひどいやorz

一応取り込むことはできたので、テキストを成型して化けてる文字の修正を行う。
特に多かったのが「H」が「11」になっていたり、「0(ゼロ)」が「O(オー)」になっていたり。
他には「P」が「F」になったり「HL」が組み合わさって別の漢字になっていたり・・・
まあなんとか見直して修正していったりしたわけだが。

それでもいきなり実行できるわけもなく、実際にアセンブラに通ってエラーが出ないことを確認したいと思った。
さてポケコンでアセンブラしてもエラーがどこで出てどこを修正すべきか小さい画面では確認しづらい。
Windowsで動くZ80のクロスアセンブラでいいものないかと探したがなかなかいいものは見つからず。
他になにかいいものはないかと思ったら目の前にはMSXが。
MSXでM80を動かせばいい、ということで実行してみる。

やはり、修正漏れがあった。
M80でアセンブルした結果がファイルに保存できるのもありがたい。
案の定「0(ゼロ)」が「O(オー)」の違いがたくさん。
テキストエディタじゃわかりにくいわ。
ほかにも、EQUでラベル定義で数式が使えないっぽいので、そこは直接数値を設定。
M80でできないのではポケコンでも無理だろう。

そうやってエラーをつぶして最終的にエラーがない状態までもっていく。
エラーがなくなった状態のPRNファイルがこちら→PSG.PRN_.txt
WordPressでアップロードしたらなんで「_」がつくのか?
アセンブラできたので今度はL80でHEXファイルを作りたいと思ったが、使い方が思い出せん。
ググってもやっぱりわからん。
まあアセンブルできたので、全角のコメントは削除してポケコンでアセンブルすることにする。
そしたら、今度はラベルの文字数がオーバーしているため4か所ぐらいでエラー。
こちらは文字数をなおしてアセンブルしなおして無事実行できる状態に。

知らない曲だったので、音程が違っているのかテンポが速いのかはよくわからなかった。
音階データは元のままなのでPSGを4MHzで動かす前提になっているので、ディップスイッチを操作して4分周の3.579545MHzに設定するが、やっぱり元の曲が分からないので音程がどうなのかわからなかった。
一応クロックで音程は確かに変わっていたのは確認できた。

次に、PC-G803とPC-G850VSで比べてみたら、やっぱりPC-G850VSの方が倍速で再生された。

さてここまで確認出来たら速度調整をどうするか考えて、音程データをMSX仕様に直して知っている曲でも鳴らしてみるか。
文章だけじゃつまらないから動画で上げたいところだけど、動画の編集って面倒だな。
まう何年もやってないし。

カテゴリー: PC-G803, PC-G850VS, ポケコン, 電子工作 | タグ: , | コメントする

続続・ポケコン活用研究のPSGの記事

やっと音を鳴らすことができた。
いろいろ試しながら、最終的にできた回路。

若干の不満は残っているものの想定通りの動作はするようになった。

回路の挙動を確認するため、いつものI/Oボードに追加で作ったスイッチボード、何年か前のトラ技の付録基板のロジックチェッカを駆使して動作確認をする。
ちゃんとしたロジアナが欲しい。

最初にできた回路をチェックして、回路を変えたり追加したりするたびこんな感じで挙動の確認。
回路の挙動を見ながらデータシートの方もチェックする。
AY-3-8910のデータシートのタイミングの図。

元の回路は、「H」「L」の信号だけ見ればいくつか間違いがあるものの理屈はあっているようだが、タイミングまで考慮して回路を見ると動くかどうか怪しい感じ。
いろいろ試しながら回路を検討した結果、冒頭の回路図に至る。

細かいところは飛ばして、大まかにいうと、データの読み込みタイミングに影響がありそうなので、74HC245は撤去。
チップセレクト代わりの/A9はアドレス切り替わりとAY-3-9810のバスコントロール(BDIR,BC1)の切り替わりタイミングが重なってうまく動かないようなので、/A9はGND固定。
代わりに、アドレスが指定されていないタイミングではバスコントロールはINACTIVEとなるように74HC02を追加。
INACTIVE状態ではデータバスはハイインピーダンスとなるので、74HC245を撤去したことでの影響はなし。
クロックは手抜きするため多出力オシレータにおきかえ。
16MHzを4分周すれば4MHzで本の通りの音程データでいけるけど、秋月で売ってなかったので、秋月にあった14.31818MHzのものを8分周してMSXの仕様に合わせた。
ICソケットを使っているので同シリーズの違う周波数に変えられるし、ディップスイッテで設定を変えられるのでクロック周波数を変えて試すことができる。

74HC02をうまく使えば74HC04も不要になりそうだが、取り外しが面倒なのと検討用に追加した回路で74HC04を使っているのでこのままにした。

さて、実際にポケコンにつないで音を鳴らしてみる。

アセンブラなんて何年ぶりだろう。20年以上前か。
ポケコン活用研究1に載っているリストを打ち込んで音が鳴ることを確認。

 
 	ORG	100H
START:	LD	IX,R00
	LD	B,16
	LD	C,0
FLG:	LD	A,C
	OUT	(24H),A
	LD	A,(IX)
	OUT	(25H),A
	INC	C
	INC	IX
	DJNZ	FLG
	RET
R00:	DB	0DEH
R01:	DB	02H
R02:	DB	7BH
R03:	DB	01H
R04:	DB	3FH
R05:	DB	01H
R06:	DB	00H
R07:	DB	0F8H
R08:	DB	09H
R09:	DB	09H
R0A:	DB	08H
R0C:	DB	90H
R0D:	DB	01H
R0E:	DB	00H
R0F:	DB	00H

レジスタの値をいろいろ変えて動作を確認できるようにBASICでも試してみる。

 
10 PRINT "PSG TEST"
20 RA=0:RD=0
30 PRINT "Now RegAdd=";RA
40 INPUT "RegAdd  ";RA
50 INPUT "RegData ";RD
60 PRINT "OUTPUT RA=";RA;" RD=";RD
70 OUT &H24,RA
80 OUT &H25,RD
95 FOR I=0 TO 500:NEXT
100 PRINT "READ "; INP &H26
110 PRINT
120 GOTO 30

たしかPC-G801~803あたりまではBASICで直接I/Oアドレス指定の入出力はできずマシン語の準備が必要だったはず。
どのタイミングか知らないけどBASICからI/Oできるようになって楽になったものだ。
BASICのプログラムは、RegAddでレジスタを指定して、RegDataで値を入力。
それをPSGに送って、少し間をおいてPSGから値を読み込むようになっている。
いろいろ値を変えて音が変化するのを確認できる。

最後に出来上がった基板。
ブレッドボードで試作してから基板に組めばもう少しきれいにできそうなのだが、同じものを2回も組むのは面倒なので直接ユニバーサル基板に組む。
手持ちのブレッドボードでは間に合わなかったてのもあるけど。

結果、74HC245の跡地にジャンパー8本。
74HC02の追加スペースがなかったので、小型基板を使って無理やり実装。

まあ何とか音を鳴らすことができたので、ポケコン活用研究1に載っているサンプルプログラムを入れてみたいところだが、打ち込みが面倒だな。
音階データをMSX仕様に直さないといけないけど、そこはググってデータがあったのでそのデータに置き換えれば良さそう。
問題は当時のポケコンは3MHzで動いていたけど、PC-G850VSは8MHzで動いていること。音の長さをどうやって調整するか。
PC-G803を手に入れたから、そっちで動かせばいいか。

カテゴリー: ポケコン, 電子工作 | タグ: , | コメントする

ポケコンPC-G803をヤフオクで手に入れた

ヤフオクで、ポケコンPC-G803が安く出ていたので、落札してみた。

PC-G803は高校時代に使っていたポケコンなのだが、『ラジオの製作』でやっていた工作コンテストに出したところ、ポケコンだけ戻ってこなかったのだ。
確か当時問い合わせたのだが結局戻らずじまいで、それより以前に先生に頼んで個人的に購入したPC-G813を以降使うことになった。

それはともかくとして、懐かしさと格安さから落札に至ったのだが、これだけ古いとすんなりと動いてはくれない。
ヤフオクのページでは通電チェックはしてあると書いてあったが電源はいらず。
電池が入っていないかヘタレているのだろうと思い、新しい電池を用意して電池の蓋を開けてみる。
電池が入っていたので入れ替えてみたところ、MEMORY CLEAR O.K.?(Y/N)の画面が。
Yキーを押してALL RESETの画面になってキーを押すが、ALL RESETの画面のまま先に進まない。
どうもキーを押して反応するキーと反応しないキーがあるようだ。
ということで、分解してキーの裏側にアルミテープを小さく切って張り付けていく。

ちまちま切って貼って切って貼ってを繰り返していたら2時間ぐらいかかってた。
アルファベットキーだけでなく関数キーやテンキーにもアルミテープを張って仮組してキーの反応を確認。
少し押し方に気を付けないといけないキーもあるが、おおむね反応してくれるようになった。

さてここで本題。
これを手に入れたらやりたかったことがある。
SHARP PC-G801シリーズのRAMを増設するを参考にRAMを増設すること。

完全に蓋をする前にRAMを交換することにする。

・・・
・・・・・・
・・・・・・・・・

件のサイトの基板の写真と全然違うじゃねーか。
RAMを挟んで左側はサイトの写真そっくりだが、右側がPC-G801のパターンのようだ。
右上の0Ω抵抗の位置を変えればいけそうな気がしたので、試しにRAMを換装して0Ω抵抗の位置を変えてみたが電源はいらず。
元の位置に戻して、いったん取り外したRAMに戻して、元の状態に戻ったのを確認。
容量は元のまま無駄に時間を費やしてしまった。

ロットによって基板のタイプが違うようだが、その辺の情報が全然ないなぁ・・・

カテゴリー: PC-G803, ポケコン, 電子工作 | コメントする

続・ポケコン活用研究のPSGの記事

ポケコンでPSGを鳴らすべく、件の回路図を元に手直しして実験してみる。
しかしうまくいかないので、よくよく回路図をみると致命的な間違いを見つける。

ポケコンから出ているIORESETは通常時はLレベルで、リセット時にHになる。
一方PSGの/RESETは通常時はHレベルで、リセットするときにLにする。

これじゃ動くわけないと思い、手直しをしてみる。
しかしやっぱり動かない。

この本をみてPSG鳴らそうとした人で、うまくいった人いるのかな。
今でこそデータシートなんかはググれば容易に見つけられるけど、当時はというと自分は高校生ぐらいのころ。そう簡単に情報は手に入らない。
そんな時代にこの中途半端な回路図でうまく組み立てられたのだろうか。

もうしばらく飽きるまで粘ってみるか。

 

カテゴリー: ポケコン, 電子工作 | タグ: , | コメントする

MSXに8255をつないでみる

高校生か社会人になって間もないころだったと思うが、MSXに8255をつないでみたいと思ったが、カートリッジの基板が小さいのと回路図が入手できなかったので断念した覚えがある。

さて、MSXを再度手に入れて何か作れないかなと思い、それでは8255をつないでみようと思った。
さて回路はどうしようかなと思い、ネットで調べたり、国会図書館で電子データを適当に見てたら偶然見つけたりしたものを検討して最終的にポケコンの82C55の回路を流用して手を加えたものにした。

回路は決まって実際にどうやって組もうかだが、MSXのカートリッジに適合した基板は今は入手できない。
どうも同人的に出してる基板はあるらしいが、入手性に難がありそう。
そう思いながら店を眺めていたらちょうどいいものを見つけた。
 
カードリッジのサイズに合わせて基板を加工して、コネクタを強引に半田付け。
これを使えば基板のサイズを気にせず回路が組めるようになる。

で、8255の基板を組む。
ちょっと基板大きめだったかな。
でも、電源用のパターンがあるものだとこのサイズの基板になってしまった。
 
ケーブルの曲がり角の部分に若干の不満が残るが、まあ基板のサイズに余裕があるので配線はまずまずといったところ。

MSXのカートリッジコネクタをつないだところ。

思ったより奥まっててケーブルコネクタがちょうど頭が出るか出ないかといったところ。

MSXを起動して動作確認。

IOアドレスはポケコンの回路を流用してあるので、0x20~0x23になっている。
なので、Z80-MBCで確認したBASICのプログラムをまるまる使える。

 
10 out &h23,&h89
20 for y=0 to 255
30  out &h21,y
40  for x=0 to 255
50   out &h20,x
60   a=inp(&h22)
70   print a
80  next
90 next


実際動かしたところ。
A,Bポートは出力に指定して、0~255まで順に出力して、Cポートは入力にしてスイッチの状態を読み取るのを確認。
写真じゃわかりにくいけど、その通りに動いてくれた。

さて、これができればいろいろ遊べそうだけど、次に作りたいものがあるのでそれができてからかな。

カテゴリー: MSX, 電子工作 | コメントする

ポケコン活用研究のPSGの記事

ポケコンでPSGを鳴らしてみたいと思い、あらためてポケコン活用研究1を読んでみる。

先日の回路図を改めて眺めて調べてみる。
I/Oのアドレスは以下の通り。

24H…PSGレジスタ指定
25H…レジスタへデータ書き込み
26H…レジスタからデータ読みだす
27H…PSG非選択

・・・なんかおかしくね?
74HC138はY2じゃなくてY4を使うべきでは?
この回路じゃレジスタのデータ読めないのでは?
あと24HC245のCPU側がハイインピーダンスにならないから、下手すると問題おきそう。
これはいろいろ手直さないとならないか。

これちゃんとチェックしたうえで本を書いたのかなぁ・・・

カテゴリー: ひとりごと, ポケコン, 電子工作 | タグ: , | コメントする

AY-3-8910(互換IC)で遊んでみる

aitendoで移転に伴う売り尽くしセールを行っているとのことで、行ってみる。
適当に眺めてみてPSG音源があったので買ってみる。

AY389C10というIC。
ググってみたが情報が出てこない。
しかしよく調べてみるとどうやらAY-3-8910というICの互換品らしいことが分かった。

さてこのAY-3-8910だが、MSXで使用されているICらしい。
気軽に音を出したいだけならMSXを触ればいい。
だけど実物のICがあるなら自分でいじってみたい。
そして『ポケコン活用研究1』という本にも製作例が載っていた。

しかし中途半端な回路図。
作って作れなくはないが、いまいち使い方やプログラミングのイメージがわかない。
ほかにもっとわかりやすいものは無いかと調べてみると、『初歩のラジオ』83年6月号に製作記事があることが分かった。
『初歩のラジオ』は国会図書館で電子化されているので、国会図書館もしくは国際子ども図書館で印刷することができる。

製作記事を見てみると、スイッチで設定しながら音を出せるようなので、どのように設定するとどのように音が出るのか試せるのでちょうど良さそうだった。
必要な記事を印刷してもらって、実際に作ってみることにする。

プリント基板のパターン図も載っていたが、印刷の関係で実寸ではなくなっている。
しかし、パターンを見る限り単純でわざわざ基板を作るまでもない内容だったのでユニバーサル基板で組むことにする。

パターン図をもとに部品を配置し配線を行う。
余ったスペースにスイッチやボリューム、コネクタを配置。
配線に間違いないことを確認して音を出してみる。

製作記事の文章で書かれた操作方法を試してみたが初めはうまく音が出ない。
いまいちわかりにくいので手順をもとにレジスタの設定内容を書き出してレジスタ構成を確認しながら試したら今度はうまく音が出た。
国会図書館で別件で何となく読んでみた『MSX2テクニカル・ハンドブック』にPSGの操作方法が載っていてそれが分かりやすかったので、こちらも複写して参考にした。
さて実際に触ってみてイメージがつかめたので、今度は何か作ってみるのもありか。

で、実際のICなのだが、ど真ん中に89C10とだけ書かれていてどこが作ったのかかかれていない実に怪しいICである。

カテゴリー: 電子工作 | タグ: , | コメントする

PC-PR101/TN103Aをヤフオクで手に入れた

PC-PR101/TN103Aをヤフオクで手に入れることができた。
PC-9801につないで使おうかと思っているが、その前にポケコンにつないでみた。

感熱紙を買ってポケコンでハードコピーとLLISTでリスト印刷。
以前、MSXプリンタでハードコピーを取った場合に謎のPの文字などあったが、PC-PR101/TN103Aの場合はきれいに印刷されて、ごみなどはなかった。

ちなみに下の写真は以前MSXプリンタで印刷したもの。

カテゴリー: PC-G850VS, ポケコン | コメントする

SBCZ80を倍速で動かしてみる

サンプルのASCIIART.BASを動かしてみると結構時間がかかる。
それならば倍速で動かしてみたいと思い、基板と一部の部品を買い足して2枚目を作る。

左が最初に作ったほう。
右が新たに作った倍速版。

部品は基本的に同じだが、Z80 CPUが違う。

最初に作ったほうは、おそらくZ80A CPU。
周波数は4MHzまでだったはず。
高速板は、CMOSの10MHz対応。
SIOは両方ともZ80B-SIO/2(6MHz)。
SIOの型番が印刷されている部分なのだが、こすったような削ったような跡があるのは何でだ?
本当にZilogの石なのか?

基板の裏

高速版の方は2.4571MHzのパターンをカットし、4.8152MHzのパターンをショート。

で、ASCIIART.BASを動かしてみる。

TeraTermでタイムスタンプONにしてログに書かれた時間から時間を測定。
通常版では約8分9秒。
高速版では約4分5秒。
周波数が倍なので、実行結果もほぼその通りの結果になった。

カテゴリー: 電子工作 | タグ: , , | 1件のコメント