Открытие дескриптора файла в DOSBox очищает данные файла - PullRequest
0 голосов
/ 31 мая 2018

В DOSBox 0.74, когда я пытаюсь открыть дескриптор файла для любого файла, используя функцию 3ch из int 21h, данные файла очищаются, и их размер постоянно уменьшается до 0 байт.

Все протестированные мной файлы находятся в каталоге документов Windows 10, который монтируется как диск E в DOSBox.

Вот код, вызывающий проблему.Он должен открыть, а затем закрыть дескриптор файла.CF никогда не устанавливается, поэтому без кода ошибки.Дескриптор файла в AX установлен на 5.

    mov ax, varData                            
    mov ds, ax               ;Load the variable segment into ds   
                             ;word variable handle is defined here
                             ;string fname is defined here                                         

    mov ah, 3ch              ;select open file handle function
    lea dx, fname            ;dx points to file's name ("TESTFILE")
    mov cl, 1                ;read only
    int 21h                  ;open the file handle
    mov handle, ax           ;copy handle into variable 

    mov ah, 3eh              ;close handle function
    mov bx, handle           ;closing previously opened file handle
    int 21h                  ;close handle

1 Ответ

0 голосов
/ 31 мая 2018

Per this :

ah = 0x3c означает «Создать файл».Вы хотите 0x3d (открыть файл).

...