PC-9801-03 G9RUU CMT I/F 特にジャンパやスイッチ等は無い PC-9801VXの後期型で使用する際に調べた事をメモとして置いておく このボードは搭載時INT1を使用するので要注意 ★バージョン このボードは多くの改版が出ている。 基板の刻印 7240262xのxが 1: (470pF + 11kΩ)x2が手配線で追加されたバージョン 追加位置はいろいろ 3: ↑の修正を基板パターンとして反映 (3H3+3J1, 5J1+5J2)されたバージョン 4: 3Dに74LS175が基板パターンとして追加されたバージョン また、PC-9801-13では 3: 74LS157が追加(ワイヤ配線) シールでG9URTに修正 4: 74LS157が追加(ワイヤ配線) シールでG9URTに修正 G9URT: ↑の修正を基板パターンとして反映 ★非互換なバスの使用について -03は初期のボードなのでCバスのアサインがPC-9801VX以降と異なっている 前期型ならスロット1が互換バスだったが、後期型ではそれも削除されている。 ※PC-9801RX以降はCMT BIOSが消されているので考慮する必要はない筈 VXとそれ以前とで非互換なピンは具体的に9つで A37 S00 /INTA0 A38 S10 /NOWAIT0 A39 S20 /SALE1 A40 LOCK0/MACS0 B40 CPKILL0/EXHRQ10 B42 RQGT0 /EXHLA10 B46 HLDA00 /EXHLA20 B47 HRQ00 /EXHRQ20 B48 DMAGLD0/SBUSRQ1 またA46 SCLK1は10MHzなら9.8304MHz, 8MHzなら7.9872MHzが出力されている。 PC-9801-03では非互換なバスを使用していないためバスのアサイン的には接続可能 ★クロックについて 8251はシステムクロックと送受信クロックとで3系統のクロックを要する ・送信クロック(8251 #9 _TxC) A47 S18CLK1を1Jの74LS161で÷16したクロック(19.2kHz, 1200bps@16x)と それを更に2Jの74LS161で÷2したクロック(9.6kHz, 600bps@16x)を 3Hの74LS157でセレクトしている(A=600bps@16x B=1200bps@16x) ・受信クロック(8251 #25 _RxC) A47 S18CLK1を1Jの74LS161で÷4したクロック(76.8kHz)を 3Jの4020で÷8(9.6kHz!)および÷16(4.8kHz!)し、 それぞれ4J 4030のRC結合XOR(いわゆるダブルエッジトリガ)で2逓倍(※)し、 3Hの74LS157でセレクトしている(A=9.6kHz, 600bps@16x B=19.2kHz, 1200bps@16x) なぜ÷4と÷8のクロックを使っていないかよくわからないが、そうなっている ※)High時間はRC時定数に依存するのでデューティ比は50%ではない ・システムクロック(8251 #20 CLK) -03ではA46 SCLK1を1Hの74LS74で÷2したクロックが供給されている -13ではA46のSCLK1を1Hの74LS74で÷2したクロックと、 -03では未使用だった1Hの74LS74の上側で更に÷2したクロックとを、 手配線で追加した74LS157でスイッチして供給している ★-13で変更された箇所 ※完全には追っていないが筆者はこの程度の解析で充分だと主張している 74LS157で分周クロックを選択して8251へCLK供給を行う回路が主な変更点と考えられる 分周回路の追加(改造)、74LS157の追加の他にもアドレス系ロジックに変更点がある。 何が変更されているかについて解析を行ったのでメモ書きとして残しておく ちなみに、A05 AB011は8251 #12 C/_Dピンに直結している。 ●アドレスデコーダ 1B-74LS138 -03では次のように入力されている A A04 AB001 B A07 AB031 C 2E-74LS10の#12 _(A12 & A08 & A08) _(AB071 & AB041 & AB041) G2A A09 AB051 G2B A10 AB061 G1 _A42 _CPUENB10 (1G-74LS04(#6)で反転) CMTのIOポートは 1001 00x1 または 1001 01x1であるため、 1001 0xx1 (x=don't care)かどうかを判定しており、 Y1がLとなった時、CMTのポートアドレスと判別している -13では1Bの74LS138と2Eの74LS10の配線が改造されていて、 A A06 AB021 B A07 AB031 C 2E-74LS10の#12 _(A12 & A08 & A04) _(AB071 & AB041 & AB001) G2A A09 AB051 G2B A10 AB061 G1 _A42 _CPUENB10 (1G-74LS04(#6)で反転) 1001 00x1の場合はY0がL、1001 01x1の場合はY1がLとなる。 また、これに伴い、以下の箇所が改造されている。 ●8251のCS -03では1F-74LS00で_(_Y1(1B-74LS138の出力を1G-74LS04で反転) & _A06 _AB021 (1G-74LS04で反転)) した信号が入力されている -13では74LS138の出力Y0がそのまま入力されている ●データバストランシーバ1D-74LS245の#19 _OE -03ではY1(1B-74LS138の出力)が入力されている -13では(Y0&Y1)が入力されている ※1B-74LS138の出力を2H-74LS08でANDした信号 ●フリップフロップ2D-74LS175と1E-74LS175のCLK データバスB20-B13は1D 74LS245のバストランシーバを通過した後 HSBは2D、LSBは1Eの74LS175のDに入力されている データの更新タイミングとなるCLKは次のように作られている -03では74LS10で _(_Y1(74LS138の出力を1G-74LS04で反転) & A06 & _A34 IOW0 (1G-74LS04で反転)) された信号が1Dと2Eの74LS175のCLKに入力されている -13ではA06がカットされ、隣の_Y1(74LS138の出力を1G-74LS04で反転)が手配線によって接続。 つまり74LS10で _(_Y1 & _Y1 & _A34 IOW0 (1G-74LS04で反転)) された信号が1Dと2Eの74LS175のCLKに入力されている このうち、B17 DB121が保持された信号が74LS157の_A/Bに接続され、SCLKの分周比を決定している。 これは制御ポートの4bit目であり、SCLKが8MHzか5MHzかを決定するものである。 A=÷2、 B=÷4であるため、 DB121がLow=0なら÷2、High=1なら÷4の分周比となる。 ここまで書けば-03を-13に改造できそうなものですが、どうでしょう ※完全に解析した訳ではないので、本当に改造する場合は自己責任にて 以下、自分用 PC-9801-03 各ICがどこに繋がっていて、何の意味を持っているか 1B 74LS138 上記参照 1D 74LS245 データバストランシーバ 2D 74LS175 HSB CMT制御ポートデータラッチ 1E 74LS175 LSB CMT制御ポートデータラッチ 2E 74LS10 3入力NAND (D-FFのCLK) #8 == _(#9=_A34 & #10=A06 & #11=_Y1(1B-74LS138)) ※-13では#10=#11=_Y1となっている (1B-74LS138のC)#12 == _(#1=A08 & #2=A08 & #13=A12) ※-13では#1=#2の配線がカットされ、#2=A04に変更 (B25 INT1) #6 == _(#5=1F-74LS00#8 & #4=1F-74LS00#11 & #3=1F-74LS00#3) 1F 74LS00 2入力NAND (8251 #11 CS) #6 == _(#5=_A06 & #4=_Y1(1B-74LS138)) (2E-74LS10#5) #8 == _(#9=1E-74LS175#10=ラッチB14(bit 1 RxRDY割込EN) & #10=8251#14 RxRDY) (2E-74LS10#4) #11 == _(#12=1E-74LS175#7=ラッチB15(bit 2 RxEMP割込EN) & #13=8251#18 TxE) (2E-74LS10#3) #3 == _(#1=1E-74LS175#15=ラッチB13(bit 0 TxRDY割込EN) & #2=8251#15 TxRDY) 1G 74LS04 NOT #2 = _A34 #4 = _Y1(1B-74LS138) #6 = _A42 (8251 #21 RESET) #8 = 2H-74LS08#8(_RESET) #10= _A06 (3F1/3F4の抵抗)#12= _(2J-74LS161 QC(S18CLK÷16÷8))=_4013#3 1H 74LS74 SCLK分周(-03では片側未使用) 2H 74LS08 2入力AND (3H-74LS157#5, #6, #13, #14) #3 == (#2=3E-4081#10 & #1=2H2 1kOhmをはさんで+5V) (未使用) #6 (#4, #5はNC) ※-13では (1D-74LS245#19) #6 == (#4=Y0 & #5=Y1) (_RESET) #8 == _(#9 = #10 = B34 RESET0) (未使用) #11 (#12, #13はNC) それ以外のICは-03/-13の差が無さそうだったので調べていません