Google
 

Trailing-Edge - PDP-10 Archives - BB-P363B-SM_1985 - mcb/cex/cextim.lst
There are no other files named cextim.lst in the archive.
CEXTIM - COMM/EXEC TIMER SERVICES	DNMAC X24.07-563  28-MAY-85  14:24
CEXTIM.M11    30-DEC-82 00:34		TABLE OF CONTENTS

  2632		DECLARATIONS
  2659		$LTMDS - Disable Database Timer
  2702		$LTMEN - Enable Database Timer
  2745		$STMCN - Cancel short timer
  2800		$STMRQ - Start short timer
CEXTIM - COMM/EXEC TIMER SERVICES	DNMAC X24.07-563  28-MAY-85  14:24  PAGE 1
CEXTIM.M11    30-DEC-82 00:34

     1						.TITLE	CEXTIM - COMM/EXEC TIMER SERVICES
     2						.IDENT	/003070/
     3						.ENABL	LC
     4
     5					;
     6					;                    COPYRIGHT (c) 1980, 1981, 1982
     7					;                    DIGITAL EQUIPMENT CORPORATION
     8					;                        Maynard, Massachusetts
     9					;
    10					;     This software is furnished under a license and may  be  used
    11					;     and copied only in accordance with the terms of such license
    12					;     and with the inclusion of the above copyright notice.   This
    13					;     software  or any other copies thereof may not be provided or
    14					;     otherwise made available to any other person.  No  title  to
    15					;     and ownership of the software is hereby transferred.
    16					;
    17					;     The information  in  this  software  is  subject  to  change
    18					;     without  notice  and should not be construed as a commitment
    19					;     by DIGITAL EQUIPMENT CORPORATION.
    20					;
    21					;     DIGITAL assumes no responsibility for the use or reliability
    22					;     of  its  software  on  equipment  which  is  not supplied by
    23					;     DIGITAL.
    24					;
    25
    26					;++
    27					; FACILITY: MCB Communications Executive
    28					;
    29					; FUNCTIONAL ABSTRACT:
    30					;
    31					;	This module contains the routines to handle timer service requests.
    32					;
    33					; ENVIRONMENT: RSX kernel mode with EIS
    34					;
    35					; AUTHOR: Alan D. Peckham, CREATION DATE: 21-MAR-80
    36					;
    37					; MODIFIED BY:
    38					;
    39					;	Alan D. Peckham, 2-Jul-80: VERSION 3.0
    40					; 01	- Change CRSH$ references to CRSH$S.
    41					; 02	- Macroize references to APR6 mapping
    42					; 03	- Update CRSH$S contexts.
    43					;	Alan D. Peckham, 9-Dec-80: VERSION 3.1
    44					; 04	- All LIX, PIX bytes refer to data base indices.
    45					;	  Rename ZF.TIM to ZF.LTM.
    46					;	  Merge $DDSTM, $DLSTM, $LLSTM into STM.
    47					;	Alan D. Peckham, 30-Jan-80: VERSION 3.2
    48					; 05	- Support .CRPDB current process descriptor.
    49					;	  Add data base timer enable/disable.
    50					; 06	- Remove LLC timer support.
    51					; 07	- Fix short timer determination and expand to include
    52					;	  time unit specifier.
    53					;--
CEXTIM - COMM/EXEC TIMER SERVICES	DNMAC X24.07-563  28-MAY-85  14:24  PAGE 2
CEXTIM.M11    30-DEC-82 00:34		DECLARATIONS

    55						.SBTTL	DECLARATIONS
    56
    57					;
    58					; INCLUDE FILES:
    59					;
    60
    61						.MCALL	CLKDF$,CRSH$S
    62						.GLOBL	$CLINS,$CLRMV,$TKPS
    63
    64					;
    65					; MACROS:
    66					;
    67					;	None
    68					;
    69					; EQUATED SYMBOLS:
    70					;
    71
    72	000000'					CLKDF$			; RSX clock queue symbol definitions.
    73
    74					;
    75					; OWN STORAGE:
    76					;
    77
    78						.GLOBL	.TIMDS		; Address of timer handler.
    79
    80					;
