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

AI Thread Summary
The project involves a PC-based digital clock using assembly language and a parallel port, but it is not functioning correctly. The hour display is completely blank, while the minute display shows a time that is one minute ahead. The provided assembly code includes procedures for reading and displaying time, but there may be issues in how the hour and minute values are processed and sent to the printer port. The user seeks assistance in troubleshooting the code and circuit to resolve these display problems. Effective debugging of the assembly code and circuit connections is essential for proper clock functionality.
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
please help.
 
Back
Top