FX-890P / Z-1 / GR / GRAのRAMを640Kにする(Part2)

※2018/11/23修正
一部アドレス間違えていたのを修正しました。もうしわけございませんm(_ _)m

前記事で本体改造はおわりました。
次に、RAMにROMの内容を転送します。

なお、こちらで説明している内容は1回実行したらOKです。

CLEAR ,200
を実行したのち、モニタで以下を入力します。
2000:B8 00 60 E7 88 B8 0A 80 E7 8A CF

GCS4に配線したかたは以下
2000:B8 00 60 E7 90 B8 0A 80 E7 92 CF

GCS5に配線したかたは以下
2000:B8 00 60 E7 94 B8 0A 80 E7 96 CF

上記は60000H~7FFFFHにRAMを出現させるためのプログラムです。
なお、アドレスバスA17を1にする必要がありますので、必ず上記空間に出現させる必要があります。

次にBASICで以下を入力します。

10 BEEP
20 DEFSEG=0:CALL &H2000
30 FOR I=0 TO 65535
40 DEFSEG=&HE000:A=PEEK(I)
50 DEFSEG=&H6000:POKE I,A
60 DEFSEG=&HF000:A=PEEK(I)
70 DEFSEG=&H7000:POKE I,A
80 NEXT I
90 BEEP:PRINT "COMPLETE!"
100 DEFSEG=0
110 END

そして実行します。
不安になるぐらい時間がかかります。
(自分がやったときは途中で寝てしまったのでどれぐらい時間がかかったのかはわかりません。たぶん1時間~2時間もあれば終わるとは思うのですけど)
やってることは、E0000H~FFFFFHの内容を60000H~7FFFFHに転送しているだけですので、マシン語で作成チャレンジしてみるのもいいかと思います。
ほんとに動いてるかどうか自信がもてないかたは、以下の行を追加します。
35 LOCATE 0,0:PRINT I
数字がカウントアップしていたら大丈夫です。65535になれば終わります。
ただし、表示という余計なことをするので、さらに時間がかかります。

RAM側で実行されているかどうか簡単に確認するため、以下を書き換えます(面倒だったらやらなくてもいいですが、やったほうが安心です)。
All reset/Memory・・・のAllの部分をALLに変更します。

モニタコマンドで

B
6000

※11/23修正
E0406
0406 6C→4C
0407 6C→4C


書き換えが終わりましたら電源を切ります。
切り替えスイッチをRAM側にします。
電源を入れます。
この時点で起動しなかったら、なんか配線間違えてますので確認してください。

起動したら、ALL RESETボタンを押します。
普段「All reset/Memory・・・」となっているメッセージが、「ALL reset/Memory・・・」という感じでALLが大文字になっていたら、無事にRAMで起動しています。

無事起動したら、ROM(だけどRAM)の以下を変更します。
機種によって変更箇所が違います(実際に確認したのはZ-1GRAですけど、FX-890P/Z-1はこちらのアドレスであってると思います)

FX-890P/Z-1
※11/23修正
FFFDE 00 E0 → 00 C0 : MOV AX,E000H→MOV AX,C000Hに変更

F170D 0A 20 → 0A 40 : MOV AX,200AH→MOV AX,400AHに変更
F1739 0A 20 → 0A 40 : ADD AX,200AH→ADD AX,400AHに変更
F1767 0A 08 → 0A 20 : ADD AX,080AH→ADD AX,200AHに変更

Z-1GR/GRA
※11/23修正
FFFDE 00 E0 → 00 C0 : MOV AX,E000H→MOV AX,C000Hに変更

F173F 0A 20 → 0A 40 : MOV AX,200AH→MOV AX,400AHに変更
F176B 0A 20 → 0A 40 : ADD AX,200AH→ADD AX,400AHに変更
F1799 0A 08 → 0A 20 : ADD AX,080AH→ADD AX,200AHに変更

上記箇所の変更が終わったら、一度電源を入れなおして、ALL RESETボタンを押します。
以下のように表示されたら大成功です。
画像

大容量640KB!\(^_^)/ヤッタネ!
(ALLが大文字なのは、前述で書き換えたからです)

ちなみに、C0000H~DFFFFHにもRAMが出現していますので、リロケータブルなプログラムを入れておくといいかもです。
このエリアはALL RESETや、NEWなどの影響をうけませんので、なにかと利用価値があると思います。
(バックアップ電池と動作電池両方同時に抜かない限りは保持されてます)

なお、SYSTEM*でのチェックは、容量決め打ちで実行されますので、そのままでは利用できません。

参考文献
STEAR homepage様のFX-890P/Z-1シリーズ カードエッジコネクタ仕様
TS80C186EB/80C188EB DataSheet(Intel)

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント