PAGE ,132 ; TITLE SALEX3.SAL - MAIN PROCESS OF THE APPLICATION EXTRN DISPLAY:FAR ;DISPLAY TEXT ON SCREEN EXTRN KEYBOARD:FAR ;READ RESPONSE FROM KEYBOARD EXTRN CLS:FAR ;CLEAR THE DISPLAY SCREEN EXTRN AREA:BYTE ;KEYBOARD RESPONSE AREA EXTRN CR:ABS EXTRN LF:ABS EXTRN EOM:ABS INCLUDE SALEXINC.ASM ;GET STRUCTURE DEFINING KEYBOARD RESPONSE AREA DSEG SEGMENT BYTE PUBLIC 'DATA' QUESTION DB 'WHAT IS YOUR NAME?',CR,LF,EOM DSEG ENDS ; * * * * * * * * * * * * * * * * * * * * * * * * * * * * PSEG SEGMENT PARA PUBLIC 'CODE' ASSUME CS:PSEG,DS:DSEG BLANK EQU " " ;A SPACE CHARACTER PROCESS PROC FAR PUBLIC PROCESS CALL CLS ;CLEAR THE SCREEN MOV DX,OFFSET QUESTION ;ASK "WHAT IS YOUR NAME?" CALL DISPLAY CALL KEYBOARD ;READ RESPONSE INTO BUFFER AREA CALL CLS ;CLEAR THE SCREEN ; KEYBOARD RESPONSE TEXT ENDS WITH A CARRIAGE RETURN ; CHANGE IT TO A BLANK MOV BX,OFFSET AREA.BUFFER ;FIND WHERE RESPONSE IS MOV AL,AREA.RESIZE ;GET HOW MANY CHARS IN RESPONSE MOV AH,0 ;CLEAR HIGH BYTE MOV SI,AX ;PUT SIZE INTO INDEX MOV BYTE PTR [BX][SI],BLANK ;REPLACE CR IN RESPONSE WITH BLANK ; DISPLAY THE RESPONSE TEXT 60 TIMES MOV CX,60 ;NUMBER OF TIME TO DISPLAY NAME MOV DX,BX ;PASS OFFSET TO TEXT TO BE DISPLAYED $DO ;REPEAT THE DISPLAY THE REQUESTED NUMBER OF TIMES CALL DISPLAY ;PUT USER'S RESPONSE ONTO SCREEN $ENDDO LOOP ;GO DISPLAY IT AGAIN RET ;FAR RETURN TO MAIN ROUTINE PROCESS ENDP PSEG ENDS END  RESPONSE ONT