Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Page     1-1


					PAGE 60,132
				TITLE Edlcmd2 - PART2 procedures called from EDLIN
				
				
				;======================= START OF SPECIFICATIONS =========================
				;
				; MODULE NAME: EDLCMD2.SAL
				;
				; DESCRIPTIVE NAME: EDLIN ROUTINES
				;
				; FUNCTION: THIS MODULE PROVIDES ROUTINES NEEDED FOR EDLIN'S EXECUTION.
				;
				; ENTRY POINT: ANY CALLED ROUTINE
				;
				; EXIT NORMAL: NA
				;
				; EXIT ERROR : NA
				;
				; INTERNAL REFERENCES:
				;
				; EXTERNAL REFERENCES:
				;
				;	ROUTINE: EDLCMD1 - ROUTINES MAY BE CALLED FROM EDLCMD1
				;		 EDLMES  - ROUTINES MAY BE CALLED FROM EDLMES
				;
				; NOTES: THIS MODULE IS TO BE PREPPED BY SALUT WITH THE "PR" OPTIONS.
				;	 LINK EDLIN+EDLCMD1+EDLCMD2+EDLMES+EDLPARSE
				;
				;
				; REVISION HISTORY:
				;
				;	AN000	VERSION DOS 4.00 - REVISIONS MADE RELATE TO THE FOLLOWING:
				;
				;				    - IMPLEMENT SYSPARSE
				;				    - IMPLEMENT MESSAGE RETRIEVER
				;				    - IMPLEMENT DBCS ENABLING
				;				    - ENHANCED VIDEO SUPPORT
				;				    - EXTENDED OPENS
				;				    - SCROLLING ERROR
				;
				; COPYRIGHT: "MS DOS EDLIN UTILITY"
				;	     "VERSION 4.00 (C) COPYRIGHT 1988 Microsoft"
				;
				;======================= END OF SPECIFICATIONS ===========================
				
				include edlequ.asm
			     C		page	60,132			;
			     C	
			     C		.list
			     C	
			     C	;======================= START OF SPECIFICATIONS =========================
			     C	;
			     C	; MODULE NAME: EDLEQU.SAL
			     C	;
			     C	; DESCRIPTIVE NAME: EQUATES FOR EDLIN
			     C	;
			     C	; FUNCTION: PROVIDES EQUATES FOR EDLIN.  IT ALSO PROVIDES THE MACRO
			     C	;	    VAL_YN.
			     C	;
			     C	; ENTRY POINT: NA
			     C	;
			     C	; INPUT: NA
			     C	;
			     C	; EXIT NORMAL: NA
			     C	;
			     C	; EXIT ERROR: NA
			     C	;
			     C	; INTERNAL REFERENCES:
			     C	;
			     C	;	ROUTINE: VAL_YN - VALIDATES Y/N RESPONSES FROM THE KEYBOARD
			     C	;
			     C	; EXTERNAL REFERENCES:
			     C	;
			     C	;	ROUTINE: NA
			     C	;
			     C	; NOTES: THIS MODULE IS TO BE PREPPED BY SALUT WITH THE "PR" OPTIONS.
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Page     1-2
                                                            

			     C	;	 LINK EDLIN+EDLCMD1+EDLCMD2+EDLMES+EDLPARSE
			     C	;
			     C	; REVISION HISTORY:
			     C	;
			     C	;	AN000	VERSION 4.00 - REVISIONS MADE RELATE TO THE FOLLOWING:
			     C	;
			     C	;				- IMPLEMENT SYSPARSE
			     C	;				- IMPLEMENT MESSAGE RETRIEVER
			     C	;				- IMPLEMENT DBCS ENABLING
			     C	;				- ENHANCED VIDEO SUPPORT
			     C	;				- EXTENDED OPENS
			     C	;				- SCROLLING ERROR
			     C	;
			     C	; COPYRIGHT: "MS DOS EDLIN UTILITY"
			     C	;	     "VERSION 4.00 (C) COPYRIGHT 1988 Microsoft"
			     C	;
			     C	;======================= END OF SPECIFICATIONS ===========================
			     C	
			     C	
			     C	
			     C	
			     C	
			     C	
 = 0080                      C	COMAND_LINE_LENGTH EQU 128
 = 0016                      C	QUOTE_CHAR EQU	16H			;Quote character = ^V
 = 000D                      C	CR	EQU	13
 = 0200                      C	STKSIZ	EQU	200h
 =                           C	STACK	equ	stksiz
			     C	
 = 0040                      C	asian_blk equ	40h			;an000;asian blank 2nd. byte
 = 0081                      C	dbcs_lead_byte equ 81h			;an000;asian blank lead byte
 = 0000                      C	nul	equ	00h			;an000;nul character
 = 0005                      C	Access_Denied equ 0005h 		;an000;extended error code for access denied
			     C	
			     C	;======== Y/N validation equates =========================================
			     C	
 = 0023                      C	yn_chk	equ	23h			;an000;check for Y/N response
 = 0001                      C	max_len equ	01h			;an000;max. len. for Y/N char.
 = 0001                      C	yes	equ	01h			;an000;boolean yes value
 = 0000                      C	no	equ	00h			;an000;boolean no value
			     C	
			     C	;======== text display values for initialization =========================
			     C	
 = 000F                      C	video_get equ	0fh			;an000;int 10 get video attributes
 = 0000                      C	video_set equ	00h			;an000;int 10 set video attributes
 = 0003                      C	video_text equ	03h			;an000;80 X 25 color monitor
			     C	
			     C	;======== code page values for functions =================================
			     C	
 = 0066                      C	get_set_cp equ	66h			;an000;get or set code page
 = 0001                      C	get_cp	equ	01h			;an000;get active code page
 = 0002                      C	set_cp	equ	02h			;an000;set active code page
			     C	
			     C	;======== screen length & width defaults =================================
			     C	
 = 0001                      C	std_out equ	01h			;an000;console output
 = 0003                      C	display_attr equ 03h			;an000;display for IOCTL
 = 007F                      C	Get_Display equ 7fh			;an000;Get display for IOCTL
 = 0019                      C	Def_Disp_Len equ 25			;an000;default display length
 = 0050                      C	Def_Disp_Width equ 80			;an000;default display width
			     C	
			     C	;======== extended open equates ==========================================
			     C	
 = 0082                      C	rw	equ	0082h			;an000;read/write
			     C						;      compatibility
			     C						;      noinherit
			     C						;      int 24h handler
			     C						;      no commit
			     C	
 = 0080                      C	ext_read equ	0080h			;an000;read
			     C						;      compatibility
			     C						;      noinherit
			     C						;      int 24h handler
			     C						;      no commit
			     C	
 = 0101                      C	rw_flag equ	0101h			;an000;fail if file not exist
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Page     1-3
                                                            

			     C						;      open if file exists
			     C						;      don't validate code page
			     C	
 = 0110                      C	creat_flag equ	0110h			;an000;create if file does not exist
			     C						;      fail if file exists
			     C						;      don't validate code page
			     C	
 = 0101                      C	open_flag equ	0101h			;an000;fail if file not exist
			     C						;      open if file exists
			     C						;      don't validate code page
			     C	
 = 0112                      C	creat_open_flag equ 0112h		;an000;create if file does not exist
			     C						;      open/replace if file exists
			     C						;      don't validate code page
			     C	
 = 0000                      C	attr	equ	00h			;an000;attributes set to 0
			     C	
			     C	;======== parse value equates ============================================
			     C	
 = FFFF                      C	nrm_parse_exit equ 0ffffh		;an000;normal exit from sysparse
 = 0001                      C	too_many equ	01h			;an000;too many parms entered
 = 0002                      C	op_missing equ	02h			;an000;required operand missing
 = 0003                      C	sw_missing equ	03h			;an000;not a valid switch
			     C	
			     C	
			     C	;======== Strucs =========================================================
			     C	
			     C	Display_Buffer_Struc Struc		;an000;dms;
			     C	
 0000  00                    C		Display_Info_Level db	   ?	;an000;dms;
 0001  00                    C		Display_Reserved db	 ?	;an000;dms;
 0002  0000                  C		Display_Buffer_Size dw	    ?	;an000;dms;
 0004  0000                  C		Display_Flags dw      ? 	;an000;dms;
 0006  00                    C		Display_Mode db      ?		;an000;dms;
			     C						;  TEXT=01
			     C						;  APA =02
 0007  00                    C		Display_Mode_Reserved db      ? ;an000;dms;
 0008  0000                  C		Display_Colors dw      ?	;an000;dms;# of colors
 000A  0000                  C		Display_Width_Pixels dw      ?	;an000;dms;# of pixels in width
 000C  0000                  C		Display_Length_Pixels dw      ? ;an000;dms;# of pixels in len.
 000E  0000                  C		Display_Width_Char dw	   ?	;an000;dms;# of chars in width
 0010  0000                  C		Display_Length_Char dw	    ?	;an000;dms;# of chars in length
			     C	
 0012                        C	Display_Buffer_Struc ends		;an000;dms;
			     C	
			     C	
			     C	
				
 0000				CODE	SEGMENT PUBLIC
 0000				CODE	ENDS
				
 0000				CONST	SEGMENT PUBLIC WORD
 0000				CONST	ENDS
				
 0000				cstack	segment stack
 0000				cstack	ends
				
 0000				DATA	SEGMENT PUBLIC WORD
 0000				DATA	ENDS
				
				
				DG	GROUP	CODE,CONST,cstack,DATA
				
 0000				CONST	SEGMENT PUBLIC WORD
					extrn	crlf_ptr:byte,lf_ptr:byte,qmes_ptr:byte,ask_ptr:byte
					extrn	bak:byte,$$$file:byte,delflg:byte,loadmod:byte,txt1:byte
					extrn	txt2:byte,memful_ptr:word,YES_BYTE:BYTE
				
					extrn	Del_Bak_Ptr:byte		;an000;dms;
					extrn	cont_ptr:byte			;an000;dms:6/10/87
				
 0000				CONST	ENDS
				
 0000				DATA	SEGMENT PUBLIC WORD
					extrn	ParamCt:WORD
					extrn	current:word,pointer:word,start:word,endtxt:word
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Page     1-4
                                                            

					extrn	wrt_handle:word,editbuf:byte,ext_ptr:word,qflg:byte
					extrn	temp_path:byte,line_num:word,line_flag:byte
					extrn	line_num_buf_ptr:byte,arg_buf:byte,arg_buf_ptr:word
					extrn	olddat:byte,oldlen:word,newlen:word,param1:word,param2:word
					extrn	srchflg:byte,srchmod:byte,comline:word,lstfnd:word,numpos:word
					extrn	lstnum:word,last:word,srchcnt:word,amnt_req:word
				
					extrn	lc_adj:byte			;an000;dms:6/10/87
					extrn	continue:byte			;an000;dms:6/10/87
					extrn	pg_count:byte			;an000;dms:6/10/87
					extrn	Disp_Len:byte			;an000;dms;
					extrn	Disp_Width:byte 		;an000;dms;
					extrn	lc_flag:byte			;an000;dms:6/10/87
				
				
 0000				DATA	ENDS
				
 0000				CODE SEGMENT PUBLIC
				
				ASSUME	CS:DG,DS:DG,SS:CStack,ES:DG
				
					public	findlin,shownum,loadbuf,crlf,lf,abortcom,unquote
					public	kill_bl,make_caps,display,dispone,make_cntrl
					public	query,quit,scanln,delbak,scaneof,memerr
					public	fndfirst,fndnext,replace
					extrn	std_printf:near,command:near,chkrange:near,ComErr:NEAR
					extrn	Xerror:near
				
				
 0000				FINDLIN:
				
				; Inputs
				;	BX = Line number to be located in buffer (0 means last line+1)
				; Outputs:
				;	DX = Actual line found
				;	DI = Pointer to start of line DX
				;	Zero set if BX = DX (if specified line found)
				; AL,CX destroyed. No other registers affected.
				
 0000  8B 16 0000 E			MOV	DX,[CURRENT]
 0004  8B 3E 0000 E			MOV	DI,[POINTER]
 0008  3B DA				CMP	BX,DX			; fast find.  Current = requested
					retz
 000A  75 01                 2	    jnz   ??0000                           ; 
 000C                        3	??0001: 
 000C  C3                    3		RET 
 000D                        2	    ??0000:                                  ; 
 000D  77 0E				JA	FINDIT			; start scanning at current?
 000F  0B DB				OR	BX,BX			; special case of EOF?
 0011  74 0A				JZ	FINDIT			; yes
 0013  BA 0001				MOV	DX,1			; set up for scan at beginning
 0016  BF 0000 E			MOV	DI,OFFSET DG:START
 0019  3B DA				CMP	BX,DX			; at beginning?
					retz
 001B  74 EF                 2		    ??0002:  jz    ret_l           ; 
 001D				FINDIT:
 001D  8B 0E 0000 E			MOV	CX,[ENDTXT]		; count of bytes in buffer
 0021  2B CF				SUB	CX,DI			; for scan
 0023				SCANLN:
 0023  B0 0A				MOV	AL,10			; LF is what we look for.
 0025  0A C0				OR	AL,AL			; Clear zero flag for JCXZ
 0027				FINLIN:
 0027  E3 07				JCXZ	RET4			; at end? Yes, no skip.
 0029  F2/ AE				REPNE	SCASB			; find EOL
 002B  42				INC	DX			; increment count
 002C  3B DA				CMP	BX,DX			; find correct line?
 002E  75 F7				JNZ	FINLIN			; no, try again.
 0030				RET4:	return
 0030                        1	??0003: 
 0030  C3                    1		RET 
				
				; Inputs:
				;	BX = Line number to be displayed
				; Function:
				;	Displays line number on terminal in 8-character
				;	format, suppressing leading zeros.
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Page     1-5
                                                            

				; AX, CX, DX destroyed. No other registers affected.
				
 0031				SHOWNUM:
 0031  BA 0000 E			mov	dx,offset dg:line_num_buf_ptr
 0034  89 1E 0000 E			mov	line_num,bx
 0038  C6 06 0000 E 2A			MOV	line_flag,"*"
 003D  3B 1E 0000 E			CMP	BX,[CURRENT]
 0041  74 05				JZ	STARLIN
 0043  C6 06 0000 E 20			MOV	line_flag," "
 0048				STARLIN:
 0048  E8 0000 E			call	std_printf
 004B				ret5:	return
 004B                        1	??0004: 
 004B  C3                    1		RET 
				
				
 004C				DISPONE:
 004C  BF 0001				MOV	DI,1
				
 004F				DISPLAY:
				
				; Inputs:
				;	BX = Line number
				;	SI = Pointer to text buffer
				;	DI = No. of lines
				; Function:
				;	Ouputs specified no. of line to terminal, each
				;	with leading line number.
				; Outputs:
				;	BX = Last line output.
				; All registers destroyed.
				
 004F  8B 0E 0000 E			MOV	CX,[ENDTXT]
 0053  2B CE				SUB	CX,SI
					retz				; no lines to display
 0055  74 F4                 2		    ??0005:  jz    ret_l           ; 
				;=========================================================================
				; Initialize screen size and line counts for use by display.
				;
				;	Date	   : 6/10/87
				;=========================================================================
				
 0057  50				push	ax				;an000;save affected regs
				
 0058  A0 ---- E			mov	al,dg:disp_len			;an000;length of video display
 005B  A2 0000 E			mov	pg_count,al			;an000;init. screen size ctr.
				
 005E  58				pop	ax				;an000;restore affected regs
				
				;=========================================================================
				
 005F  8B D7				mov	dx,di				;number of lines to print
				;
				; CX is the number of bytes in the buffer
				; dx is the number of lines to be output
				;
 0061				DISPLN:
					SaveReg <CX,DX>
 0061  51                    2		PUSH    CX 
 0062  52                    2		PUSH    DX 
 0063  E8 0031 R			CALL	SHOWNUM
					RestoreReg  <DX,CX>
 0066  5A                    2		POP     DX 
 0067  59                    2		POP     CX 
 0068  BF 0000 E			mov	di,offset dg:arg_buf
				;
				; Copy chars until CR/LF or end of line hit
				;
 006B				OUTLN:
 006B  AC				LODSB
 006C  81 FF 00FE E			CMP	DI,254+offset dg:arg_buf ; are we at end of buffer?
 0070  73 1B				JAE	StoreDone		; Yes, do NOT store
 0072  3C 20				CMP	AL," "
 0074  73 16				JAE	SEND
 0076  3C 0A				CMP	AL,10
 0078  74 12				JZ	SEND
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Page     1-6
                                                            

 007A  3C 0D				CMP	AL,13
 007C  74 0E				JZ	SEND
 007E  3C 09				CMP	AL,9
 0080  74 0A				JZ	SEND
 0082  B4 5E				MOV	AH,"^"
 0084  0C 40				OR	AL,40h
 0086  86 C4				XCHG	AL,AH
 0088  AB				STOSW
 0089  EB 02 90				JMP	StoreDone
 008C				SEND:
 008C  AA				stosb
 008D				StoreDone:
 008D  3C 0A				CMP	AL,10			; perform copy until LF is seen
 008F  E0 DA				LOOPNZ	OUTLN
				;
				; Make sure buffer ends with CRLF
				;
 0091  80 7D FF 0A			cmp	byte ptr [di-1],10
 0095  74 0C				jz	Terminate
				;
				; No LF seen.  See if CR
				;
 0097  80 7D FF 0D			cmp	byte ptr [di-1],CR
 009B  74 03				jz	StoreLF
 009D  B0 0D				mov	al,CR
 009F  AA				stosb
 00A0				StoreLF:
 00A0  B0 0A				mov	al,10
 00A2  AA				stosb
 00A3				Terminate:
 00A3  C6 05 00				mov	byte ptr [di],0
				
 00A6  E8 03DD R			call	EDLIN_DISP_COUNT		;an000;determine lines printed
										;      DMS:6/10/87
 00A9  52				push	dx
 00AA  BA 0000 E			mov	dx,offset dg:arg_buf_ptr
 00AD  E8 0000 E			call	std_printf
 00B0  5A				pop	dx
 00B1  E3 0C				JCXZ	ret7
 00B3  43				INC	BX
				
 00B4  E8 0402 R			call	EDLIN_PG_COUNT			;an000;adjust screen line count
										;      DMS:6/10/87
 00B7  80 3E 0000 E 00			cmp	lc_flag,false			;an000;continue DISPLAY?
										;      DMS:6/10/87
 00BC  75 A3				JNZ	DISPLN
 00BE  4B				DEC	BX
 00BF				ret7:	return
 00BF                        1	??0006: 
 00BF  C3                    1		RET 
				
 00C0				FNDFIRST:
 00C0  BF 0001 E			MOV	DI,1+OFFSET DG:TXT1
 00C3  C6 06 0000 E 01			mov	byte ptr[olddat],1     ;replace with old value if none new
 00C8  E8 01A5 R			CALL	GETTEXT
 00CB  0A C0				OR	AL,AL		;Reset zero flag in case CX is zero
 00CD  E3 F0				JCXZ	RET7
 00CF  3C 1A				cmp	al,1ah		;terminated with a ^Z ?
 00D1  75 05				jne	sj8
 00D3  C6 06 0000 E 00			mov	byte ptr[olddat],0     ;do not replace with old value
 00D8				sj8:
 00D8  89 0E 0000 E			MOV	[OLDLEN],CX
 00DC  33 C9				XOR	CX,CX
 00DE  3C 0D				CMP	AL,0DH
 00E0  74 07				JZ	SETBUF
 00E2  80 3E 0000 E 00			CMP	BYTE PTR [SRCHFLG],0
 00E7  74 01				JZ	NXTBUF
 00E9				SETBUF:
 00E9  4E				DEC	SI
 00EA				NXTBUF:
 00EA  89 36 0000 E			MOV	[COMLINE],SI
 00EE  BF 0001 E			MOV	DI,1+OFFSET DG:TXT2
 00F1  E8 01A5 R			CALL	GETTEXT
 00F4  80 3E 0000 E 00			CMP	BYTE PTR [SRCHFLG],0
 00F9  75 09				JNZ	NOTREPL
 00FB  3C 0D				CMP	AL,0DH
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Page     1-7
                                                            

 00FD  75 01				JNZ	HAVCHR
 00FF  4E				DEC	SI
 0100				HAVCHR:
 0100  89 36 0000 E			MOV	[COMLINE],SI
 0104				NOTREPL:
 0104  89 0E 0000 E			MOV	[NEWLEN],CX
 0108  8B 1E 0000 E			MOV	BX,[PARAM1]
 010C  0B DB				OR	BX,BX
 010E  75 14				JNZ	CALLER
 0110  80 3E 0000 E 00			cmp	byte ptr[srchmod],0
 0115  75 05				jne	sj9
 0117  BB 0001				mov	bx,1	 ;start from line number 1
 011A  EB 05				jmp	short sj9a
 011C				sj9:
 011C  8B 1E 0000 E			MOV	BX,[CURRENT]
 0120  43				INC	BX	;Default search and replace to current+1
 0121				sj9a:
 0121  E8 0000 E			CALL	CHKRANGE
 0124				CALLER:
 0124  E8 0000 R			CALL	FINDLIN
 0127  89 3E 0000 E			MOV	[LSTFND],DI
 012B  89 3E 0000 E			MOV	[NUMPOS],DI
 012F  89 16 0000 E			MOV	[LSTNUM],DX
 0133  8B 1E 0000 E			MOV	BX,[PARAM2]
 0137  83 FB 01				CMP	BX,1
 013A  83 DB FF				SBB	BX,-1	;Decrement everything except zero
 013D  E8 0000 R			CALL	FINDLIN
 0140  8B CF				MOV	CX,DI
 0142  2B 0E 0000 E			SUB	CX,[LSTFND]
 0146  0C FF				OR	AL,-1
 0148  E3 06				JCXZ	aret
 014A  3B 0E 0000 E			CMP	CX,[OLDLEN]
 014E  73 01				jae	sj10
 0150				aret:	return
 0150                        1	??0007: 
 0150  C3                    1		RET 
 0151				sj10:
 0151  89 0E 0000 E			MOV	[SRCHCNT],CX
				
 0155				FNDNEXT:
				
				; Inputs:
				;	[TXT1+1] has string to search for
				;	[OLDLEN] has length of the string
				;	[LSTFND] has starting position of search in text buffer
				;	[LSTNUM] has line number which has [LSTFND]
				;	[SRCHCNT] has length to be searched
				;	[NUMPOS] has beginning of line which has [LSTFND]
				; Outputs:
				;	Zero flag set if match found
				;	[LSTFND],[LSTNUM],[SRCHCNT] updated for continuing the search
				;	[NUMPOS] has beginning of line in which match was made
				
 0155  A0 0001 E			MOV	AL,[TXT1+1]
 0158  8B 0E 0000 E			MOV	CX,[SRCHCNT]
 015C  8B 3E 0000 E			MOV	DI,[LSTFND]
 0160				SCAN:
 0160  0B FF				OR	DI,DI		;Clear zero flag in case CX=0
 0162  F2/ AE				REPNE	SCASB		;look for first byte of string
				
					retnz			;return if you don't find
 0164  75 EA                 2		    ??0008:  jnz    ret_l           ; 
 0166  8B D1				MOV	DX,CX
 0168  8B DF				MOV	BX,DI		;Save search position
 016A  8B 0E 0000 E			MOV	CX,[OLDLEN]
 016E  49				DEC	CX
 016F  BE 0002 E			MOV	SI,2 + OFFSET DG:TXT1
 0172  3A C0				CMP	AL,AL		;Set zero flag in case CX=0
 0174  F3/ A6				REPE	CMPSB
 0176  8B CA				MOV	CX,DX
 0178  8B FB				MOV	DI,BX
 017A  75 E4				JNZ	SCAN
 017C  89 0E 0000 E			MOV	[SRCHCNT],CX
 0180  8B CF				MOV	CX,DI
 0182  89 3E 0000 E			MOV	[LSTFND],DI
 0186  8B 3E 0000 E			MOV	DI,[NUMPOS]
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Page     1-8
                                                            

 018A  2B CF				SUB	CX,DI
 018C  B0 0A				MOV	AL,10
 018E  8B 16 0000 E			MOV	DX,[LSTNUM]
				;Determine line number of match
 0192				GETLIN:
 0192  42				INC	DX
 0193  8B DF				MOV	BX,DI
 0195  F2/ AE				REPNE	SCASB
 0197  74 F9				JZ	GETLIN
 0199  4A				DEC	DX
 019A  89 16 0000 E			MOV	[LSTNUM],DX
 019E  89 1E 0000 E			MOV	[NUMPOS],BX
 01A2  32 C0				XOR	AL,AL
					return
 01A4                        1	??0009: 
 01A4  C3                    1		RET 
				
				
 01A5				GETTEXT:
				
				; Inputs:
				;	SI points into command line buffer
				;	DI points to result buffer
				; Function:
				;	Moves [SI] to [DI] until ctrl-Z (1AH) or
				;	RETURN (0DH) is found. Termination char not moved.
				; Outputs:
				;	AL = Termination character
				;	CX = No of characters moved.
				;	SI points one past termination character
				;	DI points to next free location
				
 01A5  33 C9				XOR	CX,CX
				
 01A7				GETIT:
 01A7  AC				LODSB
				;-----------------------------------------------------------------------
 01A8  3C 16				cmp	al,quote_char	;a quote character?
 01AA  75 06				jne	sj101		;no, skip....
 01AC  AC				lodsb			;yes, get quoted character
 01AD  E8 0341 R			call	make_cntrl
 01B0  EB 04				jmp	short sj102
				;-----------------------------------------------------------------------
 01B2				sj101:
 01B2  3C 1A				CMP	AL,1AH
 01B4  74 08				JZ	DEFCHK
 01B6				sj102:
 01B6  3C 0D				CMP	AL,0DH
 01B8  74 04				JZ	DEFCHK
 01BA  AA				STOSB
 01BB  41				INC	CX
 01BC  EB E9				JMP	SHORT GETIT
				
 01BE				DEFCHK:
 01BE  0B C9				OR	CX,CX
 01C0  74 08				JZ	OLDTXT
 01C2  57				PUSH	DI
 01C3  2B F9				SUB	DI,CX
 01C5  88 4D FF				MOV	BYTE PTR [DI-1],cl
 01C8  5F				POP	DI
					return
 01C9                        1	??000A: 
 01C9  C3                    1		RET 
				
 01CA				OLDTXT:
 01CA  80 3E 0000 E 01			cmp	byte ptr[olddat],1	;replace with old text?
 01CF  74 04				je	sj11			;yes...
 01D1  88 4D FF				mov	byte ptr[di-1],cl	;zero text buffer char count
					return
 01D4                        1	??000B: 
 01D4  C3                    1		RET 
				
 01D5				sj11:
 01D5  8A 4D FF				MOV	CL,BYTE PTR [DI-1]
 01D8  03 F9				ADD	DI,CX
					return
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Page     1-9
                                                            

 01DA                        1	??000C: 
 01DA  C3                    1		RET 
				
 01DB				REPLACE:
				
				; Inputs:
				;	CX = Length of new text
				;	DX = Length of original text
				;	SI = Pointer to new text
				;	DI = Pointer to old text in buffer
				; Function:
				;	New text replaces old text in buffer and buffer
				;	size is adjusted. CX or DX may be zero.
				; CX, SI, DI all destroyed. No other registers affected.
				
 01DB  3B CA				CMP	CX,DX
 01DD  74 2E				JZ	COPYIN
 01DF  56				PUSH	SI
 01E0  57				PUSH	DI
 01E1  51				PUSH	CX
 01E2  8B F7				MOV	SI,DI
 01E4  03 F2				ADD	SI,DX
 01E6  03 F9				ADD	DI,CX
 01E8  A1 0000 E			MOV	AX,[ENDTXT]
 01EB  2B C2				SUB	AX,DX
 01ED  03 C1				ADD	AX,CX
 01EF  3B 06 0000 E			CMP	AX,[LAST]
 01F3  73 1B				JAE	MEMERR
 01F5  87 06 0000 E			XCHG	AX,[ENDTXT]
 01F9  8B C8				MOV	CX,AX
 01FB  2B CE				SUB	CX,SI
 01FD  3B F7				CMP	SI,DI
 01FF  77 05				JA	DOMOV
 0201  03 F1				ADD	SI,CX
 0203  03 F9				ADD	DI,CX
 0205  FD				STD
 0206				DOMOV:
 0206  41				INC	CX
				
 0207  F3/ A4				REP	MOVSB
 0209  FC				CLD
 020A  59				POP	CX
 020B  5F				POP	DI
 020C  5E				POP	SI
 020D				COPYIN:
 020D  F3/ A4				REP	MOVSB
					return
 020F                        1	??000D: 
 020F  C3                    1		RET 
				
 0210				MEMERR:
 0210  BA 0000 E			MOV	DX,OFFSET DG:MEMFUL_ptr
 0213  E8 0000 E			call	std_printf
 0216  E9 0000 E			JMP	COMMAND
				
				
 0219				LOADBUF:
 0219  BF 0002 E			MOV	DI,2 + OFFSET DG:EDITBUF
 021C  B9 00FF				MOV	CX,255
 021F  BA FFFF				MOV	DX,-1
 0222				LOADLP:
 0222  AC				LODSB
 0223  AA				STOSB
 0224  42				INC	DX
 0225  3C 0D				CMP	AL,13
 0227  E0 F9				LOOPNZ	LOADLP
 0229  88 16 0001 E			MOV	[EDITBUF+1],DL
					retz
 022D  74 E0                 2		    ??000E:  jz    ret_l           ; 
 022F				TRUNCLP:
 022F  AC				LODSB
 0230  42				INC	DX
 0231  3C 0D				CMP	AL,13
 0233  75 FA				JNZ	TRUNCLP
 0235  4F				DEC	DI
 0236  AA				STOSB
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Page     1-10
                                                            

					return
 0237                        1	??000F: 
 0237  C3                    1		RET 
				
 0238				SCANEOF:
 0238  80 3E 0000 E 00			cmp	[loadmod],0
 023D  74 1E				je	sj52
				
				;----- Load till physical end of file
				
 023F  3B 0E 0000 E			cmp	cx,word ptr[amnt_req]
 0243  72 05				jb	sj51
 0245  32 C0				xor	al,al
 0247  FE C0				inc	al		;reset zero flag
					return
 0249                        1	??0010: 
 0249  C3                    1		RET 
 024A				sj51:
 024A  E3 0B				jcxz	sj51b
 024C  57				push	di		;get rid of any ^Z at the end of the file
 024D  03 F9				add	di,cx
 024F  4F				dec	di		;points to last char
 0250  80 3D 1A				cmp	byte ptr [di],1ah
 0253  5F				pop	di
 0254  75 01				jne	sj51b
 0256  49				dec	cx
 0257				sj51b:
 0257  32 C0				xor	al,al		;set zero flag
 0259  E8 0278 R			call	check_end	;check that we have a CRLF pair at the end
					return
 025C                        1	??0011: 
 025C  C3                    1		RET 
				
				;----- Load till first ^Z is found
				
 025D				sj52:
 025D  57				PUSH	DI
 025E  51				PUSH	CX
 025F  B0 1A				MOV	AL,1AH
 0261  0B C9				or	cx,cx
 0263  74 07				jz	not_found	;skip with zero flag set
 0265  F2/ AE				REPNE	SCASB		;Scan for end of file mark
 0267  75 03				jnz	not_found
 0269  9F				LAHF				;Save flags momentarily
 026A  41				inc	cx			;include the ^Z
 026B  9E				SAHF				;Restore flags
 026C				not_found:
 026C  8B F9				mov	di,cx			;not found at the end
 026E  59				POP	CX
 026F  9F				LAHF				;Save flags momentarily
 0270  2B CF				SUB	CX,DI			;Reduce byte count if EOF found
 0272  9E				SAHF				;Restore flags
 0273  5F				POP	DI
 0274  E8 0278 R			call	check_end		;check that we have a CRLF pair at the end
				
					return
 0277                        1	??0012: 
 0277  C3                    1		RET 
				
				
				;-----------------------------------------------------------------------
				;	If the end of file was found, then check that the last character
				; in the file is a LF. If not put a CRLF pair in.
				
 0278				check_end:
 0278  75 1C				jnz	not_end 		;end was not reached
 027A  9C				pushf				;save return flag
 027B  57				push	di			;save pointer to buffer
 027C  03 F9				add	di,cx			;points to one past end on text
 027E  4F				dec	di			;points to last character
 027F  81 FF 0000 E			cmp	di,offset dg:start
 0283  74 05				je	check_no
 0285  80 3D 0A				cmp	byte ptr[di],0ah	;is a LF the last character?
 0288  74 0A				je	check_done		;yes, exit
 028A				check_no:
 028A  C6 45 01 0D			mov	byte ptr[di+1],0dh	;no, put a CR
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Page     1-11
                                                            

 028E  41				inc	cx			;one more char in text
 028F  C6 45 02 0A			mov	byte ptr[di+2],0ah	;put a LF
 0293  41				inc	cx			;another character at the end
 0294				check_done:
 0294  5F				pop	di
 0295  9D				popf
 0296				not_end:
					return
 0296                        1	??0013: 
 0296  C3                    1		RET 
				
 0297				CRLF:
 0297  52				push	dx
 0298  BA 0000 E			mov	dx,offset dg:crlf_ptr
 029B  E8 0000 E			call	std_printf
 029E  5A				pop	dx
					return
 029F                        1	??0014: 
 029F  C3                    1		RET 
 02A0				LF:
 02A0  BA 0000 E			MOV	dx,offset dg:lf_ptr
 02A3  E8 0000 E			call	std_printf
					return
 02A6                        1	??0015: 
 02A6  C3                    1		RET 
				
 02A7				ABORTCOM:
 02A7  8C C8				MOV	AX,CS
 02A9  8E D8				MOV	DS,AX
 02AB  8E C0				MOV	ES,AX
 02AD  B8 ---- R			MOV	AX,cstack
 02B0  8E D0				MOV	SS,AX
 02B2  BC 0200				MOV	SP,STACK
 02B5  FB				STI
 02B6  E8 0297 R			CALL	CRLF
 02B9  E9 0000 E			JMP	COMMAND
				
 02BC				DELBAK:
					;Delete old backup file (.BAK)
				
 02BC  C6 06 0000 E 01			MOV	BYTE PTR [DELFLG],1
 02C1  8B 3E 0000 E			MOV	DI,[EXT_PTR]
 02C5  BE 0000 E			MOV	SI,OFFSET DG:BAK
 02C8  A5				MOVSW
 02C9  A5				MOVSW
 02CA  A4				MOVSB
 02CB  B4 41				MOV	AH,UNLINK
 02CD  BA 0000 E			MOV	DX,OFFSET DG:TEMP_PATH
 02D0  CD 21				INT	21H
				;	$if	c					;error ?		;an000; dms;
 02D2  73 2E				JNC $$IF1
 02D4  3D 0005					cmp	ax,Access_Denied		;file read only?	;an000; dms;
				;		$if	e				;yes			;an000; dms;
 02D7  75 29					JNE $$IF2
 02D9  8B 1E 0000 E					mov	bx,[Wrt_Handle] 	;close .$$$ file	;an000; dms;
 02DD  B4 3E						mov	ah,Close		;close function 	;an000; dms;
 02DF  CD 21						int	21h			;close it		;an000; dms;
				
 02E1  8B 3E 0000 E					mov	di,[Ext_Ptr]		;point to extension	;an000; dms;
 02E5  BE 0000 E					mov	si,offset dg:$$$File	;point to .$$$ extension;an000; dms;
 02E8  A5						movsw				;get .$$$ extension	;an000; dms;
 02E9  A5						movsw				;			;an000; dms;
 02EA  A4						movsb				;			;an000; dms;
 02EB  BA 0000 E					mov	dx,offset dg:Temp_Path	;point to .$$$ file	;an000; dms;
 02EE  B4 41						mov	ah,Unlink		;delete it		;an000; dms;
 02F0  CD 21						int	21h			;			;an000; dms;
				
 02F2  8B 3E 0000 E					mov	di,[Ext_Ptr]		;point to extension	;an000; dms;
 02F6  BE 0000 E					mov	si,offset dg:BAK	;point to .BAK extension;an000; dms;
 02F9  A5						movsw				;get .BAK extension	;an000; dms;
 02FA  A5						movsw				;			;an000; dms;
 02FB  A4						movsb				;			;an000; dms;
 02FC  BA 0000 E					mov	dx,offset dg:Del_Bak_Ptr;point to error message ;an000; dms;
 02FF  E9 0000 E					jmp	Xerror			;display message & exit ;an000; dms;
				;		$endif
 0302				$$IF2:
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Page     1-12
                                                            

				;	$endif
 0302				$$IF1:
				
 0302  8B 3E 0000 E			MOV	DI,[EXT_PTR]
 0306  BE 0000 E			MOV	SI,OFFSET DG:$$$FILE
 0309  A5				MOVSW
 030A  A5				MOVSW
 030B  A4				MOVSB
					return
 030C                        1	??0016: 
 030C  C3                    1		RET 
				
				
				;-----------------------------------------------------------------------;
				; Will scan buffer given pointed to by SI and get rid of quote
				;characters, compressing the line and adjusting the length at the
				;begining of the line.
				; Preserves al registers except flags and AX .
				
 030D				unquote:
 030D  51				push	cx
 030E  57				push	di
 030F  56				push	si
 0310  8B FE				mov	di,si
 0312  8A 4C FF				mov	cl,[si-1]	;length of buffer
 0315  32 ED				xor	ch,ch
 0317  B0 16				mov	al,quote_char
 0319  FC				cld
 031A				unq_loop:
 031A  E3 21				jcxz	unq_done	;no more chars in the buffer, exit
 031C  F2/ AE				repnz	scasb		;search for quote character
 031E  75 1D				jnz	unq_done	;none found, exit
 0320  51				push	cx		;save chars left in buffer
 0321  57				push	di		;save pointer to quoted character
 0322  50				push	ax		;save quote character
 0323  8A 05				mov	al,byte ptr[di] ;get quoted character
 0325  E8 0341 R			call	make_cntrl
 0328  88 05				mov	byte ptr[di],al
 032A  58				pop	ax		;restore quote character
 032B  8B F7				mov	si,di
 032D  4F				dec	di		;points to the quote character
 032E  41				inc	cx		;include the carriage return also
 032F  F3/ A4				rep	movsb		;compact line
 0331  5F				pop	di		;now points to after quoted character
 0332  59				pop	cx
 0333  E3 01				jcxz	sj13		;if quote char was last of line do not adjust
 0335  49				dec	cx		;one less char left in the buffer
 0336  5E			sj13:	pop	si
 0337  FE 4C FF				dec	byte ptr[si-1]	;one less character in total buffer count also
 033A  56				push	si
 033B  EB DD				jmp	short unq_loop
				
 033D				unq_done:
 033D  5E				pop	si
 033E  5F				pop	di
 033F  59				pop	cx
					return
 0340                        1	??0017: 
 0340  C3                    1		RET 
				
				
				;-----------------------------------------------------------------------;
				;	Convert the character in AL to the corresponding control
				; character. AL has to be between @ and _ to be converted. That is,
				; it has to be a capital letter. All other letters are left unchanged.
				
 0341				make_cntrl:
 0341  50				push	ax
 0342  25 00E0				and	ax,11100000b
 0345  3D 0040				cmp	ax,01000000b
 0348  58				pop	ax
 0349  75 03				jne	sj14
 034B  25 001F				and	ax,00011111b
 034E				sj14:
					return
 034E                        1	??0018: 
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Page     1-13
                                                            

 034E  C3                    1		RET 
				
				
				;---- Kill spaces in buffer --------------------------------------------;
				;=========================================================================
				; kill_bl : Parses over spaces in a buffer.
				;
				;	Date	   : 6/10/86
				;=========================================================================
 034F				kill_bl:
				
 034F  53				push	bx			;an000;save affected reg.
 0350				kill_bl_cont:
				
 0350  AC				lodsb				;get rid of blanks
 0351  3C 09				    cmp al,9
 0353  74 FB				    je	kill_bl_cont		;an000;it is a tab
				
 0355  3C 0A				    cmp al,10
 0357  74 F7				    je	kill_bl_cont		;an000;if LF
				
 0359  3C 20				    cmp al,' '
 035B  74 F3				    je	kill_bl_cont		;an000;we have a space
				
				
 035D  5B				pop	bx			;an000;restore affected reg.
					return
 035E                        1	??0019: 
 035E  C3                    1		RET 
				
				;----- Capitalize the character in AL ----------------------------------;
				;									;
				;   Input:								;
				;									;
				;	    AL	    contains a character to capitalize			;
				;									;
				;   Output:								;
				;									;
				;	    AL	    contains a capitalized character			;
				;									;
				;-----------------------------------------------------------------------;
				
 035F				MAKE_CAPS:
 035F  3C 61				CMP	AL,"a"
 0361  72 06				JB	CAPS1
 0363  3C 7A				CMP	AL,"z"
				else
 0365  7F 02				JG	CAPS1
				endif
 0367  24 DF				AND	AL,0DFH
 0369				CAPS1:
					return
 0369                        1	??001A: 
 0369  C3                    1		RET 
				
 036A				QUIT:
 036A  83 3E 0000 E 01			CMP	ParamCt,1
 036F  74 03				JZ	Quit1
 0371  E9 0000 E		CERR:	JMP	ComErr
 0374  83 3E 0000 E 00		Quit1:	CMP	Param1,0
 0379  75 F6				JNZ	CERR
 037B  BA 0000 E			MOV	DX,OFFSET DG:QMES_ptr
 037E  E8 0000 E			call	std_printf
				
				;=========================================================================
				; We are invoking the VAL_YN proc here.  This will replace the
				; method of Y/N validation used prior to DOS 4.00.
				;
				;	Date	   : 6/10/87
				;=========================================================================
				
 0381  E8 0475 R			call	val_yn		;an000;pass Y/N byte in AL to macro
 0384  3D 0001				cmp	ax,yes		;an000;did we return a Y
 0387  74 18				jz	NoCRLF		;an000; dms; close the file
 0389  3D 0000				cmp	ax,no		;an000; dms; return N?
				;	$if	ne		;an000; dms; neither N or Y - reprompt
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Page     1-14
                                                            

 038C  74 0A				JE $$IF11
 038E  52					push	dx			;an000; dms; must be N
 038F  BA 0000 E				mov	dx,offset dg:crlf_ptr	;an000; dms; spit out CRLF
 0392  E8 0000 E				call	std_printf		;an000; dms;   and return
 0395  5A					pop	dx			;an000; dms;   to caller
 0396  EB DC					jmp	Quit1			;an000; dms; reprompt
				;	$endif			;an000; dms;
 0398				$$IF11:
 0398  52				push	dx		;an000; dms; must be N
 0399  BA 0000 E			mov	dx,offset dg:crlf_ptr	;an000; dms; spit out CRLF
 039C  E8 0000 E			call	std_printf		;an000; dms;   and return
 039F  5A				pop	dx			;an000; dms;   to caller
					return				;an000; dms;
 03A0                        1	??001B: 
 03A0  C3                    1		RET 
				
				;=========================================================================
				; End of Y/N validation check for qmes_ptr
				;=========================================================================
				
 03A1				NOCRLF:
 03A1  8B 1E 0000 E			MOV	BX,[WRT_HANDLE]
 03A5  B4 3E				MOV	AH,CLOSE
 03A7  CD 21				INT	21H
 03A9  BA 0000 E			MOV	DX,OFFSET DG:TEMP_PATH
 03AC  B4 41				MOV	AH,UNLINK
 03AE  CD 21				INT	21H
 03B0  B4 4C				mov	ah,exit
 03B2  32 C0				xor	al,al
 03B4  CD 21				INT	21H
				
 03B6				QUERY:
 03B6  F6 06 0000 E FF			TEST	BYTE PTR [QFLG],-1
					retz
 03BB  74 E3                 2		    ??001C:  jz    ret_l           ; 
 03BD  BA 0000 E			MOV	DX,OFFSET DG:ASK_ptr
 03C0  E8 0000 E			call	std_printf
 03C3  50				PUSH	AX
 03C4  E8 0297 R			CALL	CRLF
 03C7  58				POP	AX
 03C8  3C 0D				CMP	AL,13		;Carriage return means yes
					retz
 03CA  74 D4                 2		    ??001D:  jz    ret_l           ; 
				;=========================================================================
				; We are invoking the VAL_YN proc here.  This will replace the
				; method of Y/N validation used prior to DOS 4.00.
				; This invocation of val_yn will return ZR if Y is found, otherwise
				; it will return NZ.
				;
				;	Date	   : 6/10/87
				;=========================================================================
				
 03CC  E8 0475 R			call	val_yn		;an000;pass Y/N byte in AL to macro
 03CF  3D 0001				cmp	ax,yes		;an000;did we return a Y
 03D2  74 08				je	Query_Exit	;an000; dms; exit Y/N validation
 03D4  3D 0000				cmp	ax,no		;an000; dms; N response?
 03D7  75 DD				jne	Query		;an000; dms; no - reprompt user
 03D9  3D 0001				cmp	ax,yes		;an000; dms; must have N response - force
								;	     NZ flag
 03DC				Query_Exit:
				
				
				;=========================================================================
				; End of Y/N validation check for ask_ptr
				;=========================================================================
				
					return
 03DC                        1	??001E: 
 03DC  C3                    1		RET 
				
				;=========================================================================
				; EDLIN_DISP_COUNT: This routine will determine the number of lines
				;		    actually displayed to the screen.  Lines displayed to
				;		    the screen for one EDLIN line printed will be calculated
				;		    by the following formula:
				;
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Page     1-15
                                                            

				;		LINES_PRINTED = (LINE_LEN + 10) / SCREEN_WIDTH
				;
				;		LINES_PRINTED - Actual number of lines printed on screen
				;				for one EDLIN line.  If LINES_PRINTED has
				;				a remainder, it will be rounded up.
				;
				;		LINE_LEN      - The length, in bytes, of the EDLIN line
				;				printed.
				;
				;		SCREEN_WIDTH  - The width in bytes of the current display.
				;
				;	Inputs : DI - offset into buffer containing line printed
				;		 DISP_WIDTH  - width of current video output
				;
				;	Outputs: LC_ADJ - factor to adjust line counter by
				;
				;	Date	   : 6/10/87
				;=========================================================================
				
 03DD				EDLIN_DISP_COUNT	proc	near		;an000;lines printed
				
 03DD  52				push	dx				;an000;save affected regs
 03DE  57				push	di				;an000;
 03DF  50				push	ax				;an000;
 03E0  53				push	bx				;an000;
 03E1  51				push	cx				;an000;
				
 03E2  BB 0000 E			mov	bx,offset dg:arg_buf		;an000;arg_buf holds line
										;      printed
 03E5  8B C7				mov	ax,di				;an000;where print line ends
 03E7  2B C3				sub	ax,bx				;an000;diff = line's length
 03E9  05 000A				add	ax,10				;an000;adjust for leading blks
 03EC  8A 0E ---- E			mov	cl,dg:disp_width		;an000;set up for division
 03F0  F6 F1				div	cl				;an000;divide AX by the
										;      width of the console
 03F2  80 FC 00				cmp	ah,0				;an000;see if a remainder
				;	$if	nz				;an000;if a remainder
 03F5  74 02				JZ $$IF13
 03F7  04 01					add al,1			;an000;increment AL 1
										;      to round upward
				;	$endif					;an000;
 03F9				$$IF13:
				
 03F9  A2 0000 E			mov	lc_adj,al			;an000;number of lines printed
										;      on console
 03FC  59				pop	cx				;an000;restore affected regs
 03FD  5B				pop	bx				;an000;
 03FE  58				pop	ax				;an000;
 03FF  5F				pop	di				;an000;
 0400  5A				pop	dx				;an000;
				
 0401  C3				ret					;an000;return to caller
				
 0402				EDLIN_DISP_COUNT	endp			;an000;end proc
				
				;=========================================================================
				; EDLIN_PG_COUNT : This routine determines whether or not we will continue
				;		   displaying text lines based on the count of lines that
				;		   can be output to the current video screen.
				;
				;	Inputs : LC_ADJ    - adjustment factor for number of lines printed
				;		 PG_COUNT  - number of lines remaining on current video
				;			     display
				;		 DX	   - holds the total number of lines to print
				;		 CONTINUE  - signals if the user wants to continue
				;			     printing lines.
				;
				;	Outputs: LC_FLAG   - used to signal completion of print
				;
				;	Date	   : 6/10/87
				;=========================================================================
				
 0402				EDLIN_PG_COUNT		proc	near		;an000;track remaining lines
				
 0402  50				push	ax				;an000;save affected regs
				
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Page     1-16
                                                            

 0403  C6 06 0000 E FF			mov	lc_flag,true			;an000;init. flag to signal
										;      continue printing
				
 0408  A0 0000 E			mov	al,pg_count			;an000;set up for page adj.
 040B  3A 06 0000 E			cmp	al,lc_adj			;an000;see if we are at end
				;	$if	be				;an000
 040F  77 07				JNBE $$IF15
 0411  C6 06 0000 E 00				mov	pg_count,0		;an000;set pg_count to 0
				;	$else
 0416  EB 07				JMP SHORT $$EN15
 0418				$$IF15:
 0418  2A 06 0000 E				sub	al,lc_adj		;an000;adjust number of lines
 041C  A2 0000 E				mov	pg_count,al		;an000;save remaining line ct.
				;	$endif					;an000;
 041F				$$EN15:
				
 041F  4A				dec	dx				;an000;decrease total number
										;      of lines to print by 1
				;	$if	nz				;an000;more lines to print
 0420  74 20				JZ $$IF18
 0422  80 3E 0000 E 00			    cmp    pg_count,0			;an000;have we printed screen
				;	    $if    be				;an000;we have printed screen
 0427  77 17				    JNBE $$IF19
 0429  E8 0449 R				   call    EDLIN_PG_PROMPT	;an000;prompt the user to
										;      "Continue(Y/N)?"
 042C  80 3E 0000 E FF				   cmp	  continue,true 	;an000;did user say continue
				;		   $if	  z			;an000;continue
 0431  75 08					   JNZ $$IF20
 0433  A0 ---- E					  mov	al,dg:disp_len	;an000;begin init of screen
				;			  dec	al		;an000;    length
 0436  A2 0000 E					  mov	pg_count,al	;an000;
				;		   $else			;an000;do not continue
 0439  EB 05					   JMP SHORT $$EN20
 043B				$$IF20:
 043B  C6 06 0000 E 00					  mov	lc_flag,false	;an000;signal no more to print
				;		   $endif			;an000;
 0440				$$EN20:
				;	    $endif				;an000;
 0440				$$IF19:
				;	$else					;an000;total lines printed
 0440  EB 05				JMP SHORT $$EN18
 0442				$$IF18:
 0442  C6 06 0000 E 00			    mov    lc_flag,false		;an000;signal no more to print
				;	$endif					;an000;
 0447				$$EN18:
				
 0447  58				pop	ax				;an000;restore affected regs
				
 0448  C3				ret					;an000;return to caller
				
 0449				EDLIN_PG_COUNT		endp			;an000;end procedure
				
				;=========================================================================
				; EDLIN_PG_PROMPT : This routine prompts the user as to whether or not to
				;		    continue printing lines to the video display, if lines
				;		    are still present for printing.
				;
				;	Inputs : none
				;
				;	Outputs: CONTINUE - flag that signals other routines whether or
				;			    not to continue printing.
				;
				;	Date	   : 6/10/87
				;=========================================================================
				
 0449				EDLIN_PG_PROMPT 	proc	near		;an000;ask user to continue?
				
 0449  52				push	dx				;an000;save affected regs.
 044A  50				push	ax				;an000;
				
 044B				EPP_Reprompt:
				
 044B  BA 0000 E			mov	dx,offset dg:cont_ptr		;an000;point to Continue msg.
 044E  E8 0000 E			call	std_printf			;an000;invoke message ret.
				
 0451  50				push	ax				;an000;save affected regs.
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Page     1-17
                                                            

 0452  E8 0297 R			call	crlf				;an000;send crlf
 0455  58				pop	ax				;an000;restore affected regs.
				
 0456  E8 0475 R			call	val_yn				;an000;Y/N validation
				
 0459  3D 0001				cmp	ax,yes				;an000;did we have a Y
 045C  74 07				jz	EPP_True_Exit			;an000;we had a Y
 045E  3D 0000				cmp	ax,no				;an000;did we have a N
 0461  74 0A				jz	EPP_False_Exit			;an000;yes
 0463  EB E6				jmp	EPP_Reprompt			;an000;neither Y or N - reprompt
				
 0465				EPP_True_Exit:
				
 0465  C6 06 0000 E FF			mov	Continue,True			;an000;flag Y found
 046A  EB 06 90				jmp	EPP_Exit			;an000;exit routine
				
 046D				EPP_False_Exit:
				
 046D  C6 06 0000 E 00			mov	Continue,False			;an000;flag N found
				
 0472				EPP_Exit:
				
 0472  58				pop	ax				;an000;restore affected regs.
 0473  5A				pop	dx				;an000;
				
 0474  C3				ret					;an000;return to caller
				
 0475				EDLIN_PG_PROMPT 	endp			;an000;end procedure
				
				;=========================================================================
				; val_yn: This proc validates a Y/N response entered by the user.  The
				;	  routine uses the new functionality of "GET EXTENDED COUNTRY
				;	  INFORMATION" being implemented in DOS 4.00.
				;
				; Inputs : AL - character to be validated for Y/N response
				;
				; Outputs: AX - 00h = "N"o
				;	      - 01h = "Y"es
				;=========================================================================
				
 0475				val_yn	proc	near		;an000;validate Y/N response
				
 0475  52				push	dx		;an000;save affected registers
 0476  51				push	cx		;an000;
 0477  53				push	bx		;an000;
				
 0478  8A D0				mov	dl,al		;an000;character to be checked for Y/N
 047A  B4 65				mov	ah,GetExtCntry	;an000;get extended country information
 047C  B0 23				mov	al,yn_chk	;an000;perform Y/N checking
 047E  B9 0001				mov	cx,max_len	;an000;max. len. of Y/N char.
 0481  CD 21				int	21h		;an000;invoke function
				
 0483  5B				pop	bx		;an000;restore affected registers
 0484  59				pop	cx		;an000;
 0485  5A				pop	dx		;an000;
				
 0486  C3				ret			;an000;return to caller
				
 0487				val_yn	endp			;an000;end proc
				
				
				
 0487				code	ends
					end

Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Symbols-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
LEAVE  . . . . . . . . . . . . .  	   2
LEAVECRIT  . . . . . . . . . . .  	   1
LOCALVAR . . . . . . . . . . . .  	  23

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
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
  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
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Symbols-2


  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