CEXTIM - COMM/EXEC TIMER SERVICES	DNMAC X24.07-563  28-MAY-85  14:24  PAGE 3
CEXTIM.M11    30-DEC-82 00:34		$LTMDS - DISABLE DATABASE TIMER

    82						.SBTTL	$LTMDS - Disable Database Timer
    83					;++
    84					; FUNCTIONAL DESCRIPTION:
    85					;
    86					;	Disable the data base timer.
    87					;
    88					; CALLING SEQUENCE:
    89					;
    90					;	CALL	$LTMDS
    91					;
    92					; INPUT PARAMETERS:
    93					;
    94					;	None
    95					;
    96					; IMPLICIT INPUTS:
    97					;
    98					;	None
    99					;
   100					; OUTPUT PARAMETERS:
   101					;
   102					;	None
   103					;
   104					; IMPLICIT OUTPUTS:
   105					;
   106					;	None
   107					;
   108					; CONDITION CODES:
   109					;
   110					;	None
   111					;
   112					; SIDE EFFECTS:
   113					;
   114					;	None
   115					;--
   116
   117		000000'				.PSECT	$CODE$,I,RO
   118	000000'				$LTMDS::PLVL$			; Crash if not at process level.
   119	000000'					PUSH$S	R1
   120	000002'	016701	000000G			MOV	.CRPDB,R1	; Get process descriptor
   121	000006'	042761	100000	000010		BIC	#ZF.DTM,Z.FLG(R1) ; to disable timer.
   122	000014'					POP$S	R1
   123	000016'	000207				RETURN
CEXTIM - COMM/EXEC TIMER SERVICES	DNMAC X24.07-563  28-MAY-85  14:24  PAGE 4
CEXTIM.M11    30-DEC-82 00:34		$LTMEN - ENABLE DATABASE TIMER

   125						.SBTTL	$LTMEN - Enable Database Timer
   126					;++
   127					; FUNCTIONAL DESCRIPTION:
   128					;
   129					;	Enable the data base timer.
   130					;
   131					; CALLING SEQUENCE:
   132					;
   133					;	CALL	$LTMEN
   134					;
   135					; INPUT PARAMETERS:
   136					;
   137					;	None
   138					;
   139					; IMPLICIT INPUTS:
   140					;
   141					;	None
   142					;
   143					; OUTPUT PARAMETERS:
   144					;
   145					;	None
   146					;
   147					; IMPLICIT OUTPUTS:
   148					;
   149					;	None
   150					;
   151					; CONDITION CODES:
   152					;
   153					;	None
   154					;
   155					; SIDE EFFECTS:
   156					;
   157					;	None
   158					;--
   159
   160		000020'				.PSECT	$CODE$,I,RO
   161	000020'				$LTMEN::PLVL$			; Crash if not at process level.
   162	000020'					PUSH$S	R1
   163	000022'	016701	000000G			MOV	.CRPDB,R1	; Get process descriptor
   164	000026'	052761	100000	000010		BIS	#ZF.DTM,Z.FLG(R1) ; to enable timer.
   165	000034'					POP$S	R1
   166	000036'	000207				RETURN
