MPSロゴ EMJシリーズ技術(解析)情報 トップページに戻る
はじめに「戯言」(読み飛ばしOK)

そもそも、このボード(EMJ-8000SB)を作ろうとしたきっかけは複数あって

1:セカンドバスベースボードのサブボード固定穴に適合するスペーサーが現役で手に入ることを知る(Twitterより)

2:メルコのEMJメモリボードの回路構成を見て思ったよりシンプルで「これなら同等品が作れそう」と思ったことと
現役時代にたくさん生産されたため、今でもヤフオクで部品どり用の低容量EMJメモリボードが手に入りやすいこと

双璧(?)をなす、アイ・オー・データのPC34シリーズは基板のモデルチェンジと回路バリエーションが多く解析がしにくいうえに
同一基板の入手性の問題がどうしてもあって断念。機能的にはEMJよりPC34のほうが全体的に高機能なんだけれどね

3:昔、PC-9801USのWaveMaster(FM音源/SCSIボード)上に 無理やりEMJ-16Mを載せ、最大積載メモリを内蔵3.6MB+16MB
=14.6MB+はみ出し5MB RAMディスクというイカれたコンボカードを作っていました。後年この無理やりメモリボードが壊れて
しまい元の内蔵3.6MBに戻っていたが、せっかくオリジナルメモリサブボードを作るなら復活させてみよう!と一発奮起してみた
(ただし実装面積の都合でメモリ容量は半分になって内蔵3.6MB+8MB=11.6MB、その代わり実装安定性は増しました)

4:Cバススロットが1つしかなくSCSIかメモリか究極の選択を迫られる(?)国民機「PC CLUB(PC-286C)」を手に入れたため←重要
※最近になって一部界隈でPC-98互換機系唯一のキーボード一体型PCであるPC CLUBのアップグレード熱が再燃しています

以上4点が作ろうと思ったきっかけです
で、セカンドバスサブボード製作の一番の障壁であるサブボード用専用コネクタはどうしたって?

・・・フフフ秘密です(ベースボードのコネクタ部分をちょっと解析すれば分かりますよ)


EMJシリーズのメモリコントローラーは現在知る限り3種類あります

MGA-6(0.8mm 120ピンQFP)

最大サポートメモリ容量8MB
増設メモリサブボード用コネクタが4個ある
のちのEMJ用メモリサブボードである
「EXJシリーズ」とは物理的に互換性がない

サポートメモリアドレスA0-A9
(最大4Mbit=1チップ当たり512KB)
RAS/CASアドレス=4本
※ただし製品的には1MbitのDIPメモリ版しかない

MGA-7との違いはサポートメモリ容量が
2MB/4MB/8MBの3種類しかないところ
(MGA-7は1/2/3/4/5/6/8MBをサポート)
どのくらいの期間販売されたのか不明

MGA-7(0.8mm 120ピンQFP)

最大サポートメモリ容量8MB
増設メモリサブボード用コネクタが2個ある
EMJ用メモリサブボードである「EXJシリーズ」が
使用可能(1MB/2MB/4MB)

サポートメモリアドレスA0-A9
(最大4Mbit=1チップ当たり512KB)
RAS/CASアドレス=4本

のちのMGA-21メモリコントローラーが登場
するまで、かなりの長い期間使用された

EMJシリーズで一番よく見るメモリコントローラー
製品価格や実装メモリタイプの推移により
mkⅡ→mkⅢ→L→R→旧S(のちに無印化)がある

MGA-21(0.8mm 136ピンQFP)

最大サポートメモリ容量16MB
増設メモリサブボード用コネクタが2個ある
EMJ用メモリサブボードである「EXJシリーズ」が
使用可能(1MB/2MB/4MB)

サポートメモリアドレスA0-A10
(最大16Mbit=1チップ当たり2MB)
RAS/CASアドレス=8本

EMJシリーズ末期に採用された新しいメモリ
コントローラ。これを採用したEMJボードは
あまり見かけないのでわりと貴重

