; DISPLAY2.ASM ; BY: MIKE GALLANT ; THIS PROGRAM WILL CLEAR THE SCREEN, DISPLAY MY NAME, PAUSE THE SCREEN ; AND WAIT FOR USER INPUT AND THEN CLEAR THE SCREEN AND RETURN TO DOS DISPLAY SEGMENT AT 0B800H BUFF DB 4000 DUP(?) DISPLAY ENDS DATA_HERE SEGMENT MYNAME DB 'Mike Gallant' DATA_HERE ENDS STACK_HERE SEGMENT PARA STACK 'STACK' THESTACK DB 100 DUP('STACK') STACK_HERE ENDS CODE_HERE SEGMENT ASSUME CS:CODE_HERE,DS:DISPLAY,ES:DATA_HERE INITIALIZATION: MOV CX,0FFFH ; NUMBER OF CHARACTERS TO CLEAR MOV AX,DISPLAY ; INIT SEGMENTS MOV DS,AX MOV ES,DX MOV AX,0700H ; TO DISPLAY BLANK ON SCREEN MOV BX,00H MOV DH,00H MOV DL,00H LEA AX,[BUFF] ; LOAD AX REGISTER WITH ADDRESS ; TO BEGIN DISPLAYING DATA AT DISPLAY_CHAR: MOV [BX],AX ; DISPLAY ASCII CHARACTER ON SCREEN ADD BX,2 ; GOTO NEXT CHARACTER ON SCREEN LOOP DISPLAY_CHAR SHOW_MY_NAME MOV AX,1301H ; FOR USE WITH INT 10H CALL MOV BL,07 MOV BH,0 MOV CX,12 ; NUMBER OF CHARS TO DISPLAY MOV DH,12 ; ROW TO DISPLAY AT MOV DL,34 ; COLUMN TO DISPLAY AT MOV BP,OFFSET MYNAME ; OFFSET OF STRING MOV SI,SEG MYNAME ; GET THE SEGMENT ADDRESS MOV ES,SI ; ES = SEGMENT OF STRING INT 10H PAUSE_SCREEN: MOV AH,08 ; PAUSE SCREEN BY GETTING USER INT 21H ; TO PRESS ANY KEY TO CONTINUE CLEAR_SCREEN: MOV AH,00H ; SAME AS CLS IN DOS MOV AL,03H INT 10H BACK_TO_DOS: MOV AX,4C00H ; RETURN TO DOS INT 21H CODE_HERE ENDS END