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へ直接転送できるのですが...手元に資料がありません。今度調べておきます。
- 1行改行がうまくできないです。 - すーぱーたーぼ (2009年06月04日 17時45分08秒)
- TurboBIOSのDISK READエントリは<http://members.at.infoseek.co.jp/x1resource/x1hssio/hssio01.zip>内のdiskwr.srcで使ってました - すーぱーたーぼ (2009年06月04日 18時26分25秒)
- 1 - 1 (2022年08月21日 00時09分56秒)