背面のシリアルNoラベルから「新S」と呼ばれる
(いつもの黒いプラ板にはSとは書いていない)

MGA-6メモリコントローラーピンアサイン
ピン 信号   ピン 信号   ピン 信号   ピン 信号
001 GND   031 GND   061 GND   091 GND
002 IOCHK(A32)   032 DB14(B19)   062 MEM A4   092 RSW2-4
003 AB23(A29)   033 DB13(B18)   063 MEM A3   093 RSW2-2
004 AB22(A28)   034 DB12(B17)   064 MEM A2   094 RSW2-1
005 AB21(A27)   035 DB_CS(H)1   065 MEM A1   095 IC1-7
006 AB20(A26)   036 DB_CS(H)2   066 MEM A0   096 IC1-6
007 AB19(A25)   037 GND?   067 MEM CAS4   097 IC1-5
008 AB18(A24)   038 DB11(B16)   068 MEM RAS4   098 IC1-3
009 AB17(A23)   039 DB10(B15)   069 MEM CAS3   099 IC1-2
010 AB16(A22)   040 DB9(B14)   070 MEM RAS3   100 MWE(B45)
011 GND   041 GND   071 GND   101 GND
012 AB15(A20)   042 DB8(B13)   072 MEM CAS2   102 RESET(B34)
013 AB14(A19)   043 DB7(B12)   073 MEM RAS2   103 SCLK(A46)
014 AB13(A18)   044 DB6(B10)   074 MEM CAS1   104 ?
015 AB12(A17)   045 2M/4M   075 MEM RAS1   105 ?
016 VCC   046 VCC   076 VCC   106 VCC
017 AB11(A16)   047 EXJ 4M   077 MEM WE(L)   107 IORDY(A45)
018 AB10(A15)   048 DB5(B9)   078 MEM WE(H)   108 BHE(A44)
019 AB9(A14)   049 DB4(B8)   079 Parity DIN2   109 RFSH(A43)
020 AB8(A13)   050 DB3(B7)   080 Parity DIN1   110 CPUENB(A42)
021 GND   051 GND   081 GND   111 GND
022 AB7(A12)   052 DB2(B6)   082 Parity DOUT2   112 MACS(A40)
023 AB6(A10)   053 DB1(B5)   083 Parity DOUT1   113 SALE(A39)
024 AB5(A9)   054 DB0(B4)   084 DB_CS(L)1   114 NC?
025 AB4(A8)   055 MEM A9   085 DB_CS(L)2   115 NOWAIT(A38)
026 AB3(A7)   056 MEM A8   086 SW1-8   116 MWC(A36)
027 AB2(A6)   057 MEM A7   087 SW1-4   117 MRC(A35)
028 AB1(A5)   058 MEM A6   088 SW1-2   118 IOW(A34)
029 AB0(A4)   059 MEM A5   089 SW1-1   119 IOR(A33)
030 DB15(B20)   060 VCC   090 SW2-8   120 VCC
各信号名 備考
・AB**(A*)はCバスアドレスバス及びピン番号(AB00~AB23の24bit)

・DB**(B*)はCバスデータバス及びピン番号(DB00~DB15の16bit)

・MGA-6の100~119ピンはCバス各種制御信号・電源など。一部不明ピンあり
チップには繋がっているがCバスには繋がっていない線、ピンの位置的に
Cバス制御信号のどれかだとは思われるが・・・

・55~59 62~83はメモリチップ制御信号・電源など
各信号ともバッファを通したうえで22Ωの抵抗を挟んで各チップに接続

・RSW1/RSW2はロータリスイッチ信号、IC2-*はボード根元にある黒い物体のこと

8MB搭載の内訳は1チップ128KB(1bit)×16チップ=2MB(16bit)でRAS/CASが1本
それで使えるRAS/CASが4本分あるので2MB×4で8MBというワケ

ベースボードの容量設定は45ピン。2MB(GND)/4MB(オープン)のみサポート
サブボードの容量設定は47ピンで行いこちらは4MB固定。ベースボード合わせて8MB



