;------------------------------------------------------------------------------------------
; ASSIGNMENT NO : 1A
; TITLE : WRITE ALP TO SIMULATE TYPE COMMAND USING PSP.
;------------------------------------------------------------------------------------------
PRINT MACRO MSG
LEA DX,MSG
MOV AH,09H
INT 21H
ENDM
DATA SEGMENT
FNAME DB 20 DUP(\'$\')
BUFFER DB 1024 DUP(\'$\')
FPTR DW ?
CNT DW ?
MSGOPEN DB 10,13," FILE OPEN SUCCESFULLY...! $ "
MSGREAD DB 10,13," FILE READ SUCCESFULLY...! $ "
MSGERROR DB 10,13," ERROR WHILE OPENING THE FILE...! $ "
MSGCLOSE DB 10,13," FILE CLOSE SUCCESFULLY...! $ "
MSGASCII DB 10,13," ------------------------------------------------- $ "
MSGNEWL DB 10,13," $ "
DATA ENDS
ASSUME CS:CODE, DS:DATA
CODE SEGMENT
START:
MOV AX,DATA
MOV DS,AX
MOV AH,62H
INT 21H
MOV ES,BX
MOV SI,80H
MOV CH,ES:[SI]
DEC CH
LEA DI,FNAME
MOV SI,82H
L1: MOV DL,ES:[SI]
MOV [DI],DL
INC SI
INC DI
DEC CH
JNZ L1
LEA DX,FNAME
MOV AH,09H
INT 21H
LEA DX,FNAME
MOV AH,3DH
MOV AL,00H
INT 21H
MOV FPTR,AX
JC ERROR
JNC OPEN
ERROR :
PRINT MSGERROR
JMP EXIT
OPEN :
PRINT MSGOPEN
MOV BX,FPTR
MOV AH,3FH
LEA DX,BUFFER
INT 21H
MOV CNT,AX
JNC READ
JC ERROR
READ :
PRINT MSGREAD
PRINT MSGNEWL
PRINT MSGASCII
PRINT MSGNEWL
LEA SI,BUFFER
MOV CX,CNT
L2 : MOV AH,02H
MOV DL,[SI]
INT 21H
INC SI
DEC CX
JNZ L2
PRINT MSGASCII
PRINT MSGNEWL
PRINT MSGCLOSE
EXIT :
MOV AH,4CH
INT 21H
CODE ENDS
END START
;------------------------------------------------------------------------------------------
; END OF THE PROGRAM
;------------------------------------------------------------------------------------------