mirror of
https://github.com/PDP-10/its.git
synced 2026-04-25 03:45:11 +00:00
112 lines
1.6 KiB
Plaintext
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
|