1 TITLE IOINI1 - IO INITIALIZATION PART 1
\r
7 ;CONFIGURATION INDEPENDANT PART OF IOINIT FOLLOWS:
\r
11 ;SETUP CHANNEL SAVE AND RESTORE ROUTINES
\r
20 DEFINE ASSOC(A,NO,D)
\r
23 INTERNAL CH'NO'SAV,CH'NO',CH'NO'XIT,CH'NO'SAC
\r
26 MOVEM CH'NO'N, CH'NO'SAC+CH'NO'N
\r
27 MOVEI CH'NO'N, CH'NO'SAC
\r
28 BLT CH'NO'N,CH'NO'SAC+CH'NO'N-1 ;DO ONLY ONCE FOR EACH CHANNEL
\r
32 CH'NO'SAC: REPEAT CH'NO'N+1,<EXP 0> ;SPACE TO SAVE SOME AC'S
\r
33 EXP CH'NO'XIT ;FIRST ENTRY IN PD LIST(CHAN. EXIT)
\r
34 REPEAT CH'NO'PDN-1,<EXP 0> ;REST OF PD LIST
\r
36 CH'NO'XIT: MOVSI CH'NO'N, CH'NO'SAC
\r
37 BLT CH'NO'N, CH'NO'N
\r
40 CH'NO'CJ: XWD -CH'NO'PDN+1,CH'NO'SAC+CH'NO'N+1 ;INIT. SETTING OF P
\r
42 CH'NO': 0 ;PC STORED HERE BY JSR
\r
43 JRST .+1 ;INSTR. AT END OF SERVICE CHAIN
\r
44 AOS CH'NO'ERR ;SPURIOUS INTERRUPT, ADD TO COUNT
\r
45 JEN @CH'NO ;AND DISMISS
\r
48 ;GENERATE THE SAVE AND RESTORE ROUTINES
\r
52 ;SET UP NULL CHANNEL ROUTINES FOR UNUSED CHANNELS
\r
56 INTERNAL CH'J,CH'J'XIT
\r
58 CH'J'XIT: AOS CH'J'ERR
\r
62 IFE CHANU1,<NULCHN(1)>
\r
63 IFE CHANU2,<NULCHN(2)>
\r
64 IFE CHANU3,<NULCHN(3)>
\r
65 IFE CHANU4,<NULCHN(4)>
\r
66 IFE CHANU5,<NULCHN(5)>
\r
67 IFE CHANU6,<NULCHN(6)>
\r
68 IFE CHANU7,<NULCHN(7)>
\r
71 ;ASSIGN DEVICE TO CHANNELS AND SETUP CORESPONDENCE TABLE
\r
72 ;OF CHANNELS TO SERVICE ROUTINES
\r
74 DEFINE ASSOC (A,N,D)
\r
81 REPEAT 7-N,<A'BIT=A'BIT*2>
\r
82 A'OFF=1000+A'BIT ;CONO PI, A'OFF WIL TURN CHANNEL OFF
\r
83 A'ON=2000+A'BIT ;TURN BACK ON
\r
84 A'ACT=4000+A'BIT ;FORCE INTERRUPT ON CHAN.
\r
85 INTERN A'RET, A'SAV, A'CHL, A'CHN, A'SAC
\r
86 INTERNAL A'OFF,A'ON,A'ACT,A'BIT
\r
93 NDEV=.-DEVINT ;NO. OF DEVICE INTERUPT SERVICE ROUTINES
\r
94 NDEVM1=NDEV-1 ;(USED BY ONCE)
\r
98 ;INITIALIZE SOME IO DEVICES
\r
99 ;IOINI CALLED BY A PUSHJ PDP, FROM SYSINI AT SYSTEM INITIALIZATION
\r
107 DEFINE ASSOC (A,B,C)
\r
108 < IFIDN <A><MTC>,< IOINIT MTC>
\r
109 IFIDN <A><DTC>,< IOINIT DTC>
\r
110 IFIDN <A><LPT>,< IOINIT LPT>
\r
111 IFIDN <A><SCN>,< IOINIT SCN>
\r
112 IFIDN <A><PTP>,<IOINIT PTP>
\r
113 IFIDN <A><PTR>,<IOINIT PTR>
\r
119 JRST CLKINI ;ALWAYS INIT. CLOCK
\r
124 ;CLOCK CONTROL PARAMETERS
\r
126 CLDS=4000+APRCHN ;CLOCK DISABLE
\r
127 CLEN=200+APRCHN ;CLOCK ENABLE
\r
133 PUUOAC: POINT 4,UUO,12 ;UUO AC FIELD
\r
134 PIOMOD: POINT 4,IOS,35 ;MODE BITS
\r
135 PJOBN: POINT 9,DEVCHR(DEVDAT),8 ;DEVICE JOB ASSIGNMENT
\r
136 PJDCHN: POINT 4,DEVCHR(DEVDAT),17 ;JOB DEVICE CHANNEL NO.
\r
137 PUNIT: POINT 6,DEVCHR(DEVDAT),23 ;DEVICE UNIT NO.
\r
139 INTERNAL PUUOAC,PIOMOD,PJOBN,PJDCHN,PUNIT
\r
141 ;COMMON SUBROUTINE RETURNS
\r
147 INTERNAL CPOPJ,CPOPJ1,CPOPJ2
\r
149 ,SYSTEM DATA STORAGE
\r
152 INTERNAL JOB,JOBADR,JBTADR,JBTSTS,USRREL,USRINF,USRJDA
\r
153 INTERNAL USRPDP,JOBDAT,USRDDT,USRSAV,USRUXT,USRLO,USRHI
\r
154 INTERNAL COMCNT,IOCOMP,USRPOV,STOPU,SCHEDF,TIME,JBTAD1
\r
155 INTERNAL MTAVAL,DCAVAL,DTAVAL,MTREQ,DCREQ,DTREQ,TTYTAB,CORTAB
\r
156 INTERNAL CH1ERR,CH2ERR,CH3ERR,CH4ERR,CH5ERR,CH6ERR,CH7ERR
\r
157 INTERNAL CORLST,CORTAB,CORTAL,SYSEND,SYSBEG,DEVOPR
\r
159 JOBN=0 ;DEFINE NO. OF JOBS (0 THRU JOBN-1)
\r
160 ;THERE MUST BE MORE TTY DEVICE DATA BLCKS THAN JOBS.
\r
162 DEFINE ASSOC (A,N,D)
\r
163 <IRP D,<IFIDN <A><SCN>,<JOBN=JOBN+1>>>
\r
166 INTERNAL JOBN,MJOBN
\r
168 SYSBEG: ;FIRST LOC IN SYSTEM DATA AREA
\r
169 XP SYSBG1,SYSBEG+1 ;FIRST LOC+1
\r
170 JOB: 0 ;CURRENT JOB NUMBER EXCEPT WEN SCHEDF IS NON-ZERO
\r
171 JOBADR: 0 ;CONTAINS ADDRESS OF JOB CURRENTLY RUNNING
\r
172 JOBDAT: 0 ;CONTAINS ADDRESS OF JOB DATA AREA
\r
174 JBTADR: BLOCK JOBN ;C(LH)=PROTECT, C(RH)=RELOCATION
\r
175 XP JBTAD1,JBTADR+1 ;ADDRESS OF JOB 1(USED BY SYSMAK)
\r
176 JBTSTS: BLOCK JOBN ;CONTAINS STATUS INFORMATION FOR EACH J
\r
178 USRPDP: 0 ;USER PUSH DOWN POINTER
\r
179 USRREL: 0 ;LH=0, RH CONTAINS CONTENTS OF PROTECTION REGISTER
\r
180 USRLO: ;FIRST LOC CLEARD BY SETUSR SUBROUTINE
\r
181 USRUXT: 0 ;UNUSED, JOBUXT USED TO SAVE UUO PC(UUO0)
\r
182 USRLEV: 0 ;UNUSED, JOBLEV USED TO SAVE LOC. 40
\r
183 USRSAV: 0 ;TEMPORARY STORAGE FOR UUO HANDLER
\r
184 USRPOV: 0 ;PUSH DOWN OVERFLOW TRAP
\r
186 USRINF: 0 ;UN LAYED OUT USER INFORMATION
\r
187 USRJDA: BLOCK 20 ;RH=JOB DEVICE ASSIGNMENTS FOR THIS USER,LH=UUOS
\r
188 XP USRHI,.-1 ;LAST LOC CLEARED BY SETUSR ROUTINE
\r
189 XP USRPFI,.-1 ;LAST LOC PROTECTED FROM IO SERVICE
\r
190 XP USRPFU,. ;LAST LOC PROTECTED FROM USER PROGRAM
\r
191 USRDDT: 0 ;STARTING ADDR OF USER DDT
\r
193 ;DEVICE JUSTR BECOME AVAILABLE FLAGS
\r
194 MTAVAL: 0 ;MAGNETIC TAPE
\r
195 DCAVAL: 0 ;DATA CONTROL
\r
198 ;NUMBER OF JOBS WAITING FOR DEVICES(-1=NONE, 0=1 USING, 1=1 USING)
\r
199 MTREQ: -1 ;MAGNETIC TAPE
\r
200 DCREQ: -1 ;DATA CONTROL
\r
202 IOCOMP: 0 ;NUMBER OF USERS IN IO WAIT STATE
\r
203 COMCNT: 0 ;NUMBER OF COMMANDS TYPED-IN BUT NOT DECODED
\r
204 STOPU: 0 ;NON-ZERO WHEN CLOCK INTERRUPT FORCED TO STOP USER
\r
205 SCHEDF: 0 ;NON-ZERO WHEN CLOCK ROUTINE IS SCHEDULING
\r
207 CH1ERR: 0 ;SPURIOUS INTERRUPT COUNTS FOR EACH CHANNEL
\r
218 TIME: 0 ;TIME SYSTEM HAS RUN IN 60THS OF A SECOND
\r
221 XP TTYLEN,SCNLIN+1 ;LENGTH OF TTY TRANSLATOR TABLES(INCLUDING CTY)
\r
222 TTYTAB: BLOCK TTYLEN ;TTY TRANSLATOR TABLE
\r
223 ;SIGN BIT = 1 IF COMMAND JUST TYPED
\r
224 ;BITS 1 -9, JOB CONSOLE IS ATTACHED TO
\r
225 ;BITS 18-35, THE DEVICE DATA BLOCK FOR
\r
226 DEVOPR: 0 ;SIXBIT PHYSICAL NAME OF OPERATORS
\r
227 ;CONSOLE SET BY SCNSER TO FIRST ACTIVE TTY.
\r
228 ;LOCATIONS FOR CORE ALLOCATION
\r
229 XP CORBLK,^D256 ;NO. OF 1K BLOCKS POSSIBLE
\r
230 CORTAB: BLOCK <CORBLK>/^D36+1 ;1K BLOCK USE BIT TABLE
\r
231 ;A 1 MEANS BLOCK IS IN USE
\r
232 CORLST: 0 ;1 BIT BYTE POINTER TO LAST FREE BLOCK POSSIBLE
\r
233 CORTAL: 0 ;TOTAL NO. OF FREE CORE BLOCKS LEFT
\r
234 ;CORLST AND CORTAL ARE SET UP AT SYSTEM INITIALIZATION
\r
236 SYSEND=.-1 ;LAST LOC. CLEARED BY SYSINI
\r
240 SYSSIZ: EXP SYSFIN ;SIZE OF MONITOR(LAST LOC. USED)
\r