;----------------------------------------------------------------------------------------
; ASSIGNMENT NO :
; TITLE : WRITE ALP FOR INSTALLABEL DRIVERS FOR PRINTER
;----------------------------------------------------------------------------------------
PRINT MACRO MSG
MOV AH,09H
LEA DX,MSG
INT 21H
ENDM
DATA SEGMENT
MENU DB 10,13,10," PRINT MENU "
DB 10,13," 1. CONSOLE PRINT"
DB 10,13," 2. FILE PRINT"
DB 10,13," 3. EXIT $"
FNAME DB 1024 DUP(\'$\')
BUFF DB 1024 DUP(\'$\')
FP DW ?
CNT DW ?
NEWL DB 10,13," $"
SPAC DB 10,13," $"
FILENM DB 10,13," FILE NAME => $"
CONTNT DB 10,13," CONTENT => $"
MSG1 DB 10,13," FILE OPENED SUCCESSFULLY...!! $"
MSG2 DB 10,13,10," FILE READ SUCCESSFULLY...!! $"
MSG3 DB 10,13," ERROR IN FILE OPENING...!! $"
MSG4 DB 10,13," ERROR IN READING FILE...!! $"
MSG5 DB 10,13,10," FILE CLOSED SUCCESSFULLY...!! $"
SARR1 DB 1024 DUP(\'$\')
CHOICE DB ?
DATA ENDS
ASSUME CS:CODE, DS:DATA
CODE SEGMENT
START:
MOV AX,DATA
MOV DS,AX
PRMENU:
PRINT MENU
MOV AH,08H
INT 21H
CMP AL,31H
JE CONPR
CMP AL,32H
JE FLPR
CMP AL,33H
JE EXT
FLPR:
CALL FILEPRINT
JMP PRMENU
CONPR:
CALL CONSOLEPRINT
JMP PRMENU
EXT: ; EXIT
MOV AH,4CH
INT 21H
ACCEPT PROC NEAR
;===============================================================
; ACCEPT STRING FROM USER
MOV AH,0AH ;0A FOR STRING ACCEPTATION
LEA DX,SARR1
INT 21H
RET
ACCEPT ENDP
FILEPRINT PROC NEAR
;===============================================================
PRINT FILENM
CALL ACCEPT
MOV CH,SARR1+1 ;RETURN LENGTH OF STRING
LEA DI,FNAME
LEA SI,SARR1
INC SI
INC SI
A: ; ; COPYING FILE NAME IN VARIABLE "FNAME"
MOV DL,[SI]
MOV [DI],DL
INC SI
INC DI
DEC CH
JNZ A
LEA DX,FNAME
MOV AH,09H
INT 21H
MOV AH,3DH ; FILE OPENING
LEA DX,FNAME
MOV AL,00H
INT 21H
MOV FP,AX
JNC FOSUCC
JMP FOERR
FOSUCC: ; FILE OPEN SUCCESSFUL
PRINT NEWL
PRINT MSG1
MOV AH,3FH ; READING CONTENTS OF FILE
MOV BX,FP
MOV CX,1024
LEA DX,BUFF
INT 21H
MOV CNT,AX
JNC FRSUCC
JMP FRERR
FOERR: ; FILE OPEN ERROR
PRINT MSG3
RET
FRSUCC: ; FILE READ SUCCESSFUL
PRINT MSG2
PRINT NEWL
PRINT NEWL
MOV CX,CNT
LEA SI,BUFF
B: ; ;DISPLAYING CONTENTS OF FILE
MOV AH,02H
INT 21H
MOV DL,[SI]
MOV AH,05H
INT 21H
INC SI
DEC CX
JNZ B
MOV BX,FP
MOV AH,3EH ; FILE CLOSING
INT 21H
PRINT MSG5
RET
FRERR: ; FILE READ ERROR
PRINT MSG4
RET
FILEPRINT ENDP
CONSOLEPRINT PROC NEAR
;====================================================
;PRINT FILENM
PRINT CONTNT
CALL ACCEPT
MOV CH,SARR1+1 ;RETURN LENGTH OF STRING
LEA DI,FNAME
LEA SI,SARR1
INC SI
INC SI
AA: ; COPYING FILE NAME IN VARIABLE "FNAME"
MOV DL,[SI]
INC SI
INC DI
DEC CH
MOV AH,05H
INT 21H
JNZ AA
RET
CONSOLEPRINT ENDP
CODE ENDS
END START
;------------------------------------------------------------------------------------------
; END OF THE PROGRAM
;------------------------------------------------------------------------------------------