          DOSSEG
          .MODEL    SMALL,C

DGROUP	  GROUP     _DATA,STACK

PRINT	MACRO	NAME
	PUSH	DX
	PUSH	AX
	LEA	DX,NAME
	MOV	AH,09H
	INT	21H
	POP	AX
	POP	DX
	ENDM

_DATA	  SEGMENT   WORD PUBLIC	'DATA'
; if the module needs data, then place it here
; always declare the data segment, even if it is empty
CR		EQU	0DH
LF		EQU	0AH
ENTER_P 	DB	CR,LF,'PLEASE ENTER A CHARACTER: $'
OUT_P		DB	CR,LF,'THIS IS WHAT YOU ENTERED: $'
CRLF		DB	CR,LF,'$'
_DATA     ENDS

STACK	  SEGMENT   PARA STACK	'STACK'
STACK	  ENDS


_TEXT	  SEGMENT   WORD PUBLIC 'CODE'
          ASSUME    CS:_TEXT,DS:DGROUP,SS:DGROUP

READ_CH PROC	NEAR
	PRINT	ENTER_P
	MOV	AH,01H
	INT	21H
	RET
READ_CH ENDP

WRITE_CH	PROC	NEAR
	PRINT	OUT_P
	MOV	AH,02H
	MOV	DL,AL
	INT	21H
	PRINT	CRLF
	RET
WRITE_CH	ENDP

_TEXT	  ENDS
	  END