DISPLAY_BUFFER_STRUC . . . . . .  	0012	000B
  DISPLAY_INFO_LEVEL . . . . . .  	0000
  DISPLAY_RESERVED . . . . . . .  	0001
  DISPLAY_BUFFER_SIZE  . . . . .  	0002
  DISPLAY_FLAGS  . . . . . . . .  	0004
  DISPLAY_MODE . . . . . . . . .  	0006
  DISPLAY_MODE_RESERVED  . . . .  	0007
  DISPLAY_COLORS . . . . . . . .  	0008
  DISPLAY_WIDTH_PIXELS . . . . .  	000A
  DISPLAY_LENGTH_PIXELS  . . . .  	000C
  DISPLAY_WIDTH_CHAR . . . . . .  	000E
  DISPLAY_LENGTH_CHAR  . . . . .  	0010
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
  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
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Symbols-3


  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
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
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
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Symbols-4


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
  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

Segments and Groups:

                N a m e         	Length	 Align	Combine Class

DG . . . . . . . . . . . . . . .  	GROUP
  CODE . . . . . . . . . . . . .  	0487	PARA	PUBLIC	
  CONST  . . . . . . . . . . . .  	0000	WORD	PUBLIC	
  CSTACK . . . . . . . . . . . .  	0000	PARA	STACK	
  DATA . . . . . . . . . . . . .  	0000	WORD	PUBLIC	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Symbols-5


