DataMuseum.dk

Presents historical artifacts from the history of:

Philips Data Systems

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

See our Wiki for more about Philips Data Systems

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦9de98120b⟧

    Length: 6310 (0x18a6)
    Notes: pts_type(SC)
    Names: »MONTIM.SC«

Derivation

└─⟦7e2393f80⟧ Bits:30009710 Philips computer tape "M_KONV"
    └─⟦this⟧ »M:KONV/MONTIM.SC« 

PTS(SC)

	IDENT MONTIM 	REL 9.2 79-11-16  870105040920 

* 
* 
******************************************************* 
* 
*   PHILIPS TERMINAL SYSTEM PTS 
* 
*   MONTIM = MONITOR CLOCK PROCESSORS 
* 
* 
* 
* 
* 
* 
******************************************************* 
* 
* 
*    THIS MODULE CONTAINS TOSS MONITOR CLOCK PROCESSORS 
* 
*    -GETTIM    GET TIME FROM MONITOR CLOCK 
* 
*    -SETTIM    SET TIME IN MONITOR CLOCK 
* 
	EJECT			MONTIM 
* 
* 
*********** 
* ENTRIES * 
*********** 
* 
* 
	ENTRY	GETTIM	GET TIME FROM MONITOR CLOCK 
	ENTRY	SETTIM	SET TIME IN MONITOR CLOCK 



* 
* 
************* 
* EXTERNALS * 
************* 
* 
* 
	EXTRN	MONCLO	MONITOR CLOCK 
	EXTRN	LKMQDI	QUEUE TASK AND DISPATCH 
	EXTRN	TTB:SA	TTAB SAVE AREA
	EJECT			MONTIM 
* 
* 
***************************************** 
* 
*	CONDITIONAL ASSEMBLY
* 
***************************************** 
* 
*	A PROGRAM VERSION USING TOSS MMU PAGING 
*	IS OBTAINED BY SETTING MMUPAG EQU 1.
* 
MMUPAG	EQU	0
* 
	EJECT			MONTIM 
* 
* 
*    G E T T I M
* 
*    THIS IS THE GET TIME LKM PROCESSOR.
* 
*    IT IS ENTERED FROM THE LKM HANDLER 
*    WITH ADDRESS TO THE USER TIMER CONTROL 
*    BLOCK IN A8. MONITOR CLOCK IS COPIED INTO
*    TIMER CONTROL BLOCK. 
* 
* 
GETTIM	EQU	*
	LDKL	A7,MONCLO+6	ADDRESS TO MONITOR CLOCK SECOND 
	LDK	A3,6	COUNTER 
	INH
	LDR*	A6,A7	SECONDS 
	STR	A6,A15	SAVE ON STACK 
	SUK	A7,2 
	LDR*	A6,A7	MINUTES 
	STR	A6,A15	SAVE ON STACK 
	SUK	A7,2 
	LDR*	A6,A7	HOURS 
	ENB
* 
GETT10	CF	A15,BYTASC	CONVERT TO ASCII 
	IFT	MMUPAG=0 
	SC	A6,1,A8	STORE RIGHTHAND CHARACTER 
	ECR	A6,A6
	SCR	A6,A8	STORE LEFTHAND CHARACTER 
	XIF
* 
	EJECT			MONTIM 
* 
* 
	IFT	MMUPAG=1 
	LDR	A4,A8	GET TIMER CONTROL BLOCK ADDRESS
	ANK	A4,1 
	RF(Z)	GETT15	TCB ADDRESS EVEN? 
	LDR	A1,A6
	EL	A4,1,A8 
	ANK	A4,/FF 
	SLL	A1,8 
	ORR	A1,A4
	ES	A1,1,A8 
	ELR	A4,A8
	SRL	A6,8 
	ANKL	A4,/FF00
	ORR	A6,A4
* 
GETT15	ESR	A6,A8	SET VALUE IN TIMER CONTROL BLOCK 
	XIF
