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

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
1 reply · 2K views
maonin
Messages
2
Reaction score
0
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:
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/
 
Physics news on Phys.org