Compucolor.org – Virtual Media

Listing of file='OLDTIM.MAC;01' on disk='vmedia/taylor-sideB-sector.ccvf'

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;	TIME - TIME CONTROL ROUTINE
;
;	   KEEPS TRACK OF TIME. ROUGHLY COUNTS SECONDS,
;	   DEPENDING ON SIZE OF MAIN PROGRAM. DOES A
;	   COUNT-DOWN AND COUNTERS ARE PUBLIC SO THAT
;	   THEY MAY BE INITIALISED FROM CALLING PROGRAM.
;	   THE SPEED OF THE CLOCK CAN BE ADJUSTED BY THE
;	   PUBLIC VARIABLE CLKCNT, WHICH IS THE NUMBER OF
;	   "TICKS" IN A "SECOND".
;
	TITLE	TIME

	ENTRY	TIME

	PUBLIC	MINCNT,SECCNT,TIKCNT,CLKCNT

;
;	VALUES ON ENTRY:
;	   IRRELEVANT
;
;	RETURNS:
;	   NOTHING - COUNTERS ARE PUBLIC
;
;	FLAGS SET:
;	   <Z> IS SET WHEN TIME REACHES ZERO
;	   (I.E. <Z> NOT SET INDICATES STILL TIMING)
;
;	DESTROYS:
;	   ALL REGISTERS
;
;
;	EXTERNALS :- REQUIRED SUBROUTINES
;
	EXTRN	DECOUT	;CONVERTS A BYTE TO ASCII DECIMAL NO.
	EXTRN	DELAY	;DOES A TIME DELAY
	EXTRN	OSTR	;OUTPUT A STRING

;..............................................................


TIME:	LXI	H,TIKCNT	;CHECK IF A NEW SECOND ELAPSED
	DCR	M
	RNZ			;RETURN IF NOT
	LDA	CLKCNT
	MOV	M,A		;RESET TICK COUNTER
	INX	H
	DCR	M		;DECREMENT SECONDS
	JNZ	TIMDSP		;AND DISPLAY TIME IF NOT ZERO
	LDA	MINCNT
	ORA	A		;CHECK FOR TIME-OUT
	JZ	TIMDSP
	MVI	M,59		;OTHERWISE RESET SECONDS
	INX	H
	DCR	M		;DECREMENT MINUTES
TIMDSP:	LXI	H,MINMSG	;DISPLAY TIME LEFT
	LDA	MINCNT
	CALL	DECOUT		;CONVERT MINUTES
	LXI	H,SECMSG
	LDA	SECCNT
	CALL	DECOUT		;CONVERT SECONDS
	LXI	H,MINMSG
	MVI	M,' '		;CHOP OFF LEADING ZERO ON MINS
	INX	H
	INX	H
	INX	H
	MVI	M,':'		;INSERT COLON BEFORE SECS
	LXI	H,TIMMSG
	CALL	OSTR		;OUTPUT TIME MESSAGE
	LDA	MINCNT
	MOV	B,A
	LDA	SECCNT
	ORA	B		;SET <Z> ACCORDINGLY AND RETURN
	RET

;..............................................................
;
;	DATA AREA
;

CLKCNT:	DB	5	;NUMBER OF "TICKS" IN A "SECOND"
TIKCNT:	DB	5	;TICK COUNTER
SECCNT:	DB	60	;SECOND COUNTER
MINCNT:	DB	9	;MINUTE COUNTER

;
;	MESSAGES
;

TIMMSG:	DB	3,30,0,6,3,'TIME',10,26,26,26,26,26
MINMSG:	DB	' 10'
SECMSG:	DB	':00',239

	END