まごころせいじつ堂

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

PLDR6502:SBC6800で6502を動かすボード

 電脳伝説さんのSBC6800をベースにCPU部分を差し替えるだけで6502にするドータボード、PLDR6502を作りました。


※PLDR6502基板配布中です。twitter経由でご連絡ください。




上記改造については各所で追試していただきました。

SBC6800で6502を(Electrelic 電子的遺物の世界へようこそ)

 PLDR6502はSBC6800上の6800を外して代わりに取り付けるだけで6502ボードにすることができます。以前行ったLS138の改造は不要です。



- PLDR6502回路図 -

PLDR6502V01L01-sch
・W65C02S-RDYはR1でプルアップ/NMOS 6502、R65C02では~HALT。J4ショートで接続可(通常オープン)
・W65C02S-VPBはJ3オープン/NMOS 6502、R6502はJ3ショートで電源接続(実際にはオープンのままでも問題ない)
・プルアップ抵抗R3はSBC6800側LS138に与えられるVMA信号の代わりで常にenableにする
・R5~R12はW65C02Sのデータバスプルアップ用。省略可
・パスコンC1は省略可


- 組み立て -

 PLDR6502は秋月電子C基板サイズ(72x47mm)です。
2020-09-28 16.08.37

必要な部品:
丸ピン40P ICソケット x1
40P ICソケット x1
40P 連結ピン x1
抵抗 3.3K〜10KΩ x4 または4素子集合抵抗


 裏面のSBC6800との接続部分に丸ピンICソケットをハンダ付け後、ソケットの桟を切断。ICソケットは脆いものもあるので注意。
IMGP3640

  基板の表側に先程ハンダ付けしたICソケットのピンがこれからハンダ付けする6502用のICソケットと干渉するので切り詰める。
IMGP3641

 40P ICソケットとプルアップ抵抗R1~R4をハンダ付け。ここでは集合抵抗を使用。
IMGP3642

 これを動作するSBC6800上の6800と交換して連結ソケットを使い取り付け。ROMも6502用のものに交換。
IMGP3644

 これは集合抵抗を使わずバラの抵抗を使った例。
IMGP3646

 連結ソケットを直接ハンダ付けして取り付けることもできますが、SBC6800のDIP部品をソケット経由で取り付けている場合少し干渉します。ハンダ面から突き出たピンをカット。
IMGP3647

 丸ピンICソケットをPLDR6502の裏面に取り付け、SBC6800との間を連結ピンで接続すれば干渉しません。
IMGP3649

連結ピンは以下のもので確認しました。(いずれも秋月電子)
【P-00269】 丸ピンIC用連結ソケット(両端オスピン・1列20P) 1×20
【P-00268】 連結ソケット(両端オスピン)40P



 設計データ一式はinventhubで公開しています(KiCad 5.1.6)。PLDR6502V01L01.zipはガーバー一式でこれをそのままpcbgogoに発注できます。

※inventhubはプリント基板の配置配線を表示できますが.jpgや.pngを今のところ直接表示できません。


 さて最後に。この基板の名前はパイルダー6502と呼ぶんじゃ。これが言いたかった……


ポピニカ魂 PX-04 ホバーパイルダー
BANDAI SPIRITS(バンダイ スピリッツ)
2009-06-27


ザイログZ80伝説 SBCZ80の組み立て 〜船頭ひとりでも船山に登る〜

 楽しみにしていたザイログZ80伝説、到着が待ちきれず先に版元のPDFサービスで読んでしまいました。ザイログ社の伝記では知らなかった話がいっぱい。アンガマンバスのネットワークカード使ったことあったなあ。
 で、書籍の初回特典としてSBCZ80の基板がついてきたので早速組み立ててみたのだけれどもなかなかすんなり行かず結局三週間くらいかかってしまったので以下にトラブルを整理します。

結論としては

(1)ICソケット接触不良x1
(2)SIO-D1のハンダ付け不良x1
(3)IC間違い ×LS175 ○LS157
(4)ICソケット挿入時にピン曲げ

とこれだけのインシデントが発生しておるのです。

