|
|
DataMuseum.dkPresents historical artifacts from the history of: Philips Data Systems |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Philips Data Systems Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 6112 (0x17e0)
Notes: pts_type(SC)
Names: »TIMER.SC«
└─⟦c47f25c27⟧ Bits:30009688 Philips computer tape "600318"
└─⟦this⟧ »M:KMDV/TIMER.SC«
└─⟦efe3a1cfc⟧ Bits:30009667 Philips computer tape "600113"
└─⟦this⟧ »TOSSWORK/TIMER.SC«
└─⟦fcfed1ed9⟧ Bits:30009706 Philips computer tape "M_167"
└─⟦this⟧ »M:167D/TIMER.SC«
IDENT TIMER REL 8.2 78-09-15 870105040820 * *************************************************** * * PHILIPS TERMINAL SYSTEM PTS * * TIMER = TIMER FUNCTIONS * * * * * * *************************************************** * * * THIS MODULE CONTAINS TIMER LKM PROCESSORS AND * THE FOLLOWING SUBROUTINES: * * -SETIME: SET BLOCK IN TIMER QUEUE * -SETIMP: SETIME + STORE TIMER POINTER * * EJECT * * *********** * ENTRIES * *********** * * ENTRY TIMER LKM-PROCESSOR ENTRY SETIME SET BLOCK IN TIMER QUEUE ENTRY SETIMP SETIME + STORE TIMER POINTER * * *********** * EXTRNALS * ************ * * EXTRN TDISP DISPATCHER EXTRN SRUN POINTER TO RUNNING SEGMENT IN LSBT EXTRN LKMQDI QUEUE TERMINAL AND DISPARCH EXTRN LKMRQE LKM REQUEST ERROR EXTRN GETBLK GET A FREE BLOCK EXTRN FREBLK SET A BLOCK FREE EXTRN FNDTID FIND TTAB-ADDRESS EXTRN QTJOB QUEUE TERMINAL JOB EXTRN ACTOT ACTIVATE A TERMINAL EXTRN SAVE8 SAVE 8 REGISTERS ON STACK EXTRN TIMQUE POINTER TO FIRST BLOCK IN TIMER QUEUE EXTRN IHRET8 RESTORE 8 REGISTERS FROM STACK EJECT * * T I M E R * * THIS IS THE TIMER LKM PROCESSOR. * IT IS ENTERED FROM THE LKM-HANDLER WITH THE FOLLOWING * PARAMETERS: * * 1. PROGRAM DELAY * * A4 = 0 * A5 = TTAB-ADDRESS * A8 = DELAY * * * 2. TIMING AND ACTIVATION * * A1 = PARAMETER * A4 = DISPATCH ADDRESS OF PROGRAM TO BE ACTIVATED * A5 = TTAB-ADDRESS OF CALLING PROGRAM * A7 = TERMINAL IDENTIFICATION OF PROGRAM TO BE ACTIVATED * A8 = DELAY * * TIMER EQU * LDR A4,A4 TIMING AND ACTIVATION ? RF(NZ) TIM010 YES * * * PROGRAM DELAY * LDR A1,A5 SET PARAMETER ST A8,PAR1+2 SET TIME CF A15,SETIME PAR1 DATA DELAY,0 TTDIS ABL TDISP GO TO DISPATCHER EJECT * * * TIMING AND ACTIVATION * TIM010 EQU * CF A15,FNDTID FIND TTAB-ADDRESS LDR A2,A2 ABL(Z) LKMRQE TTAB NOT FOUND LDR A3,A2 IN BLOCK A3=TTAB-ADDRESS LDR A2,A4 A2=DISPATCH ADDRESS CF A15,GETBLK A1=PARAMETER LDR A1,A4 SET BLOCK ADDRESS AS PARAMETER ST A8,PAR2+2 SET TIME CF A15,SETIME PAR2 DATA TIMACT,0 ABL LKMQDI EJECT * * * RETURN AFTER TIME OUT * * 1.PROGRAM DELAY * DELAY EQU * LDR A5,A1 SET TTAB-ADDRESS CF A15,QTJOB AND QUEUE FOR DISPATCHING RB TTDIS * * * 2. TIMING AND ACTIVATION * TIMACT EQU * LDR A4,A1 GET BLOCK ADDRESS CF A15,FREBLK AND SET IT FREE LDR A5,A3 SET TTAB-ADDRESS LD A3,SRUN GET POINTER TO RUNNIG SEGMENT RF(Z) TIMA JMP IF ROOT SEGMENT SU A2,2,A3 ELSE CALCULATE RELATIVE ADDRESS TIMA EQU * LDK A7,0 MONITOR ACTIVATION PARAMETER CF A15,ACTOT AND ACTIVATE TERMINAL RB TTDIS EJECT * * * S E T I M E , S E T I M P * * SUBROUTINE TO SET BLOCK IN TIMER QUEUE * AND IF SETIMP, STORE TIMER POINTER * ENTRY PARAMETERS:- * * A1 = PARAMETER * A4 = IF SETIMP: TIMER POINTER ADDRESS * P1 = DISPATCH ADDRESS AFTER TIME OUT * P2 = DELAY * * P1 AND P2 ARE STORED AFTER THE SUBROUTINE REQUEST * * EXIT PARAMETER:- * * A4 = ADDRESS TO TIMER * * SETIME EQU * LDK A4,0 SETIMP EQU * CF A15,SAVE8 LDR A6,A4 SAVE TIMER POINTER ADDRESS LDR A3,A4 LD A5,20,A15 LOAD FIRST PARAMETER ADDRESS LDR* A2,A5 DISPATCH ADDRESS IN A2 ADK A5,2 LDR* A8,A5 TIME IN A8 ADK A5,2 ST A5,20,A15 ADJUST PROGRAM COUNTER CF A15,GETBLK GET A FREE BLOCK LDR A2,A4 C1R A1,A8 CF A15,GETBLK GET TIMER BLOCK LD A1,TIMQUE STR A1,A4 SET BLOCK IN QUEUE ST A4,TIMQUE ADK A4,4 ST A4,10,A15 SET TIMER ADDRESS A4 ON STACK LDR A6,A6 RF(Z) SETEND -SETIME STR A4,A6 -SETIMP STORE TIMER POINTER SETEND ABL IHRET8 * END