CRLF 	MACRO				
     	MOV	DL,0AH
     	MOV 	AH,02H
    	INT	21H
     	MOV 	DL,0DH
    	INT 	21H
ENDM 
DATA 	SEGMENT
     	BUF  	DB  80 DUP(?)      	
DATA 	ENDS
CODE 	SEGMENT
      	ASSUME  DS:DATA,ES:DATA,CS:CODE
START:	MOV 	AX,DATA				
      	MOV 	DS,AX
      	MOV 	ES,AX 
      	MOV 	BX,OFFSET  BUF      	
LP: 	MOV 	SI,0                  	
LP1: 	MOV 	AH,01H					
      	INT	 21H
      	CMP 	AL,03H
      	JZ  	EXIT                 	
      	CMP 	AL,0DH
      	JZ 	NEXT1                 	
      	JB 	NEXT
      	CMP 	AL,7AH
      	JA  	NEXT                 	
      	SUB 	AL,20H                	
NEXT:	MOV 	[BX+SI],AL           	
      	INC 	SI                     	
      	JMP	LP1                   	
NEXT1:	MOV 	[BX+SI],AL
      	MOV 	AL,0AH                	
      	MOV 	[BX+SI+1],AL
      	MOV 	AL,'$'                	
      	MOV 	[BX+SI+2],AL
      	CRLF                      		
      	MOV 	DX,BX
      	MOV 	AH,09H
      	INT 	21H                  	
      	JMP 	LP                    	
EXIT: 	MOV 	AH,4CH					
      	INT 	21H 
CODE  	ENDS
      	END 	START					
