maonin
Newbie level 2
hi, i have this project and we already have a code and the circuit but it is not working..
it's supposed to display the hours and minutes
the problems are:
1. the hour display is not displaying anything
2. the minute displays but it is advanced by one minute
so here's the code:
it's supposed to display the hours and minutes
the problems are:
1. the hour display is not displaying anything
2. the minute displays but it is advanced by one minute
so here's the code:
Code:
TITLE CLOCK.ASM
DOSSEG
.MODEL SMALL
.STACK 0100H
.DATA
PRINTERPORTBASEADDRESS equ 378h
.CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX
CALL RTIME ; READ TIME
CALL DisplayTime ;DISPLAY TIME
MOV AX, 4C00H
INT 21H
MAIN ENDP
RTIME PROC
MOV AH, 02H
INT 1AH
RET
; CH - HOUR
; CL - MINUTES
; DH - SECONDS
RTIME ENDP
DisplayTime PROC
push DX ; was DH
push CX ; was CL
;
mov AL,CH
mov DX,PRINTERPORTBASEADDRESS
out DX,AL
mov AL,01h
mov DX,PRINTERPORTBASEADDRESS+2
out DX,AL ; enable display
call Delay
;
mov AL,00h
mov DX,PRINTERPORTBASEADDRESS+2
out DX,AL
pop AX ; pop CL (minutes)
mov DX,PRINTERPORTBASEADDRESS
out DX,AL
mov AL,02h
mov DX,PRINTERPORTBASEADDRESS+2
out DX,AL ; enable display
call Delay
;
mov AL,00h
mov DX,PRINTERPORTBASEADDRESS+2
out DX,AL
pop AX ; pop DH (seconds)
mov AL,AH
mov DX,PRINTERPORTBASEADDRESS
out DX,AL
mov AL,08h
mov DX,PRINTERPORTBASEADDRESS+2
out DX,AL ; enable display
call Delay
;
mov DX,PRINTERPORTBASEADDRESS+2
mov AL,00h
out DX,AL
ret
DisplayTime ENDP
Delay Proc
MOV CX, 00100h
X: PUSH CX
MOV CX, 0FFFFh
Y: LOOP Y
POP CX
LOOP X
RET
Delay ENDP
END