|
|
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: 5508 (0x1584)
Notes: pts_type(SC)
Names: »TIMER.SC«
└─⟦48601905a⟧ Bits:30009668 Philips computer tape "600121"
└─⟦this⟧ »M:DE10/TIMER.SC«
└─⟦d2a299635⟧ Bits:30009698 Philips computer tape "600415"
└─⟦this⟧ »M:DE10/TIMER.SC«
IDENT TIMER REL 10.0 80-03-14 870105041000 * * *************************************************** * * 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 TIMER * * *********** * ENTRIES * *********** * * ENTRY TIMER LKM PROCESSOR ENTRY SETIME SET BLOCK IN TIMER QUEUE ENTRY SETIMP SETIME + STORE TIMER POINTER EJECT TIMER * * *********** * EXTRNALS * ************ * * EXTRN TDISP DISPATCHER EXTRN LKMQDI QUEUE TERMINAL AND DISPATCH EXTRN LKMRQE LKM REQUEST ERROR EXTRN GETBLK GET A FREE BLOCK EXTRN FREBLK SET A BLOCK FREE EXTRN FNDTID FIND TTAB ADDRESS EXTRN ACTDIS ACTIVATE TASK AND DISPATCH EXTRN SAVE8 SAVE 8 REGISTERS ON STACK EXTRN TIMQUE POINTER TO FIRST BLOCK IN TIMER QUEUE EXTRN IHRET8 RESTORE 8 REGISTERS FROM STACK EJECT TIMER * * ***************************************** * * CONDITIONAL ASSEMBLY * ***************************************** * * A PROGRAM VERSION USING THE EXTENDED INSTRUCTION * SET IS OBTAINED BY SETTING CPU852 EQU 0. * CPU852 EQU 1 * EJECT TIMER * * * 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 * ADK A4,0 SET CR RF(NZ) TIM010 TIMING AND ACTIVATION * EJECT TIMER * * PROGRAM DELAY * LDR A1,A5 SET PARAMETER ST A8,PAR1+2 SET TIME CF A15,SETIME PAR1 DATA DELAY,0 ABL TDISP GO TO DISPATCHER EJECT TIMER * * TIMING AND ACTIVATION * TIM010 EQU * CF A15,FNDTID FIND TTAB ADDRESS ADK A2,0 SET CR 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 * QUEDIS EQU * ABL LKMQDI * EJECT TIMER * * * RETURN AFTER TIME OUT * * 1.PROGRAM DELAY * DELAY EQU * LDR A5,A1 SET TTAB ADDRESS RB QUEDIS QUEUE TASK FOR DISPATCHING * * 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 ABL ACTDIS ACTIVATE TASK AND DISPATCH * EJECT TIMER * * * 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 * IFT CPU852=1 CF A15,SAVE8 SAVE A1-A8 ON STACK XIF * IFT CPU852=0 INH MSR 8,A15 SAVE A1-A8 ON STACK XIF * EJECT TIMER * * 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 * EJECT TIMER * * SETEND EQU * IFT CPU852=1 ABL IHRET8 RESTORE A1-A8 AND RETURN XIF * IFT CPU852=0 MLR 8,A15 RESTORE A1-A8 FROM STACK... RTN A15 ...AND RETURN XIF * * * END