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

⟦41cebca8b⟧

    Length: 7344 (0x1cb0)
    Notes: pts_type(SC)
    Names: »MONTIM.SC«

Derivation

└─⟦7b35573c9⟧ Bits:30009690 Philips computer tape "600402"
    └─⟦this⟧ »M:AF/MONTIM.SC« 

PTS(SC)

	IDENT MONTIM 	REL 11.0 81-01-26 870105041100 

* 
* 
******************************************************* 
* 
*   PHILIPS TERMINAL SYSTEM PTS 
* 
*   MONTIM = MONITOR CLOCK/DATE PROCESSORS
* 
* 
* 
* 
* 
* 
******************************************************* 
* 
* 
*    THIS MODULE CONTAINS TOSS MONITOR CLOCK/DATE PROCESSORS
* 
*    -GETTIM    GET TIME FROM MONITOR CLOCK 
* 
*    -SETTIM    SET TIME IN MONITOR CLOCK 
* 
*    -GETDAT    GET DATE FROM MONITOR CLOCK 
* 
*    -SETDAT    SET DATE IN MONITOR CLOCK 
* 
	EJECT			MONTIM 
* 
* 
*********** 
* ENTRIES * 
*********** 
* 
* 
	ENTRY	GETTIM	GET TIME FROM MONITOR CLOCK 
	ENTRY	SETTIM	SET TIME IN MONITOR CLOCK 
	ENTRY	TDATE	GET/SET DATE IN MONITOR CLOCK
	EJECT			MONTIM 
* 
* 
************* 
* 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	1
* 
	EJECT			MONTIM 
* 
* 
**********
* GETTIM *
**********
* 
* 
*    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 
* 
GETDAT	EQU	*	ENTRY USED BY TDATE
	LDK	A3,6	COUNTER 
	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
* 
TPDIS	EQU	* 
	CMR	A7	CLEAR MIDNIGTH CARRY
	ABL	LKMQDI 
* 
	EJECT			MONTIM 
* 
* 
**********
* SETTIM *
**********
* 
* 
*    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 
* 
SETDAT	EQU	*	ENTRY USED BY TDATE
	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
* 
	EJECT			MONTIM 
* 
* 
	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
* 
	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
* 
	EJECT			MONTIM 
* 
* 
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 
	RB	TPDIS 
* 
	EJECT			MONTIM 
* 
* 
********* 
* TDATE * 
********* 
* 
* 
*    THIS IS THE GET/SET DATE LKM PROCESSOR.
* 
*    IT IS ENTERED FROM THE LKM HANDLER 
*    WITH THE FOLLOWING PARAMETERS: 
* 
*    A7 = GET/SET DATE PARAMETER
*         (A7 = 0 MEANS GET DATE, A7 = 1 MEANS SET DATE)
*    A8 = DATE CONTROL BLOCK (DCB)
* 
* 
TDATE	EQU	*	GET/SET DATE LKM PROCESSOR ENTRY
	LDR	A1,A7	SAVE REQUEST PARAMETER 
	LDKL	A7,MONCLO-2	ADDRESS TO DAY
	ADK	A1,0	SET CR
	RB(Z)	GETDAT	GET DATE
	RB	SETDAT	SET DATE 
* 
	EJECT			MONTIM 
* 
* 
**********
* BYTASC *
**********
* 
* 
*    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 *
**********
* 
* 
*    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