MGA-7メモリコントローラーピンアサイン
ピン 信号   ピン 信号   ピン 信号   ピン 信号
001 VCC   031 GND   061 VCC   091 GND
002 AB23(A29)   032 DB13(B18)   062 EXJ(CN2-B5)   092 Parity DOUT2
003 AB22(A28)   033 DB12(B17)   063 MEM A9(EXJ)   093 Parity DOUT1
004 AB21(A27)   034 DB11(B16)   064 MEM A8(EXJ)   094 RSW1-8
005 AB20(A26)   035 DB10(B15)   065 MEM A9   095 RSW1-4
006 AB19(A25)   036 DB9(B14)   066 MEM A8   096 RSW1-2
007 AB18(A24)   037 DB8(B13)   067 MEM A7   097 RSW1-1
008 AB17(A23)   038 DB7(B12)   068 MEM A6   098 RSW2-8
009 AB16(A22)   039 DB6(B10)   069 MEM A5   099 RSW2-4
010 AB15(A20)   040 DB5(B9)   070 MEM A4   100 RSW2-2
011 AB14(A19)   041 DB4(B8)   071 MEM A3   101 RSW2-1
012 AB13(A18)   042 DB3(B7)   072 MEM A2   102 JP1(F/E)
013 AB12(A17)   043 DB2(B6)   073 MEM A1   103 IC2-7
014 AB11(A16)   044 DB1(B5)   074 MEM A0   104 IC2-5
015 GND   045 DB0(B4)   075 GND   105 IC2-3
016 NC   046 DB(H) OE   076 NC   106 IC2-2
017 AB10(A15)   047 DB(L) OE   077 NC   107 MWE(B45)
018 AB9(A14)   048 DB DIR   078 MEM RAS1   108 RESET(B34)
019 AB8(A13)   049 NC   079 MEM CAS1   109 BHE(A44)
020 AB7(A12)   050 MEM(H) OE   080 MEM RAS2   110 RFSH(A43)
021 AB6(A10)   051 MEM(L) OE   081 MEM CAS2   111 CPUENB(A42)
022 AB5(A9)   052 NC   082 MEM RAS3   112 MACS(A40)
023 AB4(A8)   053 NC   083 MEM CAS3   113 SALE(A39)
024 AB3(A7)   054 JPM   084 MEM RAS4   114 NOWAIT(A38)
025 AB2(A6)   055 JPC   085 MEM CAS4   115 MWC(A36)
026 AB1(A5)   056 JP0   086 MEM WE(H)   116 MRC(A35)
027 AB0(A4)   057 EXJ(CN2-A3)   087 MEM WE(L)   117 IOW(A34)
028 DB15(B20)   058 EXJ(CN2-A4)   088 Parity DIN2   118 IOR(A33)
029 DB14(B19)   059 EXJ(CN2-B4)   089 Parity DIN1   119 IOCHK(A32)
030 VCC   060 GND   090 VCC   120 GND
各信号名 備考
・AB**(A*)はCバスアドレスバス及びピン番号(AB00~AB23の24bit)

・DB**(B*)はCバスデータバス及びピン番号(DB00~DB15の16bit)

・MGA-7の107~119ピンはCバス各種制御信号

・63~74 78~89 92~93はメモリチップ制御信号
各信号ともバッファを通したうえで22Ωの抵抗を挟んで各チップに接続

・RSW1/RSW2はロータリスイッチ信号、IC2-*はボード根元にある黒い物体のこと

8MB搭載の内訳は1チップ512KB(4bit)×4チップ=2MB(16bit)でRAS/CASが1本
それで使えるRAS/CASが4本分あるので2MB×4で8MBというワケ

EMJ-6000(6MB)やEMJ-8000(8MB)にはEXJメモリ増設用コネクタが無いのは
単純に「最大認識容量の8MBを超えるから」
EMJ-6000+EXJ-2000なら8MBに収まるけど、EXJ-4000を挿しても8MB止まりなので
エンドユーザーからすれば「不良品だ~」になる。過去製品との互換性の宿命

