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へ直接転送できるのですが...手元に資料がありません。今度調べておきます。
- 1 - 1 (2022年08月21日 00時09分24秒)