mikecatのアイコン画像
mikecat 2023年05月05日作成 © CC BY 4+
製作品 製作品 閲覧数 1373
mikecat 2023年05月05日作成 © CC BY 4+ 製作品 製作品 閲覧数 1373

MSX向けROM基板を使って拡張用RAMカートリッジを作る

MSX向けROM基板を使って拡張用RAMカートリッジを作る

MSX向けのROMカートリッジ作成用の基板が売られていたので、これを使ってRAMの拡張ができるカートリッジを作ってみた。

用意したパーツ

もの 詳細 入手先
カートリッジケース - BOOTH (筆選び工房)
基板 MSX 64K Simple ROM Cartridge BOOTH (Illegal function call)
SRAM BS62LV256PIP70 256K (32Kx8bit) 若松通商
積層セラミックコンデンサー 0.1μF 100V X7R 5mmピッチ 秋月電子通商

用意したパーツ

作り方

ピン配置の確認

今回用いる基板は、Flash ROM の SST39SF010A を用いるように設計されている。
そこで、このICと、今回用いる SRAM の BS62LV256PI のピン配置を比較する。

+-------- BS62LV256PI --------+
|                             |
|         SST39SF010A         |
|   (A18)  NC  v  VDD         |
|         A16     WE#         |
A14       A15      NC (A17) VCC
A12       A12     A14       ~WE
 A7        A7     A13       A13
 A6        A6      A8        A8
 A5        A5      A9        A9
 A4        A4     A11       A11
 A3        A3     OE#       ~OE
 A2        A2     A10       A10
 A1        A1     CE#       ~CE
 A0        A0     DQ7       DQ7
DQ0       DQ0     DQ6       DQ6
DQ1       DQ1     DQ5       DQ5
DQ2       DQ2     DQ4       DQ4
GND       VSS     DQ3       DQ3

すると、GND、~CE、~OE、DQ0~DQ7、A0~A13 の配置は同じであることがわかった。
一方、VCC、~WE、A14 の配置は異なるので、この違いをうまく吸収してやらないといけない。

ジャンパーの設定方法の確認

今回用いる基板は Rev:D であり、A14、A15、A17、A18 に接続する信号を以下のようにジャンパーを用いて設定できる。

基板のジャンパーの設定方法

MSXの信号とRAMの信号の接続は、以下のようにしたい。

基板の表示 RAMの信号 接続先 (MSXの信号)
A17 VCC +5V
A14 ~WE ~WR
A15 A14 A14
A18 なし (GND)

基板のジャンパーは、初期状態では以下のように接続されている。

基板の表示 接続先 (MSXの信号)
A17 GND
A14 A14
A15 A15
A18 GND

よって、以下のように接続を行えばよい。

  1. 基板の表示 A17、A14、A15 のジャンパーの接続を切る。
  2. 基板の表示 A17 の上のジャンパーの左右を接続する。
  3. 基板の表示 A14 の上のジャンパーの左側を、基板の表示 A15 のジャンパーの右側に接続する。
  4. 基板の表示 A14 のジャンパーの右側を、IC1のピン31 (上段の左から2番目) に接続する。

実装

ジャンパーの接続を切る

カッターナイフで切る対象のジャンパーの間の繋がっている部分を削る。
ある程度削ったら、テスターで切れていることを確認する。
まわりの余計な部分を削らないように注意する。

ジャンパーの接続を切った状態

ジャンパーを接続する

接続する対象のジャンパーを接続する。
隣あっていないジャンパーは、スズメッキ線を用いて接続した。
余計な所に繋がらないように注意する。

ジャンパーを接続した状態

残りの部品を実装する

SRAMとコンデンサーを実装する。
SRAMの向きを間違えないように注意する。

残りの部品を実装した状態

念のため、+5VとGNDがショートしていないか、テスターで確認するとよい。

+5V と GND の位置

ケースに入れる

ケース内の出っ張りに基板の穴を合わせ、基板をケースにセットする。

基板をケースにセットした状態

ケースのもう一方の部分を合わせ、付属のネジでとめる。

ケースをネジ止めした状態 (完成)
完成!

動作確認

MSXのPV-7で動作確認をする。

PV-7

カートリッジを挿していない状態では、RAMは8KiBであり、初期状態で約4KBの空き容量がある。

カートリッジなし 初期状態でのRAMの空き容量

TINY SLOT CHECKER (簡易版) でチェックすると、以下のようになった。

カートリッジなし TINY SLOT CHECKER (簡易版) の表示

次に、一旦電源を切り、今回作成したカートリッジを挿す。

PV-7 にカートリッジを挿した様子

初期状態での空き容量は約28KBになった。
8192 - 4239 = 3953
32768 - 28815 = 3953
となり、差が同じなので、RAMが32KiBに拡張され、同じ容量がワークエリアなどで消費されていることが読み取れる。

カートリッジあり 初期状態でのRAMの空き容量

TINY SLOT CHECKER も (RAM32KB以上を要求する) RAM版が動作し、以下の結果になった。

カートリッジあり TINY SLOT CHECKER (RAM版) の表示

なお、SLOT 1 の全ページがRAMとして認識されているが、今回使用したSRAMは32KiBのものであり、
PAGE 0 は PAGE 2 の、PAGE 1 は PAGE 3 のミラーになっている。
「裏RAMをRAMディスクとして用いる機能」がある機種でこの機能を用いるなど、使い方によっては不都合を起こす可能性があるので注意したい。

結論

ROMカートリッジ用の基板を用い、RAM拡張カートリッジを作成することができた。

カートリッジといえば「プルシュカ」…?
「プルシュカ」って「いのりん」…?
「いのりん」といえば小岩井吉乃ソマリなど…?

  • mikecat さんが 2023/05/05 に 編集 をしました。 (メッセージ: 初版)
ログインしてコメントを投稿する