・ベースボード54~56ピン(JPM/JPC/JP0)、サブボード57~59,62ピン(EXJ側)を
複数組み合わせてGNDに接続することでメモリ容量を1MB/2MB/4MBに設定できる
(自動認識はしない)。当然ながら実実装メモリ以上を指定するとエラーになる

MGA-7容量指定設定(ベースボード) 容量指定設定(サブボード)
ピン番号 54 55 56 57 58 59 62
1MB CLOSE OPEN CLOSE CLOSE OPEN CLOSE CLOSE
2MB OPEN OPEN CLOSE OPEN OPEN CLOSE CLOSE
4MB OPEN OPEN OPEN OPEN OPEN OPEN CLOSE
CLOSE=0Ω(直結)の抵抗でGNDに接続する
62番ピンでEXJサブボードの接続を検知(ボードありでLow)



MGA-21メモリコントローラーピンアサイン
ピン 信号   ピン 信号   ピン 信号   ピン 信号
001 VCC   035 AB0(A4)   069 MEM A8   103 VCC
002 GND   036 AB1(A5)   070 MEM A9   104 GND
003 SW1-8   037 AB2(A6)   071 MEM A10   105 Parity DOUT1
004 SW1-4   038 AB3(A7)   072 MEM A8(EXJ)   106 Parity DOUT2
005 SW1-2   039 AB4(A8)   073 MEM A9(EXJ)   107 Parity DIN1
006 SW1-1   040 AB5(A9)   074 MEM A10   108 Parity DIN2
007 JS4   041 AB6(A10)   075 GND   109 DB DIR
008 JSB(CN2-B5)   042 AB7(A12)   076 DB0(B4)   110 MEM OE(H)
009 JSC(CN2-A4)   043 AB8(A13)   077 DB1(B5)   111 MEM OE(L)
010 JSD(CN2-A3)   044 AB9(A14)   078 DB2(B6)   112 NC
011 JS0(CN2-B4)   045 AB10(A15)   079 DB3(B7)   113 MEM WE(H)
012 JS1   046 AB11(A16)   080 DB4(B8)   114 MEM WE(L)
013 IC6-3   047 AB12(A17)   081 DB5(B9)   115 VCC
014 IC6-5   048 AB13(A18)   082 DB6(B10)   116 VCC
015 JP1(F/E)   049 AB14(A19)   083 DB7(B12)   117 MEM RAS1
016 VCC   050 VCC   084 VCC   118 VCC
017 GND   051 GND   085 GND   119 GND
018 RESET(B34)   052 AB15(A20)   086 DB8(B13)   120 MEM CAS1
019 BHE(A44)   053 AB16(A22)   087 DB9(B14)   121 MEM RAS2
020 RFSH(A43)   054 AB17(A23)   088 DB10(B15)   122 MEM CAS2
021 CPUENB(A42)   055 AB18(A24)   089 DB11(B16)   123 MEM RAS3
022 MACS(A40)   056 AB19(A25)   090 DB12(B17)   124 MEM CAS3
023 SALE(A39)   057 AB20(A26)   091 DB13(B18)   125 MEM RAS4
024 MWC(A36)   058 AB21(A27)   092 DB14(B19)   126 MEM CAS4
025 MRC(A35)   059 AB22(A28)   093 DB15(B20)   127 MEM RAS5
026 IOW(A34)   060 AB23(A29)   094 GND   128 GND
027 IOR(A33)   061 SW2-8   095 MEM A0   129 MEM CAS5
028 MWE(B45)   062 SW2-4   096 MEM A1   130 MEM RAS6
029 IOCHK(A32)   063 SW2-2   097 MEM A2   131 MEM CAS6
030 JM4   064 SW2-1   098 MEM A3   132 MEM RAS7
031 JMC   065 VCC   099 MEM A4   133 MEM CAS7
032 JMD   066 GND   100 MEM A5   134 MEM RAS8
033 JM0   067 DB(L) OE   101 MEM A6   135 MEM CAS8
034 JM1   068 DB(H) OE   102 MEM A7   136 IC6-2
各信号名 備考
・AB**(A*)はCバスアドレスバス及びピン番号(AB00~AB23の24bit)

