software: Added more and more
[pdp8.git] / sw / os8 / v3d / sources / system / dectapes / dectape3 / TC08NS.PA
CommitLineData
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
48DEVICE TC;DEVICE DTA0;4160;10;ZBLOCK 2
49DEVICE TC;DEVICE DTA1;4160;11;ZBLOCK 2
50DEVICE TC;DEVICE DTA2;4160;12;ZBLOCK 2
51DEVICE TC;DEVICE DTA3;4160;13;ZBLOCK 2
52DEVICE TC;DEVICE DTA4;4160;14;ZBLOCK 2
53DEVICE TC;DEVICE DTA5;4160;15;ZBLOCK 2
54DEVICE TC;DEVICE DTA6;4160;16;ZBLOCK 2
55DEVICE 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
67DFUN, 0
68DM203, -203
69DBLOCK, 0
70DBLKCT, 0
71D3, 3
72WC, 7754
73CA, 7755
74DERRCT, TCVERSION
75DTA0, ISZ DTANO
76DTA1, ISZ DTANO
77DTA2, ISZ DTANO
78DTA3, ISZ DTANO
79DTA4, ISZ DTANO
80DTA5, ISZ DTANO
81DTA6, ISZ DTANO
82DTA7, ISZ DTANO
83D400, 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
96DTANO, 0 /GET CALLING ADDRESS
97 DCA DTA /SAVE IT
98 TAD DTAISZ
99DTADCA, 0 /RESTORE ENTRY POINT
100 DLOC=DTADCA
101DTAISZ, 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
106DT7140, 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
114DTATRY, TAD WC
115DCDIF0, 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
133DERR, RTL /DECTAPE STATUS REGISTER B IS USUALLY IN THE AC HERE
134 RAL
135D7600, 7600 /GET THE "END OF TAPE" FLAG INTO THE LINK AND CLEAR THE AC
136 TAD D200 /GET MOTION BIT
137DC, SZL /AND, IF LINK IS ON
138DTATAD, 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
149DTAWT, 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
176D200, 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
183DL, 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
189D7700, 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!
194DJ, 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
201DOVER, ISZ DTA /SKIP ERROR RETURN
202DSTOP, HLT /RESTORE CALLING FIELD
203DSTOP1, 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
208DTA, 0
209 $
210\f