DataMuseum.dk

Presents historical artifacts from the history of:

RegneCentralen RC850

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RegneCentralen RC850

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦462db5a65⟧ TextFile

    Length: 1536 (0x600)
    Types: TextFile
    Names: »RTCDRV.MAC«

Derivation

└─⟦9f46c4107⟧ Bits:30005988 Sources for TurboDOS ver. 1.30 device drivers
    └─⟦this⟧ »RTCDRV.MAC« 

TextFile

.Z80
TITLE	REAL TIME CLOCK DRIVER FOR RC 850 / 855 (CTC)
SUBTTL	Copyright by ASE GmbH, Altenstadt, version 6.1.84
;
	NAME	('RTCDRV')	;MODULE ID
;
	INCLUDE RCEQUATE.MAC
;
;
	COMMON	/?INIT?/	;LOCATE IN INITIALIZATION AREA
;
RTCNIT::LD	HL,RTCISR	;INITIALIZE INTERRUPT VECTOR
	LD	(SIO3V##+2),HL	;
	LD	A,1		;select register 1
	OUT	(SIO3C),A	;
	LD	A,1DH		;enable external status interupt
	OUT	(SIO3C),A	;
	RET			;INITIALIZE DONE
;
	CSEG			;LOCATE IN PROGRAM AREA
;
;
;	real time clock service routine
;	tick is initiated by 25 Hz pulse at CTS-pin on chanal B
;	(25Hz uses high and low transition i.e. interupt occurs
;	every 20ms)
;
RTCISR:: 
	DI
	LD	(INTSP##),SP	;
	LD	SP,INTSTK##	;
	PUSH	AF		;SAVE PSW
	PUSH	BC		;
	PUSH	DE		;
	PUSH	HL		;
	LD	A,10H		;RESET EXT. INTERRUPT
	OUT	(SIO3C),A	;
	CALL	DLYTIC##	;SERVICE DISPATCHER DELAY MGR.
	L▶c4◀	HL,RTCCN▶d4◀	;GE▶d4◀ DIVIDE-BY-5▶b0◀ COUNT
	DE▶c3◀	(HL▶a9◀		;DECREMEN▶d4◀ COUNTER
	J▶d0◀	NZ,NOSTI▶c3◀	;NO▶d4◀ 5▶b0◀ TICK▶d3◀ YET▶ac◀ EXIT
	LD	A,(CRT60##)	;get 50/60Hz CRT controler flag
	OR	A		;test flag
	L▶c4◀	(HL),5▶b0◀		;get 50Hz tick count
	JR	Z,NO60HZ	;if 50HZ, jump
	LD	(HL),60		;preset tick count for 60Hz
NO60HZ:	CAL▶cc◀	RTCSE▶c3◀##	;SIGNA▶cc◀ ON▶c5◀ SECOUN▶c4◀ ELAPSE▶c4◀ TIME
	CALL	LANSTD##	;service LAN driver for status LED
;
NOSTIC:	
	CALL	LANCLK##	;service LAN timeout routine
	CALL	SYGCLK##	;service syncronus gateway clock
	POP 	H▶cc◀		▶bb◀restor▶e5◀ register
	POP	DE		;
	POP	BC		;
	POP	AF		;
	LD	SP,(INTSP##)	;
	JP	ISRXIT##
;
;
	DSEG
;
RTCCNT:	DB	0		;COUNTER VALUE
;
	END
«eof»