・DB**(B*)はCバスデータバス及びピン番号(DB00~DB15の16bit)

・MGA-21の18~29ピンはCバス各種制御信号

・69~74 95~102 105~114 117,120~135はメモリチップ制御信号
各信号ともバッファを通したうえで22Ωの抵抗を挟んで各チップに接続

・RSW1/RSW2はロータリスイッチ信号、IC6-*はボード根元にある黒い物体のこと

・16Mbitメモリをサポートし、信号線理論上は1チップ2MB×32個=64MBまで
物理的要因を満たせば搭載可能だが、MGA-21メモリコントローラーが16MBまで
しかサポートしないので、16MB以上メモリチップを載せても無駄になる

64MB搭載の内訳は1チップ2MB(4bit)×4チップ=8MB(16bit)でRAS/CASが1本
それで使えるRAS/CASが8本分あるので8MB×8で64MBというワケだが
設定が16MBまでしかないので2MB×8チップの16MBまで(RAS/CAS2本)

なお4Mbit(512KB)チップ使用時は512KB(4bit)×4チップ=2MB(16bit)で
RAS/CAS1本、RAS/CASを8本使って2MB×8で16MB、計算通り

・ベースボード30~34ピン(JM*)、サブボード7~12ピン(JS* EXJ側)を
複数組み合わせてGNDに接続することでメモリ容量を1MB/2MB/4MB/8MBに
設定できる(自動認識はしない)、なおEXJ側には8MBの設定はない(12ピン)
当然ながら実実装メモリ以上を指定するとエラーになる

MGA-21容量指定設定(ベースボード) 容量指定設定(サブボード)
ピン番号 30 31 32 33 34 7 8 9 10 11 12
1MB OPEN OPEN CLOSE CLOSE CLOSE OPEN CLOSE OPEN CLOSE CLOSE CLOSE
2MB OPEN OPEN OPEN CLOSE CLOSE OPEN CLOSE OPEN CLOSE OPEN CLOSE
4MB OPEN OPEN OPEN CLOSE OPEN OPEN CLOSE OPEN OPEN OPEN CLOSE
8MB OPEN OPEN OPEN OPEN OPEN OPEN CLOSE OPEN OPEN OPEN OPEN
CLOSE=22Ωの抵抗でGNDに接続する。7,9,30,31ピンは常時未接続(NC)でいいかも
8番ピン(JSB)でEXJサブボードの接続を検知(ボードありでLow)


メモリ増設サブボード「EXJシリーズ」
前期型 EXJ-2000L(4201EXJ) 後期型 EXJ-4000S(4204EXJ)

EMJ-1000(1MB)/2000(2MB)/4000(4MB)を+2MB、+4MBするサブボード。今でもオークションなどで潤沢に?手に入るベースボードに
対してEXJ単品で出ることはまずなく、たいていはベースボードにすでに装着された状態で出ることが多い

しかも、そのサブボード付きで出る頻度はかなり少なく、EMJシリーズ全体に生産数からすればEMJ-6000/EMJ-8000並みに
売れなかったんじゃないかなと思う。まぁDOSで使用する限り多くても4MBあれば十分だし、メモリを要求するWindowsに
Cバスメモリはいうまでもなく、今でも中古で手に入りやすい容量がほとんど2MB/4MBなのが色々と物語っている

MGA-7が最大サポートメモリ8MBの関係で4MB以上のEXJは存在しない。ベースがEMJ-1000/EMJ-2000だからってEXJ-6000などは
存在しない。8MBを超えられるMGA-21であっても互換性維持のために8MBモデルには増設コネクタがついていない

