A large commit.
[pdp8.git] / sw / os8 / v3d / sources / fortran / all / onqib.ra
1 /
2 / VERSION 5A 4/28/77 PT
3 /
4 FIELD1 ONQI
5 0
6 JMP SETINT /SET UP #INT INITIALLY
7 ISZ ONQI /BUMP ARG POINTER
8 ISZ INTQ+1 /BUMP INTERRUPT Q POINTER
9 IOF /**
10 DCA% INTQ+1 /STICK IOT ONTO INT Q
11 TAD XSKP /FOLLOWED BY A SKIP
12 ISZ INTQ+1
13 DCA% INTQ+1 /ONTO INT Q
14 ISZ ONQI /SKIP FIRST WORD OF ADDR
15 ISZ INTQ+1
16 ONQISW, TAD% ONQI /GET INT HANDLER ADDRESS
17 ISZ ONQI
18 DCA% INTADR+1 /ONTO ADDRESS STACK
19 TAD INTADR+1 /NOW MAKE JMS%
20 AND L177
21 TAD L4600
22 DCA% INTQ+1 /ONTO INT Q
23 ISZ INTADR+1
24 ION /::
25 ISZ IQSIZE /ROOM FOR MORE ?
26 JMP% ONQI /YES
27 TAD .-1 /NO, CLOSE OUT THESUBR
28 DCA ONQI+1
29 JMP% ONQI
30 SETINT, TAD ONQISW /DO THIS PART ONLY ONCE
31 DCA ONQI+1
32 CDF
33 IOF /**
34 TAD XSKP /FIX UP #INT
35 DCA% XINT+1
36 ISZ XINT+1
37 TAD INTQ+1
38 DCA% XINT+1
39 ISZ XINT+1
40 TAD CIFCDF
41 DCA% XINT+1
42 ION /**
43 CIFCDF, CDF CIF 10
44 JMP ONQI+1 /BACK TO ONQI
45 EXTERN #INT
46 XINT, ADDR #INT
47 INTQ, ADDR IHANDL
48 INTADR, ADDR IHADRS
49 IQSIZE, -5
50 XSKP, SKP
51 L177, 177
52 L4600, 4600
53 CDF CIF
54 JMP% IHANDL
55 IHANDL, 0
56 REPEAT 16
57 JMP IHANDL-2
58 IHADRS, 0;0;0;0;0
59
60 ENTRY ONQB
61 ONQB, 0
62 JMP SETBAK /SETUP #IDLE
63 TAD% ONQB /GET ADDRESS OF IDLE JOB
64 ONQBSW, ISZ ONQB
65 DCA% BAKADR+1 /STORE ONTO BACKROUND JOB Q
66 TAD BAKADR+1 /MAKE A JMS%
67 ISZ BAKADR+1
68 AND L177
69 TAD L4600
70 ISZ BAKQ+1
71 DCA% BAKQ+1
72 ISZ BQSIZE /MORE ROOM ?
73 JMP% ONQB /YES
74 TAD .-1 /NO, CLOSE THE DOOR
75 DCA ONQB+1
76 JMP% ONQB
77 SETBAK, TAD ONQBSW /CLOSE OFF #IDLE INITIALIZATION
78 DCA ONQB+1
79 CDF
80 TAD XSKP /FIX UP #IDLE
81 DCA% XIDLE+1
82 TAD BAKQ+1
83 ISZ XIDLE+1
84 DCA% XIDLE+1
85 ISZ XIDLE+1
86 TAD CIFCDF
87 DCA% XIDLE+1
88 CIF CDF 10
89 JMP ONQB+1
90 EXTERN #IDLE
91 XIDLE, ADDR #IDLE
92 BAKQ, ADDR BAKRND
93 BAKADR, ADDR BHADRS
94 BQSIZE, -5
95 CDF CIF
96 JMP% BAKRND
97 BAKRND, 0
98 REPEAT 6
99 JMP BAKRND-2
100 BHADRS, 0;0;0;0;0
101 END
102 \f