CEXTIM - COMM/EXEC TIMER SERVICES	DNMAC X24.07-563  28-MAY-85  14:24  PAGE 5
CEXTIM.M11    30-DEC-82 00:34		$STMCN - CANCEL SHORT TIMER

   168						.SBTTL	$STMCN - Cancel short timer
   169					;++
   170					; FUNCTIONAL DESCRIPTION:
   171					;
   172					;	Cancel the specified short timer.
   173					;
   174					; CALLING SEQUENCE:
   175					;
   176					;	CALL	$STMCN
   177					;
   178					; INPUT PARAMETERS:
   179					;
   180					;	R4 = Address of timer block.
   181					;
   182					; IMPLICIT INPUTS:
   183					;
   184					;	None
   185					;
   186					; OUTPUT PARAMETERS:
   187					;
   188					;	None
   189					;
   190					; IMPLICIT OUTPUTS:
   191					;
   192					;	None
   193					;
   194					; CONDITION CODES:
   195					;
   196					;	None
   197					;
   198					; SIDE EFFECTS:
   199					;
   200					;	None
   201					;--
   202
   203		000040'				.PSECT	$CODE$,I,RO
   204	000040'				$STMCN::PLVL$			; Crash if not at process level.
   205
   206		   001				.IF	NE,D$$BUG
   207						CMP	T.IDN(R4),R4	; If identifier not block address
   208						BNE	100$		; then crash.
   209						.IFTF
   210
   211	000040'					SAV5$S			; Get room to move
   212	000044'					PUSH$S	R0
   213	000046'	010405				MOV	R4,R5		; Set timer ID,
   214	000050'	012704	000006			MOV	#C.SYST,R4	; request type,
   215	000054'	004767	000000G			CALL	$CLRMV		; and tell RSX to cancel them.
   216	000060'					POP$S	R0
   217	000062'	000207				RETURN
   218
   219						.IFT
   220					100$:	CRSH$S	TMB		; Invalid timer block identifier
   221		   000				.ENDC
CEXTIM - COMM/EXEC TIMER SERVICES	DNMAC X24.07-563  28-MAY-85  14:24  PAGE 6
CEXTIM.M11    30-DEC-82 00:34		$STMRQ - START SHORT TIMER

   223						.SBTTL	$STMRQ - Start short timer
   224					;++
   225					; FUNCTIONAL DESCRIPTION:
   226					;
   227					;	Schedule a short timer for the current process.
   228					;
   229					; CALLING SEQUENCE:
   230					;
   231					;	CALL	$STMRQ
   232					;
   233					; INPUT PARAMETERS:
   234					;
   235					;	R4 = Timer block containing:
   236					;	    T.TIM	timer interval in milliseconds.
   237					;
   238					; IMPLICIT INPUTS:
   239					;
   240					;	None
   241					;
   242					; OUTPUT PARAMETERS:
   243					;
   244					;	None
   245					;
   246					; IMPLICIT OUTPUTS:
   247					;
   248					;	None
   249					;
   250					; CONDITION CODES:
   251					;
   252					;	None
   253					;
   254					; SIDE EFFECTS:
   255					;
   256					;	None
   257					;--
   258
   259		000064'				.PSECT	$CODE$,I,RO
   260	000064'				$STMRQ::PLVL$			; Crash if not at process level.
   261
   262		   001				.IF	DF,D$$BUG
   263	000064'	105764	000003			TSTB	T.UNT(R4)
   264	000070'	001404				BEQ	10$
   265	000072'	122764	000002	000003		CMPB	#TU.SEC,T.UNT(R4)
   266	000100'	001055				BNE	100$
   267						.IFTF
   268
   269	000102'	016764	000000G	000020	10$:	MOV	.CRPDB,T.PDB(R4) ; Set process descriptor,
   270	000110'	010464	000004			MOV	R4,T.IDN(R4)	; timer identifier,
   271	000114'	016764	000000G	000012		MOV	.TIMDS,C.SUB(R4) ; and service routine address
   272	000122'	001443				BEQ	90$		; (if there is one).
   273	000124'					SAV5$S			; Get room to move...
   274	000130'					PUSH$S	<R0,@#KISAR5>
   275	000136'	016402	000016			MOV	T.TIM(R4),R2	; Get time interval
   276	000142'	105764	000003			TSTB	T.UNT(R4)	; If in seconds
   277	000146'	001404				BEQ	20$		; then
   278	000150'	070267	000000G			MUL	$TKPS,R2	; this many ticks.
