Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Page     1-1


					 PAGE	 ,132				; 					 ;AN000;
				;	SCCSID = @(#)ifshand.asm	1.0 87/05/11					 ;AN000;
				TITLE	IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN000;
				NAME	IFSHANDLE									 ;AN000;
				;******************************************************************************
				;
				; HANDLE (SFT) related FS calls
				;
				;
				;   IFS_CLOSE
				;   IFS_COMMIT
				;   IFS_LSEEK
				;   IFS_READ
				;   IFS_WRITE
				;   IFS_LOCK
				;   IFS_XATTR
				;
				;   REVISION HISTORY:
				;	A000	Original version 4.00   May 1987
				;	A001	P635 - Correct Read problem - restore es:di -> sft
				;		RG Sept 1,1987
				;	A002	P659 - Copy cmd problems (xattr)
				;		RG Sept 1,1987
				;	A003	P868 - Lock problems	 R.G
				;	A004	P849 - Printer problems  R.G
				;	A005	P1601- lock/xattr problems R.G
				;	A006	P????- Write Only Lock support in Lock Read/Write    10/27 FEIGENBAUM
				;	A007	P2339- Not getting count back to user in xattr call  11/09 RG
				;	A008	P2433- redir copy problem (Xattr)		   11/17 RG
				;	A009	P2566- xattrs not propagated across network	   12/3  RG
				;		       (due to size check on set that does not offer size)
				;	A010	D285 - Remove Extended Attributes/Lock		   1/88 RG
				;	A011	P2994- double close problem			   1/88 RG 
				;	A012	P3149- basica file redirection - seek problem	   1/88 RMG
				;	A013	P3185- get ea cx check				   1/88 RMG
				;	A014	P3249- lock problem				   1/88 RMG
				;	A015	P3432- copy to remote ptr problem - write	   2/88 RMG
				;	A016	P3513- return cx on xattr wrong 		   2/88 RMG
				;	A017	P3968- set sf time/date on close		   3/25/88 RMG
				;	A018	P4839- fcb open/ren/term problem on abort close    5/13/88 RMG
				;	A019	P4791- don't overwrite ax on error                 5/19/88 RMG
				;	A020	P5003- LSEEK hang using Austin Test tool	   6/01/88 RPS
				;
				;   LOC - 251
				;   Programming note:  In the prologues to the routines, the input/output are
				;		       accurate.  The pseudocode, however, is outdated and does
				;		       not reflect the code.
				;
				;******************************************************************************
															 ;AN000;
				.list											 ;AN000;
															 ;AN000;
				AsmVars <IBM, Installed, DEBUG> 							 ;AN000;
															 ;AN000;
				; define the base code segment of the network support first				 ;AN000;
															 ;AN000;
 0000				IFSSEG	SEGMENT BYTE PUBLIC 'IFSSEG'                                                     ;AN000;
 0000				IFSSEG	ENDS										 ;AN000;
															 ;AN000;
				; include THE REST of the segment definitions for normal MSDOS				 ;AN000;
															 ;AN000;
				include dosseg.asm									 ;AN000;
			     C	;	SCCSID = @(#)dosseg.asm	1.1 85/04/10
			     C	;	SCCSID = @(#)dosseg.asm	1.1 85/04/10
			     C	;
			     C	; segment ordering for MSDOS
			     C	;
			     C	
 0000                        C	START		SEGMENT BYTE PUBLIC 'START'
 0000                        C	START		ENDS
			     C	
 0000                        C	CONSTANTS	SEGMENT WORD PUBLIC 'CONST'
 0000                        C	CONSTANTS	ENDS
			     C	
 0000                        C	DATA		SEGMENT WORD PUBLIC 'DATA'
 0000                        C	DATA		ENDS
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Page     1-2
                                                            

			     C	
 0000                        C	TABLE		SEGMENT BYTE PUBLIC 'TABLE'
 0000                        C	TABLE		ENDS
			     C	
 0000                        C	CODE		SEGMENT BYTE PUBLIC 'CODE'
 0000                        C	CODE		ENDS
			     C	
 0000                        C	LAST		SEGMENT PARA PUBLIC 'LAST'
 0000                        C	LAST		ENDS
			     C	
			     C	DOSGROUP    GROUP   START,CONSTANTS,DATA,TABLE,CODE,LAST
															 ;AN000;
 0000				DATA		SEGMENT WORD PUBLIC 'DATA'                                               ;AN000;
					;DOSGROUP Data									 ;AN000;
					Extrn	THISSFT:DWORD								 ;AN000;
					Extrn	DMAADD:DWORD								 ;AN000;
					Extrn	CurrentPDB:WORD 							 ;AN000;
					Extrn	SAVE_BX:WORD
					Extrn	SAVE_CX:WORD
					Extrn	SAVE_DS:WORD
					Extrn	SAVE_SI:WORD
					Extrn	SAVE_ES:WORD
					Extrn	SAVE_DI:WORD
 0000				DATA		ENDS									 ;AN000;
															 ;AN000;
															 ;AN000;
				; define our own code segment								 ;AN000;
															 ;AN000;
 0000				IFSSEG	SEGMENT BYTE PUBLIC 'IFSSEG'                                                     ;AN000;
					ASSUME	SS:DOSGROUP,CS:IFSSEG							 ;AN000;
															 ;AN000;
					;IFS Data									 ;AN000;
					Extrn	THISDFL:DWORD								 ;AN000;
					Extrn	THISIFS:DWORD								 ;AN000;
					Extrn	IFSPROC_FLAGS:WORD							 ;AN000;
					Extrn	IFSR:WORD								 ;AN000;
					Extrn	DEVICE_CB@_OFFSET:WORD							 ;AN000;
															 ;AN000;
				BREAK <IFS_CLOSE Close a FS SFT>							 ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Page     1-3
IFS_CLOSE Close a FS SFT                                    

															 ;AN000;
				;****************************************************************************** 	 ;AN000;
				;											 ;AN000;
				; IFS_CLOSE - see IFS_COMMIT for details						 ;AN000;
				;											 ;AN000;
				;****************************************************************************** 	 ;AN000;
															 ;AN000;
					procedure   IFS_CLOSE,NEAR							 ;AN000;
 0000                        1	IFS_CLOSE    PROC    NEAR 
				ASSUME	DS:DOSGROUP,ES:NOTHING								 ;AN000;
															 ;AN000;
					ifsr_fcn_def  EXECAPI			; define ifsr for close 		 ;AN000;
					ifsr_api_def  CLOSEFILE 							 ;AN000;
															 ;AN000;
 0000  26: F7 45 05 4040		TEST	ES:[DI.SF_FLAGS],devid_file_clean + sf_close_nodate			 ;AN017;
 0006  75 0D				JNZ	C_05									 ;AN017;
					CallInstall DATE16,MultDOS,13		; set sf date/time on close		 ;AN017;
 0008  B8 120D               1		MOV     AX,(MultDOS SHL 8) + 13 
 000B  CD 2F                 1		INT     2Fh 
 000D  26: 89 45 0F			MOV	ES:[DI.SF_DATE],AX							 ;AN017;
 0011  26: 89 55 0D			MOV	ES:[DI.SF_TIME],DX							 ;AN017;
 0015				C_05:											 ;AN017;
				
					SaveReg <ES,DI> 			; save SFT ptr				 ;AN000;
 0015  06                    2		PUSH    ES 
 0016  57                    2		PUSH    DI 
					CallInstall FREE_SFT,MultDOS,8		; set SFT busy				 ;AN000;
 0017  B8 1208               1		MOV     AX,(MultDOS SHL 8) + 8 
 001A  CD 2F                 1		INT     2Fh 
 001C  50				PUSH	AX				; save old ref count			 ;AN000;
															 ;AN000;
 001D  26: F7 45 02 8000		TEST	ES:[DI.SF_MODE],SF_ISFCB	; always close fcb			 ;AN011;
 0023  75 08				JNZ	C_10				; only do real close when		 ;AN011;
 0025  3D 0001				CMP	AX,1				; sft being freed			 ;AN011;
 0028  74 03				JE	C_10									 ;AN011;
 002A  EB 6C 90				JMP	C_80									 ;AN011;
 002D				C_10:											 ;AN011;
 002D  2E: C7 06 0000 E 0110		MOV	CS:IFSPROC_FLAGS,ISCLOSE + SETDEVICECB					 ;AN000;
										; 2nd flag causes sft_to_sff to 	 ;AN000;
										; set device cb@			 ;AN000;
 0034  EB 08 90				JMP	C_20				; cont. in ifs_commit			 ;AN000;
															 ;AN000;
				EndProc IFS_CLOSE									 ;AN000;
 0037                        1	IFS_CLOSE    ENDP 
															 ;AN000;
				BREAK <IFS_COMMIT Commit a FS SFT>							 ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Page     1-4
IFS_COMMIT Commit a FS SFT                                  

															 ;AN000;
				;****************************************************************************** 	 ;AN000;
				;											 ;AN000;
				; IFS_COMMIT										 ;AN000;
				;											 ;AN000;
				; Called by:	   IFSFUNC dispatcher							 ;AN000;
				;											 ;AN000;
				; Routines called: CALL_IFS	DRIVE_FROM_SFT						 ;AN000;
				;		   SFT_TO_SFF								 ;AN000;
				;		   SFF_TO_SFT								 ;AN000;
				;											 ;AN000;
				; Inputs:										 ;AN000;
				;	[THISSFT] set to the SFT for the file being used				 ;AN000;
				;	ES:DI = [THISSFT] (date time are NOT correct)					 ;AN000;
				;		SFT must never be for an FCB on commit (error not detected)		 ;AN000;
				;											 ;AN000;
				; Function:										 ;AN000;
				;	Prep IFSRH:									 ;AN000;
				;	*  IFSR_LENGTH	    DW	   40	    ; Total length of request			 ;AN000;
				;	*  IFSR_FUNCTION    DB	    4	    ; Execute API function			 ;AN000;
				;	 + IFSR_RETCODE     DW	    ?							 ;AN000;
				;	 + IFSR_RETCLASS    DB	    ?							 ;AN000;
				;	   IFSR_RESV1	    DB	   16 DUP(0)						 ;AN000;
				;	*  IFSR_APIFUNC     DB	   14	    ; Close/commit file 			 ;AN000;
				;	 + IFSR_ERROR_CLASS DB	    ?							 ;AN000;
				;	 + IFSR_ERROR_ACTION DB     ?							 ;AN000;
				;	 + IFSR_ERROR_LOCUS DB	    ?							 ;AN000;
				;	 + IFSR_ALLOWED     DB	    ?							 ;AN000;
				;	 + IFSR_I24_RETRY   DB	    ?							 ;AN000;
				;	 + IFSR_I24_RESP    DB	    ?							 ;AN000;
				;	   IFSR_RESV2	    DB	    ?							 ;AN000;
				;	*+ IFSR_DEVICE_CB@  DD	    ?							 ;AN000;
				;	*+ IFSR_OPEN_CB@    DD	    ?	    ; SF					 ;AN000;
				;	*  IFSR_FUNC	    DB	    ?	    ; 0=CLOSE, 1=COMMIT 			 ;AN000;
				;	   IFSR_RESV2	    DB	    0							 ;AN000;
				;											 ;AN000;
				;	IF  close  THEN 								 ;AN000;
				;	   IFSR_FUNC = 0								 ;AN000;
				;	ELSE  IFSR_FUNC = 1								 ;AN000;
				;	CALL routine, CALL_IFS, with pointer to SF_IFS_HDR				 ;AN000;
				;	IF IFSR_RETCODE = 0 THEN							 ;AN000;
				;	   DO										 ;AN000;
				;	     Call SFF_TO_SFT								 ;AN000;
				;	     Decrement SF_REF_COUNT if close						 ;AN000;
				;	     Clear carry								 ;AN000;
				;	   ENDDO									 ;AN000;
				;	ELSE DO     {error}								 ;AN000;
				;	       AX = IFSR_RETCODE							 ;AN000;
				;	       Set carry								 ;AN000;
				;	     ENDDO									 ;AN000;
				;	ENDIF										 ;AN000;
				;											 ;AN000;
				; Outputs:										 ;AN000;
				;	sf_ref_count decremented on close unless FAIL					 ;AN000;
				;		(AX has old value for COMMIT)						 ;AN000;
				;	ES:DI point to SFT								 ;AN000;
				;	Carry set if error (file deleted or disk changed)				 ;AN000;
				;											 ;AN000;
				; DS preserved, others destroyed							 ;AN000;
				;											 ;AN000;
				;****************************************************************************** 	 ;AN000;
															 ;AN000;
					procedure   IFS_COMMIT,NEAR							 ;AN000;
 0037                        1	IFS_COMMIT    PROC    NEAR 
				ASSUME	DS:DOSGROUP,ES:NOTHING								 ;AN000;
															 ;AN000;
					ifsr_fcn_def  EXECAPI								 ;AN000;
					ifsr_api_def  CLOSEFILE 							 ;AN000;
															 ;AN000;
 0037  2E: C7 06 0000 E 0100		MOV	CS:IFSPROC_FLAGS,SETDEVICECB	; set ifsproc_flags			 ;AN000;
 003E				C_20:						; (welcome ifs_close)			 ;AN000;
					invoke	DRIVE_FROM_SFT			; set IFSDRV for possible criter	 ;AN000;
 003E  E8 0000 E             1		CALL    DRIVE_FROM_SFT 
					invoke	PREP_IFSR			; clear ifsrh				 ;AN000;
 0041  E8 0000 E             1		CALL    PREP_IFSR 
 0044  2E: C7 06 0000 E 001E		MOV	DEVICE_CB@_OFFSET,IFSR_DEVICE_CB@					 ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Page     1-5
IFS_COMMIT Commit a FS SFT                                  

					invoke	SFT_TO_SFF			; sets: [THISIFS]			 ;AN000;
 004B  E8 0000 E             1		CALL    SFT_TO_SFF 
										;	ES:BX -> IFSRH			 ;AN000;
										;	IFSR_OPEN_CB@			 ;AN000;
										;	ds - IFSSEG			 ;AN000;
															 ;AN000;
 004E  26: C7 07 0028			MOV	ES:[BX.IFSR_LENGTH],LENGTH_CLOSEFILE	; prep IFSRH			 ;AN000;
 0053  26: C6 47 02 05			MOV	ES:[BX.IFSR_FUNCTION],IFSEXECAPI					 ;AN000;
 0058  26: C6 47 16 0E			MOV	ES:[BX.IFSR_APIFUNC],IFSCLOSEFILE					 ;AN000;
 005D  32 C0				XOR	AL,AL									 ;AN000;
 005F  2E: F7 06 0000 E 0010		TEST	IFSPROC_FLAGS,ISCLOSE							 ;AN000;
 0066  75 02				JNZ	C_40									 ;AN000;
 0068  FE C0				INC	AL									 ;AN000;
 006A				C_40:											 ;AN000;
 006A  26: 88 47 26			MOV	ES:[BX.IFSR_FUNC],AL							 ;AN000;
															 ;AN000;
					invoke	CALL_IFS			; *** call fs with close request	 ;AN000;
 006E  E8 0000 E             1		CALL    CALL_IFS 
															 ;AN000;
 0071  73 19				JNC	C_60									 ;AN000;
 0073  2E: F7 06 0000 E 0010		TEST	IFSPROC_FLAGS,ISCLOSE		; ifs error				 ;AN000;
 007A  74 2C				JZ	C_980				; return w/carry, if close		 ;AN000;
				;;;;;;;;ADD	SP,6				; restore stack first			 ;AD018;
					RestoreReg <CX,DI,ES>			; old ref count & sft			 ;AN018;;AC0
				19;
 007C  59                    2		POP     CX 
 007D  5F                    2		POP     DI 
 007E  07                    2		POP     ES 
 007F  83 F9 01				CMP	CX,1									 ;AN018;;AC0
				19;
 0082  75 24				JNE	C_980									 ;AN018;
 0084  26: C7 05 0000			MOV	ES:[DI.sf_ref_count],0		; If freeing, need to zap		 ;AN018;
 0089  EB 1D 90				JMP	C_980									 ;AN000;
 008C				C_60:											 ;AN000;
					invoke	SFF_TO_SFT								 ;AN000;
 008C  E8 0000 E             1		CALL    SFF_TO_SFT 
 008F  2E: F7 06 0000 E 0010		TEST	IFSPROC_FLAGS,ISCLOSE							 ;AN000;
 0096  74 14				JZ	C_990				; finished w/commit			 ;AN000;
 0098				C_80:											 ;AN011;
					RestoreReg <AX,DI,ES>			; old ref count & sft			 ;AN000;
 0098  58                    2		POP     AX 
 0099  5F                    2		POP     DI 
 009A  07                    2		POP     ES 
 009B  3D 0001				CMP	AX,1									 ;AN000;
 009E  75 0C				JNE	C_990									 ;AN000;
 00A0  26: C7 05 0000			MOV	ES:[DI.sf_ref_count],0		; If freeing, need to zap		 ;AN000;
 00A5  EB 05 90				JMP	C_990				; busy mark				 ;AN000;
															 ;AN000;
															 ;AN000;
 00A8				C_980:						; Return area				 ;AN000;
 00A8  F9				STC										 ;AN000;
 00A9  EB 02 90				JMP	C_1000									 ;AN000;
 00AC				C_990:											 ;AN000;
 00AC  F8				CLC										 ;AN000;
 00AD				C_1000: 					; preserve ds - dosgroup		 ;AN000;
 00AD  16				PUSH	SS									 ;AN000;
 00AE  1F				POP	DS									 ;AN000;
					return										 ;AN000;
 00AF                        1	??0000: 
 00AF  C3                    1		RET 
															 ;AN000;
				EndProc IFS_COMMIT									 ;AN000;
 00B0                        1	IFS_COMMIT    ENDP 
															 ;AN000;
				BREAK <IFS_LSEEK Seek on a NET SFT>							 ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Page     1-6
IFS_LSEEK Seek on a NET SFT                                 

															 ;AN000;
				;****************************************************************************** 	 ;AN000;
				;											 ;AN000;
				; IFS_LSEEK										 ;AN000;
				;											 ;AN000;
				; Inputs:										 ;AN000;
				;	ES:DI -> SFT									 ;AN000;
				;	CX:DX = Input CX:DX to $Lseek (offset)						 ;AN000;
				;	NOTE: THIS LSEEK IS ALWAYS ASSUMED TO BE A TYPE 2 (relative to EOF)		 ;AN000;
				; Function:										 ;AN000;
				;     Prep IFSRH:									 ;AN000;
				;     *  IFSR_LENGTH	  DW	 44	  ; Request length				 ;AN000;
				;     *  IFSR_FUNCTION	  DB	  4	  ; Execute API function			 ;AN000;
				;      + IFSR_RETCODE	  DW	  ?							 ;AN000;
				;      + IFSR_RETCLASS	  DB	  ?							 ;AN000;
				;	 IFSR_RESV1	  DB	 16 DUP(0)						 ;AN000;
				;     *  IFSR_APIFUNC	  DB	 10	  ; Lseek file					 ;AN000;
				;      + IFSR_ERROR_CLASS DB	  ?							 ;AN000;
				;      + IFSR_ERROR_ACTION DB	  ?							 ;AN000;
				;      + IFSR_ERROR_LOCUS DB	  ?							 ;AN000;
				;      + IFSR_ALLOWED	  DB	  ?							 ;AN000;
				;      + IFSR_I24_RETRY   DB	  ?							 ;AN000;
				;      + IFSR_I24_RESP	  DB	  ?							 ;AN000;
				;	 IFSR_RESV2	  DB	  ?							 ;AN000;
				;	 IFSR_DEVICE_CB@  DD	  ?							 ;AN000;
				;     *+ IFSR_OPEN_CB@	  DD	  ?	  ; Call SFT_TO_SFFto convert SFT to SF 	 ;AN000;
				;					  ; and set this as pointer to it.		 ;AN000;
				;     *  IFSR_MODE	  DB	  2	  ; Position mode: - BL 			 ;AN000;
				;					  ;   2 = ptr moved eof + offset		 ;AN000;
				;	 IFSR_RESV2	  DB	  0							 ;AN000;
				;     *  IFSR_POSITION	  DD	  ?	  ; displacement of LSEEK - CX:DX		 ;AN000;
				;											 ;AN000;
				;     CALL routine, CALL_IFS, with pointer to SF_IFSR_HDR				 ;AN000;
				;     IF IFSR_RETCODE = 0 THEN								 ;AN000;
				;	 DO										 ;AN000;
				;	   Call SFF_TO_SFT								 ;AN000;
				;	   Set DX:AX = IFSR_POSITION							 ;AN000;
				;	   Clear carry									 ;AN000;
				;	 ENDDO										 ;AN000;
				;     ELSE DO	  {error}								 ;AN000;
				;	     AX = IFSR_RETCODE								 ;AN000;
				;	     Set carry									 ;AN000;
				;	   ENDDO									 ;AN000;
				;     ENDIF										 ;AN000;
				; Returns:										 ;AN000;
				;	ES:DI -> SFT									 ;AN000;
				;	Carry clear									 ;AN000;
				;		DX:AX return as with local $Lseek					 ;AN000;
				;	Carry Set									 ;AN000;
				;		AX is error code							 ;AN000;
				; All destroyed 									 ;AN000;
				;											 ;AN000;
				;****************************************************************************** 	 ;AN000;
															 ;AN000;
					procedure   IFS_LSEEK,NEAR							 ;AN000;
 00B0                        1	IFS_LSEEK    PROC    NEAR 
				ASSUME	DS:Nothing,ES:NOTHING			; Initially DS is unknown		 ;AN020;
															 ;AN000;
					ifsr_fcn_def  EXECAPI			; define ifsr for lseek 		 ;AN000;
					ifsr_api_def  LSEEKFILE 							 ;AN000;
															 ;AN000;
 00B0  16				PUSH	SS				; Set DS to DOSGROUP			 ;AN020;
 00B1  1F				POP	DS				;					 ;AN020;
				ASSUME	DS:DOSGROUP				;					 ;AN020;
				
 00B2  2E: C7 06 0000 E 0100		MOV	CS:IFSPROC_FLAGS,SETDEVICECB	; init processing flags 		 ;AN000;
 00B9  89 3E 0000 E			MOV	WORD PTR [THISSFT],DI							 ;AN020;
 00BD  8C 06 0002 E			MOV	WORD PTR [THISSFT+2],ES 						 ;AN020;
					SaveReg <ES,DI> 			; save for later restore before leave	 ;AN012;;AN0
				20;
 00C1  06                    2		PUSH    ES 
 00C2  57                    2		PUSH    DI 
				
					invoke	PREP_IFSR								 ;AN000;
 00C3  E8 0000 E             1		CALL    PREP_IFSR 
															 ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Page     1-7
IFS_LSEEK Seek on a NET SFT                                 

					invoke	DRIVE_FROM_SFT			; set IFSDRV for possible criter	 ;AN000;
 00C6  E8 0000 E             1		CALL    DRIVE_FROM_SFT 
 00C9  2E: C7 06 0000 E 001E		MOV	CS:DEVICE_CB@_OFFSET,IFSR_DEVICE_CB@					 ;AN000;
					invoke	SFT_TO_SFF			; sets: [THISIFS]			 ;AN000;
 00D0  E8 0000 E             1		CALL    SFT_TO_SFF 
										;	ES:BX -> IFSRH			 ;AN000;
										;	IFSR_OPEN_CB@			 ;AN000;
										;	ds - IFSSEG			 ;AN000;
															 ;AN000;
 00D3  26: C7 07 002C			MOV	ES:[BX.IFSR_LENGTH],LENGTH_LSEEKFILE	; prep IFSRH			 ;AN000;
 00D8  26: C6 47 02 05			MOV	ES:[BX.IFSR_FUNCTION],IFSEXECAPI					 ;AN000;
 00DD  26: C6 47 16 0A			MOV	ES:[BX.IFSR_APIFUNC],IFSLSEEKFILE					 ;AN000;
 00E2  26: C6 47 26 02			MOV	ES:[BX.IFSR_MODE_BYTE],MODE2 						 ;AN000;
 00E7  26: 89 57 28			MOV	WORD PTR ES:[BX.IFSR_POSITION],DX					 ;AN000;
 00EB  26: 89 4F 2A			MOV	WORD PTR ES:[BX.IFSR_POSITION+2],CX					 ;AN000;
															 ;AN000;
					invoke	CALL_IFS			; call fs with lseek request		 ;AN000;
 00EF  E8 0000 E             1		CALL    CALL_IFS 
															 ;AN000;
 00F2  72 0C				JC	LS_1000 								 ;AN000;
 00F4  26: 8B 47 28			MOV	AX,WORD PTR ES:[BX.IFSR_POSITION]					 ;AN000;
 00F8  26: 8B 57 2A			MOV	DX,WORD PTR ES:[BX.IFSR_POSITION+2]					 ;AN000;
					invoke	SFF_TO_SFT								 ;AN000;
 00FC  E8 0000 E             1		CALL    SFF_TO_SFT 
															 ;AN000;
 00FF  F8				CLC										 ;AN000;
 0100				LS_1000:										 ;AN000;
					RestoreReg <DI,ES>			; restore sft ptr for ibmdos		 ;AN012;
 0100  5F                    2		POP     DI 
 0101  07                    2		POP     ES 
					return										 ;AN000;
 0102                        1	??0001: 
 0102  C3                    1		RET 
															 ;AN000;
				EndProc IFS_LSEEK									 ;AN000;
 0103                        1	IFS_LSEEK    ENDP 
															 ;AN000;
				BREAK <IFS_READ Read from a NET SFT>							 ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Page     1-8
IFS_READ Read from a NET SFT                                

															 ;AN000;
				;****************************************************************************** 	 ;AN000;
				;											 ;AN000;
				; IFS_READ										 ;AN000;
				;											 ;AN000;
				; Called by:	   IFSFUNC dispatcher							 ;AN000;
				;											 ;AN000;
				; Routines called: CALL_IFS								 ;AN000;
				;		   SFT_TO_SFF								 ;AN000;
				;		   SFF_TO_SFT								 ;AN000;
				;											 ;AN000;
				; Inputs:										 ;AN000;
				;	Outputs of SETUP:								 ;AN000;
				;	    CX = byte count								 ;AN000;
				;	    ES:DI Points to SFT 							 ;AN000;
				;	    [DMAADD] = transfer addr							 ;AN000;
				;	SFT checked for access mode							 ;AN000;
				; Function:										 ;AN000;
				;     Prep IFSRH:									 ;AN000;
				;     *  IFSR_LENGTH	  DW	 46	  ; Total length of request			 ;AN000;
				;     *  IFSR_FUNCTION	  DB	  4	  ; Execute API function			 ;AN000;
				;      + IFSR_RETCODE	  DW	  ?							 ;AN000;
				;      + IFSR_RETCLASS	  DB	  ?							 ;AN000;
				;	 IFSR_RESV1	  DB	 16 DUP(0)						 ;AN000;
				;     *  IFSR_APIFUNC	  DB	 11	  ; Read Byte Block				 ;AN000;
				;      + IFSR_ERROR_CLASS DB	  ?							 ;AN000;
				;      + IFSR_ERROR_ACTION DB	  ?							 ;AN000;
				;      + IFSR_ERROR_LOCUS DB	  ?							 ;AN000;
				;      + IFSR_ALLOWED	  DB	  ?							 ;AN000;
				;      + IFSR_I24_RETRY   DB	  ?							 ;AN000;
				;      + IFSR_I24_RESP	  DB	  ?							 ;AN000;
				;	 IFSR_RESV2	  DB	  ?							 ;AN000;
				;     *+ IFSR_DEVICE_CB@  DD	  ?	  ; CD/DF - specified in SF_DEVPTR		 ;AN000;
				;     *+ IFSR_OPEN_CB@	  DD	  ?	  ; Call SFT_TO_SFFto convert SFT to SF 	 ;AN000;
				;					  ; and set this as pointer to it.		 ;AN000;
				;	 IFSR_RESV3	  DW	  0							 ;AN000;
				;	 IFSR_COUNT	  DW	  0							 ;AN000;
				;     *+ IFSR_BUFFER@	  DD	  ?	  ; [DMAADD]					 ;AN000;
				;											 ;AN000;
				;     CALL routine, CALL_IFS, with pointer to SF_IFSR_HDR				 ;AN000;
				;     IF IFSR_RETCODE = 0 THEN								 ;AN000;
				;	 DO										 ;AN000;
				;	   Call SFF_TO_SFT								 ;AN000;
				;	   CX = IFSR_COUNT								 ;AN000;
				;	   ES:DI -> SFT 								 ;AN000;
				;	 ENDDO										 ;AN000;
				;     ELSE DO	  {error}								 ;AN000;
				;	     AX = IFSR_RETCODE								 ;AN000;
				;	     CX = 0									 ;AN000;
				;	     ES:DI -> SFT								 ;AN000;
				;	     Set carry									 ;AN000;
				;	   ENDDO									 ;AN000;
				;     ENDIF										 ;AN000;
				; Outputs:										 ;AN000;
				;    Carry clear									 ;AN000;
				;	SFT Position updated								 ;AN000;
				;	CX = No. of bytes read								 ;AN000;
				;	ES:DI point to SFT								 ;AN000;
				;	[DMAADD] filled with info read							 ;AN000;
				;    Carry set										 ;AN000;
				;	AX is error code								 ;AN000;
				;	CX = 0										 ;AN000;
				;	ES:DI point to SFT								 ;AN000;
				; DS preserved, all other registers destroyed						 ;AN000;
				;											 ;AN000;
				;****************************************************************************** 	 ;AN000;
															 ;AN000;
					procedure   IFS_READ,NEAR							 ;AN000;
 0103                        1	IFS_READ    PROC    NEAR 
				ASSUME	DS:DOSGROUP,ES:NOTHING								 ;AN000;
															 ;AN000;
					ifsr_fcn_def  EXECAPI			; define ifsr for read			 ;AN000;
 0103  2E: C7 06 0000 E 0100		MOV	CS:IFSPROC_FLAGS,SetDeviceCB						 ;AN000;
 010A  89 3E 0000 E			MOV	WORD PTR [THISSFT],DI		; set thissft				 ;AN000;
 010E  8C 06 0002 E			MOV	WORD PTR [THISSFT+2],ES 						 ;AN000;
															 ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Page     1-9
IFS_READ Read from a NET SFT                                

 0112				R_20:						; (welcome lock/read)			 ;AN000;
					ifsr_api_def  READFILE								 ;AN000;
					invoke	PREP_IFSR			; zero out ifsr, es:bx -> ifsr		 ;AN000;
 0112  E8 0000 E             1		CALL    PREP_IFSR 
 0115  26: C7 07 002E			MOV	ES:[BX.IFSR_LENGTH],LENGTH_READFILE	; prep IFSRH			 ;AN000;
 011A  26: C6 47 16 0B			MOV	ES:[BX.IFSR_APIFUNC],IFSREADFILE					 ;AN000;
				;	XOR	AL,AL				; for now, set mode = read (0)		 ;AD010;
				;	TEST	CS:IFSPROC_FLAGS,ISLOCKREAD						 ;AD010;
				;	JZ	W_80									 ;AD010;
				;	INC	AL				; inc mode to mode_lock_read		 ;AD010;
 011F  EB 1D 90				JMP	W_80				; cont. read/write common code		 ;AN000;
										;  in ifs_write below			 ;AN000;
															 ;AN000;
				EndProc IFS_READ									 ;AN000;
 0122                        1	IFS_READ    ENDP 
															 ;AN000;
				BREAK <IFS_WRITE Write to a NET SFT>							 ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Page     1-10
IFS_WRITE Write to a NET SFT                                

															 ;AN000;
				;****************************************************************************** 	 ;AN000;
				;											 ;AN000;
				; IFS_WRITE										 ;AN000;
				;											 ;AN000;
				; Called by:	   IFSFUNC dispatcher							 ;AN000;
				;											 ;AN000;
				; Routines called: CALL_IFS								 ;AN000;
				;		   SFT_TO_SFF								 ;AN000;
				;		   SFF_TO_SFT								 ;AN000;
				;											 ;AN000;
				; Inputs:										 ;AN000;
				;	Outputs of SETUP:								 ;AN000;
				;	    CX = byte count								 ;AN000;
				;	    ES:DI Points to SFT 							 ;AN000;
				;	    [DMAADD] = transfer addr							 ;AN000;
				;	SFT checked for access mode							 ;AN000;
				; Function:										 ;AN000;
				;     Prep IFSRH:									 ;AN000;
				;     *  IFSR_LENGTH	  DW	 46	  ; Length of request				 ;AN000;
				;     *  IFSR_FUNCTION	  DB	  4	  ; Execute API function			 ;AN000;
				;      + IFSR_RETCODE	  DW	  ?							 ;AN000;
				;      + IFSR_RETCLASS	  DB	  ?							 ;AN000;
				;	 IFSR_RESV1	  DB	 16 DUP(0)						 ;AN000;
				;     *  IFSR_APIFUNC	  DB	 12	  ; Write Byte Block				 ;AN000;
				;      + IFSR_ERROR_CLASS DB	  ?							 ;AN000;
				;      + IFSR_ERROR_ACTION DB	  ?							 ;AN000;
				;      + IFSR_ERROR_LOCUS DB	  ?							 ;AN000;
				;      + IFSR_ALLOWED	  DB	  ?							 ;AN000;
				;      + IFSR_I24_RETRY   DB	  ?							 ;AN000;
				;      + IFSR_I24_RESP	  DB	  ?							 ;AN000;
				;	 IFSR_RESV2	  DB	  ?							 ;AN000;
				;     *+ IFSR_DEVICE_CB@  DD	  ?							 ;AN000;
				;     *+ IFSR_OPEN_CB@	  DD	  ?	  ; call SFT_TO_SFF & set this as ptr		 ;AN000;
				;	 IFSR_RESV3	  DW	  0							 ;AN000;
				;     *  IFSR_COUNT	  DW	  ?	  ; # bytes to write - CX			 ;AN000;
				;     *  IFSR_BUFFER@	  DD	  ?	  ; Data buffer - [DMAADD]			 ;AN000;
				;											 ;AN000;
				;     CALL routine, CALL_IFS, with pointer to SF_IFSR_HDR				 ;AN000;
				;     IF IFSR_RETCODE = 0 THEN								 ;AN000;
				;	 DO										 ;AN000;
				;	   Call SFF_TO_SFT								 ;AN000;
				;	   CX = IFSR_COUNT								 ;AN000;
				;	   ES:DI -> SFT 								 ;AN000;
				;	   Clear carry									 ;AN000;
				;	 ENDDO										 ;AN000;
				;     ELSE DO	  {error}								 ;AN000;
				;	     AX = IFSR_RETCODE								 ;AN000;
				;	     CX = 0									 ;AN000;
				;	     ES:DI -> SFT								 ;AN000;
				;	     Set carry									 ;AN000;
				;	   ENDDO									 ;AN000;
				;     ENDIF										 ;AN000;
				; Outputs:										 ;AN000;
				;    Carry clear									 ;AN000;
				;	SFT Position updated								 ;AN000;
				;	CX = No. of bytes written							 ;AN000;
				;	ES:DI point to SFT								 ;AN000;
				;    Carry set										 ;AN000;
				;	AX is error code								 ;AN000;
				;	CX = 0										 ;AN000;
				;	ES:DI point to SFT								 ;AN000;
				; DS preserved, all other registers destroyed						 ;AN000;
				;											 ;AN000;
				;****************************************************************************** 	 ;AN000;
															 ;AN000;
					procedure   IFS_WRITE,NEAR							 ;AN000;
 0122                        1	IFS_WRITE    PROC    NEAR 
				ASSUME	DS:DOSGROUP,ES:NOTHING								 ;AN000;
															 ;AN000;
					ifsr_fcn_def  EXECAPI			; define ifsr for write 		 ;AN000;
 0122  2E: C7 06 0000 E 0100		MOV	CS:IFSPROC_FLAGS,SetDeviceCB	; init processing flags 		 ;AN000;
 0129  89 3E 0000 E			MOV	WORD PTR [THISSFT],DI		; set thissft				 ;AN000;
 012D  8C 06 0002 E			MOV	WORD PTR [THISSFT+2],ES 						 ;AN000;
															 ;AN000;
 0131				W_20:						; (welcome write/unlock)		 ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Page     1-11
IFS_WRITE Write to a NET SFT                                

					ifsr_api_def  WRITEFILE 							 ;AN000;
					invoke	PREP_IFSR								 ;AN000;
 0131  E8 0000 E             1		CALL    PREP_IFSR 
 0134  26: C7 07 002E			MOV	ES:[BX.IFSR_LENGTH],LENGTH_WRITEFILE	; prep IFSRH			 ;AN000;
 0139  26: C6 47 16 0C			MOV	ES:[BX.IFSR_APIFUNC],IFSWRITEFILE					 ;AN000;
				;	XOR	AL,AL				; for now set mode to write (bit0=0)	 ;AD010;
				;	TEST	CS:IFSPROC_FLAGS,ISWRITEUNLOCK						 ;AD010;
				;	JZ	W_40									 ;AD010;
				;	INC	AL				; set mode to write/unlock (bit0=1)	 ;AD010;
				;W_40:											 ;AD010;
				;	TEST	CS:IFSPROC_FLAGS,ISADD							 ;AD010;
				;	JZ	W_80									 ;AD010;
				;	OR	AL,MODE_ADD_MASK		; set mode to add (bit 1)		 ;AD010;
				;W_80:						 ; (welcome read)			 ;AD010;
				;	TEST	CS:IFSPROC_FLAGS,ISWOLOCK						 ;AD010; BAF
				;	JZ	W_90									 ;AD010; BAF
				;	OR	AL,MODE_WO_MASK 		; set mode to Write Only Lock		 ;AD010; BAF
				;W_90:											 ;AD010; BAF
				;	MOV	ES:[BX.IFSR_MODE],AL							 ;AD010;
 013E				W_80:						; (welcome read)			 ;AN010;
 013E  2E: C7 06 0000 E 001E		MOV	CS:DEVICE_CB@_OFFSET,IFSR_DEVICE_CB@					 ;AC015;
 0145  26: C6 47 02 05			MOV	ES:[BX.IFSR_FUNCTION],IFSEXECAPI					 ;AN000;
 014A  26: 89 4F 28			MOV	ES:[BX.IFSR_COUNT],CX							 ;AN000;
															 ;AN000;
 014E  A1 0000 E			MOV	AX,WORD PTR [DMAADD]		; to access dmaadd			 ;AN000;
 0151  26: 89 47 2A			MOV	WORD PTR ES:[BX.IFSR_BUFFER@],AX					 ;AN000;
 0155  A1 0002 E			MOV	AX,WORD PTR [DMAADD+2]							 ;AN000;
 0158  26: 89 47 2C			MOV	WORD PTR ES:[BX.IFSR_BUFFER@+2],AX					 ;AN000;
															 ;AN000;
					invoke	DRIVE_FROM_SFT			; set IFSDRV for possible criter	 ;AN000;
 015C  E8 0000 E             1		CALL    DRIVE_FROM_SFT 
					invoke	SFT_TO_SFF			; sets: [THISIFS]			 ;AN000;
 015F  E8 0000 E             1		CALL    SFT_TO_SFF 
										;	ES:BX -> IFSRH			 ;AN000;
										;	IFSR_OPEN_CB@			 ;AN000;
										;	ds - IFSSEG			 ;AN000;
															 ;AN000;
					invoke	CALL_IFS			; *** call fs with read/write request	 ;AN000;
 0162  E8 0000 E             1		CALL    CALL_IFS 
															 ;AN000;
 0165  73 09				JNC	W_100									 ;AN000;
					Context DS				; restore ds-dosgroup			 ;AN001;
 0167  16                    1		PUSH    SS 
 0168  1F                    1		POP     DS 
 0169  C4 3E 0000 E			LES	DI,[THISSFT]			; restore esdi-sft			 ;AN001;
					transfer ifs_1000			; transfer to general ret as carry set	 ;AC001;
 016D  E9 0000 E             2	??0002:      JMP ifs_1000                         ; 
 0170				W_100:											 ;AN000;
 0170  26: 8B 4F 28			MOV	CX,ES:[BX.IFSR_COUNT]		; prep reg output			 ;AN000;
					invoke	SFF_TO_SFT								 ;AN000;
 0174  E8 0000 E             1		CALL    SFF_TO_SFT 
				
					Context DS				; restore ds-dosgroup			 ;AN001;
 0177  16                    1		PUSH    SS 
 0178  1F                    1		POP     DS 
 0179  C4 3E 0000 E			LES	DI,[THISSFT]			; restore esdi-sft			 ;AN001;
					transfer ifs_990			; transfer to general good ret in util	 ;AN001;
 017D  E9 0000 E             2	??0003:      JMP ifs_990                         ; 
															 ;AN000;
				EndProc IFS_WRITE									 ;AN000;
 0180                        1	IFS_WRITE    ENDP 
															 ;AN000;
				BREAK <IFS_XLOCK Lock a FS SFT> 							 ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Page     1-12
IFS_XLOCK Lock a FS SFT                                     

															 ;AN000;
				;****************************************************************************** 	 ;AN000;
				;											 ;AN000;
				; IFS_XLOCK										 ;AN000;
				;											 ;AN000;
				; Called by:	     IFSFUNC dispatcher 						 ;AN000;
				;											 ;AN000;
				; Routines called:   CALL_IFS		DRIVE_FROM_SFT					 ;AN000;
				;		     SFT_TO_SFF 							 ;AN000;
				;		     SFF_TO_SFT 							 ;AN000;
				;											 ;AN000;
				; Inputs:										 ;AN000;
				;	BL = 80H bit: 0  lock all operations						 ;AN000;
				;		      1  lock write operations only					 ;AN000;
				;	     0	Lock
				;	     1	Unlock
				;	     2	lock multiple range							 ;AN000;
				;	     3	unlock multiple range							 ;AN000;
				;	     4	lock/read								 ;AN000;
				;	     5	write/unlock								 ;AN000;
				;	     6	add (lseek eof/lock/write/unlock)					 ;AN000;
				;	ES:DI -> SFT									 ;AN000;
				;	CX = count/size  Number of ranges/block size					 ;AN000;
				;	DS:DX -> BUFFER  LABEL	DWORD							 ;AN000;
				;			 DD	POSITION  ; lock range, repeats CX times		 ;AN000;
				;			 DD	LENGTH	  ;						 ;AN000;
				;											 ;AN000;
				;											 ;AN000;
				; Function:										 ;AN000;
				;	Prep IFSRH:									 ;AN000;
				;	*  IFSR_LENGTH	    DW	   46+	    ; Length of request 			 ;AN000;
				;	*  IFSR_FUNCTION    DB	    4	    ; Execute API function			 ;AN000;
				;	 + IFSR_RETCODE     DW	    ?							 ;AN000;
				;	 + IFSR_RETCLASS    DB	    ?							 ;AN000;
				;	   IFSR_RESV1	    DB	   16 DUP(0)						 ;AN000;
				;	*  IFSR_APIFUNC     DB	   13	    ; Lock Function				 ;AN000;
				;	 + IFSR_ERROR_CLASS DB	    ?							 ;AN000;
				;	 + IFSR_ERROR_ACTION DB     ?							 ;AN000;
				;	 + IFSR_ERROR_LOCUS DB	    ?							 ;AN000;
				;	 + IFSR_ALLOWED     DB	    ?							 ;AN000;
				;	 + IFSR_I24_RETRY   DB	    ?							 ;AN000;
				;	 + IFSR_I24_RESP    DB	    ?							 ;AN000;
				;	   IFSR_RESV2	    DB	    ?							 ;AN000;
				;	*+ IFSR_DEVICE_CB@  DD	    ?							 ;AN000;
				;	*+ IFSR_OPEN_CB@    DD	    ?	    ; Call SFT_TO_SFFto convert SFT to SFF	 ;AN000;
				;					    ; and set this as pointer to it.		 ;AN000;
				;	*  IFSR_FUNC	    DB	    subfunction     ; 0=LOCK, 1=UNLOCK			 ;AN000;
				;	   IFSR_RESV3	    DB	    DOS reserved					 ;AN000;
				;	*  IFSR_POSITION    DD	    range start     ; single range			 ;AN000;
				;	*  IFSR_LENGTH	    DD	    range length					 ;AN000;
				;											 ;AN000;
				;	CALL routine, CALL_IFS, with pointer to SF_IFSR_HDR				 ;AN000;
				;	IF IFSR_RETCODE = 0 THEN							 ;AN000;
				;	   DO										 ;AN000;
				;	     Call SFF_TO_SFT								 ;AN000;
				;	     Clear carry								 ;AN000;
				;	   ENDDO									 ;AN000;
				;	ELSE DO     {error}								 ;AN000;
				;	       AX = IFSR_RETCODE							 ;AN000;
				;	       Set carry								 ;AN000;
				;	     ENDDO									 ;AN000;
				;	ENDIF										 ;AN000;
				;											 ;AN000;
				; Outputs:										 ;AN000;
				;	AX set on error: Lock conflict							 ;AN000;
				;			 Too many locks 						 ;AN000;
				;											 ;AN000;
				;****************************************************************************** 	 ;AN000;
															 ;AN000;
					procedure   IFS_XLOCK,NEAR							 ;AN000;
 0180                        1	IFS_XLOCK    PROC    NEAR 
															 ;AN000;
					ifsr_fcn_def  EXECAPI								 ;AN000;
					ifsr_api_def  LOCKFILE								 ;AN000;
															 ;AN000;
					SaveReg <BX>				; save input bl 			 ;AN014;
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Page     1-13
IFS_XLOCK Lock a FS SFT                                     

 0180  53                    2		PUSH    BX 
 0181  2E: C7 06 0000 E 0100		MOV	CS:IFSPROC_FLAGS,SetDeviceCB						 ;AC002;
				;;;;;;;;TEST	BL,80H									 ;AN006;AD01
				0;
				;	JZ	L_10									 ;AN006;AD01
				0;
				;	OR	CS:IFSPROC_FLAGS,IsWOLock	; This is Write Only lock		 ;AN006;AD01
				0;
				;L_10:											 ;AN006;AD01
				0;
				;	SaveReg <BX>				; save function (int 21h al value)	 ;AD010;
				;	AND	BL,07FH 			; ditch 80h bit for now 		 ;AD010;
				;	CMP	BL,INT21AL_LOCK_READ		; Check for special case locks		 ;AD010;
				;	JB	L_60				; these generate different		 ;AD010;
				;	JNE	L_20				; ifsrh's.                               ;AD010;
				;	OR	CS:IFSPROC_FLAGS,IsLockRead	; This is lock/read request		 ;AD010;
				;	RestoreReg <BX> 			; restore bx with 80 bit		 ;AD010;
				;	Context DS									 ;AD010;
				;	JMP	R_20				; let ifs_read above handle this	 ;AD010;
				;L_20:											 ;AD010;
				;	CMP	BL,INT21AL_WRITE_UNLOCK 						 ;AD010;
				;	RestoreReg <BX> 			; restore bx with 80 bit		 ;AD010;
				;	JNE	L_40									 ;AD010;
				;	OR	CS:IFSPROC_FLAGS,IsWriteUnlock	; This is write/unlock request		 ;AD010;
				;	JMP	SHORT L_50			; cont. ifs_write above 		 ;AD010;
				;L_40:											 ;AD010;
				;	OR	IFSPROC_FLAGS,IsAdd							 ;AD010;
				;L_50:											 ;AD010;
				;	Context DS									 ;AD010;
				;;;;;;;;JMP	W_20				; cont. in ifs_write above		 ;AD010;
															 ;AN000;
 0188				L_60:											 ;AN000;
					SaveReg <DS>				; save input ds (buffer ptr)		 ;AN000;
 0188  1E                    2		PUSH    DS 
					Context DS				; ds-dosgroup to access thissft 	 ;AN000;
 0189  16                    1		PUSH    SS 
 018A  1F                    1		POP     DS 
 018B  89 3E 0000 E			MOV	WORD PTR [THISSFT],DI		; set [THISSFT] 			 ;AN000;
 018F  8C 06 0002 E			MOV	WORD PTR [THISSFT+2],ES 						 ;AN000;
					invoke	DRIVE_FROM_SFT			; set IFSDRV for possible criter	 ;AN000;
 0193  E8 0000 E             1		CALL    DRIVE_FROM_SFT 
					invoke	PREP_IFSR			; clear ifsrh				 ;AM003;
 0196  E8 0000 E             1		CALL    PREP_IFSR 
 0199  2E: C7 06 0000 E 001E		MOV	CS:DEVICE_CB@_OFFSET,IFSR_DEVICE_CB@					 ;AN000;
					invoke	SFT_TO_SFF			; sets: [THISIFS]			 ;AN000;
 01A0  E8 0000 E             1		CALL    SFT_TO_SFF 
										;	ES:BX -> IFSRH			 ;AN000;
										;	IFSR_OPEN_CB@			 ;AN000;
										;	ds - IFSSEG			 ;AN000;
 01A3  26: C7 07 0030			MOV	ES:[BX.IFSR_LENGTH],LENGTH_LOCKFILE	; prep IFSRH			 ;AN000;
 01A8  26: C6 47 02 05			MOV	ES:[BX.IFSR_FUNCTION],IFSEXECAPI					 ;AN000;
 01AD  26: C6 47 16 0D			MOV	ES:[BX.IFSR_APIFUNC],IFSLOCKFILE					 ;AN000;
				;;;;;;;;MOV	ES:[BX.IFSR_COUNT],CX							 ;AN003;AD01
				0;
					RestoreReg <DS> 			; range segment, mode (input bl)	 ;AC003;AC01
				0;
 01B2  1F                    2		POP     DS 
				;;;;;;;;MOV	AL,CL									 ;AN003;AD01
				0;
				;	AND	AL,07FH 			; mask off hi 80 bit			 ;AN003;AD01
				0;
				;	CMP	AL,2									 ;AN003;AD01
				0;
				;	JGE	L_70									 ;AN003;AD01
				0;
				;	ADD	CL,2									 ;AN003;AD01
				0;
				;L_70:											 ;AN003;AD01
				0;
				;	MOV	ES:[BX.IFSR_MODE],CL							 ;AN000;AD01
				0;
				;	AND	ES:[BX.IFSR_MODE],80H		; ditch input bl in low nibble		 ;AN005;AD01
				0;
				;	AND	CL,07FH 								 ;AN003;AD01
				0;
				;;;;;;;;SUB	CL,2				; set func (0-lock,1-unlock)		 ;AC003;AD01
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Page     1-14
IFS_XLOCK Lock a FS SFT                                     

				0;
					RestoreReg <AX> 			; restore input bl into al		 ;AN014;
 01B3  58                    2		POP     AX 
 01B4  26: 88 47 26			MOV	ES:[BX.IFSR_FUNC],AL							 ;AC003;AC01
				0;
				;;;;;;;;MOV	WORD PTR ES:[BX.IFSR_RANGE@],DX 					 ;AD010;
				;;;;;;;;MOV	WORD PTR ES:[BX.IFSR_RANGE@+2],DS					 ;AD010;
					SaveReg <SI,DX> 								 ;AN010;
 01B8  56                    2		PUSH    SI 
 01B9  52                    2		PUSH    DX 
					RestoreReg <SI> 								 ;AN010;
 01BA  5E                    2		POP     SI 
 01BB  8B 04				MOV	AX,WORD PTR DS:[SI]							 ;AN010;
 01BD  26: 89 47 28			MOV	WORD PTR ES:[BX.IFSR_LK_POSITION],AX					 ;AN010;
 01C1  8B 44 02				MOV	AX,WORD PTR DS:[SI+2]							 ;AN010;
 01C4  26: 89 47 2A			MOV	WORD PTR ES:[BX.IFSR_LK_POSITION+2],AX					 ;AN010;
 01C8  8B 44 04				MOV	AX,WORD PTR DS:[SI+4]							 ;AN010;
 01CB  26: 89 47 2C			MOV	WORD PTR ES:[BX.IFSR_LK_LENGTH],AX					 ;AN010;
 01CF  8B 44 06				MOV	AX,WORD PTR DS:[SI+6]							 ;AN010;
 01D2  26: 89 47 2E			MOV	WORD PTR ES:[BX.IFSR_LK_LENGTH+2],AX					 ;AN010;
					RestoreReg <SI>
 01D6  5E                    2		POP     SI 
					SaveReg <CS>				; set ds=ifsseg for ifs call		 ;AN003;
 01D7  0E                    2		PUSH    CS 
					RestoreReg <DS> 								 ;AN003;
 01D8  1F                    2		POP     DS 
				
					invoke	CALL_IFS			; *** call fs with lock request 	 ;AN000;
 01D9  E8 0000 E             1		CALL    CALL_IFS 
															 ;AN000;
 01DC  73 02				JNC	L_100									 ;AN000;
					transfer ifs_1000			; go to general return	 (util) 	 ;AN000;
 01DE  EB 8D                 2	??0004:      JMP ifs_1000_J                      ; 
 01E0				L_100:											 ;AN000;
					invoke	SFF_TO_SFT								 ;AN000;
 01E0  E8 0000 E             1		CALL    SFF_TO_SFT 
					transfer ifs_990			; go to general good ret (util) 	 ;AN000;
 01E3  EB 98                 2	??0005:      JMP ifs_990_J                      ; 
															 ;AN000;
															 ;AN000;
				EndProc IFS_XLOCK									 ;AN000;
 01E5                        1	IFS_XLOCK    ENDP 
															 ;AN000;
				BREAK <IFS_FILE_XATTRIBUTES Get/Set File Extended Attributes by handle> 		 ;AN000;
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Page     1-15
IFS_FILE_XATTRIBUTES Get/Set File Extended Attributes by han

				
				;******************************************************************************
				;
				; IFS_FILE_XATTRIBUTES
				;
				; Called by:	     IFSFUNC dispatcher
				;
				; Routines called:   CALL_IFS	  DRIVE_FROM_SFT
				;		     SFT_TO_SFF
				;		     SFF_TO_SFT
				;
				; Inputs:
				;	[THISSFT] Points to SFT being used
				;	[SAVE_ES:DI] -> Buffer for EA or EA names list
				;	[SAVE_DS:SI] -> Query List  (BL=2)
				;	[SAVE_CX] = buffer size     (BL=2,3)
				;	BL	  = function - 2=Get EA
				;			3=Get EA Names
				;			4=Set EA
				;
				; Function:
				;	This call is driven by the new INT 21H call 57H.  *** REMOVED
				;	     Prep IFSRH:
				;	     *	IFSR_LENGTH	 DW	50	 ; Total length of request
				;	     *	IFSR_FUNCTION	 DB	 4	 ; Execute API function
				;	      + IFSR_RETCODE	 DW	 ?
				;	      + IFSR_RETCLASS	 DB	 ?
				;		IFSR_RESV1	 DB	16 DUP(0)
				;	     *	IFSR_APIFUNC	 DB	15	 ; File Attributes - get/set by name
				;	      + IFSR_ERROR_CLASS DB	 ?
				;	      + IFSR_ERROR_ACTION DB	 ?
				;	      + IFSR_ERROR_LOCUS DB	 ?
				;	      + IFSR_ALLOWED	 DB	 ?
				;	      + IFSR_I24_RETRY	 DB	 ?
				;	      + IFSR_I24_RESP	 DB	 ?
				;		IFSR_RESV2	 DB	 ?
				;		IFSR_DEVICE_CB@  DD	 ?
				;	     *+ IFSR_OPEN_CB@	 DD	 ?
				;	     *	IFSR_FUNC	 DB	 ?	 ; 0-get 1-set
				;	     *	IFSR_SUBFUNC	 DB	 ?	 ; 2-EA  3-EA names
				;	     *+ IFSR_BUFFER1@	 DD	 ?	 ; Query List
				;	     *+ IFSR_BUFFER2@	 DD	 ?	 ; EA List
				;	     *+ IFSR_COUNT	 DW	 ?	 ; count
				;
				;	     CALL routine, CALL_IFS, with pointer to SF_IFSR_HDR
				;	     IF IFSR_RETCODE = 0 THEN
				;		DO
				;		  Call SFF_TO_SFT
				;		  Clear carry
				;		ENDDO
				;	     ELSE DO
				;		    AX = IFSR_RETCODE
				;		    Set carry
				;		  ENDDO
				;	     ENDIF
				;	   ENDDO
				;
				; Outputs:
				;	Carry clear:  On Get:
				;			QUERY LIST or LIST filled in.
				;		      On Set:
				;			Extended attributes set.  All SFTs are updated.
				;	CARRY SET
				;	Carry set:    AX is error code
				;		error_file_not_found
				;			Last element of path not found
				;		error_path_not_found
				;			Bad path (not in curr dir part if present)
				;		error_access_denied
				;			Attempt to set an attribute which cannot be set
				;			(attr_directory, attr_volume_ID)
				;		error_sharing_violation
				;			Sharing mode of file did not allow the change
				;			(this request requires exclusive write/read access)
				;			(INT 24H generated)
				; DS preserved, others destroyed
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Page     1-16
IFS_FILE_XATTRIBUTES Get/Set File Extended Attributes by han

				;
				;******************************************************************************
															 ;AN000;
					procedure   IFS_FILE_XATTRIBUTES,NEAR						 ;AN000;
 01E5                        1	IFS_FILE_XATTRIBUTES    PROC    NEAR 
															 ;AN000;
				;;;;;;;;ifsr_fcn_def  EXECAPI			; define ifsr for fileattr		 ;AN000;
				;	ifsr_api_def  FILEATTR								 ;AN000;
				;											 ;AN000;
				;	MOV	CS:IFSPROC_FLAGS,SetDeviceCB	; init processing flags 		 ;AN000;
				;	SaveReg <BX>				; save input function (2,3,4)		 ;AN000;
				;											 ;AN000;
				;	invoke	PREP_IFSR			; init ifsr				 ;AN000;
				;	Context DS				; ds - dosgroup 			 ;AN000;
				;											 ;AN000;
				;	invoke	DRIVE_FROM_SFT			; set IFSDRV for possible criter	 ;AN000;
				;	MOV	CS:DEVICE_CB@_OFFSET,IFSR_DEVICE_CB@					 ;AN000;
				;	MOV	ES:[BX.IFSR_LENGTH],LENGTH_FILEATTR	; prep IFSRH			 ;AN000;
				;	MOV	ES:[BX.IFSR_FUNCTION],IFSEXECAPI					 ;AN000;
				;	MOV	ES:[BX.IFSR_APIFUNC],IFSFILEATTR					 ;AN000;
				;	MOV	AL,FUNC_GET_BY_HANDLE		; start ifsr_func with get		 ;AN000;
				;;;;;;;;RestoreReg <CX> 			; get original BX - func		 ;AN000;
				
 01E5  80 FB 04				CMP	BL,4				;					 ;AC010;
 01E8  75 03				JNE	XFA_40				;					 ;AC010;
 01EA  E9 00AC R			JMP	C_990				; just ret success if set		 ;AC010;
 01ED				XFA_40: 										 ;AN000;
				
				;;;;;;;;MOV	ES:[BX.IFSR_FUNC],AL							 ;AN000;
				;	MOV	AL,SUBFUNC_EA			; start ifsr_subfunc w/ea list		 ;AN000;
				;	CMP	CL,3				; (input get ea names)			 ;AN000;
				;	JNE	XFA_80									 ;AN000;
				;	INC	AL				; inc ifsr_subfunc to ea names		 ;AN000;
				;FA_80: 										 ;AN000;
				;	MOV	ES:[BX.IFSR_SUBFUNC],AL 						 ;AN000;
				;	CMP	CL,4				; no size offered on set so don't check  ;AN009;
				;	JE	XFA_82									 ;AN009;
				;
				;FA_82: 										 ;AN009;
				;	MOV	AX,[SAVE_DI]								 ;AN000;
				;	MOV	WORD PTR ES:[BX.IFSR_BUFFER2@],AX   ; get     list ptr into buffer2@	 ;AC002;
				;	MOV	AX,[SAVE_ES]								 ;AN000;
				;	MOV	WORD PTR ES:[BX.IFSR_BUFFER2@+2],AX ; get     list ptr into buffer2@	 ;AC002;
				;FA_85: 										 ;AN008;
				;	CMP	CL,2				    ; get ea list with qlist		 ;AN000;
				;	JNE	XFA_90									 ;AN000;
				;	MOV	AX,[SAVE_SI]								 ;AN000;
				;	CMP	AX,NULL_PTR			    ; if null, don't set buffer1         ;AN005;
				;	JE	XFA_90									 ;AN005;
				;	MOV	WORD PTR ES:[BX.IFSR_BUFFER1@],AX   ; get     list ptr into buffer2@	 ;AC002;
				;	MOV	AX,[SAVE_DS]								 ;AN000;
				;	MOV	WORD PTR ES:[BX.IFSR_BUFFER1@+2],AX ; get     list ptr into buffer2@	 ;AC002;
				;FA_90: 										 ;AN000;
				;	PUSH	[SAVE_CX]			    ; buffer size			 ;AN000;
				;	POP	ES:[BX.IFSR_COUNT]							 ;AN000;
				;	invoke	SFT_TO_SFF			; sets: [THISIFS]			 ;AN000;
				;						;	ES:BX -> IFSRH			 ;AN000;
				;						;	IFSR_OPEN_CB@			 ;AN000;
				;						;	ds - IFSSEG			 ;AN000;
				;************************************************
				;	invoke	CALL_IFS			; *** call fs with fileattr request	 ;AN000;
				;************************************************
				;	JNC	XFA_100 								 ;AN000;
				;	JMP	C_1000									 ;AN000;
				;FA_100:										 ;AN000;
				;;;;;;;;invoke	SFF_TO_SFT								 ;AN000;
				
				
					Context DS				; on get - set size to 2 and count=0	 ;AN010;
 01ED  16                    1		PUSH    SS 
 01EE  1F                    1		POP     DS 
 01EF  A1 0000 E			MOV	AX,[SAVE_CX]			; if count < 2 than no buffer2		 ;AN008;;AC0
				13;
 01F2  3D 0002				CMP	AX,2									 ;AN008;;AC0
				13;
 01F5  7D 04				JGE	XFA_120 								 ;AN008;;AC0
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Page     1-17
IFS_FILE_XATTRIBUTES Get/Set File Extended Attributes by han

				13;
 01F7  33 C0				XOR	AX,AX
 01F9  EB 0F				JMP	SHORT XFA_140
 01FB				XFA_120:										 ;AN013;
 01FB  FF 36 0000 E			PUSH	[SAVE_ES]								 ;AN010;
 01FF  07				POP	ES									 ;AN010;
 0200  8B 3E 0000 E			MOV	DI,[SAVE_DI]								 ;AN010;
 0204  33 C0				XOR	AX,AX									 ;AN010;
 0206  AB				STOSW					; count in buffer			 ;AN010;
 0207  B8 0002				MOV	AX,2									 ;AN007;AC01
				0;
 020A				XFA_140:										 ;AN013;
					SaveReg <AX>				; preserve future cx			 ;AN016;
 020A  50                    2		PUSH    AX 
					CallInstall Get_User_Stack,multDOS,24	; put size  in user cx			 ;AN007;
 020B  B8 1218               1		MOV     AX,(multDOS SHL 8) + 24 
 020E  CD 2F                 1		INT     2Fh 
					RestoreReg <AX> 			; restore future cx			 ;AN016;
 0210  58                    2		POP     AX 
 0211  89 44 04				MOV	DS:[SI.USER_CX],AX							 ;AN007;
 0214  E9 00AC R			JMP	C_990				; go ret in close to get ds-dosgroup	 ;AN000;
															 ;AN000;
															 ;AN000;
				EndProc IFS_FILE_XATTRIBUTES								 ;AN000;
 0217                        1	IFS_FILE_XATTRIBUTES    ENDP 
															 ;AN000;
															 ;AN000;
 0217				IFSSEG	ENDS										 ;AN000;
				    END 										 ;AN000;

Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Symbols-1


Macros:

		N a m e			Lines

ARGVAR . . . . . . . . . . . . .  	  23
ASMVAR . . . . . . . . . . . . .  	   3
ASMVARS  . . . . . . . . . . . .  	   3
ASSERT . . . . . . . . . . . . .  	   0
CALLINSTALL  . . . . . . . . . .  	  12
DOSASSUME  . . . . . . . . . . .  	   3
ENTER  . . . . . . . . . . . . .  	   3
ENTERCRIT  . . . . . . . . . . .  	   1
ERRNZ  . . . . . . . . . . . . .  	   4
FMT  . . . . . . . . . . . . . .  	   0
IFSR_API_DEF . . . . . . . . . .  	 192
IFSR_FCN_DEF . . . . . . . . . .  	  75
LEAVE  . . . . . . . . . . . . .  	   2
LEAVECRIT  . . . . . . . . . . .  	   1
LOCALVAR . . . . . . . . . . . .  	  23

Structures and Records:

                N a m e                 Width   # fields
                                        Shift   Width   Mask    Initial

ABS_32RW . . . . . . . . . . . .  	000A	0003
  SECTOR_RBA . . . . . . . . . .  	0000
  ABS_RW_COUNT . . . . . . . . .  	0004
  BUFFER_ADDR  . . . . . . . . .  	0006
ARENA  . . . . . . . . . . . . .  	0010	0005
  ARENA_SIGNATURE  . . . . . . .  	0000
  ARENA_OWNER  . . . . . . . . .  	0001
  ARENA_SIZE . . . . . . . . . .  	0003
  ARENA_RESERVED . . . . . . . .  	0005
  ARENA_NAME . . . . . . . . . .  	0008
ATTACH_PARMS . . . . . . . . . .  	0003	0002
  AP_COUNT . . . . . . . . . . .  	0000
  AP_STRING  . . . . . . . . . .  	0002
A_BPB  . . . . . . . . . . . . .  	001F	000F
  BPB_BYTESPERSECTOR . . . . . .  	0000
  BPB_SECTORSPERCLUSTER  . . . .  	0002
  BPB_RESERVEDSECTORS  . . . . .  	0003
  BPB_NUMBEROFFATS . . . . . . .  	0005
  BPB_ROOTENTRIES  . . . . . . .  	0006
  BPB_TOTALSECTORS . . . . . . .  	0008
  BPB_MEDIADESCRIPTOR  . . . . .  	000A
  BPB_SECTORSPERFAT  . . . . . .  	000B
  BPB_SECTORSPERTRACK  . . . . .  	000D
  BPB_HEADS  . . . . . . . . . .  	000F
  BPB_HIDDENSECTORS  . . . . . .  	0011
  BPB_BIGTOTALSECTORS  . . . . .  	0015
BPBLOCK  . . . . . . . . . . . .  	000D	0008
  BPSECSZ  . . . . . . . . . . .  	0000
  BPCLUS . . . . . . . . . . . .  	0002
  BPRES  . . . . . . . . . . . .  	0003
  BPFTCNT  . . . . . . . . . . .  	0005
  BPDRCNT  . . . . . . . . . . .  	0006
  BPSCCNT  . . . . . . . . . . .  	0008
  BPMEDIA  . . . . . . . . . . .  	000A
  BPFTSEC  . . . . . . . . . . .  	000B
BUFFER_HASH_ENTRY  . . . . . . .  	0008	0004
  EMS_PAGE_NUM . . . . . . . . .  	0000
  BUFFER_BUCKET  . . . . . . . .  	0002
  DIRTY_COUNT  . . . . . . . . .  	0006
  BUFFER_RESERVED  . . . . . . .  	0007
BUFFINFO . . . . . . . . . . . .  	0023	000F
  HASH_PTR . . . . . . . . . . .  	0000
  HASH_COUNT . . . . . . . . . .  	0004
  CACHE_PTR  . . . . . . . . . .  	0006
  CACHE_COUNT  . . . . . . . . .  	000A
  EMS_SAFE_FLAG  . . . . . . . .  	000C
  EMS_LAST_PAGE  . . . . . . . .  	000D
  EMS_FIRST_PAGE . . . . . . . .  	0011
  EMS_NPA640 . . . . . . . . . .  	0015
  EMS_MODE . . . . . . . . . . .  	0017
  EMS_HANDLE . . . . . . . . . .  	0018
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Symbols-2


  EMS_PAGEFRAME_NUMBER . . . . .  	001A
  EMS_SEG_CNT  . . . . . . . . .  	001C
  EMS_PAGE_FRAME . . . . . . . .  	001E
  EMS_RESERVED . . . . . . . . .  	0020
  EMS_MAP_BUFF . . . . . . . . .  	0022
CD . . . . . . . . . . . . . . .  	0054	0005
  CD_TYPE  . . . . . . . . . . .  	0000
  CD_END . . . . . . . . . . . .  	0002
  CD_TEXT  . . . . . . . . . . .  	0004
  CD_RESV  . . . . . . . . . . .  	0047
  CD_FSDA  . . . . . . . . . . .  	004C
CONTINFO . . . . . . . . . . . .  	0034	000F
  CI_SEARCH_FN . . . . . . . . .  	0000
  CI_SEARCH_FN_EXT . . . . . . .  	0008
  CI_SEARCH_ATTR . . . . . . . .  	000B
  CI_FSDA  . . . . . . . . . . .  	000C
  CI_FOUND_FN  . . . . . . . . .  	0014
  CI_FOUND_FN_EXT  . . . . . . .  	001C
  CI_FOUND_ATTRL . . . . . . . .  	001F
  CI_CP  . . . . . . . . . . . .  	0020
  CI_RESV1 . . . . . . . . . . .  	0022
  CI_FOUND_ATTRH . . . . . . . .  	0024
  CI_RESV2 . . . . . . . . . . .  	0025
  CI_FILE_TIME . . . . . . . . .  	002A
  CI_FILE_DATE . . . . . . . . .  	002C
  CI_FSWORD  . . . . . . . . . .  	002E
  CI_FILE_SIZE . . . . . . . . .  	0030
CURDIR_LIST  . . . . . . . . . .  	0058	000A
  CURDIR_TEXT  . . . . . . . . .  	0000
  CURDIR_FLAGS . . . . . . . . .  	0043
  CURDIR_DEVPTR  . . . . . . . .  	0045
  CURDIR_ID  . . . . . . . . . .  	0049
  CURDIR_USER_WORD . . . . . . .  	004D
  CURDIR_END . . . . . . . . . .  	004F
  CURDIR_TYPE  . . . . . . . . .  	0051
  CURDIR_IFS_HDR . . . . . . . .  	0052
  CURDIR_FSDA  . . . . . . . . .  	0056
DEV_OPER_BUFFER  . . . . . . . .  	0002	0002
  OPER_FUNC  . . . . . . . . . .  	0000
  TRUNC_FLAG . . . . . . . . . .  	0001
DFL  . . . . . . . . . . . . . .  	0012	0003
  DFL_TYPE . . . . . . . . . . .  	0000
  DFL_DEV_NAME . . . . . . . . .  	0002
  DFL_FSDA . . . . . . . . . . .  	000A
DFLL_LIST  . . . . . . . . . . .  	001E	0008
  DFLL_FLAGS . . . . . . . . . .  	0000
  DFLL_TYPE  . . . . . . . . . .  	0001
  DFLL_DEV_NAME  . . . . . . . .  	0002
  DFLL_USER_WORD . . . . . . . .  	000A
  DFLL_ALIAS_INDEX . . . . . . .  	000C
  DFLL_IFS_HDR . . . . . . . . .  	000E
  DFLL_FSDA  . . . . . . . . . .  	0012
  DFLL_DEVPTR  . . . . . . . . .  	001A
DIR_ENTRY  . . . . . . . . . . .  	0020	000B
  DIR_NAME . . . . . . . . . . .  	0000
  DIR_ATTR . . . . . . . . . . .  	000B
  DIR_CODEPG . . . . . . . . . .  	000C
  DIR_EXTCLUSTER . . . . . . . .  	000E
  DIR_ATTR2  . . . . . . . . . .  	0010
  DIR_PAD  . . . . . . . . . . .  	0011
  DIR_TIME . . . . . . . . . . .  	0016
  DIR_DATE . . . . . . . . . . .  	0018
  DIR_FIRST  . . . . . . . . . .  	001A
  DIR_SIZE_L . . . . . . . . . .  	001C
  DIR_SIZE_H . . . . . . . . . .  	001E
DOS_VALUE_BUFFER . . . . . . . .  	0010	0008
  VAL_BUF_SIZE . . . . . . . . .  	0000
  VAL_BUF_FILES  . . . . . . . .  	0002
  VAL_BUF_FCBS . . . . . . . . .  	0004
  VAL_BUF_BUFS . . . . . . . . .  	0008
  VAL_BUF_LDRV . . . . . . . . .  	000C
  VAL_BUF_SSZ  . . . . . . . . .  	000E
DPB  . . . . . . . . . . . . . .  	0021	0012
  DPB_DRIVE  . . . . . . . . . .  	0000
  DPB_UNIT . . . . . . . . . . .  	0001
  DPB_SECTOR_SIZE  . . . . . . .  	0002
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Symbols-3


  DPB_CLUSTER_MASK . . . . . . .  	0004
  DPB_CLUSTER_SHIFT  . . . . . .  	0005
  DPB_FIRST_FAT  . . . . . . . .  	0006
  DPB_FAT_COUNT  . . . . . . . .  	0008
  DPB_ROOT_ENTRIES . . . . . . .  	0009
  DPB_FIRST_SECTOR . . . . . . .  	000B
  DPB_MAX_CLUSTER  . . . . . . .  	000D
  DPB_FAT_SIZE . . . . . . . . .  	000F
  DPB_DIR_SECTOR . . . . . . . .  	0011
  DPB_DRIVER_ADDR  . . . . . . .  	0013
  DPB_MEDIA  . . . . . . . . . .  	0017
  DPB_FIRST_ACCESS . . . . . . .  	0018
  DPB_NEXT_DPB . . . . . . . . .  	0019
  DPB_NEXT_FREE  . . . . . . . .  	001D
  DPB_FREE_CNT . . . . . . . . .  	001F
EXEC0  . . . . . . . . . . . . .  	000E	0004
  EXEC0_ENVIRON  . . . . . . . .  	0000
  EXEC0_COM_LINE . . . . . . . .  	0002
  EXEC0_5C_FCB . . . . . . . . .  	0006
  EXEC0_6C_FCB . . . . . . . . .  	000A
EXEC1  . . . . . . . . . . . . .  	0016	0008
  EXEC1_ENVIRON  . . . . . . . .  	0000
  EXEC1_COM_LINE . . . . . . . .  	0002
  EXEC1_5C_FCB . . . . . . . . .  	0006
  EXEC1_6C_FCB . . . . . . . . .  	000A
  EXEC1_SP . . . . . . . . . . .  	000E
  EXEC1_SS . . . . . . . . . . .  	0010
  EXEC1_IP . . . . . . . . . . .  	0012
  EXEC1_CS . . . . . . . . . . .  	0014
EXEC3  . . . . . . . . . . . . .  	0004	0002
  EXEC3_LOAD_ADDR  . . . . . . .  	0000
  EXEC3_RELOC_FAC  . . . . . . .  	0002
EXE_FILE . . . . . . . . . . . .  	0020	000F
  EXE_SIGNATURE  . . . . . . . .  	0000
  EXE_LEN_MOD_512  . . . . . . .  	0002
  EXE_PAGES  . . . . . . . . . .  	0004
  EXE_RLE_COUNT  . . . . . . . .  	0006
  EXE_PAR_DIR  . . . . . . . . .  	0008
  EXE_MIN_BSS  . . . . . . . . .  	000A
  EXE_MAX_BSS  . . . . . . . . .  	000C
  EXE_SS . . . . . . . . . . . .  	000E
  EXE_SP . . . . . . . . . . . .  	0010
  EXE_CHKSUM . . . . . . . . . .  	0012
  EXE_IP . . . . . . . . . . . .  	0014
  EXE_CS . . . . . . . . . . . .  	0016
  EXE_RLE_TABLE  . . . . . . . .  	0018
  EXE_IOV  . . . . . . . . . . .  	001A
  EXE_SYM_TAB  . . . . . . . . .  	001C
EXT_OPEN_PARM  . . . . . . . . .  	0006	0002
  EXT_SET_LIST . . . . . . . . .  	0000
  EXT_NUM_OF_PARM  . . . . . . .  	0004
FIND_BUF . . . . . . . . . . . .  	002B	000C
  FIND_BUF_DRIVE . . . . . . . .  	0000
  FIND_BUF_NAME  . . . . . . . .  	0001
  FIND_BUF_SATTR . . . . . . . .  	000C
  FIND_BUF_LASTENT . . . . . . .  	000D
  FIND_BUF_DIRSTART  . . . . . .  	000F
  FIND_BUF_NETID . . . . . . . .  	0011
  FIND_BUF_ATTR  . . . . . . . .  	0015
  FIND_BUF_TIME  . . . . . . . .  	0016
  FIND_BUF_DATE  . . . . . . . .  	0018
  FIND_BUF_SIZE_L  . . . . . . .  	001A
  FIND_BUF_SIZE_H  . . . . . . .  	001C
  FIND_BUF_PNAME . . . . . . . .  	001E
IFSHEADER  . . . . . . . . . . .  	0016	0006
  IFS_NEXT . . . . . . . . . . .  	0000
  IFS_NAME . . . . . . . . . . .  	0004
  IFS_ATTRIBUTE  . . . . . . . .  	000C
  IFS_VERSION  . . . . . . . . .  	000E
  IFS_DOSCALL@ . . . . . . . . .  	0010
  IFS_CALL@  . . . . . . . . . .  	0014
IFSRH  . . . . . . . . . . . . .  	0048	0006
  IFSR_LENGTH  . . . . . . . . .  	0000
  IFSR_FUNCTION  . . . . . . . .  	0002
  IFSR_RETCODE . . . . . . . . .  	0003
  IFSR_RETCLASS  . . . . . . . .  	0005
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Symbols-4


  IFSR_RESV1 . . . . . . . . . .  	0006
  IFSR_FCN_PARMS . . . . . . . .  	0016
INTERNAT_BLOCK . . . . . . . . .  	0018	0015
  DATE_TIM_FORMAT  . . . . . . .  	0000
  CURRENCY_SYM . . . . . . . . .  	0002
  THOUS_SEP  . . . . . . . . . .  	0007
  DECIMAL_SEP  . . . . . . . . .  	0009
  DATE_SEP . . . . . . . . . . .  	000B
  TIME_SEP . . . . . . . . . . .  	000D
  BIT_FIELD  . . . . . . . . . .  	000F
  CURRENCY_CENTS . . . . . . . .  	0010
  TIME_24  . . . . . . . . . . .  	0011
  MAP_CALL . . . . . . . . . . .  	0012
  DATA_SEP . . . . . . . . . . .  	0016
IOCTL_REQ  . . . . . . . . . . .  	0017	0006
  MAJORFUNCTION  . . . . . . . .  	000D
  MINORFUNCTION  . . . . . . . .  	000E
  REG_SI . . . . . . . . . . . .  	000F
  REG_DI . . . . . . . . . . . .  	0011
  GENERICIOCTL_PACKET  . . . . .  	0013
MEDIA_ID_INFO  . . . . . . . . .  	0019	0004
  MEDIA_LEVEL  . . . . . . . . .  	0000
  MEDIA_SERIAL . . . . . . . . .  	0002
  MEDIA_LABEL  . . . . . . . . .  	0006
  MEDIA_SYSTEM . . . . . . . . .  	0011
PACKET . . . . . . . . . . . . .  	0004	0002
  PACKLEN  . . . . . . . . . . .  	0000
  PACKCPID . . . . . . . . . . .  	0002
PROCESS_DATA_BLOCK . . . . . . .  	005C	0011
  PDB_EXIT_CALL  . . . . . . . .  	0000
  PDB_BLOCK_LEN  . . . . . . . .  	0002
  PDB_CPM_CALL . . . . . . . . .  	0005
  PDB_EXIT . . . . . . . . . . .  	000A
  PDB_CTRL_C . . . . . . . . . .  	000E
  PDB_FATAL_ABORT  . . . . . . .  	0012
  PDB_PARENT_PID . . . . . . . .  	0016
  PDB_JFN_TABLE  . . . . . . . .  	0018
  PDB_ENVIRON  . . . . . . . . .  	002C
  PDB_USER_STACK . . . . . . . .  	002E
  PDB_JFN_LENGTH . . . . . . . .  	0032
  PDB_JFN_POINTER  . . . . . . .  	0034
  PDB_NEXT_PDB . . . . . . . . .  	0038
  PDB_PAD1 . . . . . . . . . . .  	003C
  PDB_CALL_SYSTEM  . . . . . . .  	0050
  PDB_PAD2 . . . . . . . . . . .  	0055
SF . . . . . . . . . . . . . . .  	0008	0003
  SFLINK . . . . . . . . . . . .  	0000
  SFCOUNT  . . . . . . . . . . .  	0004
  SFTABLE  . . . . . . . . . . .  	0006
SFF  . . . . . . . . . . . . . .  	003D	0011
  SFF_TYPE . . . . . . . . . . .  	0000
  SFF_FLAGS  . . . . . . . . . .  	0002
  SFF_MODE . . . . . . . . . . .  	0004
  SFF_RESV1  . . . . . . . . . .  	0006
  SFF_ATTR . . . . . . . . . . .  	0008
  SFF_UID  . . . . . . . . . . .  	000A
  SFF_PID  . . . . . . . . . . .  	000C
  SFF_SIZE . . . . . . . . . . .  	000E
  SFF_POSITION . . . . . . . . .  	0012
  SFF_TIME . . . . . . . . . . .  	0016
  SFF_DATE . . . . . . . . . . .  	0018
  SFF_NAME . . . . . . . . . . .  	001A
  SFF_EXT  . . . . . . . . . . .  	0022
  SFF_RESV2  . . . . . . . . . .  	0025
  SFF_SF_ID  . . . . . . . . . .  	0027
  SFF_RESV . . . . . . . . . . .  	0029
  SFF_FSDA . . . . . . . . . . .  	0035
SF_ENTRY . . . . . . . . . . . .  	003B	0014
  SF_REF_COUNT . . . . . . . . .  	0000
  SF_MODE  . . . . . . . . . . .  	0002
  SF_ATTR  . . . . . . . . . . .  	0004
  SF_FLAGS . . . . . . . . . . .  	0005
  SF_DEVPTR  . . . . . . . . . .  	0007
  SF_FIRCLUS . . . . . . . . . .  	000B
  SF_TIME  . . . . . . . . . . .  	000D
  SF_DATE  . . . . . . . . . . .  	000F
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Symbols-5


  SF_SIZE  . . . . . . . . . . .  	0011
  SF_POSITION  . . . . . . . . .  	0015
  SF_CLUSPOS . . . . . . . . . .  	0019
  SF_DIRSEC  . . . . . . . . . .  	001B
  SF_DIRPOS  . . . . . . . . . .  	001F
  SF_NAME  . . . . . . . . . . .  	0020
  SF_CHAIN . . . . . . . . . . .  	002B
  SF_UID . . . . . . . . . . . .  	002F
  SF_PID . . . . . . . . . . . .  	0031
  SF_MFT . . . . . . . . . . . .  	0033
  SF_LSTCLUS . . . . . . . . . .  	0035
  SF_IFS_HDR . . . . . . . . . .  	0037
SRHEAD . . . . . . . . . . . . .  	000D	0005
  REQLEN . . . . . . . . . . . .  	0000
  REQUNIT  . . . . . . . . . . .  	0001
  REQFUNC  . . . . . . . . . . .  	0002
  REQSTAT  . . . . . . . . . . .  	0003
SYMBOL_ENTRY . . . . . . . . . .  	0106	0004
  SYM_VALUE  . . . . . . . . . .  	0000
  SYM_TYPE . . . . . . . . . . .  	0004
  SYM_LEN  . . . . . . . . . . .  	0006
  SYM_NAME . . . . . . . . . . .  	0007
SYSDEV . . . . . . . . . . . . .  	0012	0005
  SDEVNEXT . . . . . . . . . . .  	0000
  SDEVATT  . . . . . . . . . . .  	0004
  SDEVSTRAT  . . . . . . . . . .  	0006
  SDEVINT  . . . . . . . . . . .  	0008
  SDEVNAME . . . . . . . . . . .  	000A
SYSINITVARS  . . . . . . . . . .  	0047	0018
  SYSI_DPB . . . . . . . . . . .  	0000
  SYSI_SFT . . . . . . . . . . .  	0004
  SYSI_CLOCK . . . . . . . . . .  	0008
  SYSI_CON . . . . . . . . . . .  	000C
  SYSI_MAXSEC  . . . . . . . . .  	0010
  SYSI_BUF . . . . . . . . . . .  	0012
  SYSI_CDS . . . . . . . . . . .  	0016
  SYSI_FCB . . . . . . . . . . .  	001A
  SYSI_KEEP  . . . . . . . . . .  	001E
  SYSI_NUMIO . . . . . . . . . .  	0020
  SYSI_NCDS  . . . . . . . . . .  	0021
  SYSI_DEV . . . . . . . . . . .  	0022
  SYSI_ATTR  . . . . . . . . . .  	0026
  SYSI_STRAT . . . . . . . . . .  	0028
  SYSI_INTER . . . . . . . . . .  	002A
  SYSI_NAME  . . . . . . . . . .  	002C
  SYSI_SPLICE  . . . . . . . . .  	0034
  SYSI_IBMDOS_SIZE . . . . . . .  	0035
  SYSI_IFS_DOSCALL@  . . . . . .  	0037
  SYSI_IFS . . . . . . . . . . .  	003B
  SYSI_BUFFERS . . . . . . . . .  	003F
  SYSI_BOOT_DRIVE  . . . . . . .  	0043
  SYSI_DWMOVE  . . . . . . . . .  	0044
  SYSI_EXT_MEM . . . . . . . . .  	0045
SYSINITVARS_EXT  . . . . . . . .  	0008	0002
  SYSI_INITVARS  . . . . . . . .  	0000
  SYSI_COUNTRY_TAB . . . . . . .  	0004
SYS_FCB  . . . . . . . . . . . .  	0025	000C
  FCB_DRIVE  . . . . . . . . . .  	0000
  FCB_NAME . . . . . . . . . . .  	0001
  FCB_EXT  . . . . . . . . . . .  	0009
  FCB_EXTENT . . . . . . . . . .  	000C
  FCB_RECSIZ . . . . . . . . . .  	000E
  FCB_FILSIZ . . . . . . . . . .  	0010
  FCB_DRVBP  . . . . . . . . . .  	0012
  FCB_FDATE  . . . . . . . . . .  	0014
  FCB_FTIME  . . . . . . . . . .  	0016
  FCB_RESERVED . . . . . . . . .  	0018
  FCB_NR . . . . . . . . . . . .  	0020
  FCB_RR . . . . . . . . . . . .  	0021
USER_ENVIRON . . . . . . . . . .  	0018	000C
  USER_AX  . . . . . . . . . . .  	0000
  USER_BX  . . . . . . . . . . .  	0002
  USER_CX  . . . . . . . . . . .  	0004
  USER_DX  . . . . . . . . . . .  	0006
  USER_SI  . . . . . . . . . . .  	0008
  USER_DI  . . . . . . . . . . .  	000A
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Symbols-6


  USER_BP  . . . . . . . . . . .  	000C
  USER_DS  . . . . . . . . . . .  	000E
  USER_ES  . . . . . . . . . . .  	0010
  USER_IP  . . . . . . . . . . .  	0012
  USER_CS  . . . . . . . . . . .  	0014
  USER_F . . . . . . . . . . . .  	0016

Segments and Groups:

                N a m e         	Length	 Align	Combine Class

DOSGROUP . . . . . . . . . . . .  	GROUP
  START  . . . . . . . . . . . .  	0000	BYTE	PUBLIC	'START'
  CONSTANTS  . . . . . . . . . .  	0000	WORD	PUBLIC	'CONST'
  DATA . . . . . . . . . . . . .  	0000	WORD	PUBLIC	'DATA'
  TABLE  . . . . . . . . . . . .  	0000	BYTE	PUBLIC	'TABLE'
  CODE . . . . . . . . . . . . .  	0000	BYTE	PUBLIC	'CODE'
  LAST . . . . . . . . . . . . .  	0000	PARA	PUBLIC	'LAST'
IFSSEG . . . . . . . . . . . . .  	0217	BYTE	PUBLIC	'IFSSEG'

Symbols:            

                N a m e         	Type	 Value	 Attr

ABORT  . . . . . . . . . . . . .  	NUMBER	0000	
ACCESS_MASK  . . . . . . . . . .  	NUMBER	000F	
ACTION_CREATED_OPENED  . . . . .  	NUMBER	0002	
ACTION_OPENED  . . . . . . . . .  	NUMBER	0001	
ACTION_REPLACED_OPENED . . . . .  	NUMBER	0003	
ACTIVE_PROCESS_INFO  . . . . . .  	NUMBER	0001	
ADDR_INT_ABORT . . . . . . . . .  	NUMBER	0080	
ADDR_INT_COMMAND . . . . . . . .  	NUMBER	0084	
ADDR_INT_CTRL_C  . . . . . . . .  	NUMBER	008C	
ADDR_INT_DISK_READ . . . . . . .  	NUMBER	0094	
ADDR_INT_DISK_WRITE  . . . . . .  	NUMBER	0098	
ADDR_INT_FASTCON . . . . . . . .  	NUMBER	00A4	
ADDR_INT_FATAL_ABORT . . . . . .  	NUMBER	0090	
ADDR_INT_IBM . . . . . . . . . .  	NUMBER	00A8	
ADDR_INT_KEEP_PROCESS  . . . . .  	NUMBER	009C	
ADDR_INT_SPOOLER . . . . . . . .  	NUMBER	00A0	
ADDR_INT_TERMINATE . . . . . . .  	NUMBER	0088	
ALLOC  . . . . . . . . . . . . .  	NUMBER	0048	
ALLOCOPER  . . . . . . . . . . .  	NUMBER	0058	
ALLOWED_FAIL . . . . . . . . . .  	NUMBER	0008	
ALLOWED_IGNORE . . . . . . . . .  	NUMBER	0020	
ALLOWED_RETRY  . . . . . . . . .  	NUMBER	0010	
ALTVECT  . . . . . . . . . . . .  	ALIAS	 FALSE		
ALT_EXPECTED_VERSION . . . . . .  	NUMBER	1A05	
ALT_MAJOR_VERSION  . . . . . . .  	NUMBER	0005	
ALT_MINOR_VERSION  . . . . . . .  	NUMBER	001A	
ARENA_OWNER_SYSTEM . . . . . . .  	NUMBER	0000	
ARENA_SIGNATURE_END  . . . . . .  	NUMBER	005A	
ARENA_SIGNATURE_NORMAL . . . . .  	NUMBER	004D	
ASSIGNOPER . . . . . . . . . . .  	NUMBER	005F	
ATTR_ALL . . . . . . . . . . . .  	NUMBER	0016	
ATTR_ARCHIVE . . . . . . . . . .  	NUMBER	0020	
ATTR_CHANGEABLE  . . . . . . . .  	NUMBER	0027	
ATTR_DEVICE  . . . . . . . . . .  	NUMBER	0040	
ATTR_DIRECTORY . . . . . . . . .  	NUMBER	0010	
ATTR_HIDDEN  . . . . . . . . . .  	NUMBER	0002	
ATTR_IGNORE  . . . . . . . . . .  	NUMBER	0061	
ATTR_READ_ONLY . . . . . . . . .  	NUMBER	0001	
ATTR_SYSTEM  . . . . . . . . . .  	NUMBER	0004	
ATTR_VOLUME_ID . . . . . . . . .  	NUMBER	0008	
AUTO_COMMIT_WRITE  . . . . . . .  	NUMBER	4000	

BLOCK_GENERIC  . . . . . . . . .  	NUMBER	000D	
BREAK_INFORMATION  . . . . . . .  	NUMBER	0003	
BUFFERFLAG . . . . . . . . . . .  	NUMBER	FFFF	
BUFINSIZ . . . . . . . . . . . .  	NUMBER	0014	
BUF_DIRTY  . . . . . . . . . . .  	NUMBER	0040	
BUF_DPB  . . . . . . . . . . . .  		000D	
BUF_FILL . . . . . . . . . . . .  		0011	
BUF_FLAGS  . . . . . . . . . . .  		0005	
BUF_FREE . . . . . . . . . . . .  	NUMBER	00FF	
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Symbols-7


BUF_ID . . . . . . . . . . . . .  		0004	
BUF_ISDATA . . . . . . . . . . .  	NUMBER	0008	
BUF_ISDIR  . . . . . . . . . . .  	NUMBER	0004	
BUF_ISFAT  . . . . . . . . . . .  	NUMBER	0002	
BUF_ISNET  . . . . . . . . . . .  	NUMBER	0080	
BUF_NETID  . . . . . . . . . . .  	ALIAS	 BUFINSIZ		
BUF_NEXT . . . . . . . . . . . .  		0000	
BUF_OFFSET . . . . . . . . . . .  	DWORD	0006	
BUF_PREV . . . . . . . . . . . .  		0002	
BUF_RESERVED . . . . . . . . . .  		0013	
BUF_SECTOR . . . . . . . . . . .  		0006	
BUF_SNBUF  . . . . . . . . . . .  	NUMBER	0010	
BUF_TYPE_0 . . . . . . . . . . .  	NUMBER	00F1	
BUF_VISIT  . . . . . . . . . . .  	NUMBER	0020	
BUF_WRTCNT . . . . . . . . . . .  		000A	
BUF_WRTCNTINC  . . . . . . . . .  		000B	

CALL_IFS . . . . . . . . . . . .  	L NEAR	0000	IFSSEG	External
CALL_INTERRUPT_ROUTINE . . . . .  	NUMBER	0001	
CANCEL_ATTACH  . . . . . . . . .  	NUMBER	0004	
CARGS  . . . . . . . . . . . . .  	NUMBER	0000	
CATEGORY_FS  . . . . . . . . . .  	NUMBER	0000	
CATEGORY_PRINTER . . . . . . . .  	NUMBER	0005	
CATEGORY_REDIR . . . . . . . . .  	NUMBER	0001	
CBTYPE_CD  . . . . . . . . . . .  	NUMBER	0001	
CBTYPE_DF  . . . . . . . . . . .  	NUMBER	0002	
CBTYPE_DUMMYCD . . . . . . . . .  	NUMBER	0003	
CBTYPE_SFF . . . . . . . . . . .  	NUMBER	0000	
CHARDEV  . . . . . . . . . . . .  	NUMBER	8000	
CHAR_GENERIC . . . . . . . . . .  	NUMBER	000C	
CHAR_OPER  . . . . . . . . . . .  	NUMBER	0037	
CHDIR  . . . . . . . . . . . . .  	NUMBER	003B	
CHECK_REMOVABLE  . . . . . . . .  	NUMBER	4408	
CHMOD  . . . . . . . . . . . . .  	NUMBER	0043	
CLOSE  . . . . . . . . . . . . .  	NUMBER	003E	
CLOSE_SPOOL_FILES  . . . . . . .  	NUMBER	0009	
COMMIT . . . . . . . . . . . . .  	NUMBER	0068	
COMMON_ERR_2 . . . . . . . . . .  	NUMBER	0002	
COMMON_ERR_3 . . . . . . . . . .  	NUMBER	0003	
CONFIG_SYS_VALUES  . . . . . . .  	NUMBER	0005	
COUNTRY_INFO . . . . . . . . . .  	NUMBER	0007	
CPSW_INFORMATION . . . . . . . .  	NUMBER	0002	
CREAT  . . . . . . . . . . . . .  	NUMBER	003C	
CREATENEWFILE  . . . . . . . . .  	NUMBER	005B	
CREATETEMPFILE . . . . . . . . .  	NUMBER	005A	
CREATE_PROCESS_DATA_BLOCK  . . .  	NUMBER	0026	
CRITASSIGN . . . . . . . . . . .  	NUMBER	0008	
CRITDEVICE . . . . . . . . . . .  	NUMBER	0002	
CRITDISK . . . . . . . . . . . .  	NUMBER	0001	
CRITIFS  . . . . . . . . . . . .  	NUMBER	0006	
CRITMEM  . . . . . . . . . . . .  	NUMBER	0001	
CRITNET  . . . . . . . . . . . .  	NUMBER	0005	
CRITSFT  . . . . . . . . . . . .  	NUMBER	0001	
CRITSHARE  . . . . . . . . . . .  	NUMBER	0001	
CRIT_MSG_TYPE_1  . . . . . . . .  	NUMBER	0001	
CTLFUNC_DEVCLOSE . . . . . . . .  	NUMBER	0005	
CTLFUNC_DEVECHOCHECK . . . . . .  	NUMBER	0003	
CTLFUNC_DEVOPER  . . . . . . . .  	NUMBER	0006	
CTLFUNC_GET_UNC_ITEM . . . . . .  	NUMBER	0004	
CTLFUNC_PRINTER_GET_FLAGS  . . .  	NUMBER	0002	
CTLFUNC_PRINTER_GET_STRING . . .  	NUMBER	0001	
CTLFUNC_PRINTER_SET_FLAGS  . . .  	NUMBER	0022	
CTLFUNC_PRINTER_SET_STRING . . .  	NUMBER	0021	
CTLFUNC_PRINT_OFF  . . . . . . .  	NUMBER	0007	
CTLFUNC_PRINT_ON . . . . . . . .  	NUMBER	0027	
CTLFUNC_QUERY_PREPLIST . . . . .  	NUMBER	006B	
CTLFUNC_QUERY_SELECTED . . . . .  	NUMBER	006A	
CTLFUNC_SELECT . . . . . . . . .  	NUMBER	004A	
CTRL_BREAK_FLAG  . . . . . . . .  	NUMBER	0200	
CURDIRLEN  . . . . . . . . . . .  	NUMBER	0058	
CURDIR_INUSE . . . . . . . . . .  	NUMBER	4000	
CURDIR_ISIFS . . . . . . . . . .  	NUMBER	8000	
CURDIR_ISNET . . . . . . . . . .  	NUMBER	8000	
CURDIR_LOCAL . . . . . . . . . .  	NUMBER	1000	
CURDIR_NETID . . . . . . . . . .  	DWORD	0049	
CURDIR_SPLICE  . . . . . . . . .  	NUMBER	2000	
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Symbols-8


CurrentPDB . . . . . . . . . . .  	V WORD	0000	DATA	External
CURRENT_DIR  . . . . . . . . . .  	NUMBER	0047	
C_05 . . . . . . . . . . . . . .  	L NEAR	0015	IFSSEG
C_10 . . . . . . . . . . . . . .  	L NEAR	002D	IFSSEG
C_1000 . . . . . . . . . . . . .  	L NEAR	00AD	IFSSEG
C_20 . . . . . . . . . . . . . .  	L NEAR	003E	IFSSEG
C_40 . . . . . . . . . . . . . .  	L NEAR	006A	IFSSEG
C_60 . . . . . . . . . . . . . .  	L NEAR	008C	IFSSEG
C_80 . . . . . . . . . . . . . .  	L NEAR	0098	IFSSEG
C_980  . . . . . . . . . . . . .  	L NEAR	00A8	IFSSEG
C_990  . . . . . . . . . . . . .  	L NEAR	00AC	IFSSEG
C_BS . . . . . . . . . . . . . .  	NUMBER	0008	
C_CR . . . . . . . . . . . . . .  	NUMBER	000D	
C_DEL  . . . . . . . . . . . . .  	NUMBER	007F	
C_ETB  . . . . . . . . . . . . .  	NUMBER	0017	
C_ETX  . . . . . . . . . . . . .  	NUMBER	0003	
C_HT . . . . . . . . . . . . . .  	NUMBER	0009	
C_LF . . . . . . . . . . . . . .  	NUMBER	000A	
C_NAK  . . . . . . . . . . . . .  	NUMBER	0015	

DBCS . . . . . . . . . . . . . .  	NUMBER	0000	
DBCS_VOLID . . . . . . . . . . .  	NUMBER	0080	
DBCS_VOLID2  . . . . . . . . . .  	NUMBER	0100	
DBPBHL . . . . . . . . . . . . .  	NUMBER	0016	
DDKEY  . . . . . . . . . . . . .  	NUMBER	0400	
DEALLOC  . . . . . . . . . . . .  	NUMBER	0049	
DEBUG  . . . . . . . . . . . . .  	NUMBER	0000	
DEFINE_MACRO . . . . . . . . . .  	NUMBER	0003	
DEFKEEPVAL . . . . . . . . . . .  	NUMBER	0000	
DEFNUMFCB  . . . . . . . . . . .  	NUMBER	0004	
DEV320 . . . . . . . . . . . . .  	NUMBER	0040	
DEVBPB . . . . . . . . . . . . .  	NUMBER	0002	
DEVCLS . . . . . . . . . . . . .  	NUMBER	000E	
DEVGETOWN  . . . . . . . . . . .  	NUMBER	0017	
DEVICE_CB@_OFFSET  . . . . . . .  	V WORD	0000	IFSSEG	External
DEVICE_MACRO . . . . . . . . . .  	NUMBER	0003	
DEVICE_NOT_ATTACHED  . . . . . .  	NUMBER	000F	
DEVID_BLOCK_DEV  . . . . . . . .  	NUMBER	001F	
DEVID_DEVICE . . . . . . . . . .  	NUMBER	0080	
DEVID_DEVICE_CLOCK . . . . . . .  	NUMBER	0008	
DEVID_DEVICE_CON_IN  . . . . . .  	NUMBER	0001	
DEVID_DEVICE_CON_OUT . . . . . .  	NUMBER	0002	
DEVID_DEVICE_EOF . . . . . . . .  	NUMBER	0040	
DEVID_DEVICE_NULL  . . . . . . .  	NUMBER	0004	
DEVID_DEVICE_RAW . . . . . . . .  	NUMBER	0020	
DEVID_DEVICE_SPECIAL . . . . . .  	NUMBER	0010	
DEVID_EOF  . . . . . . . . . . .  	NUMBER	0040	
DEVID_FILE_CLEAN . . . . . . . .  	NUMBER	0040	
DEVID_FILE_MASK_DRIVE  . . . . .  	NUMBER	003F	
DEVID_ISCIN  . . . . . . . . . .  	NUMBER	0001	
DEVID_ISCLK  . . . . . . . . . .  	NUMBER	0008	
DEVID_ISCOT  . . . . . . . . . .  	NUMBER	0002	
DEVID_ISDEV  . . . . . . . . . .  	NUMBER	0080	
DEVID_ISNUL  . . . . . . . . . .  	NUMBER	0004	
DEVID_RAW  . . . . . . . . . . .  	NUMBER	0020	
DEVID_SPECIAL  . . . . . . . . .  	NUMBER	0010	
DEVIFL . . . . . . . . . . . . .  	NUMBER	0007	
DEVINIT  . . . . . . . . . . . .  	NUMBER	0000	
DEVIOCTL . . . . . . . . . . . .  	NUMBER	4000	
DEVIST . . . . . . . . . . . . .  	NUMBER	0006	
DEVMDCH  . . . . . . . . . . . .  	NUMBER	0001	
DEVOFL . . . . . . . . . . . . .  	NUMBER	000B	
DEVOPCL  . . . . . . . . . . . .  	NUMBER	0800	
DEVOPN . . . . . . . . . . . . .  	NUMBER	000D	
DEVOST . . . . . . . . . . . . .  	NUMBER	000A	
DEVOUT . . . . . . . . . . . . .  	NUMBER	0010	
DEVOUTL  . . . . . . . . . . . .  	ALIAS	 DEVWRT		
DEVRD  . . . . . . . . . . . . .  	NUMBER	0004	
DEVRDIOCTL . . . . . . . . . . .  	NUMBER	0003	
DEVRDND  . . . . . . . . . . . .  	NUMBER	0005	
DEVRMD . . . . . . . . . . . . .  	NUMBER	000F	
DEVSETOWN  . . . . . . . . . . .  	NUMBER	0018	
DEVTYP . . . . . . . . . . . . .  	NUMBER	8000	
DEVWRIOCTL . . . . . . . . . . .  	NUMBER	000C	
DEVWRT . . . . . . . . . . . . .  	NUMBER	0008	
DEVWRTV  . . . . . . . . . . . .  	NUMBER	0009	
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Symbols-9


DFLSHL . . . . . . . . . . . . .  	NUMBER	000F	
DFL_DEV_REAL . . . . . . . . . .  	NUMBER	0010	
DFL_INPROG . . . . . . . . . . .  	NUMBER	0080	
DFL_INUSE  . . . . . . . . . . .  	NUMBER	0040	
DFL_PAUSED . . . . . . . . . . .  	NUMBER	0020	
DINITHL  . . . . . . . . . . . .  	NUMBER	001A	
DIRSTRLEN  . . . . . . . . . . .  	NUMBER	0043	
DIR_SEARCH_FIRST . . . . . . . .  	NUMBER	0011	
DIR_SEARCH_NEXT  . . . . . . . .  	NUMBER	0012	
DISABLE_EOF_I24  . . . . . . . .  	NUMBER	0040	
DISK_RESET . . . . . . . . . . .  	NUMBER	000D	
DMAADD . . . . . . . . . . . . .  	V DWORD	0000	DATA	External
DMEDHL . . . . . . . . . . . . .  	NUMBER	000F	
DOPCLHL  . . . . . . . . . . . .  	NUMBER	000D	
DOS2NET_DATE . . . . . . . . . .  	NUMBER	0022	
DOS_STRCMP . . . . . . . . . . .  	NUMBER	0024	
DOS_STRCPY . . . . . . . . . . .  	NUMBER	0025	
DPBSIZ . . . . . . . . . . . . .  	NUMBER	0021	
DRDNDHL  . . . . . . . . . . . .  	NUMBER	000E	
DRDWRHL  . . . . . . . . . . . .  	NUMBER	0016	
DRIVE_FROM_SFT . . . . . . . . .  	L NEAR	0000	IFSSEG	External
DRIVE_MACRO  . . . . . . . . . .  	NUMBER	0004	
DSKSIZ . . . . . . . . . . . . .  	NUMBER	000D	
DSTATHL  . . . . . . . . . . . .  	NUMBER	000D	
DUP_PDB  . . . . . . . . . . . .  	NUMBER	0055	

ECS_CALL . . . . . . . . . . . .  	NUMBER	0063	
EMS_MAP_BUFF_SIZE  . . . . . . .  	NUMBER	000C	
ENTRYPOINT . . . . . . . . . . .  	NUMBER	00C0	
EOP_ABORT  . . . . . . . . . . .  	NUMBER	0001	
EOP_NORMAL . . . . . . . . . . .  	NUMBER	0000	
ERRACT_ABORT . . . . . . . . . .  	NUMBER	0004	
ERRACT_DLYRET  . . . . . . . . .  	NUMBER	0002	
ERRACT_IGNORE  . . . . . . . . .  	NUMBER	0006	
ERRACT_INTRET  . . . . . . . . .  	NUMBER	0007	
ERRACT_PANIC . . . . . . . . . .  	NUMBER	0005	
ERRACT_RETRY . . . . . . . . . .  	NUMBER	0001	
ERRACT_USER  . . . . . . . . . .  	NUMBER	0003	
ERRCLASS_ALREADY . . . . . . . .  	NUMBER	000C	
ERRCLASS_APPERR  . . . . . . . .  	NUMBER	0007	
ERRCLASS_AUTH  . . . . . . . . .  	NUMBER	0003	
ERRCLASS_BADFMT  . . . . . . . .  	NUMBER	0009	
ERRCLASS_HRDFAIL . . . . . . . .  	NUMBER	0005	
ERRCLASS_INTRN . . . . . . . . .  	NUMBER	0004	
ERRCLASS_LOCKED  . . . . . . . .  	NUMBER	000A	
ERRCLASS_MEDIA . . . . . . . . .  	NUMBER	000B	
ERRCLASS_NOTFND  . . . . . . . .  	NUMBER	0008	
ERRCLASS_OUTRES  . . . . . . . .  	NUMBER	0001	
ERRCLASS_SYSFAIL . . . . . . . .  	NUMBER	0006	
ERRCLASS_TEMPSIT . . . . . . . .  	NUMBER	0002	
ERRCLASS_UNK . . . . . . . . . .  	NUMBER	000D	
ERRLOC_DISK  . . . . . . . . . .  	NUMBER	0002	
ERRLOC_MEM . . . . . . . . . . .  	NUMBER	0005	
ERRLOC_NET . . . . . . . . . . .  	NUMBER	0003	
ERRLOC_SERDEV  . . . . . . . . .  	NUMBER	0004	
ERRLOC_UNK . . . . . . . . . . .  	NUMBER	0001	
ERROR_ACCESS_DENIED  . . . . . .  	NUMBER	0005	
ERROR_ALREADY_ASSIGNED . . . . .  	NUMBER	0055	
ERROR_ARENA_TRASHED  . . . . . .  	NUMBER	0007	
ERROR_BAD_COMMAND  . . . . . . .  	NUMBER	0016	
ERROR_BAD_ENVIRONMENT  . . . . .  	NUMBER	000A	
ERROR_BAD_FORMAT . . . . . . . .  	NUMBER	000B	
ERROR_BAD_LENGTH . . . . . . . .  	NUMBER	0018	
ERROR_BAD_UNIT . . . . . . . . .  	NUMBER	0014	
ERROR_CANNOT_MAKE  . . . . . . .  	NUMBER	0052	
ERROR_CODE_PAGE_MISMATCHED . . .  	NUMBER	0025	
ERROR_CRC  . . . . . . . . . . .  	NUMBER	0017	
ERROR_CURRENT_DIRECTORY  . . . .  	NUMBER	0010	
ERROR_DUP_FCB  . . . . . . . . .  	NUMBER	0051	
ERROR_FAIL_I24 . . . . . . . . .  	NUMBER	0053	
ERROR_FCB_UNAVAILABLE  . . . . .  	NUMBER	0023	
ERROR_FILE_EXISTS  . . . . . . .  	NUMBER	0050	
ERROR_FILE_NOT_FOUND . . . . . .  	NUMBER	0002	
ERROR_GEN_FAILURE  . . . . . . .  	NUMBER	001F	
ERROR_HANDLE_DISK_FULL . . . . .  	NUMBER	0027	
ERROR_HANDLE_EOF . . . . . . . .  	NUMBER	0026	
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Symbols-10


ERROR_I24_BAD_COMMAND  . . . . .  	NUMBER	0003	
ERROR_I24_BAD_LENGTH . . . . . .  	NUMBER	0005	
ERROR_I24_BAD_UNIT . . . . . . .  	NUMBER	0001	
ERROR_I24_CRC  . . . . . . . . .  	NUMBER	0004	
ERROR_I24_GEN_FAILURE  . . . . .  	NUMBER	000C	
ERROR_I24_NOT_DOS_DISK . . . . .  	NUMBER	0007	
ERROR_I24_NOT_READY  . . . . . .  	NUMBER	0002	
ERROR_I24_OUT_OF_PAPER . . . . .  	NUMBER	0009	
ERROR_I24_READ_FAULT . . . . . .  	NUMBER	000B	
ERROR_I24_SECTOR_NOT_FOUND . . .  	NUMBER	0008	
ERROR_I24_SEEK . . . . . . . . .  	NUMBER	0006	
ERROR_I24_WRITE_FAULT  . . . . .  	NUMBER	000A	
ERROR_I24_WRITE_PROTECT  . . . .  	NUMBER	0000	
ERROR_I24_WRONG_DISK . . . . . .  	NUMBER	000F	
ERROR_INFO_NOT_SET . . . . . . .  	NUMBER	-0001	
ERROR_INVALID_ACCESS . . . . . .  	NUMBER	000C	
ERROR_INVALID_BLOCK  . . . . . .  	NUMBER	0009	
ERROR_INVALID_DATA . . . . . . .  	NUMBER	000D	
ERROR_INVALID_DRIVE  . . . . . .  	NUMBER	000F	
ERROR_INVALID_FUNCTION . . . . .  	NUMBER	0001	
ERROR_INVALID_HANDLE . . . . . .  	NUMBER	0006	
ERROR_INVALID_PARAMETER  . . . .  	NUMBER	0057	
ERROR_INVALID_PASSWORD . . . . .  	NUMBER	0056	
ERROR_LOCK_VIOLATION . . . . . .  	NUMBER	0021	
ERROR_NET_WRITE_FAULT  . . . . .  	NUMBER	0058	
ERROR_NOT_DOS_DISK . . . . . . .  	NUMBER	001A	
ERROR_NOT_ENOUGH_MEMORY  . . . .  	NUMBER	0008	
ERROR_NOT_READY  . . . . . . . .  	NUMBER	0015	
ERROR_NOT_SAME_DEVICE  . . . . .  	NUMBER	0011	
ERROR_NOT_SUPPORTED  . . . . . .  	NUMBER	0032	
ERROR_NO_MORE_FILES  . . . . . .  	NUMBER	0012	
ERROR_OUT_OF_PAPER . . . . . . .  	NUMBER	001C	
ERROR_OUT_OF_STRUCTS . . . . . .  	NUMBER	0038	
ERROR_OUT_OF_STRUCTURES  . . . .  	NUMBER	0054	
ERROR_PATH_NOT_FOUND . . . . . .  	NUMBER	0003	
ERROR_READ_FAULT . . . . . . . .  	NUMBER	001E	
ERROR_SECTOR_NOT_FOUND . . . . .  	NUMBER	001B	
ERROR_SEEK . . . . . . . . . . .  	NUMBER	0019	
ERROR_SHARING_BUFFER_EXCEEDED  .  	NUMBER	0024	
ERROR_SHARING_VIOLATION  . . . .  	NUMBER	0020	
ERROR_SYS_COMP_NOT_LOADED  . . .  	NUMBER	005A	
ERROR_TOO_MANY_OPEN_FILES  . . .  	NUMBER	0004	
ERROR_WRITE_FAULT  . . . . . . .  	NUMBER	001D	
ERROR_WRITE_PROTECT  . . . . . .  	NUMBER	0013	
ERROR_WRONG_DISK . . . . . . . .  	NUMBER	0022	
EXEC . . . . . . . . . . . . . .  	NUMBER	004B	
EXEC_FUNC_NO_EXECUTE . . . . . .  	NUMBER	0001	
EXEC_FUNC_OVERLAY  . . . . . . .  	NUMBER	0002	
EXE_VALID_OLD_SIGNATURE  . . . .  	NUMBER	4D5A	
EXE_VALID_SIGNATURE  . . . . . .  	NUMBER	5A4D	
EXISTS_MASK  . . . . . . . . . .  	NUMBER	000F	
EXIST_ACT_FAIL . . . . . . . . .  	NUMBER	0000	
EXIST_ACT_OPEN . . . . . . . . .  	NUMBER	0001	
EXIST_ACT_REP_OPEN . . . . . . .  	NUMBER	0002	
EXIT . . . . . . . . . . . . . .  	NUMBER	004C	
EXIT_ABORT . . . . . . . . . . .  	NUMBER	0000	
EXIT_CTRL_C  . . . . . . . . . .  	NUMBER	0001	
EXIT_HARD_ERROR  . . . . . . . .  	NUMBER	0002	
EXIT_KEEP_PROCESS  . . . . . . .  	NUMBER	0003	
EXIT_TERMINATE . . . . . . . . .  	NUMBER	0000	
EXPECTED_VERSION . . . . . . . .  	NUMBER	0004	
EXTDRVR  . . . . . . . . . . . .  	NUMBER	0002	
EXTENTBIT  . . . . . . . . . . .  	NUMBER	0400	
EXTHANDLE  . . . . . . . . . . .  	NUMBER	0067	
EXTOPEN  . . . . . . . . . . . .  	NUMBER	006C	
EXT_EXISTS_FAIL  . . . . . . . .  	NUMBER	0000	
EXT_EXISTS_OPEN  . . . . . . . .  	NUMBER	0001	
EXT_FILE_NOT_EXISTS  . . . . . .  	NUMBER	0004	
EXT_NEXISTS_CREATE . . . . . . .  	NUMBER	0010	
EXT_OPEN_I24_OFF . . . . . . . .  	NUMBER	0002	
EXT_OPEN_ON  . . . . . . . . . .  	NUMBER	0001	

FALSE  . . . . . . . . . . . . .  	NUMBER	0000	
FCBDEVICE  . . . . . . . . . . .  	NUMBER	0040	
FCBMASK  . . . . . . . . . . . .  	NUMBER	00C0	
FCBNETWORK . . . . . . . . . . .  	NUMBER	0080	
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Symbols-11


FCBSHARE . . . . . . . . . . . .  	NUMBER	00C0	
FCBSPECIAL . . . . . . . . . . .  	NUMBER	0080	
FCB_CLOSE  . . . . . . . . . . .  	NUMBER	0010	
FCB_CREATE . . . . . . . . . . .  	NUMBER	0016	
FCB_DELETE . . . . . . . . . . .  	NUMBER	0013	
FCB_L_ATTR . . . . . . . . . . .  	BYTE	001E	
FCB_L_DRIVE  . . . . . . . . . .  	BYTE	0019	
FCB_L_FIRCLUS  . . . . . . . . .  	WORD	001A	
FCB_L_MFS  . . . . . . . . . . .  	WORD	001C	
FCB_NETID  . . . . . . . . . . .  	DWORD	001C	
FCB_NET_DRIVE  . . . . . . . . .  	BYTE	0019	
FCB_NET_HANDLE . . . . . . . . .  	WORD	001A	
FCB_NSLD_DRIVE . . . . . . . . .  	BYTE	0019	
FCB_NSLD_DRVPTR  . . . . . . . .  	DWORD	001A	
FCB_NSL_BITS . . . . . . . . . .  	BYTE	001A	
FCB_NSL_DIRPOS . . . . . . . . .  	BYTE	001F	
FCB_NSL_DIRSEC . . . . . . . . .  	WORD	001D	
FCB_NSL_DRIVE  . . . . . . . . .  	BYTE	0019	
FCB_NSL_FIRCLUS  . . . . . . . .  	WORD	001B	
FCB_OPEN . . . . . . . . . . . .  	NUMBER	000F	
FCB_RANDOM_READ  . . . . . . . .  	NUMBER	0021	
FCB_RANDOM_READ_BLOCK  . . . . .  	NUMBER	0027	
FCB_RANDOM_WRITE . . . . . . . .  	NUMBER	0022	
FCB_RANDOM_WRITE_BLOCK . . . . .  	NUMBER	0028	
FCB_RENAME . . . . . . . . . . .  	NUMBER	0017	
FCB_SEQ_READ . . . . . . . . . .  	NUMBER	0014	
FCB_SEQ_WRITE  . . . . . . . . .  	NUMBER	0015	
FCB_SFN  . . . . . . . . . . . .  	BYTE	0018	
FCHK . . . . . . . . . . . . . .  	NUMBER	0001	
FDELIM . . . . . . . . . . . . .  	NUMBER	0002	
FFCB . . . . . . . . . . . . . .  	NUMBER	0008	
FILDIRENT  . . . . . . . . . . .  	NUMBER	0010	
FILESYS_STATUS . . . . . . . . .  	NUMBER	1000	
FILE_CREATED . . . . . . . . . .  	NUMBER	0002	
FILE_OPENED  . . . . . . . . . .  	NUMBER	0001	
FILE_REPLACED  . . . . . . . . .  	NUMBER	0003	
FILE_TIMES . . . . . . . . . . .  	NUMBER	0057	
FILPERPROC . . . . . . . . . . .  	NUMBER	0014	
FIND_FIRST . . . . . . . . . . .  	NUMBER	004E	
FIND_NEXT  . . . . . . . . . . .  	NUMBER	004F	
FIND_SECTOR  . . . . . . . . . .  	NUMBER	0008	
FLUSH_DOS_BUFFERS  . . . . . . .  	NUMBER	000D	
FORCE_I24_FAIL . . . . . . . . .  	NUMBER	0020	
FREE_DOS_BUFFER  . . . . . . . .  	NUMBER	000C	
FROM_DISK_RESET  . . . . . . . .  	NUMBER	0004	
FROM_DOS_WRITE . . . . . . . . .  	NUMBER	0010	
FROM_STRING_OUTPUT . . . . . . .  	NUMBER	0008	
FSPCHK . . . . . . . . . . . . .  	NUMBER	0004	
FS_DRIVER_NOT_FOUND  . . . . . .  	NUMBER	0043	
FUNC_CLOSE . . . . . . . . . . .  	NUMBER	0000	
FUNC_COMMIT  . . . . . . . . . .  	NUMBER	0001	
FUNC_FLUSH . . . . . . . . . . .  	NUMBER	0000	
FUNC_FLUSH_INVALIDATE  . . . . .  	NUMBER	0001	
FUNC_GET_BY_HANDLE . . . . . . .  	NUMBER	0000	
FUNC_GET_BY_NAME . . . . . . . .  	NUMBER	0002	
FUNC_LOCK  . . . . . . . . . . .  	NUMBER	0000	
FUNC_SET_BY_HANDLE . . . . . . .  	NUMBER	0001	
FUNC_SET_BY_NAME . . . . . . . .  	NUMBER	0003	
FUNC_UNLOCK  . . . . . . . . . .  	NUMBER	0001	
F_AUX  . . . . . . . . . . . . .  	NUMBER	0010	
F_CARRY  . . . . . . . . . . . .  	NUMBER	0001	
F_DIRECTION  . . . . . . . . . .  	NUMBER	0400	
F_INTERRUPT  . . . . . . . . . .  	NUMBER	0200	
F_OVERFLOW . . . . . . . . . . .  	NUMBER	0800	
F_PARITY . . . . . . . . . . . .  	NUMBER	0004	
F_SIGN . . . . . . . . . . . . .  	NUMBER	0080	
F_TRACE  . . . . . . . . . . . .  	NUMBER	0100	
F_ZERO . . . . . . . . . . . . .  	NUMBER	0040	

GENIOCTL . . . . . . . . . . . .  	NUMBER	0013	
GEN_IOCTL_BY_DEVNUM  . . . . . .  	NUMBER	0000	
GEN_IOCTL_BY_HANDLE  . . . . . .  	NUMBER	0001	
GEN_IOCTL_FN_TST . . . . . . . .  	NUMBER	0020	
GEN_IOCTL_RD_TRK . . . . . . . .  	NUMBER	0060	
GEN_IOCTL_WRT_TRK  . . . . . . .  	NUMBER	0040	
GETCURRENTPSP  . . . . . . . . .  	NUMBER	0062	
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Symbols-12


GETEXTCNTRY  . . . . . . . . . .  	NUMBER	0065	
GETEXTENDEDERROR . . . . . . . .  	NUMBER	0059	
GETSETCDPG . . . . . . . . . . .  	NUMBER	0066	
GETSETMEDIAID  . . . . . . . . .  	NUMBER	0069	
GET_ASSIGN_LIST  . . . . . . . .  	NUMBER	0002	
GET_ASSIGN_MODE  . . . . . . . .  	NUMBER	0021	
GET_CURRENT_PDB  . . . . . . . .  	NUMBER	0051	
GET_DATE . . . . . . . . . . . .  	NUMBER	002A	
GET_DEFAULT_DPB  . . . . . . . .  	NUMBER	001F	
GET_DEFAULT_DRIVE  . . . . . . .  	NUMBER	0019	
GET_DMA  . . . . . . . . . . . .  	NUMBER	002F	
GET_DOS_VALUE  . . . . . . . . .  	NUMBER	0020	
GET_DPB  . . . . . . . . . . . .  	NUMBER	0032	
GET_DRIVE_FREESPACE  . . . . . .  	NUMBER	0036	
GET_FCB_FILE_LENGTH  . . . . . .  	NUMBER	0023	
GET_FCB_POSITION . . . . . . . .  	NUMBER	0024	
GET_INDOS_FLAG . . . . . . . . .  	NUMBER	0034	
GET_INTERRUPT_VECTOR . . . . . .  	NUMBER	0035	
GET_IN_VAR . . . . . . . . . . .  	NUMBER	0052	
GET_IN_VARS  . . . . . . . . . .  	NUMBER	0052	
GET_MODE . . . . . . . . . . . .  	NUMBER	0000	
GET_TIME . . . . . . . . . . . .  	NUMBER	002C	
GET_TRUNCATE_FLAG  . . . . . . .  	NUMBER	0007	
GET_VERIFY_ON_WRITE  . . . . . .  	NUMBER	0054	
GET_VERSION  . . . . . . . . . .  	NUMBER	0030	

HANDLE_FAIL_I24  . . . . . . . .  	NUMBER	0100	
HONGEUL  . . . . . . . . . . . .  	NUMBER	0063	

I24_AREA . . . . . . . . . . . .  	NUMBER	0006	
I24_CLASS  . . . . . . . . . . .  	NUMBER	0080	
I24_OPERATION  . . . . . . . . .  	NUMBER	0001	
I24_RESP_IGNORE  . . . . . . . .  	NUMBER	0000	
I24_RESP_RETRY . . . . . . . . .  	NUMBER	0001	
I2F5_MSGRET  . . . . . . . . . .  	NUMBER	0002	
IBM  . . . . . . . . . . . . . .  	ALIAS	 IBMVER		
IBMCOPYRIGHT . . . . . . . . . .  	ALIAS	 FALSE		
IBMJAPAN . . . . . . . . . . . .  	ALIAS	 FALSE		
IBMJAPVER  . . . . . . . . . . .  	ALIAS	 FALSE		
IBMVER . . . . . . . . . . . . .  	ALIAS	 TRUE		
ICOLON . . . . . . . . . . . . .  	NUMBER	003A	
IFSATTEND  . . . . . . . . . . .  	NUMBER	0004	
IFSATTSTART  . . . . . . . . . .  	NUMBER	0002	
IFSATTSTAT . . . . . . . . . . .  	NUMBER	0003	
IFSCHDIR . . . . . . . . . . . .  	NUMBER	0005	
IFSCLOSEFILE . . . . . . . . . .  	NUMBER	000E	
IFSCRITMSG . . . . . . . . . . .  	NUMBER	0006	
IFSDELFILE . . . . . . . . . . .  	NUMBER	0006	
IFSDEPIOCTL  . . . . . . . . . .  	NUMBER	0010	
IFSDEVICE  . . . . . . . . . . .  	NUMBER	8000	
IFSDEVIOCTL  . . . . . . . . . .  	NUMBER	0011	
IFSDISK  . . . . . . . . . . . .  	NUMBER	4000	
IFSDISKATTR  . . . . . . . . . .  	NUMBER	0002	
IFSDRIVERESET  . . . . . . . . .  	NUMBER	0001	
IFSEOCID . . . . . . . . . . . .  	NUMBER	0013	
IFSEOP . . . . . . . . . . . . .  	NUMBER	0012	
IFSEXECAPI . . . . . . . . . . .  	NUMBER	0005	
IFSFILEATTR  . . . . . . . . . .  	NUMBER	000F	
IFSFILTER  . . . . . . . . . . .  	NUMBER	0400	
IFSFINSTALLED  . . . . . . . . .  	NUMBER	00FF	
IFSINIT  . . . . . . . . . . . .  	NUMBER	0001	
IFSIOCTL . . . . . . . . . . . .  	NUMBER	0002	
IFSLOCKFILE  . . . . . . . . . .  	NUMBER	000D	
IFSLSEEKFILE . . . . . . . . . .  	NUMBER	000A	
IFSMKDIR . . . . . . . . . . . .  	NUMBER	0003	
IFSOPENFILE  . . . . . . . . . .  	NUMBER	0009	
IFSPROC_FLAGS  . . . . . . . . .  	V WORD	0000	IFSSEG	External
IFSR . . . . . . . . . . . . . .  	V WORD	0000	IFSSEG	External
IFSREADFILE  . . . . . . . . . .  	NUMBER	000B	
IFSREMOTE  . . . . . . . . . . .  	NUMBER	0800	
IFSRENFILE . . . . . . . . . . .  	NUMBER	0007	
IFSRMDIR . . . . . . . . . . . .  	NUMBER	0004	
IFSR_ACCESS_DENIED . . . . . . .  	NUMBER	0003	
IFSR_ALLOWED . . . . . . . . . .  	BYTE	001A	
IFSR_APIFUNC . . . . . . . . . .  	BYTE	0016	
IFSR_API_PARMS . . . . . . . . .  	BYTE	0026	
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Symbols-13


IFSR_BAD_FORMAT  . . . . . . . .  	NUMBER	-0001	
IFSR_BUFFER@ . . . . . . . . . .  	DWORD	002A	
IFSR_COUNT . . . . . . . . . . .  	WORD	0028	
IFSR_DEVICE_CB@  . . . . . . . .  	DWORD	001E	
IFSR_DEVICE_ERROR  . . . . . . .  	NUMBER	0004	
IFSR_DEVICE_TYPE_MISMATCH  . . .  	NUMBER	0004	
IFSR_DRIVER_ERROR  . . . . . . .  	NUMBER	0002	
IFSR_ERROR_ACTION  . . . . . . .  	BYTE	0018	
IFSR_ERROR_CLASS . . . . . . . .  	BYTE	0017	
IFSR_ERROR_LOCUS . . . . . . . .  	BYTE	0019	
IFSR_FUNC  . . . . . . . . . . .  	BYTE	0026	
IFSR_I24_COUNT . . . . . . . . .  	BYTE	001B	
IFSR_I24_RESP  . . . . . . . . .  	BYTE	001C	
IFSR_INT21H_CRITER . . . . . . .  	NUMBER	0003	
IFSR_INT21H_ERROR  . . . . . . .  	NUMBER	0001	
IFSR_LK_LENGTH . . . . . . . . .  	DWORD	002C	
IFSR_LK_POSITION . . . . . . . .  	DWORD	0028	
IFSR_MODE_BYTE . . . . . . . . .  	BYTE	0026	
IFSR_NONSPEC_ERROR . . . . . . .  	NUMBER	0001	
IFSR_NOT_FOUND_ERROR . . . . . .  	NUMBER	0002	
IFSR_NO_ERROR  . . . . . . . . .  	NUMBER	0000	
IFSR_NO_FCN_SUPPORT  . . . . . .  	NUMBER	-0001	
IFSR_NO_SUBFCN_SUPPORT . . . . .  	NUMBER	-0002	
IFSR_OPEN_CB@  . . . . . . . . .  	DWORD	0022	
IFSR_POSITION  . . . . . . . . .  	DWORD	0028	
IFSSEARCHFILE  . . . . . . . . .  	NUMBER	0008	
IFSSEARCH_FIRST  . . . . . . . .  	NUMBER	0001	
IFSSEARCH_NEXT . . . . . . . . .  	NUMBER	0002	
IFSUNC . . . . . . . . . . . . .  	NUMBER	2000	
IFSUPDATECB  . . . . . . . . . .  	NUMBER	0007	
IFSUSESHARE  . . . . . . . . . .  	NUMBER	0001	
IFSWRITEFILE . . . . . . . . . .  	NUMBER	000C	
ifs_1000 . . . . . . . . . . . .  	L NEAR	0000	IFSSEG	External
IFS_1000_J . . . . . . . . . . .  	NEAR	01DE	IFSSEG
ifs_990  . . . . . . . . . . . .  	L NEAR	0000	IFSSEG	External
IFS_990_J  . . . . . . . . . . .  	NEAR	01E3	IFSSEG
IFS_ABSRW  . . . . . . . . . . .  	NUMBER	0001	
IFS_CLOSE  . . . . . . . . . . .  	N PROC	0000	IFSSEG	Global	Length = 0037
IFS_COMMIT . . . . . . . . . . .  	N PROC	0037	IFSSEG	Global	Length = 0079
IFS_DRIVE_RESET  . . . . . . . .  	NUMBER	0002	
IFS_FILE_XATTRIBUTES . . . . . .  	N PROC	01E5	IFSSEG	Global	Length = 0032
IFS_IOCTL  . . . . . . . . . . .  	NUMBER	006B	
IFS_LSEEK  . . . . . . . . . . .  	N PROC	00B0	IFSSEG	Global	Length = 0053
IFS_READ . . . . . . . . . . . .  	N PROC	0103	IFSSEG	Global	Length = 001F
IFS_WRITE  . . . . . . . . . . .  	N PROC	0122	IFSSEG	Global	Length = 005E
IFS_XLOCK  . . . . . . . . . . .  	N PROC	0180	IFSSEG	Global	Length = 0065
INSTALLED  . . . . . . . . . . .  	NUMBER	FFFF	
INSTALLEDDATA  . . . . . . . . .  	NUMBER	0000	
INTBASE  . . . . . . . . . . . .  	NUMBER	0080	
INTERNAT . . . . . . . . . . . .  	ALIAS	 FALSE		
INTERNATIONAL  . . . . . . . . .  	NUMBER	0038	
INTERNAT_BLOCK_MAX . . . . . . .  	NUMBER	0020	
INTTAB . . . . . . . . . . . . .  	NUMBER	0020	
INT_24_ERROR . . . . . . . . . .  	NUMBER	2000	
INT_ABORT  . . . . . . . . . . .  	ALIAS	 INTTAB		
INT_COMMAND  . . . . . . . . . .  	NUMBER	0021	
INT_CTRL_C . . . . . . . . . . .  	NUMBER	0023	
INT_DISK_READ  . . . . . . . . .  	NUMBER	0025	
INT_DISK_WRITE . . . . . . . . .  	NUMBER	0026	
INT_FASTCON  . . . . . . . . . .  	NUMBER	0029	
INT_FATAL_ABORT  . . . . . . . .  	NUMBER	0024	
INT_IBM  . . . . . . . . . . . .  	NUMBER	002A	
INT_KEEP_PROCESS . . . . . . . .  	NUMBER	0027	
INT_SPOOLER  . . . . . . . . . .  	NUMBER	0028	
INT_TERMINATE  . . . . . . . . .  	NUMBER	0022	
IOCTL  . . . . . . . . . . . . .  	NUMBER	0044	
IO_MODE_ID . . . . . . . . . . .  	NUMBER	0002	
ISCDS  . . . . . . . . . . . . .  	NUMBER	0080	
ISCIN  . . . . . . . . . . . . .  	NUMBER	0001	
ISCLOCK  . . . . . . . . . . . .  	NUMBER	0008	
ISCLOSE  . . . . . . . . . . . .  	NUMBER	0010	
ISCOUT . . . . . . . . . . . . .  	NUMBER	0002	
ISCREATE . . . . . . . . . . . .  	NUMBER	8000	
ISCRITIFS  . . . . . . . . . . .  	NUMBER	0002	
ISCTLFCN . . . . . . . . . . . .  	NUMBER	0001	
ISDUMMYCDS . . . . . . . . . . .  	NUMBER	0200	
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Symbols-14


ISFATBYDEV . . . . . . . . . . .  	NUMBER	2000	
ISGET  . . . . . . . . . . . . .  	NUMBER	0010	
ISINIT . . . . . . . . . . . . .  	NUMBER	2000	
ISMSGRET . . . . . . . . . . . .  	NUMBER	8000	
ISNET  . . . . . . . . . . . . .  	NUMBER	1000	
ISNETWORK  . . . . . . . . . . .  	NUMBER	0400	
ISNULL . . . . . . . . . . . . .  	NUMBER	0004	
ISOLDCREATE  . . . . . . . . . .  	NUMBER	0008	
ISOLDOPEN  . . . . . . . . . . .  	NUMBER	0010	
ISREN  . . . . . . . . . . . . .  	NUMBER	0010	
ISRESETENVIRN  . . . . . . . . .  	NUMBER	4000	
ISSEQ  . . . . . . . . . . . . .  	NUMBER	0020	
ISSFT  . . . . . . . . . . . . .  	NUMBER	0040	
ISSHARE  . . . . . . . . . . . .  	NUMBER	0080	
ISSPEC . . . . . . . . . . . . .  	NUMBER	0010	

JAPAN  . . . . . . . . . . . . .  	ALIAS	 FALSE		

KANJI  . . . . . . . . . . . . .  	ALIAS	 FALSE		
KEEP_PROCESS . . . . . . . . . .  	NUMBER	0031	
KOREA  . . . . . . . . . . . . .  	ALIAS	 FALSE		

LENGTH_CLOSEFILE . . . . . . . .  	NUMBER	0028	
LENGTH_DEVECHOCHECK_BUFFER . . .  	NUMBER	0001	
LENGTH_LOCKFILE  . . . . . . . .  	NUMBER	0030	
LENGTH_LSEEKFILE . . . . . . . .  	NUMBER	002C	
LENGTH_READFILE  . . . . . . . .  	NUMBER	002E	
LENGTH_WRITEFILE . . . . . . . .  	NUMBER	002E	
LOCKOPER . . . . . . . . . . . .  	NUMBER	005C	
LSEEK  . . . . . . . . . . . . .  	NUMBER	0042	
LS_1000  . . . . . . . . . . . .  	L NEAR	0100	IFSSEG
L_100  . . . . . . . . . . . . .  	L NEAR	01E0	IFSSEG
L_60 . . . . . . . . . . . . . .  	L NEAR	0188	IFSSEG

MACHINE_NAME . . . . . . . . . .  	NUMBER	0006	
MAJOR_VERSION  . . . . . . . . .  	NUMBER	0004	
MARK_SECTOR_CHANGED  . . . . . .  	NUMBER	0009	
MAXBUCKETINPAGE  . . . . . . . .  	NUMBER	0002	
MAXBUFFINBUCKET  . . . . . . . .  	NUMBER	000F	
MAX_PRE_STRING . . . . . . . . .  	NUMBER	0040	
MEMS . . . . . . . . . . . . . .  	NUMBER	0001	
MINOR_VERSION  . . . . . . . . .  	NUMBER	0000	
MINUS_ONE  . . . . . . . . . . .  	NUMBER	-0001	
MI_INT . . . . . . . . . . . . .  	NUMBER	00CD	
MI_LONG_CALL . . . . . . . . . .  	NUMBER	009A	
MI_LONG_JMP  . . . . . . . . . .  	NUMBER	00EA	
MI_LONG_RET  . . . . . . . . . .  	NUMBER	00CB	
MI_NEAR_RET  . . . . . . . . . .  	NUMBER	00C3	
MKDIR  . . . . . . . . . . . . .  	NUMBER	0039	
MODE2  . . . . . . . . . . . . .  	NUMBER	0002	
MR_ERRMSG_SEM  . . . . . . . . .  	NUMBER	0080	
MSNET_TIMING . . . . . . . . . .  	NUMBER	0000	
MSVER  . . . . . . . . . . . . .  	NUMBER	0000	
MULTDOS  . . . . . . . . . . . .  	NUMBER	0012	
MULTIFS  . . . . . . . . . . . .  	NUMBER	0011	
MULTNET  . . . . . . . . . . . .  	NUMBER	0011	
MULTSHARE  . . . . . . . . . . .  	NUMBER	0010	

NET2DOS_DATE . . . . . . . . . .  	NUMBER	0023	
NET_CALL_INT . . . . . . . . . .  	NUMBER	002A	
NEWKEEPVAL . . . . . . . . . . .  	NUMBER	0008	
NEWNUMFCB  . . . . . . . . . . .  	NUMBER	0010	
NEW_EXPECTED_VERSION . . . . . .  	NUMBER	2605	
NEW_MAJOR_VERSION  . . . . . . .  	NUMBER	0005	
NEW_MINOR_VERSION  . . . . . . .  	NUMBER	0026	
NLSFUNC  . . . . . . . . . . . .  	NUMBER	0014	
NOTEXIST_ACT_CREATE  . . . . . .  	NUMBER	0001	
NOTEXIST_ACT_FAIL  . . . . . . .  	NUMBER	0000	
NOT_EXISTS_MASK  . . . . . . . .  	NUMBER	00F0	
NO_CODE_PAGE_CHECK . . . . . . .  	NUMBER	0100	
NO_CTRL_BREAK_FLAG . . . . . . .  	NUMBER	FDFF	
NO_DISABLE_EOF_I24 . . . . . . .  	NUMBER	FFBF	
NO_FORCE_I24_FAIL  . . . . . . .  	NUMBER	FFDF	
NO_FROM_DISK_RESET . . . . . . .  	NUMBER	FFFB	
NO_FROM_DOS_WRITE  . . . . . . .  	NUMBER	FFEF	
NO_FROM_STRING_OUTPUT  . . . . .  	NUMBER	FFF7	
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Symbols-15


NO_IFS_ABSRW . . . . . . . . . .  	NUMBER	FFFE	
NO_IFS_DRIVERS . . . . . . . . .  	NUMBER	0040	
NO_IFS_DRIVE_RESET . . . . . . .  	NUMBER	FFFD	
NO_RETRY . . . . . . . . . . . .  	NUMBER	0000	
NULL_PTR . . . . . . . . . . . .  	NUMBER	-0001	

OEM_C1 . . . . . . . . . . . . .  	NUMBER	00F9	
OEM_C2 . . . . . . . . . . . . .  	NUMBER	00FA	
OEM_C3 . . . . . . . . . . . . .  	NUMBER	00FB	
OEM_C4 . . . . . . . . . . . . .  	NUMBER	00FC	
OEM_C5 . . . . . . . . . . . . .  	NUMBER	00FD	
OEM_C6 . . . . . . . . . . . . .  	NUMBER	00FE	
OEM_C7 . . . . . . . . . . . . .  	NUMBER	00FF	
OLDCREATENEW_FLAG  . . . . . . .  	NUMBER	0010	
OLDCREATE_FLAG . . . . . . . . .  	NUMBER	0112	
OLDCREATE_MODE . . . . . . . . .  	NUMBER	0002	
OLDOPEN_FLAG . . . . . . . . . .  	NUMBER	0101	
OLDOPEN_MODE . . . . . . . . . .  	NUMBER	2180	
OPEN . . . . . . . . . . . . . .  	NUMBER	003D	
OPEN_FOR_BOTH  . . . . . . . . .  	NUMBER	0002	
OPEN_FOR_READ  . . . . . . . . .  	NUMBER	0000	
OPEN_FOR_WRITE . . . . . . . . .  	NUMBER	0001	
OUTTILBUSY . . . . . . . . . . .  	NUMBER	2000	
OWNHL  . . . . . . . . . . . . .  	NUMBER	000D	

PARSE_ERR_1  . . . . . . . . . .  	NUMBER	0001	
PARSE_ERR_10 . . . . . . . . . .  	NUMBER	000A	
PARSE_ERR_5  . . . . . . . . . .  	NUMBER	0005	
PARSE_ERR_6  . . . . . . . . . .  	NUMBER	0006	
PARSE_FILE_DESCRIPTOR  . . . . .  	NUMBER	0029	
PATHGEN  . . . . . . . . . . . .  	NUMBER	FFFF	
PATHPARSE  . . . . . . . . . . .  	NUMBER	0061	
PAUSE_MODE_OFF . . . . . . . . .  	NUMBER	0000	
PAUSE_MODE_ON  . . . . . . . . .  	NUMBER	0001	
PDB_APPEND . . . . . . . . . . .  	BYTE	003D	
PDB_INTERCON . . . . . . . . . .  	BYTE	003C	
PREP_IFSR  . . . . . . . . . . .  	L NEAR	0000	IFSSEG	External
PRINTER_GET_FLAGS  . . . . . . .  	NUMBER	0005	
PRINTER_GET_STRING . . . . . . .  	NUMBER	0003	
PRINTER_SET_FLAGS  . . . . . . .  	NUMBER	0004	
PRINTER_SET_STRING . . . . . . .  	NUMBER	0002	
PRINT_ON . . . . . . . . . . . .  	NUMBER	0080	

QUERY_OS_TYPE  . . . . . . . . .  	NUMBER	0002	

RAW_CON_INPUT  . . . . . . . . .  	NUMBER	0007	
RAW_CON_IO . . . . . . . . . . .  	NUMBER	0006	
READ . . . . . . . . . . . . . .  	NUMBER	003F	
READ_DEVICE  . . . . . . . . . .  	NUMBER	0002	
READ_DOS_BUFFER  . . . . . . . .  	NUMBER	000B	
READ_SECTORS . . . . . . . . . .  	NUMBER	0002	
REDIRECTOR . . . . . . . . . . .  	NUMBER	FFFF	
REMHL  . . . . . . . . . . . . .  	NUMBER	000D	
RENAME . . . . . . . . . . . . .  	NUMBER	0056	
RESERVED_BITS_MASK . . . . . . .  	NUMBER	FE00	
RESET_ENVIRONMENT  . . . . . . .  	NUMBER	0002	
RETRY  . . . . . . . . . . . . .  	NUMBER	0001	
RET_L  . . . . . . . . . . . . .  	NEAR	0102	IFSSEG
RMDIR  . . . . . . . . . . . . .  	NUMBER	003A	
R_20 . . . . . . . . . . . . . .  	L NEAR	0112	IFSSEG

SAVE_BX  . . . . . . . . . . . .  	V WORD	0000	DATA	External
SAVE_CX  . . . . . . . . . . . .  	V WORD	0000	DATA	External
SAVE_DI  . . . . . . . . . . . .  	V WORD	0000	DATA	External
SAVE_DS  . . . . . . . . . . . .  	V WORD	0000	DATA	External
SAVE_ES  . . . . . . . . . . . .  	V WORD	0000	DATA	External
SAVE_SI  . . . . . . . . . . . .  	V WORD	0000	DATA	External
SEARCH_FASTOPEN  . . . . . . . .  	NUMBER	0400	
SERVERCALL . . . . . . . . . . .  	NUMBER	005D	
SETBLOCK . . . . . . . . . . . .  	NUMBER	004A	
SETBP  . . . . . . . . . . . . .  	NUMBER	0800	
SETDEVICECB  . . . . . . . . . .  	NUMBER	0100	
SETDPB . . . . . . . . . . . . .  	NUMBER	0053	
SET_CTRL_C_TRAPPING  . . . . . .  	NUMBER	0033	
SET_CURRENT_PDB  . . . . . . . .  	NUMBER	0050	
SET_DATE . . . . . . . . . . . .  	NUMBER	002B	
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Symbols-16


SET_DEFAULT_DRIVE  . . . . . . .  	NUMBER	000E	
SET_DMA  . . . . . . . . . . . .  	NUMBER	001A	
SET_INTERRUPT_VECTOR . . . . . .  	NUMBER	0025	
SET_MODE . . . . . . . . . . . .  	NUMBER	0001	
SET_OEM_HANDLER  . . . . . . . .  	NUMBER	00F8	
SET_PRINTER_FLAG . . . . . . . .  	NUMBER	0064	
SET_TIME . . . . . . . . . . . .  	NUMBER	002D	
SET_TRUNCATE_FLAG  . . . . . . .  	NUMBER	0008	
SET_VERIFY_ON_WRITE  . . . . . .  	NUMBER	002E	
SFF_CLOSE_NODATE . . . . . . . .  	NUMBER	4000	
SFF_DEVICE_RAW . . . . . . . . .  	NUMBER	0020	
SFF_FILECLEAN  . . . . . . . . .  	NUMBER	0040	
SFF_ISDEVICE . . . . . . . . . .  	NUMBER	0080	
SFF_ISFCB  . . . . . . . . . . .  	NUMBER	8000	
SFF_NET_SPOOL  . . . . . . . . .  	NUMBER	0800	
SFF_TO_SFT . . . . . . . . . . .  	L NEAR	0000	IFSSEG	External
SFT_TO_SFF . . . . . . . . . . .  	L NEAR	0000	IFSSEG	External
SF_BUSY  . . . . . . . . . . . .  	NUMBER	-0001	
SF_CLOSE_NODATE  . . . . . . . .  	NUMBER	4000	
SF_DEFAULT_NUMBER  . . . . . . .  	NUMBER	0005	
SF_FSDA  . . . . . . . . . . . .  	BYTE	0019	
SF_ISFCB . . . . . . . . . . . .  	NUMBER	8000	
SF_ISNET . . . . . . . . . . . .  	NUMBER	8000	
SF_LRU . . . . . . . . . . . . .  	WORD	0015	
SF_NETID . . . . . . . . . . . .  	BYTE	0019	
SF_NET_SPOOL . . . . . . . . . .  	NUMBER	0800	
SF_NO_INHERIT  . . . . . . . . .  	NUMBER	1000	
SF_OPENAGE . . . . . . . . . . .  	WORD	0017	
SF_PIPE  . . . . . . . . . . . .  	NUMBER	2000	
SF_SERIAL_ID . . . . . . . . . .  	WORD	000B	
SHAREF . . . . . . . . . . . . .  	NUMBER	0000	
SHARE_RETRY_COUNT  . . . . . . .  	NUMBER	0008	
SHARING_COMPAT . . . . . . . . .  	NUMBER	0000	
SHARING_DENY_BOTH  . . . . . . .  	NUMBER	0010	
SHARING_DENY_NONE  . . . . . . .  	NUMBER	0040	
SHARING_DENY_READ  . . . . . . .  	NUMBER	0030	
SHARING_DENY_WRITE . . . . . . .  	NUMBER	0020	
SHARING_MASK . . . . . . . . . .  	NUMBER	00F0	
SHARING_NET_FCB  . . . . . . . .  	NUMBER	0070	
SHARING_NO_INHERIT . . . . . . .  	NUMBER	0080	
STBUI  . . . . . . . . . . . . .  	NUMBER	0200	
STDAUX . . . . . . . . . . . . .  	NUMBER	0003	
STDERR . . . . . . . . . . . . .  	NUMBER	0002	
STDIN  . . . . . . . . . . . . .  	NUMBER	0000	
STDON  . . . . . . . . . . . . .  	NUMBER	0100	
STDOUT . . . . . . . . . . . . .  	NUMBER	0001	
STDPRN . . . . . . . . . . . . .  	NUMBER	0004	
STD_AUX_INPUT  . . . . . . . . .  	NUMBER	0003	
STD_AUX_OUTPUT . . . . . . . . .  	NUMBER	0004	
STD_CON_INPUT  . . . . . . . . .  	NUMBER	0001	
STD_CON_INPUT_FLUSH  . . . . . .  	NUMBER	000C	
STD_CON_INPUT_NO_ECHO  . . . . .  	NUMBER	0008	
STD_CON_INPUT_STATUS . . . . . .  	NUMBER	000B	
STD_CON_OUTPUT . . . . . . . . .  	NUMBER	0002	
STD_CON_STRING_INPUT . . . . . .  	NUMBER	000A	
STD_CON_STRING_OUTPUT  . . . . .  	NUMBER	0009	
STD_PRINTER_OUTPUT . . . . . . .  	NUMBER	0005	
STECODE  . . . . . . . . . . . .  	NUMBER	00FF	
STERR  . . . . . . . . . . . . .  	NUMBER	8000	
SUBFUNC_EA . . . . . . . . . . .  	NUMBER	0002	
SUBFUNC_EA_NAMES . . . . . . . .  	NUMBER	0003	
SUBFUNC_INLINE . . . . . . . . .  	NUMBER	0000	

TEMPLEN  . . . . . . . . . . . .  	NUMBER	0086	
THISDFL  . . . . . . . . . . . .  	V DWORD	0000	IFSSEG	External
THISIFS  . . . . . . . . . . . .  	V DWORD	0000	IFSSEG	External
THISIFS_SET  . . . . . . . . . .  	NUMBER	0002	
THISSFT  . . . . . . . . . . . .  	V DWORD	0000	DATA	External
TRUE . . . . . . . . . . . . . .  	NUMBER	FFFF	
TRUEBYTE . . . . . . . . . . . .  	NUMBER	00FF	
TYPE0  . . . . . . . . . . . . .  	NUMBER	0000	
TYPE1  . . . . . . . . . . . . .  	NUMBER	0001	
TYPE_DEVICE  . . . . . . . . . .  	NUMBER	0001	
TYPE_DRIVE . . . . . . . . . . .  	NUMBER	0002	
TYPE_NET_DEVICE  . . . . . . . .  	NUMBER	0003	
TYPE_NET_DRIVE . . . . . . . . .  	NUMBER	0004	
Microsoft (R) Macro Assembler Version 5.10                  9/18/25 23:16:01
IFSFUNC HANDLE ROUTINES - Routines for FS dispatch				 ;AN00Symbols-17


TYPE_NONE  . . . . . . . . . . .  	NUMBER	0000	

UNC_INSTALLED  . . . . . . . . .  	NUMBER	0080	
UNLINK . . . . . . . . . . . . .  	NUMBER	0041	
USEROPER . . . . . . . . . . . .  	NUMBER	005E	
USE_SYSTEM_TIMEDATE  . . . . . .  	NUMBER	0000	
USE_USER_TIMEDATE  . . . . . . .  	NUMBER	0001	
UTIL_ERR_4 . . . . . . . . . . .  	NUMBER	0004	

VERIFY_INFORMATION . . . . . . .  	NUMBER	0004	

WAITPROCESS  . . . . . . . . . .  	NUMBER	004D	
WRITE  . . . . . . . . . . . . .  	NUMBER	0040	
WRITE_DEVICE . . . . . . . . . .  	NUMBER	0003	
WRITE_DOS_BUFFER . . . . . . . .  	NUMBER	000A	
WRITE_SECTORS  . . . . . . . . .  	NUMBER	0003	
W_100  . . . . . . . . . . . . .  	L NEAR	0170	IFSSEG
W_20 . . . . . . . . . . . . . .  	L NEAR	0131	IFSSEG
W_80 . . . . . . . . . . . . . .  	L NEAR	013E	IFSSEG

X25_SPECIAL  . . . . . . . . . .  	NUMBER	0800	
XDUP . . . . . . . . . . . . . .  	NUMBER	0045	
XDUP2  . . . . . . . . . . . . .  	NUMBER	0046	
XFA_120  . . . . . . . . . . . .  	L NEAR	01FB	IFSSEG
XFA_140  . . . . . . . . . . . .  	L NEAR	020A	IFSSEG
XFA_40 . . . . . . . . . . . . .  	L NEAR	01ED	IFSSEG
XNAMETRANS . . . . . . . . . . .  	NUMBER	0060	

ZERO . . . . . . . . . . . . . .  	NUMBER	0000	

??0000 . . . . . . . . . . . . .  	L NEAR	00AF	IFSSEG
??0001 . . . . . . . . . . . . .  	L NEAR	0102	IFSSEG
??0002 . . . . . . . . . . . . .  	L NEAR	016D	IFSSEG
??0003 . . . . . . . . . . . . .  	L NEAR	017D	IFSSEG
??0004 . . . . . . . . . . . . .  	L NEAR	01DE	IFSSEG
??0005 . . . . . . . . . . . . .  	L NEAR	01E3	IFSSEG
?PLM . . . . . . . . . . . . . .  	NUMBER	0000	
?WIN . . . . . . . . . . . . . .  	NUMBER	0000	
@CPU . . . . . . . . . . . . . .  	TEXT  0101h		
@FILENAME  . . . . . . . . . . .  	TEXT  ifshand		
@VERSION . . . . . . . . . . . .  	TEXT  510		


   4393 Source  Lines
   6687 Total   Lines
   1241 Symbols

  42516 + 117189 Bytes symbol space free

      0 Warning Errors
      0 Severe  Errors
