Sunday, 19 April 2015

tsr



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