Symbols:            

                N a m e         	Type	 Value	 Attr

ABORT  . . . . . . . . . . . . .  	NUMBER	0000	
abortcom . . . . . . . . . . . .  	L NEAR	02A7	CODE	Global
ACCESS_DENIED  . . . . . . . . .  	NUMBER	0005	
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	
amnt_req . . . . . . . . . . . .  	V WORD	0000	DATA	External
ARENA_OWNER_SYSTEM . . . . . . .  	NUMBER	0000	
ARENA_SIGNATURE_END  . . . . . .  	NUMBER	005A	
ARENA_SIGNATURE_NORMAL . . . . .  	NUMBER	004D	
ARET . . . . . . . . . . . . . .  	L NEAR	0150	CODE
arg_buf  . . . . . . . . . . . .  	V BYTE	0000	DATA	External
arg_buf_ptr  . . . . . . . . . .  	V WORD	0000	DATA	External
ASIAN_BLK  . . . . . . . . . . .  	NUMBER	0040	
ask_ptr  . . . . . . . . . . . .  	V BYTE	0000	CONST	External
ASSIGNOPER . . . . . . . . . . .  	NUMBER	005F	
ATTR . . . . . . . . . . . . . .  	NUMBER	0000	
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	

bak  . . . . . . . . . . . . . .  	V BYTE	0000	CONST	External
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	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Symbols-6


