Commit | Line | Data |
---|---|---|
7af5ad59 PH |
1 | /2 TC08 HANDLER FOR BUILD |
2 | / | |
3 | / | |
4 | / | |
5 | / | |
6 | / | |
7 | / | |
8 | / | |
9 | / | |
10 | / | |
11 | /COPYRIGHT (C) 1974,1975 BY DIGITAL EQUIPMENT CORPORATION | |
12 | / | |
13 | / | |
14 | / | |
15 | / | |
16 | / | |
17 | / | |
18 | / | |
19 | / | |
20 | / | |
21 | / | |
22 | /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE | |
23 | /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT | |
24 | /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY | |
25 | /FOR ANY ERRORS THAT MAY APPEAR IN THIS MANUAL. | |
26 | / | |
27 | /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER | |
28 | /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED | |
29 | /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH | |
30 | /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. | |
31 | / | |
32 | /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE | |
33 | /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY | |
34 | /DIGITAL. | |
35 | / | |
36 | / | |
37 | / | |
38 | / | |
39 | / | |
40 | / | |
41 | / | |
42 | / | |
43 | / | |
44 | / | |
45 | \f/1 TC08 HANDLER FOR BUILD | |
46 | *0 | |
47 | -10 | |
48 | DEVICE TC;DEVICE DTA0;4160;10;ZBLOCK 2 | |
49 | DEVICE TC;DEVICE DTA1;4160;11;ZBLOCK 2 | |
50 | DEVICE TC;DEVICE DTA2;4160;12;ZBLOCK 2 | |
51 | DEVICE TC;DEVICE DTA3;4160;13;ZBLOCK 2 | |
52 | DEVICE TC;DEVICE DTA4;4160;14;ZBLOCK 2 | |
53 | DEVICE TC;DEVICE DTA5;4160;15;ZBLOCK 2 | |
54 | DEVICE TC;DEVICE DTA6;4160;16;ZBLOCK 2 | |
55 | DEVICE TC;DEVICE DTA7;4160;17;ZBLOCK 2 | |
56 | DTRB=6772 | |
57 | DTLB=6774 | |
58 | DTXA=6764 | |
59 | DTCA=6762 | |
60 | DTRA=6761 | |
61 | DTSF=6771 | |
62 | ||
63 | TCVERSION="A&77 | |
64 | ||
65 | *200 | |
66 | /DECTAPE HANDLERS(PAGE RELOCATABLE) FOR PS/8 MONITOR | |
67 | DFUN, 0 | |
68 | DM203, -203 | |
69 | DBLOCK, 0 | |
70 | DBLKCT, 0 | |
71 | D3, 3 | |
72 | WC, 7754 | |
73 | CA, 7755 | |
74 | DERRCT, TCVERSION | |
75 | DTA0, ISZ DTANO | |
76 | DTA1, ISZ DTANO | |
77 | DTA2, ISZ DTANO | |
78 | DTA3, ISZ DTANO | |
79 | DTA4, ISZ DTANO | |
80 | DTA5, ISZ DTANO | |
81 | DTA6, ISZ DTANO | |
82 | DTA7, ISZ DTANO | |
83 | D400, 400 | |
84 | CLA CLL CMA RTL | |
85 | DCA DERRCT /SET TO REPEAT THREE TIMES IN CASE OF ERROR | |
86 | TAD DTANO | |
87 | CMA | |
88 | TAD DTATAD /GENERATE "TAD DTAN" WHERE DTAN IS THE ONE THAT | |
89 | DCA DTANO /WAS CALLED. | |
90 | CLA CLL CML RTR | |
91 | TAD DTANO /ALSO GENERATE "DCA DTAN" SO WE CAN RESTORE IT | |
92 | DCA DTADCA | |
93 | RDF | |
94 | TAD DCDIF0 | |
95 | DCA DSTOP /STORE CALLING FIELD FOR RETURNING | |
96 | DTANO, 0 /GET CALLING ADDRESS | |
97 | DCA DTA /SAVE IT | |
98 | TAD DTAISZ | |
99 | DTADCA, 0 /RESTORE ENTRY POINT | |
100 | DLOC=DTADCA | |
101 | DTAISZ, ISZ DTANO /BUMP DTANO FOR VARIOUS GROOVY REASONS | |
102 | /WHICH WILL BE APPARENT LATER | |
103 | TAD I DTA | |
104 | DCA DFUN /STORE AWAY FUNCTION WORD FOR FUTURE USE | |
105 | ISZ DTA | |
106 | DT7140, CLL CMA /THE "CLL" IS ONLY NECESSARY TO FORM THE 7140 | |
107 | TAD I DTA | |
108 | DCA DLOC /BUFFER ADDRESS -1 | |
109 | ISZ DTA | |
110 | TAD I DTA | |
111 | CLL RAL /MULTIPLY BY 2 FOR 256-WORD SIMULATED RECORDS | |
112 | DCA DBLOCK /DECTAPE BLOCK # | |
113 | ISZ DTA | |
114 | DTATRY, TAD WC | |
115 | DCDIF0, CDF CIF 0 | |
116 | DCA I CA | |
117 | TAD DFUN | |
118 | RAR | |
119 | CLA CML /COMPLEMENT OF BIT 11 OF DFUN NOW IN THE LINK | |
120 | TAD DTANO /DTANO = "TAD DTAN+1" | |
121 | RTR | |
122 | RTR /THESE TWO ROTATES FORM THE FLLOWING NUMBER | |
123 | /IN THE AC: YYYF00101000, WHERE YYY =DTAN+1 | |
124 | /AND F IS THE COMPLEMENT OF DFUN(11) | |
125 | TAD DT7140 /THE MAGIC STEP - THIS SIMULTANEOUSLY BUMPS DOWN | |
126 | /THE RECORD NUMBER IN AC(0-2) AND TRANSFORMS | |
127 | /THE REST OF THE AC TO F10001000 WHICH IS A | |
128 | /SEARCH IN DIRECTION F(F=1 MEANS BACKWARDS) WITH | |
129 | /THE MOTION BIT ON. | |
130 | DTCA DTXA | |
131 | DTLB /SET DECTAPE FIELD TO 0 FOR SEARCHING | |
132 | JMP DC+3 /JUMP INTO THE BLOCK SEARCH ROUTINE | |
133 | DERR, RTL /DECTAPE STATUS REGISTER B IS USUALLY IN THE AC HERE | |
134 | RAL | |
135 | D7600, 7600 /GET THE "END OF TAPE" FLAG INTO THE LINK AND CLEAR THE AC | |
136 | TAD D200 /GET MOTION BIT | |
137 | DC, SZL /AND, IF LINK IS ON | |
138 | DTATAD, TAD D400 /REVERSE DIRECTION OF MOTION | |
139 | DTXA | |
140 | TAD D200 | |
141 | KRS | |
142 | TAD DM203 | |
143 | SNA CLA | |
144 | KSF /CHECK FOR ^C TYPED | |
145 | JMP DTAWT | |
146 | TAD D7600 /**PROBLEM: LINK IS RANDOM YET MUST BE 0 | |
147 | DCA DTA /FAKE DTA SO WE GO TO LOC 7600 IN FIELD 0 | |
148 | JMP DSTOP1 /AFTER STOPPING THE TAPE | |
149 | DTAWT, DTSF DTRB | |
150 | JMP .-1 /WAIT FOR SEARCH TO COMPLETE | |
151 | SPA /HAS AN ERROR OCCURED? | |
152 | JMP DERR /DO SOMETHING APPROPRIATE | |
153 | DTRA | |
154 | RTL | |
155 | CMA RTL | |
156 | SNL CLA /WAS MOTIOZ OF TAPE FORWARDS? | |
157 | TAD D3 /NO, SO ONLY SUCCEED IF WE ARE 3 BLOCKS IN FRONT | |
158 | /OF TARGET BLOCK | |
159 | TAD I WC | |
160 | CMA | |
161 | TAD DBLOCK | |
162 | CMA /AFTER THIS OPERATION WE HAVE THE FOLLOWING 4 POSSIBILITIES | |
163 | /1)AC=0, L=1 /SEARCH COMPLETE | |
164 | /2)AC=0, L=0 /RIGHT PLACE ON TAPE,WRONG DIRECTION | |
165 | /3)AC .GT. 0, L=0 /WEVE PASSED THE CORRECT BLOCK | |
166 | /4)AC .GT. 0, L=1 /WE HAVENT REACHED THE CORRECT BLOCK YET | |
167 | SZA CLA | |
168 | JMP DC | |
169 | SNL | |
170 | JMP DTATAD /DC+1 | |
171 | TAD DLOC | |
172 | DCA I CA /SET THE CURRENT ADDRESS REGISTER TO THE BUFFER -1 | |
173 | TAD DFUN | |
174 | DTLB /SET FIELD TO BUFFER FIELD | |
175 | TAD D7700 | |
176 | D200, AND DFUN | |
177 | CLL RAL | |
178 | DCA DBLKCT /GET UNCOMPLEMENTED WORD COUNT INTO DBLKCT | |
179 | RAL | |
180 | IAC | |
181 | CLL CML RTL | |
182 | RTL /FORM A 50 IF L=1, A 30 IF L=0 | |
183 | DL, DTXA /XOR IN 50(WRITE) OR 30(READ) OR 0(CONTINUE PREVIOUS OP) | |
184 | TAD D7600 | |
185 | DCA I WC /READ/WRITE 128 WORDS FROM/INTO EACH BLOCK | |
186 | DTSF DTRB | |
187 | JMP .-1 | |
188 | CLL CML /SET ERROR FLAG ON INITIALLY | |
189 | D7700, SMA CLA | |
190 | JMP DJ | |
191 | ISZ DERRCT /ERROR-IS IT THE THIRD? | |
192 | \f JMP DTATRY /NO-TRY AGAIN | |
193 | JMP DSTOP /3 ERRORS-STOP TAPE! | |
194 | DJ, TAD DBLKCT | |
195 | TAD D7600 | |
196 | SNA /BUMP WORD COUNT BY -128 AND SEE IF 0 | |
197 | \f /ALSO REVERSE LINK. | |
198 | JMP DOVER /YES - DONE | |
199 | DCA DBLKCT /RESTORE BUMPED WORD COUNT | |
200 | JMP DL /AND LOOP | |
201 | DOVER, ISZ DTA /SKIP ERROR RETURN | |
202 | DSTOP, HLT /RESTORE CALLING FIELD | |
203 | DSTOP1, TAD D200 /STOP THE TAPE | |
204 | DTXA | |
205 | DCA DTANO /INITIALIZE DTANO FOR THE NEXT CALL | |
206 | RAR /GET ERROR CODE FROM LINK INTO AC0 | |
207 | JMP I DTA /AND EXIT | |
208 | DTA, 0 | |
209 | $ | |
210 | \f |