]>
wirehaze git hosting - MS-DOS.git/blob - v4.0/src/MAPPER/SETFSINF.ASM
4 title CP
/DOS DosSetFsInfo mapper
7 dosxxx
segment byte public 'dos'
8 assume
cs:dosxxx
,ds:nothing
,es:nothing
,ss:nothing
10 ; ************************************************************************* *
12 ; * MODULE: DosSetFsInfo
14 ; * FUNCTION: This module will delete the volume label on a specified
19 ; * PUSH WORD DriveNumber ; Drive Number
20 ; * PUSH OTHER FSInfoLevel ; File system info required
21 ; * PUSH@ OTHER FSInfoBuf ; File system info buffer
22 ; * PUSH WORD FSInfoBufSize ; file system info buffer size
26 ; * MODULES CALLED: DOS int 21H function 13H
28 ; *************************************************************************
40 sbufsize dw ?
; info buffer size
41 sbuffoff dw ?
; info buffer offset
42 sbuffseg dw ?
; info buffer segment
43 slevel dw ?
; info level
44 sdrive dw ?
; drive number
48 ;-----------------------------------------------
49 ;--- Extended FCB, used to delete Volume Labels.
50 ;-----------------------------------------------
51 Ext_FCB db 0FFh ;Indicates extended FCB
52 db 0,0,0,0,0 ;Reserved
53 FCB_Attr db 08 ;Attribute for vol label
54 FCBDrive db 0 ;Drive number
55 VLabel db "???????????" ;Match any vol name found
56 db 25 dup (0) ;Rest of the opened FCB
66 Enter DosSetfsinfo
; push registers
67 mov ax,[bp].sdrive
; Get drive number
68 mov FCBDrive
,al ; Place it in the extended FCB
69 ;--------------------------
70 ;-- FCB Delete old volume label
71 ;--------------------------
72 mov ah,013h ; FCB Delete
76 int 021h ; Call DOS to delete volume label
77 ;---------------------------------
78 ;-- Handle_Create new Volume label
79 ;---------------------------------
80 mov cx,08h ; Volume label attribute
81 mov ah,03ch ; Handle create new volume label
86 jc retrn
; Oops, there was an error. Not surprised...
87 ;--------------------------
88 ;-- Close the Volume Label
89 ;--------------------------
90 mov bx,ax ; Place handle in BX
91 mov ah,03eh ; Close the volume label
96 sub ax,ax ; set good return code
99 ret size
str - 6 ; return