トップ 一覧 検索 ヘルプ RSS ログイン

BBS-メイン掲示板/1

 IPLのDISK READエントリ - X1リソースセンター管理人こと、すーぱーたーぼ (2009年06月04日 17時38分46秒)

IPL用のDISK READエントリのご紹介です。IPL起動後、DISKからGRAMにリードするのに使えそうなルーチンです。

;----------------------------------------------------------------------------;IPL:021A : DISK READ;IN:; A = recoard size; DE = start sector; HL = start address; (FF87) = drive no.;OUT:; CF = error flag; (HL-) = read data;break;(FF88) = STACK SAVE (original only);(FF8A) = ERROR RETURN ADDESS (original only);----------------------------------------------------------------------------

IPL-ROMに切り替える必要があるので、呼び出し元は8000H-F7FFHから

EX AF,AF' ;PUSH AFを使う場合は、SPも8000H-F7FFHのエリアへLD A,1DHOUT (00H),A ; IPL ROM有効EX AF,AF'CALL 021AHEX AF,AF'LD A,1EHOUT (00H),A ; IPL ROM無効EX AF,AF'

のようにします。

X1用のエントリですが、X1turboのBIOSにもパッチが当たっていて、2HDから起動した後なら2HDもリードできるはずです。コール毎にヘッドがリストアするので、何度もコールすると時間が掛かります。GRAM転送なら3000H-EFFFHへ一気に48KリードしてGRAMへ転送するのがよろしいかと。

実はX1turboの正式なBIOSエントリならDISKからGRAMへ直接転送できるのですが...手元に資料がありません。今度調べておきます。

お名前: コメント: