давно
Старший Модератор
31795
6196
12.09.2008, 20:52
общий
это ответ
Здравствуйте, Draft3!
Эта функция предполагает, что в программе ранее установлена область DTA, с помощью функции 1Аh прерывания 21h.
Я делал как в приложении. Именно там Вам и нужно всё искать. Пример в приложении использует 37 байт для области DTA, есть ещё и 44-х байтная запись, где перед идентификатором дисковода идут шесть байт:( 0FFh и 5ть байтов резервных). Вариант зависит от версии MSDOS. Учитывайте это.
Удачи!
Приложение:
data segment
dtaIdDD db ?;id disk drive
dtaName db 8 dup(?)
dtaExt db 3 dup(?)
dtaCBlock dw ?;current block number
dtaRSize dw ?
dtaFSize dw ?,?
dtaData dw ?
dtaTime dw ?
dtaReserve db 8 dup(?)
dtaCRec db ?;current record number
dtaORec db ?
dtaStub db 10 dup(?);заглушка вдруг 44-байтная запись
maskFile db '*.*',0
data ends
;begin main program
begin: mov ax,seg data
mov ds,ax
mov es,ax
;setup DTA
mov ah,01ah
mov dx,offset dtaIdDD
int 21h
;find first file
;. . . дальше как у Вас
code ends
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.