|
|
1.1 root 1: title windiff1.asm
2:
3: ;****************************************************************/
4: ;* */
5: ;* Windows Cardfile */
6: ;* (c) Copyright Microsoft Corp. 1985 - All Rights Reserved */
7: ;* */
8: ;****************************************************************/
9:
10: .xlist
11: include cmacros.inc
12:
13: .list
14:
15: createSeg _FILE,nrdiff,byte,public,CODE
16:
17: sBegin DATA
18: sEnd DATA
19:
20: sBegin nrdiff
21:
22: assumes CS,nrdiff
23: assumes DS,DATA
24:
25: cProc Frename,<PUBLIC,NEAR>,<di>
26: parmW src
27: parmW dst
28: cBegin
29: mov dx,src
30: push ds
31: pop es
32: mov di,dst
33: mov ah,56h
34: int 21h
35: jc renexit
36: xor ax,ax
37: renexit:
38: cEnd
39:
40: ;
41: ; Fdelete (pch) - delete a file
42: ; returns 0 or -1
43: ;
44:
45: cProc Fdelete,<PUBLIC,FAR>
46: parmW src
47: cBegin
48: mov dx,src
49: mov ah,41h
50: int 21h
51: jc rmexit
52: xor ax,ax
53: rmexit:
54: cEnd
55:
56: cProc mylread,<PUBLIC,NEAR>
57: parmW fh
58: parmD lpbuf
59: parmW count
60: cBegin
61: push ds
62: mov bx,fh
63: lds dx,lpbuf
64: mov ah,3fh
65: mov cx,count
66: int 21h
67: jnc lreaddone
68: xor ax,ax
69: lreaddone:
70: pop ds
71: cEnd
72:
73: cProc myread,<PUBLIC,NEAR>
74: parmW fh
75: parmW buf
76: parmW count
77: cBegin
78: mov bx,fh
79: mov dx,buf
80: mov ah,3fh
81: mov cx,count
82: int 21h
83: jnc readdone
84: xor ax,ax
85: readdone:
86: cEnd
87:
88: cProc mylwrite,<PUBLIC,NEAR>
89: parmW fh
90: parmD lpbuf
91: parmW count
92: cBegin
93: push ds
94: mov bx,fh
95: lds dx,lpbuf
96: mov ah,40h
97: mov cx,count
98: int 21h
99: jnc lwritedone
100: xor ax,ax
101: lwritedone:
102: pop ds
103: cEnd
104:
105: cProc mywrite,<PUBLIC,NEAR>
106: parmW fh
107: parmW buf
108: parmW count
109: cBegin
110: mov bx,fh
111: mov dx,buf
112: mov ah,40h
113: mov cx,count
114: int 21h
115: jnc writedone
116: xor ax,ax
117: writedone:
118:
119: cEnd
120:
121: cProc MyOpen,<PUBLIC,FAR>
122: parmD lpFilename
123: parmB mode
124: cBegin
125: push ds
126: lds dx,lpFilename
127: mov al,mode
128: mov ah,3Dh
129: int 21h
130: pop ds
131: jnc MyOpen_ok
132: mov ax,-1
133: MyOpen_ok:
134: cEnd
135:
136:
137: cProc MyClose,<PUBLIC,FAR>
138: parmW fd
139: cBegin
140: mov bx,fd
141: mov ah,3Eh ; DOS file close function
142: int 21h
143: mov ax,-1
144: jc MyClose_end
145: inc ax
146: MyClose_end:
147: cEnd
148:
149: cProc MyLseek,<PUBLIC,FAR>
150: parmW fh
151: parmD fileOffset
152: parmW mode
153: cBegin
154: mov dx,off_fileOffset
155: mov cx,seg_fileOffset
156: mov ax,mode
157: mov bx,fh
158: mov ah,42h
159: int 21h
160: jnc MyLseek_ok
161: mov ax,-1
162: cwd ; must return a long
163: MyLseek_ok:
164: cEnd
165:
166:
167: sEnd nrdiff
168:
169: end
170:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.