2020-08-23 13.30.21

 DRAMとZ80 SIO/2は若松通商から手配、のはずが部品が見つからず出荷遅れ。そこでオレンジピコよりDRAMとZ80 SIO/2を手配し数日で着荷、動作確認。しかし何も応答しない。
 電源とクロック周りの確認。HC4040からCPU、SIO/2にクロックは行っている。RX/TX用のクロックもOK。では定期的に発生しているはずの~RAS、~CASを観測してみると~CASが出ていない。IC10 LS00のソケット接触不良だった(1)。挿し直しで~CASは出るようになった。

→ 手持ちのICソケットが板バネ式の古いものだと酸化して接触不良を起こす可能性がある

 なおもコンソールに応答はないのでSIO周りの配線を再確認。テスタで追っていくとD1にハンダ付け不良を見つけた(2)。

 さて、これでも何も出力されない。調査を簡単にするため、ROMをDRKILLERにする。これはDRAMのウォーミングアップとSIOの初期化、メッセージの出力、リフレッシュ抑止状態でのメモリテストと追いやすい。出るべきメッセージが出ないのはSIO近辺の問題か?そこでSIOに対して~IORQが出ているかどうかを観測。これには自作のジグ、ロジックチェッカーを使用した。これで~IORQのレベルやトリガが発生したかどうかを知ることができる。結果は電源ON/RESET時にSIOに対してアクセスあり、しばらく間を置いてアクセスが数度あり。DRKILLERが動作してメッセージを出しているように思える。
2020-08-29 18.49.17

 →思えばここで(3)の石間違いに気付いていれば動いたのだ。実際はアドレスバスが衝突して変な動きをしていた。

 USBシリアルインターフェースは他のマイコンのボードで動作確認をしてみたがOK。プログラムが動作しているように見えて文字が出力されないので疑いはSIOに向く。しかし確証はない。マルツよりZ80 SIO/0を手配。これに差し替えてみたが現象は変わらず。他のところから手配した半導体が同じように壊れている可能性は低いのでSIO周りの配線を再確認してみたが問題なし。

 そうこうしているうちに他の皆さんは同じ書籍付録の基板を完成させ、動作報告が流れてくる。よし、これはリファレンスとしてもう一枚手配し作ってみよう、ということでオレンジピコより基板を手配し一時間半くらいでハンダ付け、一発で動いた。ん?なんか本末転倒のような気もするぞ。
2020-09-13 19.32.37


 さて1枚めの問題はなんだろうか。2枚めの基板に載っているIC類は動作確認済みとみなせるのでこれをごっそり1枚めの基板に移し替える。(ここで(4)の問題が発生している)

 動作が変わった。なんらかの文字が連続して出る。これはDRKILLERの最初の文字列を表示する箇所と考えると、文字列の先頭番地を示す箇所がおかしくなり、終端の00Hが見つからずいつまでも表示を繰り返しているように思える。DRAMを外して電源を入れると■(FFH)が表示されるので、文字列として指しているのはDRAMの番地。
2020-09-13 20.26.33

 疑うのはアドレス/データバスの断線またはショートだが、すくなくとも0018Hまではコードは動作しているのでbit4~bit0の間になにかがあるはず。しかし導通チェックをやってみても問題なし。
 動作中に基板上のICに対して指で押し圧力をかけると表示される文字が変わる。接触不良が疑われる挙動だがこれは(4)への大きなヒントだった。が、気付いていない。

 制御線とアドレス/データバスがショートしているのだろうか。これ以上調べるのはきつい。では基本に戻って各ICの電源供給を確認してみるか。するとIC8 HC04の電源が約2.5Vと中途半端。目視するとpin14(Vcc)とpin13(GNDに落としてある入力)がよれてショートしていた(3)。2枚目の動作するボードから移し替えるときに曲げてしまったらしい。正しく指し直すと動作した。