CEXTIM - COMM/EXEC TIMER SERVICES	DNMAC X24.07-563  28-MAY-85  14:24  PAGE 6-1
CEXTIM.M11    30-DEC-82 00:34		$STMRQ - START SHORT TIMER

   279	000154'	010302				MOV	R3,R2
   280	000156'	000407				BR	70$
   281	000160'	070267	000000G		20$:	MUL	$TKPS,R2	; convert to number of ticks
   282	000164'	071227	001750			DIV	#1000.,R2	; from milliseconds.
   283	000170'	005703			60$:	TST	R3		; If remainder,
   284	000172'	001401				BEQ	70$		; then
   285	000174'	005202				INC	R2		; round up.
   286	000176'	005001			70$:	CLR	R1		; Set high order time.
   287	000200'	010400				MOV	R4,R0		; Clock queue entry address.
   288	000202'	012704	000006			MOV	#C.SYST,R4	; Request type
   289	000206'	016005	000004			MOV	T.IDN(R0),R5	; and identifier.
   290	000212'	017737	000000G	000000G		MOV	@.PDBVB,@#KISAR5 ; Set mapping to CEX process,
   291	000220'	004767	000000G			CALL	$CLINS		; tell RSX to queue it up.
   292	000224'					POP$S	<@#KISAR5,R0>
   293	000232'	000207			90$:	RETURN
   294
   295						.IFT
   296	000234'				100$:	CRSH$S	TMU		; Invalid time unit
   297		   000				.ENDC
   298
   299		000001				.END
CEXTIM - COMM/EXEC TIMER SERVICES	DNMAC X24.07-563  28-MAY-85  14:24  PAGE 7
CEXTIM.M11    30-DEC-82 00:34		CROSS REFERENCE TABLE -- USER SYMBOLS

CE$TMU= ****** G      	  296#
C.SUB   000012        	  271*
C.SYST= 000006        	  214	  288
D$$BUG= 000000        	  118	  161	  204	  206	  260	  262
KISAR5= ****** GX     	  274	  290*	  292*
S.PARM= 000016        	  211#	  273#
TU.SEC= 000002        	  265
T.IDN   000004        	  270*	  289
T.PDB   000020        	  269*
T.TIM   000016        	  275
T.UNT   000003        	  263	  265	  276
ZF.DTM= 100000        	  121	  164
Z.FLG   000010        	  121*	  164*
$CLINS= ****** G      	   62#	  291*
$CLRMV= ****** G      	   62#	  215*
$CRSH = ****** G      	  296#*
$LTMDS  000000RG   002	  118#
$LTMEN  000020RG   002	  161#
$SAVE5= ****** G      	  211#	  273#
$STMCN  000040RG   002	  204#
$STMRQ  000064RG   002	  260#
$TKPS = ****** G      	   62#	  278	  281
.CRPDB= ****** GX     	  120	  163	  269
.PDBVB= ****** GX     	  290
.TIMDS= ****** G      	   78#	  271
CEXTIM - COMM/EXEC TIMER SERVICES	DNMAC X24.07-563  28-MAY-85  14:24  PAGE 8
CEXTIM.M11    30-DEC-82 00:34		CROSS REFERENCE TABLE -- MACRO NAMES

CLKDF$	   61#	   72
CRSH$S	   61#	  296
PLVL$	  118	  161	  204	  260
POP$S	  122	  165	  216	  292
PUSH$S	  119	  162	  212	  274
SAV5$S	  211	  273


. ABS.  000000     000	   CON   RW    ABS   LCL   I  
        000000     001	   CON   RW    REL   LCL   I  
$CODE$  000242     002	   CON   RO    REL   LCL   I  


 ERRORS DETECTED:  0
 DEFAULT GLOBALS GENERATED:  3

 CEXTIM,CEXTIM/CR=MCB:RSXLIB/PA:1,MCBLIB/PA:1,CEX:CEXLIB/PA:1,CEXTIM
 RUN-TIME: 4 1 .2 SECONDS
 RUN-TIME RATIO: 24/5=4.4
 CORE USED:  15K  (29 PAGES)