EXJシリーズのピンアサイン。写真左側がCN1で右側がCN2、奥から手前にかけてA1,A2....A16,A17、B1,B2....B16,B17の
各コネクタ34ピン、合計68ピンの追加信号線で構成されている

EXJシリーズピンアサイン(MGA-7 MGA-21共用)
CN1(左側穴) CN1(右側穴)   CN2(左側穴) CN2(右側穴)
A1 VCC B1 VCC   A1 VCC B1 VCC
A2 VCC B2 VCC   A2 VCC B2 VCC
A3 VCC B3 VCC   A3 JSM※ B3 VCC
A4 MEM RAS4 B4 MEM RAS3   A4 JSC※ B4 JS0※
A5 MEM CAS4 B5 MEM CAS3   A5 GND B5 EXJ EN※
A6 GND B6 GND   A6 GND B6 MEM OE
A7 MEM WE(H) B7 MEM WE(L)   A7 DB15 B7 GND
A8 GND B8 MEM A9   A8 DB13 B8 DB14
A9 GND B9 MEM A8   A9 DB12 B9 GND
A10 Parity DOUT2 B10 MEM A7   A10 DB10 B10 DB11
A11 GND B11 MEM A6   A11 DB9 B11 GND
A12 Parity DOUT1 B12 MEM A5   A12 DB7 B12 DB8
A13 GND B13 MEM A4   A13 DB6 B13 GND
A14 Parity DIN1 B14 MEM A3   A14 DB4 B14 DB5
A15 GND B15 MEM A2   A15 DB3 B15 GND
A16 Parity DIN1 B16 MEM A1   A16 DB1 B16 DB2
A17 GND B17 MEM A0   A17 DB0 B17 GND

※組み合わせによるサブボード容量定義(1MB/2MB/4MB)
JSM=MGA-7 57ピン/MGA-21 10ピン
JSC=MGA-7 58ピン/MGA-21 9ピン
JS0=MGA-7 59ピン/MGA-21 11ピン
EXJ EN=MGA-7 62ピン/MGA-21 8ピン

前期型には1MBの設定がありEXJ-1000は製品として存在する(現物はみたことがない)、後期型は2MB/4MB切替のみ

EMJ-2000/4000(初代MGA-6版)


クリックで「ほどほどの」高解像版が別ウインドウで開きます

セカンドバス版を作るつもりはないですが、せっかく入手したので他のEMJ同様サブボード部分の解析してみました
ちなみにサブボード部分は相当にレア(でも価値はない)らしく、いまだに入手できていません

このボードは2MB版で、右の写真の空きパターンに1Mbit(128KB)のメモリを18個追加して
右端の「J1」と書かれたジャンパを撤去することで4MBとして認識されます


クリックで「まぁまぁな」高解像版が別ウインドウで開きます。小さいと文字が読めませんからね

冒頭で「MGA-6版 MGA-2000/4000」がいつまで発売されていたか分からないと書きましたが
せっかくなので昔の雑誌(月刊ASCII)をひっくり返して広告から調べてみました

左:MGA-6版EMJ(1989年5月号より) 右:MGA-7版EMJ-mkⅡ(1989年11月号より)
なんと!約半年間の展開でしたか。MGA-7版は少なくとも3年間はマイナーモデルチェンジを繰り返し発売が継続されたのに対し
何という短さ!、やはりMGA-6版はMGA-7版とチップのピンアサインも色々と違うところを見ると、プロトタイプ感が否めません

MGA-6版8MBで255,000円(+消費税3%)、MGA-7版8MBで230,000円(半年でちょっと下がった)。そして16MBは驚異の450,000円!

EXJ(MGA-6)シリーズのピンアサイン一覧。写真左側のシルク番号参照、A1,A2....A12,A13、B1,B2....B12,B13の
各コネクタ26ピン、合計104ピン(多い!)の追加信号線で構成されている

