05/11/27 01:14:31
>>477
|試しにAXに代入する値を0x4100に変えて、
|それ以外はまったく同じ条件でまったく同じセクタを読み込んでみると正常終了します。
ah=41は"IBM/MS INT 13 Extensions - INSTALLATION CHECK"だよ。
EXTENDED READはah=42。
Ralf Brown's Interrupt ListとBIOS Enhanced Disk Drive Specification
を読みなさい。
ほれ。擬似コード。このままだと動かないと思うよ。
inreg.x.ax = 0x4300;
inreg.h.dl = drive | 0x80;
segreg.ds = FP_SEG(pac);
inreg.x.si = FP_OFF(pac);
pac.size = sizeof pac;
pac.reserved = 0;
pac.blocks = sectors;
pac.ptr = FP_OFF(buff);
pac.seg = FP_SEG(buff);
pac.lbalow = lbasec.LowPart;
pac.lbahi = lbasec.HighPart;