CODE: [Copy to clipboard]
'$INCLUDE: 'qb.bi'
DIM SHARED ax, bx, cx, dx, bp, si, di, ds, flags, es
BUFFdat$ = STRING$(512, 0)'设置读扇区后存放数据的缓冲区
d1% = varSEG(buffdat$)'获得缓冲区的段地址
d2% = SADD(buffdat$)'获得缓冲区的偏移地址
dat1$ = CHR$(&H10) + CHR$(0) + MKI$(1) + MKI$(d2%) + MKI$(d1%) + MKL$(0) + MKL$(0)'按要求设置数据包
ds = varSEG(dat1$)'获得数据包的段地址
si = SADD(dat1$)'获得数据包的偏移地址
ax = &H4200'扩展读扇区命令
dx = &H80'读第一个硬盘
xint &H13'调用中断
OPEN "d:\testhd.dat" FOR BINARY AS #1'保存扇区数据的文件名
PUT 1,1,BUFFDAT$'写入文件
END
SUB xint (num%)
'中断调用子程序
DIM inregs AS RegTypeX
DIM outregs AS RegTypeX
inregs.ax = ax
inregs.bx = bx
inregs.cx = cx
inregs.dx = dx
inregs.si = si
inregs.di = di
inregs.ds = ds
inregs.es = es
CALL INTERRUPTX(num%, inregs, outregs)
ax = outregs.ax
bx = outregs.bx
cx = outregs.cx
dx = outregs.dx
si = outregs.si
di = outregs.di
ds = outregs.ds
es = outregs.es
END SUB