BUF_WRTCNT . . . . . . . . . . .  		000A	
BUF_WRTCNTINC  . . . . . . . . .  		000B	

CALLER . . . . . . . . . . . . .  	L NEAR	0124	CODE
CANCEL . . . . . . . . . . . . .  	NUMBER	001B	
CAPS1  . . . . . . . . . . . . .  	L NEAR	0369	CODE
CARGS  . . . . . . . . . . . . .  	NUMBER	0000	
CERR . . . . . . . . . . . . . .  	L NEAR	0371	CODE
CHAR_OPER  . . . . . . . . . . .  	NUMBER	0037	
CHDIR  . . . . . . . . . . . . .  	NUMBER	003B	
CHECK_DONE . . . . . . . . . . .  	L NEAR	0294	CODE
CHECK_END  . . . . . . . . . . .  	L NEAR	0278	CODE
CHECK_NO . . . . . . . . . . . .  	L NEAR	028A	CODE
chkrange . . . . . . . . . . . .  	L NEAR	0000	CODE	External
CHMOD  . . . . . . . . . . . . .  	NUMBER	0043	
CLOSE  . . . . . . . . . . . . .  	NUMBER	003E	
COMAND_LINE_LENGTH . . . . . . .  	NUMBER	0080	
ComErr . . . . . . . . . . . . .  	L NEAR	0000	CODE	External
comline  . . . . . . . . . . . .  	V WORD	0000	DATA	External
command  . . . . . . . . . . . .  	L NEAR	0000	CODE	External
COMMIT . . . . . . . . . . . . .  	NUMBER	0068	
continue . . . . . . . . . . . .  	V BYTE	0000	DATA	External
cont_ptr . . . . . . . . . . . .  	V BYTE	0000	CONST	External
COPYIN . . . . . . . . . . . . .  	L NEAR	020D	CODE
CR . . . . . . . . . . . . . . .  	NUMBER	000D	
CREAT  . . . . . . . . . . . . .  	NUMBER	003C	
CREATENEWFILE  . . . . . . . . .  	NUMBER	005B	
CREATETEMPFILE . . . . . . . . .  	NUMBER	005A	
CREATE_PROCESS_DATA_BLOCK  . . .  	NUMBER	0026	
CREAT_FLAG . . . . . . . . . . .  	NUMBER	0110	
CREAT_OPEN_FLAG  . . . . . . . .  	NUMBER	0112	
CRITASSIGN . . . . . . . . . . .  	NUMBER	0008	
CRITDEVICE . . . . . . . . . . .  	NUMBER	0002	
CRITDISK . . . . . . . . . . . .  	NUMBER	0001	
CRITIFS  . . . . . . . . . . . .  	NUMBER	0006	
CRITMEM  . . . . . . . . . . . .  	NUMBER	0001	
CRITNET  . . . . . . . . . . . .  	NUMBER	0005	
CRITSFT  . . . . . . . . . . . .  	NUMBER	0001	
CRITSHARE  . . . . . . . . . . .  	NUMBER	0001	
crlf . . . . . . . . . . . . . .  	L NEAR	0297	CODE	Global
crlf_ptr . . . . . . . . . . . .  	V BYTE	0000	CONST	External
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  . . . . . . . . . . . .  	V WORD	0000	DATA	External
CURRENT_DIR  . . . . . . . . . .  	NUMBER	0047	
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_LEAD_BYTE . . . . . . . . .  	NUMBER	0081	
DEALLOC  . . . . . . . . . . . .  	NUMBER	0049	
DEBUG  . . . . . . . . . . . . .  	NUMBER	0000	
DEFCHK . . . . . . . . . . . . .  	L NEAR	01BE	CODE
DEF_DISP_LEN . . . . . . . . . .  	NUMBER	0019	
DEF_DISP_WIDTH . . . . . . . . .  	NUMBER	0050	
delbak . . . . . . . . . . . . .  	L NEAR	02BC	CODE	Global
delflg . . . . . . . . . . . . .  	V BYTE	0000	CONST	External
Del_Bak_Ptr  . . . . . . . . . .  	V BYTE	0000	CONST	External
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	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Symbols-7


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_SEARCH_FIRST . . . . . . . .  	NUMBER	0011	
DIR_SEARCH_NEXT  . . . . . . . .  	NUMBER	0012	
DISK_RESET . . . . . . . . . . .  	NUMBER	000D	
display  . . . . . . . . . . . .  	L NEAR	004F	CODE	Global
DISPLAY_ATTR . . . . . . . . . .  	NUMBER	0003	
DISPLN . . . . . . . . . . . . .  	L NEAR	0061	CODE
dispone  . . . . . . . . . . . .  	L NEAR	004C	CODE	Global
Disp_Len . . . . . . . . . . . .  	V BYTE	0000	DATA	External
Disp_Width . . . . . . . . . . .  	V BYTE	0000	DATA	External
DOMOV  . . . . . . . . . . . . .  	L NEAR	0206	CODE
DPBSIZ . . . . . . . . . . . . .  	NUMBER	0021	
DSKSIZ . . . . . . . . . . . . .  	NUMBER	000D	
DUP_PDB  . . . . . . . . . . . .  	NUMBER	0055	

