Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Page     1-1


				page	,132					;
				TITLE	RECPROC.SAL
				;*****************************************************************************
				; Include files
				;*****************************************************************************
				.list
				
				;******************************************
				; Prints the XXX of YYY bytes recovered message.
				; The XXX value is a dword at di+16 on entry.
				; The YYY value is a dword (declared as a word) at filsiz.
				;*************************************************************
				Procedure report,near				;				;AN000;bgb
			     1							; 
			     1	Public	report				;				;AN000; 
 0000                        1	report    proc				;				;AN000; 
			     1							; 
 0000  8D 16 0000 E			lea	dx,ofmsg_ptr
 0004  8B 75 10				mov	si,[di+16]			;Get the XXX value
 0007  89 36 0000 E			mov	x_value_lo,si
 000B  8B 7D 12				mov	di,[di+18]
 000E  89 3E 0000 E			mov	x_value_hi,di
 0012  8B 36 0000 E			mov	si,filsiz			;Get the YYY value
 0016  89 36 0000 E			mov	y_value_lo,si
 001A  8B 3E 0002 E			mov	di,filsiz+2
 001E  89 3E 0000 E			mov	y_value_hi,di
 0022  E8 0000 E			call	display_interface		; AC000;SM
 0025  C3				ret
 0026				report endp
				
				;=========================================================================	;an005;bgb
				; READ_DISK	:	This routine reads the logical sector count requested.	;an005;bgb
				;			It will read a maximum of 64k in one read.  If more	;an005;bgb
				;			than 64k exists it will continue looping until		;an005;bgb
				;			all sectors have been read.				;an005;bgb
				;										;an005;bgb
				;	Inputs	:	AL - Drive letter					;an005;bgb
				;			ES:BX - Segment:offset of transfer address		;an005;bgb
				;			CX - Sector count					;an005;bgb
				;			DX - 1st  sector					;an005;bgb
				;										;an005;bgb
				;	Outputs :	Logical sectors read					;an005;bgb
				; LOGIC 									;an005;bgb
				; ***** 									;an005;bgb
				;    adjust es:bx to es:00							;an005;bgb
				;    calcluate sectors-per-64k (how many sectors are there that can fit within a 64k segment?)
				;    DO while there are more sectors to read than sectors-per-64k		;an005;bgb
				;	set sector-count to sectors-per-64k					;an005;bgb
				;	perform the disk read							;an005;bgb
				;	bump the seg addr to the new addr					;an005;bgb
				;	dec  the number of sectors to read by sectors-per-64k			;an005;bgb
				;	bump the starting sector number by the sectors-per-64k			;an005;bgb
				;    ENDDO									;an005;bgb
				;    perform a disk read for less than sectors-per-64k				;an005;bgb
				;=========================================================================	;an005;bgb
				procedure	read_disk							;an005;bgb
			     1							; 
			     1	Public	read_disk				;				;AN000; 
 0026                        1	read_disk    proc				;				;AN000; 
			     1							; 
					savereg <ax,bx,cx,dx,es>
			     1	IRP reg,<ax,bx,cx,dx,es> 
			     1		?stackdepth = ?stackdepth + 1 
			     1		PUSH    reg 
			     1	ENDM 
 = 0001                      2		?stackdepth = ?stackdepth + 1 
 0026  50                    2		PUSH    ax 
 = 0002                      2		?stackdepth = ?stackdepth + 1 
 0027  53                    2		PUSH    bx 
 = 0003                      2		?stackdepth = ?stackdepth + 1 
 0028  51                    2		PUSH    cx 
 = 0004                      2		?stackdepth = ?stackdepth + 1 
 0029  52                    2		PUSH    dx 
 = 0005                      2		?stackdepth = ?stackdepth + 1 
 002A  06                    2		PUSH    es 
 002B  E8 00F4 R			call	seg_adj 			;an000;calc new seg:off 	;an005;bgb
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Page     1-2
system call definitions                                     

 002E  E8 010C R			call	calc_sp64k			;an000;secs/64k 		;an005;bgb
				;	$DO				; do while more than 64k		;an005;bgb
 0031				$$DO1:
 0031  3B 0E 0000 E			    cmp     cx,secs_per_64k	    ;an000;exceed 64k			;an005;bgb
				;	$LEAVE	LE			    ;an000;yes				;an005;bgb
 0035  7E 23				JLE $$EN1
 0037  89 0E 0000 E			    mov     sec_count,cx	;an000;save cx				;an005;bgb
 003B  8B 0E 0000 E			    mov     cx,secs_per_64k	;an000;get maximum read 		;an005;bgb
 003F  E8 0063 R			    call    read_once		;an000;read it				;an005;bgb
				;	$LEAVE	C								;an005;bgb
 0042  72 16				JC $$EN1
 0044  8C C1				    mov     cx,es							;an005;bgb
 0046  03 0E 0000 E			    add     cx,paras_per_64k	; adjust transfer area			;an005;bgb
 004A  8E C1				    mov     es,cx							;an005;bgb
 004C  8B 0E 0000 E			    mov     cx,sec_count	; restore sector count			;an005;bgb
 0050  2B 0E 0000 E			    sub     cx,secs_per_64k	;an000;get sectors remaining		;an005;bgb
 0054  03 16 0000 E			    add     dx,secs_per_64k	;an000;adjust starting sector		;an005;bgb
				;	$ENDDO									;an005;bgb
 0058  EB D7				JMP SHORT $$DO1
 005A				$$EN1:
 005A  E8 0063 R			call	read_once	    ;an000;read it				;an005;bgb
					restorereg <es,dx,cx,bx,ax>
			     1	IRP reg,<es,dx,cx,bx,ax> 
			     1		?stackdepth = ?stackdepth - 1 
			     1		POP     reg 
			     1	ENDM 
 = 0004                      2		?stackdepth = ?stackdepth - 1 
 005D  07                    2		POP     es 
 = 0003                      2		?stackdepth = ?stackdepth - 1 
 005E  5A                    2		POP     dx 
 = 0002                      2		?stackdepth = ?stackdepth - 1 
 005F  59                    2		POP     cx 
 = 0001                      2		?stackdepth = ?stackdepth - 1 
 0060  5B                    2		POP     bx 
 = 0000                      2		?stackdepth = ?stackdepth - 1 
 0061  58                    2		POP     ax 
 0062  C3				ret									;an005;bgb
 0063				read_disk	endp								 ;an005;bgb
														;an005;bgb
														;an005;bgb
				;*****************************************************************************	;an005;bgb
				;Routine name: Read_once							;an005;bgb
				;*****************************************************************************	;an005;bgb
				;										;an005;bgb
				;description: Read in data using Generic IOCtl					;an005;bgb
				;										;an005;bgb
				;Called Procedures: None							;an005;bgb
				;										;an005;bgb
				;										;an005;bgb
				;Change History: Created	5/13/87 	MT				;an005;bgb
				;										;an005;bgb
				;Input: AL = Drive number (0=A) 						;an005;bgb
				;	DS:BX = Transfer address						;an005;bgb
				;	CX = Number of sectors							;an005;bgb
				;	Read_Write_Relative.Start_Sector_High = Number of sectors high		;an005;bgb
				;	DX = logical sector number low						;an005;bgb
				;										;an005;bgb
				;Output: CY if error								;an005;bgb
				;	 AH = INT 25h error code						;an005;bgb
				;										;an005;bgb
				;Psuedocode									;an005;bgb
				;----------									;an005;bgb
				;	Save registers								;an005;bgb
				;	Setup structure for function call					;an005;bgb
				;	Read the disk (AX=440Dh, CL = 6Fh)					;an005;bgb
				;	Restore registers							;an005;bgb
				;	ret									;an005;bgb
				;*****************************************************************************	;an005;bgb
				Procedure Read_once				;				;an005;bgb
			     1							; 
			     1	Public	Read_once				;				;AN000; 
 0063                        1	Read_once    proc				;				;AN000; 
			     1							; 
					savereg  <ax,bx,cx,dx,si,di,bp,es,ds>	;Change it to Read relative sect;an005;bgb
			     1	IRP reg,<ax,bx,cx,dx,si,di,bp,es,ds> 
			     1		?stackdepth = ?stackdepth + 1 
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Page     1-3
system call definitions                                     

			     1		PUSH    reg 
			     1	ENDM 
 = 0001                      2		?stackdepth = ?stackdepth + 1 
 0063  50                    2		PUSH    ax 
 = 0002                      2		?stackdepth = ?stackdepth + 1 
 0064  53                    2		PUSH    bx 
 = 0003                      2		?stackdepth = ?stackdepth + 1 
 0065  51                    2		PUSH    cx 
 = 0004                      2		?stackdepth = ?stackdepth + 1 
 0066  52                    2		PUSH    dx 
 = 0005                      2		?stackdepth = ?stackdepth + 1 
 0067  56                    2		PUSH    si 
 = 0006                      2		?stackdepth = ?stackdepth + 1 
 0068  57                    2		PUSH    di 
 = 0007                      2		?stackdepth = ?stackdepth + 1 
 0069  55                    2		PUSH    bp 
 = 0008                      2		?stackdepth = ?stackdepth + 1 
 006A  06                    2		PUSH    es 
 = 0009                      2		?stackdepth = ?stackdepth + 1 
 006B  1E                    2		PUSH    ds 
 006C  89 1E 0006 E			mov	Read_Write_Relative.Buffer_Offset,bx ;Get transfer buffer add	 ;an005;bgb
 0070  8C C3				mov	bx,es				;				;AN005;bgb
 0072  89 1E 0008 E			mov	Read_Write_Relative.Buffer_Segment,bx ;Get segment		;an005;bgb
 0076  89 0E 0004 E			mov	Read_Write_Relative.Number_Sectors,cx ;Number of sec to read	;an005;bgb
 007A  89 16 0000 E			mov	Read_Write_Relative.Start_Sector_Low,dx ;Start sector		;an005;bgb
 007E  BB 0000 E			mov	bx,offset Read_Write_Relative	;				;an005;bgb
 0081  B9 FFFF				mov	cx,0FFFFh			;Read relative sector		;an005;bgb
 0084  CD 25				INT	25h				;Do the read			;an005;bgb
 0086  5A				pop dx					;Throw away flags on stack	;an005;bgb
					restorereg <ds,es,bp,di,si,dx,cx,bx,ax> 				;an005;bgb
			     1	IRP reg,<ds,es,bp,di,si,dx,cx,bx,ax> 
			     1		?stackdepth = ?stackdepth - 1 
			     1		POP     reg 
			     1	ENDM 
 = 0008                      2		?stackdepth = ?stackdepth - 1 
 0087  1F                    2		POP     ds 
 = 0007                      2		?stackdepth = ?stackdepth - 1 
 0088  07                    2		POP     es 
 = 0006                      2		?stackdepth = ?stackdepth - 1 
 0089  5D                    2		POP     bp 
 = 0005                      2		?stackdepth = ?stackdepth - 1 
 008A  5F                    2		POP     di 
 = 0004                      2		?stackdepth = ?stackdepth - 1 
 008B  5E                    2		POP     si 
 = 0003                      2		?stackdepth = ?stackdepth - 1 
 008C  5A                    2		POP     dx 
 = 0002                      2		?stackdepth = ?stackdepth - 1 
 008D  59                    2		POP     cx 
 = 0001                      2		?stackdepth = ?stackdepth - 1 
 008E  5B                    2		POP     bx 
 = 0000                      2		?stackdepth = ?stackdepth - 1 
 008F  58                    2		POP     ax 
					return									;an005;bgb
			     1	.xcref 
 0090                        1	??0000: 
 0090  C3                    1		RET 
 = 0090                      1	ret_l = ??0000 
			     1	.cref 
 0091				 Read_once endp 								;an005;bgb
														;an005;bgb
														;an005;bgb
				;=========================================================================	;an005;bgb
				; WRITE-DISK	:	This routine reads the logical sector count requested.	;an005;bgb
				;			It will read a maximum of 64k in one read.  If more	;an005;bgb
				;			than 64k exists it will continue looping until		;an005;bgb
				;			all sectors have been read.				;an005;bgb
				;										;an005;bgb
				;	Inputs	:	AL - Drive letter					;an005;bgb
				;			ES:BX - Segment:offset of transfer address		;an005;bgb
				;			CX - Sector count					;an005;bgb
				;			DX - 1st  sector					;an005;bgb
				;										;an005;bgb
				;	Outputs :	Logical sectors read					;an005;bgb
				; LOGIC 									;an005;bgb
				; ***** 									;an005;bgb
				;    adjust es:bx to es:00							;an005;bgb
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Page     1-4
system call definitions                                     

				;    calcluate sectors-per-64k (how many sectors are there that can fit within a 64k segment?)
				;    DO while there are more sectors to read than sectors-per-64k		;an005;bgb
				;	set sector-count to sectors-per-64k					;an005;bgb
				;	perform the disk read							;an005;bgb
				;	bump the seg addr to the new addr					;an005;bgb
				;	dec  the number of sectors to read by sectors-per-64k			;an005;bgb
				;	bump the starting sector number by the sectors-per-64k			;an005;bgb
				;    ENDDO									;an005;bgb
				;    perform a disk read for less than sectors-per-64k				;an005;bgb
				;=========================================================================	;an005;bgb
				procedure      write_disk							;an005;bgb
			     1							; 
			     1	Public	write_disk				;				;AN000; 
 0091                        1	write_disk    proc				;				;AN000; 
			     1							; 
 0091  89 2E 0002 E			mov	Read_Write_Relative.Start_Sector_High,bp;		       ;;an027;bgb;an023;bgb
 0095  E8 00F4 R			call	seg_adj 		;an000;calc new seg:off 		;an005;bgb
				;	$DO				; do while more than 64k		;an005;bgb
 0098				$$DO5:
 0098  3B 0E 0000 E			    cmp     cx,secs_per_64k	;an000;exceed 64k			;an005;bgb
				;	$LEAVE	LE			;an000;yes				;an005;bgb
 009C  7E 23				JLE $$EN5
 009E  89 0E 0000 E			    mov     sec_count,cx	;an000;save cx				;an005;bgb
 00A2  8B 0E 0000 E			    mov     cx,secs_per_64k	;an000;get maximum read 		;an005;bgb
 00A6  E8 00C5 R			    call   write_once		;an000;read it				;an005;bgb
				;	$LEAVE	C								;an005;bgb
 00A9  72 16				JC $$EN5
 00AB  8C C1				    mov     cx,es							;an005;bgb
 00AD  03 0E 0000 E			    add     cx,paras_per_64k	; adjust transfer area			;an005;bgb
 00B1  8E C1				    mov     es,cx							;an005;bgb
 00B3  8B 0E 0000 E			    mov     cx,sec_count	; restore sector count			;an005;bgb
 00B7  2B 0E 0000 E			    sub     cx,secs_per_64k	;an000;get sectors remaining		;an005;bgb
 00BB  03 16 0000 E			    add     dx,secs_per_64k	;an000;adjust starting sector		;an005;bgb
				;	$ENDDO									;an005;bgb
 00BF  EB D7				JMP SHORT $$DO5
 00C1				$$EN5:
 00C1  E8 00C5 R			call	write_once		;an000;read it				;an005;bgb
 00C4  C3				ret									;an005;bgb
 00C5				write_disk	endp								;an005;bgb
														;an005;bgb
				;*****************************************************************************
				;Routine name: Write_Once
				;*****************************************************************************
				;
				;description: Write Data using int 26
				;
				;Called Procedures: None
				;
				;
				;Change History: Created	5/13/87 	MT
				;
				;Input: AL = Drive number (0=A)
				;	DS:BX = Transfer address
				;	CX = Number of sectors
				;	Read_Write_Relative.Start_Sector_High = Number of sectors high
				;	DX = logical sector number low
				;
				;Output: CY if error
				;	 AH = INT 26h error code
				;
				;Psuedocode
				;----------
				;	Save registers
				;	Setup structure for function call
				;	Write to disk (AX=440Dh, CL = 4Fh)
				;	Restore registers
				;	ret
				;*****************************************************************************
				Procedure Write_once				 ;				;AN000;bgb
			     1							; 
			     1	Public	Write_once				;				;AN000; 
 00C5                        1	Write_once    proc				;				;AN000; 
			     1							; 
				    savereg <ax,bx,cx,dx,di,si,bp,es,ds>	 ;This is setup for INT 26h right;AN000;bgb
			     1	IRP reg,<ax,bx,cx,dx,di,si,bp,es,ds> 
			     1		?stackdepth = ?stackdepth + 1 
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Page     1-5
system call definitions                                     

			     1		PUSH    reg 
			     1	ENDM 
 = 0001                      2		?stackdepth = ?stackdepth + 1 
 00C5  50                    2		PUSH    ax 
 = 0002                      2		?stackdepth = ?stackdepth + 1 
 00C6  53                    2		PUSH    bx 
 = 0003                      2		?stackdepth = ?stackdepth + 1 
 00C7  51                    2		PUSH    cx 
 = 0004                      2		?stackdepth = ?stackdepth + 1 
 00C8  52                    2		PUSH    dx 
 = 0005                      2		?stackdepth = ?stackdepth + 1 
 00C9  57                    2		PUSH    di 
 = 0006                      2		?stackdepth = ?stackdepth + 1 
 00CA  56                    2		PUSH    si 
 = 0007                      2		?stackdepth = ?stackdepth + 1 
 00CB  55                    2		PUSH    bp 
 = 0008                      2		?stackdepth = ?stackdepth + 1 
 00CC  06                    2		PUSH    es 
 = 0009                      2		?stackdepth = ?stackdepth + 1 
 00CD  1E                    2		PUSH    ds 
 00CE  89 1E 0006 E		    mov  Read_Write_Relative.Buffer_Offset,bx	 ;Get transfer buffer add	;AN000;bgb
 00D2  8C C3			    mov  bx,es					 ;				;AN005;bgb
 00D4  89 1E 0008 E		    mov  Read_Write_Relative.Buffer_Segment,bx	 ;Get segment			;AN000;bgb
 00D8  89 0E 0004 E		    mov  Read_Write_Relative.Number_Sectors,cx	 ;Number of sec to write	;AN000;bgb
 00DC  89 16 0000 E		    mov  Read_Write_Relative.Start_Sector_Low,dx ;Start sector			;AN000;bgb
 00E0  B9 FFFF			    mov  cx,0FFFFh				 ;Write relative sector 	;AN000;bgb
 00E3  8D 1E 0000 E		    lea  bx,read_write_relative 		 ;
 00E7  CD 26			    INT  026h					 ;Do the write			;AN000;bgb
 00E9  5A			    pop  dx					 ;flags is returned on the stack;AN000;bgb
				    restorereg <ds,es,bp,si,di,dx,cx,bx,ax>	 ;				;AN000;bgb
			     1	IRP reg,<ds,es,bp,si,di,dx,cx,bx,ax> 
			     1		?stackdepth = ?stackdepth - 1 
			     1		POP     reg 
			     1	ENDM 
 = 0008                      2		?stackdepth = ?stackdepth - 1 
 00EA  1F                    2		POP     ds 
 = 0007                      2		?stackdepth = ?stackdepth - 1 
 00EB  07                    2		POP     es 
 = 0006                      2		?stackdepth = ?stackdepth - 1 
 00EC  5D                    2		POP     bp 
 = 0005                      2		?stackdepth = ?stackdepth - 1 
 00ED  5E                    2		POP     si 
 = 0004                      2		?stackdepth = ?stackdepth - 1 
 00EE  5F                    2		POP     di 
 = 0003                      2		?stackdepth = ?stackdepth - 1 
 00EF  5A                    2		POP     dx 
 = 0002                      2		?stackdepth = ?stackdepth - 1 
 00F0  59                    2		POP     cx 
 = 0001                      2		?stackdepth = ?stackdepth - 1 
 00F1  5B                    2		POP     bx 
 = 0000                      2		?stackdepth = ?stackdepth - 1 
 00F2  58                    2		POP     ax 
 00F3  C3				ret					 ;				;AN000;bgb
 00F4				Write_once endp 				 ;				;AN000;bgb
				
				;=========================================================================	;an005;bgb
				; SEG_ADJ	:	This routine adjusts the segment:offset to prevent	;an005;bgb
				;			address wrap.						;an005;bgb
				;										;an005;bgb
				;	Inputs	:	bx - Offset to adjust segment with			;an005;bgb
				;			es - Segment to be adjusted				;an005;bgb
				;										;an005;bgb
				;	Outputs :	bx - New offset 					;an005;bgb
				;			es - Adjusted segment					;an005;bgb
				;=========================================================================	;an005;bgb
				procedure	seg_adj 							;an005;bgb
			     1							; 
			     1	Public	seg_adj				;				;AN000; 
 00F4                        1	seg_adj    proc				;				;AN000; 
			     1							; 
					savereg <ax,cx,dx>							;an005;bgb
			     1	IRP reg,<ax,cx,dx> 
			     1		?stackdepth = ?stackdepth + 1 
			     1		PUSH    reg 
			     1	ENDM 
 = 0001                      2		?stackdepth = ?stackdepth + 1 
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Page     1-6
system call definitions                                     

 00F4  50                    2		PUSH    ax 
 = 0002                      2		?stackdepth = ?stackdepth + 1 
 00F5  51                    2		PUSH    cx 
 = 0003                      2		?stackdepth = ?stackdepth + 1 
 00F6  52                    2		PUSH    dx 
 00F7  8B C3				mov	ax,bx				;an000;get offset		;an005;bgb
 00F9  BB 0010				mov	bx,0010h			;divide by 16			;an005;bgb
 00FC  33 D2				xor	dx,dx				;an000;clear dx 		;an005;bgb
 00FE  F7 F3				div	bx				;an000;get para count		;an005;bgb
 0100  8C C3				mov	bx,es				;an000;get seg			;an005;bgb
 0102  03 D8				add	bx,ax				;an000;adjust for paras 	;an005;bgb
 0104  8E C3				mov	es,bx				;an000;save new seg		;an005;bgb
 0106  8B DA				mov	bx,dx				;an000;new offset		;an005;bgb
					restorereg <dx,cx,ax>							;an005;bgb
			     1	IRP reg,<dx,cx,ax> 
			     1		?stackdepth = ?stackdepth - 1 
			     1		POP     reg 
			     1	ENDM 
 = 0002                      2		?stackdepth = ?stackdepth - 1 
 0108  5A                    2		POP     dx 
 = 0001                      2		?stackdepth = ?stackdepth - 1 
 0109  59                    2		POP     cx 
 = 0000                      2		?stackdepth = ?stackdepth - 1 
 010A  58                    2		POP     ax 
 010B  C3				ret									;an005;bgb
 010C				seg_adj 	endp								;an005;bgb
														;an005;bgb
														;an005;bgb
				;=========================================================================	;an005;bgb
				; SECS_PER_64K	:	This routine calculates how many sectors, for this	;an005;bgb
				;			particular media, will fit into 64k.			;an005;bgb
				;										;an005;bgb
				;	Inputs	:	DPB_SECTOR_SIZE - bytes/sector				;an005;bgb
				;										;an005;bgb
				;	Outputs :	SECS_PER_64K	- Sectors / 64k 			;an005;bgb
				;			PARAS_PER_64K	- paragraphs per 64k			;an005;bgb
				;=========================================================================	;an005;bgb
				procedure	calc_sp64k							;an005;bgb
			     1							; 
			     1	Public	calc_sp64k				;				;AN000; 
 010C                        1	calc_sp64k    proc				;				;AN000; 
			     1							; 
					savereg <ax,bx,cx,dx>							;an005;bgb
			     1	IRP reg,<ax,bx,cx,dx> 
			     1		?stackdepth = ?stackdepth + 1 
			     1		PUSH    reg 
			     1	ENDM 
 = 0001                      2		?stackdepth = ?stackdepth + 1 
 010C  50                    2		PUSH    ax 
 = 0002                      2		?stackdepth = ?stackdepth + 1 
 010D  53                    2		PUSH    bx 
 = 0003                      2		?stackdepth = ?stackdepth + 1 
 010E  51                    2		PUSH    cx 
 = 0004                      2		?stackdepth = ?stackdepth + 1 
 010F  52                    2		PUSH    dx 
 0110  B8 FFFF				mov	ax,0ffffh			;an000;64k			;an005;bgb
 0113  8B 1E 0000 E			mov	bx,bytes_per_sector		;an000;get bytes/sector 	;an005;bgb
 0117  33 D2				xor	dx,dx				;an000;clear dx 		;an005;bgb
 0119  F7 F3				div	bx				;an000;sector count		;an005;bgb
 011B  A3 0000 E			mov	secs_per_64k,ax 		;an000;save sector count	;an005;bgb
 011E  A1 0000 E			mov	ax,bytes_per_sector		;an000;get bytes/sector 	;an005;bgb
 0121  BB 0010				mov	bx,010h 			; divide by paras		;an005;bgb
 0124  33 D2				xor	dx,dx				;an000;clear dx 		;an005;bgb
 0126  F7 F3				div	bx				; paras per sector		;an005;bgb
 0128  F7 26 0000 E			mul	secs_per_64k			; times sectors 		;an005;bgb
 012C  A3 0000 E			mov	paras_per_64k,ax		; = paras per 64k		;an005;bgb
					restorereg <dx,cx,bx,ax>		;an000;restore dx		;an005;bgb
			     1	IRP reg,<dx,cx,bx,ax> 
			     1		?stackdepth = ?stackdepth - 1 
			     1		POP     reg 
			     1	ENDM 
 = 0003                      2		?stackdepth = ?stackdepth - 1 
 012F  5A                    2		POP     dx 
 = 0002                      2		?stackdepth = ?stackdepth - 1 
 0130  59                    2		POP     cx 
 = 0001                      2		?stackdepth = ?stackdepth - 1 
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Page     1-7
system call definitions                                     

 0131  5B                    2		POP     bx 
 = 0000                      2		?stackdepth = ?stackdepth - 1 
 0132  58                    2		POP     ax 
 0133  C3				ret					;an000; 			;an005;bgb
 0134				calc_sp64k	endp				;an000; 			;an005;bgb
				
				
				;*****************************************************************************
				;Routine name: Build_String
				;*****************************************************************************
				;
				;Description: Build AN ASCIIZ string from the FCB filename input.
				;
				;Called Procedures: None
				;
				;ChANge History: Created	6/29/87 	MT
				;
				;Input: DS:SI = String containing FCB input
				;	ES:DI = Where to build string
				;
				;Output: ES:DI = Input string starting at first non-blANk charACter
				;
				;Psuedocode
				;----------
				;
				;	Save regs
				;	DO
				;	LEAVE Next charACter is 0,OR
				;	LEAVE 12th charACter,OR
				;	   Get charACter
				;	LEAVE BlANk
				;	   Inc counter
				;	ENDDO
				;	Set next charACter to 0
				;	Restore regs
				;
				;*****************************************************************************
				
				Procedure Build_String				;				;AN000;
			     1							; 
			     1	Public	Build_String				;				;AN000; 
 0134                        1	Build_String    proc				;				;AN000; 
			     1							; 
 0134  FC				cld					;Set string ops to up		;AN000;
 0135  50				push	ax				;Save registers 		;AN000;
 0136  51				push	cx				;  "  "    "  " 		;AN000;
 0137  56				push	si				;Save pointer reg		;AN000;
 0138  33 C9				xor	cx,cx				;Init the counter		;AN000;
				;	$DO					;Loop until entire string found ;AN000;
 013A				$$DO9:
 013A  80 3C 00				   cmp	   byte ptr [si],ASCIIZ_END	;Is next charACter 0?		;AN000;
				;	$LEAVE	E,OR				;Yes, end loop			;AN000;
 013D  74 0E				JE $$EN9
 013F  83 F9 0B				   cmp	   cx,FCB_Filename_Length	;Looked at 11 chars?		;AN000;
				;	$LEAVE	E,OR				;Yes, end of string		;AN000;
 0142  74 09				JE $$EN9
 0144  AC				   lodsb				;Nope, get charACter		;AN000;
 0145  3C 20				   cmp	   al,BlANk			;Find end of filename?		;AN000;
				;	$LEAVE	E				;Yes, quit looping		;AN000;
 0147  74 04				JE $$EN9
 0149  AA				   stosb				;Move the char
 014A  41				   inc	   cx				;No, inc counter ANd try next	;AN000;
				;	$ENDDO					;				;AN000;
 014B  EB ED				JMP SHORT $$DO9
 014D				$$EN9:
 014D  C6 05 00				mov	byte ptr [di],ASCIIZ_END	;Make ASCIIZ string		;AN000;
 0150  5E				pop	si				;Get bACk pointer to string	;AN000;
 0151  59				pop	cx				;Restore regsisters		;AN000;
 0152  58				pop	ax				; "  "	  "  "			;AN000;
 0153  C3				ret					;				;AN000;
 0154				Build_String endp				;				;AN000;
				
				;*****************************************************************************
				;Routine name: ChANge_BlANks
				;*****************************************************************************
				;
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Page     1-8
system call definitions                                     

				;Description: ReplACe all DBCS blANks with SBCS blANks
				;
				;Called Procedures: Check_DBCS_CharACter
				;
				;ChANge History: Created	6/12/87 	MT
				;
				;Input: DS:SI = ASCIIZ string containing volume label input
				;
				;Output: DS:SI = ASCIIZ string with all DBCS blANks replACed with 2 SBCS blANks
				;
				;
				;Psuedocode
				;----------
				;
				;	Save pointer to string
				;	DO
				;	LEAVE End of string (0)
				;	   See if DBCS charACter (Check_DBCS_CharACter)
				;	   IF CY (DBCS char found)
				;	      IF first byte DBCS blANk, AND
				;	      IF second byte DBCS blANk
				;		 Convert to SBCS blANks
				;	      ENDIF
				;	      Point to next byte to compensate for DBCS charACter
				;	   ENDIF
				;	ENDDO
				;	Restore pointer to string
				;
				;*****************************************************************************
				Procedure ChANge_BlANks 			;				;AN000;
			     1							; 
			     1	Public	ChANge_BlANks				;				;AN000; 
 0154                        1	ChANge_BlANks    proc				;				;AN000; 
			     1							; 
				;	$DO					;Do while not CR		;AN000;
 0154				$$DO12:
 0154  80 3C 00				   cmp	   byte ptr [si],Asciiz_End	;Is it end of string?		;AN000;
				;	$LEAVE	E				;All done if so 		;AN000;
 0157  74 1B				JE $$EN12
 0159  E8 0175 R			   call    Check_DBCS_CharACter 	;Test for dbcs lead byte	;AN000;
				;	   $IF	   C				;We have a lead byte		;AN000;
 015C  73 13				   JNC $$IF14
 015E  80 3C 81				      cmp     byte ptr [si],DBCS_Lead	;Is it a lead blANk?		;AN000;
				;	      $IF     E,AND			;If a dbcs char 		;AN000;
 0161  75 0D				      JNE $$IF15
 0163  80 7C 01 40			      cmp     byte ptr [si+1],DBCS_BlANk ;Is it AN AsiAN blANk?    ;AN000;
				;	      $IF     E 			;If AN AsiAN blANk		     ;AN000;
 0167  75 07				      JNE $$IF15
 0169  C6 44 01 20				 mov	 byte ptr [si+1],BlANk	;set up moves		      ;AN000;
 016D  C6 04 20					 mov	 byte ptr [si],BlANk	;  to replACe			;AN000;
				;	      $ENDIF				;				     ;AN000;
 0170				$$IF15:
 0170  46				      inc     si			;Point to dbcs char		;AN000;
				;	   $ENDIF				;End lead byte test		;AN000;
 0171				$$IF14:
 0171  46				   inc	   si				;Point to si+1			;AN000;
				;	$ENDDO					;End do while			;AN000;
 0172  EB E0				JMP SHORT $$DO12
 0174				$$EN12:
 0174  C3				ret					;return to caller		;AN000;
 0175				ChANge_BlANks endp				;				;AN000;
				
				
				;*****************************************************************************
				;Routine name: Check_DBCS_CharACter
				;*****************************************************************************
				;
				;Description: Check if specified byte is in rANges of DBCS vectors
				;
				;Called Procedures: None
				;
				;ChANge History: Created	6/12/87 	MT
				;
				;Input: AL = CharACter to check for DBCS lead charACter
				;	DBCS_Vector = YES/NO
				;
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Page     1-9
system call definitions                                     

				;Output: CY set if DBCS charACter
				;	 DBCS_VECTOR = YES
				;
				;
				;Psuedocode
				;----------
				;	Save registers
				;	IF DBCS vector not found
				;	   Get DBCS environmental vector (INT 21h
				;	   Point at first set of vectors
				;	ENDIF
				;	SEARCH
				;	LEAVE End of DBCS vectors
				;	EXITIF CharACter > X1,AND  (X1,Y1) are environment vectors
				;	EXITIF CharACter < Y1
				;	  STC (DBCS charACter)
				;	ORELSE
				;	   Inc pointer to next set of vectors
				;	ENDLOOP
				;	   CLC (Not DBCS charACter)
				;	ENDSRCH
				;	Restore registers
				;	ret
				;*****************************************************************************
				Procedure	Check_DBCS_CharACter		      ; 			      ;AN000;
			     1							; 
			     1	Public	Check_DBCS_CharACter				;				;AN000; 
 0175                        1	Check_DBCS_CharACter    proc				;				;AN000; 
			     1							; 
 0175  1E				push	ds				;Save registers 		;AN000;
 0176  56				push	si				; "  "	  "  "			;AN000;
 0177  50				push	ax				; "  "	  "  "			;AN000;
 0178  1E				push	ds				; "  "	  "  "			;AN000;
 0179  07				pop	es				;Establish addressability	;AN000;
 017A  26: 80 3E 0000 E FF		cmp	byte ptr es:DBCS_VECTOR,Yes	;Have we set this yet?		;AN000;
 0180  50				push	ax				;Save input charACter		;AN000;
				;	$IF	NE				;Nope				;AN000;
 0181  74 17				JE $$IF19
 0183  B0 00				   mov	   al,0 			;Get DBCS environment vectors	;AN000;
					   DOS_Call Hongeul			;  "  "    "  " 		;AN000;
			     1							; 
 0185  B4 63                 1		mov	ah,Hongeul			;				;AN000; 
 0187  CD 21                 1		int	21h				;				;AN000; 
			     1							; 
 0189  26: C6 06 0000 E FF		   mov	   byte ptr es:DBCS_VECTOR,YES	;Indicate we've got vector      ;AN000;
 018F  26: 89 36 0000 E			   mov	   es:DBCS_Vector_Off,si	;Save the vector		;AN000;
 0194  8C D8				   mov	   ax,ds			;				;AN000;
 0196  26: A3 0000 E			   mov	   es:DBCS_Vector_Seg,ax	;				;AN000;
				;	$ENDIF					; for next time in		;AN000;
 019A				$$IF19:
 019A  58				pop	ax				;Restore input charACter	;AN000;
 019B  26: 8B 36 0000 E			mov	si,es:DBCS_Vector_Seg		;Get saved vector pointer	;AN000;
 01A0  8E DE				mov	ds,si				;				;AN000;
 01A2  26: 8B 36 0000 E			mov	si,es:DBCS_Vector_Off		;				;AN000;
				;	$SEARCH 				;Check all the vectors		;AN000;
 01A7				$$DO21:
 01A7  83 3C 00				   cmp	   word ptr ds:[si],End_Of_Vector ;End of vector table? 	  ;AN000;
				;	$LEAVE	E				;Yes, done			;AN000;
 01AA  74 11				JE $$EN21
 01AC  3A 04				   cmp	   al,ds:[si]			;See if char is in vector	;AN000;
				;	$EXITIF AE,AND				;If >= to lower, ANd		;AN000;
 01AE  72 08				JNAE $$IF21
 01B0  3A 44 01				   cmp	   al,ds:[si+1] 		; =< thAN higher rANge		;AN000;
				;	$EXITIF BE				; then DBCS charACter		;AN000;
 01B3  77 03				JNBE $$IF21
 01B5  F9				   stc					;Set CY to indicate DBCS	;AN000;
				;	$ORELSE 				;Not in rANge, check next	;AN000;
 01B6  EB 06				JMP SHORT $$SR21
 01B8				$$IF21:
 01B8  83 C6 02				   add	   si,DBCS_Vector_Size	     ;Get next DBCS vector	     ;AN000;
				;	$ENDLOOP				;We didn't find DBCS char       ;AN000;
 01BB  EB EA				JMP SHORT $$DO21
 01BD				$$EN21:
 01BD  F8				   clc					;Clear CY for exit		;AN000;
				;	$ENDSRCH				;				;AN000;
 01BE				$$SR21:
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Page     1-10
system call definitions                                     

 01BE  58				pop	ax				;Restore registers		;AN000;
 01BF  5E				pop	si				; "  "	  "  "			;AN000;
 01C0  1F				pop	ds				;Restore data segment		;AN000;
 01C1  C3				ret					;				;AN000;
 01C2				Check_DBCS_CharACter endp			;				;AN000;
				
					pathlabl recproc
 01C2				code	ends
					end

Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Symbols-1


Macros:

		N a m e			Lines

ARGVAR . . . . . . . . . . . . .  	  23
ASMVAR . . . . . . . . . . . . .  	   3
ASMVARS  . . . . . . . . . . . .  	   3
ASSERT . . . . . . . . . . . . .  	   0
CALLINSTALL  . . . . . . . . . .  	  12
DOSASSUME  . . . . . . . . . . .  	   3
DOS_CALL . . . . . . . . . . . .  	   4
ENTER  . . . . . . . . . . . . .  	   3
ENTERCRIT  . . . . . . . . . . .  	   1
ERRNZ  . . . . . . . . . . . . .  	   4
EXTENDED_MESSAGE . . . . . . . .  	   8
FMT  . . . . . . . . . . . . . .  	   0
LEAVE  . . . . . . . . . . . . .  	   2
LEAVECRIT  . . . . . . . . . . .  	   1
LOCALVAR . . . . . . . . . . . .  	  23
MESSAGE  . . . . . . . . . . . .  	   3
PARSE_MESSAGE  . . . . . . . . .  	   8
PATHLABL . . . . . . . . . . . .  	  10
POPFF  . . . . . . . . . . . . .  	   4
SET_DATA_SEGMENT . . . . . . . .  	   7

Structures and Records:

                N a m e                 Width   # fields
                                        Shift   Width   Mask    Initial

ARENA  . . . . . . . . . . . . .  	0010	0005
  ARENA_SIGNATURE  . . . . . . .  	0000
  ARENA_OWNER  . . . . . . . . .  	0001
  ARENA_SIZE . . . . . . . . . .  	0003
  ARENA_RESERVED . . . . . . . .  	0005
  ARENA_NAME . . . . . . . . . .  	0008
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
A_DEVICEPARAMETERS . . . . . . .  	0026	0012
  SPECIALFUNCTIONS . . . . . . .  	0000
  DEVICETYPE . . . . . . . . . .  	0001
  DEVICEATTRIBUTES . . . . . . .  	0002
  NUMBEROFCYLINDERS  . . . . . .  	0004
  MEDIATYPE  . . . . . . . . . .  	0006
  BYTEPERSECTOR  . . . . . . . .  	0007
  SECTORSPERCLUSTER  . . . . . .  	0009
  RESERVEDSECTORS  . . . . . . .  	000A
  NUMBEROFFATS . . . . . . . . .  	000C
  ROOTENTRIES  . . . . . . . . .  	000D
  TOTALSECTORS . . . . . . . . .  	000F
  MEDIADESCRIPTOR  . . . . . . .  	0011
  SECTORSPERFAT  . . . . . . . .  	0012
  SECTORSPERTRACK  . . . . . . .  	0014
  HEADS  . . . . . . . . . . . .  	0016
  HIDDENSECTORS  . . . . . . . .  	0018
  EXT_TOTAL_SECTORS  . . . . . .  	001C
  RESERVED_AREA  . . . . . . . .  	0020
BPBLOCK  . . . . . . . . . . . .  	000D	0008
  BPSECSZ  . . . . . . . . . . .  	0000
  BPCLUS . . . . . . . . . . . .  	0002
  BPRES  . . . . . . . . . . . .  	0003
  BPFTCNT  . . . . . . . . . . .  	0005
  BPDRCNT  . . . . . . . . . . .  	0006
  BPSCCNT  . . . . . . . . . . .  	0008
  BPMEDIA  . . . . . . . . . . .  	000A
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Symbols-2


  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
  EMS_PAGEFRAME_NUMBER . . . . .  	001A
  EMS_SEG_CNT  . . . . . . . . .  	001C
  EMS_PAGE_FRAME . . . . . . . .  	001E
  EMS_RESERVED . . . . . . . . .  	0020
  EMS_MAP_BUFF . . . . . . . . .  	0022
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
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
DPB  . . . . . . . . . . . . . .  	0021	0012
  DPB_DRIVE  . . . . . . . . . .  	0000
  DPB_UNIT . . . . . . . . . . .  	0001
  DPB_SECTOR_SIZE  . . . . . . .  	0002
  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
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Symbols-3


  EXEC1_CS . . . . . . . . . . .  	0014
EXEC3  . . . . . . . . . . . . .  	0004	0002
  EXEC3_LOAD_ADDR  . . . . . . .  	0000
  EXEC3_RELOC_FAC  . . . . . . .  	0002
EXEC_BLOCK_PARMS . . . . . . . .  	000E	0007
  SEGMENT_ENV  . . . . . . . . .  	0000
  OFFSET_COMMAND . . . . . . . .  	0002
  SEGMENT_COMMAND  . . . . . . .  	0004
  OFFSET_FCB1  . . . . . . . . .  	0006
  SEGMENT_FCB1 . . . . . . . . .  	0008
  OFFSET_FCB2  . . . . . . . . .  	000A
  SEGMENT_FCB2 . . . . . . . . .  	000C
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
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
MEDIA_ID . . . . . . . . . . . .  	0019	0004
  MEDIA_ID_INFO_LEVEL  . . . . .  	0000
  MEDIA_ID_SERIAL_NUMBER . . . .  	0002
  MEDIA_ID_VOLUME_LABEL  . . . .  	0006
  MEDIA_ID_FILE_SYSTEM . . . . .  	0011
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
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Symbols-4


  PDB_CALL_SYSTEM  . . . . . . .  	0050
  PDB_PAD2 . . . . . . . . . . .  	0055
RELATIVE_SECTOR_BUFFER . . . . .  	000A	0005
  START_SECTOR_LOW . . . . . . .  	0000
  START_SECTOR_HIGH  . . . . . .  	0002
  NUMBER_SECTORS . . . . . . . .  	0004
  BUFFER_OFFSET  . . . . . . . .  	0006
  BUFFER_SEGMENT . . . . . . . .  	0008
SF . . . . . . . . . . . . . . .  	0008	0003
  SFLINK . . . . . . . . . . . .  	0000
  SFCOUNT  . . . . . . . . . . .  	0004
  SFTABLE  . . . . . . . . . . .  	0006
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
  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
SYMBOL_ENTRY . . . . . . . . . .  	0106	0004
  SYM_VALUE  . . . . . . . . . .  	0000
  SYM_TYPE . . . . . . . . . . .  	0004
  SYM_LEN  . . . . . . . . . . .  	0006
  SYM_NAME . . . . . . . . . . .  	0007
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
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Symbols-5


  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
  USER_BP  . . . . . . . . . . .  	000C
  USER_DS  . . . . . . . . . . .  	000E
  USER_ES  . . . . . . . . . . .  	0010
  USER_IP  . . . . . . . . . . .  	0012
  USER_CS  . . . . . . . . . . .  	0014
  USER_F . . . . . . . . . . . .  	0016
XAL  . . . . . . . . . . . . . .  	0200	0005
  XAL_TSIZE  . . . . . . . . . .  	0000
  XAL_TCOUNT . . . . . . . . . .  	0002
  XAL_LSIZE  . . . . . . . . . .  	0004
  XAL_LCOUNT . . . . . . . . . .  	0006
  XAL_DATA . . . . . . . . . . .  	0008

Segments and Groups:

                N a m e         	Length	 Align	Combine Class

DG . . . . . . . . . . . . . . .  	GROUP
  DATA . . . . . . . . . . . . .  	0000	PARA	PUBLIC	'DATA'
  CONST  . . . . . . . . . . . .  	0000	PARA	PUBLIC	'CONST'
  CODE . . . . . . . . . . . . .  	01C2	PARA	PUBLIC	'CODE'
  CSTACK . . . . . . . . . . . .  	01EA	WORD	STACK	'STACK'
  LASTSEG  . . . . . . . . . . .  	0000	PARA	PUBLIC	'LAST'

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	
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	
APPEND_OFF . . . . . . . . . . .  	NUMBER	0000	
APPEND_ON  . . . . . . . . . . .  	NUMBER	0001	
APPEND_X . . . . . . . . . . . .  	NUMBER	B706	
APPEND_X_SET . . . . . . . . . .  	NUMBER	0001	
AREAD  . . . . . . . . . . . . .  	NUMBER	0025	
ARENA_OWNER_SYSTEM . . . . . . .  	NUMBER	0000	
ARENA_SIGNATURE_END  . . . . . .  	NUMBER	005A	
ARENA_SIGNATURE_NORMAL . . . . .  	NUMBER	004D	
ASCIIZ_END . . . . . . . . . . .  	NUMBER	0000	
ASSIGNOPER . . . . . . . . . . .  	NUMBER	005F	
ASSIGN_CHECK . . . . . . . . . .  	NUMBER	8000	
ATTR_ALL . . . . . . . . . . . .  	NUMBER	0016	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Symbols-6


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	
AWRITE . . . . . . . . . . . . .  	NUMBER	0026	

BAD_EXIT . . . . . . . . . . . .  	NUMBER	00FF	
BDOS . . . . . . . . . . . . . .  	NUMBER	0021	
BIG_FAT_THRESHOLD  . . . . . . .  	NUMBER	0FF6	
BLANK  . . . . . . . . . . . . .  	NUMBER	0020	
BOOT . . . . . . . . . . . . . .  	NUMBER	0020	
BUFFERFLAG . . . . . . . . . . .  	NUMBER	FFFF	
BUFINSIZ . . . . . . . . . . . .  	NUMBER	0014	
BUF_DIRTY  . . . . . . . . . . .  	NUMBER	0040	
BUF_DPB  . . . . . . . . . . . .  		000D	
BUF_FILL . . . . . . . . . . . .  		0011	
BUF_FLAGS  . . . . . . . . . . .  		0005	
BUF_FREE . . . . . . . . . . . .  	NUMBER	00FF	
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	
Build_String . . . . . . . . . .  	N PROC	0134	CODE	Global	Length = 0020
bytes_per_sector . . . . . . . .  	V WORD	0000	DATA	External

calc_sp64k . . . . . . . . . . .  	N PROC	010C	CODE	Global	Length = 0028
CARGS  . . . . . . . . . . . . .  	NUMBER	0000	
ChANge_BlANks  . . . . . . . . .  	N PROC	0154	CODE	Global	Length = 0021
CHAR_OPER  . . . . . . . . . . .  	NUMBER	0037	
CHDIR  . . . . . . . . . . . . .  	NUMBER	003B	
Check_DBCS_CharACter . . . . . .  	N PROC	0175	CODE	Global	Length = 004D
CHMOD  . . . . . . . . . . . . .  	NUMBER	0043	
CLOSE  . . . . . . . . . . . . .  	NUMBER	003E	
COMMAND_LINE_LENGTH  . . . . . .  	NUMBER	0080	
COMMIT . . . . . . . . . . . . .  	NUMBER	0068	
CREAT  . . . . . . . . . . . . .  	NUMBER	003C	
CREATENEWFILE  . . . . . . . . .  	NUMBER	005B	
CREATETEMPFILE . . . . . . . . .  	NUMBER	005A	
CREATE_PROCESS_DATA_BLOCK  . . .  	NUMBER	0026	
CRITASSIGN . . . . . . . . . . .  	NUMBER	0008	
CRITDEVICE . . . . . . . . . . .  	NUMBER	0002	
CRITDISK . . . . . . . . . . . .  	NUMBER	0001	
CRITICAL_ERROR_FAIL  . . . . . .  	NUMBER	0003	
CRITIFS  . . . . . . . . . . . .  	NUMBER	0006	
CRITMEM  . . . . . . . . . . . .  	NUMBER	0001	
CRITNET  . . . . . . . . . . . .  	NUMBER	0005	
CRITSFT  . . . . . . . . . . . .  	NUMBER	0001	
CRITSHARE  . . . . . . . . . . .  	NUMBER	0001	
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	
CURRENT_DIR  . . . . . . . . . .  	NUMBER	0047	
C_BS . . . . . . . . . . . . . .  	NUMBER	0008	
C_CR . . . . . . . . . . . . . .  	NUMBER	000D	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Symbols-7


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_BLANK . . . . . . . . . . .  	NUMBER	0040	
DBCS_LEAD  . . . . . . . . . . .  	NUMBER	0081	
dbcs_vector  . . . . . . . . . .  	V BYTE	0000	DATA	External
dbcs_vector_off  . . . . . . . .  	V WORD	0000	DATA	External
dbcs_vector_seg  . . . . . . . .  	V WORD	0000	DATA	External
DBCS_VECTOR_SIZE . . . . . . . .  	NUMBER	0002	
DEALLOC  . . . . . . . . . . . .  	NUMBER	0049	
DEBUG  . . . . . . . . . . . . .  	NUMBER	0000	
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	
DIRSTRLEN  . . . . . . . . . . .  	NUMBER	0043	
DIR_ATTRIBUTE  . . . . . . . . .  	NUMBER	0010	
DIR_ENTRIES_PER_SECTOR . . . . .  	NUMBER	0010	
DIR_SEARCH_FIRST . . . . . . . .  	NUMBER	0011	
DIR_SEARCH_NEXT  . . . . . . . .  	NUMBER	0012	
DISK_RESET . . . . . . . . . . .  	NUMBER	000D	
Display_Interface  . . . . . . .  	L NEAR	0000		External
DO_INCLUDE . . . . . . . . . . .  	NUMBER	0001	
DPBSIZ . . . . . . . . . . . . .  	NUMBER	0021	
DRIVE_NOT_READY  . . . . . . . .  	NUMBER	0002	
DSKSIZ . . . . . . . . . . . . .  	NUMBER	000D	
DUP_PDB  . . . . . . . . . . . .  	NUMBER	0055	

ECS_CALL . . . . . . . . . . . .  	NUMBER	0063	
EMS_MAP_BUFF_SIZE  . . . . . . .  	NUMBER	000C	
END_OF_VECTOR  . . . . . . . . .  	NUMBER	0000	
ENTRYPOINT . . . . . . . . . . .  	NUMBER	00C0	
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	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Symbols-8


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	
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_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_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	
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	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Symbols-9


EXPECTED_VERSION . . . . . . . .  	NUMBER	0004	
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	
FAT12_FILE_SYSTEM  . . . . . . .  	NUMBER	0001	
FAT16_FILE_SYSTEM  . . . . . . .  	NUMBER	0004	
FCB  . . . . . . . . . . . . . .  	NUMBER	005C	
FCB1 . . . . . . . . . . . . . .  	NUMBER	005C	
FCB2 . . . . . . . . . . . . . .  	NUMBER	006C	
FCBDEVICE  . . . . . . . . . . .  	NUMBER	0040	
FCBMASK  . . . . . . . . . . . .  	NUMBER	00C0	
FCBNETWORK . . . . . . . . . . .  	NUMBER	0080	
FCBSHARE . . . . . . . . . . . .  	NUMBER	00C0	
FCBSPECIAL . . . . . . . . . . .  	NUMBER	0080	
FCB_CLOSE  . . . . . . . . . . .  	NUMBER	0010	
FCB_CREATE . . . . . . . . . . .  	NUMBER	0016	
FCB_DELETE . . . . . . . . . . .  	NUMBER	0013	
FCB_FILENAME_LENGTH  . . . . . .  	NUMBER	000B	
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	
FILE_TIMES . . . . . . . . . . .  	NUMBER	0057	
FILPERPROC . . . . . . . . . . .  	NUMBER	0014	
filsiz . . . . . . . . . . . . .  	V WORD	0000	DATA	External
FIND_FIRST . . . . . . . . . . .  	NUMBER	004E	
FIND_NEXT  . . . . . . . . . . .  	NUMBER	004F	
FOUND_NO . . . . . . . . . . . .  	NUMBER	0000	
FOUND_YES  . . . . . . . . . . .  	NUMBER	0001	
FSPCHK . . . . . . . . . . . . .  	NUMBER	0004	
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	

GETCURRENTPSP  . . . . . . . . .  	NUMBER	0062	
GETEXTCNTRY  . . . . . . . . . .  	NUMBER	0065	
GETEXTENDEDERROR . . . . . . . .  	NUMBER	0059	
GETSETCDPG . . . . . . . . . . .  	NUMBER	0066	
GETSETMEDIAID  . . . . . . . . .  	NUMBER	0069	
GET_CURRENT_PDB  . . . . . . . .  	NUMBER	0051	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Symbols-10


GET_DATE . . . . . . . . . . . .  	NUMBER	002A	
GET_DEFAULT_DPB  . . . . . . . .  	NUMBER	001F	
GET_DEFAULT_DRIVE  . . . . . . .  	NUMBER	0019	
GET_DMA  . . . . . . . . . . . .  	NUMBER	002F	
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_VARS  . . . . . . . . . .  	NUMBER	0052	
GET_TIME . . . . . . . . . . . .  	NUMBER	002C	
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	
IBM  . . . . . . . . . . . . . .  	ALIAS	 IBMVER		
IBMCOPYRIGHT . . . . . . . . . .  	ALIAS	 FALSE		
IBMJAPAN . . . . . . . . . . . .  	ALIAS	 FALSE		
IBMJAPVER  . . . . . . . . . . .  	ALIAS	 FALSE		
IBMVER . . . . . . . . . . . . .  	ALIAS	 TRUE		
IFS_IOCTL  . . . . . . . . . . .  	NUMBER	006B	
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	

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

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

LBL_RECPROC  . . . . . . . . . .  	NUMBER	0001	
LEN_FS_ID_STRING . . . . . . . .  	NUMBER	0008	
LEN_FS_STRING_BUFFER . . . . . .  	NUMBER	000D	
LEN_FS_STRING_END  . . . . . . .  	NUMBER	0008	
LOCKOPER . . . . . . . . . . . .  	NUMBER	005C	
LSEEK  . . . . . . . . . . . . .  	NUMBER	0042	

MAJOR_VERSION  . . . . . . . . .  	NUMBER	0004	
MAXBUCKETINPAGE  . . . . . . . .  	NUMBER	0002	
MAXBUFFINBUCKET  . . . . . . . .  	NUMBER	000F	
MEMS . . . . . . . . . . . . . .  	NUMBER	0001	
MINOR_VERSION  . . . . . . . . .  	NUMBER	0000	
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	
MSVER  . . . . . . . . . . . . .  	NUMBER	0000	
MULTDOS  . . . . . . . . . . . .  	NUMBER	0012	
MULTIFS  . . . . . . . . . . . .  	NUMBER	0011	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Symbols-11


MULTIPLEX  . . . . . . . . . . .  	NUMBER	002F	
MULTNET  . . . . . . . . . . . .  	NUMBER	0011	
MULTSHARE  . . . . . . . . . . .  	NUMBER	0010	

NET_CHECK  . . . . . . . . . . .  	NUMBER	1200	
NEW_FILE_SYSTEM  . . . . . . . .  	NUMBER	0006	
NLSFUNC  . . . . . . . . . . . .  	NUMBER	0014	
NO . . . . . . . . . . . . . . .  	NUMBER	0000	
NOT_EXISTS_MASK  . . . . . . . .  	NUMBER	00F0	
NOT_INCLUDE  . . . . . . . . . .  	NUMBER	0000	
NO_CODE_PAGE_CHECK . . . . . . .  	NUMBER	0100	
NO_ENTRY . . . . . . . . . . . .  	NUMBER	0000	
NO_ERROR . . . . . . . . . . . .  	NUMBER	0000	
NO_EXT_ATTRIB  . . . . . . . . .  	NUMBER	0000	

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	
OFMSG_PTR  . . . . . . . . . . .  	V WORD	0000	DATA	External
OPEN . . . . . . . . . . . . . .  	NUMBER	003D	
OPEN_FOR_BOTH  . . . . . . . . .  	NUMBER	0002	
OPEN_FOR_READ  . . . . . . . . .  	NUMBER	0000	
OPEN_FOR_WRITE . . . . . . . . .  	NUMBER	0001	

paras_per_64k  . . . . . . . . .  	V WORD	0000	DATA	External
paras_per_fat  . . . . . . . . .  	V WORD	0000	DATA	External
PARSE_FILE_DESCRIPTOR  . . . . .  	NUMBER	0029	
PATHPARSE  . . . . . . . . . . .  	NUMBER	0061	
PDB_APPEND . . . . . . . . . . .  	BYTE	003D	
PDB_INTERCON . . . . . . . . . .  	BYTE	003C	

RAW_CON_INPUT  . . . . . . . . .  	NUMBER	0007	
RAW_CON_IO . . . . . . . . . . .  	NUMBER	0006	
READ . . . . . . . . . . . . . .  	NUMBER	003F	
Read_Disk  . . . . . . . . . . .  	N PROC	0026	CODE	Global	Length = 003D
Read_once  . . . . . . . . . . .  	N PROC	0063	CODE	Global	Length = 002E
read_write_relative  . . . . . .  	V BYTE	0000	DATA	External
REC_ERROR  . . . . . . . . . . .  	NUMBER	0001	
REDIRECTOR . . . . . . . . . . .  	NUMBER	0000	
RENAME . . . . . . . . . . . . .  	NUMBER	0056	
report . . . . . . . . . . . . .  	N PROC	0000	CODE	Global	Length = 0026
RESERVED_BITS_MASK . . . . . . .  	NUMBER	FE00	
RET_L  . . . . . . . . . . . . .  	NEAR	0090	CODE
RMDIR  . . . . . . . . . . . . .  	NUMBER	003A	

secs_per_64k . . . . . . . . . .  	V WORD	0000	DATA	External
sec_count  . . . . . . . . . . .  	V WORD	0000	DATA	External
seg_adj  . . . . . . . . . . . .  	N PROC	00F4	CODE	Global	Length = 0018
SERVERCALL . . . . . . . . . . .  	NUMBER	005D	
SETBLOCK . . . . . . . . . . . .  	NUMBER	004A	
SETDPB . . . . . . . . . . . . .  	NUMBER	0053	
SET_APPEND_X . . . . . . . . . .  	NUMBER	B707	
SET_CTRL_C_TRAPPING  . . . . . .  	NUMBER	0033	
SET_CURRENT_PDB  . . . . . . . .  	NUMBER	0050	
SET_DATE . . . . . . . . . . . .  	NUMBER	002B	
SET_DEFAULT_DRIVE  . . . . . . .  	NUMBER	000E	
SET_DMA  . . . . . . . . . . . .  	NUMBER	001A	
SET_INTERRUPT_VECTOR . . . . . .  	NUMBER	0025	
SET_OEM_HANDLER  . . . . . . . .  	NUMBER	00F8	
SET_PRINTER_FLAG . . . . . . . .  	NUMBER	0064	
SET_TIME . . . . . . . . . . . .  	NUMBER	002D	
SET_VERIFY_ON_WRITE  . . . . . .  	NUMBER	002E	
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	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Symbols-12


SF_OPENAGE . . . . . . . . . . .  	WORD	0017	
SF_PIPE  . . . . . . . . . . . .  	NUMBER	2000	
SF_SERIAL_ID . . . . . . . . . .  	WORD	000B	
SHAREF . . . . . . . . . . . . .  	NUMBER	0000	
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	
STDAUX . . . . . . . . . . . . .  	NUMBER	0003	
STDERR . . . . . . . . . . . . .  	NUMBER	0002	
STDIN  . . . . . . . . . . . . .  	NUMBER	0000	
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	
STRING_DONE  . . . . . . . . . .  	NUMBER	0000	

TAB  . . . . . . . . . . . . . .  	NUMBER	0009	
TEMPLEN  . . . . . . . . . . . .  	NUMBER	0086	
TRUE . . . . . . . . . . . . . .  	NUMBER	FFFF	
TRUEBYTE . . . . . . . . . . . .  	NUMBER	00FF	

UNLINK . . . . . . . . . . . . .  	NUMBER	0041	
USEROPER . . . . . . . . . . . .  	NUMBER	005E	

VOL_ATTRIBUTE  . . . . . . . . .  	NUMBER	0008	

WAITPROCESS  . . . . . . . . . .  	NUMBER	004D	
WRITE  . . . . . . . . . . . . .  	NUMBER	0040	
Write_Disk . . . . . . . . . . .  	N PROC	0091	CODE	Global	Length = 0034
Write_once . . . . . . . . . . .  	N PROC	00C5	CODE	Global	Length = 002F
WRITE_PROTECT  . . . . . . . . .  	NUMBER	0000	

XDUP . . . . . . . . . . . . . .  	NUMBER	0045	
XDUP2  . . . . . . . . . . . . .  	NUMBER	0046	
XNAMETRANS . . . . . . . . . . .  	NUMBER	0060	
x_value_hi . . . . . . . . . . .  	V WORD	0000	DATA	External
x_value_lo . . . . . . . . . . .  	V WORD	0000	DATA	External

YES  . . . . . . . . . . . . . .  	NUMBER	FFFF	
y_value_hi . . . . . . . . . . .  	V WORD	0000	DATA	External
y_value_lo . . . . . . . . . . .  	V WORD	0000	DATA	External

$$A_START_recproc  . . . . . . .  	L NEAR	0000	CODE	Global
$$A_STOP_recproc . . . . . . . .  	L NEAR	01C2	CODE	Global
$$DO1  . . . . . . . . . . . . .  	L NEAR	0031	CODE
$$DO12 . . . . . . . . . . . . .  	L NEAR	0154	CODE
$$DO21 . . . . . . . . . . . . .  	L NEAR	01A7	CODE
$$DO5  . . . . . . . . . . . . .  	L NEAR	0098	CODE
$$DO9  . . . . . . . . . . . . .  	L NEAR	013A	CODE
$$EN1  . . . . . . . . . . . . .  	L NEAR	005A	CODE
$$EN12 . . . . . . . . . . . . .  	L NEAR	0174	CODE
$$EN21 . . . . . . . . . . . . .  	L NEAR	01BD	CODE
$$EN5  . . . . . . . . . . . . .  	L NEAR	00C1	CODE
$$EN9  . . . . . . . . . . . . .  	L NEAR	014D	CODE
$$IF14 . . . . . . . . . . . . .  	L NEAR	0171	CODE
$$IF15 . . . . . . . . . . . . .  	L NEAR	0170	CODE
$$IF19 . . . . . . . . . . . . .  	L NEAR	019A	CODE
$$IF21 . . . . . . . . . . . . .  	L NEAR	01B8	CODE
$$SR21 . . . . . . . . . . . . .  	L NEAR	01BE	CODE
??0000 . . . . . . . . . . . . .  	L NEAR	0090	CODE
?PLM . . . . . . . . . . . . . .  	NUMBER	0000	
?WIN . . . . . . . . . . . . . .  	NUMBER	0000	
@CPU . . . . . . . . . . . . . .  	TEXT  0101h		
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:34
RECPROC.SAL                                                 Symbols-13


@FILENAME  . . . . . . . . . . .  	TEXT  recproc		
@VERSION . . . . . . . . . . . .  	TEXT  510		


   3440 Source  Lines
   3781 Total   Lines
    900 Symbols

  43386 + 166687 Bytes symbol space free

      0 Warning Errors
      0 Severe  Errors