EXJシリーズピンアサイン(MGA-6用)
CN1(上側ピン) CN1(下側ピン)   CN2(上側ピン) CN2(下側ピン)   CN3(左側ピン) CN3(右側ピン)   CN4(左側ピン) CN4(右側ピン)
A1 GND B1 DB0(H)   A1 GND B1 DB8(H)   A1 GND B1 EXJ EN   A1 GND B1 MEM A8
A2 GND B2 DB0(L)   A2 GND B2 DB8(L)   A2 MEM A0 B2 GND   A2 GND B2 MEM A9
A3 DB1(H) B3 DB1(L)   A3 DB9(H) B3 DB9(L)   A3 MEM A1 B3 GND   A3 MEM WE(H) B3 MEM WE(L)
A4 GND B4 DB2(H)   A4 GND B4 DB10(H)   A4 MEM A2 B4 GND   A4 GND B4 Parity DIN1
A5 DB2(L) B5 DB3(H)   A5 DB10(L) B5 DB11(H)   A5 MEM A3 B5 GND   A5 GND B5 Parity DOUT1
A6 GND B6 DB3(L)   A6 GND B6 DB11(L)   A6 MEM A4 B6 GND   A6 Parity DIN2 B6 Parity DOUT2
A7 DB4(H) B7 DB4(L)   A7 DB12(H) B7 DB12(L)   A7 MEM A5 B7 GND   A7 GND B7 MEM RAS3
A8 GND B8 DB5(H)   A8 GND B8 DB13(H)   A8 MEM A6 B8 GND   A8 GND B8 MEM CAS3
A9 VCC B9 DB5(L)   A9 VCC B9 DB13(L)   A9 MEM A7 B9 GND   A9 GND B9 MEM RAS4
A10 VCC B10 DB6(H)   A10 VCC B10 DB14(H)   A10 VCC B10 VCC   A10 GND B10 MEM CAS4
A11 VCC B11 DB6(L)   A11 VCC B11 DB14(L)   A11 VCC B11 VCC   A11 VCC B11 VCC
A12 VCC B12 DB7(H)   A12 VCC B12 DB15(H)   A12 VCC B12 VCC   A12 VCC B12 VCC
A13 GND B13 DB7(L)   A13 GND B13 DB15(L)   A13 GND B13 GND   A13 VCC B13 VCC

圧倒的な電源ピン(VCCおよびGND)の多さ。やはりメモリバスを少なからず延長するので安定を考慮して電源回りを重厚にしたい
という設計思想の思惑でしょうか?。MGA-7版EXJのサブボードコネクタと比べると信号線周りの慎重さが目立ちます

DB*(H)やDB*(L)となっているのは、データバスに接続するバスバッファが、74LS244(3ステートバッファ・片方向伝送)に
なっている関係だと思っています。読み込み時にはメモリ書き込み側のデータを止める、逆は読み込み側を止める
実際に8bitバッファが4個つながっているので。何で双方向3ステートバッファである74LS245を使わなかったのかは謎
(MGA-7版EMJはデータバスに接続するバスバッファがちゃんと74LS245になっている)、プロトタイプの迷い?

EMJ-12MとEMJ-16Mの怪!?


派生の多い「EMJ-16M(EMJ-12M)」の中から、所有するMGA-7版EMJ-16Mを紹介

前述の通り、MGA-7メモリコントローラーは1チップで8MBまでしかサポートしていないので16MBを実現するには裏表に
メモリコントローラとメモリチップを実装する必要があります。間接的にEMJ-8000をCバスに2枚挿しているのと同じです

EMJ-16は裏表にそれぞれ8MBのメモリチップとメモリコントローラーを、EMJ-12Mは表に8MB、裏に4MBという
中途半端にメモリチップをケチったラインナップが存在します

たったメモリ4MBケチったEMJ-12Mなんていらんやんけ!と思われがちですが、当時は本当にメモリは「半導体の砂金」と
言われるくらい1MBあたりの単価がとても高かったんです・・・



ちなみにEMJ-16の派生には1Mbit(128KB)チップを片面で32個+パリティチップを4個使って4MB
両面で合計72個を使い8MBを実現した上に、巨大なサブボードにも同等数のメモリチップを搭載したと思われる
狂気としか言いようがないEMJ-16がありました

