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 /1 TC08 HANDLER FOR BUILD 46 *0 47 000000 7770 -10 48 000001 2403 DEVICE TC;DEVICE DTA0;4160;10;ZBLOCK 2 000002 0000 000003 0424 000004 0160 000005 4160 000006 0010 000007 0000 000010 0000 49 000011 2403 DEVICE TC;DEVICE DTA1;4160;11;ZBLOCK 2 000012 0000 000013 0424 000014 0161 000015 4160 000016 0011 000017 0000 000020 0000 50 000021 2403 DEVICE TC;DEVICE DTA2;4160;12;ZBLOCK 2 000022 0000 000023 0424 000024 0162 000025 4160 000026 0012 000027 0000 000030 0000 51 000031 2403 DEVICE TC;DEVICE DTA3;4160;13;ZBLOCK 2 000032 0000 000033 0424 000034 0163 000035 4160 000036 0013 000037 0000 000040 0000 52 000041 2403 DEVICE TC;DEVICE DTA4;4160;14;ZBLOCK 2 000042 0000 000043 0424 000044 0164 000045 4160 000046 0014 000047 0000 000050 0000 53 000051 2403 DEVICE TC;DEVICE DTA5;4160;15;ZBLOCK 2 000052 0000 000053 0424 000054 0165 000055 4160 000056 0015 000057 0000 000060 0000 54 000061 2403 DEVICE TC;DEVICE DTA6;4160;16;ZBLOCK 2 000062 0000 000063 0424 000064 0166 000065 4160 000066 0016 000067 0000 000070 0000 55 000071 2403 DEVICE TC;DEVICE DTA7;4160;17;ZBLOCK 2 000072 0000 000073 0424 000074 0167 000075 4160 000076 0017 000077 0000 000100 0000 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 000200 0000 DFUN, 0 68 000201 7575 DM203, -203 69 000202 0000 DBLOCK, 0 70 000203 0000 DBLKCT, 0 71 000204 0003 D3, 3 72 000205 7754 WC, 7754 73 000206 7755 CA, 7755 74 000207 0001 DERRCT, TCVERSION 75 000210 2235 DTA0, ISZ DTANO 76 000211 2235 DTA1, ISZ DTANO 77 000212 2235 DTA2, ISZ DTANO 78 000213 2235 DTA3, ISZ DTANO 79 000214 2235 DTA4, ISZ DTANO 80 000215 2235 DTA5, ISZ DTANO 81 000216 2235 DTA6, ISZ DTANO 82 000217 2235 DTA7, ISZ DTANO 83 000220 0400 D400, 400 84 000221 7346 CLA CLL CMA RTL 85 000222 3207 DCA DERRCT /SET TO REPEAT THREE TIMES IN CASE OF ERROR 86 000223 1235 TAD DTANO 87 000224 7040 CMA 88 000225 1277 TAD DTATAD /GENERATE "TAD DTAN" WHERE DTAN IS THE ONE THAT 89 000226 3235 DCA DTANO /WAS CALLED. 90 000227 7332 CLA CLL CML RTR 91 000230 1235 TAD DTANO /ALSO GENERATE "DCA DTAN" SO WE CAN RESTORE IT 92 000231 3240 DCA DTADCA 93 000232 6214 RDF 94 000233 1256 TAD DCDIF0 95 000234 3371 DCA DSTOP /STORE CALLING FIELD FOR RETURNING 96 000235 0000 DTANO, 0 /GET CALLING ADDRESS 97 000236 3377 DCA DTA /SAVE IT 98 000237 1241 TAD DTAISZ 99 000240 0000 DTADCA, 0 /RESTORE ENTRY POINT 100 DLOC=DTADCA 101 000241 2235 DTAISZ, ISZ DTANO /BUMP DTANO FOR VARIOUS GROOVY REASONS 102 /WHICH WILL BE APPARENT LATER 103 000242 1777 TAD I DTA 104 000243 3200 DCA DFUN /STORE AWAY FUNCTION WORD FOR FUTURE USE 105 000244 2377 ISZ DTA 106 000245 7140 DT7140, CLL CMA /THE "CLL" IS ONLY NECESSARY TO FORM THE 7140 107 000246 1777 TAD I DTA 108 000247 3240 DCA DLOC /BUFFER ADDRESS -1 109 000250 2377 ISZ DTA 110 000251 1777 TAD I DTA 111 000252 7104 CLL RAL /MULTIPLY BY 2 FOR 256-WORD SIMULATED RECORDS 112 000253 3202 DCA DBLOCK /DECTAPE BLOCK # 113 000254 2377 ISZ DTA 114 000255 1205 DTATRY, TAD WC 115 000256 6203 DCDIF0, CDF CIF 0 116 000257 3606 DCA I CA 117 000260 1200 TAD DFUN 118 000261 7010 RAR 119 000262 7220 CLA CML /COMPLEMENT OF BIT 11 OF DFUN NOW IN THE LINK 120 000263 1235 TAD DTANO /DTANO = "TAD DTAN+1" 121 000264 7012 RTR 122 000265 7012 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 000266 1245 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 000267 6766 DTCA DTXA 131 000270 6774 DTLB /SET DECTAPE FIELD TO 0 FOR SEARCHING 132 000271 5301 JMP DC+3 /JUMP INTO THE BLOCK SEARCH ROUTINE 133 000272 7006 DERR, RTL /DECTAPE STATUS REGISTER B IS USUALLY IN THE AC HERE 134 000273 7004 RAL 135 000274 7600 D7600, 7600 /GET THE "END OF TAPE" FLAG INTO THE LINK AND CLEAR THE AC 136 000275 1340 TAD D200 /GET MOTION BIT 137 000276 7430 DC, SZL /AND, IF LINK IS ON 138 000277 1220 DTATAD, TAD D400 /REVERSE DIRECTION OF MOTION 139 000300 6764 DTXA 140 000301 1340 TAD D200 141 000302 6034 KRS 142 000303 1201 TAD DM203 143 000304 7650 SNA CLA 144 000305 6031 KSF /CHECK FOR ^C TYPED 145 000306 5312 JMP DTAWT 146 000307 1274 TAD D7600 /**PROBLEM: LINK IS RANDOM YET MUST BE 0 147 000310 3377 DCA DTA /FAKE DTA SO WE GO TO LOC 7600 IN FIELD 0 148 000311 5372 JMP DSTOP1 /AFTER STOPPING THE TAPE 149 000312 6773 DTAWT, DTSF DTRB 150 000313 5312 JMP .-1 /WAIT FOR SEARCH TO COMPLETE 151 000314 7510 SPA /HAS AN ERROR OCCURED? 152 000315 5272 JMP DERR /DO SOMETHING APPROPRIATE 153 000316 6761 DTRA 154 000317 7006 RTL 155 000320 7046 CMA RTL 156 000321 7620 SNL CLA /WAS MOTIOZ OF TAPE FORWARDS? 157 000322 1204 TAD D3 /NO, SO ONLY SUCCEED IF WE ARE 3 BLOCKS IN FRONT 158 /OF TARGET BLOCK 159 000323 1605 TAD I WC 160 000324 7040 CMA 161 000325 1202 TAD DBLOCK 162 000326 7040 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 000327 7640 SZA CLA 168 000330 5276 JMP DC 169 000331 7420 SNL 170 000332 5277 JMP DTATAD /DC+1 171 000333 1240 TAD DLOC 172 000334 3606 DCA I CA /SET THE CURRENT ADDRESS REGISTER TO THE BUFFER -1 173 000335 1200 TAD DFUN 174 000336 6774 DTLB /SET FIELD TO BUFFER FIELD 175 000337 1355 TAD D7700 176 000340 0200 D200, AND DFUN 177 000341 7104 CLL RAL 178 000342 3203 DCA DBLKCT /GET UNCOMPLEMENTED WORD COUNT INTO DBLKCT 179 000343 7004 RAL 180 000344 7001 IAC 181 000345 7126 CLL CML RTL 182 000346 7006 RTL /FORM A 50 IF L=1, A 30 IF L=0 183 000347 6764 DL, DTXA /XOR IN 50(WRITE) OR 30(READ) OR 0(CONTINUE PREVIOUS OP) 184 000350 1274 TAD D7600 185 000351 3605 DCA I WC /READ/WRITE 128 WORDS FROM/INTO EACH BLOCK 186 000352 6773 DTSF DTRB 187 000353 5352 JMP .-1 188 000354 7120 CLL CML /SET ERROR FLAG ON INITIALLY 189 000355 7700 D7700, SMA CLA 190 000356 5362 JMP DJ 191 000357 2207 ISZ DERRCT /ERROR-IS IT THE THIRD? 192 000360 5255 JMP DTATRY /NO-TRY AGAIN 193 000361 5371 JMP DSTOP /3 ERRORS-STOP TAPE! 194 000362 1203 DJ, TAD DBLKCT 195 000363 1274 TAD D7600 196 000364 7450 SNA /BUMP WORD COUNT BY -128 AND SEE IF 0 197 /ALSO REVERSE LINK. 198 000365 5370 JMP DOVER /YES - DONE 199 000366 3203 DCA DBLKCT /RESTORE BUMPED WORD COUNT 200 000367 5347 JMP DL /AND LOOP 201 000370 2377 DOVER, ISZ DTA /SKIP ERROR RETURN 202 000371 7402 DSTOP, HLT /RESTORE CALLING FIELD 203 000372 1340 DSTOP1, TAD D200 /STOP THE TAPE 204 000373 6764 DTXA 205 000374 3235 DCA DTANO /INITIALIZE DTANO FOR THE NEXT CALL 206 000375 7010 RAR /GET ERROR CODE FROM LINK INTO AC0 207 000376 5777 JMP I DTA /AND EXIT 208 000377 0000 DTA, 0 209 $ CA 0206 D200 0340 D3 0204 D400 0220 D7600 0274 D7700 0355 DBLKCT 0203 DBLOCK 0202 DC 0276 DCDIF0 0256 DERR 0272 DERRCT 0207 DFUN 0200 DJ 0362 DL 0347 DLOC 0240 DM203 0201 DOVER 0370 DSTOP 0371 DSTOP1 0372 DT7140 0245 DTA 0377 DTA0 0210 unreferenced DTA1 0211 unreferenced DTA2 0212 unreferenced DTA3 0213 unreferenced DTA4 0214 unreferenced DTA5 0215 unreferenced DTA6 0216 unreferenced DTA7 0217 unreferenced DTADCA 0240 DTAISZ 0241 DTANO 0235 DTATAD 0277 DTATRY 0255 DTAWT 0312 DTCA 6762 DTLB 6774 DTRA 6761 DTRB 6772 DTSF 6771 DTXA 6764 TCVERS 0001 WC 0205