X1turboの未公開機能


謎のI/Oポート1FF*H

I/Oポート1FF*Hは起動デバイスの設定スイッチを読み出すポートですが、回路図によると最上位ビットはFDDからの生データになっています。一体、どうしろと・・・

おそらく、X1turbo model10(CZ-850C)とは互換性が無い。

 

IPL隠しコマンド

IPLの起動デバイス選択時に、次のコマンドが使えます。

#RAMの0000Hへジャンプします。
Mモニタの起動、これ自体はマニュアルに載っていますが、起動デバイスの設定スイッチを8"1Sにすると、メモリクリアをせずモニタが起動します。
 

CZ-8FB02 DEVICEコマンドのディスクタイプ

0:~3:のデバイスでは0~3のディスクタイプ以外に、4と5の設定が可能です。次表の対応になっています。

タイプ容量フォーマット転送方式
0320KB2D X1互換CPU
1640KB2DD X1turboDMA
21MB2HD X1turboDMA
31MB2HD IBM互換DMA
4160KB?両面単密度?DMA
5320KB2D X1互換DMA

ディスクタイプに"5"を設定すると、2DでもDMAによる転送になり、GRAMとの直接転送も容易になります。

 

BIOSワーク

アドレスラベル名説明
FAB9HDMAIOFFDCRED/FDCWRTでDMA転送の対象。00Hが通常時、08HのときGRAMが対象になる

このフラグを使うと、DMAで転送をするデバイスとGRAMの間で直接転送が可能となり、シャープ製のアプリケーションでよく使われています。

下記サンプルプログラムでは、ドライブ0から48Kバイト分、GRAMへ読み出します。

        LD      A,7             ;5.25"FDを設定する
        LD      (FDCNO),A       ;デバイスタイプ(7:5.25"FD 8:8"FD 9:HD)
        LD      A,0             ;ドライブ番号
        LD      (UNITNO),A      ;
        LD      A,8             ;転送対象をGRAMにする
        LD      (DMAIOF),A      ;
        LD      A,192           ;192レコード(48Kバイト)
        LD      DE,0            ;読み出し開始レコード番号
        LD      HL,4000H        ;読み出しアドレス
        LD      BC,FDCRED       ;X1turbo BIOS デバイスからの読み出し
        RST     18H             ;BIOS呼出し
        LD      A,0             ;
        LD      (DMAIOF),A      ;処理を終えたら必ず通常に戻す

 

謎のI/Oポート076CH

その昔、IPLを解析しているときに発見したポートです。将来、何かあるのかと思っていましたが、結局何もありませんでした。そして忘却の彼方へ・・・

I/Oアドレスの0700Hと言えばYM2151を用いたFM音源で有名ですが、この076CHという中途半端なアドレス。

また別の解析の為に調べていると、気付きました。

076CHを10進数にすると"1900"です・・・どうやら、ROM設計者がやらかしてしまったようです。