DataMuseum.dk

Presents historical artifacts from the history of:

Zilog MCZ Floppy Disks

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

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦a3ddb749e⟧ TextFile

    Length: 2466 (0x9a2)
    Types: TextFile
    Names: »TIMER.S«

Derivation

└─⟦31b8a9b6a⟧ Bits:30005199 8" Zilog MCZ/1 Floppy CR80FD_0025 ( TC 500 SEC. PROTOCOL BB V2 830407 NCJ )
    └─ ⟦this⟧ »TIMER.S« 
└─⟦cf416a62a⟧ Bits:30005201 8" Zilog MCZ/1 Floppy CR80FD_0027 ( TC 500 SEC. PROTOCOL BACK UP! (V2) BB SEC 821119 NCJ )
    └─ ⟦this⟧ »TIMER.S« 

TextFile

;*****************************************************************************
;*
;*		    TIMER  MODULE
;*
;*****************************************************************************
 
LTUCOUNTER	EQU	4000H
LIASTA		EQU	4001H
PIO1		EQU	  70H
 
	EXTERNAL	RCT1CH,RCT2CH,RCT3CH,RCT4CH
	EXTERNAL	NTIME1,NTIME2,NTIME3,NTIME4
	EXTERNAL	STIME1,STIME2,STIME3,STIME4
 
	GLOBAL		TIMER
	GLOBAL		LAT1CH,LAT2CH,LAT3CH,LAT4CH
 
LAT1CH	DEFW	0000H
LAT2CH	DEFW	0000H
LAT3CH	DEFW	0000H
LAT4CH	DEFW	0000H
 
;ECHO \f


;***************************************************************************
;*		TIMER INTERRUPT  ROUTINE
;***************************************************************************
 
TIMER	EX AF,AF'
	EXX
 
	CALL	TIMCON
 
	LD	HL,(NTIME1)
	LD	A,L
	OR	H
	JR	Z,TIM01
	DEC	HL
	LD	(NTIME1),HL
 
TIM01:	LD	HL,(NTIME2)
	LD	A,L
	OR	H
	JR	Z,TIM02
	DEC	HL
	LD	(NTIME2),HL
 
TIM02:	LD	HL,(NTIME3)
	LD	A,L
	OR	H
	JR	Z,TIM03
	DEC	HL
	LD	(NTIME3),HL
 
TIM03:	LD	HL,(NTIME4)
	LD	A,L
	OR	H
	JR	Z,TIM04
	DEC	HL
	LD	(NTIME4),HL
 
TIM04:	LD	HL,(STIME1)
	INC	HL
	RES	5,H
	LD	(STIME1),HL
 
	LD	HL,(STIME2)
	INC	HL
	RES	5,H
	LD	(STIME2),HL
 
	LD	HL,(STIME3)
	INC	HL
	RES	5,H
	LD	(STIME3),HL
 
	LD	HL,(STIME4)
	INC	HL
	RES	5,H
	LD	(STIME4),HL
 
	LD	A,(RCT1CH)
	AND	A
	JR	Z,TIM05
	DEC	A
	LD	(RCT1CH),A
 
TIM05:	LD	A,(RCT2CH)
	AND	A
	JR	Z,TIM06
	DEC	A
	LD	(RCT2CH),A
 
TIM06:	LD	A,(RCT3CH)
	AND	A
	JR	Z,TIM07
	DEC	A
	LD	(RCT3CH),A
 
TIM07:	LD	A,(RCT4CH)
	AND	A
	JR	Z,TIM08
	DEC	A
	LD	(RCT4CH),A
 
TIM08:	LD	HL,(LAT1CH)
	LD	A,L
	OR	H
	JR	Z,TIM09
	DEC	HL
	LD	(LAT1CH),HL
 
TIM09:	LD	HL,(LAT2CH)
	LD	A,L
	OR	H
	JR	Z,TIM10
	DEC	HL
	LD	(LAT2CH),HL
 
TIM10:	LD	HL,(LAT3CH)
	LD	A,L
	OR	H
	JR	Z,TIM11
	DEC	HL
	LD	(LAT3CH),HL
 
TIM11:	LD	HL,(LAT4CH)
	LD	A,L
	OR	H
	JR	Z,TIM12
	DEC	HL
	LD	(LAT4CH),HL
 
TIM12:	CALL	LIA_STATUS
 
	LD	HL,LTUCOUNTER
	INC	(HL)
 
	EXX
	EX AF,AF'
 
	EI
	RETI
;ECHO \f


	EXTERNAL	TIM1STA,TIM2STA,TIM3STA,TIM4STA
 
;	NOTE !! THE ADDRESSES OF TIMXSTA,TIMXVAL,TIMXOUT HAS TO BE CONSECUTIVE
 
TIMCON	LD	HL,TIM1STA
	CALL	TIMCHK
	LD	HL,TIM2STA
	CALL	TIMCHK
	LD	HL,TIM3STA
	CALL	TIMCHK
	LD	HL,TIM4STA
	CALL	TIMCHK
	RET
 
TIMCHK	LD	A,1
	CP	(HL)
	RET	NZ	;IF TIMER CHANNEL ENABLED THEN
	INC	HL	;
	INC	(HL)	;  INCREMENT CURRENT TIMER VALUE
	RET	NZ	;  IF CURRENT TIMER VALUE = MAX.VALUE (100H) THEN
	INC	HL	;
	LD	(HL),A	;    SET TIMEOUT INDICATOR
	RET		;  FI
			;FI
 
 
LIA_STATUS
	LD	C,PIO1+2
	LD	HL,LIASTA
	IN	A,(C)
	BIT	1,A
	JR	NZ,LIASET
	RES	0,(HL)
	RET
LIASET	SET	0,(HL)
	RET
 
;ECHO \f