45 lines
706 B
NASM
45 lines
706 B
NASM
|
|
; FCB layout
|
|
; 1 byte drive (0=default, 1=A:, 2=B:, ...)
|
|
; 8.3 filename
|
|
; 8.3 filename for rename
|
|
|
|
FCBDEN: equ 23 ; WORD directory entry number
|
|
FCBSIZ: equ 30
|
|
|
|
section .text
|
|
|
|
; auto-complete drive field in fcb
|
|
; IN es:bx far ptr FCB
|
|
; OUT si copy of bx
|
|
fixfcb: cmp byte [es:bx], 0
|
|
jne .ret
|
|
call getdd
|
|
inc dl
|
|
mov byte [es:bx], dl
|
|
.ret: ret
|
|
|
|
; Load root directory entry
|
|
; IN ax number of directory entry
|
|
; OUT cs:si ptr to directory entry
|
|
lddir: push ax
|
|
mov cl, 4
|
|
shr ax, cl
|
|
xor dx, dx
|
|
call maprd
|
|
; get si to point to entry
|
|
pop si
|
|
mov cl, 5
|
|
shl si, cl
|
|
and si, 0x1FF
|
|
add si, dskbuf
|
|
ret
|
|
|
|
; find first matching file
|
|
; IN ES:BX input fcb
|
|
fndfst:
|
|
|
|
|
|
open:
|
|
ret
|