ECS_CALL . . . . . . . . . . . .  	NUMBER	0063	
editbuf  . . . . . . . . . . . .  	V BYTE	0000	DATA	External
EDLIN_DISP_COUNT . . . . . . . .  	N PROC	03DD	CODE	Length = 0025
EDLIN_PG_COUNT . . . . . . . . .  	N PROC	0402	CODE	Length = 0047
EDLIN_PG_PROMPT  . . . . . . . .  	N PROC	0449	CODE	Length = 002C
EMS_MAP_BUFF_SIZE  . . . . . . .  	NUMBER	000C	
endtxt . . . . . . . . . . . . .  	V WORD	0000	DATA	External
ENTRYPOINT . . . . . . . . . . .  	NUMBER	00C0	
EPP_EXIT . . . . . . . . . . . .  	L NEAR	0472	CODE
EPP_FALSE_EXIT . . . . . . . . .  	L NEAR	046D	CODE
EPP_REPROMPT . . . . . . . . . .  	L NEAR	044B	CODE
EPP_TRUE_EXIT  . . . . . . . . .  	L NEAR	0465	CODE
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	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Symbols-8


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	
ESCCH  . . . . . . . . . . . . .  	NUMBER	0000	
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	
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	
ext_ptr  . . . . . . . . . . . .  	V WORD	0000	DATA	External
EXT_READ . . . . . . . . . . . .  	NUMBER	0080	

Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Symbols-9


