Cleanup of typos.
[retro-software/dec/tops10/v1.19.git] / src / syscss.mac
1 TITLE SYSCSS - COMMON SYSTEM SUBROUTINES\r
2 SUBTTL 8-9-65\r
3 EXTERNAL UXIT,ERROR,USRDDT,USRPOV,PUUOAC,USRREL\r
4 \r
5 ;RETURN THE DATE TO THE USER\r
6 \r
7 \r
8           INTERNAL DATE,THSDAT\r
9 \r
10 DATE:     MOVE DAT, THSDAT\r
11           JRST STOAC\r
12 \r
13 THSDAT:   0             ;CONTAINS THE DATE\r
14 \r
15 ;RETURN TIME SYSTEM HAS RUN IN 60THS OF A SECOND\r
16 \r
17 INTERNAL TIMER\r
18 EXTERNAL TIME\r
19 \r
20 TIMER:    SKIPA DAT, TIME  ;FALL INTO STOAC\r
21 \r
22 ;RETURN DATA SWITCHES\r
23 \r
24 INTERNAL SWITCH\r
25 \r
26 SWITCH:   DATAI DAT\r
27 \r
28 ;STORE DAT IN USER AC\r
29 \r
30 INTERNAL STOAC\r
31 \r
32 STOAC:    LDB TAC, PUUOAC\r
33           HRLI TAC, PROG\r
34           MOVEM DAT,@TAC\r
35           JRST UXIT\r
36 \r
37 ;RETURN DEVICE CHARACTERISTICS\r
38 \r
39 INTERNAL DVCHR\r
40 EXTERNAL JOB,DEVSRC,PJOBN\r
41 \r
42 DVCHR:    MOVE ITEM,JOB\r
43           PUSHJ PDP,DEVSRC      ;SEARCH FOR DEVICE\r
44           SKIPA DAT,[0]         ;NOT A DEVICE\r
45           SKIPA DAT,DEVMOD(DEVDAT)\r
46           JRST STOAC\r
47           LDB TAC,PJOBN         ;GET JOB NUMBER\r
48           CAME TAC,JOB          ;DOES USER ALREADY HAVE THIS DEVICE?\r
49           TRNN DAT,ASSCON+ASSPRG        ;NO\r
50           TLO DAT,DVAVAL        ;NO, BUT HE CAN GET IT\r
51           JRST STOAC\r
52 \f\r
53 \r
54 , CALLING SEQUENCE\r
55 ,         PUSHJ PDP,HASH\r
56 ,         EXIT;L                ALWAYS RETURNS HERE\r
57 , COMPUTES XOR HASH TYPE INDEX FROM NAME (SIXBIT CODE) IN AC DAT\r
58 , AND LEAVES THE RESULT (00<OR= INDEX <OR=77) AS AN INTEGER IN TAC.\r
59 , THE ALGORITHM IS AS FOLLOWS: (V = EXCLUSIVE OR)\r
60 , BIT     35:=8V17V26V35\r
61 ,         34:=7V16V25V34\r
62 ,         33:=6V15V24V33\r
63 ,         32:=5V11V23V29\r
64 ,         31:=4V10V22V28\r
65 ,         30:=3V9V21V27\r
66 , MONITOR INTERFACE\r
67 ,         SYMBOLS SET/USED:\r
68 ,                   ACCUMULATORS:       DAT U           TAC S/U\r
69 ,                                       PDP S/U         TAC1 S/U\r
70 ;         INTERN HASH\r
71 \r
72 ;HASH:    HLR TAC,DAT\r
73 ;         MOVE TAC1,DAT\r
74 ;         XORB TAC1,TAC\r
75 ;         ROT TAC1,-11\r
76 ;         XOR TAC,TAC1\r
77 ;         ANDI TAC,UTBNM1\r
78 ;         POPJ PDP,             ;       RETURN\r
79 \f\r
80           INTERNAL SETDDT\r
81 \r
82 SETDDT:   HLRI TAC,10000\r
83           MOVEM TAC,USRDDT\r
84           JRST UXIT\r
85 \r
86 \r
87           INTERNAL SETPOV\r
88 \r
89 SETPOV:   HLRI TAC,10000\r
90           MOVEM TAC,USRPOV\r
91           JRST UXIT\r
92 \r
93 ;WAIT FOR IO TO BECOME INACTIVE ON CHANNEL AC\r
94 \r
95 INTERNAL WAIT\r
96 EXTERNAL IOIERR,WAIT1\r
97 \r
98 WAIT:     JUMPE DEVDAT,IOIERR ;CHANNEL ASSIGNED?\r
99           PUSHJ PDP,WAIT1     ;WAIT TILL INACTIVE\r
100           JRST UXIT\r
101           END,\r