1
0
mirror of https://github.com/PDP-10/its.git synced 2026-04-25 03:45:11 +00:00
Files
PDP-10.its/src/clib/c10tmm.cmid
2018-10-23 19:37:16 +02:00

112 lines
1.6 KiB
Plaintext

;
; C10TMM - Program to determine the timing constants for
; the C timing package (C10TMR). The computed
; times are left in TIME1, TIME2, TIME3. Times
; are in nanoseconds.
;
; This file is ITS dependent.
; This is a stand-alone program.
;
A==1
B==2
C==3
D==4
P==17
CL==PUSHJ P,
RTN==POPJ P,
GO==JRST
.CCALL==1_27.
TP"=16 ; TIME STACK POINTER
%TPROC==0 ; THE PROCEDURE POINTER
%TNAME==1 ; THE PROCEDURE NAME (SNARFED FROM PROCEDURE)
%TNCAL==2 ; THE NUMBER OF CALLS
%TTIME==3 ; THE TOTAL AMOUNT OF ACCUMULATED TIME
%TSIZE==4 ; SIZE OF TIME TABLE ENTRY
%FTABL==0 ; POINTER TO TIME TABLE ENTRY
%FTIME==1 ; ACCUMULATED OR START TIME
%FRTNA==2 ; ACTUAL RETURN ADDRESS
%FSIZE==3 ; SIZE OF STACK FRAME
TIME1: 0
TIME2: 0
TIME3: 0
TIME4: 0
START: MOVE P,[-2000,,PDL]
MOVE A,[JSR UUOH]
MOVEM A,41
.SUSET [24,,TIME1]
CL TSUSET
.SUSET [24,,TIME2]
CL TUUO
.SUSET [24,,TIME3]
CL TEPILOG
.SUSET [24,,TIME4]
MOVE A,TIME2
SUB A,TIME1
IMULI A,4069.
IDIVI A,1000.
MOVEM A,TIME1
MOVE A,TIME3
SUB A,TIME2
IMULI A,4069.
IDIVI A,1000.
MOVEM A,TIME2
MOVE A,TIME4
SUB A,TIME3
IMULI A,4069.
IDIVI A,500.
MOVEM A,TIME3
SETZM TIME4
.VALUE
TSUSET: REPEAT 1000.,[.SUSET [24,,C]
]
RTN
TUUO: REPEAT 1000.,[
.CCALL 2,0
]
RTN
UUOH: 0
GO UUO$HANDLER
UUO$HANDLER:
MOVEM D,USAVED
LDB D,[330500,,ZERO]
GO @UUOH(D)
USAVED: 0
ZERO: 0
BAR: -1
BAR2: 0
0
0
BAR3: 0
0
0
0
TEPILOG:
MOVEI TP,BAR2
MOVEI B,BAR3
MOVEI A,0
REPEAT 500.,[
MOVE 0,C
SUBI C,37
SUB C,%FTIME(TP)
MOVE C,%FTABL(TP)
ADDM C,%TTIME(B)
SUBI TP,%FSIZE
ADDI 0,37
SUBM 0,%FTIME(TP)
GO @[.+1](A) ; TO NEXT LOCATION
]
RTN
PDL: BLOCK 2000
END START