FALSE  . . . . . . . . . . . . .  	NUMBER	0000	
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_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	
FINDIT . . . . . . . . . . . . .  	L NEAR	001D	CODE
findlin  . . . . . . . . . . . .  	L NEAR	0000	CODE	Global
FIND_FIRST . . . . . . . . . . .  	NUMBER	004E	
FIND_NEXT  . . . . . . . . . . .  	NUMBER	004F	
FINLIN . . . . . . . . . . . . .  	L NEAR	0027	CODE
fndfirst . . . . . . . . . . . .  	L NEAR	00C0	CODE	Global
fndnext  . . . . . . . . . . . .  	L NEAR	0155	CODE	Global
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	
GETIT  . . . . . . . . . . . . .  	L NEAR	01A7	CODE
GETLIN . . . . . . . . . . . . .  	L NEAR	0192	CODE
GETSETCDPG . . . . . . . . . . .  	NUMBER	0066	
GETSETMEDIAID  . . . . . . . . .  	NUMBER	0069	
GETTEXT  . . . . . . . . . . . .  	L NEAR	01A5	CODE
GET_CP . . . . . . . . . . . . .  	NUMBER	0001	
GET_CURRENT_PDB  . . . . . . . .  	NUMBER	0051	
GET_DATE . . . . . . . . . . . .  	NUMBER	002A	
GET_DEFAULT_DPB  . . . . . . . .  	NUMBER	001F	
GET_DEFAULT_DRIVE  . . . . . . .  	NUMBER	0019	
GET_DISPLAY  . . . . . . . . . .  	NUMBER	007F	
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	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Symbols-10