* 
	SUK	A3,2 
	RF(E)	GETT20 
	ADKL	A8,2
	LDR*	A6,A15	GET ACTUAL TIME FROM STACK 
	RB	GETT10
* 
	EJECT			MONTIM 
* 
* 
GETT20	SUK	A7,2 
	LDR*	A6,A7	GET ACCUMULATED 24 HOUR CARRY 
	ST	A6,TTB:SA+14,A5	STORE IN TTAB SAVE AREA A7
	CMR	A7	CLEAR MIDNIGTH CARRY
* 
TPDIS	ABL	LKMQDI
* 
	EJECT			MONTIM 
* 
* 
*    S E T T I M
* 
*    THIS IS THE SET TIME LKM PROCESSOR.
* 
*    IT IS ENTERED FROM THE LKM HANDLER WITH
*    ADDRESS TO THE USER TIMER CONTROL BLOCK
*    IN A8. VALUE IN TIMER CONTROL BLOCK IS 
*    COPIED INTO MONITOR CLOCK. 
* 
* 
SETTIM	EQU	*
	LDKL	A7,MONCLO+6	ADDRESS TO MONITOR CLOCK SECOND 
	LDK	A3,6	COUNTER 
	ENB
* 
SETT10	EQU	*
	IFT	MMUPAG=0 
	LCR	A6,A8	GET LEFTHAND CHARACTER 
	ECR	A6,A6
	LC	A6,1,A8	GET RIGHTHAND CHARACTER 
	XIF
* 
	IFT	MMUPAG=1 
	ELR	A6,A8	GET VALUE FROM TIMER CONTROL BLOCK 
	LDR	A4,A8	GET TIMER CONTROL BLOCK ADDRESS
	ANK	A4,1 
	RF(Z)	SETT15	TCB ADDRESS EVEN? 
	EL	A4,1,A8	CORRECTIONS FOR UNEVEN TCB ADDRESS
	SLL	A6,8 
	SRL	A4,8 
	ORR	A6,A4
* 
SETT15	EQU	*
	XIF
* 
	EJECT			MONTIM 
* 
* 
	CF	A15,ASCTBY	CONVERT TO BINARY
	SUK	A3,2	END ? 
	RF(E)	SETT20 
	ADKL	A8,2
	STR	A6,A15	SAVE ON STACK (HOURS AND MINUTES
	RB	SETT10
* 
SETT20	EQU	*
	INH
	STR	A6,A7	SECONDS TO MONITOR CLOCK 
	SUK	A7,2 
	LDR*	A6,A15
	STR	A6,A7	MINUTES TO MONITOR CLOCK 
	SUK	A7,2 
	LDR*	A6,A15
	STR	A6,A7	HOURS TO MONITOR CLOCK 
	SUK	A7,2 
	CMR	A7	RESET MIDNIGTH CARRY
	RB	TPDIS 
* 
	EJECT			MONTIM 
* 
* 
*    BYTASC = SUBROUTINE TO CONVERT A6-CONTENT
*             FROM BINARY TO ASCII. 
*             RESULT IN A6. 
* 
* 
BYTASC	EQU	*
	LDK	A4,0 
* 
BYTA10	SUK	A6,/A
	RF(N)	BYTA20 
	ADKL	A4,/100 
	RB	BYTA10
* 
BYTA20	ADK	A6,/A
	ADR	A6,A4
	ORKL	A6,/3030
	RTN	A15
* 
	EJECT			MONTIM 
* 
* 
*    ASCTBY = SUBROUTINE TO CONVERT A6-CONTENT
*             FROM ASCII TO BINARY. 
*             RESULT IN A6. 
* 
* 
ASCTBY	EQU	*
	LDR	A4,A6
	ANK	A6,/F
	SRL	A4,8 
	ANK	A4,/F
	RF(E)	ASCT20 
* 
ASCT10	ADK	A6,/A
	SUK	A4,1 
	RB(NE)	ASCT10
* 
ASCT20	RTN	A15
* 
* 
* 
	END

Full view