|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 1280 (0x500)
Types: TextFile
Names: »RTCDRVM.MAC«
└─⟦9f46c4107⟧ Bits:30005988 Sources for TurboDOS ver. 1.30 device drivers
└─⟦this⟧ »RTCDRVM.MAC«
.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 (CTC7V##),HL ;
LD A,0A5H ;selet timer mode, interupt enabled
OUT (CTC7),A ;
LD A,0 ;conter mode :256
OUT (CTC7),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 ;
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 (HL),60 ;preset tick count for 60Hz
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
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»