summaryrefslogtreecommitdiff
path: root/v4.0/src/MAPPER/SFILEINF.ASM
diff options
context:
space:
mode:
authorGravatar Mark Zbikowski2024-04-25 21:24:10 +0100
committerGravatar Microsoft Open Source2024-04-25 22:32:27 +0000
commit2d04cacc5322951f187bb17e017c12920ac8ebe2 (patch)
tree80ee017efa878dfd5344b44249e6a241f2a7f6e2 /v4.0/src/MAPPER/SFILEINF.ASM
parentMerge pull request #430 from jpbaltazar/typoptbr (diff)
downloadms-dos-main.tar.gz
ms-dos-main.tar.xz
ms-dos-main.zip
MZ is back!HEADmain
Diffstat (limited to 'v4.0/src/MAPPER/SFILEINF.ASM')
-rw-r--r--v4.0/src/MAPPER/SFILEINF.ASM89
1 files changed, 89 insertions, 0 deletions
diff --git a/v4.0/src/MAPPER/SFILEINF.ASM b/v4.0/src/MAPPER/SFILEINF.ASM
new file mode 100644
index 0000000..e057da3
--- /dev/null
+++ b/v4.0/src/MAPPER/SFILEINF.ASM
@@ -0,0 +1,89 @@
1; 0
2page 80,132
3
4title CP/DOS DosSetFileInfo mapper
5
6
7FileAttributeSegment segment word public 'fat'
8
9 extrn FileAttributeTable:word
10
11FileAttributeSegment ends
12
13
14dosxxx segment byte public 'dos'
15 assume cs:dosxxx,ds:nothing,es:nothing,ss:nothing
16;
17;**********************************************************************
18;*
19;* MODULE: dossetfileinfo
20;*
21;* FUNCTION: set file information
22;*
23;* CALLING SEQUENCE:
24;*
25;* push word file handle
26;* push word info level
27;* push@ other file info buffer
28;* push word file buffer size
29;* call dossetfileinfo
30;*
31;* MODULES CALLED: PC-DOS Int 21h, ah=57h, set file's date/time
32;*
33;*********************************************************************
34
35 public dossetfileinfo
36 .sall
37 .xlist
38 include macros.inc
39 .list
40
41
42
43str struc
44old_bp dw ?
45return dd ?
46BufferSize dw ? ; file info buufer size
47BufferPtr dd ? ; file info buffer
48Level dw ? ; file info level
49Handle dw ? ; file handle
50str ends
51
52dossetfileinfo proc far
53 Enter dossetfileinfo ; push registers
54
55 mov bx,[bp].Handle ; fill registers for function call
56 lds si,[bp].BufferPtr ; date/time pointer
57 mov dx,word ptr [si]+8 ; date to be set
58 mov cx,word ptr [si]+10 ; time to be set
59
60 mov ax,5701h
61 int 21h
62 jc ErrorExit ; check for error
63
64; This code should be un-commented when the attribute can be set from
65; the setfileinfo call
66
67; lds si,[bp].BufferPtr
68; mov ax,ds:[si].the offset to the attribute word
69
70; mov bx,seg FileAttributeSegment
71; mov ds,bx
72; assume ds:FileAttributeSegment
73
74; mov bx,[bp].Handle
75; add bx,bx
76
77; mov FileAttributeTable[bx],ax
78
79 sub ax,ax ; set good return code
80
81ErrorExit:
82 mexit ; pop registers
83 ret size str - 6 ; return
84
85dossetfileinfo endp
86
87dosxxx ends
88
89 end