GET_INTERRUPT_VECTOR . . . . . .  	NUMBER	0035	
GET_IN_VARS  . . . . . . . . . .  	NUMBER	0052	
GET_SET_CP . . . . . . . . . . .  	NUMBER	0066	
GET_TIME . . . . . . . . . . . .  	NUMBER	002C	
GET_VERIFY_ON_WRITE  . . . . . .  	NUMBER	0054	
GET_VERSION  . . . . . . . . . .  	NUMBER	0030	

HANDLE_FAIL_I24  . . . . . . . .  	NUMBER	0100	
HAVCHR . . . . . . . . . . . . .  	L NEAR	0100	CODE
HIGHMEM  . . . . . . . . . . . .  	ALIAS	 FALSE		
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	
kill_bl  . . . . . . . . . . . .  	L NEAR	034F	CODE	Global
KILL_BL_CONT . . . . . . . . . .  	L NEAR	0350	CODE
KOREA  . . . . . . . . . . . . .  	ALIAS	 FALSE		

last . . . . . . . . . . . . . .  	V WORD	0000	DATA	External
lc_adj . . . . . . . . . . . . .  	V BYTE	0000	DATA	External
lc_flag  . . . . . . . . . . . .  	V BYTE	0000	DATA	External
lf . . . . . . . . . . . . . . .  	L NEAR	02A0	CODE	Global
lf_ptr . . . . . . . . . . . . .  	V BYTE	0000	CONST	External
line_flag  . . . . . . . . . . .  	V BYTE	0000	DATA	External
line_num . . . . . . . . . . . .  	V WORD	0000	DATA	External
line_num_buf_ptr . . . . . . . .  	V BYTE	0000	DATA	External
loadbuf  . . . . . . . . . . . .  	L NEAR	0219	CODE	Global
LOADLP . . . . . . . . . . . . .  	L NEAR	0222	CODE
loadmod  . . . . . . . . . . . .  	V BYTE	0000	CONST	External
LOCKOPER . . . . . . . . . . . .  	NUMBER	005C	
LSEEK  . . . . . . . . . . . . .  	NUMBER	0042	
lstfnd . . . . . . . . . . . . .  	V WORD	0000	DATA	External
lstnum . . . . . . . . . . . . .  	V WORD	0000	DATA	External

MAJOR_VERSION  . . . . . . . . .  	NUMBER	0004	
make_caps  . . . . . . . . . . .  	L NEAR	035F	CODE	Global
make_cntrl . . . . . . . . . . .  	L NEAR	0341	CODE	Global
MAXBUCKETINPAGE  . . . . . . . .  	NUMBER	0002	
MAXBUFFINBUCKET  . . . . . . . .  	NUMBER	000F	
MAX_LEN  . . . . . . . . . . . .  	NUMBER	0001	
memerr . . . . . . . . . . . . .  	L NEAR	0210	CODE	Global
memful_ptr . . . . . . . . . . .  	V WORD	0000	CONST	External
MEMS . . . . . . . . . . . . . .  	NUMBER	0001	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Symbols-11


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	
MULTNET  . . . . . . . . . . . .  	NUMBER	0011	
MULTSHARE  . . . . . . . . . . .  	NUMBER	0010	

newlen . . . . . . . . . . . . .  	V WORD	0000	DATA	External
NLSFUNC  . . . . . . . . . . . .  	NUMBER	0014	
NO . . . . . . . . . . . . . . .  	NUMBER	0000	
NOCRLF . . . . . . . . . . . . .  	L NEAR	03A1	CODE
NOTREPL  . . . . . . . . . . . .  	L NEAR	0104	CODE
NOT_END  . . . . . . . . . . . .  	L NEAR	0296	CODE
NOT_EXISTS_MASK  . . . . . . . .  	NUMBER	00F0	
NOT_FOUND  . . . . . . . . . . .  	L NEAR	026C	CODE
NO_CODE_PAGE_CHECK . . . . . . .  	NUMBER	0100	
NRM_PARSE_EXIT . . . . . . . . .  	NUMBER	FFFF	
NUL  . . . . . . . . . . . . . .  	NUMBER	0000	
numpos . . . . . . . . . . . . .  	V WORD	0000	DATA	External
NXTBUF . . . . . . . . . . . . .  	L NEAR	00EA	CODE

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	
olddat . . . . . . . . . . . . .  	V BYTE	0000	DATA	External
oldlen . . . . . . . . . . . . .  	V WORD	0000	DATA	External
OLDTXT . . . . . . . . . . . . .  	L NEAR	01CA	CODE
OPEN . . . . . . . . . . . . . .  	NUMBER	003D	
OPEN_FLAG  . . . . . . . . . . .  	NUMBER	0101	
OPEN_FOR_BOTH  . . . . . . . . .  	NUMBER	0002	
OPEN_FOR_READ  . . . . . . . . .  	NUMBER	0000	
OPEN_FOR_WRITE . . . . . . . . .  	NUMBER	0001	
OP_MISSING . . . . . . . . . . .  	NUMBER	0002	
OUTLN  . . . . . . . . . . . . .  	L NEAR	006B	CODE

param1 . . . . . . . . . . . . .  	V WORD	0000	DATA	External
param2 . . . . . . . . . . . . .  	V WORD	0000	DATA	External
ParamCt  . . . . . . . . . . . .  	V WORD	0000	DATA	External
PARSE_FILE_DESCRIPTOR  . . . . .  	NUMBER	0029	
PATHPARSE  . . . . . . . . . . .  	NUMBER	0061	
PDB_APPEND . . . . . . . . . . .  	BYTE	003D	
PDB_INTERCON . . . . . . . . . .  	BYTE	003C	
pg_count . . . . . . . . . . . .  	V BYTE	0000	DATA	External
pointer  . . . . . . . . . . . .  	V WORD	0000	DATA	External

qflg . . . . . . . . . . . . . .  	V BYTE	0000	DATA	External
qmes_ptr . . . . . . . . . . . .  	V BYTE	0000	CONST	External
query  . . . . . . . . . . . . .  	L NEAR	03B6	CODE	Global
QUERY_EXIT . . . . . . . . . . .  	L NEAR	03DC	CODE
quit . . . . . . . . . . . . . .  	L NEAR	036A	CODE	Global
QUIT1  . . . . . . . . . . . . .  	L NEAR	0374	CODE
QUOTE_CHAR . . . . . . . . . . .  	NUMBER	0016	