IC8の電源とGNDがショートしかかって挙動がおかしくなっている。これはRAS/CASを生成している部分なのでDRAMの制御に影響し、ROMアクセス中でもDRAMがデータを出力しぶつかっていたと考えられる。基板に物理的に圧力をかけて変化するのもピンのショートの状態が微妙に変わっていたからと推測する。

 さて、残りの疑問は2枚目の基板に動くICの載せ替えを行ったら文字が出るようになったことの理由についてだ。もともと挿していた標準ロジックについてはTL866CSの汎用ロジックをテストする機能で動作確認済。それらのICを見ているとセレクタLS157をFF LS175と間違えている!写真で確認したら間違えたまま動かしていた(4)。

スクリーンショット 2020-09-14 0.03.21-a

 今回は不注意と目視確認不足が根本原因だった。配線のショートなどを疑い確認作業にはいる前にまさかとは思ったが電源供給のチェックからやり直したのは正解だった。いったん思考の隘路にはまると遭難一直線となってしまうので風呂にはいる、プラモを作る、ちゃんぽんを食べに行くなどの適切なブレイクを入れるのは重要かもしれない。あ〜動いてよかった。

追記:正常な基板でもDRAMを抜いた状態でDRKILLERを動かすと延々と同じ文字(髑)を出力し続けます。DRAM上のスタックが使えないせい。

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


水没!MZ-80C

 オークションで入手したMZ-80C、通電確認済ということだったのだが開けてみてびっくり。

2020-08-05 16.16.35

 ただのホコリとは思えないので基板を外してみると……これは水没した跡だ。
2020-08-10 16.28.39

 電源ユニット内もこのとおり。通電してみたがなんの出力もない。
2020-08-10 15.33.49

 しかし何をもって通電確認したというのか。煙が出なくてブレーカーも落ちなかったというだけなら中身がカラでも通電ということになる。幸い基板は存在した。
2020-08-10 16.37.34

 ソケットにささった8255の端子に赤錆。
2020-08-10 16.38.23

 水洗いしてみた。
2020-08-12 10.57.38

 24個ある16Kx1bit DRAMはこのとおり。
IMGP3616

 8253はセラミックパッケージだった。
2020-08-10 17.04.36

 モニターROM、CG-ROMやZ80などソケットにささっていた部品の足は脆くなっている。
IMGP3619

 CRT、キーボード、カセットについては未確認だがそこまで水位は上がってなかった模様。おそらく重いので押入れかなんかに床置きしててこのように水没したんじゃないかな。

修理方針:
・電源 危険なので中身を12V/5Vの電源に入れ替える
・ICソケット DRAMを除き全交換
・VR 浸水して故障していないか確認
・電解コンデンサ 全交換
・メモリはSRAM置き換えを検討
・キーボードコネクタ 浸水で酸化しコネクタが固着していた。錆落とし
・CG-ROM,Monitor-ROM メッキ線などで端子を引き出してみる 別ROMに焼き直す



 ↓使ってみたいですね




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


FM77AV用Z80Hカード韋駄天の回路図訂正と補足と蛇足

 I/O 1987年10月号、1987年11月号および6809活用研究(工学社)に掲載された韋駄天CP/M Z80Hカード。回路図に誤りがあってその後訂正も掲載されず、紙の資料も紛失してしまったので実物から正しい回路図を起こした。

 部品面
IMGP3592

 はんだ面
IMGP3593

 レイアウト
IDATEN-Z80H-LAYOUT

 回路図
IDATEN-Z80H-SCH

 回路図は実物からトレースしてそのまま起こした。
・SRAM(U2,U3)に対する*WEの論理が訂正箇所です。
・U12のLS02は実質不要で、U10のLS04の空きで代替可能。

 FM77AVの拡張RAMスロット図(FM-7シリーズ テクニカルノウハウ 第15章ハードウェア回路図)
IMGP3594

