ベーシックマスターのハードウェア(4)ROM/RAM切り替えとタイマー停止
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





ディスカッション
コメント一覧
まだ、コメントがありません