Cleanup of typos.
[retro-software/dec/tops10/v1.19.git] / src / s.mac
1         XLIST\r
2 \r
3 \r
4 \r
5 \r
6 DEFINE  XP(A,B)               ;SYSTEM PARAMETER\r
7         <A=B\r
8         INTERNAL A\r
9 >\r
10 ,ACCUMULATORS\r
11         XP IOS,0;             IO STATUS WORD\r
12         XP TAC,1;             TEMPORARY\r
13         XP TAC1,2;                      TEMPORARY\r
14         XP PDP,3;             C(LH)=NUMBER OF LOCATIONS LEFT IN PD LIST\r
15 ,                             C(RH)=PUSHDOWN POINTER\r
16 REPEAT 0,<      XP SUB,10             RETURN (PC) FOR ONE LEVEL SUBROUTINES\r
17 >\r
18         XP TEM,10\r
19         XP ITEM,4;            BYTE OR WORD POINTER.  ITEM COUNT\r
20         XP DAT,5;             DATA OR TEMPORARY\r
21         XP DEVDAT,6;          C(LH)=UNUSED.\r
22 ,                             C(RH)=ADDRESS OF DEVICE DATA BLOCK\r
23         XP JBUF,DAT;          ADDRESS OF JOB BUFFER AREA=JBFADR\r
24         XP PROG,7;            C(LH)=UNUSED\r
25 ,                             C(RH)=ADDRES OF USER'S PROGRAM AREA\r
26         XP JDAT,11;           C(RH)=ADDRESS OF JOB DATA\r
27 ,ONLY 0 TO 10 NORMALLY REQUIRED\r
28 ,FOR INTERRUPT SERVICE\r
29         XP BUFPNT,12;   C(JBFADR 18-35)\r
30         XP BUFWRD,13;   BIT 0=IOUSE\r
31 ,                       BITS 1-17=BUFFER SIZE\r
32 ,                       BITS 18-35=NEXT BUFFER ADDRESS\r
33         XP UUO,14;      LAST UUO PROCESSED\r
34         XP AC1,15       ;TEMPORARY ACS(MORE TEMPORARY\r
35         XP AC2,16       ;THEN TAC,TAC1)\r
36         XP AC3,17       ;\r
37 \f, DEVICE DATA BLOCK NAMES\r
38         XP DEVNAM,0;    NAME IN SIX BIT ASCII\r
39 ,                       C(LH)=DEVICE MNEMONIC\r
40 ,                       C(RH)=DEVICE NUMBER, LEFT JUSTIFIED\r
41         XP DEVCHR,1;    CHARACTERISTIC\r
42 ,                       BITS 0-8=JOB NUMBER\r
43 ,                            ZERO VALUE IMPLIES NOT ASSIGNED\r
44 ,                       BITS 9-11=PRIORITY CHANNEL FOR DEVICE\r
45         XP PICHN,100    ;RIGHTMOST BIT OF PI CHAN. FIELD\r
46 ,                       BIT 12=UNUSED\r
47 ,                       BIT 13=IORET. 0 IF DEVICE HAS A SHORT\r
48 ,                           DISPATCH TABLE.  1 IF LONG\r
49         XP IORET,20     ;FOR RETRIEVABLE DEVICES.\r
50                 ;SHORT DISPATCH TABLE =0. LONG = 1\r
51 ,                       BITS 14-17=JOB DEVICE CHANNEL NUMBER\r
52 ,                       BITS 18-23=DEVICE NUMBER, BINARY\r
53 ,                       BITS 24-35=BUFFER SIZE\r
54         XP DEVIOS,2;    STATUS WORD.  SEE BELOW\r
55         XP DEVSER,3;    C(LH)=NEXT DEVICE DATA BLOCK\r
56 ,                       C(RH)=DEVICE SERVICE DISPATCH TABLE\r
57 ,    DEVICE SERVICE DISPATCH TABLE ASSIGNMENTS\r
58         XP DRL,0;                   XXXDSP   :  RELEASE\r
59         XP DCL,1;                   XXXDSP +1:  CLOSE\r
60         ;IMMEDIATE ADDRESS PART OF CLOSE UUO\r
61                 XP CLSOUT,1     ;INHIBIT CLOSING OUTPUT\r
62                 XP CLSIN,2      ;INHIBIT CLOSING INPUT\r
63         XP DOU,2;                   XXDSP +2:  OUTPUT\r
64         XP DIN,3;                   XXXDSP +3:  INPUT;SHORT DISPATCH TABLE\r
65         XP DEN,4;                   XXXDSP +4:  ENTER\r
66         XP DLK,5;                   XXXDSP +5:  LOOKUP\r
67         XP DDO,6;                   XXXDSP +6:  DMPO\r
68         XP DDI,7;                   XXXDSP +7:  DMPI\r
69         XP DSO,10;          XXXDSP+10:  SETO\r
70         XP DSI,11;          XXXDSP+11:  SETI\r
71         XP DGF,12;          XXXDSP+12:  GETF;LOGN DISPATCH TABLE\r
72         XP DEVMOD,4     ;BITS 6-11=LEFT HALF OF IMAGE MODE BYTE POINTER\r
73                         ;BIT 35-J=1 IF MODE J IS LEGAL FOR THIS DEVICE\r
74                         ;BIT 18 DEVICE ASSIGNED BY CONSOLE COMMAND\r
75                         ;BIT 19 DEVICE ASSGINED BY PROGRAM (INIT)\r
76 ;IRGHT HALT OF DEVICE MODE WORD\r
77         XP ASSCON,400000        ;ASSIGNED BY CONSOLE COMMAND ASSIGN\r
78         XP ASSPRG,200000        ;ASSIGNED BY PROGRAM(INIT UUO)\r
79 ;LEFT HALF DEVICE CHARACTERISTICS(DEVCHR UUO)\r
80         XP DVOUT,1      ;OUTPUT DEVICE\r
81         XP DVIN,2       ;INPUT DEVICE\r
82         XP DVDIR,4      ;HAS A DIRECTORY\r
83         XP DVTTY,10     ;IS A TTY\r
84         XP DVMTA,20     ;IS A MAG TAPE(REWIND)\r
85         XP DVAVAL,40    ;1 IF DEVICE IS AVAILABLE TO THIS JOB\r
86                         ;SET BY DEVCHR UUO\r
87         XP TTYUSE,10000 ;TTY DDB IN USE FLAG\r
88         XP TTYATC,20000 ;TTY ATTACHED TO JOB IF 1\r
89         XP DVLPT,40000  ;IS A LPT (CARRIAGE CONTROL IN FORTRAN)\r
90         XP DVCDR,100000 ;IS A CARD READER(TRAILING SPACES FOR MACRO)\r
91         XP DVDIRIN,400000       ;DIRECTORY IN CORE IF 1\r
92 \r
93         XP DEVLOG,5;    LOGICAL NAME FOR JOB DEVICE\r
94         XP DEVBUF,6;    C(LH)=OUTPUT BUFFER AREA DDRESS\r
95 ,                       C(RH)=INPUT BUFFER AREA ADDRESS (JBFADR)\r
96         XP DEVIAD,7;    C(LH)=PROG IN INDEX FIELD\r
97         XP DEVADR,DEVIAD\r
98 ,                       C(RH)=CURRENT INPUT BUFFER ADDRESS\r
99         XP DEVOAD,10;   C(LH)=PROG IN INDEX FIELD\r
100         XP DEVPTR,DEVOAD\r
101 ,                       C(RH)=CURRENT OUTPUT BUFFER ADDRESS\r
102         XP DEVCTR,11;\r
103 \f, I/O STATUS WORD ASSIGNMENTS\r
104 ,DATA MODES;  BITS 32-35\r
105         XP A,0;         ASCII\r
106         XP AL,1;                ASCII LINE\r
107         XP I,10;                IMAGE\r
108         XP IB,13;       IMAGE BINARY\r
109         XP B,14;                BINARY\r
110         XP DR,16                ;DUMP BY RECORDS\r
111         XP D,17         ;DUMP ACROSS RECORDS\r
112 , STATUS BITS\r
113 ,RIGHT HALF (USER)\r
114         XP IOWC,20;     DON'T COMPUTE WORD COUNT\r
115         XP IOCON,40;    CONTINUOUS (CONT=0)\r
116         XP IORDEL,100;  READ AND DELETE\r
117         XP IONRCK,100;  READ WITH NO. REREAD CHECK\r
118         XP IODEND,20000;        DATA END ENCOUNTERED\r
119         XP IODERR,200000;       DEVICE ERROR\r
120         XP IODTER,100000;       DATA ERROR\r
121         XP IOIMPM,400000;       IMPROPER MODE REQUESTED\r
122         XP IOBKTL,40000;        BLOCK TOO LARGE\r
123         XP IOACT,10000; DEVICE ACTIVE\r
124 , LEFT HALFF (SYSTEM)\r
125         XP IOW,1;               I/O WAIT\r
126         XP IOBEG,2;     VIRGIN DEVICE\r
127         XP IODISC,400000;       DISCONNECT REQUEST\r
128         XP IOFST,4;     NEXT ITEM WILL BE THE FIRST ITEM OF A BUFFER\r
129         XP IOSTRT,10;   IO READY TO START\r
130         XP IO,20;               OUT=1, IN=0\r
131         XP IOEND,40;    SERVICE ROUTINE HAS TRANSMITTED LAST DATA\r
132 \r
133 \r
134 ;LEFT HALF USRJDA (JOB DEVICE ASSIGNMENTS) UUO'S FOR THIS CHANNEL SINCE LAST INIT\r
135         XP INITB,400000;        INIT\r
136         XP IBUFB,200000;        INIT WITH INPUT BUFFER SPECIFIED\r
137         XP OBUFB,100000;        INIT WITH OUTPUT BUFFER SPECIFIED\r
138         XP LOOKB,40000; LOOKUP\r
139         XP ENTRB,20000; ENTER\r
140         XP INPB,10000;  INPUT\r
141         XP OUTPB,4000;  OUTPUT\r
142         XP CLOSB,2000;  CLOSE\r
143                                 ;RELEASE CLEARS THEM ALL\r
144 ;CLOSE UUO BITS\r
145         XP CLSOUT,1     ;INHIBIT CLOSING OUTPUT\r
146         XP CLSIN,2      ;INHIBIT CLOSING INPUT\r
147 \f, JOB BUFFER AREA HEADER\r
148         XP JBFADR,0;    BIT 0=1 IF THIS BUFFER RING HAS NEVER BEEN\r
149 ,                           REFERENCED FROM THE USER'S PROGRAM BY\r
150 ,                           AN INPUT OR OUTPUT COMMAND. \r
151 ,                       BITS 1-17=UNUSED\r
152 ,                       BITS 18-35=CURENT BUFFER ADDRESS\r
153         XP JBFPTR,1;    BYTE POINTER TO NEXT BYTE -1\r
154         XP JBFCTR,2;    POSITIVE ITEM COUNT\r
155 , JOB BUFFER HEADER             BIT 0=IOUSE\r
156         XP IOUSE,400000;            1 IF BUFFER IS FULL (OR BEING EMPTIED)\r
157 ,                       BITS 1-17=BUFFER SIZE\r
158 ,                       BITS 18-35=NEXT BUFFER ADDRESS\r
159 \f,SYSTEM PARAMETERS\r
160         XP USRMOD,10000;        USER MODE BIT IN APR FLAGS, PC WORD\r
161         XP IODONE,400000;\r
162 ,JOB STATUS WORD (JBTSTS)\r
163         XP IOWS,400000; IO WAIT SATISFIED\r
164         XP RUN,200000;  READY TO RUN OR IS RUNNING\r
165         XP JIOW,100000; JOB IN IO-WAIT STATE\r
166         XP DTW,40000;   DECTAPE CONTROL WAIT\r
167         XP DCW,20000;   DATA CONTROL WAIT\r
168         XP MTW,10000;   MAG TAPE CONTROL WIAT\r
169         XP JNA,4000;    JOB NUMBER ASSIGNED\r
170         XP JERR,2000;   JOB ERROR(ILLEGAL MEM. ETC.)\r
171 \r
172         XP RUNABLE,RUN+JNA;     STATUS BIT PATTERN FOR A JOB TO STAY RUNABLE\r
173 \f;SPECIAL ABSOLUTE LOCATIONS IN LOWER MEMORY\r
174 ;THESE ARE INTENDED TO BE EXAMINED AND CHANGED BY\r
175 ;USING THE DATA SWITCHES BEFORE SYSTEM IS STARTED AFTER BEING LOADED\r
176 ;ONLY TODAY AND BOOTIM NEED BE SET\r
177 ;ALL OTHERS ARE ASSEMBLED IN AND SHOULD BE SET ONLY IF A CHANGE IS DESIRED\r
178 \r
179 XP DDTMEM,37    ;MEMORY SIZE FOR SYSTEM DDT AND SYSMAK ONLY\r
180 XP DDTSYM,36    ;SYSTEM DDT SYMBOL TABLE POINTER (USED TO BE 77)\r
181 , SYSTEM MACROS\r
182 DEFINE  ADRCHK (A)\r
183 <       EXTERNAL ADRCK\r
184 DEFINE  ADRCHK (B)\r
185         <PUSHJ PDP,ADRCK\r
186         HRRZ TAC,B>\r
187         PUSHJ PDP,ADRCK\r
188         HRRZ TAC,A>\r
189 \r
190 \r
191 \r
192        LIST\r
193 \f\r