補足:
・6809とZ80Hのやり取りはFM77AV側の$FD64番地と$20000-$2FFFFの拡張RAM領域で行う。
・FM77AVのリセット後、Z80HはU4A(LS74)によりZ80RESET信号が有効になりリセットがかかったままの状態になる。この解除と再リセットは6809側で制御する。Z80にリセットがかかっている間はZ80のバスがハイインピーダンス状態のままであることを利用している。
・Z80Hから6809への要求はZ80側のI/O空間ライト動作でSETATTN信号がU4B(LS74)をセットする。6809は$FD64番地のbit0をポーリングしてZ80Hの要求を確認する。Z80Hがバス開放状態(Z80RESETまたはBUSACK)になればZ80BUSY信号が有効になりU4B(LS74)をクリアし要求を取り下げる。
・6809からZ80Hへのバス開放要求は$FD64のbit7書き込みで制御する。
・6809から$FD64のbit6,bit5に"1"書き込みでZ80HへNMI/INTを発生させる。
・バス開放要求/割り込み要求はU5(LS175)に保持される。Z80HからのI/O空間アクセス、またはZ80RESETで解除される。
・6809からZ80Hのバス開放状態を確認するには$FD64のbit7を読みZ80BUSYの信号をみる。
・MEMSEL信号は6809から$20000-$2FFFFのRAMをアクセスするときに有効になる。U14(LS138)でデコードして生成。Z80BUSY信号もデコードに入っているのでZ80H動作中は6809から読み書きできない。
・U2,U3(HM62256)に対するRAMOEはMEMSELまたは!Z80BUSYによるZ80動作中に有効。
・RAMWEは6809側の書き込み(MEMSEL&RWB)またはZ80Hのメモリライト(WR&MREQ)で有効。
・Y1(X'tal) 10MHzは実力で動作した。本来は8MHz。

蛇足:
・MEMSELを生成しているU14(LS138)にRWBも突っ込んでRAMWE用の信号を作ってもよかったかな?いや無理か。
・SRAM、OEがenableのままでWEがenableになってもいいんだ…(OE Low Fixed) HM62256 Datasheet
・当時Z80Hと32KバイトのSRAMは若松通商で買った最先端テクノロジーだ。今なら20MHz動作を狙えるか。
・master/slaveで言えばリセットが掛けられるZ80は6809に生殺与奪権を握られているけどCP/M動作中はZ80の要求を6809側ですべてこなしてるのよね。
・記事は3回連載の予定だったが強化版CP/Mが完成せず6809活用研究へと繰り越した。
・移植元となったX1用ランゲージマスター(CP/M)。ベスト電器に注文して届いたら店員さんが「私もX1使ってるんですよ」と嬉しそうに話しかけてくれたが「すみませんFMユーザーです…」申し訳なかった。
・初期の動作テストには@minemaz氏に協力してもらった。私Z80書けなかったので。
・Oh!FM誌に似たようなシステムが掲載されたのでたいへん焦った。同じ時期に同じようなアイデアはあるんだね。
・記事の反響というか感想すらまったくなかったのでちょっとさみしかった。

追記:
・128Kx8のSRAMに交換することを考える。TC551001AS6C1008もライト時*WEがアサートされる時は*OEはどちらの状態でもよい。



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



PASOPIA(PA7002)のマスクROM TMM2364Pのタイミング

 PASOPIA(PA7012)の分解写真と予防保守の続き。内蔵のOA-BASICは$0000-$7FFFに位置し、8KバイトのROM 4個で構成されている。これを追っていくと写真左上のLS139でデコードされ、右下-右上-左下-左上の順に$0000~、$2000~、$4000~、$6000~に対応する。
PASOPIA-INTERNAL-ROM-MARK

 最初のROMは普通のUV-PROMで残りはマスクROM。出荷直前にパッチでも当てる必要があったのだろうか。これらを前回作ったROMリーダで読んでみる。するとマスクROMが読めない。正確には常に同じ値になってしまう。
/CEを変化させてないのがいけないのかなと /CE="H"、アドレス設定、/CE="L"、データ読み出し の順で
やってみたら読み出せた。これはどういうことかな?
TMM2364Pのデータシートを見てみるとVpp(1)="H"、CS1(27)="H"、CS2(26)="H"、/OE(22)="L"にする。それぞれ基板上ではそのように接続されていた。
(CS1/CS2のenableはプログラマブルらしいがここでは"H"と判断できる)
となると/CEの挙動が通常のPROMとは異なることになる。

 データシートをみると/CEの立ち下がりでアドレスをラッチして後はOutput Enableに出力を任せるような動作だった。
スクリーンショット 2020-06-08 16.41.58
 となるとTMM2364PがROMライタTL866CSで読めなかった理由も推測できる。Device IDを厳密に見て弾いたのか、あるいはTL866CSが/CEを変化させないでenableにしたまま、というのが考えられる。

 また、はまってしまった。

ROMリーダのスケッチもアップデートしときました:


Arduino MEGA直結ROMリーダーのトラブル

※追記 27512(64Kバイト)まで対応のソフトができました → readROM27512.ino Intel HEX対応


 ROMライタTL866CSでは読めないマスクROM(TMM2364P)があったので、Arduino MEGA用のアダプタを作った。秋月電子の片面D基板、ピンヘッダははみ出るので少しけずっている。
IMGP3589

 Vcc-GND間に3.3μFの電解コンデンサと0.1μFのセラミックコンデンサ。
IMGP3590


 ROMの端子とArduino MEGAのピン番号の対応は以下のとおり。27512の場合はROM(1)がA15、ROM(27)がA14、ROM(26)がA13。
あとpin52にタクトスイッチを繋いでGNDに落としている。これはPROMダンプ開始用。
readROM


 さて、こんな単純な配線なのにArduinoスケッチを書いて読み込んでみるとデータが化ける。なぜだ。
IMGP3588

データの読み込みが不安定な時点で以前の経験を思い出すべきだった。
ここでやるべきだったのはアドレスと制御線の見直し、ソフトでの初期化だった。


 解決までの顛末は以下のスレッドにある。

 さて、解決までには間違った道をどんどん進んでいっているのだが以下に整理しておく。

・ハードウェアの絞り込み
PROMの2764/マスクROMのTMM2364P/W27C512で読み込み時のデータ化けが発生する。W27C512に特定のパターンを書き込んだものを調査対象とする。

・Arduino MEGA 2560のバリエーションによるものかどうか
互換品を3つ持っていたのでそれぞれで確認。どれも同様に発生するのでArduino MEGA個別についてまわる問題ではない。1枚を選んで調査対象とする。

・類似例の調査
どこかのだれかが同じようなことをしていないか検索。あった。
これによるとほぼ同等のハードウェア構成で成功している。ブレッドボード上にPROMを載せてジャンパ線でArduino MEGAに繋いでいるので電気的にはより条件が悪いはずだが動いている。

・土台の確認
上記、The Oddbloke geek Blogのコードをこちらのボード向けにピンアサインを変更し、ダンプを5回実行して結果を比較。5回とも問題なし。

ここまででソフトウェアの違いに問題点が隠されているとわかった。前後してデータ化けの発生率が変わるようなコードの変更(主に時間的なタイミング)をいじっては観測を繰り返している。挿入するディレイによって化け方の頻度が変わるなど、ハードウェアのピンが浮いているような指摘を受けている。

・知恵を借りる
デバッグの状況は適時tweetしていた。こまめに書くことで気付くこともあるし、識者からのツッコミもある。このあたりで泥沼にハマっていたら@mkogaxさんよりコードの初期化漏れの指摘が。
PROMのA15についてArduino MEGAからの出力設定はされていても値が設定されていなかった。この状態で確認したらA15はオープンだった。修正し、ダンプを10回とって比較したら全部OK。

以下は23行目に初期化の抜けがあるコード。


 ということで思考の過程を整理してみました。動物が沼にはまってもがいている様子がわかると思います。突っ込んでくれた皆さんどうもありがとうございました。

 ちゃんとしたPROM読みのコードは次回。



PASOPIA/PASOPIA7のROMPAC1

※追記 表を改版しました

 PASOPIAはROMPAC1というカートリッジを使えば起動時に実行するROMを内蔵のものと差し替えることができる。RAMは64KBの全空間にあり、ROMは0x0000〜0x7FFF。メモリ空間に対する書き込みはRAMに対して行われるのでROMイメージをコピーした後にROMをdisableしてすべてRAM上で動かすことも可能。OA-BASICやMINI-PASCALのカートリッジが存在する。

 これはT-BASIC V1.1のROMPAC1カートリッジの中身。サイズは秋月電子のB基板程度。
IMGP3510

IMGP3509

 さて、PASOPIA7もROMPAC1カートリッジのスロットを持っているが、このT-BASIC V1.1カートリッジを挿しても動作しない。そこでPASOPIA/PASOPIA7の回路図とPASOPIA7テクニカルマニュアルからROMPAC1端子の比較表を起こしてみた。

ROMPAC1-pinassign

 PASOPIA7では一部の制御線が変更/追加になっている。pin11で本体ROMをdisableできるのは共通。pin20は内蔵RAMと、PASOPIA7で追加されたBIOSROMをdisableする信号。おそらくこの端子がT-BASICのROMPAC1ではGNDなので内蔵RAMまでdisableになって、PASOPIAとの非互換部分がどうこう以前に動かない気がする。
 このMEMINH端子はRAMをdisableするためにDRAMの*CAS信号を抑止している。*RASは出るのでリフレッシュは行われる。DRAMの内容を保存したままdisableにできるようになっている。さらにカートリッジに向けて8MHzのクロック($X2CLK)、メモリライト(CWR)、リフレッシュ信号(COLADD)が出ているので、どうもカートリッジ側にメモリとCPUを載せて動かせるようになっているらしい。本体内蔵RAMのデータを保護したまま切り離せるようになっているのもその対応だろう。

整理すると:
・ROMPAC1はPASOPIA内蔵ROMを置き換えて他の言語を動かすことができる
・PASOPIA用ROMPAC1はPASOPIA7に挿しても動かない
・PASOPIA7用ROMPAC1はCPU/ROM/RAMを内蔵したカートリッジも想定している

参考:
PASOPIA7 テクニカルマニュアル
PASOPIA回路図 I/O 1982年11月号
PASOPIA7回路図 I/O 1983年9月号

PASOPIA(PA7012)の分解写真と予防保守

 パソピア(PA7012 OA-BASICモデル)の予防保守ついでに分解写真。回路図はI/O 1982年11月号に掲載されている。

 ケースは底面一箇所のネジを外し、左右にあるツメを押しながら上面を外す。ツメが脆くなっており片方折ってしまった。電源ユニットは上部に載っているだけ。
IMGP3525

 マザーボード全体 プリンタと液晶ディスプレイへの接続はケーブルで引き出してある。
IMGP3526

 左下 FPASO1 34T775786G01 [B] [D]1
IMGP3539

  右上 カセットのコネクタとBASIC ROM
IMGP3536

 ROM拡大。TMM2364Pは8Kx8マスクROM。なぜか1個だけMBM2764。
[C2]:5315 2B  [C1]:5313 2C
[B2]:5314 2B  [B1]:MBM2764 008D?
IMGP3537

 右下 Z80CTC、キーボード接続用10P ICソケット、Z80PIO、Z80、64K DRAM。
IMGP3528

 中央下 TMM334P(CGROM)、HD46505、8255×3。
IMGP3532

 驚いたことにZ80とCTCはMOSTEK製。MK3880N-4 Z80-CPU
IMGP3531

MK3883N-4 Z80-CTC
IMGP3530

 左上 電源、白黒ディスプレイ、液晶ディスプレイのコネクタ、14MHz発振器。シルクに漢字表記。
IMGP3534

 中央上 リセットSW近辺。RS232Cの信号を引き出す16P ICソケット。これはPASOPIA7にはない。
IMGP3535

 左 PJ4 データ・ファイルユニット。これはPACスロット2と同じもの?
→回路図をみたらPACスロット2(PJ3)と14pinのセレクト信号を除き同一。
PACスロット2 18H〜、データファイルユニット 1CH〜
IMGP3533

 さて電源ユニットだがPASOPIA7で発煙した0.1μF250Vのフィルムコンデンサと同じものは電源スイッチの下にある。ネジはすべて外さないといけない。
IMGP3540

 すでにクラックがはいっていた。これを同等品と交換。
IMGP3541

 交換して元通りに組む。問題なし。
IMGP3543

 ところでパソピアの電源ユニットのパイロットランプはTLG103と思うのだがどうか。



記事検索
プロフィール

hardyboy

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