Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Homework Help: Pc based digital clock via parallel port using assembly language in tasm

  1. Oct 15, 2011 #1
    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:
    Code (Text):
    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
    and the circuit:
    http://postimage.org/image/2egfc6wsk/
     
  2. jcsd
  3. Oct 15, 2011 #2
    please help.
     
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook