CODE SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE
ORG 0100H
START:
JMP INIT
OLDCSIP DD ?
TEMP DB 00H
HR DB 00H
MN DB 00H
S1 DB 00H
USER:
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AH,00H ;INITIALAISE GRAPHICS MODE..
MOV AL,03H
INT 10H
MOV AH,02H
MOV BH,00H
MOV DH,10
MOV DL,50
INT 10H
MOV AH,02H ;GET TIME FROM CMOS
INT 1AH
MOV HR,CH
MOV MN,CL
MOV S1,DH
MOV AL,HR
CALL DISPLAY
MOV AH,02H
MOV DL,":"
INT 21H
MOV AL,MN
CALL DISPLAY
MOV AH,02H
MOV DL,":"
INT 21H
MOV AL,S1
CALL DISPLAY
POP DX
POP CX
POP BX
POP AX
JMP CS:OLDCSIP
INIT:
CLD
MOV AH,35H ;get current intrrupt adddres
MOV AL,00H
INT 21H
MOV WORD PTR[OLDCSIP],BX
MOV WORD PTR[OLDCSIP+2],ES
MOV AH,25H ;SET VECTOR ADDRESS
MOV AL,00H
MOV DX,OFFSET[USER]
INT 21H
MOV AH,31H ;MAKE PROGAM RSIDENT IN MEMORY
MOV DX,OFFSET INIT
INT 21H
STI
DISPLAY PROC NEAR
MOV TEMP,AL
AND AL,0F0H
MOV CL,04H
ROL AL,CL
CMP AL,09H
JBE L5
ADD AL,07H
L5:
ADD AL,30H
MOV AH,02H
MOV DL,AL
INT 21H
MOV DL,TEMP
AND DL,0FH
CMP DL,09H
JBE L6
ADD DL,07H
L6:
ADD DL,30H
MOV AH,02H
INT 21H
RET
DISPLAY ENDP
CODE ENDS
END START
No comments:
Post a Comment