RAINBOW  . . . . . . . . . . . .  	ALIAS	 FALSE		
RAW_CON_INPUT  . . . . . . . . .  	NUMBER	0007	
RAW_CON_IO . . . . . . . . . . .  	NUMBER	0006	
READ . . . . . . . . . . . . . .  	NUMBER	003F	
REDIRECTOR . . . . . . . . . . .  	NUMBER	0000	
RENAME . . . . . . . . . . . . .  	NUMBER	0056	
replace  . . . . . . . . . . . .  	L NEAR	01DB	CODE	Global
RESERVED_BITS_MASK . . . . . . .  	NUMBER	FE00	
RET4 . . . . . . . . . . . . . .  	L NEAR	0030	CODE
RET5 . . . . . . . . . . . . . .  	L NEAR	004B	CODE
RET7 . . . . . . . . . . . . . .  	L NEAR	00BF	CODE
RET_L  . . . . . . . . . . . . .  	NEAR	03DC	CODE
RET_NZ . . . . . . . . . . . . .  	NEAR	0164	CODE
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Symbols-12


RET_Z  . . . . . . . . . . . . .  	NEAR	03CA	CODE
RMDIR  . . . . . . . . . . . . .  	NUMBER	003A	
RW . . . . . . . . . . . . . . .  	NUMBER	0082	
RW_FLAG  . . . . . . . . . . . .  	NUMBER	0101	

SCAN . . . . . . . . . . . . . .  	L NEAR	0160	CODE
scaneof  . . . . . . . . . . . .  	L NEAR	0238	CODE	Global
scanln . . . . . . . . . . . . .  	L NEAR	0023	CODE	Global
SEND . . . . . . . . . . . . . .  	L NEAR	008C	CODE
SERVERCALL . . . . . . . . . . .  	NUMBER	005D	
SETBLOCK . . . . . . . . . . . .  	NUMBER	004A	
SETBUF . . . . . . . . . . . . .  	L NEAR	00E9	CODE
SETDPB . . . . . . . . . . . . .  	NUMBER	0053	
SET_CP . . . . . . . . . . . . .  	NUMBER	0002	
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	
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	
shownum  . . . . . . . . . . . .  	L NEAR	0031	CODE	Global
SJ10 . . . . . . . . . . . . . .  	L NEAR	0151	CODE
SJ101  . . . . . . . . . . . . .  	L NEAR	01B2	CODE
SJ102  . . . . . . . . . . . . .  	L NEAR	01B6	CODE
SJ11 . . . . . . . . . . . . . .  	L NEAR	01D5	CODE
SJ13 . . . . . . . . . . . . . .  	L NEAR	0336	CODE
SJ14 . . . . . . . . . . . . . .  	L NEAR	034E	CODE
SJ51 . . . . . . . . . . . . . .  	L NEAR	024A	CODE
SJ51B  . . . . . . . . . . . . .  	L NEAR	0257	CODE
SJ52 . . . . . . . . . . . . . .  	L NEAR	025D	CODE
SJ8  . . . . . . . . . . . . . .  	L NEAR	00D8	CODE
SJ9  . . . . . . . . . . . . . .  	L NEAR	011C	CODE
SJ9A . . . . . . . . . . . . . .  	L NEAR	0121	CODE
srchcnt  . . . . . . . . . . . .  	V WORD	0000	DATA	External
srchflg  . . . . . . . . . . . .  	V BYTE	0000	DATA	External
srchmod  . . . . . . . . . . . .  	V BYTE	0000	DATA	External
STACK  . . . . . . . . . . . . .  	ALIAS	 STKSIZ		
STARLIN  . . . . . . . . . . . .  	L NEAR	0048	CODE
start  . . . . . . . . . . . . .  	V WORD	0000	DATA	External
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	
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Symbols-13


STD_CON_OUTPUT . . . . . . . . .  	NUMBER	0002	
STD_CON_STRING_INPUT . . . . . .  	NUMBER	000A	
STD_CON_STRING_OUTPUT  . . . . .  	NUMBER	0009	
STD_OUT  . . . . . . . . . . . .  	NUMBER	0001	
STD_PRINTER_OUTPUT . . . . . . .  	NUMBER	0005	
std_printf . . . . . . . . . . .  	L NEAR	0000	CODE	External
STKSIZ . . . . . . . . . . . . .  	NUMBER	0200	
STOREDONE  . . . . . . . . . . .  	L NEAR	008D	CODE
STORELF  . . . . . . . . . . . .  	L NEAR	00A0	CODE
SW_MISSING . . . . . . . . . . .  	NUMBER	0003	

TEMPLEN  . . . . . . . . . . . .  	NUMBER	0086	
temp_path  . . . . . . . . . . .  	V BYTE	0000	DATA	External
TERMINATE  . . . . . . . . . . .  	L NEAR	00A3	CODE
TOGLPRN  . . . . . . . . . . . .  	ALIAS	 TRUE		
TOO_MANY . . . . . . . . . . . .  	NUMBER	0001	
TRUE . . . . . . . . . . . . . .  	NUMBER	FFFF	
TRUEBYTE . . . . . . . . . . . .  	NUMBER	00FF	
TRUNCLP  . . . . . . . . . . . .  	L NEAR	022F	CODE
txt1 . . . . . . . . . . . . . .  	V BYTE	0000	CONST	External
txt2 . . . . . . . . . . . . . .  	V BYTE	0000	CONST	External

UNLINK . . . . . . . . . . . . .  	NUMBER	0041	
unquote  . . . . . . . . . . . .  	L NEAR	030D	CODE	Global
UNQ_DONE . . . . . . . . . . . .  	L NEAR	033D	CODE
UNQ_LOOP . . . . . . . . . . . .  	L NEAR	031A	CODE
USEROPER . . . . . . . . . . . .  	NUMBER	005E	

VAL_YN . . . . . . . . . . . . .  	N PROC	0475	CODE	Length = 0012
VIDEO_GET  . . . . . . . . . . .  	NUMBER	000F	
VIDEO_SET  . . . . . . . . . . .  	NUMBER	0000	
VIDEO_TEXT . . . . . . . . . . .  	NUMBER	0003	

WAITPROCESS  . . . . . . . . . .  	NUMBER	004D	
WANG . . . . . . . . . . . . . .  	ALIAS	 FALSE		
WRITE  . . . . . . . . . . . . .  	NUMBER	0040	
wrt_handle . . . . . . . . . . .  	V WORD	0000	DATA	External

XDUP . . . . . . . . . . . . . .  	NUMBER	0045	
XDUP2  . . . . . . . . . . . . .  	NUMBER	0046	
Xerror . . . . . . . . . . . . .  	L NEAR	0000	CODE	External
XNAMETRANS . . . . . . . . . . .  	NUMBER	0060	

YES  . . . . . . . . . . . . . .  	NUMBER	0001	
YES_BYTE . . . . . . . . . . . .  	V BYTE	0000	CONST	External
YN_CHK . . . . . . . . . . . . .  	NUMBER	0023	

ZEROEXT  . . . . . . . . . . . .  	ALIAS	 TRUE		

$$$file  . . . . . . . . . . . .  	V BYTE	0000	CONST	External
$$EN15 . . . . . . . . . . . . .  	L NEAR	041F	CODE
$$EN18 . . . . . . . . . . . . .  	L NEAR	0447	CODE
$$EN20 . . . . . . . . . . . . .  	L NEAR	0440	CODE
$$IF1  . . . . . . . . . . . . .  	L NEAR	0302	CODE
$$IF11 . . . . . . . . . . . . .  	L NEAR	0398	CODE
$$IF13 . . . . . . . . . . . . .  	L NEAR	03F9	CODE
$$IF15 . . . . . . . . . . . . .  	L NEAR	0418	CODE
$$IF18 . . . . . . . . . . . . .  	L NEAR	0442	CODE
$$IF19 . . . . . . . . . . . . .  	L NEAR	0440	CODE
$$IF2  . . . . . . . . . . . . .  	L NEAR	0302	CODE
$$IF20 . . . . . . . . . . . . .  	L NEAR	043B	CODE
??0001 . . . . . . . . . . . . .  	L NEAR	000C	CODE
??0003 . . . . . . . . . . . . .  	L NEAR	0030	CODE
??0004 . . . . . . . . . . . . .  	L NEAR	004B	CODE
??0006 . . . . . . . . . . . . .  	L NEAR	00BF	CODE
??0007 . . . . . . . . . . . . .  	L NEAR	0150	CODE
??0009 . . . . . . . . . . . . .  	L NEAR	01A4	CODE
??000A . . . . . . . . . . . . .  	L NEAR	01C9	CODE
??000B . . . . . . . . . . . . .  	L NEAR	01D4	CODE
??000C . . . . . . . . . . . . .  	L NEAR	01DA	CODE
??000D . . . . . . . . . . . . .  	L NEAR	020F	CODE
??000F . . . . . . . . . . . . .  	L NEAR	0237	CODE
??0010 . . . . . . . . . . . . .  	L NEAR	0249	CODE
??0011 . . . . . . . . . . . . .  	L NEAR	025C	CODE
??0012 . . . . . . . . . . . . .  	L NEAR	0277	CODE
??0013 . . . . . . . . . . . . .  	L NEAR	0296	CODE
Microsoft (R) Macro Assembler Version 5.10                  2/14/25 23:44:21
Edlcmd2 - PART2 procedures called from EDLIN                Symbols-14


??0014 . . . . . . . . . . . . .  	L NEAR	029F	CODE
??0015 . . . . . . . . . . . . .  	L NEAR	02A6	CODE
??0016 . . . . . . . . . . . . .  	L NEAR	030C	CODE
??0017 . . . . . . . . . . . . .  	L NEAR	0340	CODE
??0018 . . . . . . . . . . . . .  	L NEAR	034E	CODE
??0019 . . . . . . . . . . . . .  	L NEAR	035E	CODE
??001A . . . . . . . . . . . . .  	L NEAR	0369	CODE
??001B . . . . . . . . . . . . .  	L NEAR	03A0	CODE
??001E . . . . . . . . . . . . .  	L NEAR	03DC	CODE
?PLM . . . . . . . . . . . . . .  	NUMBER	0000	
?WIN . . . . . . . . . . . . . .  	NUMBER	0000	
@CPU . . . . . . . . . . . . . .  	TEXT  0101h		
@FILENAME  . . . . . . . . . . .  	TEXT  edlcmd2		
@VERSION . . . . . . . . . . . .  	TEXT  510		


   3812 Source  Lines
   4144 Total   Lines
    986 Symbols

  43266 + 165533 Bytes symbol space free

      0 Warning Errors
      0 Severe  Errors
