ベーシックマスターのハードウェア(4)ROM/RAM切り替えとタイマー停止

BASICMASTER, 昔のパソコン

BASIC MASTER Jr.(MB-6885) は64KBまでメモリを増設でき、BASIC ROMやモニタROMなどをRAMに切り替えることで広大なプログラム空間が使える。

Jr.は 標準メモリ16KBで売られていて、多くの人はそのまま使っていたようだ(ヤフオク等で売られている物のほとんどが16KB品)。
(64KB DRAMが安くなる直前だったので、仕方ないではある。安くなったのはFM-7のころから)

ヤフオク品が16KBのままなのは、増設のハードルが高かったせいもある。64KB増設のためには16Pin DIPのRAMを引っこ抜いて、JP1,2,3の位置を1-3に変更して(半田付けしなおし!)、64KB DRAMを差し直す必要がある。

日立としては販売店対応だから半田付けで良しとしたのだろうが、素人にはハードルが高い。

せめてジャンパーピンをコネクタにしておけば64KBに拡張するユーザーはもっといただろうに。

BASIC MASTER L2II(MB-6881)も標準メモリは16KBであったが、基盤上に16KB分の空きソケットがあり、16KB DRAMを8個買ってくれば簡単に増設することができた。私も1980年ごろに増設した覚えがある。16KB DRAMは安かったので、L2II利用者の大半は増設して使っていたはず。

メモリは通販したんだっけなあ。パーツ屋さんが又吉通り(崇元寺通り)に3-4件あったけど、そこで買った記憶はないので。

ROM/RAM切り替え回路図

下図はBASIC MASTER Jr. のROM/RAM切り替え回路の抜粋、タイマー割り込み停止制御も、この回路で行っている。

$EFD0に書き込むと、その時のb4,b2-b0が4D-1Dから取り込まれ、ラッチされて4Q-1Qに出力される。

ベーシックマスター活用研究 : Level 3,Jr」 1982年12月、工学社の回路図を元に作図


タイマー停止/開始回路

4QがIC29で割り込み信号とNANDされてIRQへ繋がる。4Qが負論理なので、$EFD0のb4に1を書くとタイマー割り込みが止まる。0で再開。

簡単なプログラムで、割り込み動作が止まることを確認できる。


110 PRINT TIME,PEEK($0C)
120 POKE $EFD0,0
130 FOR I=1 TO 1000:NEXT I
140 PRINT TIME,PEEK($0C)
150 POKE $EFD0,$F0
160 FOR I=1 TO 1000:NEXT I
170 PRINT TIME,PEEK($0C)
180 POKE $EFD0,0
190 FOR I=1 TO 1000:NEXT I
200 PRINT TIME,PEEK($0C)


ROM/RAM切り替え

$EFD0の下3bitでROM/RAMが切り替えできる。

ROMMASK2(b1)は$E000にあるROMと拡張I/Oの切り替え。ROMMASK1(b0)がBASIC ROM, ROMMASK3(b3)がモニタの切り替えである。

$1000から下記のプログラムを入れて、CALL $1000(あるいはモニタからG1000)すると、プリンタROMとBASIC ROMの領域をRAM化して、モニタに戻る。Dコマンドで$B000や$E000をダンプすればRAMに切り替わっていることがわかる。


1000 86 03 B7 EF D0 3F 3F