もう少し時代が下るとメモリチップの集積度も上がり、値段も下がり、新しいメモリコントローラの採用によって
1つのメモリコントローラで16MBを一気に制御できるこういうEMJ-16も登場しました

手持ちのEMJ-16(S)が16MBを実現するのに表裏でメモリコントローラとチップを載せていたのに対し、上記のEMJ-16Mは
裏面にはメモリコントローラが無かったでので「こりゃMGA-21を使ってるな」と解析の際の大きな参考になりました

さて前置きが過ぎましたが「怪」の話。MGA-7版EMJ-16にはEMJ-8000には見られないGAL(ユーザーが自由に回路を
定義できるプログラマブル・ロジック・デバイス)が回路に含まれています


回路解析にコレがあると一気に解析の難易度が上がる(事実上解析が不可能になる)のですが、EMJ-16MのGALは
解析こそしませんでしたが、周辺の回路からなんとなくやっている処理が察することができました

そのやっている処理とは「表面と裏面のMGA-7のロータリスイッチの設定を橋渡ししている」ということです

ロータリスイッチSW1はEMJ搭載前のメモリ容量を、SW2はEMJの枚数を設定しますが、GALは表面のロータリスイッチの
SW1メモリ容量に8(2進数で1000)+増設前搭載メモリ設定、SW2 EMJ枚数に1を足した値を裏面のMGA-7に与えています

これでEMJ搭載前メモリが2MBとすると8+2MBの10MBが裏面のMGA-7に伝えられ、裏面のメモリは10MBからメモリカウントが
スタートするということです(そして14.6MBの壁を破ってあふれるわけで)

まぁ実際に解析してないんで、たぶんそういう処理をしてるんだろうなーという願望です(ひどい)

EMJ-16Mのセカンドバス化はメモリチップやメモリコントローラの実装部分の問題もありますが、こういう
「ちょっとしたひと手間」が回路設計の妨げになっていたこともあり見送られました

MGA-21版EMJの存在は本当にありがたかった。MGA-7版しか知らなかったら片面16MBの
EMJ-16MSBは登場しなかったことになります→開発したけど、チップの存在が希少なので完全自分用

MGA-21版EMJは流通量が少なくて入手しにくいボードなので、作っても完全自分用ですね


備忘録:MGA-21関連

自作基板(EMJ-16MSB)への部品移植で貴重なMGA-21版EMJを部品どりのためにバラしてしまうので、その前に元の姿をスキャンして
イメージとして残しておきます。あと中古で手に入るEMJからMGA-7チップ版とMGA-21チップ版の識別方法なども記しておきます


左:EMJ-4000:最大容量8MB(1チップ512KB×16チップ)。回路設計もMGA-7版とほぼ同一
MGA-21チップ自体にはメモリアドレスA10(16Mbit対応)が存在するが接続されていない、何でMGA-21チップ使った!?

右:EMJ-4000:最大容量2MB×8bitチップ4個で8MBか、2MB×4bitチップ8個で16MB、どちらかの組み合わせ。採用チップの
都合上、最小容量は4MB(2MB×8bit×2)のみ、2MBのラインナップは存在しない。無論4Mbitチップを使った場合は別
当然16Mbitチップを使用しているので、MGA-21のメモリアドレスA10はメモリチップに接続されている

MGA-21搭載EMJの見分け方

EMJに付いている、いつものBUFFALOの黒いプラスチックカバーの右下(カードエッジ端子が手前の場合)に
「8000EMJ」とシルク文字が確認できる場合は、MGA-21(4Mbit DRAM搭載)版で
「81G8EMJ-AA」の文字が確認できる場合は、16Mbit DRAM搭載版です

12MBとか16MBとかの大容量版だとまた扱いが変わってくるでしょうが、もし裏面が確認できる場合は裏面に
メモリチップだけでメモリコントローラーが見当たらない場合はMGA-21搭載です(上記EMJ-16Mのリンク参照)