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

BBS-メイン掲示板/2

 IPLのDISK READエントリ - すーぱーたーぼ (2009年06月04日 17時43分26秒)

;----------------------------------------------------------------------------

;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,1DH

OUT (00H),A ; IPL ROM有効

EX AF,AF'

CALL 021AH

EX AF,AF'

LD A,1EH

OUT (00H),A ; IPL ROM無効

EX AF,AF'

のようにします。

コール毎にヘッドがリストアを行うので、何度もコールすると時間が掛かります。

3000H-EFFFHに48KリードしてGRAMの4000H-EFFFHに一気に転送するのがよろしいかと。

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

お名前: コメント: