Trailing-Edge
-
PDP-10 Archives
-
decuslib10-07
-
43,50453/copymt.lpt
There are 2 other files named copymt.lpt in the archive. Click here to see a list.
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 1
COPYMT MAC 23-FEB-77 11:47 B. SCHREIBER UI HI ENERGY PHYSICS GROUP
1 SUBTTL B. SCHREIBER UI HI ENERGY PHYSICS GROUP
2
3 SEARCH JOBDAT,UUOSYM,MACTEN,SCNMAC
4 .DIREC .XTABM
5 SALL
6 400000' TWOSEG
7
8 ;SHOW UNIVERSAL VERSION NUMBERS
9
10 043000 000443 %%JOBD==:%%JOBD
11 101100 000225 %%UUOS==:%%UUOS
12 000100 000024 %%MACT==:%%MACT
13 000700 000203 %%SCNM==:%%SCNM
14
15 ;SELECTIVELY LOAD SCAN AND COMPANY
16
17 .TEXT \/SEARCH REL:ALCOR/SEG:LOW\
18 .TEXT \/SEARCH REL:SCN7B/EXCLUD:(.SCAN)/SEG:LOW,REL:SCN7B\
19 .REQUI REL:HELPER ;LOAD HELPER IN HISEG
20
21 ;COPYMT VERSION INFORMATION
22
23 000007 CMTVER==7 ;MAJOR VERSION
24 000040 CMTEDT==40 ;EDIT LEVEL
25 000000 CMTMIN==0 ;MINOR VERSION LETTER
26 000000 CMTWHO==0 ;WHO LAST EDITTED
27
28 000137 LOC .JBVER ;SET THE VERSION
29 000700 000040 %%CPYM==:VRSN. (CMT)
30 000137 000700 000040 EXP %%CPYM
31
32 DEFINE CTITLE (TEXT,MAJVER,EDIT)
33 <TITLE 'TEXT'MAJVER(EDIT)>
34
35 CTITLE (<COPYMT MAGNETIC TAPE COPY PROGRAM %>,\CMTVER,\CMTEDT)
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 2
COPYMT MAC 23-FEB-77 11:47 REVISION HISTORY
36 SUBTTL REVISION HISTORY
37
38 COMMENT \
39
40 3(11) 23-SEP-76 ALL EDITS TO NOW RELEGATED TO DEVELOPMENT.
41 ADD /UNLOAD
42 3(12) 27-SEP-76 REPORT TAPOP. UUO FAILURES. ONLY ASK ABOUT
43 QUITTING ON BLOCK TOO LARGE ONCE.
44 4(13) 27-SEP-76 ADD IFTYP FACILITY...ENABLED BY /IFTYP IN COMMAND
45 4(14) 28-SEP-76 SPEED UP IFTYP HANDLING..USE JSP
46 5(15) 30-SEP-76 ADD CODE TO COPY MTA TO DSK AND DSK TO
47 MTA (IREAD MODE ONLY). ALSO ADD STATISTICS
48 SUCH AS RUNTIME AND ELAPSED TIME TO IFTYP STUFF
49 5(16) 04-OCT-76 USE RESULT OF DEVNAM FOR ALL MTCHR AND TAPOP
50 UUOS. LOGICAL NAMES SOMETIMES DON'T WORK
51 (ESP IF THEY ARE NUMERIC!) ALSO, WHEN TESTING
52 A TAPE, TYPE OUT DENSITY AND TRACKS
53 5(17) 05-OCT-76 ADD ROUTINE DOTPOP ON TOP OF ETAPOP TO
54 SAVE A FEW WORDS. ADD /TIME TO TYPE
55 ELAPSED AND CPU TIME.
56 6(20) 08-OCT-76 ADD /TO32 TO COPY 36-BIT TAPE TO 32-BIT TAPE
57 6(21) 11-OCT-76 TURN OFF FL$EOT AT COPDUN IF END OF LIST SEEN.
58 THIS WILL PREVENT EXTRA MTBSF. OUTC, AT DO.DUN
59 WHICH WAS IO TO UNASS CHN BECAUSE WE DID NOT
60 REOPEN OUTPUT
61 6(22) 22-OCT-76 ADD SETIBO/SETIBI
62 6(23) 27-OCT-76 FIX SWTCHS MACRO...MISPLACED CONDITIONAL AND
63 FS.VRQ MISSING ON A FEW SWITCHES.
64 6(24) 05-NOV-76 FIX BUG IN CPYMTD IF IREAD LOGICAL RECORD
65 ENDS ON BLOCK BOUNDARY (T3 GOT ZAPPED BY SETIBC)
66 6(25) 13-NOV-76 BF.IBC GOES IN BUFFER HEADER, NOT BUFFFER RING!
67 ALSO MUST CLEAR IO.UWC AT OUTCLS OR NEXT TO LAST
68 BUFFER GETS WRITTEN OUT AGAIN.
69 6(26) 15-NOV-76 ADD /ERROR:IGNORE. DEFAULT DSK EXTENSIONS TO .DAT.
70 ADD "I" OPTION TO IFTYPE.
71 6(27) 16-NOV-76 CLEARING IO.UWC SOMETIMES GET IO TO UNASS CHN.
72 SOLUTION: ADD FL$OPN=1 WHEN OUTPUT IS OPEN.
73 6(30) 1-26-77 BUG IF /COPY:N:M. DO NOT REOPEN OUTPUT IF N OR
74 M RUNS OUT.
75 6(31) 1-26-77 6(30) WAS NOT QUITE RIGHT. INSTEAD OF QUITTING
76 GET NEXT FUNCTION. ALSO CHECK FOR OUTPUT OPEN AT
77 DO.CPY IN CASE OF /COPY:X/SKIP:Y/COPY:Z.
78 6(32) 2-3-77 CHANGE TO ERROR., WARN., AND INFO.. ADD /RETRY:N
79 TO SET # RETRIES FOR TAPE TESTING AND MAKE THE
80 DEFAULT BE 4 INSTEAD OF 10 (TU70'S SHOULD NOT
81 NEED 10 TRIES!!!)
82 6(33) 11-FEB-77 ADD /REPEAT:N TO TRY THE TAPE TEST N TIMES
83 7(34) 11-FEB-77 IMPLEMENT LOG FILE CAPABILITY
84 WITH /LOG:FILESPEC, /COMMENT:"COMMENT FOR LOG FILE"
85 AND /CLOSE
86 7(35) 13-FEB-77 CLOSE LOG FILE ON FATAL ERROR!
87 7(36) 13-FEB-77 IF LOG DEVICE IS LPT FORGET THE LOOKUP
88 7(37) 18-FEB-77 ALLOW /LOG WITH NO FILE SPEC (DEFAULT = DSK:COPYMT.LOG)
89 7(40) 23-FEB-77 SHOW FILE AND RECORD COUNTS AT END OF COPY
90 FOR ALL MEDIA
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 2-1
COPYMT MAC 23-FEB-77 11:47 REVISION HISTORY
91
92 \;END OF REVISION HISTORY
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 3
COPYMT MAC 23-FEB-77 11:47 AC DEFINITIONS
93 SUBTTL AC DEFINITIONS
94
95 ;DEFINE THE ACCUMULATORS
96
97 DEFINE AC$ (X)
98 <X=ZZ
99 ZZ==ZZ+1
100 X=X>
101 000000 ZZ==0 ;START THE BALL ROLLING
102
103 000000 AC$ F, ;FLAGS
104 000001 AC$ T1, ;T1-4 ARE TEMPORARY AND FOR ARGUMENT PASSING
105 000002 AC$ T2,
106 000003 AC$ T3,
107 000004 AC$ T4,
108 000005 AC$ P1, ;P1-4 MUST BE PRESERVED (.SAVEX ARE BEAUTIFUL!)
109 000006 AC$ P2,
110 000007 AC$ P3,
111 000010 AC$ P4,
112 000011 AC$ L, ;LINK FOR JSP
113 000012 AC$ PLP, ;PARAMETER LIST POINTER
114 000013 AC$ ACT, ;HOLDS DESIRED ACTION IN DO.IT
115 000017 P=17 ;THE PUSH DOWN POINTER
116 000007 N=P3 ;VALUE HOLDER FROM SCAN .XXXNW, ETC.
117 000010 C=P4 ;CHARACTER AC FOR SCAN, .TICAN, ETC.
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 4
COPYMT MAC 23-FEB-77 11:47 BIT DEFINITIONS
118 SUBTTL BIT DEFINITIONS
119
120 ;ASSEMBLY DIRECTIVES
121
122 ND LN$PRM,^D60 ;PARAM LENGTH
123 ND LN$PDL,^D40 ;PDL LENGTH
124 ND MY$NAM,'COPYMT' ;MY NAME IN SIXBIT
125 ND MY$PFX,'CMT' ;MESSAGE PREFIX
126 ND N$BUFS,2 ;# I/O BUFFERS (BOTH INPUT AND OUTPUT)
127 ND N$LOGB,2 ;# BUFFERS FOR LOG FILE
128 ND DF$BFZ,^D1024 ;DEFAULT BUFFER SIZE IF NO /BUFSIZ GIVEN
129 ND MX$NPL,^D8 ;# WORDS/LINE ON ERROR DUMP
130 ND FT$MTP,-1 ;NON-ZERO FOR MTAPE MONITORY COMMAND
131 ND FT$DEB,0 ;NON-ZERO FOR DEBUGGING CODE
132 ND FT$OPT,-1 ;NON-ZERO TO READ SWITCH.INI
133 ND FT$TST,-1 ;NON-ZERO TO INCLUDE /TAPTST CODE
134 IFN FT$TST,<
135 ND DF$TRY,4 ;DEFAULT # RETRIES ON TAPE ERRORS
136 ND N$TSTB,1 ;USE 1 BUFFER FOR /TAPTST
137 >;END IFN FT$TST
138 ND N$DSKB,6 ;USE THIS MANY BUFFERS FOR DSK I/O
139
140
141 ;FDB
142
143 000032 LN$FDB==.FXLEN ;USE STD SIZE FDB
144
145 000020 ATSIGN==(1B13) ;THE INDIRECT BIT
146
147 000001 INPC==1 ;INPUT CHANNEL
148 000002 OUTC==2 ;OUTPUT CHANNEL
149 000003 LPTC==3 ;LPT CHANNEL FOR ERROR DUMPING
150 000004 LOGC==4 ;CHANNEL FOR LOG FILES
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 5
COPYMT MAC 23-FEB-77 11:47 BIT DEFINITIONS
151 ;FLAGS IN F
152
153 DEFINE FLAG$ (F)
154 <FL$'F==..FL ;;DEFINE THE FLAG BIT
155 ..FL==..FL_-1
156 FL$'F==FL$'F> ;;SHOW THE FLAG VALUE
157
158 400000 ..FL==(1B0) ;START AT BIT 0
159
160 400000 FLAG$ (MRG) ;ON WHEN MERGING (CONCATENATING) FILES
161 200000 FLAG$ (OUT) ;ON WHEN OUTPUT SPEC ALLOCATED
162 100000 FLAG$ (CPY) ;ON WHEN /COPY OR /CONCAT SEEN
163 040000 FLAG$ (EOT) ;CLEARED WHEN RECORD OUTPUT, SET AT INPUT EOF
164 ;TWO SETS IN A ROW IMPLIES LOGICAL EOT
165 020000 FLAG$ (LPO) ;ON MEANS LPT FILE IS OPEN
166 010000 FLAG$ (BAT) ;ON IF BATCH JOB (PREFIX A FEW MSGS WITH $)
167 004000 FLAG$ (FLG) ;GENERAL PORPOISE FLAG
168 IFN FT$MTP,<
169 002000 FLAG$ (MTP) ;ON IF MTAPE MONITOR COMMAND
170 >;END IFN FT$MTP
171 IFN FT$TST,<
172 001000 FLAG$ (TST) ;ON WHEN PROCESSING /T
173 >;END IFN FT$TST
174 000400 FLAG$ (BKT) ;HAVE SEEN BKT BEFORE AND USER SAID CONTINUE
175 000200 FLAG$ (ITY) ;/IFTYP WAS SEEN
176 000200 000000 $FLITY==(FL$ITY);A LEFT HAND VALUE OF THE SAME THING
177 000100 FLAG$ (DSI) ;ON IF INPUT IS DSK
178 000040 FLAG$ (DSO) ;ON IF OUTPUT IS DSK
179 000020 FLAG$ (232) ;ON IF 36-BIT TAPE TO 32-BIT TAPE
180 000020 000000 $FL232==(FL$232);NEED LH VALUE
181 000010 FLAG$ (OPN) ;ON WHEN OUTPUT IS OPEN
182 000004 FLAG$ (LOG) ;ON WHEN LOG FILE IS OPEN
183 000002 FLAG$ (TSN) ;ON WHEN TIME STAMP NEEDED IN LOG FILE
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 6
COPYMT MAC 23-FEB-77 11:47 BIT DEFINITIONS
184 ;MACRO TO DEFINE FUNCTION VALUES
185
186 DEFINE FUNCTS
187 <FN (<BSP,SKP,EOF,REW,UNL,CPY,CON>)>
188
189 DEFINE FN (X)
190 <IRP X,<ZZ==ZZ+1
191 FN$'X==ZZ>>
192 000000 ZZ==0 ;FUNCTIONS START AT 1
193
194 FUNCTS
195
196 777777 777777 FN$INP==-1 ;FUNCTIONS FOLLOWING THIS ONE ARE FOR INPUT SIDE
197 777777 777776 FN$EOL==-2 ;END OF FUNCTION LIST
198
199 ;EXTRA FLAGS FOR SWTCHS MACRO
200
201 002000 000000 FS$XTR==1B7 ;THIS SWITCH CAN TAKE EXTRA PARAMETERS
202 ;(I.E. /BACKSP:F:N)
203 001000 000000 FS$NVL==1B8 ;THIS SWITCH NEVER TAKES A VALUE
204 000400 000000 FS$OUT==1B9 ;THIS SWITCH IS OUTPUT ONLY
205 000200 000000 FS$INP==1B10 ;THIS SWITCH IS INPUT ONLY
206 000100 000000 FS$SPL==1B11 ;THIS SWITCH REQUIRES SPECIAL PROCESSING
207 ;DO A JRST @SWTP(P1) TO DO IT
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 7
COPYMT MAC 23-FEB-77 11:47 ERROR MACRO DEFINITIONS
208 SUBTTL ERROR MACRO DEFINITIONS
209
210 ;ERROR. ($FLGS,$PFX,$MSG)
211 ;
212 ;$FLGS IS THE COMBINITATION OF THE FOLLOWING BITS:
213
214 000000 EF$ERR==0 ;ERROR--PREFIX MSG WITH ?, RETURN CONTROL AFTER CALL
215 000400 EF$FTL==400 ;FATAL ERROR--ABORT AND RESTART
216 000200 EF$WRN==200 ;WARNING MESSAGE--CONTINUE
217 000100 EF$INF==100 ;INFORMATIVE MESSAGE--CONTINUE
218 000040 EF$NCR==40 ;NO FREE CRLF AFTER MESSAGE
219 000020 EF$OPR==20 ;MESSAGE SHOULD BE PREFIXED WITH CRLF-$ IF BATCH
220 000017 EF$MAX==17 ;MAX # OF TYPE CODES ALLOWABLE (9 BITS - ABOVE USED)
221
222 DEFINE ETYP ($TYP)
223 <ZZ==ZZ+1
224 EF$'$TYP==ZZ>
225
226 000000 ZZ==0 ;TYPE CODES ARE FROM 1-EF$MAX
227
228 000001 ETYP DEC, ;TYPE T1 IN DECIMAL AT END OF MESSAGE
229 000002 ETYP OCT, ;TYPE T1 IN OCTAL AT END OF MESSAGE
230 000003 ETYP SIX, ;TYPE T1 IN SIXBIT AT END OF MESSAGE
231 000004 ETYP PPN, ;TYPE T1 AS A PPN AT END OF MESSAGE
232 000005 ETYP STR, ;T1 PTS TO ASCIZ STR TO TYPE AT END OF MESSAGE
233 000006 ETYP FIL, ;T1 PTS TO SCAN FILE BLOCK TO TYPE AT END OF MSG
234 000007 ETYP LEB, ;T1 POINTS AT OPEN BLOCK
235 ;T2 POINTS AT LOOKUP/ENTER BLOCK
236
237 000007 MX$ERR==ZZ ;MAXIMUM LEGAL ERROR TYPE
238 000000 EF$NOP==0 ;INTERNAL FOR ERROR HANDLER
239
240 IFG ZZ-EF$MAX,<PRINTX ?TOO MANY ERROR TYPES>
241
242 ;$PFX IS THE 3-LETTER PREFIX FOR THE MESSAGE
243 ;$MSG IS THE MESSAGE ITSELF
244
245 300000 NOOP== (CAI) ;DEFINE NO-MEMORY-REFERENCE RIGHT-HAND NOOP
246
247 DEFINE ERROR. ($FLGS,$PFX,$MSG)
248 <PUSHJ P,EHNDLR
249 XWD NOOP+<$FLGS>,[''$PFX'',,[ASCIZ @$MSG@ ] ]
250 >
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 8
COPYMT MAC 23-FEB-77 11:47 ERROR MACRO DEFINITIONS
251 ;WARN. ($FLGS,$PFX,$MSG) -- GENERATE CALL TO ERROR HANDLER FOR WARNING
252
253 DEFINE WARN. ($FLGS,$PFX,$MSG)
254 <ERROR. (EF$WRN!$FLGS,$PFX,$MSG)>
255
256 ;INFO. ($FLGS,$PFX,$MSG) -- GENERATE CALL TO ERROR HANDLING FOR INFO
257
258 DEFINE INFO. ($FLGS,$PFX,$MSG)
259 <ERROR. (EF$INF!$FLGS,$PFX,$MSG)>
260
261 ;OPER$ ($FLGS,$PFX,$MSG) -- MESSAGE THAT OPERATOR WILL SEE IN BATCH JOB
262
263 DEFINE OPER$ ($FLGS,$PFX,$MSG)
264 <ERROR. (EF$OPR!$FLGS,$PFX,$MSG)>
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 9
COPYMT MAC 23-FEB-77 11:47 IMPLEMENTATION NOTES
265 SUBTTL IMPLEMENTATION NOTES
266
267 COMMENT \A NOTE ABOUT THE PARAMETER LIST -
268
269 THE LIST IS SET UP IN TWO WORD ARGUMENTS. THE FIRST WORD IS THE FUNCTION
270 AND THE SECOND CONTAINS <FILE REPEAT COUNT,,RECORD REPEAT COUNT>.
271 FOR FUNCTIONS THAT HAVE NO COUNTS (I.E. /EOF) THE COUNT IS SET
272 TO ONE BY THE SWITCH HANDLER. THE INTERNAL FUNCTIONS (FN$INP AND
273 FN$EOL) DO NOT USE THE SECOND ARGUMENT, BUT IS PRESENT FOR A HOMOGENOUS
274 LIST.
275
276 \;END NOTE
277
278 COMMENT \
279
280 IF THIS PROGRAM IS REASSEMBLED AND DOES NOT APPEAR TO FUNCTION
281 CORRECTLY, CHECK UUOSYM DEFINITIONS FOR MTCHR. AND TAPOP. UUO, AND WHAT
282 THE MONITOR ACTUALLY STORES IN THESE ARG BLOCKS. I EXPECT THAT THE
283 DEFINITIONS FOR .TFSTS (GET STATUS) ARE WRONG IN THE UUOSYM I USED
284 (.TSFIL==0, .TSREC==1).
285
286 \;END COMMENT
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 10
COPYMT MAC 23-FEB-77 11:47 OTHER MACRO DEFINITIONS
287 SUBTTL OTHER MACRO DEFINITIONS
288
289 ;SAVE$ SAVES DATA ON THE STACK
290
291 DEFINE SAVE$ (X)
292 <XLIST
293 IRP X,<PUSH P,X>
294 LIST>
295
296 ;RESTR$ RESTORES DATA FROM THE STACK
297
298 DEFINE RESTR$ (X)
299 <XLIST
300 IRP X,<POP P,X>
301 LIST>
302
303 ;MACRO TO ALLOCATE STORAGE IN THE LOW SEGMENT DATA BASE
304
305 DEFINE U ($NAME,$WORDS<1>)
306 <$NAME: BLOCK $WORDS>
307
308 ;STRNG$ (STRING) SENDS STRING TO OUTPUT THROUGH .TSTRG
309
310 DEFINE STRNG$ (S)
311 <MOVEI T1,[ASCIZ \S\]
312 PUSHJ P,.TSTRG##>
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 11
COPYMT MAC 23-FEB-77 11:47 OTHER MACRO DEFINITIONS
313 ;HIGH$ SWITCHES TO HIGH SEGMENT
314
315 DEFINE HIGH$
316 <IFE SEG$,<HILOC$==.
317 SEG$==-1
318 RELOC LOLOC$>
319 >
320
321 ;LOW$ SWITCHES TO LOW SEGMENT
322
323 DEFINE LOW$
324 <IFN SEG$,<LOLOC$==.
325 SEG$==0
326 RELOC HILOC$>
327 >
328
329 ;RELOC$ DEFINES INITIAL CONDITIONS
330
331 DEFINE RELOC$
332 <RELOC 0
333 LOLOC$==400000
334 SEG$==0>
335
336 ;LIT$ FORCES OUT LITERALS IN CURRENT SEGMENT
337
338 DEFINE LIT$
339 <XLIST
340 LIT
341 LIST>
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 12
COPYMT MAC 23-FEB-77 11:47 GET THE BALL ROLLING
342 SUBTTL GET THE BALL ROLLING
343
344 ;MAIN AND ONLY ENTRY POINT. REMEMBER IF CCL ENTRY OR NOT, AND REMEMBER
345 ;WHERE WE CAME FROM. THIS IS NECESSARY TO RECOVER THE SCAN HIGH SEGMENT
346 ;AFTER WE HAVE FINISHED COPYING
347
348 000000 RELOC$ ;INITIALIZE SEGMENTS
349
350 000000' 634 01 0 00 000001 COPYMT: TDZA T1,T1 ;NOT CCL ENTRY
351 000001' 201 01 0 00 000001 MOVEI T1,1 ;CCL START
352 000002' 202 01 0 00 002453' MOVEM T1,OFFSET ;REMEMBER FOR SCANNING
353 000003' 047 00 0 00 000000 RESET ;STOP ALL I/O
354 REPEAT 0,< ;UN-REPEAT WHEN DISTRIBUTED
355 MOVX T1,%CNDVN ;MONITOR VERSION
356 GETTAB T1,
357 SETZ T1, ;WILL LOOSE BIG
358 TXZ T1,VR.WHO!VR.MIN;GET MAJOR VERSION #
359 CAIGE T1,60200 ;MUST BE .GE. 602
360 ERROR. EF$FTL,N6M,<NEED 6.02 OR LATER MONITOR>
361 >;END REPEAT 0
362 000004' 332 00 0 00 002446' SKIPE SAVRUN ;HAVE WE SAVED RUN UUO ARGS?
363 000005' 254 00 0 00 000013' JRST RUNSVD ;YES--SKIP AHEAD
364 000006' 202 00 0 00 002450' MOVEM .SGNAM,SGNAM ;NO--DO SO NOW
365 000007' 202 07 0 00 002452' MOVEM .SGPPN,SGPPN ;
366 000010' 202 11 0 00 002447' MOVEM .SGDEV,SGDEV
367 000011' 202 17 0 00 002451' MOVEM .SGLOW,SGLOW ;LOW FILE EXTENSION
368 000012' 476 00 0 00 002446' SETOM SAVRUN
369
370 000013' RESTRT:
371 000013' 402 00 0 00 000000 RUNSVD: STORE 17,0,16,0 ;CLEAR ALL ACCUMULATORS
372 000014' 200 17 0 00 000105'
373 000015' 251 17 0 00 000016
374 000016' 402 00 0 00 002454' STORE 17,FW$ZER,LW$ZER,0 ;AND ZEROED DATA BASE
375 000017' 200 17 0 00 000106'
376 000020' 251 17 0 00 003135'
377 000021' 334 17 0 00 000022' SKIPA P,.+1 ;LOAD UP PUSH DOWN POINTER
378 000022' 777730 002527' INIPDP: IOWD LN$PDL,PDLIST
379 000023' 260 17 0 00 000000* PUSHJ P,.RECOR## ;RESET CORE ALLOCATION
380 000024' 260 17 0 00 000120' PUSHJ P,UPSCN ;IN CASE OF ABORT-RESTART
381 000025' 260 17 0 00 000213' PUSHJ P,$CLOSE ;RESET THE /LOG SPEC BLOCK
382 000026' 200 01 0 00 400044' MOVE T1,ISCNBL ;GET .ISCAN ARGUMENT BLOCK
383 000027' 260 17 0 00 000000* PUSHJ P,.ISCAN## ;INITIALIZE THE SCANNER
384 000030' 202 01 0 00 002444' MOVEM T1,ISCNVL ;REMEMBER VALUE RETURNED
385 IFN FT$MTP,<
386 000031' 362 01 0 00 400113' SOJE T1,DOMTAP ;JUMP IF MTAPE COMMAND (VALUE=1)
387 >;END IFN FT$MTP
388 000032' 336 00 0 00 002453' SKIPN OFFSET ;CCL START?
389 000033' 332 00 0 00 002445' SKIPE TLDVER ;TOLD VERSION YET?
390 000034' 254 00 0 00 000043' JRST CPYMT0 ;YES--GO CALL .TSCAN
391 000035' 201 01 0 00 000107' STRNG$ <COPYMT %> ;NO--DO IT NOW
392 000036' 260 17 0 00 000000*
393 000037' 200 01 0 00 000137 MOVE T1,.JBVER
394 000040' 260 17 0 00 000000* PUSHJ P,.TVERW##
395 000041' 260 17 0 00 000000* PUSHJ P,.TCRLF##
396 000042' 476 00 0 00 002445' SETOM TLDVER
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 13
COPYMT MAC 23-FEB-77 11:47 GET THE BALL ROLLING
397 000043' 260 17 0 00 000120' CPYMT0: PUSHJ P,UPSCN ;ENSURE SCAN AROUND
398 000044' 400 00 0 00 000000 SETZ F, ;***CLEAR THE FLAGS
399 000045' 260 17 0 00 400000' PUSHJ P,SCNCMD ;GET A COMMAND
400 000046' 047 01 0 00 000023 MSTIME T1, ;GET TIME OF DAY
401 000047' 202 01 0 00 002510' MOVEM T1,GOTIME ;SAVE AS GO-TIME
402 000050' 400 01 0 00 000000 SETZ T1, ;GET MY RUNTIME
403 000051' 047 01 0 00 000027 RUNTIM T1,
404 000052' 202 01 0 00 002511' MOVEM T1,GORUNT ;SAVE AS INITIAL RUNTIME
405 000053' 200 01 0 00 003031' MOVE T1,OUTSPC+.FXDEV;OUTPUT DEV NAME
406 000054' 047 01 0 00 000064 DEVNAM T1, ;SEE WHAT IT REALLY IS
407 000055' 254 00 0 00 400170' JRST ILLODV ;CAN'T
408 000056' 202 01 0 00 002506' MOVEM T1,ODVNAM ;SAVE FOR LATER
409 IFN FT$TST,<
410 000057' 331 00 0 00 003120' SKIPL TESTFL ;NO INPUT IF /TEST
411 000060' 254 00 0 00 000076' JRST CPYMT1 ;SO DON'T TRY IT
412 >;END IFN FT$TST
413 000061' 200 01 0 00 002777' MOVE T1,INPSPC+.FXDEV;INPUT NAME
414 000062' 047 01 0 00 000064 DEVNAM T1, ;GET REAL NAME
415 000063' 254 00 0 00 400171' JRST ILLIDV ;CAN'T
416 000064' 202 01 0 00 002507' MOVEM T1,IDVNAM
417 000065' 260 17 0 00 400134' PUSHJ P,CHKCMD ;CHECK COMMAND FOR GOODNESS
418 000066' 260 17 0 00 000111' PUSHJ P,DWNSCN ;POOF GOES THE HISEG!
419 000067' 260 17 0 00 000326' PUSHJ P,OPNOUT ;OPEN OUTPUT FILE
420 000070' 260 17 0 00 000400' PUSHJ P,OPNINP ;GET NEXT INPUT FILE
421 000071' 260 17 0 00 000143' PUSHJ P,CHKLOG ;SEE ABOUT THE LOG FILE NOW
422 000072' 260 17 0 00 000634' PUSHJ P,DO.IT ;DO IT
423 000073' 260 17 0 00 000220' CPYMT9: PUSHJ P,CLSLOG ;CLOSE LOG IF IT WAS OPEN
424 000074' 260 17 0 00 000023* PUSHJ P,.RECOR## ;RESET CORE ALLOCATION
425 000075' 254 00 0 00 000043' JRST CPYMT0 ;GET NEXT COMMAND
426
427 IFN FT$TST,<
428 000076' 260 17 0 00 400162' CPYMT1: PUSHJ P,CHKBAT ;SEE IF BATCH JOB
429 000077' 260 17 0 00 000111' PUSHJ P,DWNSCN ;MAKE ME SMALLER
430 000100' 260 17 0 00 000326' PUSHJ P,OPNOUT ;OPEN OUTPUT
431 000101' 260 17 0 00 000143' PUSHJ P,CHKLOG ;GO SEE ABOUT LOG FILE BEFORE WE FIRE IT UP
432 000102' 260 17 0 00 001430' PUSHJ P,TESTIT ;TEST IT
433 000103' 254 00 0 00 000073' JRST CPYMT9 ;LOOP
434 >;END IFN FT$TST
435 000104' 777704 002671' PLPINI: IOWD LN$PRM,PRMPDL ;INITIAL PARAM LIST PTR
436 LIT$ ;FORCE OUT LITERALS
437
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 14
COPYMT MAC 23-FEB-77 11:47 GET THE BALL ROLLING
438 400000' HIGH$ ;THIS CODE CAN DISSAPPEAR
439
440 400000' 200 01 0 00 400052' SCNCMD: MOVE T1,TSCNBL ;GET .TSCAN ARGUMENT BLOCK
441 400001' 260 17 0 00 000000* PUSHJ P,.TSCAN## ;CALL .TSCAN TO SCAN COMMAND
442 IFN FT$TST,<
443 400002' 331 00 0 00 003120' SKIPL TESTFL ;/TAPTST?
444 400003' 254 00 0 00 400013' JRST SCNTST ;YES--SHOULD ONLY HAVE ONE DEVICE
445 >;END IFN FT$TST
446 400004' 332 00 0 00 003031' SKIPE OUTSPC+.FXDEV ;OUTPUT THERE?
447 400005' 336 00 0 00 002777' SKIPN INPSPC+.FXDEV ;YES--INPUT?
448 400006' 260 17 0 00 002353' E$$CER: ERROR. EF$FTL,CER,<COMMAND ERROR>
449 400007' 300400 400620'
450 IFN FT$OPT,<
451 400010' 200 01 0 00 400064' MOVE T1,OSCNBL ;GET ARG PTR FOR .OSCAN
452 400011' 260 17 0 00 000000* PUSHJ P,.OSCAN## ;SCAN DSK:SWITCH.INI[-]
453 >;END IFN FT$OPT
454 400012' 263 17 0 00 000000 POPJ P, ;**SCNCMD RETURN
455 IFN FT$TST,<
456 400013' 332 00 0 00 003031' SCNTST: SKIPE OUTSPC+.FXDEV ;WAS IT DEV:/TAPTST= ?
457 JRST [SKIPN INPSPC+.FXDEV ;YES--BUT WAS INPUT SPEC THERE ALSO?
458 JRST SCNTS0 ;NO--ALL IS WELL
459 400014' 254 00 0 00 400621' JRST E$$CER] ;NO--COMMAND ERROR
460 400015' 332 01 0 00 002777' SKIPE T1,INPSPC+.FXDEV;INPUT SPECIFIED?
461 400016' 312 01 0 00 400624' CAME T1,[SIXBIT/DSK/] ;YES--IF IT IS DSK
462 400017' 334 00 0 00 000000 SKIPA ;'DSK' MEANS /TEST WAS TYPED
463 400020' 402 00 0 00 002777' SETZM INPSPC+.FXDEV ;FAKE-OUT SO WE USE TAPTST:
464 400021' 200 01 0 00 400625' MOVE T1,[INPSPC,,OUTSPC] ;SETUP TO BLT SPEC TO PROPER PLACE
465 400022' 251 01 0 00 003062' BLT T1,OUTSPE ;...MOVE IT
466 400023' 200 01 0 00 400626' SCNTS1: MOVE T1,[SIXBIT/TAPTST/] ;LAST CHANCE TRY IF NO NAME NOW
467 400024' 336 00 0 00 003031' SKIPN OUTSPC+.FXDEV ;DID WE GET ON?
468 400025' 202 01 0 00 003031' MOVEM T1,OUTSPC+.FXDEV;NO--TRY THIS -- COMPLAIN IF FAILURE
469 400026' 201 01 0 00 000001 SCNTS0: MOVEI T1,N$TSTB ;USE N$TSTB BUFFERS
470 400027' 202 01 0 00 003130' MOVEM T1,NOBUFS ;AND SET IT
471 400030' 200 01 0 00 003031' MOVE T1,OUTSPC+.FXDEV;CHECK DEVICE FOR MAGTAPE
472 400031' 047 01 0 00 000064 DEVNAM T1, ;DO IT AGAIN IN CASE WE CHANGED IT (ABOVE)
473 400032' 254 00 0 00 400170' JRST ILLODV ;CAN'T GET AT IT
474 400033' 202 01 0 00 002506' MOVEM T1,ODVNAM ;SAVE FOR LATER
475 400034' 260 17 0 00 400176' PUSHJ P,CKISMT ;BECAUSE WE WON'T TEST ANYTHING ELSE
476 400035' 254 00 0 00 400211' JRST E..DNM ;NOT MTA
477 400036' 200 02 0 00 002506' MOVE T2,ODVNAM ;GET NAME FOR MTCHR.
478 400037' 047 02 0 00 000112 MTCHR. T2, ;GET IT
479 400040' 400 02 0 00 000000 SETZ T2, ;BETTER THIS THAN A HALT!
480 400041' 260 17 0 00 400566' PUSHJ P,STSTBZ ;SET UP 1 FOOT RECORD BUFFERSIZE
481 IFN FT$OPT,<
482 400042' 200 01 0 00 400064' MOVE T1,OSCNBL ;CAN HAVE /IFTYP IN SWITCH.INI
483 400043' 254 00 0 00 400011* PJRST .OSCAN## ;SCAN AND RETURN
484 >;END IFN FT$OPT
485 IFE FT$OPT,<
486 POPJ P, ;END OF SCNCMD
487 >;END IFE FT$OPT
488 >;END IFN FT$TST
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 15
COPYMT MAC 23-FEB-77 11:47 GET THE BALL ROLLING
489 ;ARGUMENT BLOCK FOR .ISCAN
490
491 400044' 000005 400045' ISCNBL: XWD 5, .+1
492 400045' 777776 400103' IOWD N$CMDS,CMDLST ;LEGAL COMMAND LIST
493 400046' 002453' 435564 XWD OFFSET,MY$PFX
494 400047' 000000 000170' XWD 0,CHROUT ;SO WE CAN MPX OUTPUT TO LOG FILE
495 400050' 000000 000000 EXP 0
496 400051' 400106' 000000 XWD DOPRMP,0
497
498 ;.TSCAN ARGUMENT BLOCK
499
500 400052' 000011 400053' TSCNBL: XWD 11, .+1
501 400053' 777750 400221' IOWD SWTL,SWTN
502 400054' 400332' 400302' XWD SWTD,SWTM
503 400055' 000000 400252' XWD 0,SWTP
504 400056' 777777 777777 EXP -1 ;USE JOB NAME TABLE
505 400057' 400467' 400516' XWD CLRANS,CLRFIL
506 400060' 400442' 400450' XWD AIN,AOUT
507 400061' 000000 000000 EXP 0
508 400062' 000000 000000 EXP 0 ;NO FLAGS
509 400063' 000000 400517' EXP STOSWT
510
511 IFN FT$OPT,<
512 ;.OSCAN ARGUMENT BLOCK
513
514 400064' 000004 400065' OSCNBL: XWD 4, .+1
515 400065' 777771 400361' IOWD OPSWL,OPSWN
516 400066' 400407' 400400' XWD OPSWD,OPSWM
517 400067' 000000 400371' XWD 0,OPSWP
518 400070' 777777 777777 EXP -1
519 400071' 000000 000000 EXP 0
520 >;END IFN FT$OPT
521
522 IFN FT$MTP,< ;MTAPE FEATURE
523 ;.TSCAN ARG BLOCK FOR MTAPE COMMAND
524
525 400072' 000011 400073' MTSCNB: XWD 11, .+1
526 400073' 777773 400415' IOWD MTSWL,MTSWN
527 400074' 400435' 400430' XWD MTSWD,MTSWM
528 400075' 000000 400423' XWD 0,MTSWP
529 400076' 777777 777777 EXP -1
530 400077' 400467' 400516' XWD CLRANS,CLRFIL
531 400100' 400442' 400450' XWD AIN,AOUT
532 400101' 000000 000000 EXP 0
533 400102' 000000 000000 EXP 0
534 400103' 000000 400517' EXP STOSWT
535 >;END IFN FT$MTP
536
537 400104' 435760 715564 CMDLST: EXP MY$NAM ;IF ANY BODY WANTS IT...
538 IFN FT$MTP,< ;MTAPE COMMAND
539 400105' 55 64 41 60 45 00 SIXBIT /MTAPE/ ;
540 >;END IFN FT$MTP
541
542 000002 N$CMDS==.-CMDLST
543
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 15-1
COPYMT MAC 23-FEB-77 11:47 GET THE BALL ROLLING
544 ;SCAN CALLS HERE TO PROMPT
545
546 400106' 331 00 0 00 000001 DOPRMP: SKIPL T1 ;INITIAL OR CONTINUATION?
547 400107' 334 01 0 00 400112' SKIPA T1,PRMPT0 ;INITIAL
548 400110' 205 01 0 00 030000 MOVSI T1,'# ' ;CONTINUATION
549 400111' 254 00 0 00 000000* PJRST .TSIXN## ;TYPE IT
550
551 400112' 435564 360000 PRMPT0: XWD MY$PFX,'> '
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 16
COPYMT MAC 23-FEB-77 11:47 MTAPE COMMAND HANDLER
552 SUBTTL MTAPE COMMAND HANDLER
553
554 IFN FT$MTP,<
555
556 400113' 661 00 0 00 002000 DOMTAP: TLO F,FL$MTP ;FLAG MTAPEING
557 400114' 200 01 0 00 400072' MOVE T1,MTSCNB ;TSCAN BLOCK FOR MTAPE COMMAND
558 400115' 260 17 0 00 400001* PUSHJ P,.TSCAN## ;CALL COMMAND SCANNER
559 400116' 336 01 0 00 002777' SKIPN T1,INPSPC+.FXDEV;CHECK FOR AN INPUT SPEC
560 400117' 254 00 0 00 400006' JRST E$$CER ;NO--MUST HAVE SCREWED UP
561 400120' 316 01 0 00 400624' CAMN T1,[SIXBIT/DSK/] ;IS IT DSK?
562 JRST [SKIPN T1,INPSPC+.FXNAM ;YES--PROBABLY FORGOT THE COLON
563 JRST E$$CER ;WHOOPS!! BAD COMMAND
564 MOVEM T1,INPSPC+.FXDEV ;SO TRY THE FILE NAME
565 400121' 254 00 0 00 400627' JRST .+1]
566 400122' 047 01 0 00 000064 DEVNAM T1, ;GET REAL NAME
567 400123' 254 00 0 00 400171' JRST ILLIDV ;NOT REAL
568 400124' 202 01 0 00 002507' MOVEM T1,IDVNAM ;SAVE FOR LATER
569 400125' 260 17 0 00 400176' PUSHJ P,CKISMT ;ENSURE MTA
570 400126' 254 00 0 00 400211' JRST E..DNM ;NOTT-GO BOMB
571 400127' 260 17 0 00 000507' PUSHJ P,OPINOB ;OPEN INPUT WITH NO BUFFERS
572 400130' 260 17 0 00 400162' PUSHJ P,CHKBAT ;BETTER CHECK FOR BATCH...
573 400131' 260 17 0 00 000634' PUSHJ P,DO.IT ;PERFORM THE OPERATIONS
574 400132' 260 17 0 00 000000* PUSHJ P,.MONRT## ;ALL DONE
575 400133' 254 00 0 00 000013' JRST RESTRT ;ON .CONTINUE GET THE PROMPT
576 >;END IFN FT$MTP
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 17
COPYMT MAC 23-FEB-77 11:47 CHECK COMMAND FOR REAL MAGTAPES AND OTHER GOOD THINGS
577 SUBTTL CHECK COMMAND FOR REAL MAGTAPES AND OTHER GOOD THINGS
578
579 400134' 200 01 0 00 002506' CHKCMD: MOVE T1,ODVNAM ;GET OUTPUT DEVICE REAL NAME
580 400135' 260 17 0 00 400176' PUSHJ P,CKISMT ;ENSURE MTA
581 400136' 661 00 0 00 000040 TLO F,FL$DSO ;FLAG DSK OUTPUT
582 400137' 200 01 0 00 002507' MOVE T1,IDVNAM ;SAME FOR INPUT
583 400140' 260 17 0 00 400176' PUSHJ P,CKISMT
584 400141' 661 00 0 00 000100 TLO F,FL$DSI ;FLAG DSK INPUT
585 400142' 603 00 0 00 000140 TLNE F,FL$DSO!FL$DSI ;CHECK FOR DSK IN OR OUT
586 JRST [TLC F,FL$DSI!FL$DSO ;YES--MAKE SURE NOT BOTH DSK
587 TLCE F,FL$DSI!FL$DSO ;
588 JRST CHKC.1 ;A-OK--MOVIN' ALONG
589 400143' 254 00 0 00 400641' ERROR. (EF$FTL,BDD,<BOTH DEVICES ARE DSK>)]
590 400144' 200 01 0 00 002506' MOVE T1,ODVNAM ;MAKE SURE NOT SAME MTA
591 400145' 200 02 0 00 002507' MOVE T2,IDVNAM ;...
592 400146' 316 01 0 00 000002 CAMN T1,T2 ;BETTER NOT BE THE SAME
593 400147' 254 00 0 00 400174' JRST E$$CUS ;YES--STUPID
594 400150' 254 00 0 00 400162' JRST CHKC.2 ;OK--NOW SKIP AHEAD
595 400151' 525 02 0 00 444164 CHKC.1: HRLOI T2,'DAT' ;SETUP DEFAULT EXTENSION
596 400152' 603 00 0 00 000100 TLNE F,FL$DSI ;DISK INPUT?
597 400153' 332 00 0 00 003002' SKIPE INPSPC+.FXEXT ;NEED ONE?
598 400154' 334 00 0 00 000000 SKIPA ;NO--DON'T TOUCH IT
599 400155' 202 02 0 00 003002' MOVEM T2,INPSPC+.FXEXT ;YES--DEFAULT IT
600 400156' 603 00 0 00 000040 TLNE F,FL$DSO ;DISK OUTPUT?
601 400157' 332 00 0 00 003034' SKIPE OUTSPC+.FXEXT ;YES--NEED DEFAULT?
602 400160' 334 00 0 00 000000 SKIPA ;NO
603 400161' 202 02 0 00 003034' MOVEM T2,OUTSPC+.FXEXT ;YES--DEFAULT
604 400162' CHKC.2:
605 400162' 561 01 0 00 000040 CHKBAT: HRROI T1,.GTLIM ;NOW SEE IF I AM A BATCH JOB
606 400163' 047 01 0 00 000041 GETTAB T1, ;ASK MON
607 400164' 400 01 0 00 000000 SETZ T1, ;JE NE SAIS PAS
608 400165' 603 01 0 00 000200 TLNE T1,(JB.LBT) ;BATCH JOB?
609 400166' 661 00 0 00 010000 TLO F,FL$BAT ;YES--REMEMBER THAT
610 400167' 263 17 0 00 000000 POPJ P, ;ALL IS WELL (I HOPE)
611
612 400170' 334 01 0 00 003031' ILLODV: SKIPA T1,OUTSPC+.FXDEV;DEVNAM FAILED
613 400171' 200 01 0 00 002777' ILLIDV: MOVE T1,INPSPC+.FXDEV
614 400172' 260 17 0 00 002353' ERROR. EF$FTL!EF$SIX,IUD,<ILLEGAL OR UNKNOWN DEVICE - >
615 400173' 300403 400654'
616
617 400174' 260 17 0 00 002353' E$$CUS: ERROR. EF$FTL,CUS,<CAN'T USE SAME MTA FOR INPUT AND OUTPUT>
618 400175' 300400 400665'
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 18
COPYMT MAC 23-FEB-77 11:47 CHECK COMMAND FOR REAL MAGTAPES AND OTHER GOOD THINGS
619 ;CKISMT -- SEE IF DEVICE IS MTA
620 ;CALL: MOVE T1,DEVNAM
621 ; PUSHJ P,CKISMT
622 ; *ITS A DSK*
623 ; *ITS MTA*
624 ;PRESERVES T1
625
626 400176' 200 02 0 00 000001 CKISMT: MOVE T2,T1 ;COPY DEVICE NAME
627 400177' 047 02 0 00 000004 DEVCHR T2, ;GET CHARACTERISTICS
628 400200' 603 02 0 00 000020 TLNE T2,(DV.MTA) ;IS IT AN MTA?
629 400201' 603 02 0 00 000010 TLNE T2,(DV.TTY) ; AND ALSO A TTY (IMPLIES NUL:)
630 400202' 254 00 0 00 400207' JRST CKISM1 ;NO--SEE IF DSK
631 400203' 603 02 0 00 000040 TLNE T2,(DV.AVL) ;MTA--IS IT AVAILABLE TO ME?
632 400204' 254 00 0 00 000000* JRST .POPJ1## ;YES--DONE
633 400205' 260 17 0 00 002353' ERROR. EF$FTL!EF$SIX,MNA,<MTA IS NOT AVAILABLE - >
634 400206' 300403 400673'
635 400207' 603 02 0 00 200000 CKISM1: TLNE T2,(DV.DSK) ;IS IT A DSK?
636 400210' 603 02 0 00 000010 TLNE T2,(DV.TTY) ;YES--AND NOT TTY (I.E. NOT NUL:)
637 400211' 260 17 0 00 002353' E..DNM: ERROR. EF$SIX!EF$FTL,DNM,<DEVICE NOT A MAGTAPE - >
638 400212' 300403 400701'
639 400213' 263 17 0 00 000000 POPJ P, ;DEVICE IS A DISK
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 19
COPYMT MAC 23-FEB-77 11:47 SWITCH TABLE
640 SUBTTL SWITCH TABLE
641
642 DEFINE SWTCHS,<
643 SP *BACKSP,FN$BSP,.SWDEC##,MTN,FS$XTR!FS.VRQ
644 SP BUFSIZ,BUFSIZ,.SWDEC##,BFZ,FS.NUE
645 SS CLOSE,$CLOSE,0,FS.NFS!FS.NCM!FS$SPL
646 SP COMMENT,<POINT ^D65-^D28,UCOMNT>,.SWASQ##,,FS.NUE
647 SP CONCAT,FN$CON,.SWDEC##,MTN,FS.VRQ!FS$XTR!FS$INP
648 SP *COPY,FN$CPY,.SWDEC##,MTN,FS$XTR!FS$INP!FS.VRQ
649 SS *EOF,FN$EOF,FN$EOF,FS$NVL
650 SL ERROR,ERRFLG,ERL,ERLCON,FS.NUE
651 SP IBUF,NIBUFS,.SWDEC##,BFS,FS.NUE
652 SS *IFTYP,<POINTR (F,$FLITY)>,1,FS.NUE
653 SP LOG,$LOGSW,.POPJ##,LGF,FS.NFS!FS.NCM!FS$SPL
654 SL MODE,MODFLG,MOD,MODBIN,FS.NUE
655 SS NORETR,RTRYFL,1,FS.NUE
656 SP OBUF,NOBUFS,.SWDEC##,BFS,FS.NUE
657 IFN FT$TST,<
658 SP REPEAT,RPETFL,.SWDEC##,RPT,FS.NUE
659 >;END IFN FT$TST
660 SS REPORT,RPTFLG,1,FS.NUE
661 SP RETRY,NUMTRY,.SWDEC##,TRY,FS.NUE
662 SS *REWIND,FN$REW,FN$REW,FS$NVL
663 SP *SKIP,FN$SKP,.SWDEC##,MTN,FS$XTR!FS.VRQ
664 IFN FT$TST,<
665 SP TAPTST,TESTFL,.SWDEC##,TST,FS.NUE
666 SP *TEST,TESTFL,.SWDEC##,TST,FS.NUE
667 >;END IFN FT$TST
668 SS TIME,TIMEFL,1,FS.NUE
669 SS TO32,<POINTR(F,$FL232)>,1,FS.NUE
670 SS *UNLOAD,FN$UNL,FN$UNL,FS$NVL
671 >
672
673 000032 MX.LGF==.FXLEN
674 000001 PD.LGF==1
675 DM (BFS,^D20,6,6)
676 DM (MTN,177777,177777,177777)
677 DM (BFZ,^D4096,^D2048,^D1024)
678 IFN FT$TST,<
679 DM (RPT,177777,1,1)
680 DM (TRY,^D100,DF$TRY,DF$TRY)
681 DM (TST,177777,0,0)
682 >;END IFN FT$TST
683 400214' 435756 645156 KEYS (ERL,<CONTIN,IGNORE,QUERY>)
684 400215' 514756 576245
685 400216' 616545 627100
686 400217' 425156 416271 KEYS (MOD,<BINARY,INDUST,SEVENB>)
687 400220' 515644 656364
688 400221' 634566 455642
689
690 DOSCAN (SWT)
691 400222' 124241 435363 EXP SIXBIT /*BACKSP/
692 400223' 426546 635172 EXP SIXBIT /BUFSIZ/
693 400224' 435457 634500 EXP SIXBIT /CLOSE/
694 400225' 435755 554556 EXP SIXBIT /COMMENT/
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 19-1
COPYMT MAC 23-FEB-77 11:47 SWITCH TABLE
695 400226' 435756 434164 EXP SIXBIT /CONCAT/
696 400227' 124357 607100 EXP SIXBIT /*COPY/
697 400230' 124557 460000 EXP SIXBIT /*EOF/
698 400231' 456262 576200 EXP SIXBIT /ERROR/
699 400232' 514265 460000 EXP SIXBIT /IBUF/
700 400233' 125146 647160 EXP SIXBIT /*IFTYP/
701 400234' 545747 000000 EXP SIXBIT /LOG/
702 400235' 555744 450000 EXP SIXBIT /MODE/
703 400236' 565762 456462 EXP SIXBIT /NORETR/
704 400237' 574265 460000 EXP SIXBIT /OBUF/
705 400240' 624560 454164 EXP SIXBIT /REPEAT/
706 400241' 624560 576264 EXP SIXBIT /REPORT/
707 400242' 624564 627100 EXP SIXBIT /RETRY/
708 400243' 126245 675156 EXP SIXBIT /*REWIND/
709 400244' 126353 516000 EXP SIXBIT /*SKIP/
710 400245' 644160 646364 EXP SIXBIT /TAPTST/
711 400246' 126445 636400 EXP SIXBIT /*TEST/
712 400247' 645155 450000 EXP SIXBIT /TIME/
713 400250' 645723 220000 EXP SIXBIT /TO32/
714 400251' 126556 545741 EXP SIXBIT /*UNLOAD/
715 400252' 000000 000001 EXP <FN$BSP> ;*BACKSP
716 400253' 000000 003131' EXP <BUFSIZ> ;BUFSIZ
717 400254' 000000 000213' EXP <$CLOSE> ;CLOSE
718 400255' 444500 003063' EXP <POINT ^D65-^D28,UCOMNT> ;COMMENT
719 400256' 000000 000007 EXP <FN$CON> ;CONCAT
720 400257' 000000 000006 EXP <FN$CPY> ;*COPY
721 400260' 000000 000003 EXP <FN$EOF> ;*EOF
722 400261' 000000 003132' EXP <ERRFLG> ;ERROR
723 400262' 000000 003127' EXP <NIBUFS> ;IBUF
724 400263' 310100 000000 ($FLITY)^<^L<$FLITY>+^L<-<<$FLITY>_<^L<$FLITY>>>-1>-1>^>^> ;*IFTYP
725 400264' 000000 400506' EXP <$LOGSW> ;LOG
726 400265' 000000 003133' EXP <MODFLG> ;MODE
727 400266' 000000 003123' EXP <RTRYFL> ;NORETR
728 400267' 000000 003130' EXP <NOBUFS> ;OBUF
729 400270' 000000 003122' EXP <RPETFL> ;REPEAT
730 400271' 000000 003125' EXP <RPTFLG> ;REPORT
731 400272' 000000 003121' EXP <NUMTRY> ;RETRY
732 400273' 000000 000004 EXP <FN$REW> ;*REWIND
733 400274' 000000 000002 EXP <FN$SKP> ;*SKIP
734 400275' 000000 003120' EXP <TESTFL> ;TAPTST
735 400276' 000000 003120' EXP <TESTFL> ;*TEST
736 400277' 000000 003124' EXP <TIMEFL> ;TIME
737 400300' 260100 000000 ($FL232)^<^L<$FL232>+^L<-<<$FL232>_<^L<$FL232>>>-1>-1>^>^> ;TO32
738 400301' 000000 000005 EXP <FN$UNL> ;*UNLOAD
739 400302' 177777 000000* XWD MX.MTN,.SWDEC## ;*BACKSP
740 400303' 010000 400302* XWD MX.BFZ,.SWDEC## ;BUFSIZ
741 400304' 000000 000000 XWD 0,0 ;CLOSE
742 400305' 000000 000000* XWD MX.,.SWASQ## ;COMMENT
743 400306' 177777 400303* XWD MX.MTN,.SWDEC## ;CONCAT
744 400307' 177777 400306* XWD MX.MTN,.SWDEC## ;*COPY
745 400310' 000000 000000 XWD 0,0 ;*EOF
746 400311' 777775 400213' XWD -ERL.L,ERL.T-1 ;ERROR
747 400312' 000024 400307* XWD MX.BFS,.SWDEC## ;IBUF
748 400313' 000000 000000 XWD 0,0 ;*IFTYP
749 400314' 000032 000000* XWD MX.LGF,.POPJ## ;LOG
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 19-2
COPYMT MAC 23-FEB-77 11:47 SWITCH TABLE
750 400315' 777775 400216' XWD -MOD.L,MOD.T-1 ;MODE
751 400316' 000000 000000 XWD 0,0 ;NORETR
752 400317' 000024 400312* XWD MX.BFS,.SWDEC## ;OBUF
753 400320' 177777 400317* XWD MX.RPT,.SWDEC## ;REPEAT
754 400321' 000000 000000 XWD 0,0 ;REPORT
755 400322' 000144 400320* XWD MX.TRY,.SWDEC## ;RETRY
756 400323' 000000 000000 XWD 0,0 ;*REWIND
757 400324' 177777 400322* XWD MX.MTN,.SWDEC## ;*SKIP
758 400325' 177777 400324* XWD MX.TST,.SWDEC## ;TAPTST
759 400326' 177777 400325* XWD MX.TST,.SWDEC## ;*TEST
760 400327' 000000 000000 XWD 0,0 ;TIME
761 400330' 000000 000000 XWD 0,0 ;TO32
762 400331' 000000 000000 XWD 0,0 ;*UNLOAD
763 400332' 042000 177777 XWD ..TEMR,PD.MTN ;*BACKSP
764 400333' 100000 002000 XWD ..TEMR,PD.BFZ ;BUFSIZ
765 400334' 404100 000000 XWD ..TEMR,0 ;CLOSE
766 400335' 100000 000000 XWD ..TEMR,PD. ;COMMENT
767 400336' 042200 177777 XWD ..TEMR,PD.MTN ;CONCAT
768 400337' 042200 177777 XWD ..TEMR,PD.MTN ;*COPY
769 400340' 001000 000003 XWD ..TEMR,FN$EOF ;*EOF
770 400341' 100000 000001 XWD ..TEMR,ERLCON ;ERROR
771 400342' 100000 000006 XWD ..TEMR,PD.BFS ;IBUF
772 400343' 100000 000001 XWD ..TEMR,1 ;*IFTYP
773 400344' 404100 000001 XWD ..TEMR,PD.LGF ;LOG
774 400345' 100000 000001 XWD ..TEMR,MODBIN ;MODE
775 400346' 100000 000001 XWD ..TEMR,1 ;NORETR
776 400347' 100000 000006 XWD ..TEMR,PD.BFS ;OBUF
777 400350' 100000 000001 XWD ..TEMR,PD.RPT ;REPEAT
778 400351' 100000 000001 XWD ..TEMR,1 ;REPORT
779 400352' 100000 000004 XWD ..TEMR,PD.TRY ;RETRY
780 400353' 001000 000004 XWD ..TEMR,FN$REW ;*REWIND
781 400354' 042000 177777 XWD ..TEMR,PD.MTN ;*SKIP
782 400355' 100000 000000 XWD ..TEMR,PD.TST ;TAPTST
783 400356' 100000 000000 XWD ..TEMR,PD.TST ;*TEST
784 400357' 100000 000001 XWD ..TEMR,1 ;TIME
785 400360' 100000 000001 XWD ..TEMR,1 ;TO32
786 400361' 001000 000005 XWD ..TEMR,FN$UNL ;*UNLOAD
787
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 20
COPYMT MAC 23-FEB-77 11:47 .OSCAN/MTAPE COMMAND SWITCH TABLES
788 SUBTTL .OSCAN/MTAPE COMMAND SWITCH TABLES
789
790 IFN FT$OPT,< ;ONLY IF ASSEMBLED FOR OPTION SCANNNING
791
792 DEFINE SWTCHS,<
793 SP BUFSIZ,BUFSIZ,.SWDEC##,BFZ,FS.NUE
794 SL ERROR,ERRFLG,ERL,ERLCON,FS.NUE
795 SP IBUF,NIBUFS,.SWDEC##,BFS,FS.NUE
796 SS *IFTYP,<POINTR (F,$FLITY)>,1,FS.NUE
797 SP LOG,$LOGSW,.POPJ##,LGF,FS.NFS!FS.NCM!FS$SPL
798 SP OBUF,NOBUFS,.SWDEC##,BFS,FS.NUE
799 SS TIME,TIMEFL,1,FS.NUE
800 >
801
802 DOSCAN (OPSW)
803 400362' 426546 635172 EXP SIXBIT /BUFSIZ/
804 400363' 456262 576200 EXP SIXBIT /ERROR/
805 400364' 514265 460000 EXP SIXBIT /IBUF/
806 400365' 125146 647160 EXP SIXBIT /*IFTYP/
807 400366' 545747 000000 EXP SIXBIT /LOG/
808 400367' 574265 460000 EXP SIXBIT /OBUF/
809 400370' 645155 450000 EXP SIXBIT /TIME/
810 400371' 000000 003131' EXP <BUFSIZ> ;BUFSIZ
811 400372' 000000 003132' EXP <ERRFLG> ;ERROR
812 400373' 000000 003127' EXP <NIBUFS> ;IBUF
813 400374' 310100 000000 ($FLITY)^<^L<$FLITY>+^L<-<<$FLITY>_<^L<$FLITY>>>-1>-1>^>^> ;*IFTYP
814 400375' 000000 400506' EXP <$LOGSW> ;LOG
815 400376' 000000 003130' EXP <NOBUFS> ;OBUF
816 400377' 000000 003124' EXP <TIMEFL> ;TIME
817 400400' 010000 400326* XWD MX.BFZ,.SWDEC## ;BUFSIZ
818 400401' 777775 400213' XWD -ERL.L,ERL.T-1 ;ERROR
819 400402' 000024 400400* XWD MX.BFS,.SWDEC## ;IBUF
820 400403' 000000 000000 XWD 0,0 ;*IFTYP
821 400404' 000032 400314* XWD MX.LGF,.POPJ## ;LOG
822 400405' 000024 400402* XWD MX.BFS,.SWDEC## ;OBUF
823 400406' 000000 000000 XWD 0,0 ;TIME
824 400407' 100000 002000 XWD ..TEMR,PD.BFZ ;BUFSIZ
825 400410' 100000 000001 XWD ..TEMR,ERLCON ;ERROR
826 400411' 100000 000006 XWD ..TEMR,PD.BFS ;IBUF
827 400412' 100000 000001 XWD ..TEMR,1 ;*IFTYP
828 400413' 404100 000001 XWD ..TEMR,PD.LGF ;LOG
829 400414' 100000 000006 XWD ..TEMR,PD.BFS ;OBUF
830 400415' 100000 000001 XWD ..TEMR,1 ;TIME
831 >;END IFN FT$OPT
832
833 IFN FT$MTP,<
834
835 DEFINE SWTCHS,<
836 SP *BACKSP,FN$BSP,.SWDEC##,MTN,FS$XTR
837 SS *EOF,FN$EOF,FN$EOF,FS$NVL
838 SS *REWIND,FN$REW,FN$REW,FS$NVL
839 SP *SKIP,FN$SKP,.SWDEC##,MTN,FS$XTR
840 SS *UNLOAD,FN$UNL,FN$UNL,FS$NVL
841 >
842
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 20-1
COPYMT MAC 23-FEB-77 11:47 .OSCAN/MTAPE COMMAND SWITCH TABLES
843 DOSCAN (MTSW)
844 400416' 124241 435363 EXP SIXBIT /*BACKSP/
845 400417' 124557 460000 EXP SIXBIT /*EOF/
846 400420' 126245 675156 EXP SIXBIT /*REWIND/
847 400421' 126353 516000 EXP SIXBIT /*SKIP/
848 400422' 126556 545741 EXP SIXBIT /*UNLOAD/
849 400423' 000000 000001 EXP <FN$BSP> ;*BACKSP
850 400424' 000000 000003 EXP <FN$EOF> ;*EOF
851 400425' 000000 000004 EXP <FN$REW> ;*REWIND
852 400426' 000000 000002 EXP <FN$SKP> ;*SKIP
853 400427' 000000 000005 EXP <FN$UNL> ;*UNLOAD
854 400430' 177777 400405* XWD MX.MTN,.SWDEC## ;*BACKSP
855 400431' 000000 000000 XWD 0,0 ;*EOF
856 400432' 000000 000000 XWD 0,0 ;*REWIND
857 400433' 177777 400430* XWD MX.MTN,.SWDEC## ;*SKIP
858 400434' 000000 000000 XWD 0,0 ;*UNLOAD
859 400435' 002000 177777 XWD ..TEMR,PD.MTN ;*BACKSP
860 400436' 001000 000003 XWD ..TEMR,FN$EOF ;*EOF
861 400437' 001000 000004 XWD ..TEMR,FN$REW ;*REWIND
862 400440' 002000 177777 XWD ..TEMR,PD.MTN ;*SKIP
863 400441' 001000 000005 XWD ..TEMR,FN$UNL ;*UNLOAD
864 >;END IFN FT$MTP
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 21
COPYMT MAC 23-FEB-77 11:47 HELPER ROUTINES FOR SCANNING COMMANDS
865 SUBTTL HELPER ROUTINES FOR SCANNING COMMANDS
866
867 ;SCAN CALLS HERE TO ALLOCATE SPACE FOR INPUT SPEC
868
869 400442' 607 00 0 00 102000 AIN: TLNN F,FL$CPY!IFN FT$MTP,<FL$MTP> ;DID WE SEE /COPY OR /CONCAT?
870 ;OR IS THIS MTAPE COMMAND?
871 400443' 260 17 0 00 400503' PUSHJ P,CPYHOL ;NO--SET UP TO COPY WHOLE TAPE
872 400444' 561 01 0 00 777776 HRROI T1,FN$EOL ;SET END OF LIST
873 400445' 260 17 0 00 400552' PUSHJ P,PRMSTO ;...
874 400446' 201 01 0 00 002777' MOVEI T1,INPSPC ;POINT TO SPEC
875 400447' 254 00 0 00 400456' PJRST ALEN ;GET LENGTH AND RETURN
876
877 ;SCAN CALLS HERE TO ALLOC OUTPUT SPEC SPACE
878
879 400450' 561 01 0 00 777777 AOUT: HRROI T1,FN$INP ;SET END OF OUTPUT LIST
880 400451' 260 17 0 00 400552' PUSHJ P,PRMSTO ;...
881 400452' 260 17 0 00 400456' PUSHJ P,ALEN ;SETUP MODFLG AND T2 (LENGTH)
882 400453' 661 00 0 00 200000 TLO F,FL$OUT ;OUTPUT SPEC ALLOCATED
883 400454' 201 01 0 00 003031' MOVEI T1,OUTSPC ;HERE IT IS!
884 400455' 263 17 0 00 000000 POPJ P, ;RETURN FROM AOUT
885 400456' 337 02 0 00 003133' ALEN: SKIPG T2,MODFLG ;/MODE:MODE SPECIFIED THIS SIDE?
886 400457' 254 00 0 00 400465' JRST ALEN2 ;NO--DON'T BOTHER WITH IT
887 400460' 603 00 0 00 200000 TLNE F,FL$OUT ;INPUT?
888 400461' 202 02 0 00 003134' MOVEM T2,INPMOD ;YES
889 400462' 607 00 0 00 200000 TLNN F,FL$OUT ;OUTPUT?
890 400463' 202 02 0 00 003135' MOVEM T2,OUTMOD ;YES
891 400464' 476 00 0 00 003133' SETOM MODFLG ;RESET MODFLG SO SCAN DOESN'T BARF
892 400465' 201 02 0 00 000032 ALEN2: MOVEI T2,LN$FDB ;TELL SCAN LENGTH OF FDB
893 400466' 263 17 0 00 000000 POPJ P,
894
895 ;SCAN CALLS HERE TO CLEAR ALL ANSWERS
896
897 400467' 402 00 0 00 002777' CLRANS: STORE T1,SCN$FZ,SCN$LZ,0
898 400470' 200 01 0 00 400702'
899 400471' 251 01 0 00 003135'
900 400472' 476 00 0 00 003063' STORE T1,SWT$FO,SWT$LO,-1 ;WORD SWITCHES TO -1 PLEASE
901 400473' 200 01 0 00 400703'
902 400474' 251 01 0 00 003135'
903 400475' 200 12 0 00 000104' MOVE PLP,PLPINI ;SETUP PARAM LIST PTR
904 IFN FT$MTP,<
905 400476' 607 00 0 00 002000 TLNN F,FL$MTP ;MTAPE COMMAND?
906 400477' 263 17 0 00 000000 POPJ P, ;NO
907 400500' 561 01 0 00 777777 HRROI T1,FN$INP ;YES--FORCE TO INPUT SIDE ONLY
908 400501' 260 17 0 00 400552' PUSHJ P,PRMSTO ;SET ON PARAM LIST
909 >;END IFN FT$MTP
910 400502' 263 17 0 00 000000 POPJ P,
911
912 ;FIX UP TO COPY WHOLE TAPE...NO /COPY OR /CONCAT
913
914 400503' 201 01 0 00 000006 CPYHOL: MOVEI T1,FN$CPY ;FUNCTION
915 400504' 525 02 0 00 677777 HRLOI T2,677777 ;LARGE NUMBER OF FILES/RECORDS
916 400505' 254 00 0 00 400552' PJRST PRMSTO ;SET ON PARAM LIST AND RETURN
917
918 ;HERE TO STORE /LOG SWITCH
919
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 21-1
COPYMT MAC 23-FEB-77 11:47 HELPER ROUTINES FOR SCANNING COMMANDS
920 400506' 302 10 0 00 000072 $LOGSW: CAIE C,":" ;IS THERE A FILE SPEC?
921 JRST [MOVEI T1,1 ;NO--STORE A 1
922 MOVEM T1,LOGSPC;...
923 400507' 254 00 0 00 400704' POPJ P,] ;RETURN TO SCAN
924 400510' 260 17 0 00 000000* PUSHJ P,.FILIN## ;READ THE FILE SPEC
925 400511' 201 01 0 00 002454' MOVEI T1,LOGSPC ;POINT AT MY STORAGE
926 400512' 201 02 0 00 000032 MOVEI T2,.FXLEN
927 400513' 260 17 0 00 000000* PUSHJ P,.GTSPC## ;COPY SPEC TO MINE AREA
928 400514' 201 01 0 00 000001 MOVEI T1,1 ;NO SENSE IN SCAN CALLING CLRFIL NOW
929 400515' 254 00 0 00 000000* PJRST .CLRFL## ;CLEAR FILE AREA AND RETURN
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 22
COPYMT MAC 23-FEB-77 11:47 HELPER ROUTINES FOR SCANNING COMMANDS
930 ;SCAN CALLS HERE TO CLEAR ALL FILE ANSWERS
931
932 400516' 263 17 0 00 000000 CLRFIL: POPJ P, ;***
933
934 ;SCAN CALLS HERE TO STORE FILE SWITCHES
935 ;WITH N=VALUE,T2=PTR (FUNCTION FN$XXX IN THIS CASE), AND T3=FLAGS (LH)
936 ;ALSO P1=SWITCH INDEX
937
938 400517' STOSWT:
939 400517' 603 03 0 00 000100 TLNE T3,(FS$SPL) ;SPECIAL PROCESSING?
940 400520' 254 00 1 05 400252' JRST @SWTP(P1) ;YES--GO THERE
941 400521' 607 03 0 00 000400 TLNN T3,(FS$OUT) ;SWITCH OUTPUT ONLY?
942 400522' 254 00 0 00 400525' JRST STOSWA ;NO
943 400523' 603 00 0 00 200000 TLNE F,FL$OUT ;YES--IS OUTPUT DONE?
944 400524' 254 00 0 00 400560' JRST E$$OSI ;YES--GO BOMB--OUTPUT SWITCH ON INPUT
945 400525' 607 03 0 00 000200 STOSWA: TLNN T3,(FS$INP) ;INPUT ONLY?
946 400526' 254 00 0 00 400531' JRST STOSWB ;NO--GO STORE IT
947 400527' 607 00 0 00 200000 TLNN F,FL$OUT ;YES--OUTPUT DONE YET?
948 400530' 254 00 0 00 400563' JRST E$$ISO ;NO--GO BOMB
949 400531' 603 03 0 00 001000 STOSWB: TLNE T3,(FS$NVL) ;NEVER TAKE A VALUE?
950 400532' 254 00 0 00 400547' JRST SWTS0A ;YES--MAKE SURE IT DOESN'T GET ONE
951 ;(BUT SET VALUE OF ONE SO IT GETS DONE ONCE)
952 400533' 607 03 0 00 002000 TLNN T3,(FS$XTR) ;NO--DOES IT TAKE EXTRA VALUES?
953 400534' 254 00 0 00 400550' JRST SWTST0 ;NO--JUST MOVE ALONG
954 400535' 302 10 0 00 000072 CAIE C,":" ;YES--IS THERE ONE?
955 400536' 254 00 0 00 400550' JRST SWTST0 ;NO--ONLY RECORDS WERE GIVEN
956 SAVE$ <N,T2> ;YES--SAVE VALUE, AND PTR (FUNCTION)
957 400541' 260 17 0 00 000000* PUSHJ P,.DECNW## ;READ SECOND VALUE
958 RESTR$ <T1,T2> ;RESTORE GOOD STUFF AND POSITION IN CORRECT ACS
959 400544' 207 00 0 00 000002 MOVSS T2 ;BUT FILE COUNT GOES IN LEFT HALF
960 400545' 540 02 0 00 000007 HRR T2,N ;AND RECORD COUNT TO RIGHT HALF
961 400546' 254 00 0 00 400552' PJRST PRMSTO ;STORE PARAMS, AND SKIP SCAN SWITCH STORE
962
963 400547' 201 07 0 00 000001 SWTS0A: MOVEI N,1 ;FS$NVL--MAKE SURE IT GETS DONE 1 TIME
964 400550' 200 01 0 00 000002 SWTST0: MOVE T1,T2 ;POSITION FUNCTION
965 400551' 550 02 0 00 000007 HRRZ T2,N ;AND VALUE (NOTE /BACKSP:N MEANS N RECORDS)
966 ; PJRST PRMSTO ;GO STORE PARAMS AND RETURN
967
968 ;CALL PRMSTO TO STORE PARAMETERS IN FUNCTION PARAMETER LIST
969 ;WITH T1=FUNCTION, T2=VALUE
970
971 400552' 261 12 0 00 000001 PRMSTO: PUSH PLP,T1 ;STORE PARAMETER
972 400553' 261 12 0 00 000002 PUSH PLP,T2 ;AND VALUE (NOT USED IF DOESN'T TAKE ONE)
973 400554' 302 01 0 00 000006 CAIE T1,FN$CPY ;IF THIS IS /COPY
974 400555' 306 01 0 00 000007 CAIN T1,FN$CON ;OR /CONCAT
975 400556' 661 00 0 00 100000 TLO F,FL$CPY ;THEN WE HAVE A COPY SWITCH
976 400557' 263 17 0 00 000000 POPJ P, ;DONE
977
978 400560' 200 01 0 05 400222' E$$OSI: MOVE T1,SWTN(P1) ;GET SWITCH NAME FOR DUM USER
979 400561' 260 17 0 00 002353' ERROR. EF$FTL!EF$SIX,OSI,<OUTPUT SWITCH ILLEGAL ON INPUT - >
980 400562' 300403 400716'
981 400563' 200 01 0 05 400222' E$$ISO: MOVE T1,SWTN(P1) ;GET SWITCH NAME
982 400564' 260 17 0 00 002353' ERROR. EF$FTL!EF$SIX,ISO,<INPUT SWITCH ILLEGAL ON OUTPUT - >
983 400565' 300403 400726'
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 23
COPYMT MAC 23-FEB-77 11:47 DETERMINE BUFFER SIZE FOR TAPE TESTING
984 SUBTTL DETERMINE BUFFER SIZE FOR TAPE TESTING
985
986 IFN FT$TST,<
987 400566' 135 01 0 00 400727' STSTBZ: LDB T1,[POINTR (OUTSPC+.FXMOD,FX.DEN)] ;SEE IF /DENSITY
988 400567' 336 00 0 00 000001 SKIPN T1 ;GET ONE?
989 400570' 135 01 0 00 400730' LDB T1,[POINTR (T2,MT.DEN)] ;NO--GET MTCHR. DENSITY
990 400571' 602 02 0 00 000020 TRNE T2,MT.7TR ;7 TRACK?
991 400572' 307 01 0 00 000003 CAIG T1,3 ;YES--.GT. 800 BPI?
992 400573' 326 01 0 00 400577' JUMPN T1,STSBZ0 ;OK IF NON-ZERO
993 400574' 260 17 0 00 002353' WARN. 0,CDD,<CAN'T DETERMINE DENSITY - 800 BPI ASSUMED>
994 400575' 300200 400742'
995 400576' 201 01 0 00 000003 MOVEI T1,3 ;800 BPI
996 400577' 202 01 0 00 003117' STSBZ0: MOVEM T1,TSTDEN ;SAVE TEST DENISTY
997 400600' 602 02 0 00 000020 TRNE T2,MT.7TR ;SEVEN TRACK?
998 400601' 334 01 0 01 400604' SKIPA T1,BUFSZ7-1(T1) ;YES--GET PROPER LENGTH
999 400602' 200 01 0 01 400607' MOVE T1,BUFSZ9-1(T1) ;NO--USE 9-TRACK LENGTH
1000 400603' 202 01 0 00 003131' MOVEM T1,BUFSIZ ;SET IT
1001 400604' 263 17 0 00 000000 POPJ P,
1002
1003 ;TABLE OF RECORD LENGTHS FOR DIFFERENT DENSITIES ON 7/9 TRACK UNITS
1004 ;LENGTH FOR ONE FOOT RECORDS = <DENSITY>/<BYTES/WORD ON TAPE>*<1 FOOT-IRG>
1005 ;(IRG=INTER-RECORD GAP)
1006
1007 400605' 000000 000567 BUFSZ7: EXP ^D375,^D1042,^D1500 ;200/556/800
1008 400606' 000000 002022
1009 400607' 000000 002734
1010 400610' 000000 000000 BUFSZ9: EXP 0,0,^D1824,^D3648,^D14250 ;200/556/800/1600/6250
1011 400611' 000000 000000
1012 400612' 000000 003440
1013 400613' 000000 007100
1014 400614' 000000 033652
1015 >;END IFN FT$TST
1016
1017 LIT$ ;FORCE OUT HISEG LITERALS
1018
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 24
COPYMT MAC 23-FEB-77 11:47 HIGH SEGMENT HANDLING
1019 SUBTTL HIGH SEGMENT HANDLING
1020
1021 000111' LOW$
1022
1023 ;DWNSCN -- REMOVE THE HISEG IF PRESENT
1024 ;CALL: PUSHJ P,DWNSCN
1025 ; *RETURN--ALL ACS SAVED*
1026
1027 000111' 336 00 0 00 000115 DWNSCN: SKIPN .JBHRL ;HIGH SEGMENT AROUND?
1028 000112' 263 17 0 00 000000 POPJ P, ;NO--DON'T DO CORE UUO NOW
1029 SAVE$ T1 ;PRESERVE T1 AS ADVERTIZED
1030 000114' 205 01 0 00 000001 MOVSI T1,1 ;YES--GET RID OF IT
1031 000115' 047 01 0 00 000011 CORE T1, ;BYE/!
1032 000116' 255 00 0 00 000000 JFCL ;SNH
1033 000117' 254 00 0 00 002136' PJRST TPOPJ ;GET T1 AND RETURN
1034
1035 ;UPSCN -- REGET THE HISEGMENT
1036 ;CALL: PUSHJ P,UPSCN
1037 ; *RETURN--ALL ACS SAVED*
1038
1039 000120' 332 00 0 00 000115 UPSCN: SKIPE .JBHRL ;HIGH SEGMENT THERE?
1040 000121' 263 17 0 00 000000 POPJ P, ;YES--SKIP COSTLY GETSEG
1041 000122' 202 17 0 00 002617' MOVEM 17,SAVAC+17 ;GETSEG DESTROYS ACS
1042 000123' 201 17 0 00 002600' MOVEI 17,SAVAC
1043 000124' 251 17 0 00 002616' BLT 17,SAVAC+16 ;SAVE ALL
1044 000125' 200 01 0 00 002447' SEGAGN: MOVE T1,SGDEV ;SETUP FOR GETSEG
1045 000126' 200 02 0 00 002450' MOVE T2,SGNAM
1046 000127' 200 03 0 00 002451' MOVE T3,SGLOW
1047 000130' 403 04 0 00 000006 SETZB T4,P2
1048 000131' 200 05 0 00 002452' MOVE P1,SGPPN
1049 000132' 201 07 0 00 000001 MOVEI P3,T1 ;POINT AT THE BLOCK
1050 000133' 047 07 0 00 000040 GETSEG P3,
1051 000134' 334 01 0 00 000007 SKIPA T1,P3 ;OOOPS--SET UP T1 TO TYPE OUT CODE
1052 JRST [MOVSI 17,SAVAC
1053 BLT 17,17
1054 000135' 254 00 0 00 003136' POPJ P,]
1055 000136' 200 17 0 00 000022' MOVE P,INIPDP ;JUST IN CASE..RESET PDL
1056 000137' 260 17 0 00 002353' ERROR. EF$ERR!EF$OCT,CGH,<CAN'T GET HIGH SEG - CODE = >
1057 000140' 300002 003147'
1058 000141' 047 01 0 00 000012 EXIT 1,
1059 000142' 254 00 0 00 000125' JRST SEGAGN ;MAYBE IT WAS JUST LOST?
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 25
COPYMT MAC 23-FEB-77 11:47 LOG FILE HANDLING
1060 SUBTTL LOG FILE HANDLING
1061
1062 ;CHKLOG -- SEE IF LOG FILE NEEDED AND SETUP FOR IT
1063
1064 000143' 200 01 0 00 002454' CHKLOG: MOVE T1,LOGSPC ;GET THE DEVICE NAME
1065 000144' 342 01 0 00 400404* AOJE T1,.POPJ## ;JUMP IF IT IS STILL (-1)
1066 000145' 661 00 0 00 000004 TLO F,FL$LOG ;NO--IT WAS /LOG OR /LOG:SPEC
1067 000146' 260 17 0 00 000231' PUSHJ P,LOGOPN ;YES--OPEN THE LOG FILE
1068 000147' 200 01 0 00 003063' MOVE T1,UCOMNT ;SEE IF A COMMENT GIVEN
1069 000150' 342 01 0 00 000144* AOJE T1,.POPJ## ; IF NOT, UCOMNT WILL BE -1
1070 000151' 201 01 0 00 003150' MOVEI T1,[ASCIZ/COMMENT: /]
1071 000152' 260 17 0 00 000162' PUSHJ P,STRLOG ;SEND TO LOG FILE
1072 000153' 201 01 0 00 003063' MOVEI T1,UCOMNT ;POINT AT COMMENTS
1073 000154' 260 17 0 00 000162' PUSHJ P,STRLOG ;SEND TO LOG FILE
1074 000155' 265 01 0 00 000162' CLFLOG: PJSP T1,STRLOG ;SEND CRLF TO LOG AND RTURN
1075 ASCIZ .
1076 000156' 015 012 000 000 000 .
1077 000157' 260 17 0 00 000155' CLGNTS: PUSHJ P,CLFLOG ;SEND CRLF TO LOG FILE
1078 000160' 621 00 0 00 000002 TLZ F,FL$TSN ;CLEAR TIME STAMP NEEDED
1079 000161' 263 17 0 00 000000 POPJ P, ;RETURN
1080
1081 ;STRLOG -- SEND STRING TO LOG FILE
1082 ;CALL: MOVEI T1,<ASCIZ STRING ADDR>
1083 ; PUSHJ P,STRLOG
1084
1085 000162' 505 01 0 00 440700 STRLOG: HRLI T1,(POINT 7) ;FORM BYTE PTR
1086 000163' 261 17 0 00 000001 PUSH P,T1 ;SAVE ON PDL
1087 000164' 134 01 0 17 000000 STRL.2: ILDB T1,(P) ;GET A CHAR
1088 000165' 322 01 0 00 002136' JUMPE T1,TPOPJ ;JUMP IF ALL DONE
1089 000166' 260 17 0 00 000173' PUSHJ P,CHRLOG ;SEND TO LOG FILE
1090 000167' 254 00 0 00 000164' JRST STRL.2
1091
1092 ;CHROUT -- SEND CHARACTER TO TTY AND LOG FILE IF OPEN
1093 ;CHRLOG -- SEND CHARACTER TO LOG FILE
1094 ;CALL: MOVEI T1,<CHAR>
1095 ; PUSHJ P,CHRLOG/CHROUT
1096
1097 000170' 051 01 0 00 000001 CHROUT: OUTCHR T1 ;SEND TO TTY
1098 000171' 607 00 0 00 000004 TLNN F,FL$LOG ;ARE WE LOGGING?
1099 000172' 263 17 0 00 000000 POPJ P, ;NO--DONE
1100 000173' 623 00 0 00 000002 CHRLOG: TLZE F,FL$TSN ;TIME FOR A TIME STAMP?
1101 000174' 260 17 0 00 000313' PUSHJ P,TIMSTM ;YES--DO ONE
1102 000175' 377 00 0 00 002527' SOSG GBHR+.BFCTR ;ROOM IN BUFFER?
1103 000176' 254 00 0 00 000203' JRST CHRLG1 ;NO--GO DUMP ONE
1104 000177' 136 01 0 00 002526' CHRLG0: IDPB T1,GBHR+.BFPTR ;YES--STORE IN BUFFER
1105 000200' 306 01 0 00 000012 CAIN T1,.CHLFD ;LINEFEED?
1106 000201' 661 00 0 00 000002 TLO F,FL$TSN
1107 000202' 263 17 0 00 000000 POPJ P,
1108 000203' 260 17 0 00 000000* CHRLG1: PUSHJ P,.PSH4T## ;PRESERVE T1-4
1109 000204' 260 17 0 00 001757' PUSHJ P,XCTIO ;SEND TO LOG FILE
1110 000205' 057 04 0 00 000000 OUT LOGC, ;XCT'D
1111 000206' 621 00 0 00 000004 TLZ F,FL$LOG ;!!EOT!!--NO MORE LOG FILE
1112 000207' 260 17 0 00 000000* PUSHJ P,.POP4T## ;RESTORE T1-4
1113 000210' 603 00 0 00 000004 TLNE F,FL$LOG ;IS LOG STILL ALIVE?
1114 000211' 254 00 0 00 000177' JRST CHRLG0 ;YES--GO STOW CHARACTER
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 25-1
COPYMT MAC 23-FEB-77 11:47 LOG FILE HANDLING
1115 000212' 254 00 0 00 000224' JRST CLSLG2 ;SKIP SOME
1116
1117 ;HERE FROM THE /CLOSE SWITCH TO CLOSE THE FILE IF OPEN, ETC.
1118
1119 000213' 476 00 0 00 002454' $CLOSE: STORE T1,LOGSPC,LOGSPC+.FXLEN-1,-1 ;RESET THE SPEC
1120 000214' 200 01 0 00 003152'
1121 000215' 251 01 0 00 002505'
1122 000216' 621 00 0 00 000004 TLZ F,FL$LOG ;IN CASE OPEN
1123 000217' 263 17 0 00 000000 POPJ P, ;RETURN BYPASSING STORE
1124
1125 000220' 607 00 0 00 000004 CLSLOG: TLNN F,FL$LOG ;LOG OPEN?
1126 000221' 263 17 0 00 000000 POPJ P, ;NO
1127 000222' 260 17 0 00 000157' PUSHJ P,CLGNTS ;DO A COUPLE OF NEW LINES TO SEPARATE
1128 000223' 260 17 0 00 000157' PUSHJ P,CLGNTS ;THE DIFFERENT RUNS
1129 000224' 070 04 0 00 000000 CLSLG2: CLOSE LOGC, ;CLOSE THE CHANNEL
1130 000225' 071 04 0 00 000000 RELEASE LOGC,
1131 000226' 621 00 0 00 000004 TLZ F,FL$LOG ;CERTAINLY NOT OPEN NOW
1132 000227' 201 01 0 00 002525' MOVEI T1,GBHR ;FREE BUFFERS
1133 000230' 254 00 0 00 000436' PJRST TSTBHR
1134
1135 ;HERE TO OPEN LOG FILE
1136
1137 000231' 260 17 0 00 000000* LOGOPN: PUSHJ P,.SAVE1## ;PRESERVE P1
1138 000232' 200 01 0 00 002454' MOVE T1,LOGSPC+.FXDEV;GET DEVICE NAME
1139 000233' 366 01 0 00 000241' SOJN T1,LOGO.2 ;JUMP IF DEFAULT NOT NEEDED
1140 000234' 402 00 0 00 002454' STORE T1,LOGSPC,LOGSPC+.FXLEN-1,0 ;NEED DEFAULT--ZERO THE BLOC
1141 000235' 200 01 0 00 003152'
1142 000236' 251 01 0 00 002505'
1143 000237' 205 01 0 00 446353 MOVSI T1,'DSK' ;USE A GOOD DEFAULT
1144 000240' 202 01 0 00 002454' MOVEM T1,LOGSPC+.FXDEV;REMEMBER WHAT WE DECIDED ON
1145 000241' 200 01 0 00 003153' LOGO.2: MOVE T1,[SIXBIT/COPYMT/] ;MY NAME IN CASE NEEDED
1146 000242' 336 00 0 00 002455' SKIPN LOGSPC+.FXNAM ;DEFAULT NEEDED?
1147 000243' 476 00 0 00 002456' SETOM LOGSPC+.FXNMM
1148 000244' 336 00 0 00 002455' SKIPN LOGSPC+.FXNAM
1149 000245' 202 01 0 00 002455' MOVEM T1,LOGSPC+.FXNAM
1150 000246' 525 01 0 00 545747 HRLOI T1,'LOG' ;DEFAULT EXTENSION
1151 000247' 336 00 0 00 002457' SKIPN LOGSPC+.FXEXT ;SEE IF EXTENSION GIVEN
1152 000250' 202 01 0 00 002457' MOVEM T1,LOGSPC+.FXEXT;NO--SET IT IN
1153 000251' 200 01 0 00 003154' MOVE T1,[XWD .FXLEN,LOGSPC] ;SETUP TO CONVERT SCAN BLOCKS
1154 000252' 201 02 0 00 002620' MOVEI T2,OPNBLK
1155 000253' 200 03 0 00 003155' MOVE T3,[XWD .RBTIM+1,LKPBLK]
1156 000254' 201 04 0 00 002661' MOVEI T4,PTHBLK
1157 000255' 205 05 0 00 002454' MOVSI P1,LOGSPC ;POINT TO SPEC IN CASE OF ERRORS
1158 000256' 260 17 0 00 000000* PUSHJ P,.STOPB## ;CONVERT TO SCAN BLOCKS
1159 000257' 254 00 0 00 001703' JRST WLDERR ;GO DIE IF WILD
1160 000260' 201 01 0 00 000035 MOVEI T1,.RBTIM ;SETUP BLOCK NOW
1161 000261' 202 01 0 00 002623' MOVEM T1,LKPBLK+.RBCNT
1162 000262' 201 01 0 00 000000 MOVEI T1,.IOASC ;IN ASCII
1163 000263' 202 01 0 00 002620' MOVEM T1,OPNBLK+.OPMOD
1164 000264' 205 01 0 00 002525' MOVSI T1,GBHR ;POINT AT BUFFER HEADER
1165 000265' 202 01 0 00 002622' MOVEM T1,OPNBLK+.OPBUF
1166 000266' 050 04 0 00 002620' OPEN LOGC,OPNBLK ;GET THE CHANNEL
1167 000267' 254 00 0 00 001700' JRST OPENER ;CAN'T--DIE
1168 000270' 200 02 0 00 002621' MOVE T2,OPNBLK+.OPDEV;GET THE DEVICE NAME
1169 000271' 047 02 0 00 000053 DEVTYP T2, ;SEE IF SPOOLED OR LOOKUP NOT NEEDED
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 25-2
COPYMT MAC 23-FEB-77 11:47 LOG FILE HANDLING
1170 000272' 254 00 0 00 000276' JRST LOGO.3 ;WE'LL NEVER KNOW
1171 000273' 603 02 0 00 400000 TXNE T2,TY.MAN ;SEE IF LOOKUP/ENTER REQUIRED
1172 000274' 603 02 0 00 000020 TXNE T2,TY.SPL ;SEE IF SPOOLED
1173 JRST [SETZ T1, ;SOME SORT OF SPOOLED DEVICE OR NO LKEN NEEDED
1174 000275' 254 00 0 00 003156' JRST LOGO.4] ;SKIP AHEAD
1175 000276' 474 01 0 00 000000 LOGO.3: SETO T1, ;FLAG THAT FILE EXISTS
1176 000277' 076 04 0 00 002623' LOOKUP LOGC,LKPBLK ;SEE IF FILE LIVES
1177 JRST [HRRZ T1,LKPBLK+.RBEXT ;NO--GET FAIL CODE
1178 JUMPN T1,LKENER ;JUMP IF REALLY AN ERROR
1179 000300' 254 00 0 00 003160' JRST .+1] ;NO--JUMP BACK IN TO ENTER FILE
1180 000301' 077 04 0 00 002623' LOGO.4: ENTER LOGC,LKPBLK ;WRITE THE FILE
1181 000302' 254 00 0 00 001713' JRST LKENER ;CAN'T
1182 000303' 332 00 0 00 000001 SKIPE T1 ;DON'T USETI IF FILE NOT FOUND
1183 000304' 074 04 0 00 777777 USETI LOGC,-1 ;PREPARE TO APPEND TO FILE
1184 000305' 205 01 0 00 000002 MOVSI T1,N$LOGB ;SETUP # BUFFERS
1185 000306' 200 02 0 00 003163' MOVE T2,[XWD OPNBLK,GBHR]
1186 000307' 260 17 0 00 000000* PUSHJ P,.ALCBF## ;ALLOCATE BUFFERS
1187 000310' 067 04 0 00 000000 OUTPUT LOGC, ;DUMMY OUTPUT
1188 000311' 661 00 0 00 000002 TLO F,FL$TSN ;FORCE A TIME STAMP ON FIRST LINE
1189 000312' 263 17 0 00 000000 POPJ P, ;LOG FILE IS OPEN
1190
1191 ;HERE TO PUT A TIME STAMP INTO THE LOG FILE
1192
1193 000313' 260 17 0 00 000203* TIMSTM: PUSHJ P,.PSH4T## ;PRESERVE REGISTERS--NO TELLING WHAT MIGHT BE UP
1194 000314' 201 01 0 00 000173' MOVEI T1,CHRLOG ;SETUP THE ROUTINE
1195 000315' 260 17 0 00 000000* PUSHJ P,.TYOCH##
1196 000316' 261 17 0 00 000001 PUSH P,T1 ;SAVE OLD ONE
1197 000317' 621 00 0 00 000002 TLZ F,FL$TSN ;PREVENT RECURSING TO OVERFLOW
1198 000320' 260 17 0 00 000000* PUSHJ P,.TTIMN## ;TYPE THE TIME
1199 000321' 260 17 0 00 000000* PUSHJ P,.TSPAC##
1200 000322' 260 17 0 00 000321* PUSHJ P,.TSPAC##
1201 000323' 262 17 0 00 000001 POP P,T1
1202 000324' 260 17 0 00 000315* PUSHJ P,.TYOCH## ;RESET OUTPUT ROUTINE
1203 000325' 254 00 0 00 002164' PJRST POP4J ;RESTORE REGS AND RETURN
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 26
COPYMT MAC 23-FEB-77 11:47 OPEN FILES
1204 SUBTTL OPEN FILES
1205
1206 000326' 201 01 0 00 003031' OPNOUT: MOVEI T1,OUTSPC ;POINT AT SPEC
1207 000327' 260 17 0 00 001627' PUSHJ P,OPENIO ;OPEN IT
1208 000330' 300 02 1 14 002517' CAI OUTC,@OBHR(.IOBIN)
1209 000331' 260 17 0 00 000000* PUSHJ P,.SAVE3## ;SAVE P1-3
1210 000332' 603 00 0 00 000040 TLNE F,FL$DSO ;DSK OUTPUT?
1211 000333' 254 00 0 00 000347' JRST OPNO$1 ;YES--SKIP SOME
1212 000334' 201 01 0 00 000002 MOVEI T1,MODIND ;GET INDUSTRY MODE VALUE
1213 000335' 603 00 0 00 000020 TLNE F,FL$232 ;/TO32?
1214 000336' 202 01 0 00 003135' MOVEM T1,OUTMOD ;YES--THIS IS THE MODE
1215 000337' 201 05 0 00 000002 MOVEI P1,OUTC ;NO--GET MTCHR.
1216 000340' 047 05 0 00 000112 MTCHR. P1,
1217 000341' 400 05 0 00 000000 SETZ P1, ;SNH
1218 000342' 201 06 0 00 003031' MOVEI P2,OUTSPC ;GET FDB ADDRESS
1219 000343' 201 07 0 00 000002 MOVEI P3,OUTC ;CHANNEL FOR SETCHR
1220 000344' 260 17 0 00 000516' PUSHJ P,SETCHR ;SET DENSITY,PARITY AND MODE
1221 000345' 062 02 0 00 000001 GETSTS OUTC,T1 ;GET CURRENT STATUS
1222 000346' 060 02 0 01 000020 SETSTS OUTC,IO.UWC(T1) ;TELL MON TO USE MY WORD COUNT
1223 000347' 200 01 0 00 003130' OPNO$1: MOVE T1,NOBUFS ;GET USER VALUE FOR OBUFS
1224 000350' 603 00 0 00 000040 TLNE F,FL$DSO ;IF DSK OUTPUT
1225 000351' 201 01 0 00 000006 MOVEI T1,N$DSKB ;SPLURGE A LITTLE
1226 000352' 607 00 0 00 000020 TLNN F,FL$232 ;/TO32?
1227 000353' 254 00 0 00 000366' JRST OPNO$2 ;NO
1228 000354' 337 02 0 00 003131' SKIPG T2,BUFSIZ ;YES--GET /BUFSIZ VALUE
1229 000355' 201 02 0 00 002000 MOVEI T2,DF$BFZ ;NONE--USE DEFAULT
1230 000356' 221 02 0 00 000011 IMULI T2,^D9 ;# 9-BIT BYTES/WORD
1231 000357' 231 02 0 00 000010 IDIVI T2,^D8 ;# WORDS TO HOLD 8 4-BIT BYTES/WORD
1232 000360' 271 02 0 00 000001 ADDI T2,1 ;IN CASE OF PARTIAL WORD
1233 SAVE$ BUFSIZ ;SAVE GIVEN BUFSIZ FOR INPUT OPEN
1234 000362' 202 02 0 00 003131' MOVEM T2,BUFSIZ ;SET AS THE BUFFERSIZE FOR BOTH
1235 000363' 265 11 0 00 000464' JSP L,STBUFZ ;SET UP # BUFFERS AND BUFFER SIZE
1236 RESTR$ BUFSIZ ;PUT BUFSIZ BACK
1237 000365' 334 00 0 00 000000 SKIPA ;SKIP CALL TO STBUFZ
1238 000366' 265 11 0 00 000464' OPNO$2: JSP L,STBUFZ ;SET UP # BUFFERS AND BUFFER SIZE IN T1
1239 000367' 334 02 0 00 000370' SKIPA T2,.+1
1240 000370' 002620' 002517' XWD OPNBLK,OBHR ;FOR .ALCBF
1241 000371' 260 17 0 00 000307* PUSHJ P,.ALCBF## ;ALLOCATE BUFFERS
1242 000372' 057 02 0 00 000000 OUT OUTC, ;DUMMY OUTPUT
1243 000373' 255 00 0 00 000000 JFCL ;(IN CASE)
1244 000374' 205 01 0 00 200000 MOVSI T1,(BF.IBC) ;GET INHIBIT BUFFER CLEARING BIT
1245 000375' 436 01 0 00 002517' IORM T1,OBHR+.BFADR ;SET IN BUFFER HEADER
1246 000376' 661 00 0 00 000010 TLO F,FL$OPN ;OUTPUT IS OPEN
1247 000377' 263 17 0 00 000000 POPJ P,
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 27
COPYMT MAC 23-FEB-77 11:47 OPEN FILES
1248 000400' 201 01 0 00 002777' OPNINP: MOVEI T1,INPSPC ;POINT AT INPUT SPEC
1249 000401' 260 17 0 00 001627' PUSHJ P,OPENIO ;OPEN ETC
1250 000402' 300 01 0 14 002514' CAI INPC,IBHR(.IOBIN)
1251 000403' 260 17 0 00 000331* PUSHJ P,.SAVE3## ;SAVE P1-3
1252 000404' 603 00 0 00 000100 TLNE F,FL$DSI ;DSK INPUT?
1253 000405' 254 00 0 00 000421' JRST OPNI$1 ;YES
1254 000406' 201 05 0 00 000001 MOVEI P1,INPC ;CHANNEL FOR MTCHR.
1255 000407' 047 05 0 00 000112 MTCHR. P1, ;GET ARGS
1256 000410' 400 05 0 00 000000 SETZ P1, ;SNH
1257 000411' 201 06 0 00 002777' MOVEI P2,INPSPC ;FDB ADDR
1258 000412' 201 07 0 00 000001 MOVEI P3,INPC ;INPUT CHANNEL
1259 000413' 201 01 0 00 000001 MOVEI T1,MODBIN ;GET MODE BINARY VALUE
1260 000414' 603 00 0 00 000020 TLNE F,FL$232 ;/TO32?
1261 000415' 202 01 0 00 003134' MOVEM T1,INPMOD ;YES--SET INPUT MODE
1262 000416' 260 17 0 00 000516' PUSHJ P,SETCHR ;SET DENSITY,PARITY, AND MODE
1263 000417' 333 00 0 00 003123' SKIPLE RTRYFL ;GET RETRY FLAG
1264 JRST [GETSTS INPC,T1 ;AND SET NO RETRY IF DESIRED
1265 SETSTS INPC,IO.NRC(T1);TELL TAPSER TO NOT RETRY
1266 000420' 254 00 0 00 003164' JRST .+1] ;JUMP IN AGAIN
1267 000421' 200 01 0 00 003127' OPNI$1: MOVE T1,NIBUFS ;GET USER VALUE
1268 000422' 603 00 0 00 000100 TLNE F,FL$DSI ;DSK INPUT?
1269 000423' 201 01 0 00 000006 MOVEI T1,N$DSKB ;RUN FAST
1270 000424' 265 11 0 00 000464' JSP L,STBUFZ ;SET UP # BUFFERS AND BUFSIZ IN T1
1271 000425' 334 02 0 00 000426' SKIPA T2,.+1
1272 000426' 002620' 002514' XWD OPNBLK,IBHR
1273 000427' 260 17 0 00 000371* PUSHJ P,.ALCBF## ;ALLOCATE BUFFER
1274 000430' 205 01 0 00 200000 MOVSI T1,(BF.IBC) ;GET INHIBIT BUFFER CLEARING BIT
1275 000431' 436 01 0 00 002514' IORM T1,IBHR+.BFADR ;SET IN BUFFER HEADER
1276 000432' 263 17 0 00 000000 POPJ P,
1277
1278 000433' 070 01 0 00 000000 INPCLS: CLOSE INPC, ;CLOSE INPUT
1279 000434' 071 01 0 00 000000 RELEASE INPC, ;FREE CHANEL
1280 000435' 201 01 0 00 002514' MOVEI T1,IBHR ;GET BHR
1281 ; PJRST TSTBHR ;RELEASE BUFFERS
1282
1283 000436' 336 00 0 01 000000 TSTBHR: SKIPN (T1) ;USE IT?
1284 000437' 263 17 0 00 000000 POPJ P, ;NO--DONE
1285 SAVE$ T1 ;YES--SAVE IT A SEC
1286 000441' 260 17 0 00 000000* PUSHJ P,.FREBF## ;FREE BUFFERS
1287 RESTR$ T1 ;GET BHR ADDR
1288 000443' 402 00 0 01 000000 SETZM .BFADR(T1)
1289 000444' 402 00 0 01 000001 SETZM .BFPTR(T1)
1290 000445' 402 00 0 01 000002 SETZM .BFCTR(T1)
1291 000446' 263 17 0 00 000000 POPJ P,
1292
1293 000447' 627 00 0 00 000010 OUTCLS: TLZN F,FL$OPN ;IS OUTPUT OPEN?
1294 000450' 263 17 0 00 000000 POPJ P, ;NO--QUIT BEFORE WE DIE
1295 000451' 062 02 0 00 000001 GETSTS OUTC,T1 ;GET I/O STATS
1296 000452' 620 01 0 00 000020 TRZ T1,IO.UWC ;CLEAR USER WORD COUNT
1297 000453' 060 02 0 01 000000 SETSTS OUTC,(T1) ;ELSE MON WRITES AN EXTRA RECORD!!
1298 000454' 070 02 0 00 000000 CLOSE OUTC,
1299 000455' 071 02 0 00 000000 RELEASE OUTC,
1300 000456' 201 01 0 00 002517' MOVEI T1,OBHR
1301 000457' 254 00 0 00 000436' JRST TSTBHR
1302 000460' 070 03 0 00 000000 LPTCLS: CLOSE LPTC,
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 27-1
COPYMT MAC 23-FEB-77 11:47 OPEN FILES
1303 000461' 071 03 0 00 000000 RELEASE LPTC,
1304 000462' 201 01 0 00 002522' MOVEI T1,LBHR
1305 000463' 254 00 0 00 000436' PJRST TSTBHR
1306
1307 000464' 337 00 0 00 000001 STBUFZ: SKIPG T1 ;DID USER SPECIFY BUFFER COUNT?
1308 000465' 201 01 0 00 000002 MOVEI T1,N$BUFS ;NO--USE DEFAULT
1309 000466' 337 02 0 00 003131' SKIPG T2,BUFSIZ ;HOW ABOUT BUFSIZ?
1310 000467' 201 02 0 00 002000 MOVEI T2,DF$BFZ ;NO--DEFAULT
1311 000470' 505 01 0 02 000000 HRLI T1,(T2) ;POSITION
1312 000471' 204 01 0 00 000001 MOVS T1,T1 ;AND SWAP SIDES
1313 000472' 254 00 0 11 000000 JRST (L) ;RETURN
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 28
COPYMT MAC 23-FEB-77 11:47 OPEN FILES
1314 ;CALL HERE TO COMPLAIN ABOUT TAPE BEING WRITE LOCKED
1315
1316 000473' 200 01 0 00 003031' WRTLOK: MOVE T1,OUTSPC+.FXDEV;GET NAME
1317 000474' 260 17 0 00 002353' OPER$ EF$WRN!EF$SIX,MWL,<MTA IS WRITE LOCKED - >
1318 000475' 300223 003174'
1319 000476' 260 17 0 00 002353' OPER$ EF$FTL,JAB,<JOB ABORTED>
1320 000477' 300420 003200'
1321 REPEAT 0,<
1322 OPER$ EF$INF,WEG,<PLEASE WRITE-ENABLE AND TYPE ANY CHARACTER>
1323 PUSHJ P,GCHNWL ;GET CHAR AND .TCRLF
1324 GETSTS OUTC,T1 ;GET STATUS
1325 TRZ T1,IO.IMP ;CLEAR IO.IMP WHICH GOT US HERE
1326 SETSTS OUTC,(T1) ;AND TELL MON
1327 POPJ P, ;NO--OK TO CONTINUE NOW
1328 >;END REPEAT 0
1329
1330 ;ROUTINE TO OPEN OUTPUT WITH NO BUFFERS -- FOR TAPE POSITIONING
1331
1332 000500' 201 01 0 00 000017 OPONOB: MOVEI T1,.IODMP ;DUMP MODE -- WHY NOT?
1333 000501' 200 02 0 00 003031' MOVE T2,OUTSPC+.FXDEV;DEV NAME
1334 000502' 400 03 0 00 000000 SETZ T3, ;NO BUFFERS
1335 000503' 050 02 0 00 000001 OPEN OUTC,T1 ;DO IT
1336 000504' 334 01 0 00 003201' SKIPA T1,[OUTSPC] ;ERROR
1337 000505' 263 17 0 00 000000 POPJ P,
1338 000506' 254 00 0 00 001701' JRST E$$COD ;TELL OF FAILURE
1339
1340 000507' 201 01 0 00 000017 OPINOB: MOVEI T1,.IODMP ;OPEN INPUT WITH NO BUFFERS
1341 000510' 200 02 0 00 002777' MOVE T2,INPSPC+.FXDEV;NAME
1342 000511' 400 03 0 00 000000 SETZ T3, ;NO BUFFERS
1343 000512' 050 01 0 00 000001 OPEN INPC,T1 ;DO IT
1344 000513' 334 01 0 00 003202' SKIPA T1,[INPSPC] ;FAILED!
1345 000514' 263 17 0 00 000000 POPJ P, ;RETURN
1346 000515' 254 00 0 00 001701' JRST E$$COD ;CAN'T OPEN DEVICE
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 29
COPYMT MAC 23-FEB-77 11:47 SET TAPE CHARACTERISTICS
1347 SUBTTL SET TAPE CHARACTERISTICS
1348
1349 ;SETCHR -- SET CHARACTERISTICS
1350 ;CALL -- MOVE P1,<RESULT OF MTCHR.>
1351 ; MOVEI P2,<FDB>
1352 ; MOVEI P3,<CHANNEL>
1353 ; PUSHJ P,SETCHR
1354
1355 000516' 135 01 0 00 003203' SETCHR: LDB T1,[POINTR (.FXMOD(P2),FX.DEN)] ;GET THE DENSITY
1356 000517' 322 01 0 00 000525' JUMPE T1,SETCH1 ;JUMP IF NO DENSITY GIVEN
1357 000520' 256 00 0 01 000551' XCT DENDIS(T1) ;CHECK LEGALITY AND SETUP T4
1358 000521' 200 01 0 00 003204' MOVE T1,[XWD 3,T2] ;ARG WORD FOR TAPOP.
1359 000522' 201 02 0 00 002001 MOVEI T2,.TFDEN+.TFSET;FUNCTION
1360 000523' 200 03 0 00 000007 MOVE T3,P3 ;CHANNEL NUMBER
1361 000524' 260 17 0 00 000611' PUSHJ P,DOTPOP ;DO TAPOP AND HANDLE ERROR
1362 000525' 135 01 0 00 003205' SETCH1: LDB T1,[POINTR (.FXMOD(P2),FX.PAR)] ;GET PARITY VALUE
1363 000526' 256 00 0 01 000541' XCT PARDIS(T1) ;SET THE PARITY
1364 IFN FT$TST,<
1365 000527' 331 00 0 00 003120' SKIPL TESTFL ;IF /TEST OR /TAPTST THEN IGNORE MODE
1366 000530' 263 17 0 00 000000 POPJ P, ;IGNORE IT
1367 >;END IFN FT$TST
1368 000531' 337 01 0 07 003133' SKIPG T1,MODES-1(P3) ;/MODE FOR THIS SIDE?
1369 000532' 263 17 0 00 000000 POPJ P, ;NO--QUIT
1370 000533' 256 00 0 01 000570' XCT MODISP-1(T1) ;YES--GET TAPOP. ARGUMENT
1371 000534' 200 01 0 00 003204' MOVE T1,[XWD 3,T2] ;TAPOP. ARG WORD
1372 000535' 201 02 0 00 002007 MOVEI T2,.TFMOD+.TFSET;FUNCTION
1373 000536' 200 03 0 00 000007 MOVE T3,P3 ;CHANNEL
1374 000537' 260 17 0 00 000611' PUSHJ P,DOTPOP ;DO TAPOP
1375 000540' 263 17 0 00 000000 POPJ P, ;DONE WITH SETS
1376
1377 000541' 255 00 0 00 000000 PARDIS: JFCL ;ODD PARITY IS THE DEFAULT
1378 000542' 260 17 0 00 000543' PUSHJ P,EVNPAR ;EVEN--MUST SET IT
1379 000543' 200 01 0 00 003204' EVNPAR: MOVE T1,[XWD 3,T2] ;ARG FOR TAPOP.
1380 000544' 201 02 0 00 002005 MOVEI T2,.TFPAR+.TFSET;FUNCTION+SET
1381 000545' 200 03 0 00 000007 MOVE T3,P3 ;CHANNEL
1382 000546' 201 04 0 00 000001 MOVEI T4,1 ;EVEN PARITY
1383 000547' 260 17 0 00 000611' PUSHJ P,DOTPOP ;SET IT
1384 000550' 263 17 0 00 000000 POPJ P,
1385
1386 000551' 255 00 0 00 000000 DENDIS: JFCL ;0--SHOULD BE COVERED ABOVE
1387 000552' 260 17 0 00 000557' PUSHJ P,DEN200 ;1--200 BPI--7 TRACK ONLY
1388 000553' 260 17 0 00 000557' PUSHJ P,DEN556 ;2--556 BPI--7 TRACK ONLY
1389 000554' 201 04 0 00 000003 MOVEI T4,.TFD80 ;3--800 BPI--7/9 TRACK
1390 000555' 260 17 0 00 000564' PUSHJ P,DEN160 ;4--1600 BPI--9 TRACK ONLY
1391 000556' 260 17 0 00 000564' PUSHJ P,DEN625 ;5--6250 BPI--9 TRACK ONLY
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 30
COPYMT MAC 23-FEB-77 11:47 SET TAPE CHARACTERISTICS
1392 000557' DEN556:
1393 000557' 606 05 0 00 000020 DEN200: TRNN P1,MT.7TR ;MUST BE 7 TRACK
1394 000560' 260 17 0 00 002353' E$$ID9: ERROR. EF$FTL,ID9,<ILLEGAL DENSITY FOR 9-TRACK>
1395 000561' 300400 003214'
1396 000562' 200 04 0 00 000001 MOVE T4,T1 ;SET DENSITY
1397 000563' 263 17 0 00 000000 POPJ P,
1398
1399 000564' DEN625:
1400 000564' 602 05 0 00 000020 DEN160: TRNE P1,MT.7TR ;CAN'T BE 7 TRACK
1401 000565' 260 17 0 00 002353' ERROR. EF$FTL,ID7,<ILLEGAL DENSITY FOR 7-TRACK>
1402 000566' 300400 003223'
1403 000567' 200 04 0 00 000001 MOVE T4,T1 ;SET DENSITY
1404 000570' 263 17 0 00 000000 POPJ P,
1405
1406 000571' 260 17 0 00 000605' MODISP: PUSHJ P,DEFMOD ;1--DEC COMPATIBLE CORE DUMP (/MODE:BINARY)
1407 000572' 260 17 0 00 000601' PUSHJ P,INDMOD ;2--INDUSTRY COMPATIBLE 8BIT (/MODE:INDUST)
1408 000573' 260 17 0 00 000574' PUSHJ P,MODSVN ;3--SEVENBIT MODE (/MODE:SEVEN) TU70 ONLY
1409
1410 000574' 602 05 0 00 000020 MODSVN: TRNE P1,MT.7TR ;NOT ON 7 TRACK
1411 000575' 260 17 0 00 002353' E$$IM7: ERROR. EF$FTL,IM7,<ILLEGAL MODE FOR 7-TRACK>
1412 000576' 300400 003231'
1413 000577' 201 04 0 00 000004 MOVEI T4,.TFM7B ;SET SEVEN BIT MODE
1414 000600' 263 17 0 00 000000 POPJ P,
1415
1416 000601' 602 05 0 00 000020 INDMOD: TRNE P1,MT.7TR ;NOT ON 7
1417 000602' 254 00 0 00 000575' JRST E$$IM7 ;TSK,TSK
1418 000603' 201 04 0 00 000002 MOVEI T4,.TFM8B ;8 BIT FORMAT
1419 000604' 263 17 0 00 000000 POPJ P,
1420
1421 000605' 602 05 0 00 000020 DEFMOD: TRNE P1,MT.7TR ;SEVEN OR NINE?
1422 000606' 334 04 0 00 003232' SKIPA T4,[.TFM7T] ;SEVEN
1423 000607' 201 04 0 00 000001 MOVEI T4,<.TFM9T==1> ;NO--NINE
1424 000610' 263 17 0 00 000000 POPJ P,
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 31
COPYMT MAC 23-FEB-77 11:47 SET TAPE CHARACTERISTICS
1425 ;DOTPOP -- DO TAPOP WITH ERROR REPORTING
1426 ;CALL: MOVE T1,[TAPOP. ARG BLOCK]
1427 ; MOVEI T2,<TAPOP. FN>
1428 ; MOVE T3,<TAPNAM,IOCHAN OR WHATEVER>
1429 ; MOVE T4,<ARG>
1430 ; PUSHJ P,DOTPOP
1431 ; *RETURN*
1432
1433
1434 000611' 047 01 0 00 000154 DOTPOP: TAPOP. T1, ;DO THE UUO
1435 000612' 304 00 0 00 000000 CAIA ;FAILED--SKIP OVER TO REPORT ERROR
1436 000613' 263 17 0 00 000000 POPJ P, ;OK--QUIT NOW
1437
1438 ;ETAPOP -- REPORT TAPOP. UUO FAILURE
1439 ;SEE DOTPOP FOR CALLING SEQUENCE
1440
1441 000614' ETAPOP: SAVE$ <T4,T3,T2,T1> ;SAVE T1-4 IN CONSPICUOUS PLACE
1442 000620' 260 17 0 00 002353' WARN. EF$OCT!EF$NCR,TUF,<TAPOP. UUO FAILURE--CODE = >
1443 000621' 300242 003241'
1444 000622' 201 01 0 00 003242' STRNG$ <, FN = >
1445 000623' 260 17 0 00 000036*
1446 000624' 200 01 0 17 777777 MOVE T1,-1(P) ;GET FUNCTION (WAS IN T2)
1447 000625' 260 17 0 00 000000* PUSHJ P,.TOCTW## ;
1448 000626' 260 17 0 00 000041* PUSHJ P,.TCRLF##
1449 RESTR$ <T1,T2,T3,T4>
1450 000633' 263 17 0 00 000000 POPJ P,
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 32
COPYMT MAC 23-FEB-77 11:47 DO THE REQUIRED STUFF
1451 SUBTTL DO THE REQUIRED STUFF
1452
1453 000634' DO.IT:
1454 000634' 260 17 0 00 000000* PUSHJ P,.SAVE4## ;SAVE THE REGISTERS
1455 000635' 200 12 0 00 000104' MOVE PLP,PLPINI ;SETUP PARM LIST PTR
1456 000636' 402 00 0 00 002773' STORE T1,FW$STS,LW$STS,0 ;CLEAR STATUS WORDS
1457 000637' 200 01 0 00 003244'
1458 000640' 251 01 0 00 002776'
1459 000641' 634 10 0 00 000010 TDZA P4,P4 ;CLEAR I/O FLAG (SET TO 2 WHEN INPUT)
1460 000642' 201 10 0 00 000002 OUTDUN: MOVEI P4,2 ;SET I/O FLAG TO 2 (OUTPUT SWTCHES DONE)
1461 000643' DANTHR:
1462 000643' 265 11 0 00 000755' JSP L,TYICHK ;SEE ABOUT TTY COMMANDS
1463 000644' 254 00 0 00 000723' JRST DO.DUN ;SAID TO KILL THE COMMAND
1464 000645' 200 13 0 12 000001 MOVE ACT,1(PLP) ;GET THE FUNCTION
1465 000646' 271 12 0 00 000002 ADDI PLP,2 ;MOVE TO NEXT FUNCTION
1466 000647' 321 13 1 13 000661' JUMPL ACT,@ACTDIS(ACT) ;DISPATCH IMMEDIATELY IF INTERNAL FUNCTION
1467 000650' 200 05 0 00 000013 MOVE P1,ACT ;COPY FOR ACTDIS XCT
1468 000651' 275 13 0 00 000001 SUBI ACT,1 ;COMPUTE ACT CORRECTLY FOR DOLOOP
1469 000652' 221 13 0 00 000004 IMULI ACT,4 ;...
1470 000653' 270 13 0 00 000010 ADD ACT,P4 ;ADD IN OFFSET FOR INPUT/OUTPUT
1471 000654' 554 06 0 12 000000 HLRZ P2,0(PLP) ;GET (POSSIBLE) FILE COUNT
1472 000655' 550 07 0 12 000000 HRRZ P3,0(PLP) ;GET (POSSIBLE) RECORD COUNT
1473 000656' 254 00 1 05 000661' JRST @ACTDIS(P1) ;DISPATCH FOR ACTION
1474
1475 000657' 254 00 0 00 000723' JRST DO.DUN ;(-2) ALL DONE
1476 000660' 254 00 0 00 000642' JRST OUTDUN ;(-1) OUTPUT DONE--INPUT ACTION NEXT
1477 000661' 254 04 0 00 000661' ACTDIS: HALT . ;(0) ILLEGAL
1478
1479 DEFINE FN (X)
1480 <IRP X,<EXP DO.'X>>
1481
1482 000662' 000000 000671' FUNCTS ;GENERATE THE DISPATCH TABLE
1483 000663' 000000 000671'
1484 000664' 000000 000671'
1485 000665' 000000 000671'
1486 000666' 000000 000671'
1487 000667' 000000 001054'
1488 000670' 000000 001052'
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 33
COPYMT MAC 23-FEB-77 11:47 DO THE REQUIRED STUFF
1489 000671' DO.BSP: DO.SKP: DO.EOF:
1490 000671' DO.REW: DO.UNL:
1491 000671' 323 06 0 00 000701' DOLOOP: JUMPLE P2,DOLOP2 ;JUMP IF NO MORE FILES
1492 000672' 256 00 0 13 001270' DOLOP1: XCT ACTABL(ACT) ;DO THE ACTION
1493 IFN FT$MTP,<
1494 000673' 603 00 0 00 002000 TLNE F,FL$MTP ;MTAPE COMMAND?
1495 000674' 254 00 0 00 000712' JRST WAITCK ;YES
1496 >;END IFN FT$MTP
1497 000675' 072 01 0 00 000000 MTWAT. INPC, ;WAIT FOR THINGS TO STOP
1498 000676' 603 00 0 00 000010 TLNE F,FL$OPN ;ONLY WAIT ON OUTPUT IF OPEN
1499 000677' 072 02 0 00 000000 MTWAT. OUTC,
1500 000700' 367 06 0 00 000672' SOJG P2,DOLOP1 ;DO ALL FILES
1501 000701' 323 07 0 00 000643' DOLOP2: JUMPLE P3,DANTHR ;NO RECORDS?
1502 000702' 256 00 0 13 001271' DOLOP3: XCT ACTABL+1(ACT) ;DO ACTION
1503 IFN FT$MTP,<
1504 000703' 603 00 0 00 002000 TLNE F,FL$MTP ;MTAPE
1505 000704' 254 00 0 00 000712' JRST WAITCK ;YES
1506 >;END IFN FT$MTP
1507 000705' 072 01 0 00 000000 MTWAT. INPC,
1508 000706' 603 00 0 00 000010 TLNE F,FL$OPN ;MAKE SURE CHAN IS OPEN
1509 000707' 072 02 0 00 000000 MTWAT. OUTC,
1510 000710' 367 07 0 00 000702' SOJG P3,DOLOP3
1511 000711' 254 00 0 00 000643' JRST DANTHR
1512
1513 IFN FT$MTP,< ;HERE TO DECIDE IF WE WAIT OR NOT
1514
1515 000712' 367 06 0 00 000717' WAITCK: SOJG P2,MTPWAT ;WAIT IF MORE FILES TO DO
1516 000713' 367 07 0 00 000717' SOJG P3,MTPWAT ;OR MORE RECORDS
1517 000714' 561 01 0 00 777776 HRROI T1,FN$EOL ;GET END OF LIST MARKER
1518 000715' 316 01 0 12 000001 CAMN T1,1(PLP) ;WAIT IF NOT END OF LIST
1519 000716' 254 00 0 00 000643' JRST DANTHR ;END OF LIST--GO EXEC IT
1520 000717' 072 01 0 00 000000 MTPWAT: MTWAT. INPC, ;WAIT FOR OP TO FINISH
1521 000720' 327 06 0 00 000672' JUMPG P2,DOLOP1 ;JUMP IF MORE FILES
1522 000721' 327 07 0 00 000702' JUMPG P3,DOLOP3 ;JUMP IF MORE RECORDS
1523 000722' 254 00 0 00 000643' JRST DANTHR ;NO--DO NEXT COMMAND
1524 >;END IFN FT$MTP
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 34
COPYMT MAC 23-FEB-77 11:47 END OF PROCESSING
1525 SUBTTL END OF PROCESSING
1526
1527 ;HERE WHEN WE ARE ALL DONE
1528
1529 000723' 623 00 0 00 020000 DO.DUN: TLZE F,FL$LPO ;LPT FILE OPEN?
1530 000724' 260 17 0 00 000460' PUSHJ P,LPTCLS ;YES--CLOSE IT
1531 000725' 260 17 0 00 000433' PUSHJ P,INPCLS ;CLOSE INPUT FILE
1532 000726' 603 00 0 00 400040 TLNE F,FL$MRG!FL$DSO ;MERGING? (OR DSK OUTPUT?)
1533 000727' 254 00 0 00 000732' JRST DODUN1 ;YES--NO EOF TO BSP OVER
1534 000730' 603 00 0 00 040000 TLNE F,FL$EOT ;DID WE STOP AT DOUBLE EOF?
1535 000731' 072 02 0 00 000017 MTBSF. OUTC, ;YES--BACK OVER ONE OF THEM
1536 000732' 260 17 0 00 000447' DODUN1: PUSHJ P,OUTCLS ;CLOSE OUTPUT
1537 IFN FT$MTP,<
1538 000733' 603 00 0 00 002000 TLNE F,FL$MTP ;MTAPE COMMAND?
1539 000734' 263 17 0 00 000000 POPJ P, ;YES--RETURN NOW
1540 >;END IFN FT$MTP
1541 000735' 333 00 0 00 003124' SKIPLE TIMEFL ;IF REQUESTED
1542 000736' 260 17 0 00 001021' PUSHJ P,TYISTS ;TELL TOTAL TIME + CPU TIME USED
1543 000737' 337 00 0 00 003124' SKIPG TIMEFL ;IF TIME NOT REQUESTED
1544 000740' 260 17 0 00 001034' PUSHJ P,TYITOT ;THEN SHOW FILE, RECORD COUNTS NOW
1545 000741' 201 05 0 00 000001 ERRCHK: MOVEI P1,1 ;SET INDEX TO REPORT ERRORS
1546 000742' 200 01 0 05 002773' TELERS: MOVE T1,ERRCNT(P1) ;GET COUNT
1547 000743' 260 17 0 00 002353' INFO. EF$NCR!EF$DEC,IOT,<TOTAL OF >
1548 000744' 300141 003247'
1549 000745' 200 01 0 05 000753' MOVE T1,ERRMES(P1) ;END THE MESSAGE
1550 000746' 260 17 0 00 000623* PUSHJ P,.TSTRG## ;...
1551 000747' 260 17 0 00 000626* PUSHJ P,.TCRLF## ;NEW LINE
1552 IFN FT$TST,< ;ONLY DO OUTPUT IF /T
1553 000750' 607 00 0 00 001000 TLNN F,FL$TST ;/T?
1554 >;END IFN FT$TST
1555 000751' 365 05 0 00 000742' SOJGE P1,TELERS ;TELL INPUT TOO
1556 000752' 263 17 0 00 000000 POPJ P, ;**DO.IT RETURN
1557 000753' 000000 003250' ERRMES: [ASCIZ / INPUT ERRORS]/]
1558 000754' 000000 003253' [ASCIZ / OUTPUT ERRORS]/]
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 35
COPYMT MAC 23-FEB-77 11:47 PROCESS TELETYPE COMMANDS WHILE RUNNING
1559 SUBTTL PROCESS TELETYPE COMMANDS WHILE RUNNING
1560
1561 ;TYICHK -- ATTEND TO TTY INPUT FROM TERMINAL
1562 ;CALL: JSP L,TYICHK
1563 ; *USER SAID TO QUIT*
1564 ; *KEEP GOING*
1565
1566 000755' 607 00 0 00 012000 TYICHK: TLNN F,FL$BAT!IFN FT$MTP,<FL$MTP> ;BATCH JOB?
1567 000756' 607 00 0 00 000200 TLNN F,FL$ITY ;OR NOT /IFTYP
1568 000757' 254 00 0 11 000001 JRST 1(L) ;YES--RETURN QUICKLY
1569 000760' 051 02 0 00 000001 INCHRS T1 ;CHAR TYPED?
1570 000761' 254 00 0 11 000001 JRST 1(L) ;NO--QUICK RETURN
1571 000762' 051 11 0 00 000000 CLRBFI ;YES--EAT THE REST
1572 000763' 271 11 0 00 000001 ADDI L,1 ;BUMP TO RETURN
1573 SAVE$ L ;REMEMBER IT ON THE STACK
1574 000765' 260 17 0 00 000747* PUSHJ P,.TCRLF## ;NEW LINE -- .TCRLF SAVES T1
1575 000766' 205 02 0 00 777773 MOVSI T2,-N$TYIO ;GET AOBJN LOOP CTR
1576 000767' 312 01 0 02 000774' CAME T1,IFTCHR(T2) ;THIS IT?
1577 000770' 253 02 0 00 000767' AOBJN T2,.-1
1578 000771' 321 02 1 02 001001' JUMPL T2,@TYIDSP(T2) ;JUMP IF GOT ONE
1579 000772' 201 01 0 00 000007 MOVEI T1,.CHBEL ;NO--GET A BELL
1580 000773' 254 00 0 00 000000* PJRST .TCHAR## ;BELL AND RETURN
1581
1582 000774' 000000 000105 IFTCHR: EXP "E","I","K","P","S" ;ERROR COUNT,IGNORE, KILL, PAUSE,STATS
1583 000775' 000000 000111
1584 000776' 000000 000113
1585 000777' 000000 000120
1586 001000' 000000 000123
1587 000005 N$TYIO==.-IFTCHR
1588
1589 001001' 000000 001010' TYIDSP: EXP ERRSUM,TYIIGN,TYIKIL,TYIPAU,TYISTS
1590 001002' 000000 001006'
1591 001003' 000000 001015'
1592 001004' 000000 001012'
1593 001005' 000000 001021'
1594
1595 001006' 621 00 0 00 000200 TYIIGN: TLZ F,FL$ITY ;CLEAR IFTYP FLAG
1596 001007' 263 17 0 00 000000 POPJ P, ;SKIP BACK
1597
1598 001010' 260 17 0 00 000231* ERRSUM: PUSHJ P,.SAVE1## ;WE USE P1 FOR THIS
1599 001011' 254 00 0 00 000741' PJRST ERRCHK ;TELL ERROR SUMMARIES
1600
1601 001012' 260 17 0 00 002353' TYIPAU: INFO. 0,PTC,<PAUSING--TYPE ANY CHARACTER TO CONTINUE>
1602 001013' 300100 003267'
1603 001014' 254 00 0 00 002311' PJRST GCHNWL ;GET IT AND RETURN
1604
1605 001015' 260 17 0 00 002353' TYIKIL: WARN. 0,FKC,<FUNCTION KILLED BY COMMAND>
1606 001016' 300200 003276'
1607 001017' 370 00 0 17 000000 SOS 0(P) ;CPOPJ PLEASE
1608 001020' 263 17 0 00 000000 POPJ P, ;CPOPJ TO DO A KILL
1609
1610 001021' 047 01 0 00 000023 TYISTS: MSTIME T1, ;CURRENT TYME
1611 001022' 274 01 0 00 002510' SUB T1,GOTIME ;GET ELAPSED TIME
1612 001023' 260 17 0 00 000000* PUSHJ P,.TTIME## ;TYPE IT
1613 STRNG$ < ELAPSED TIME
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 35-1
COPYMT MAC 23-FEB-77 11:47 PROCESS TELETYPE COMMANDS WHILE RUNNING
1614 001024' 201 01 0 00 003277' >
1615 001025' 260 17 0 00 000746*
1616 001026' 400 01 0 00 000000 SETZ T1, ;MY RUNTIME
1617 001027' 047 01 0 00 000027 RUNTIM T1,
1618 001030' 274 01 0 00 002511' SUB T1,GORUNT ;ELAPSED RUNTIME
1619 001031' 260 17 0 00 001023* PUSHJ P,.TTIME## ;TYPE IT
1620 STRNG$ < CPU TIME
1621 001032' 201 01 0 00 003303' >
1622 001033' 260 17 0 00 001025*
1623
1624 001034' 603 00 0 00 001000 TYITOT: TLNE F,FL$TST ;ARE WE TESTING TAPE?
1625 001035' 263 17 0 00 000000 POPJ P, ;YES--WE REALLY SHOULD NOT BE HERE
1626 001036' 337 01 0 00 002776' SKIPG T1,FILTOT ;ANY FILES TODAY?
1627 001037' 254 00 0 00 001043' JRST TYIT.2 ;NO
1628 001040' 260 17 0 00 000000* PUSHJ P,.TDECW## ;YES--SHOW THEM
1629 001041' 201 01 0 00 003306' STRNG$ < FILES, >
1630 001042' 260 17 0 00 001033*
1631 001043' 200 01 0 00 002775' TYIT.2: MOVE T1,RECTOT ;GET RECORD TOTAL
1632 001044' 260 17 0 00 001040* PUSHJ P,.TDECW##
1633 001045' 265 01 0 00 001042* PJSP T1,.TSTRG## ;TYPE AND RETURN
1634 001046' 040 122 105 103 117 ASCIZ . RECORDS COPIED
1635 001047' 122 104 123 040 103
1636 001050' 117 120 111 105 104
1637 001051' 015 012 000 000 000 .
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 36
COPYMT MAC 23-FEB-77 11:47 PROCESS TELETYPE COMMANDS WHILE RUNNING
1638 ;HERE TO SET UP FOR MERGING
1639
1640 001052' 607 00 0 00 000040 DO.CON: TLNN F,FL$DSO ;UNLESS DSK OUTPUT
1641 001053' 661 00 0 00 400000 TLO F,FL$MRG ;FLAG WE ARE MERGING
1642 ;(WILL HANDLE OTHER CORRECTLY)
1643
1644 ;HERE TO COPY DATA FROM INPUT TO OUTPUT
1645
1646 001054' DO.CPY:
1647 001054' 603 00 0 00 000100 TLNE F,FL$DSI ;DSK TO TAPE?
1648 JRST [SETZ P2, ;YES--MAKE SURE FILE COUNT IS 0
1649 001055' 254 00 0 00 003310' JRST CPYDTM] ;AND GO COPY DSK TO TAPE
1650 001056' 603 00 0 00 000040 TLNE F,FL$DSO ;NO--TAPE TO DSK
1651 001057' 254 00 0 00 001212' JRST CPYMTD ;YES
1652 001060' 607 00 0 00 000010 TLNN F,FL$OPN ;MAKE SURE OUTPUT TAPE IS OPEN
1653 001061' 260 17 0 00 000326' PUSHJ P,OPNOUT ;GOOD THING WE CHECKED
1654 001062' 337 00 0 00 000006 COPYIT: SKIPG P2 ;FILE COUNT NOT ZERO?
1655 001063' 361 07 0 00 001323' SOJL P3,COPDUN ;YES--RECORDS RUN OUT?
1656 001064' 260 17 0 00 001757' PUSHJ P,XCTIO ;NO--GET A BUFFER
1657 001065' 056 01 0 00 000000 IN INPC, ; XCT'D
1658 001066' 254 00 0 00 001333' JRST CPYEOF ;END OF FILE
1659 001067' 603 00 0 00 000020 TLNE F,FL$232 ;/TO32 BIT?
1660 001070' 254 00 0 00 001112' JRST CPY232 ;YES--GO THERE
1661 001071' 514 01 0 00 002515' HRLZ T1,IBHR+.BFPTR ;COPY FROM INPUT
1662 001072' 540 01 0 00 002520' HRR T1,OBHR+.BFPTR ;TO OUTPUT BUFFER
1663 001073' 252 01 0 00 001074' AOBJP T1,.+1 ;BUT THEY ARE OFF BY ONE!
1664 001074' 200 02 0 00 002516' MOVE T2,IBHR+.BFCTR ;GET THE INPUT COUNT
1665 001075' 542 02 0 01 777777 HRRM T2,-1(T1) ;SET COUNT FOR MONITOR--IO.UWC IS ON
1666 001076' 272 02 0 00 002515' ADDM T2,IBHR+.BFPTR ;INCREASE THE POINTER
1667 001077' 273 02 0 00 002520' ADDB T2,OBHR+.BFPTR ;AND GET BLT TERMINATION PTR
1668 001100' 402 00 0 00 002516' SETZM IBHR+.BFCTR ;CLEAR COUNTER
1669 001101' 251 01 0 02 000000 BLT T1,(T2) ;COPY THE BUFFER
1670 001102' 260 17 0 00 001757' CPYDMP: PUSHJ P,XCTIO ;OUTPUT IT
1671 001103' 057 02 0 00 000000 OUT OUTC, ;...
1672 001104' 254 00 0 00 001357' JRST FULTAP ;HELP! TAPE IS FULL
1673 001105' 621 00 0 00 040000 TLZ F,FL$EOT ;FLAG DID OUTPUT (SET AT EOF ON INPUT)
1674 001106' 350 00 0 00 002775' AOS RECTOT ;COUNT RECORD
1675 001107' 265 11 0 00 000755' JSP L,TYICHK ;SEE ABOUT USER INPUT
1676 001110' 254 00 0 00 000723' JRST DO.DUN ;YES--SAID TO KILL IT
1677 001111' 254 00 0 00 001062' JRST COPYIT ;LOOP FOR MORE
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 37
COPYMT MAC 23-FEB-77 11:47 COPY 36-BIT TO 32 BIT
1678 SUBTTL COPY 36-BIT TO 32 BIT
1679
1680 001112' 260 17 0 00 001114' CPY232: PUSHJ P,THRTY2 ;CALL A ROUTINE SO WE CAN SAVE REGISTERS
1681 001113' 254 00 0 00 001102' JRST CPYDMP ;GO DUMP THE BUFFER
1682
1683 001114' 260 17 0 00 000403* THRTY2: PUSHJ P,.SAVE3## ;SAVE SOME REGISTERS
1684 001115' 200 05 0 00 002516' MOVE P1,IBHR+.BFCTR ;INPUT WORD COUNT
1685 001116' 221 05 0 00 000011 IMULI P1,^D9 ;# 4-BIT BYTES
1686 001117' 205 06 0 00 440400 MOVSI P2,(POINT 4) ;SETUP 4-BIT BYTE PTR
1687 001120' 540 06 0 00 002515' HRR P2,IBHR+.BFPTR ;GET THE PTR
1688 001121' 541 06 0 06 000001 HRRI P2,1(P2) ;POINT AT THE DATA
1689 001122' 205 07 0 00 441000 MOVSI P3,(POINT 8) ;FORM BYTE PTR TO STORE 8-BIT BYTES
1690 001123' 540 07 0 00 002520' HRR P3,OBHR+.BFPTR
1691 001124' 541 07 0 07 000001 HRRI P3,1(P3)
1692
1693 001125' 134 01 0 00 000006 LUP32: ILDB T1,P2 ;GET A BYTE
1694 001126' 242 01 0 00 000004 LSH T1,4 ;POSITION TO HIGH FOUR BITS
1695 001127' 134 02 0 00 000006 ILDB T2,P2 ;GET NEXT BYTE
1696 001130' 434 01 0 00 000002 OR T1,T2 ;FORM A WORD
1697 001131' 136 01 0 00 000007 IDPB T1,P3 ;STORE 8 BITS
1698 001132' 275 05 0 00 000002 SUBI P1,2 ;COUNT BYTES USED
1699 001133' 327 05 0 00 001125' JUMPG P1,LUP32 ;JUMP IF NOT DONE YET
1700
1701 001134' 550 01 0 00 002520' HRRZ T1,OBHR+.BFPTR ;GET THE OUTPUT PTR
1702 001135' 201 02 0 07 000000 MOVEI T2,(P3) ;BEGIN TO COMPUTE WORDS TO OUTPUT
1703 001136' 275 02 0 01 000000 SUBI T2,(T1) ;COMPUTE THEM
1704 001137' 542 02 0 01 000000 HRRM T2,(T1) ;SET FOR IO.UWC
1705 001140' 200 01 0 00 002516' MOVE T1,IBHR+.BFCTR ;GET INPUT WORD COUNT
1706 001141' 402 00 0 00 002516' SETZM IBHR+.BFCTR ;CLEAR INPUT WORD COUNT
1707 001142' 272 01 0 00 002515' ADDM T1,IBHR+.BFPTR ;LET MON KNOW WE USED THE BUFFER UP
1708 001143' 263 17 0 00 000000 POPJ P, ;RETURN TO WRITE BUFFER
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 38
COPYMT MAC 23-FEB-77 11:47 COPY DSK TO MAGTAPE IN PHYSICS (IREAD) FORMAT
1709 SUBTTL COPY DSK TO MAGTAPE IN PHYSICS (IREAD) FORMAT
1710
1711 001144' 265 11 0 00 000755' CPYDTM: JSP L,TYICHK ;SEE ABOUT THE TTY
1712 001145' 254 00 0 00 000723' JRST DO.DUN ;SAID TO KILL
1713 001146' 361 07 0 00 001323' SOJL P3,COPDUN ;DONE COPYING RECORDS? (OR WHOLE FILE?)
1714 001147' 265 11 0 00 001262' CPDM$A: JSP L,CKIBUF ;MAKE SURE BUFFER HAS GOODIES
1715 001150' 254 00 0 00 001333' JRST CPYEOF ;DONE--EOF
1716 001151' 134 03 0 00 002515' ILDB T3,IBHR+.BFPTR ;RECORD LENGTH
1717 001152' 370 00 0 00 002516' SOS IBHR+.BFCTR ;COUNT WHAT WE READ
1718 001153' 322 03 0 00 001147' JUMPE T3,CPDM$A ;IGNORE 0 LENGTH RECORDS (PROBABLY ERROR)
1719 001154' 603 03 0 00 777777 TLNE T3,-1 ;NO RECORDS THIS LONG EITHER!
1720 001155' 254 00 0 00 001147' JRST CPDM$A ;WE ARE PROBABLY LOST...
1721 001156' 200 02 0 00 002517' MOVE T2,OBHR+.BFADR ;ADDRESS CURRENT BUFFER
1722 001157' 542 03 0 02 000001 HRRM T3,1(T2) ;SET FOR IO.UWC
1723 001160' 202 03 0 00 002512' MOVEM T3,LSTBFZ ;SAVE IN CASE OF TOO LARGE RECORD
1724
1725 001161' 265 11 0 00 001262' CPDM$0: JSP L,CKIBUF ;MAKE SURE SOMETHING IN INPUT BUFFER
1726 001162' 254 00 0 00 001333' JRST CPYEOF ;DSK END OF FILE
1727 001163' 200 01 0 00 002516' MOVE T1,IBHR+.BFCTR ;GET COUNT IN BUFFER
1728 001164' 305 03 0 01 000000 CPDM$1: CAIGE T3,(T1) ;CAN WE MOVE IT ALL?
1729 001165' 201 01 0 03 000000 MOVEI T1,(T3) ;NO--JUST PART
1730 001166' 514 02 0 00 002515' HRLZ T2,IBHR+.BFPTR ;INPUT ADDRESS
1731 001167' 540 02 0 00 002520' HRR T2,OBHR+.BFPTR ;TO OUTPUT
1732 001170' 252 02 0 00 001171' AOBJP T2,.+1 ;OFF BY ONE THO
1733 001171' 272 01 0 00 002515' ADDM T1,IBHR+.BFPTR ;UPDATE PTRS
1734 001172' 272 01 0 00 002520' ADDM T1,OBHR+.BFPTR ;...
1735 001173' 210 01 0 00 000001 MOVN T1,T1 ;- COUNT
1736 001174' 270 03 0 00 000001 ADD T3,T1 ;UPDATE WDS TO GO
1737 001175' 272 01 0 00 002516' ADDM T1,IBHR+.BFCTR ;UPDATE COUNTS
1738 001176' 273 01 0 00 002521' ADDB T1,OBHR+.BFCTR ;AND CHECK FOR REC TOO LARGE
1739 001177' 321 01 0 00 001207' JUMPL T1,BFTSML ;JUMP IF TOO SMALL
1740 001200' 251 02 1 00 002520' BLT T2,@OBHR+.BFPTR ;MOVE WORDS
1741 001201' 327 03 0 00 001161' JUMPG T3,CPDM$0 ;JUMP IF REC NOT DONE
1742 001202' 350 00 0 00 002775' AOS RECTOT ;COUNT THE RECORD
1743 001203' 260 17 0 00 001757' PUSHJ P,XCTIO ;YES--DUMP THE RECORD
1744 001204' 057 02 0 00 000000 OUT OUTC,
1745 001205' 254 00 0 00 001357' JRST FULTAP ;GET ANOTHER TAPE
1746 001206' 254 00 0 00 001144' JRST CPYDTM ;DO NEXT RECORD
1747
1748 001207' 200 01 0 00 002512' BFTSML: MOVE T1,LSTBFZ ;GET SIZE OF OFFENDER
1749 001210' 260 17 0 00 002353' ERROR. EF$DEC!EF$FTL,BTS,<MTA BUFFER TOO SMALL FOR REC LENGTH = >
1750 001211' 300401 003322'
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 39
COPYMT MAC 23-FEB-77 11:47 COPY MAGTAPE TO DSK FILE (IREAD FORMAT)
1751 SUBTTL COPY MAGTAPE TO DSK FILE (IREAD FORMAT)
1752
1753 001212' 337 00 0 00 000006 CPYMTD: SKIPG P2 ;FILES LEFT
1754 001213' 361 07 0 00 001323' SOJL P3,COPDUN ;OR RECORDS
1755 001214' 265 11 0 00 001262' JSP L,CKIBUF ;YES--SEE IF INPUT THERE
1756 001215' 254 00 0 00 001333' JRST CPYEOF ;ALL DONE
1757 001216' 265 11 0 00 000755' JSP L,TYICHK ;SEE ABOUT TTY
1758 001217' 254 00 0 00 000723' JRST DO.DUN ;SAID TO HANG IT UP
1759 001220' 350 00 0 00 002775' AOS RECTOT ;COUNT RECORDS COPIED
1760 001221' 200 04 0 00 002516' MOVE T4,IBHR+.BFCTR ;GET SIZE OF RECORD
1761 001222' 333 00 0 00 002521' SKIPLE OBHR+.BFCTR ;ROOM TO STORE WORD COUNT?
1762 001223' 254 00 0 00 001230' JRST CPMD$0 ;YES
1763 001224' 260 17 0 00 001757' PUSHJ P,XCTIO ;NO
1764 001225' 057 02 0 00 000000 OUT OUTC,
1765 001226' 254 00 0 00 001257' JRST E$$DIF ;**DSK IS FULL
1766 001227' 621 00 0 00 040000 TLZ F,FL$EOT ;WE HAVE WRITTEN DATA
1767
1768 001230' 136 04 0 00 002520' CPMD$0: IDPB T4,OBHR+.BFPTR ;STORE IN OUTPUT
1769 001231' 370 00 0 00 002521' SOS OBHR+.BFCTR ;COUNT IT
1770
1771 001232' 337 00 0 00 002516' CPMD0A: SKIPG IBHR+.BFCTR ;ANY WORDS LEFT THIS RECORD?
1772 001233' 254 00 0 00 001212' JRST CPYMTD ;NO--GET NEXT RECORD
1773
1774 001234' 333 00 0 00 002521' CPMD$1: SKIPLE OBHR+.BFCTR ;ROOM IN OUTPUT?
1775 001235' 254 00 0 00 001242' JRST CPMD$2 ;YES
1776 001236' 260 17 0 00 001757' PUSHJ P,XCTIO ;NO--DUMP BUFFER
1777 001237' 057 02 0 00 000000 OUT OUTC,
1778 001240' 254 00 0 00 001257' JRST E$$DIF ;**DSK IS FULL
1779 001241' 621 00 0 00 040000 TLZ F,FL$EOT ;WE HAVE WRITTEN DATA
1780
1781 001242' 200 01 0 00 002516' CPMD$2: MOVE T1,IBHR+.BFCTR ;GET INPUT COUNT
1782 001243' 313 01 0 00 002521' CAMLE T1,OBHR+.BFCTR ;ROOM FOR IT ALL?
1783 001244' 200 01 0 00 002521' MOVE T1,OBHR+.BFCTR ;NO--MOVE WHAT WE CAN
1784 001245' 514 02 0 00 002515' HRLZ T2,IBHR+.BFPTR ;SETUP AOBJN WORD
1785 001246' 540 02 0 00 002520' HRR T2,OBHR+.BFPTR ;...
1786 001247' 252 02 0 00 001250' AOBJP T2,.+1 ;OFF BY ONE AS USUAL
1787 001250' 272 01 0 00 002515' ADDM T1,IBHR+.BFPTR ;UPDATE PTRS
1788 001251' 272 01 0 00 002520' ADDM T1,OBHR+.BFPTR
1789 001252' 210 01 0 00 000001 MOVN T1,T1 ;- COUNT
1790 001253' 272 01 0 00 002516' ADDM T1,IBHR+.BFCTR ;UPDATE COUNTERS
1791 001254' 272 01 0 00 002521' ADDM T1,OBHR+.BFCTR
1792 001255' 251 02 1 00 002520' BLT T2,@OBHR+.BFPTR ;MOVE DATA
1793 001256' 254 00 0 00 001232' JRST CPMD0A ;LOOP FOR REST OF RECORD
1794
1795 001257' 260 17 0 00 002353' E$$DIF: ERROR. EF$ERR,DIF,<DSK IS FULL -- ABORTING>
1796 001260' 300000 003330'
1797 001261' 254 00 0 00 000723' JRST DO.DUN
1798
1799 ;CKIBUF -- SEE IF ANY INPUT THERE AND DO IN IF NOT
1800 ;CALL: JSP L,CKIBUF
1801 ; *EOF*
1802 ; *DATA IN BUFFER*
1803
1804 001262' 333 00 0 00 002516' CKIBUF: SKIPLE IBHR+.BFCTR ;ANYTHING THERE?
1805 001263' 254 00 0 11 000001 JRST 1(L) ;YES--SKIP BACK
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 39-1
COPYMT MAC 23-FEB-77 11:47 COPY MAGTAPE TO DSK FILE (IREAD FORMAT)
1806 001264' 260 17 0 00 001757' PUSHJ P,XCTIO ;NO--GET NEXT RECORD
1807 001265' 056 01 0 00 000000 IN INPC, ;XCT'D
1808 001266' 254 00 0 11 000000 JRST (L) ;EOF
1809 001267' 254 00 0 11 000001 JRST 1(L) ;GOT DATA
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 40
COPYMT MAC 23-FEB-77 11:47 COPY MAGTAPE TO DSK FILE (IREAD FORMAT)
1810 ;THIS TABLE IS XCT'D TO DO THE PROPER FUNCTION
1811 ;THE ORDER IS:
1812 ; OUTPUT FILE ACTION
1813 ; OUTPUT RECORD ACTION
1814 ; INPUT FILE ACTION
1815 ; INPUT RECORD ACTION
1816
1817 001270' 072 02 0 00 000017 ACTABL: MTBSF. OUTC,
1818 001271' 072 02 0 00 000007 MTBSR. OUTC,
1819 001272' 072 01 0 00 000017 MTBSF. INPC,
1820 001273' 072 01 0 00 000007 MTBSR. INPC,
1821 001274' 072 02 0 00 000016 MTSKF. OUTC,
1822 001275' 072 02 0 00 000006 MTSKR. OUTC,
1823 001276' 072 01 0 00 000016 MTSKF. INPC,
1824 001277' 072 01 0 00 000006 MTSKR. INPC,
1825 001300' 265 11 0 00 001314' JSP L,OMTEOF
1826 001301' 265 11 0 00 001314' JSP L,OMTEOF
1827 001302' 265 11 0 00 001314' JSP L,OMTEOF ;/EOF ON INPUT SIDE ONLY EOF'S OUTPUT TAPE
1828 001303' 265 11 0 00 001314' JSP L,OMTEOF ;...
1829 001304' 072 02 0 00 000001 MTREW. OUTC,
1830 001305' 072 02 0 00 000001 MTREW. OUTC,
1831 001306' 072 01 0 00 000001 MTREW. INPC,
1832 001307' 072 01 0 00 000001 MTREW. INPC,
1833 001310' 072 02 0 00 000011 MTUNL. OUTC,
1834 001311' 072 02 0 00 000011 MTUNL. OUTC,
1835 001312' 072 01 0 00 000011 MTUNL. INPC,
1836 001313' 072 01 0 00 000011 MTUNL. INPC,
1837
1838 001314' OMTEOF:
1839 IFN FT$MTP,<
1840 001314' 603 00 0 00 002000 TLNE F,FL$MTP ;MTAPE COMMAND?
1841 001315' 254 00 0 00 001321' JRST OMTEF1 ;YES--EOF INPUT SIDE THEN
1842 >;END IFN FT$MTP
1843 001316' 072 02 0 00 000003 MTEOF. OUTC,
1844 001317' 621 00 0 00 400000 TLZ F,FL$MRG ;NOT MERGING ANY MORE
1845 001320' 254 00 0 11 000000 JRST (L)
1846 IFN FT$MTP,<
1847 001321' 072 01 0 00 000003 OMTEF1: MTEOF. INPC, ;EOF INPUT IF MTAPE CMD
1848 001322' 254 00 0 11 000000 JRST (L) ;RETURN
1849 >;END IFN FT$MTP
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 41
COPYMT MAC 23-FEB-77 11:47 COPY MAGTAPE TO DSK FILE (IREAD FORMAT)
1850 001323' 603 00 0 00 400000 COPDUN: TLNE F,FL$MRG ;MERGING?
1851 001324' 254 00 0 00 000643' JRST DANTHR ;YES--CRUISE ON
1852 001325' 260 17 0 00 000447' PUSHJ P,OUTCLS ;CLOSE OUTPUT
1853 001326' 561 01 0 00 777776 HRROI T1,FN$EOL ;GET EOL FUNCTION
1854 001327' 316 01 0 12 000001 CAMN T1,1(PLP) ;END OF LIST FUNCTION NEXT?
1855 001330' 625 00 0 00 040000 TLZA F,FL$EOT ;YES--DON'T REOPEN OUTPUT AND CLEAR FL$EOT
1856 001331' 260 17 0 00 000326' PUSHJ P,OPNOUT ;NO--REOPEN OUTPUT
1857 001332' 254 00 0 00 000643' JRST DANTHR ;GO PROCESS THE NEXT FUNCTION
1858
1859 ;HERE ON INPUT END-OF-FILE
1860
1861 001333' 260 17 0 00 000433' CPYEOF: PUSHJ P,INPCLS ;CLOSE INPUT
1862 001334' 663 00 0 00 040000 TLOE F,FL$EOT ;SET/CHECK EOT FLAG
1863 001335' 254 00 0 00 000723' JRST DO.DUN ;YES--GO FINISH UP
1864 001336' 603 00 0 00 000100 TLNE F,FL$DSI ;DSK IN?
1865 001337' 254 00 0 00 001353' JRST CPYEFA ;YES--GO FINISH UP
1866 001340' 350 00 0 00 002776' AOS FILTOT ;COUNT A FILE AS DONE
1867 001341' 260 17 0 00 000400' PUSHJ P,OPNINP ;RE-OPEN INPUT
1868 001342' 603 00 0 00 400000 TLNE F,FL$MRG ;MERGING?
1869 001343' 364 06 0 00 001062' SOJA P2,COPYIT ;YES--DEC FILE COUNT AND GO
1870 001344' 603 00 0 00 000040 TLNE F,FL$DSO ;NO--DSK OUTPUT?
1871 001345' 364 06 0 00 001212' SOJA P2,CPYMTD ;YES--CONTINUE THERE
1872 001346' 260 17 0 00 000447' PUSHJ P,OUTCLS ;NO--CLOSE OUTPUT FILE
1873 001347' 367 06 0 00 001355' SOJG P2,CPYEF0 ;JUMP IF MORE TO DO
1874 001350' 327 07 0 00 001355' JUMPG P3,CPYEF0 ;OR IF MORE RECORDS
1875 001351' 621 00 0 00 040000 TLZ F,FL$EOT ;CLEAR EOT FLAG IN CASE MORE COPYING LATER
1876 001352' 254 00 0 00 000643' JRST DANTHR ;NO MORE COPYING--GO GET NEXT FUNCTION AND DISP
1877 001353' 621 00 0 00 040000 CPYEFA: TLZ F,FL$EOT ;NOTHING ELSE TO DO--CLEAR EOT FLAG FOR DO.DUN
1878 001354' 254 00 0 00 000723' JRST DO.DUN ;AND THEN GO THERE
1879 001355' 260 17 0 00 000326' CPYEF0: PUSHJ P,OPNOUT ;OPEN OUTPUT AGAIN
1880 001356' 254 00 0 00 001062' JRST COPYIT ;GO AGAIN
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 42
COPYMT MAC 23-FEB-77 11:47 COPY MAGTAPE TO DSK FILE (IREAD FORMAT)
1881 ;HERE WHEN TAPE IS FULL
1882
1883 001357' 062 02 0 00 000001 FULTAP: GETSTS OUTC,T1 ;GET STS BITS
1884 001360' 620 01 0 00 002000 TRZ T1,IO.EOT ;CLEAR SO WE CAN DUMP BUFFERS
1885 001361' 060 02 0 01 000000 SETSTS OUTC,(T1) ;TELL TAPSER
1886 001362' 260 17 0 00 002353' OPER$ EF$WRN,OTF,<OUTPUT TAPE IS FULL>
1887 001363' 300220 003335'
1888 001364' 260 17 0 00 000447' PUSHJ P,OUTCLS ;CLOSE OUTPUT FILE (WRITE EOFS)
1889 001365' 260 17 0 00 002317' ASKEOO: PUSHJ P,TYPDLR ;TYPE CRLF-$ IF BATCH
1890 001366' 201 01 0 00 003336' STRNG$ <OPTION (H FOR HELP): >
1891 001367' 260 17 0 00 001045*
1892 001370' 260 17 0 00 002311' PUSHJ P,GCHNWL ;GET CHAR + .TCRLF
1893 001371' 205 02 0 00 777773 MOVSI T2,-N$EOTO ;AOBJN
1894 001372' 312 01 0 02 001401' CAME T1,EOTOPT(T2) ;CHECK THEM
1895 001373' 253 02 0 00 001372' AOBJN T2,.-1
1896 001374' 321 02 1 02 001406' JUMPL T2,@EOTDSP(T2) ;JUMP IF GOOD ANSWER
1897 001375' 334 01 0 00 001376' EOTHLP: SKIPA T1,.+1 ;LOAD UP FILNAME
1898 001376' 43 55 64 45 64 50 SIXBIT /CMTETH/ ;COPYMT END-OF-TAPE HELP
1899 001377' 260 17 0 00 002342' PUSHJ P,TYHELP ;TYPE SOME HELP
1900 001400' 254 00 0 00 001365' JRST ASKEOO ;ASK AGAIN
1901
1902 001401' 000000 000103 EOTOPT: EXP "C","E","H","R","U"
1903 001402' 000000 000105
1904 001403' 000000 000110
1905 001404' 000000 000122
1906 001405' 000000 000125
1907 000005 N$EOTO==.-EOTOPT
1908
1909 001406' 000000 001424' EOTDSP: EXP FULCON
1910 001407' 000000 001413' EXP EOTXIT
1911 001410' 000000 001375' EXP EOTHLP
1912 001411' 000000 001420' EXP EOTREW
1913 001412' 000000 001415' EXP EOTUNL
1914
1915 001413' 047 01 0 00 000012 EOTXIT: EXIT 1, ;EXIT TO MONITOR
1916 001414' 254 00 0 00 001365' JRST ASKEOO ;ON CONTINUE GO FOR ANOTHER ONE
1917
1918 001415' 260 17 0 00 000500' EOTUNL: PUSHJ P,OPONOB ;OPEN -- NO BUFFERS
1919 001416' 072 02 0 00 000011 MTUNL. OUTC, ;UNLOAD
1920 001417' 254 00 0 00 001422' JRST EOTFIN ;CLOSE TAPE OUT
1921 001420' 260 17 0 00 000500' EOTREW: PUSHJ P,OPONOB ;OPEN WITH NO BUFFERS
1922 001421' 072 02 0 00 000001 MTREW. OUTC, ;REWIND MTA
1923 001422' 071 02 0 00 000000 EOTFIN: RELEASE OUTC, ;CLOSE DEVICE
1924 001423' 254 00 0 00 001365' JRST ASKEOO ;WAIT FOR CONTINUE
1925
1926 001424' 260 17 0 00 000326' FULCON: PUSHJ P,OPNOUT ;OPEN OUTPUT TAPE
1927 001425' 603 00 0 00 000100 TLNE F,FL$DSI ;DSK INPUT?
1928 001426' 254 00 0 00 001144' JRST CPYDTM ;YES--CONTINUE THERE, ELSE
1929 001427' 254 00 0 00 001062' JRST COPYIT ;CONTINUE COPYING
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 43
COPYMT MAC 23-FEB-77 11:47 TAPE TESTING
1930 SUBTTL TAPE TESTING
1931
1932 IFN FT$TST,< ;ALL UNDER FT$TST
1933
1934 001430' 260 17 0 00 000634* TESTIT: PUSHJ P,.SAVE4## ;SAVE P1-4
1935 001431' 072 02 0 00 000001 TEST.2: MTREW. OUTC, ;REWIND OUTPUT TAPE
1936 001432' 402 00 0 00 002774' SETZM OUTERS ;CLEAR ERROR COUNT FOR "E" IFTYPE CMD
1937 001433' 661 00 0 00 001000 TLO F,FL$TST ;FLAG /T IN PROGRESS
1938 001434' 200 01 0 00 003031' MOVE T1,OUTSPC+.FXDEV;GET NAME
1939 001435' 260 17 0 00 002353' INFO. EF$SIX!EF$NCR,NTT,<TESTING >
1940 001436' 300143 003345'
1941 001437' 260 17 0 00 000000* PUSHJ P,.TCOLN## ;TYPE A COLON
1942 001440' 201 01 0 00 003346' STRNG$ </RETRY:>
1943 001441' 260 17 0 00 001367*
1944 001442' 337 01 0 00 003121' SKIPG T1,NUMTRY ;GET # TRIES
1945 001443' 201 01 0 00 000004 MOVEI T1,DF$TRY ;NO--ON SECOND THOUGHT, USE THE DEFAULT
1946 001444' 202 01 0 00 003121' MOVEM T1,NUMTRY ;REMEMBER IT FOR LATER
1947 001445' 260 17 0 00 001044* PUSHJ P,.TDECW## ;TYPE # RETRIES
1948 001446' 201 01 0 00 003350' STRNG$ </REPEAT:> ;TELL HOW MANY TIMES WE ARE REPEATING
1949 001447' 260 17 0 00 001441*
1950 001450' 337 01 0 00 003122' SKIPG T1,RPETFL
1951 001451' 201 01 0 00 000001 MOVEI T1,1
1952 001452' 260 17 0 00 001445* PUSHJ P,.TDECW##
1953 001453' 201 01 0 00 003352' STRNG$ </DENSITY:>
1954 001454' 260 17 0 00 001447*
1955 001455' 200 01 0 00 003117' MOVE T1,TSTDEN ;GET TEST DENSITY
1956 001456' 201 01 0 01 001532' MOVEI T1,DENSTR-1(T1) ;GET ASCIZ STRING FOR IT
1957 001457' 260 17 0 00 001454* PUSHJ P,.TSTRG## ;SEND IT
1958 001460' 201 01 0 00 003354' STRNG$ </TRACK:>
1959 001461' 260 17 0 00 001457*
1960 001462' 200 01 0 00 002506' MOVE T1,ODVNAM ;GET REAL NAME
1961 001463' 047 01 0 00 000112 MTCHR. T1, ;SEE IF SEVEN OR NINE-TRACK
1962 001464' 400 01 0 00 000000 SETZ T1, ;NEVER KNOW
1963 001465' 602 01 0 00 000020 TRNE T1,MT.7TR ;SEVEN?
1964 001466' 334 01 0 00 003356' SKIPA T1,[EXP 7]
1965 001467' 201 01 0 00 000011 MOVEI T1,^D9 ;NINE
1966 001470' 260 17 0 00 001452* PUSHJ P,.TDECW## ;TYPE 7 OR 9
1967 MOVEI T1,[ASCIZ/]
1968 001471' 201 01 0 00 003357' /]
1969 001472' 260 17 0 00 001461* PUSHJ P,.TSTRG## ;END INFO
1970 001473' 072 02 0 00 000000 MTWAT. OUTC, ;WAIT NOW WHILE TTY IS BUSY
1971 001474' 062 02 0 00 000001 GETSTS OUTC,T1 ;GET STATUS
1972 001475' 060 02 0 01 000100 SETSTS OUTC,IO.NRC(T1) ;TELL TAPSER TO NOT RETRY
1973 001476' 403 05 0 00 000007 SETZB P1,P3 ;P1=RECORD COUNT, P3=TOTAL ERRORS
1974 001477' 265 01 0 00 001540' JSP T1,RESTRY ;RESET THE RETRY COUNTER
1975 001500' 337 10 0 00 003120' SKIPG P4,TESTFL ;GET VALUE OF /TEST:N
1976 001501' 525 10 0 00 377777 HRLOI P4,377777 ;JUST /T...DO WHOLE TAPE
1977 001502' 260 17 0 00 001543' PUSHJ P,TSTBUF ;TEST THE TAPE
1978 001503' 260 17 0 00 000447' ENDTST: PUSHJ P,OUTCLS ;CLOSE OUTPUT
1979 001504' 260 17 0 00 000500' PUSHJ P,OPONOB ;OPEN FOR REWINDING
1980 001505' 337 00 0 00 003120' SKIPG TESTFL ;UNLESS USER ONLY WANTED PART TESTED
1981 001506' 072 02 0 00 000001 MTREW. OUTC, ;REWIND IT
1982 001507' 200 01 0 00 000007 MOVE T1,P3 ;COPY ERROR COUNT
1983 001510' 260 17 0 00 002353' INFO. EF$DEC,TNE,<TOTAL NUMBER OF ERRORS = >
1984 001511' 300101 003366'
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 43-1
COPYMT MAC 23-FEB-77 11:47 TAPE TESTING
1985 001512' 200 01 0 00 000005 MOVE T1,P1 ;REC TOTAL=LENGTH
1986 001513' 260 17 0 00 002353' INFO. EF$DEC!EF$NCR,TLI,<TAPE LENGTH = >
1987 001514' 300141 003372'
1988 MOVEI T1,[ASCIZ/ FEET]
1989 001515' 201 01 0 00 003373' /]
1990 001516' 260 17 0 00 001472* PUSHJ P,.TSTRG## ;
1991 001517' 333 00 0 00 003124' SKIPLE TIMEFL ;IF /TIME
1992 001520' 260 17 0 00 001021' PUSHJ P,TYISTS ;THEN DO IT
1993 IFN FT$DEB,<
1994 SOSG T1,BUFZER ;SEE IF MON CLEARED BUFFERS DESPITE UU.IBC
1995 PJRST TEST.4 ;NO--FINISH UP
1996 INFO. EF$DEC,MCB,<MON CLEARED BUF = >
1997 >;END IFN FT$DEB
1998 001521' 337 00 0 00 003120' TEST4: SKIPG TESTFL ;IF USER SAID /TEST:N
1999 001522' 377 00 0 00 003122' SOSG RPETFL ; OR /REPEAT:1 OR NO /REPEAT AT ALL
2000 001523' 254 00 0 00 000447' PJRST OUTCLS ; THEN JUST CLOSE OUTPUT AND RETURN
2001 ;***UNCOMMENT NEXT LINE IF WANT TO NOT DO MULTIPLE RETRIES IF TAPE OK
2002 ; JUMPLE P3,OUTCLS ;IF TAPE IS OK, THEN SKIP MULTIPLE PASSES
2003 001524' 260 17 0 00 000447' PUSHJ P,OUTCLS ;NO /TEST:N AND .GT. /REPEAT:1
2004 001525' 260 17 0 00 000326' PUSHJ P,OPNOUT ; SO REOPEN THE OUTPUT TAPE
2005 001526' 607 00 0 00 000004 TLNN F,FL$LOG ; ARE WE LOGGING ALL OF THIS?
2006 001527' 254 00 0 00 001431' JRST TEST.2 ;NO--JUST GO AHEAD
2007 001530' 260 17 0 00 000157' PUSHJ P,CLGNTS ;YES--SEPARATE THE RUNS
2008 001531' 260 17 0 00 000155' PUSHJ P,CLFLOG
2009 001532' 254 00 0 00 001431' JRST TEST.2 ;GO TEST IT NOW
2010
2011 001533' 062 060 060 000 000 DENSTR: ASCIZ /200/ ;1--200 BPI
2012 001534' 065 065 066 000 000 ASCIZ /556/ ;2--556
2013 001535' 070 060 060 000 000 ASCIZ /800/ ;3--800
2014 001536' 061 066 060 060 000 ASCIZ /1600/ ;4--1600
2015 001537' 066 062 065 060 000 ASCIZ /6250/ ;5--6250
2016
2017 001540' 210 06 0 00 003121' RESTRY: MOVN P2,NUMTRY ;GET -(NUMBER OF RETRIES)
2018 001541' 514 06 0 00 000006 HRLZ P2,P2 ;PUT IN THE LH FOR AN AOBJN
2019 001542' 254 00 0 01 000000 JRST (T1) ;RETURN
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 44
COPYMT MAC 23-FEB-77 11:47 TAPE TESTING
2020 001543' 265 11 0 00 000755' TSTBUF: JSP L,TYICHK ;SEE ABOUT USER INPUT
2021 001544' 263 17 0 00 000000 POPJ P, ;SAID TO KILL IT OFF
2022 001545' 361 10 0 00 000150* SOJL P4,.POPJ## ;CHECK FOR REC COUNT OUT
2023 001546' 200 01 0 00 002520' MOVE T1,OBHR+.BFPTR ;GET PTR
2024 001547' 200 02 0 00 002521' MOVE T2,OBHR+.BFCTR ;AND COUNT
2025 001550' 542 02 0 01 000000 HRRM T2,(T1) ;SET IN BUFFER SO IO.UWC WORKS
2026 001551' 402 00 0 00 002521' SETZM OBHR+.BFCTR ;IN CASE IO.UWC DOESN'T WORK
2027 001552' 273 02 0 00 002520' ADDB T2,OBHR+.BFPTR ;ADJUST PTR AND GET BLT TERM (IN CASE
2028 ; UU.IBC DIDN'T WORK)
2029 001553' 332 00 0 01 000001 SKIPE 1(T1) ;MON CLEAR THE BUFFER (OR FIRST TIME)?
2030 001554' 254 00 0 00 001561' JRST BFOTST ;NO--SKIP AHEAD
2031 001555' 476 00 0 01 000001 SETOM 1(T1) ;YES--MAKE IT ALL ONES
2032 001556' 505 01 0 01 000001 HRLI T1,1(T1) ;FORM BLT WORD
2033 001557' 541 01 0 01 000002 HRRI T1,2(T1) ;...
2034 001560' 251 01 0 02 000000 BLT T1,(T2) ;FILL THE BUFFER
2035 IFN FT$DEB,<AOS BUFZER> ;COUNT THE TIMES MON CLEARED BUFFER
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 45
COPYMT MAC 23-FEB-77 11:47 TAPE TESTING
2036 001561' 057 02 0 00 000000 BFOTST: OUT OUTC, ;DUMP THE BUFFER
2037 001562' 354 00 0 00 000005 AOSA P1 ;OK--COUNT REC AND SKIP
2038 001563' 254 00 0 00 001577' JRST OCHERR ;OOPS--PONDER THE ERROR
2039 001564' 550 01 0 00 000006 HRRZ T1,P2 ;GET ERROR RETRIES
2040 001565' 322 01 0 00 001543' JUMPE T1,TSTBUF ;JUMP IF FIRST TRY THIS RECORD
2041 001566' 260 17 0 00 001470* PUSHJ P,.TDECW## ;NO--TYPE # OF TRIES
2042 001567' 201 01 0 00 003375' STRNG$ < ATTEMPTS TO WRITE TAPE AT >
2043 001570' 260 17 0 00 001516*
2044 001571' 200 01 0 00 000005 MOVE T1,P1 ;REC #
2045 001572' 260 17 0 00 001566* PUSHJ P,.TDECW##
2046 001573' 260 17 0 00 002327' PUSHJ P,TYFEET ;FEET<CRLF>
2047 001574' 265 01 0 00 001540' OCHIEC: JSP T1,RESTRY ;RESET THE RETRY COUNTER IN P2
2048 001575' 350 00 0 00 002774' AOS OUTERS ;COUNT OUTPUT ERROR
2049 001576' 344 07 0 00 001543' AOJA P3,TSTBUF ;COUNT ERROR AND LOOP
2050
2051 001577' 062 02 0 00 000002 OCHERR: GETSTS OUTC,T2 ;GET ERROR BITS
2052 001600' 602 02 0 00 002000 TRNE T2,IO.EOT ;END OF TAPE?
2053 001601' 263 17 0 00 000000 POPJ P, ;YES--DONE WITH TEST
2054 001602' 620 02 0 00 740000 TRZ T2,IO.ERR ;CLEAR ERROR BITS
2055 001603' 060 02 0 02 000000 SETSTS OUTC,(T2) ;TELL MON
2056 001604' 253 06 0 00 001617' AOBJN P2,OCHFIX ;COUNT AND JUMP IF NOT ENOUGHT TRIES
2057 001605' 271 05 0 00 000001 ADDI P1,1 ;COUNT THE RECORD
2058 001606' 200 01 0 00 003121' MOVE T1,NUMTRY ;GET # TRIES
2059 001607' 260 17 0 00 002353' WARN. EF$DEC!EF$NCR,FAR,<FAILED AFTER >
2060 001610' 300241 003406'
2061 001611' 201 01 0 00 003407' STRNG$ < TRIES AT >
2062 001612' 260 17 0 00 001570*
2063 001613' 200 01 0 00 000005 MOVE T1,P1 ;GET RECORD COUNT
2064 001614' 260 17 0 00 001572* PUSHJ P,.TDECW## ;SHO THE FEET
2065 001615' 260 17 0 00 002327' PUSHJ P,TYFEET ;TYPE FEET<CRLF>
2066 001616' 254 00 0 00 001574' JRST OCHIEC ;GO FIX UP ERROR COUNTERS
2067
2068 001617' 072 02 0 00 000007 OCHFIX: MTBSR. OUTC, ;BACKSPACE A RECORD (ONE IN ERROR)
2069 001620' 072 02 0 00 000000 MTWAT. OUTC, ;WAIT FOR IT
2070 001621' 323 05 0 00 001543' JUMPLE P1,TSTBUF ;IF FIRST REC THEN ALL DONE
2071 001622' 072 02 0 00 000007 MTBSR. OUTC, ;BACKSPACE ANOTHER
2072 001623' 072 02 0 00 000000 MTWAT. OUTC, ;WAIT
2073 001624' 072 02 0 00 000006 MTSKR. OUTC, ;FORWARD ONE
2074 001625' 072 02 0 00 000000 MTWAT. OUTC, ;WAIT
2075 001626' 254 00 0 00 001543' JRST TSTBUF ;GO AGAIN
2076 >;END IFN FT$TST
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 46
COPYMT MAC 23-FEB-77 11:47 FIND BUFFER IN ERROR
2077 SUBTTL FIND BUFFER IN ERROR
2078
2079 REPEAT 0,< ;NOBODY USES IT YET
2080
2081 ;FNDBFE -- FIND BUFFER IN ERROR
2082 ;CALL: MOVE T1,<1ST WORD OF BUFFER HEADER>
2083 ; PUSHJ P,FNDBFE
2084 ; *NOT FUND*
2085 ; *FOUND--T1 HAS COUNTER OF # BUFS FROM PRESENT ONE,,PTR TO IT
2086
2087 FNDBFE: PUSHJ P,.SAVE3## ;NEED REGS
2088 SETZ P3, ;CLEAR COUNT
2089 HRRZ P1,T1 ;COPY PTR
2090 BFELUP: MOVE P2,-1(P1) ;GET STATUS BITS
2091 ANDI P2,IO.IMP!IO.DER!IO.BKT!IO.DTE
2092 JUMPN P2,GOTBFE ;JUMP IF FOUND SOME ERROS
2093 HRRZ P1,(P1) ;NO--MOVE ALONG RING
2094 CAME P1,T1 ;BACK TO WHERE WE STARTED?
2095 AOJA P3,BFELUP ;NO--COUNT AND LOOP
2096 RTZER: SETZ T1, ;NONE FOUND
2097 POPJ P,
2098
2099 ;HERE WITH FOUND BUFFER IN ERROR
2100
2101 GOTBFE: ANDCAM P2,-1(P1) ;CLEAR ERROR BITS
2102 HRLZ T1,P3 ;COUNT
2103 HRRI T1,(P1) ;BUFFER ADDR
2104 JRST .POPJ1## ;SKIP BACK
2105 >;END REPEAT 0
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 47
COPYMT MAC 23-FEB-77 11:47 OPENIO OPENS I/O CHANNELS
2106 SUBTTL OPENIO OPENS I/O CHANNELS
2107
2108 ;OPENIO
2109 ;CALL: MOVEI T1,<FDB ADDR>
2110 ; PUSHJ P,OPENIO
2111 ; CAI CHANNEL,BUFADR ;@ IF OUTPUT, (MODE)
2112 ; *ALL IS WELL RETURN* ;ABORT IF FAIL
2113
2114 001627' 504 01 0 17 000000 OPENIO: HRL T1,0(P) ;REMEMBER CALLER
2115 001630' 350 00 0 17 000000 AOS (P) ;DO A SKIP BACK
2116 001631' 260 17 0 00 001114* PUSHJ P,.SAVE3## ;PRESERVE REGISTERS
2117 001632' 204 05 0 00 000001 MOVS P1,T1 ;COPY ARGUMENTS
2118 001633' 200 06 0 05 000000 MOVE P2,(P1) ;GET REST OF THEM
2119 001634' 205 01 0 00 000032 MOVSI T1,.FXLEN ;SETUP FOR .STOPB
2120 001635' 544 01 0 00 000005 HLR T1,P1 ;...
2121 001636' 201 02 0 00 002620' MOVEI T2,OPNBLK ;
2122 001637' 334 03 0 00 001640' SKIPA T3,.+1
2123 001640' 000036 002623' .RBTIM+1,,LKPBLK
2124 001641' 201 04 0 00 002661' MOVEI T4,PTHBLK ;PATCH
2125 001642' 260 17 0 00 000256* PUSHJ P,.STOPB## ;CONVERT TO OPEN/LOOKUP BLOCKS
2126 001643' 254 00 0 00 001703' JRST WLDERR ;NO WILDCARDING!
2127 001644' 201 01 0 00 000035 DOOPEN: MOVEI T1,.RBTIM ;SETUP COUNT
2128 001645' 202 01 0 00 002623' MOVEM T1,LKPBLK+.RBCNT
2129 001646' 135 01 0 00 003412' LDB T1,[POINT 4,P2,17] ;GET MODE
2130 001647' 202 01 0 00 002620' MOVEM T1,OPNBLK+.OPMOD;STORE IN OPEN BLOCK
2131 001650' 550 01 0 00 000006 HRRZ T1,P2 ;BUFFER HEADER ADDRESS
2132 001651' 603 06 0 00 000020 TLNE P2,ATSIGN ;READ OR WRITE?
2133 001652' 207 00 0 00 000001 MOVSS T1 ;WRITING, POSITON FOR IT
2134 001653' 202 01 0 00 002622' MOVEM T1,OPNBLK+.OPBUF;STORE
2135 001654' 135 07 0 00 003413' LDB P3,[POINT 4,P2,12] ;GET I/O CHANNEL
2136 001655' 205 01 0 00 020000 MOVSI T1,(UU.IBC) ;GET INHIBIT BUFFER CLEARING BIT
2137 001656' 306 07 0 00 000002 CAIN P3,OUTC ;IF OUTPUT CHANNEL
2138 001657' 661 01 0 00 010000 TLO T1,(UU.SOE) ;THEN STOP ON ERROR ALSO
2139 001660' 302 07 0 00 000003 CAIE P3,LPTC ;UNLESS LINE PRINTER CHANNEL
2140 001661' 436 01 0 00 002620' IORM T1,OPNBLK+.OPMOD;STORE IN OPEN BLOCK
2141 001662' 242 07 0 00 000005 LSH P3,5 ;POSITION CHANNEL
2142 001663' 207 00 0 00 000007 MOVSS P3 ;IN CHANNEL POSITION
2143 001664' 200 01 0 00 003414' MOVE T1,[OPEN OPNBLK];FORM INSTR
2144 001665' 434 01 0 00 000007 OR T1,P3 ;FINISH
2145 001666' 256 00 0 00 000001 XCT T1 ;TRY TO OPEN DEVICE
2146 001667' 254 00 0 00 001700' JRST OPENER ;CAN'T--BOMB OUT
2147
2148 001670' 200 01 0 00 000007 MOVE T1,P3 ;REGET I/O CHANNEL
2149 001671' 603 06 0 00 000020 TLNE P2,ATSIGN ;READ/WRITE?
2150 001672' 665 01 0 00 077000 TLOA T1,(ENTER) ;WRITE
2151 001673' 661 01 0 00 076000 TLO T1,(LOOKUP) ;READ
2152 001674' 541 01 0 00 002623' HRRI T1,LKPBLK ;COMPLETE INSTR
2153 001675' 256 00 0 00 000001 XCT T1 ;FIND/WRITE THE FILE
2154 001676' 254 00 0 00 001713' JRST LKENER ;CAN'T
2155 001677' 263 17 0 00 000000 POPJ P, ;RETURN
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 48
COPYMT MAC 23-FEB-77 11:47 OPENIO OPENS I/O CHANNELS
2156 ;OPENIO ERRORS
2157
2158 001700' 554 01 0 00 000005 OPENER: HLRZ T1,P1 ;COPY FDB ADDR
2159 001701' 260 17 0 00 002353' E$$COD: ERROR. EF$FTL!EF$FIL,COD,<CAN'T OPEN DEVICE, FILE >
2160 001702' 300406 003422'
2161
2162 001703' 200 01 0 00 002621' WLDERR: MOVE T1,OPNBLK+.OPDEV;GET DEVICE
2163 001704' 047 01 0 00 000004 DEVCHR T1, ;MAKE SURE MTA
2164 001705' 607 01 0 00 000020 TLNN T1,(DV.MTA) ;IS IT?
2165 001706' 254 00 0 00 001710' JRST WLDNMT ;NO
2166 001707' 254 00 0 00 001644' JRST DOOPEN ;YES--GO ON
2167
2168 001710' 554 01 0 00 000005 WLDNMT: HLRZ T1,P1 ;GET FDB
2169 001711' 260 17 0 00 002353' E$$DNM: ERROR. EF$FTL!EF$FIL,DNM,<DEVICE NOT A MAGTAPE - >
2170 001712' 300406 003430'
2171
2172 001713' 550 01 0 00 002626' LKENER: HRRZ T1,LKPBLK+.RBEXT;GET FAIL CODE
2173 001714' 260 17 0 00 002353' ERROR. EF$ERR!EF$OCT!EF$NCR,LER,<LOOKUP/ENTER ERROR(>
2174 001715' 300042 003435'
2175 001716' 201 01 0 00 003436' STRNG$ <) FILE >
2176 001717' 260 17 0 00 001612*
2177 001720' 554 01 0 00 000005 HLRZ T1,P1
2178 001721' 260 17 0 00 000000* PUSHJ P,.TFBLK## ;TYPE SCAN BLOCK
2179 001722' 260 17 0 00 000765* PUSHJ P,.TCRLF## ;NEW LINE
2180 001723' 254 00 0 00 002427' JRST ERRFTL ;GO DIE
2181
2182 ;SCAN BLOCK FOR LPT SPEC
2183
2184 001724' 54 60 64 00 00 00 LPTSPC: SIXBIT /LPT/ ;.FXDEV
2185 001725' 435760 715564 EXP MY$NAM ;.FXNAM
2186 001726' 777777 777777 EXP -1 ;.FXNMM
2187 001727' 546064 777777 'LPT',,-1 ;.FXEXT
2188 001730' BLOCK .FXLEN-.FXEXT ;THE REST
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 49
COPYMT MAC 23-FEB-77 11:47 XCTIO EXECUTES IN/OUT UUO WITH ERROR HANDLING
2189 SUBTTL XCTIO EXECUTES IN/OUT UUO WITH ERROR HANDLING
2190
2191 ;XCTIO
2192 ;CALL: PUSHJ P,XCTIO
2193 ; <INSTR TO XCT> ;IN/OUT UUO
2194 ; *EOF/EOT RETURN*
2195 ; *NORMAL RETURN*
2196
2197 001757' XCTIO: SAVE$ T1 ;SAVE POSSIBLE CHAR/WORD
2198 001760' 200 01 1 17 777777 MOVE T1,@-1(P) ;GET INSTR TO XCT
2199 001761' 350 00 0 17 777777 AOS -1(P) ;SKIP INSTR ON RETURN
2200 001762' 260 17 0 00 001765' PUSHJ P,XCTIOD ;DO THE I/O
2201 001763' 350 00 0 17 777777 AOS -1(P) ;OK--SKIP BACK
2202 001764' 254 00 0 00 002136' JRST TPOPJ ;RESTOR T1 AND RETURN
2203
2204 ;THIS ROUTINE DOESN'T SKIP IF XCTIO SHOULD, AND SKIPS IF XCTIO SHOULDN'T
2205
2206 001765' 256 00 0 00 000001 XCTIOD: XCT T1 ;DO THE UUO
2207 001766' 263 17 0 00 000000 POPJ P, ;OK--CPOPJ SO XCTIO WILL CPOPJ1
2208 001767' 260 17 0 00 000000* PUSHJ P,.SAVE2## ;ERROR--SAVE P1 - 2
2209 SAVE$ T1 ;SAVE OPERATION IN CASE OPTION=S
2210 001771' 404 01 0 00 003440' XCTIOE: AND T1,[17B12] ;ERROR--GET THE CHANNEL
2211 ; MOVE P1,T1 ;COPY CHANNEL
2212 ; OR P1,[WAIT] ;FORM UUO TO WAIT FOR I/O TO FINISH
2213 ; XCT P1 ;WAIT FOR IT
2214 001772' 200 05 0 00 000001 MOVE P1,T1 ;COPY CHANNEL
2215 001773' 554 06 0 00 000005 HLRZ P2,P1 ;GET IN RH FOR FUTURE TESTING
2216 001774' 242 06 0 00 777773 LSH P2,-5 ;...
2217 001775' 434 01 0 00 003441' OR T1,[GETSTS T2] ;GET ERRROR BITS
2218 001776' 256 00 0 00 000001 XCT T1
2219 001777' 602 02 0 00 022000 TRNE T2,IO.EOF!IO.EOT;END OF SOMETHING?
2220 002000' 254 00 0 00 002135' JRST TPOPJ1 ;YES--CPOPJ1 SO XCTIO WILL CPOPJ
2221 002001' 550 01 0 00 000002 HRRZ T1,T2 ;NO--GET BITS IN RIGHT PLACE
2222 002002' 202 02 0 00 002513' MOVEM T2,TEMP ;SAVE IN A VERY VOLATILE PLACE
2223 002003' 620 02 0 00 740000 TRZ T2,IO.ERR ;CLEAR ERROR BITS
2224 002004' 661 05 0 00 060002 TLO P1,(SETSTS (T2)) ;FORM INSTR TO RESET STATUS
2225 002005' 256 00 0 00 000005 XCT P1 ;MAKE ERROR DISSAPPEAR
2226 002006' 602 01 0 00 400000 TRNE T1,IO.IMP ;CHECK FOR WRITE LOCK
2227 002007' 254 00 0 00 002063' JRST FIXWLK ;YES--GO HANDLE IT
2228 002010' 306 06 0 00 000004 CAIN P2,LOGC ;IF LOG FILE
2229 JRST [TLZ F,FL$LOG;STOP OUTPUT FOR A WHILE
2230 002011' 254 00 0 00 003442' JRST XCTIO0] ;AND GO PUT MSG TO TTY
2231 002012' 302 06 0 00 000003 CAIE P2,LPTC ;UNLESS LPT CHANNEL
2232 002013' 350 00 0 06 002772' AOS ERRCNT-1(P2) ;COUNT THE ERROR
2233 002014' 302 06 0 00 000001 CAIE P2,INPC ;IF THIS IS INPUT CHANNEL
2234 002015' 254 00 0 00 002023' JRST XCTIO0 ;NO
2235 002016' 200 02 0 00 003132' MOVE T2,ERRFLG ;GET /ERROR VALUE
2236 002017' 333 00 0 00 003123' SKIPLE RTRYFL ;/NORETRY??
2237 002020' 333 00 0 00 003125' SKIPLE RPTFLG ;YES--/REPORT?
2238 002021' 306 02 0 00 000002 CAIN T2,ERLIGN ;HOW ABOUT /ERROR:IGNORE?
2239 002022' 254 00 0 00 002136' JRST TPOPJ ;/NORETRY AND /NOREPORT OR /ERROR:IGNORE
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 50
COPYMT MAC 23-FEB-77 11:47 XCTIO EXECUTES IN/OUT UUO WITH ERROR HANDLING
2240 002023' 260 17 0 00 002353' XCTIO0: WARN. EF$NCR!EF$OCT,IOE,<I/O STATUS = >
2241 002024' 300242 003447'
2242 002025' 260 17 0 00 002140' PUSHJ P,TELPRB ;TELL WHAT THE BITS MEAN
2243 002026' 201 01 0 00 003450' STRNG$ <, ON >
2244 002027' 260 17 0 00 001717*
2245 002030' 200 01 0 06 003451' MOVE T1,[EXP INPSPC,OUTSPC,LPTSPC,LOGSPC]-1(P2) ;GET RIGHT FDB
2246 002031' 260 17 0 00 001721* PUSHJ P,.TFBLK## ;TYPE IT OUT
2247 002032' 306 06 0 00 000004 CAIN P2,LOGC ;IS THIS THE LOG CHANNEL?
2248 JRST [TLO F,FL$LOG;YES--MARK IT OPEN FOR BUSINESS AGAIN
2249 002033' 254 00 0 00 003456' JRST TPOPJ] ;AND GO RETURN
2250 002034' 306 06 0 00 000003 CAIN P2,LPTC ;OR LPT CHANNEL
2251 002035' 254 00 0 00 002132' JRST TELCON ;YES--JUST GO CONTINUE
2252 002036' 200 01 0 00 000006 MOVE T1,P2 ;COPY CHANNEL FOR TAPOP.
2253 002037' 260 17 0 00 002332' PUSHJ P,GMTSTS ;GET FILE AND RECORD COUNTS
2254 002040' 201 01 0 00 003460' STRNG$ <, FILE > ;TELL FILE AND RECORD COUNTS
2255 002041' 260 17 0 00 002027*
2256 002042' 200 01 0 00 002771' MOVE T1,TPOPBL+.TSFIL;GET FILE
2257 002043' 260 17 0 00 001614* PUSHJ P,.TDECW##
2258 002044' 201 01 0 00 003462' STRNG$ < RECORD >
2259 002045' 260 17 0 00 002041*
2260 002046' 200 01 0 00 002772' MOVE T1,TPOPBL+.TSREC;AND REC #
2261 002047' 260 17 0 00 002043* PUSHJ P,.TDECW##
2262 002050' 607 00 0 00 010000 TLNN F,FL$BAT ;IF BATCH JOB JUST CONTINUE
2263 002051' 302 06 0 00 000001 CAIE P2,INPC ;THIS INPUT CHANNEL?
2264 002052' 254 00 0 00 002132' JRST TELCON ;NO--JUST CONTINUE
2265 002053' 200 01 0 00 002513' MOVE T1,TEMP ;GET SAVED I/O STATUS
2266 002054' 602 01 0 00 040000 TRNE T1,IO.BKT ;IF BLOCK TOO LARGE
2267 002055' 260 17 0 00 002171' PUSHJ P,BKTERR ;GO HANDLE SEPARATELY
2268 002056' 333 01 0 00 003132' SKIPLE T1,ERRFLG ;GET /ERROR:LEVEL
2269 002057' 302 01 0 00 000003 CAIE T1,ERLQUE ;/ERROR:QUERY?
2270 002060' 254 00 0 00 002132' JRST TELCON ;NO--CONTINUE
2271 002061' 260 17 0 00 001722* PUSHJ P,.TCRLF## ;NEW LINE
2272 002062' 254 00 0 00 002070' JRST GETOPT ;GO GET ERROR OPTION
2273
2274 ;HERE WHEN OUTPUT IS WRITE LOCKED--ASK USER TO WRITE-ENABLE IT
2275
2276 002063' 260 17 0 00 000473' FIXWLK: PUSHJ P,WRTLOK ;TELL AND WAIT FOR WRTENBL
2277 002064' 200 01 0 17 000000 MOVE T1,0(P) ;GET I/O INSTR
2278 002065' 256 00 0 00 000001 XCT T1 ;CLANK IT AGAIN
2279 002066' 254 00 0 00 002136' JRST TPOPJ ;SUCCESS!
2280 002067' 254 00 0 00 001771' JRST XCTIOE ;OOPS..ERROR AGAIN
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 51
COPYMT MAC 23-FEB-77 11:47 XCTIO EXECUTES IN/OUT UUO WITH ERROR HANDLING
2281 GETOPT: STRNG$ <
2282 002070' 201 01 0 00 003464' OPTION (H FOR HELP): >
2283 002071' 260 17 0 00 002045*
2284 002072' 260 17 0 00 002311' PUSHJ P,GCHNWL ;INCHRW T1 + .TCRLF
2285 002073' 205 02 0 00 777771 MOVSI T2,-N$OPTN ;AOBJ
2286 002074' 312 01 0 02 002103' CAME T1,OPTLST(T2)
2287 002075' 253 02 0 00 002074' AOBJN T2,.-1
2288 002076' 321 02 1 02 002112' JUMPL T2,@OP$DSP(T2) ;JUMP IF VALID
2289 002077' 334 01 0 00 002100' OP$HLP: SKIPA T1,.+1 ;LOAD UP FILENAME
2290 002100' 43 55 64 45 62 50 SIXBIT /CMTERH/ ;COPYMT I/O ERROR HELP
2291 002101' 260 17 0 00 002342' PUSHJ P,TYHELP ;GO TYPE HELP
2292 002102' 254 00 0 00 002070' JRST GETOPT
2293
2294 002103' 000000 000103 OPTLST: EXP "C","D","E","G","H","I","S"
2295 002104' 000000 000104
2296 002105' 000000 000105
2297 002106' 000000 000107
2298 002107' 000000 000110
2299 002110' 000000 000111
2300 002111' 000000 000123
2301 000007 N$OPTN==.-OPTLST
2302
2303 002112' 000000 002136' OP$DSP: EXP TPOPJ ;CONTINUE
2304 002113' 000000 002204' EXP OP$DMP ;DUMP IT
2305 002114' 000000 002126' EXP OP$EXI ;EXIT
2306 002115' 000000 002124' EXP OP$G ;GO
2307 002116' 000000 002077' EXP OP$HLP ;HEP ME
2308 002117' 000000 002121' EXP OP$IGN ;IGNORE FURTHER ERRORS
2309 002120' 000000 002130' EXP OP$SKP ;SKIP IT
2310
2311 002121' 201 01 0 00 000002 OP$IGN: MOVEI T1,ERLIGN ;/ERROR:IGNORE
2312 002122' 202 01 0 00 003132' MOVEM T1,ERRFLG ;SET FOR LATER ERRORS
2313 002123' 254 00 0 00 002136' JRST TPOPJ ;AND RETURN
2314 002124' 476 00 0 00 003132' OP$G: SETOM ERRFLG ;FLAG NOT TO BOTHER USER
2315 002125' 254 00 0 00 002136' JRST TPOPJ ;CPOPJ SO XCTIO WILL CPOPJ1
2316
2317 002126' 047 01 0 00 000012 OP$EXI: EXIT 1,
2318 002127' 254 00 0 00 002070' JRST GETOPT ;IF HE CONTINUES
2319
2320 002130' OP$SKP: RESTR$ T1 ;GET THE I/O INSTR BACK
2321 002131' 254 00 0 00 001765' JRST XCTIOD ;AND TRY AGAIN
2322
2323 TELCON: STRNG$ < - CONTINUING
2324 002132' 201 01 0 00 003471' >
2325 002133' 260 17 0 00 002071*
2326 002134' 254 00 0 00 002136' JRST TPOPJ ;CPOPJ SO XCTIO WILL CPOPJ1
2327 002135' 350 00 0 17 777777 TPOPJ1: AOS -1(P)
2328 002136' TPOPJ: RESTR$ T1
2329 002137' 263 17 0 00 000000 POPJ P,
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 52
COPYMT MAC 23-FEB-77 11:47 XCTIO EXECUTES IN/OUT UUO WITH ERROR HANDLING
2330 ;CALL HERE WITH ERROR BITS IN T1--REPORTS WHAT THEY ALL MEAN
2331
2332 002140' 260 17 0 00 000313* TELPRB: PUSHJ P,.PSH4T## ;SAVE T1-4
2333 002141' 200 05 0 00 000001 MOVE P1,T1 ;COPY BITS
2334 002142' 405 05 0 00 740000 ANDI P1,IO.IMP!IO.DER!IO.DTE!IO.BKT ;NARROW TO WHAT WE NEED
2335 002143' 322 05 0 00 002164' JUMPE P1,PRBDUN ;JUMP IF NOT A PROBLEM!
2336 002144' 242 05 0 00 777762 LSH P1,-<ALIGN. (IO.BKT)> ;POSITION
2337 002145' 201 01 0 00 003475' MOVEI T1,[ASCIZ/ (/] ;START THE LIST
2338 002146' 260 17 0 00 002133* PUSHJ P,.TSTRG##
2339 002147' 621 00 0 00 004000 TLZ F,FL$FLG ;FL$FLG=1 MEANS NOT FIRST ONE--TYPE A COMMA
2340 002150' 200 04 0 00 003476' MOVE T4,[POINT 18,PRBNAM] ;POINT TO THE PROBLEM
2341 002151' 134 02 0 00 000004 PRBLUP: ILDB T2,T4 ;GET ONE
2342 002152' 606 05 0 00 000001 TRNN P1,1 ;THIS ONE A PROBLEM?
2343 002153' 254 00 0 00 002160' JRST PRBNXT ;NO
2344 002154' 663 00 0 00 004000 TLOE F,FL$FLG ;YES--FIRST ONE?
2345 002155' 260 17 0 00 002325' PUSHJ P,TYSLSH ;NO--SLASH 1
2346 002156' 205 01 0 02 000000 MOVSI T1,(T2) ;POSITION ERROR CODE
2347 002157' 260 17 0 00 400111* PUSHJ P,.TSIXN## ;TYPE IT
2348 002160' 242 05 0 00 777777 PRBNXT: LSH P1,-1 ;MOVE OVER ONE
2349 002161' 326 05 0 00 002151' JUMPN P1,PRBLUP
2350 002162' 201 01 0 00 000051 MOVEI T1,")" ;FINISH IT OFF
2351 002163' 260 17 0 00 000773* PUSHJ P,.TCHAR## ;...
2352 002164' PRBDUN:
2353 002164' 260 17 0 00 000207* POP4J: PUSHJ P,.POP4T## ;RESTORE T1-4
2354 002165' 263 17 0 00 000000 POPJ P,
2355
2356 002166' 425364 604162 PRBNAM: 'BKTPAR' ;BLOCK TOO LARGE/PARITY (DATA) ERROR
2357 002167' 444562 515560 'DERIMP' ;DEVICE ERROR/IMPROPER MODE
2358 002170' 000000 000000 EXP 0 ;SNH
2359
2360 002171' 663 00 0 00 000400 BKTERR: TLOE F,FL$BKT ;BEEN HERE BEFORE?
2361 002172' 263 17 0 00 000000 POPJ P, ;YES--JUST RETURN
2362 002173' 260 17 0 00 002061* PUSHJ P,.TCRLF## ;NEW LINE
2363 002174' 260 17 0 00 002353' INFO. 0,BKT,<BLOCK TOO LARGE ON INPUT--TRY LARGER /BUFSIZ>
2364 002175' 300100 003510'
2365 002176' 201 01 0 00 003511' ASKCON: STRNG$ <CONTINUE (Y OR N)? >
2366 002177' 260 17 0 00 002146*
2367 002200' 260 17 0 00 002311' PUSHJ P,GCHNWL ;GET HIS REPLY
2368 002201' 302 01 0 00 000131 CAIE T1,"Y" ;WHAT DID HE SAY?
2369 JRST [CAIE T1,"N" ;BUT DID HE REALLY SAY NO?
2370 JRST ASKCON ;NO--MAKE SURE
2371 002202' 254 00 0 00 003515' JRST ERRFTL] ;YES--GO DIE
2372 002203' 263 17 0 00 000000 POPJ P, ;HE SAID TO CONTINUE OK
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 53
COPYMT MAC 23-FEB-77 11:47 ERROR DUMP ROUTINES
2373 SUBTTL ERROR DUMP ROUTINES
2374
2375 002204' 663 00 0 00 020000 OP$DMP: TLOE F,FL$LPO ;LPT OPEN?
2376 002205' 254 00 0 00 002215' JRST DUMP0 ;YES
2377 002206' 201 01 0 00 001724' MOVEI T1,LPTSPC ;NO--GET SPEC ADDR
2378 002207' 260 17 0 00 001627' PUSHJ P,OPENIO ;DO IT
2379 002210' 300 03 1 00 002522' CAI LPTC,@LBHR(.IOASC) ;
2380 002211' 205 01 0 00 000002 MOVSI T1,2 ;USE 2 BUFFERS
2381 002212' 334 02 0 00 002213' SKIPA T2,.+1 ;
2382 002213' 002620' 002522' XWD OPNBLK,LBHR ;ARG FOR .ALCBF
2383 002214' 260 17 0 00 000427* PUSHJ P,.ALCBF## ;ALLOCATE BUFFERS
2384
2385 002215' 260 17 0 00 002277' DUMP0: PUSHJ P,LHEDER ;HEADER FOR RECORD
2386 002216' 260 17 0 00 002220' PUSHJ P,LDMPBF ;DUMP THE BUFFER
2387 002217' 254 00 0 00 002070' JRST GETOPT ;ASK AGAIN
2388
2389 002220' 260 17 0 00 001767* LDMPBF: PUSHJ P,.SAVE2## ;SAVE P1-2
2390 002221' 201 05 0 00 000010 MOVEI P1,MX$NPL ;PRESET COUNTER
2391 002222' 210 01 0 00 002516' MOVN T1,IBHR+.BFCTR ;GET NEG LENGTH OF BUFFER
2392 002223' 550 06 0 00 002515' HRRZ P2,IBHR+.BFPTR ;POINT TO BUFFER
2393 002224' 541 06 0 06 000001 HRRI P2,1(P2) ;POINT TO DATA WORDS
2394 002225' 505 06 0 01 000000 HRLI P2,(T1) ;FORM AOBJN WORD
2395 002226' 200 02 0 06 000000 LDMLUP: MOVE T2,(P2) ;GET A WORD
2396 002227' 260 17 0 00 002232' PUSHJ P,LOCTFW ;DUMP WITH FORMATTING
2397 002230' 253 06 0 00 002226' AOBJN P2,LDMLUP ;DO ALL WORDS
2398 002231' 254 00 0 00 002256' PJRST LCRLF ;NEW LINE AND RETURN
2399
2400 ;CALL WITH WORD TO DUMP IN T2 (DUMPS ALL 12 OCTAL DIGITS WITH FORMATIING)
2401
2402 002232' 365 05 0 00 002234' LOCTFW: SOJGE P1,LOCTF0 ;JUMP IF COOL
2403 002233' 260 17 0 00 002255' PUSHJ P,FLCRLF ;NO--NEW LINE
2404 002234' 201 01 0 00 000040 LOCTF0: MOVEI T1," " ;NO--SPACE TWO
2405 002235' 260 17 0 00 002261' PUSHJ P,LCHR
2406 002236' 260 17 0 00 002261' PUSHJ P,LCHR
2407 002237' 201 03 0 00 000014 MOVEI T3,^D12 ;12 DIGITS
2408 002240' 400 01 0 00 000000 LOCLUP: SETZ T1, ;CLEAR RESULT
2409 002241' 246 01 0 00 000003 LSHC T1,3 ;GET BYTE
2410 002242' 201 01 0 01 000060 MOVEI T1,"0"(T1) ;ASSKEY-IZE IT
2411 002243' 260 17 0 00 002261' PUSHJ P,LCHR ;LIST IT
2412 002244' 367 03 0 00 002240' SOJG T3,LOCLUP ;DO ALL
2413 002245' 263 17 0 00 000000 POPJ P,
2414
2415 ;LOCT--LIST OCTAL
2416
2417 002246' 231 01 0 00 000010 LOCT: IDIVI T1,^D8 ;GET A DIGIT
2418 002247' 506 02 0 17 000000 HRLM T2,(P) ;SAVE ON PDL
2419 002250' 332 00 0 00 000001 SKIPE T1 ;DONE?
2420 002251' 260 17 0 00 002246' PUSHJ P,LOCT ;NO--RECURZE
2421 002252' 554 01 0 17 000000 HLRZ T1,(P) ;YES--GET DIGIT
2422 002253' 201 01 0 01 000060 MOVEI T1,"0"(T1) ;ASCII
2423 002254' 254 00 0 00 002261' PJRST LCHR ;UNRECURSE OR RETURN
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 54
COPYMT MAC 23-FEB-77 11:47 ERROR DUMP ROUTINES
2424 ;FLCRLF -- LIST CRLF TO PRINTER AND RESET P1
2425
2426 002255' 201 05 0 00 000010 FLCRLF: MOVEI P1,MX$NPL ;RESET P1
2427 ; PJRST LCRLF ;CRLF AND RETURN
2428
2429 ;LCRLF -- LIST CRLF TO PRINTER
2430
2431 002256' 201 01 0 00 000015 LCRLF: MOVEI T1,.CHCRT ;CARRIAGE RETURN
2432 002257' 260 17 0 00 002261' PUSHJ P,LCHR
2433 002260' 201 01 0 00 000012 MOVEI T1,.CHLFD ;NEW LINE
2434 ; PJRST LCHR ;DUMP AND RETURN
2435
2436 ;LCHR -- DUMP CHAR IN T1 TO LPT
2437
2438 002261' 377 00 0 00 002524' LCHR: SOSG LBHR+.BFCTR ;ROOM?
2439 002262' 254 00 0 00 002265' JRST LBUFO ;NO
2440 002263' 136 01 0 00 002523' LCHRC: IDPB T1,LBHR+.BFPTR ;YES--STORE IT
2441 002264' 263 17 0 00 000000 POPJ P,
2442 002265' 260 17 0 00 001757' LBUFO: PUSHJ P,XCTIO ;DO OUTPUT
2443 002266' 057 03 0 00 000000 OUT LPTC,
2444 002267' 254 04 0 00 002267' HALT . ;EOT ON LPT!!??
2445 002270' 254 00 0 00 002263' JRST LCHRC ;DUMP CHAR AND RETURN
2446
2447 ;LSTR -- T1 POINTS TO ASCIZ STRING TO DUMP TO LPT
2448
2449 002271' 505 01 0 00 440700 LSTR: HRLI T1,(POINT 7) ;BYTE PTR
2450 002272' 261 17 0 00 000001 PUSH P,T1 ;SAVE ON PDL
2451 002273' 134 01 0 17 000000 LSTRL: ILDB T1,(P) ;GET CHAR
2452 002274' 322 01 0 00 002136' JUMPE T1,TPOPJ ;PRUNE PDL AND RETURN
2453 002275' 260 17 0 00 002261' PUSHJ P,LCHR ;DUMP
2454 002276' 254 00 0 00 002273' JRST LSTRL
2455
2456 ;LHEDER -- LIST HEADER FOR THIS RECORD
2457
2458 002277' 201 01 0 00 003520' LHEDER: MOVEI T1,[ASCIZ \DUMP OF FILE \]
2459 002300' 260 17 0 00 002271' PUSHJ P,LSTR
2460 002301' 200 01 0 00 002771' MOVE T1,TPOPBL+.TSFIL;INPUT FILE #
2461 002302' 260 17 0 00 002246' PUSHJ P,LOCT
2462 002303' 201 01 0 00 003462' MOVEI T1,[ASCIZ \ RECORD \]
2463 002304' 260 17 0 00 002271' PUSHJ P,LSTR
2464 002305' 200 01 0 00 002772' MOVE T1,TPOPBL+.TSREC;RECORD #
2465 002306' 260 17 0 00 002246' PUSHJ P,LOCT
2466 002307' 260 17 0 00 002256' PUSHJ P,LCRLF ;NEW LINE
2467 002310' 254 00 0 00 002256' PJRST LCRLF ;AND ANOTHER AND RETURN
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 55
COPYMT MAC 23-FEB-77 11:47 MINOR SUBROUTINES
2468 SUBTTL MINOR SUBROUTINES
2469
2470 ;GCHNWL -- INCHRW T1 + CLRBFI + .TCRLF
2471 ;USES NO ACS EXCEPT RETURNS CHAR IN T1
2472
2473 002311' 201 01 0 00 000007 GCHNWL: MOVEI T1,.CHBEL ;TYPE A BELL IF NOT BATCH
2474 002312' 607 00 0 00 010000 TLNN F,FL$BAT ;IS IT?
2475 002313' 260 17 0 00 002163* PUSHJ P,.TCHAR## ;NO--TYPE DING
2476 002314' 051 00 0 00 000001 INCHRW T1 ;GET THE CHARACTER
2477 002315' 051 11 0 00 000000 CLRBFI ;IN CASE DUMP USER
2478 002316' 254 00 0 00 002173* PJRST .TCRLF## ;NEW LINE AND RETURN
2479
2480 ;TYPDLR -- TYPE CRLF-DOLLAR SIGN IF BATCH SO WE TALK TO OPERATOR
2481
2482 002317' 607 00 0 00 010000 TYPDLR: TLNN F,FL$BAT ;BATCH JOB
2483 002320' 263 17 0 00 000000 POPJ P, ;NOT TODAY
2484 002321' 261 17 0 00 000001 PUSH P,T1 ;YES--SAVE T1
2485 STRNG$ <
2486 002322' 201 01 0 00 003523' $> ;SEND CRLF-$
2487 002323' 260 17 0 00 002177*
2488 002324' 254 00 0 00 002136' PJRST TPOPJ ;GET T1 BACK AND RETURN
2489
2490 ;TYSLSH -- TYPE A SLASH
2491
2492 002325' 201 01 0 00 000057 TYSLSH: MOVEI T1,"/" ;GET ONE
2493 002326' 254 00 0 00 002313* PJRST .TCHAR## ;SEND IT
2494
2495 ;TYFEET -- TYPE "FEET<CR><LF>"
2496
2497 002327' 265 01 0 00 002323* TYFEET: PJSP T1,.TSTRG##
2498 002330' 040 106 105 105 124 ASCIZ . FEET
2499 002331' 015 012 000 000 000 .
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 56
COPYMT MAC 23-FEB-77 11:47 MINOR SUBROUTINES
2500 ;GMTSTS -- GET FILE AND RECORD COUNT
2501 ;CALL: MOVE T1,IOCHAN
2502 ; PUSHJ P,GMTSTS
2503 ; *RETURN, STATUS IN TPOPBL*
2504 ;USES T1-T2
2505
2506 002332' 202 01 0 00 002767' GMTSTS: MOVEM T1,TPOPBL-2 ;STORE CHANNEL
2507 002333' 201 02 0 00 001016 MOVEI T2,.TFSTA ;FUNCTION
2508 002334' 202 02 0 00 002766' MOVEM T2,TPOPBL-3 ;SET IN BLOK
2509 002335' 334 02 0 00 002336' SKIPA T2,.+1 ;UUO ARG
2510 002336' 000005 002766' XWD 5,TPOPBL-3 ;5 WORDS,,ADDR
2511 002337' 047 02 0 00 000154 TAPOP. T2, ;ASK MON
2512 002340' 255 00 0 00 000000 JFCL ;(CAN'T POSSIBLY HAPPEN, SAID THE OPTIMIST)
2513 002341' 263 17 0 00 000000 POPJ P,
2514
2515 ;TYHELP -- TYPE HELP FILE SPECIFIED BY C(T1)
2516 ;WILL RESTORE AND RELEASE HISEG IF IT IS CURRENTLY GONE
2517
2518 002342' 621 00 0 00 004000 TYHELP: TLZ F,FL$FLG ;ASSUME NOT GONE
2519 002343' 332 00 0 00 000115 SKIPE .JBHRL ;BUT CHECK
2520 002344' 254 00 0 00 002347' JRST TYHLP0 ;IT'S THERE--GO ON
2521 002345' 260 17 0 00 000120' PUSHJ P,UPSCN ;OOPS--PUT IT BACK
2522 002346' 661 00 0 00 004000 TLO F,FL$FLG ;REMEMBER WHAT WE DID
2523 002347' 260 17 0 00 000000* TYHLP0: PUSHJ P,.HELPR## ;CALL HELPER TO TYPE THE HELP
2524 002350' 607 00 0 00 004000 TLNN F,FL$FLG ;CHECK THE FLAG
2525 002351' 263 17 0 00 000000 POPJ P, ;IT WAS ALREADY THERE
2526 002352' 254 00 0 00 000111' PJRST DWNSCN ;GO DISMISS IT
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 57
COPYMT MAC 23-FEB-77 11:47 ERROR HANDLER
2527 SUBTTL ERROR HANDLER
2528
2529 ;EHNDLR -- HANDLE ALL ERRORS
2530 ;THE ONLY CALL IS THRU THE ERROR. MACRO
2531
2532 002353' 260 17 0 00 002437' EHNDLR: PUSHJ P,SAVACS ;SAVE THE ACS
2533 002354' 200 05 1 17 000000 MOVE P1,@0(P) ;GET FLAGS AND ADDRESSES
2534 002355' 201 01 0 00 000077 EHND.0: MOVEI T1,"?" ;ASSUME AN ERROR
2535 002356' 603 05 0 00 000200 TLNE P1,EF$WRN ;CHECK WARNING
2536 002357' 201 01 0 00 000045 MOVEI T1,"%" ;YES
2537 002360' 603 05 0 00 000100 TLNE P1,EF$INF ;IF BOTH OFF NOW THEN INFO
2538 002361' 201 01 0 00 000133 MOVEI T1,"[" ;GOOD THING WE CHECKED
2539 002362' 603 05 0 00 000020 TLNE P1,EF$OPR ;OPERATOR SEE IT ALSO?
2540 002363' 260 17 0 00 002317' PUSHJ P,TYPDLR ;YES--TYPE THAT FIRST (NOTE: T1 IS PRESERVED)
2541 002364' 260 17 0 00 002326* PUSHJ P,.TCHAR## ;OUTPUT THE START OF MESSAGE
2542 002365' 205 01 0 00 435564 MOVSI T1,MY$PFX ;SET UP MY PREFIX
2543 002366' 544 01 0 05 000000 HLR T1,(P1) ;GET MESSAGE PREFIX
2544 002367' 260 17 0 00 002157* PUSHJ P,.TSIXN## ;OUTPUT THE PREFIXES
2545 002370' 260 17 0 00 000322* PUSHJ P,.TSPAC## ;AND A SPACE
2546 002371' 550 01 0 05 000000 HRRZ T1,(P1) ;GET STRING ADDRESS
2547 002372' 260 17 0 00 002327* PUSHJ P,.TSTRG## ;SEND IT
2548 002373' 200 01 0 00 002601' MOVE T1,SAVAC+T1 ;GET ORIGINAL T1 IN CASE TYPEOUT DESIRED
2549 002374' 200 02 0 00 002602' MOVE T2,SAVAC+T2 ;ORIGINAL T2 IN CASE .TOLEB
2550 002375' 135 03 0 00 003524' LDB T3,[POINT 5,P1,17] ;GET TYPED OUT DESIRED
2551 002376' 303 03 0 00 000007 CAILE T3,MX$ERR ;CHECK FOR IN-RANGE
2552 002377' 201 03 0 00 000000 MOVEI T3,EF$NOP ;NO--MAKE IT CPOPJ
2553 002400' 260 17 1 03 002417' PUSHJ P,@ERRTAB(T3) ;CALL THE ROUTINE
2554 002401' 603 05 0 00 000040 TLNE P1,EF$NCR ;IF NO CRLF THEN DON'T CLOSE INFO
2555 002402' 254 00 0 00 002410' JRST EHND.1 ;NO--DON'T CHECK
2556 002403' 201 01 0 00 000135 MOVEI T1,"]" ;PREPARE TO CLOSE INFO
2557 002404' 603 05 0 00 000100 TLNE P1,EF$INF ;CHECK FOR INFO
2558 002405' 260 17 0 00 002364* PUSHJ P,.TCHAR## ;SEND INFO CLOSE
2559 002406' 607 05 0 00 000040 TLNN P1,EF$NCR ;NO CARRIAGE RETURN?
2560 002407' 260 17 0 00 002316* PUSHJ P,.TCRLF## ;YES--SEND ONE
2561 002410' 603 05 0 00 000400 EHND.1: TLNE P1,EF$FTL ;NOW CHECK FATAL
2562 002411' 254 00 0 00 002427' JRST ERRFTL ;YES--GO DIE
2563 002412' 202 00 0 00 002600' MOVEM F,SAVAC+F ;NO--BUT PUT F INTO SAVAC SO UPDATED
2564 ;FLAGS WILL BE SEEN
2565 ;FALL INTO RESACS
2566
2567 ;RESACS -- RESTORE ALL ACS FROM SAVAC AREA
2568 ; PUSHJ P,RESACS
2569 ; *ACS RESTORED FROM SAVAC*
2570
2571 002413' 202 17 0 00 002617' RESACS: MOVEM 17,SAVAC+17 ;SAVE 17 TO RESTORE INTO IT
2572 002414' 205 17 0 00 002600' MOVSI 17,SAVAC
2573 002415' 251 17 0 00 000017 BLT 17,17 ;REGISTERS ARE RESTORED
2574 002416' 263 17 0 00 000000 POPJ P, ;RETURN
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 58
COPYMT MAC 23-FEB-77 11:47 ERROR HANDLER
2575 002417' 000000 001545* ERRTAB: .POPJ## ;CODE 0 -- NO ACTION
2576 002420' 000000 002047* .TDECW## ;CODE 1 -- TYPE T1 IN DECIMAL
2577 002421' 000000 000625* .TOCTW## ;CODE 2 -- TYPE T1 IN OCTAL
2578 002422' 000000 002367* .TSIXN## ;CODE 3 -- TYPE T1 IN SIXBIT
2579 002423' 000000 000000* .TPPNW## ;CODE 4 -- TYPE T1 AS PPN
2580 002424' 000000 002372* .TSTRG## ;CODE 5 -- T1 POINTS TO ASCIZ STRING
2581 002425' 000000 002031* .TFBLK## ;CODE 6 -- T1 POINTS AT FDB
2582 002426' 000000 000000* .TOLEB## ;CODE 7 -- T1 POINTS AT OPEN BLOCK
2583 ; -- T2 POINTS AT LOOKUP BLOCK
2584
2585 ;HERE TO DIE--
2586
2587 002427' 260 17 0 00 000220' ERRFTL: PUSHJ P,CLSLOG ;CLOSE THE LOG IF WE ARE USEING IT
2588 002430' 047 00 0 00 000000 RESET ;KILL ALL FILES
2589 002431' 200 17 0 00 000022' MOVE P,INIPDP ;RESET PDL
2590 002432' 260 17 0 00 000120' PUSHJ P,UPSCN ;MAKE SURE SCAN IS THERE
2591 002433' 336 00 0 00 002453' SKIPN OFFSET ;CCL ENTRY
2592 002434' 331 00 0 00 002444' SKIPL ISCNVL ;OR A RECOGNIZED COMMAND
2593 002435' 260 17 0 00 400132* PUSHJ P,.MONRT## ;YES--RETURN TO MONITOR
2594 002436' 254 00 0 00 000013' JRST RESTRT ;GO CONTINUE
2595
2596 ;SAVAC -- SAVE ALL ACS
2597 ;CALL -- PUSHJ P,SAVACS
2598 ; *ACS SAVED IN SAVAC* BEWARE!!
2599
2600 002437' 202 17 0 00 002617' SAVACS: MOVEM 17,SAVAC+17 ;SAVE ONE
2601 002440' 201 17 0 00 002600' MOVEI 17,SAVAC
2602 002441' 251 17 0 00 002616' BLT 17,SAVAC+16
2603 002442' 200 17 0 00 002617' MOVE 17,SAVAC+17
2604 002443' 263 17 0 00 000000 POPJ P, ;ACS ARE SAVED
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 59
COPYMT MAC 23-FEB-77 11:47 STORAGE
2605 SUBTTL STORAGE
2606
2607 ;STORAGE THAT IS CONSTANT BETWEEN RUNS
2608
2609 002444' U (ISCNVL) ;VALUE RETURNED BY .ISCAN
2610 002445' U (TLDVER) ;-1 WHEN VERSION HAS BEEN TYPED ON TTY
2611 002446' U (SAVRUN) ;-1 WHEN RUN UUO ARGS SAVED
2612 002447' U (SGDEV) ;SAVEGET DEVICE NAME
2613 002450' U (SGNAM) ;SAVEGET PROGRAM NAME
2614 002451' U (SGLOW) ;SAVEGET LOW SEGMENT NAME
2615 002452' U (SGPPN) ;SAVEGET PPN
2616 002453' U (OFFSET) ;STARTING OFFSET (REMEMBER FOR .ISCAN)
2617
2618 002454' FW$ZER==.
2619 002454' U (LOGSPC,.FXLEN) ;SPACE FOR LOG FILE SPEC
2620 002506' U (ODVNAM) ;REAL NAME (FROM DEVNAM)
2621 002507' U (IDVNAM) ;REAL NAME (FROM DEVNAM)
2622 002510' U (GOTIME) ;MSTIME FOR START
2623 002511' U (GORUNT) ;RUNTIM FOR START
2624 002512' U (LSTBFZ) ;LAST BUFFER SIZE SEEN WHEN DSKTOTAPE
2625 002513' U (TEMP) ;VERY TEMPORARY STORAGE
2626 IFN FT$DEB,<
2627 U (BUFZER) ;COUNT TIMES MON CLEARED BUFFERS WITH UU.IBC ON
2628 >;END IFN FT$DEB
2629 002514' U (IBHR,3) ;INPUT BHR
2630 002517' U (OBHR,3) ;OUTPUT BHR
2631 002522' U (LBHR,3) ;LPT BHR
2632 002525' U (GBHR,3) ;LOG FILE BHR
2633 002530' U (PDLIST,LN$PDL) ;ALLOCATE SPACE FOR PUSH DOWN LIST
2634 002600' U (SAVAC,20) ;AC SAVE BLOCK WHEN IN ERROR HANDLER
2635 002620' U (OPNBLK,3) ;OPEN BLOCK
2636 002623' U (LKPBLK,.RBTIM+1) ;LOOKUP/ENTER BLOCK
2637 002661' U (PTHBLK,^D9) ;PATH BLOCK (NOT USED, BUT CAN'T USE .STOPN)
2638 002672' U (PRMPDL,LN$PRM) ;PARAM PUSHDOWN LIST
2639 002766' BLOCK 3 ;***DO NOT TOUCH***USED BY TAPOP.
2640 002771' U (TPOPBL,2) ;TAPOP. ARG BLOCK
2641 002773' FW$STS==.
2642 002773' ERRCNT:
2643 002773' U (INPERS) ;INPUT ERROR COUNT
2644 002774' U (OUTERS) ;OUTPUT ERROR COUNT
2645 002775' U (RECTOT) ;RECORD TOTAL
2646 002776' U (FILTOT) ;FILE TOTAL
2647 002776' LW$STS==.-1
2648
2649 002777' SCN$FZ==. ;FIRST WORD CLEARED FOR SCAN
2650 002777' U (INPSPC,LN$FDB) ;INPUT SPEC STORAGE
2651 003030' INPSPE==.-1
2652 003031' U (OUTSPC,LN$FDB) ;OUTPUT SPEC SPACE
2653 003062' OUTSPE==.-1 ;END OF OUTPUT SPEC SPACE
2654 003063' SWT$FO==. ;FIRST SWITCH WORD (SET TO -1 BY CLRANS)
2655 003063' U (UCOMNT,^D28) ;FOR /COMMENT:"COMMENT STRING" FOR LOG FILE
2656 IFN FT$TST,<
2657 003117' U (TSTDEN) ;SAVE DENSITY HERE
2658 003120' U (TESTFL) ;/TAPTST FLAG
2659 003121' U (NUMTRY) ;/RETRY:N
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 59-1
COPYMT MAC 23-FEB-77 11:47 STORAGE
2660 003122' U (RPETFL) ;/REPEAT:N
2661 >;END IFN FT$TST
2662 003123' U (RTRYFL) ;RETRY FLAG
2663 003124' U (TIMEFL) ;/TIME FLAG
2664 003125' U (RPTFLG) ;REPEAT FLAG
2665 003126' U (IFTYFL) ;/IFTYP FLAG
2666 003127' BFRSIZ: ;**DO NOT SEPARATE
2667 003127' U (NIBUFS) ;# INPUT BUFFERS
2668 003130' U (NOBUFS) ;# OUTPUT BUFFERS
2669 ;**END DO NOT SEPARATE
2670 003131' U (BUFSIZ) ;/BUFSIZ:N
2671 003132' U (ERRFLG) ;/ERROR:CONTIN OR /ERROR:QUERY
2672 003133' U (MODFLG) ;/MODE:MODE
2673 003134' U (MODES,2) ;/MODE:MODE FOR INPUT AND OUTPUT
2674 003134' INPMOD=MODES ;INPUT/MODE:MODE
2675 003135' OUTMOD=MODES+1 ;OUTPUT/MODE:MODE
2676 003135' SWT$LO==.-1
2677 003135' SCN$LZ==.-1
2678 003135' LW$ZER==.-1
2679 LIT$ ;OUT GO THE LITERALS
2680 000000' CMTEND::END COPYMT
NO ERRORS DETECTED
HI-SEG. BREAK IS 400743
PROGRAM BREAK IS 003526
CPU TIME USED 01:24.925
14K CORE USED
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE S-1
COPYMT MAC 23-FEB-77 11:47 SYMBOL TABLE
ACT 000013 CPDM$0 001161' E$$CER 400006' FL$232 000020 SPD
ACTABL 001270' CPDM$1 001164' E$$COD 001701' FL$BAT 010000 SPD
ACTDIS 000661' CPDM$A 001147' E$$CUS 400174' FL$BKT 000400 SPD
AD.BFS 000006 SPD CPMD$0 001230' E$$DIF 001257' FL$CPY 100000 SPD
AD.BFZ 004000 SPD CPMD$1 001234' E$$DNM 001711' FL$DSI 000100 SPD
AD.MTN 177777 SPD CPMD$2 001242' E$$ID9 000560' FL$DSO 000040 SPD
AD.RPT 000001 SPD CPMD0A 001232' E$$IM7 000575' FL$EOT 040000 SPD
AD.TRY 000004 SPD CPY232 001112' E$$ISO 400563' FL$FLG 004000 SPD
AD.TST 000000 SPD CPYDMP 001102' E$$OSI 400560' FL$ITY 000200 SPD
AIN 400442' CPYDTM 001144' E..DNM 400211' FL$LOG 000004 SPD
ALEN 400456' CPYEF0 001355' EF$DEC 000001 SPD FL$LPO 020000 SPD
ALEN2 400465' CPYEFA 001353' EF$ERR 000000 SPD FL$MRG 400000 SPD
AOUT 400450' CPYEOF 001333' EF$FIL 000006 SPD FL$MTP 002000 SPD
ASKCON 002176' CPYHOL 400503' EF$FTL 000400 SPD FL$OPN 000010 SPD
ASKEOO 001365' CPYMT0 000043' EF$INF 000100 SPD FL$OUT 200000 SPD
ATSIGN 000020 SPD CPYMT1 000076' EF$LEB 000007 SPD FL$TSN 000002 SPD
BF.IBC 200000 000000 SPD CPYMT9 000073' EF$MAX 000017 SPD FL$TST 001000 SPD
BFOTST 001561' CPYMTD 001212' EF$NCR 000040 SPD FLCRLF 002255'
BFRSIZ 003127' DANTHR 000643' EF$NOP 000000 SPD FN$BSP 000001 SPD
BFTSML 001207' DEFMOD 000605' EF$OCT 000002 SPD FN$CON 000007 SPD
BKTERR 002171' DEN160 000564' EF$OPR 000020 SPD FN$CPY 000006 SPD
BUFSIZ 003131' DEN200 000557' EF$PPN 000004 SPD FN$EOF 000003 SPD
BUFSZ7 400605' DEN556 000557' EF$SIX 000003 SPD FN$EOL 777777 777776 SPD
BUFSZ9 400610' DEN625 000564' EF$STR 000005 SPD FN$INP 777777 777777 SPD
C 000010 DENDIS 000551' EF$WRN 000200 SPD FN$REW 000004 SPD
CHKBAT 400162' DENSTR 001533' EHND.0 002355' FN$SKP 000002 SPD
CHKC.1 400151' DEVCHR 047000 000004 EHND.1 002410' FN$UNL 000005 SPD
CHKC.2 400162' DEVNAM 047000 000064 EHNDLR 002353' FS$INP 000200 000000 SPD
CHKCMD 400134' DEVTYP 047000 000053 ENDTST 001503' FS$NVL 001000 000000 SPD
CHKLOG 000143' DF$BFZ 002000 SPD ENTER 077000 000000 FS$OUT 000400 000000 SPD
CHRLG0 000177' DF$TRY 000004 SPD EOTDSP 001406' FS$SPL 000100 000000 SPD
CHRLG1 000203' DO.BSP 000671' EOTFIN 001422' FS$XTR 002000 000000 SPD
CHRLOG 000173' DO.CON 001052' EOTHLP 001375' FS.LRG 200000 000000 SPD
CHROUT 000170' DO.CPY 001054' EOTOPT 001401' FS.NCM 004000 000000 SPD
CKIBUF 001262' DO.DUN 000723' EOTREW 001420' FS.NFS 400000 000000 SPD
CKISM1 400207' DO.EOF 000671' EOTUNL 001415' FS.NUE 100000 000000 SPD
CKISMT 400176' DO.IT 000634' EOTXIT 001413' FS.VRQ 040000 000000 SPD
CLFLOG 000155' DO.REW 000671' ERL.L 000003 SPD FT$DEB 000000 SPD
CLGNTS 000157' DO.SKP 000671' ERL.T 400214' FT$MTP 777777 777777 SPD
CLOSE 070000 000000 DO.UNL 000671' ERLCON 000001 SPD FT$OPT 777777 777777 SPD
CLRANS 400467' DODUN1 000732' ERLIGN 000002 SPD FT$TST 777777 777777 SPD
CLRBFI 051440 000000 DOLOOP 000671' ERLQUE 000003 SPD FULCON 001424'
CLRFIL 400516' DOLOP1 000672' ERRCHK 000741' FULTAP 001357'
CLSLG2 000224' DOLOP2 000701' ERRCNT 002773' FW$STS 002773' SPD
CLSLOG 000220' DOLOP3 000702' ERRFLG 003132' FW$ZER 002454' SPD
CMDLST 400104' DOMTAP 400113' ERRFTL 002427' FX.DEN 070000 SPD
CMTEDT 000040 SPD DOOPEN 001644' ERRMES 000753' FX.PAR 004000 SPD
CMTEND 003526' INT DOPRMP 400106' ERRSUM 001010' GBHR 002525'
CMTMIN 000000 SPD DOTPOP 000611' ERRTAB 002417' GCHNWL 002311'
CMTVER 000007 SPD DUMP0 002215' ETAPOP 000614' GETOPT 002070'
CMTWHO 000000 SPD DV.AVL 000040 000000 SPD EVNPAR 000543' GETSEG 047000 000040
COPDUN 001323' DV.DSK 200000 000000 SPD EXIT 047000 000012 GETSTS 062000 000000
COPYIT 001062' DV.MTA 000020 000000 SPD F 000000 GETTAB 047000 000041
COPYMT 000000' DV.TTY 000010 000000 SPD FILTOT 002776' GMTSTS 002332'
CORE 047000 000011 DWNSCN 000111' FIXWLK 002063' GORUNT 002511'
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE S-2
COPYMT MAC 23-FEB-77 11:47 SYMBOL TABLE
GOTIME 002510' LOGSPC 002454' N$DSKB 000006 SPD P2 000006
HALT 254200 000000 LOLOC$ 400743' SPD N$EOTO 000005 SPD P3 000007
HILOC$ 000111' SPD LOOKUP 076000 000000 N$LOGB 000002 SPD P4 000010
IBHR 002514' LPTC 000003 SPD N$OPTN 000007 SPD PARDIS 000541'
IDVNAM 002507' LPTCLS 000460' N$TSTB 000001 SPD PD. 000000 SPD
IFTCHR 000774' LPTSPC 001724' N$TYIO 000005 SPD PD.BFS 000006 SPD
IFTYFL 003126' LSTBFZ 002512' NIBUFS 003127' PD.BFZ 002000 SPD
ILLIDV 400171' LSTR 002271' NOBUFS 003130' PD.LGF 000001 SPD
ILLODV 400170' LSTRL 002273' NOOP 300000 SPD PD.MTN 177777 SPD
IN 056000 000000 LUP32 001125' NUMTRY 003121' PD.RPT 000001 SPD
INCHRS 051100 000000 LW$STS 002776' SPD OBHR 002517' PD.TRY 000004 SPD
INCHRW 051000 000000 LW$ZER 003135' SPD OCHERR 001577' PD.TST 000000 SPD
INDMOD 000601' MOD.L 000003 SPD OCHFIX 001617' PDLIST 002530'
INIPDP 000022' MOD.T 400217' OCHIEC 001574' PJRST 254000 000000
INPC 000001 SPD MODBIN 000001 SPD ODVNAM 002506' PJSP 265000 000000
INPCLS 000433' MODES 003134' OFFSET 002453' PLP 000012
INPERS 002773' MODFLG 003133' OMTEF1 001321' PLPINI 000104'
INPMOD 003134' MODIND 000002 SPD OMTEOF 001314' POP4J 002164'
INPSPC 002777' MODISP 000571' OP$DMP 002204' PRBDUN 002164'
INPSPE 003030' SPD MODSEV 000003 SPD OP$DSP 002112' PRBLUP 002151'
IO.BKT 040000 SPD MODSVN 000574' OP$EXI 002126' PRBNAM 002166'
IO.DER 200000 SPD MSTIME 047000 000023 OP$G 002124' PRBNXT 002160'
IO.DTE 100000 SPD MT.7TR 000020 SPD OP$HLP 002077' PRMPDL 002672'
IO.EOF 020000 SPD MT.DEN 000007 SPD OP$IGN 002121' PRMPT0 400112'
IO.EOT 002000 SPD MTBSF. 072000 000017 OP$SKP 002130' PRMSTO 400552'
IO.ERR 740000 SPD MTBSR. 072000 000007 OPEN 050000 000000 PTHBLK 002661'
IO.IMP 400000 SPD MTCHR. 047000 000112 OPENER 001700' RECTOT 002775'
IO.NRC 000100 SPD MTEOF. 072000 000003 OPENIO 001627' RELEAS 071000 000000
IO.UWC 000020 SPD MTPWAT 000717' OPINOB 000507' RESACS 002413'
ISCNBL 400044' MTREW. 072000 000001 OPNBLK 002620' RESET 047000 000000
ISCNVL 002444' MTSCNB 400072' OPNI$1 000421' RESTRT 000013'
JB.LBT 000200 000000 SPD MTSKF. 072000 000016 OPNINP 000400' RESTRY 001540'
L 000011 MTSKR. 072000 000006 OPNO$1 000347' RPETFL 003122'
LBHR 002522' MTSWD 400435' OPNO$2 000366' RPTFLG 003125'
LBUFO 002265' MTSWL 000005 SPD OPNOUT 000326' RTRYFL 003123'
LCHR 002261' MTSWM 400430' OPONOB 000500' RUNSVD 000013'
LCHRC 002263' MTSWN 400416' OPSWD 400407' RUNTIM 047000 000027
LCRLF 002256' MTSWP 400423' OPSWL 000007 SPD SAVAC 002600'
LDMLUP 002226' MTUNL. 072000 000011 OPSWM 400400' SAVACS 002437'
LDMPBF 002220' MTWAT. 072000 000000 OPSWN 400362' SAVRUN 002446'
LHEDER 002277' MX$ERR 000007 SPD OPSWP 400371' SCN$FZ 002777' SPD
LKENER 001713' MX$NPL 000010 SPD OPTLST 002103' SCN$LZ 003135' SPD
LKPBLK 002623' MX. 000000 SPD OSCNBL 400064' SCNCMD 400000'
LN$FDB 000032 SPD MX.BFS 000024 SPD OUT 057000 000000 SCNTS0 400026'
LN$PDL 000050 SPD MX.BFZ 010000 SPD OUTC 000002 SPD SCNTS1 400023'
LN$PRM 000074 SPD MX.LGF 000032 SPD OUTCHR 051040 000000 SCNTST 400013'
LOCLUP 002240' MX.MTN 177777 SPD OUTCLS 000447' SEG$ 000000 SPD
LOCT 002246' MX.RPT 177777 SPD OUTDUN 000642' SEGAGN 000125'
LOCTF0 002234' MX.TRY 000144 SPD OUTERS 002774' SETCH1 000525'
LOCTFW 002232' MX.TST 177777 SPD OUTMOD 003135' SETCHR 000516'
LOGC 000004 SPD MY$NAM 435760 715564 SPD OUTPUT 067000 000000 SETSTS 060000 000000
LOGO.2 000241' MY$PFX 435564 SPD OUTSPC 003031' SGDEV 002447'
LOGO.3 000276' N 000007 OUTSPE 003062' SPD SGLOW 002451'
LOGO.4 000301' N$BUFS 000002 SPD P 000017 SGNAM 002450'
LOGOPN 000231' N$CMDS 000002 SPD P1 000005 SGPPN 002452'
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40) MACRO %50A(441)-2 13:56 23-FEB-77 PAGE S-3
COPYMT MAC 23-FEB-77 11:47 SYMBOL TABLE
STBUFZ 000464' TYSLSH 002325' .OSCAN 400043' EXT
STOSWA 400525' UCOMNT 003063' .POP4T 002164' EXT
STOSWB 400531' UPSCN 000120' .POPJ 002417' EXT
STOSWT 400517' USETI 074000 000000 .POPJ1 400204' EXT
STRL.2 000164' UU.IBC 020000 000000 SPD .PSH4T 002140' EXT
STRLOG 000162' UU.SOE 010000 000000 SPD .RBCNT 000000 SPD
STSBZ0 400577' WAITCK 000712' .RBEXT 000003 SPD
STSTBZ 400566' WLDERR 001703' .RBTIM 000035 SPD
SWT$FO 003063' SPD WLDNMT 001710' .RECOR 000074' EXT
SWT$LO 003135' SPD WRTLOK 000473' .SAVE1 001010' EXT
SWTD 400332' XCTIO 001757' .SAVE2 002220' EXT
SWTL 000030 SPD XCTIO0 002023' .SAVE3 001631' EXT
SWTM 400302' XCTIOD 001765' .SAVE4 001430' EXT
SWTN 400222' XCTIOE 001771' .SGDEV 000011 SPD
SWTP 400252' ZZ 000007 SPD .SGLOW 000017 SPD
SWTS0A 400547' $CLOSE 000213' .SGNAM 000000 SPD
SWTST0 400550' $FL232 000020 000000 SPD .SGPPN 000007 SPD
T1 000001 $FLITY 000200 000000 SPD .STOPB 001642' EXT
T2 000002 $LOGSW 400506' .SWASQ 400305' EXT
T3 000003 %%CPYM 000700 000040 SIN .SWDEC 400433' EXT
T4 000004 %%JOBD 043000 000443 SIN .TCHAR 002405' EXT
TAPOP. 047000 000154 %%MACT 000100 000024 SIN .TCOLN 001437' EXT
TELCON 002132' %%SCNM 000700 000203 SIN .TCRLF 002407' EXT
TELERS 000742' %%UUOS 101100 000225 SIN .TDECW 002420' EXT
TELPRB 002140' ..FL 000001 SPD .TFBLK 002425' EXT
TEMP 002513' .ALCBF 002214' EXT .TFD80 000003 SPD
TEST.2 001431' .BFADR 000000 SPD .TFDEN 001001 SPD
TEST4 001521' .BFCTR 000002 SPD .TFM7B 000004 SPD
TESTFL 003120' .BFPTR 000001 SPD .TFM7T 000005 SPD
TESTIT 001430' .CHBEL 000007 SPD .TFM8B 000002 SPD
THRTY2 001114' .CHCRT 000015 SPD .TFM9T 000001 SPD
TIMEFL 003124' .CHLFD 000012 SPD .TFMOD 001007 SPD
TIMSTM 000313' .CLRFL 400515' EXT .TFPAR 001005 SPD
TLDVER 002445' .DECNW 400541' EXT .TFSET 001000 SPD
TPOPBL 002771' .FILIN 400510' EXT .TFSTA 001016 SPD
TPOPJ 002136' .FREBF 000441' EXT .TOCTW 002421' EXT
TPOPJ1 002135' .FXDEV 000000 SPD .TOLEB 002426' EXT
TSCNBL 400052' .FXEXT 000003 SPD .TPPNW 002423' EXT
TSTBHR 000436' .FXLEN 000032 SPD .TSCAN 400115' EXT
TSTBUF 001543' .FXMOD 000004 SPD .TSFIL 000000 SPD
TSTDEN 003117' .FXNAM 000001 SPD .TSIXN 002422' EXT
TY.MAN 400000 000000 SPD .FXNMM 000002 SPD .TSPAC 002370' EXT
TY.SPL 000020 000000 SPD .GTLIM 000040 SPD .TSREC 000001 SPD
TYFEET 002327' .GTSPC 400513' EXT .TSTRG 002424' EXT
TYHELP 002342' .HELPR 002347' EXT .TTIME 001031' EXT
TYHLP0 002347' .IOASC 000000 SPD .TTIMN 000320' EXT
TYICHK 000755' .IOBIN 000014 SPD .TVERW 000040' EXT
TYIDSP 001001' .IODMP 000017 SPD .TYOCH 000324' EXT
TYIIGN 001006' .ISCAN 000027' EXT
TYIKIL 001015' .JBHRL 000115
TYIPAU 001012' .JBVER 000137
TYISTS 001021' .MONRT 002435' EXT
TYIT.2 001043' .OPBUF 000002 SPD
TYITOT 001034' .OPDEV 000001 SPD
TYPDLR 002317' .OPMOD 000000 SPD
ACT 114# 114 1464 1466 1467 1468 1469 1470 1492 1502
ACTABL 1492 1502 1817#
ACTDIS 1466 1473 1477#
AD.BFS 675
AD.BFZ 677
AD.MTN 676
AD.RPT 679
AD.TRY 680
AD.TST 681
AIN 506 531 869#
ALEN 875 881 885#
ALEN2 886 892#
AOUT 506 531 879#
ASKCON 2365# 2370
ASKEOO 1889# 1900 1916 1924
ATSIGN 145# 2132 2149
BF.IBC 1244 1274
BFOTST 2030 2036#
BFRSIZ 2666#
BFTSML 1739 1748#
BKTERR 2267 2360#
BUFSIZ 716 810 1000 1228 1234 1237 1309 2670#
BUFSZ7 998 1007#
BUFSZ9 999 1010#
C 117# 920 954
CHKBAT 428 572 605#
CHKC.1 588 595#
CHKC.2 594 604#
CHKCMD 417 579#
CHKLOG 421 431 1064#
CHRLG0 1104# 1114
CHRLG1 1103 1108#
CHRLOG 1089 1100# 1194
CHROUT 494 1097#
CKIBUF 1714 1725 1755 1804#
CKISM1 630 635#
CKISMT 475 569 580 583 626#
CLFLOG 1074# 1077 2008
CLGNTS 1077# 1127 1128 2007
CLRANS 505 530 897#
CLRFIL 505 530 932#
CLSLG2 1115 1129#
CLSLOG 423 1125# 2587
CMDLST 492 537# 542
CMTEDT 24# 29 35
CMTEND 2680#
CMTMIN 25# 29
CMTVER 23# 29 35
CMTWHO 26# 29
COPDUN 1655 1713 1754 1850#
COPYIT 1654# 1677 1869 1880 1929
COPYMT 350# 2680
CPDM$0 1725# 1741
CPDM$1 1728#
CPDM$A 1714# 1718 1720
CPMD$0 1762 1768#
CPMD$1 1774#
CPMD$2 1775 1781#
CPMD0A 1771# 1793
CPY232 1660 1680#
CPYDMP 1670# 1681
CPYDTM 1649 1711# 1746 1928
CPYEF0 1873 1874 1879#
CPYEFA 1865 1877#
CPYEOF 1658 1715 1726 1756 1861#
CPYHOL 871 914#
CPYMT0 390 397# 425
CPYMT1 411 428#
CPYMT9 423# 433
CPYMTD 1651 1753# 1772 1871
DANTHR 1461# 1501 1511 1519 1523 1851 1857 1876
DEFMOD 1406 1421#
DEN160 1390 1400#
DEN200 1387 1393#
DEN556 1388 1392#
DEN625 1391 1399#
DENDIS 1357 1386#
DENSTR 1956 2011#
DF$BFZ 128 1229 1310
DF$TRY 135 1945
DO.BSP 1482 1489#
DO.CON 1488 1640#
DO.CPY 1487 1646#
DO.DUN 1463 1475 1529# 1676 1712 1758 1797 1863 1878
DO.EOF 1484 1489#
DO.IT 422 573 1453#
DO.REW 1485 1490#
DO.SKP 1483 1489#
DO.UNL 1486 1490#
DODUN1 1533 1536#
DOLOOP 1491#
DOLOP1 1492# 1500 1521
DOLOP2 1491 1501#
DOLOP3 1502# 1510 1522
DOMTAP 386 556#
DOOPEN 2127# 2166
DOPRMP 496 546#
DOTPOP 1361 1374 1383 1434#
DUMP0 2376 2385#
DV.AVL 631
DV.DSK 635
DV.MTA 628 2164
DV.TTY 629 636
DWNSCN 418 429 1027# 2526
E$$CER 448# 459 560 563
E$$COD 1338 1346 2159#
E$$CUS 593 617#
E$$DIF 1765 1778 1795#
E$$DNM 2169#
E$$ID9 1394#
E$$IM7 1411# 1417
E$$ISO 948 981#
E$$OSI 944 978#
E..DNM 476 570 637#
EF$DEC 228# 1548 1750 1984 1987 2060
EF$ERR 214# 1057 1796 2174
EF$FIL 233# 2160 2170
EF$FTL 215# 449 589 615 618 634 638 980 983 1320 1395 1402 1412 1750
2160 2170 2561
EF$INF 217# 1548 1602 1940 1984 1987 2364 2537 2557
EF$LEB 234#
EF$MAX 220# 240
EF$NCR 218# 1443 1548 1940 1987 2060 2174 2241 2554 2559
EF$NOP 238# 2552
EF$OCT 229# 1057 1443 2174 2241
EF$OPR 219# 1318 1320 1887 2539
EF$PPN 231#
EF$SIX 230# 615 634 638 980 983 1318 1940
EF$STR 232#
EF$WRN 216# 994 1318 1443 1606 1887 2060 2241 2535
EHND.0 2534#
EHND.1 2555 2561#
EHNDLR 448 589 614 617 633 637 979 982 993 1056 1317 1319 1394 1401
1411 1442 1547 1601 1605 1749 1795 1886 1939 1983 1986 2059 2159 2169
2173 2240 2363 2532#
ENDTST 1978#
EOTDSP 1896 1909#
EOTFIN 1920 1923#
EOTHLP 1897# 1911
EOTOPT 1894 1902# 1907
EOTREW 1912 1921#
EOTUNL 1913 1918#
EOTXIT 1910 1915#
ERL.L 683# 684 684# 685 685# 686 686# 746 818
ERL.T 683# 746 818
ERLCON 684# 770 825
ERLIGN 685# 2238 2311
ERLQUE 686# 2269
ERRCHK 1545# 1599
ERRCNT 1546 2232 2642#
ERRFLG 722 811 2235 2268 2312 2314 2671#
ERRFTL 2180 2371 2562 2587#
ERRMES 1549 1557#
ERRSUM 1589 1598#
ERRTAB 2553 2575#
ETAPOP 1441#
EVNPAR 1378 1379#
F 103# 103 398 556 581 584 585 586 587 596 600 609 724 737
813 869 882 887 889 905 943 947 975 1066 1078 1098 1100 1106
1111 1113 1122 1125 1131 1188 1197 1210 1213 1224 1226 1246 1252 1260
1268 1293 1494 1498 1504 1508 1529 1532 1534 1538 1553 1566 1567 1595
1624 1640 1641 1647 1650 1652 1659 1673 1766 1779 1840 1844 1850 1855
1862 1864 1868 1870 1875 1877 1927 1937 2005 2229 2248 2262 2339 2344
2360 2375 2474 2482 2518 2522 2524 2563
FILTOT 1626 1866 2646#
FIXWLK 2227 2276#
FL$232 179# 179 180 1213 1226 1260 1659
FL$BAT 166# 166 609 1566 2262 2474 2482
FL$BKT 174# 174 2360
FL$CPY 162# 162 869 975
FL$DSI 177# 177 584 585 586 587 596 1252 1268 1647 1864 1927
FL$DSO 178# 178 581 585 586 587 600 1210 1224 1532 1640 1650 1870
FL$EOT 163# 163 1534 1673 1766 1779 1855 1862 1875 1877
FL$FLG 167# 167 2339 2344 2518 2522 2524
FL$ITY 175# 175 176 1567 1595
FL$LOG 182# 182 1066 1098 1111 1113 1122 1125 1131 2005 2229 2248
FL$LPO 165# 165 1529 2375
FL$MRG 160# 160 1532 1641 1844 1850 1868
FL$MTP 169# 169 556 869 905 1494 1504 1538 1566 1840
FL$OPN 181# 181 1246 1293 1498 1508 1652
FL$OUT 161# 161 882 887 889 943 947
FL$TSN 183# 183 1078 1100 1106 1188 1197
FL$TST 172# 172 1553 1624 1937
FLCRLF 2403 2426#
FN$BSP 194# 715 849
FN$CON 194# 719 974
FN$CPY 194# 720 914 973
FN$EOF 194# 721 769 850 860
FN$EOL 197# 872 1517 1853
FN$INP 196# 879 907
FN$REW 194# 732 780 851 861
FN$SKP 194# 733 852
FN$UNL 194# 738 786 853 863
FS$INP 205# 743 744 767 768 945
FS$NVL 203# 745 756 762 769 780 786 855 856 858 860 861 863 949
FS$OUT 204# 941
FS$SPL 206# 741 749 765 773 821 828 939
FS$XTR 201# 739 743 744 757 763 767 768 781 854 857 859 862 952
FS.LRG 739 740 741 742 743 744 745 746 747 748 749 750 751 752
753 754 755 756 757 758 759 760 761 762 763 764 765 766
767 768 769 770 771 772 773 774 775 776 777 778 779 780
781 782 783 784 785 786 817 818 819 820 821 822 823 824
825 826 827 828 829 830 854 855 856 857 858 859 860 861
862 863
FS.NCM 741 749 765 773 821 828
FS.NFS 741 749 765 773 821 828
FS.NUE 740 742 746 747 748 750 751 752 753 754 755 758 759 760
761 764 766 770 771 772 774 775 776 777 778 779 782 783
784 785 817 818 819 820 822 823 824 825 826 827 829 830
FS.VRQ 739 743 744 757 763 767 768 781
FT$DEB 131 1993 2035 2626
FT$MTP 130 168 385 522 538 554 833 869 904 1493 1503 1513 1537 1566
1839 1846
FT$OPT 132 450 481 485 511 790
FT$TST 133 134 171 409 427 442 455 678 705 710 729 734 753 758
777 782 986 1364 1552 1932 2656
FULCON 1909 1926#
FULTAP 1672 1745 1883#
FW$STS 1456 1457 2641#
FW$ZER 374 375 2618#
FX.DEN 987 1355
FX.PAR 1362
GBHR 1102 1104 1132 1164 1185 2632#
GCHNWL 1603 1892 2284 2367 2473#
GETOPT 2272 2281# 2292 2318 2387
GMTSTS 2253 2506#
GORUNT 404 1618 2623#
GOTIME 401 1611 2622#
HILOC$ 438# 1021
IBHR 1250 1272 1275 1280 1661 1664 1666 1668 1684 1687 1705 1706 1707 1716
1717 1727 1730 1733 1737 1760 1771 1781 1784 1787 1790 1804 2391 2392
2629#
IDVNAM 416 568 582 591 2621#
IFTCHR 1576 1582# 1587
IFTYFL 2665#
ILLIDV 415 567 613#
ILLODV 407 473 612#
INDMOD 1407 1416#
INIPDP 378# 1055 2589
INPC 147# 1250 1254 1258 1264 1265 1278 1279 1343 1497 1507 1520 1657 1807
1819 1820 1823 1824 1831 1832 1835 1836 1847 2233 2263
INPCLS 1278# 1531 1861
INPERS 2643#
INPMOD 888 1261 2674#
INPSPC 413 447 457 460 463 464 559 562 564 597 599 613 874 1248
1257 1341 1344 2245 2650#
INPSPE 2651#
IO.BKT 2266 2334 2336
IO.DER 2334
IO.DTE 2334
IO.EOF 2219
IO.EOT 1884 2052 2219
IO.ERR 2054 2223
IO.IMP 2226 2334
IO.NRC 1265 1972
IO.UWC 1222 1296
ISCNBL 382 491#
ISCNVL 384 2592 2609#
JB.LBT 608
L 112# 112 1235 1238 1270 1313 1462 1568 1570 1572 1574 1675 1711 1714
1725 1755 1757 1805 1808 1809 1825 1826 1827 1828 1845 1848 2020
LBHR 1304 2379 2382 2438 2440 2631#
LBUFO 2439 2442#
LCHR 2405 2406 2411 2423 2432 2438# 2453
LCHRC 2440# 2445
LCRLF 2398 2431# 2466 2467
LDMLUP 2395# 2397
LDMPBF 2386 2389#
LHEDER 2385 2458#
LKENER 1178 1181 2154 2172#
LKPBLK 1155 1161 1176 1177 1180 2123 2128 2152 2172 2636#
LN$FDB 143# 892 2650 2652
LN$PDL 123 378 2633
LN$PRM 122 435 2638
LOCLUP 2408# 2412
LOCT 2417# 2420 2461 2465
LOCTF0 2402 2404#
LOCTFW 2396 2402#
LOGC 150# 1110 1129 1130 1166 1176 1180 1183 1187 2228 2247
LOGO.2 1139 1145#
LOGO.3 1170 1175#
LOGO.4 1174 1180#
LOGOPN 1067 1137#
LOGSPC 922 925 1064 1119 1120 1121 1138 1140 1141 1142 1144 1146 1147 1148
1149 1151 1152 1153 1157 2245 2619#
LOLOC$ 348# 438 1021#
LPTC 149# 1302 1303 2139 2231 2250 2379 2443
LPTCLS 1302# 1530
LPTSPC 2184# 2245 2377
LSTBFZ 1723 1748 2624#
LSTR 2449# 2459 2463
LSTRL 2451# 2454
LUP32 1693# 1699
LW$STS 1458 2647#
LW$ZER 376 2678#
MOD.L 686# 687 687# 688 688# 689 689# 750
MOD.T 686# 750
MODBIN 687# 774 1259
MODES 1368 2673# 2674 2675
MODFLG 726 885 891 2672#
MODIND 688# 1212
MODISP 1370 1406#
MODSEV 689#
MODSVN 1408 1410#
MT.7TR 990 997 1393 1400 1410 1416 1421 1963
MT.DEN 989
MTPWAT 1515 1516 1520#
MTSCNB 525# 557
MTSWD 527 859#
MTSWL 526 849#
MTSWM 527 854#
MTSWN 526 844# 849
MTSWP 528 849#
MX$ERR 237# 2551
MX$NPL 129 2390 2426
MX. 739# 742 817# 854#
MX.BFS 675 747 752 819 822
MX.BFZ 677 740 817
MX.LGF 673# 749 821
MX.MTN 676 739 743 744 757 854 857
MX.RPT 679 753
MX.TRY 680 755
MX.TST 681 758 759
MY$NAM 124 537 2185
MY$PFX 125 493 551 2542
N 116# 957 960 963 965
N$BUFS 126 1308
N$CMDS 492 542#
N$DSKB 138 1225 1269
N$EOTO 1893 1907#
N$LOGB 127 1184
N$OPTN 2285 2301#
N$TSTB 136 469
N$TYIO 1575 1587#
NIBUFS 723 812 1267 2667#
NOBUFS 470 728 815 1223 2668#
NOOP 245# 449 589 615 618 634 638 980 983 994 1057 1318 1320 1395
1402 1412 1443 1548 1602 1606 1750 1796 1887 1940 1984 1987 2060 2160
2170 2174 2241 2364
NUMTRY 731 1944 1946 2017 2058 2659#
OBHR 1208 1240 1245 1300 1662 1667 1690 1701 1721 1731 1734 1738 1740 1761
1768 1769 1774 1782 1783 1785 1788 1791 1792 2023 2024 2026 2027 2630#
OCHERR 2038 2051#
OCHFIX 2056 2068#
OCHIEC 2047# 2066
ODVNAM 408 474 477 579 590 1960 2620#
OFFSET 352 388 493 2591 2616#
OMTEF1 1841 1847#
OMTEOF 1825 1826 1827 1828 1838#
OP$DMP 2304 2375#
OP$DSP 2288 2303#
OP$EXI 2305 2317#
OP$G 2306 2314#
OP$HLP 2289# 2307
OP$IGN 2308 2311#
OP$SKP 2309 2320#
OPENER 1167 2146 2158#
OPENIO 1207 1249 2114# 2378
OPINOB 571 1340#
OPNBLK 1154 1163 1165 1166 1168 1185 1240 1272 2121 2130 2134 2140 2143 2162
2382 2635#
OPNI$1 1253 1267#
OPNINP 420 1248# 1867
OPNO$1 1211 1223#
OPNO$2 1227 1238#
OPNOUT 419 430 1206# 1653 1856 1879 1926 2004
OPONOB 1332# 1918 1921 1979
OPSWD 516 824#
OPSWL 515 810#
OPSWM 516 817#
OPSWN 515 803# 810
OPSWP 517 810#
OPTLST 2286 2294# 2301
OSCNBL 451 482 514#
OUTC 148# 1208 1215 1219 1221 1222 1242 1295 1297 1298 1299 1335 1499 1509
1535 1671 1744 1764 1777 1817 1818 1821 1822 1829 1830 1833 1834 1843
1883 1885 1919 1922 1923 1935 1970 1971 1972 1981 2036 2051 2055 2068
2069 2071 2072 2073 2074 2137
OUTCLS 1293# 1536 1852 1872 1888 1978 2000 2003
OUTDUN 1460# 1476
OUTERS 1936 2048 2644#
OUTMOD 890 1214 2675#
OUTSPC 405 446 456 464 467 468 471 601 603 612 883 987 1206 1218
1316 1333 1336 1938 2245 2652#
OUTSPE 465 2653#
P 115# 377 379 380 381 383 392 394 395 397 399 417 418 419
420 421 422 423 424 428 429 430 431 432 441 448 452 454
475 480 558 569 571 572 573 574 580 583 589 610 614 617
633 637 639 871 873 880 881 884 893 906 908 910 923 924
927 932 957 959 976 979 982 993 1001 1028 1030 1040 1054 1055
1056 1067 1071 1073 1077 1079 1086 1087 1089 1099 1101 1107 1108 1109
1112 1123 1126 1127 1128 1137 1158 1186 1189 1193 1195 1196 1198 1199
1200 1201 1202 1207 1209 1220 1234 1237 1241 1247 1249 1251 1262 1273
1276 1284 1286 1288 1291 1294 1317 1319 1337 1345 1361 1366 1369 1374
1375 1378 1383 1384 1387 1388 1390 1391 1394 1397 1401 1404 1406 1407
1408 1411 1414 1419 1424 1436 1442 1445 1446 1447 1448 1450 1454 1530
1531 1536 1539 1542 1544 1547 1550 1551 1556 1574 1596 1598 1601 1605
1607 1608 1612 1615 1619 1622 1625 1628 1630 1632 1653 1656 1670 1680
1683 1708 1743 1749 1763 1776 1795 1806 1852 1856 1861 1867 1872 1879
1886 1888 1889 1891 1892 1899 1918 1921 1926 1934 1939 1941 1943 1947
1949 1952 1954 1957 1959 1966 1969 1977 1978 1979 1983 1986 1990 1992
2003 2004 2007 2008 2021 2041 2043 2045 2046 2053 2059 2062 2064 2065
2114 2115 2116 2125 2155 2159 2169 2173 2176 2178 2179 2198 2199 2200
2201 2207 2208 2210 2240 2242 2244 2246 2253 2255 2257 2259 2261 2267
2271 2276 2277 2283 2284 2291 2321 2325 2327 2329 2332 2338 2345 2347
2351 2353 2354 2361 2362 2363 2366 2367 2372 2378 2383 2385 2386 2389
2396 2403 2405 2406 2411 2413 2418 2420 2421 2432 2441 2442 2450 2451
2453 2459 2461 2463 2465 2466 2475 2483 2484 2487 2513 2521 2523 2525
2532 2533 2540 2541 2544 2545 2547 2553 2558 2560 2574 2587 2589 2590
2593 2604
P1 108# 108 940 978 981 1048 1157 1215 1216 1217 1254 1255 1256 1393
1400 1410 1416 1421 1467 1473 1545 1546 1549 1555 1684 1685 1698 1699
1973 1985 2037 2044 2057 2063 2070 2117 2118 2120 2158 2168 2177 2214
2215 2224 2225 2333 2334 2335 2336 2342 2348 2349 2390 2402 2426 2533
2535 2537 2539 2543 2546 2550 2554 2557 2559 2561
P2 109# 109 1047 1218 1257 1355 1362 1471 1491 1500 1515 1521 1648 1654
1686 1687 1688 1693 1695 1753 1869 1871 1873 2017 2018 2039 2056 2118
2129 2131 2132 2135 2149 2215 2216 2228 2231 2232 2233 2245 2247 2250
2252 2263 2392 2393 2394 2395 2397
P3 110# 110 116 1049 1050 1051 1219 1258 1360 1368 1373 1381 1472 1501
1510 1516 1522 1655 1689 1690 1691 1697 1702 1713 1754 1874 1973 1982
2049 2135 2137 2139 2141 2142 2144 2148
P4 111# 111 117 1459 1460 1470 1975 1976 2022
PARDIS 1363 1377#
PD. 763# 766 824# 859#
PD.BFS 675 771 776 826 829
PD.BFZ 677 764 824
PD.LGF 674# 773 828
PD.MTN 676 763 767 768 781 859 862
PD.RPT 679 777
PD.TRY 680 779
PD.TST 681 782 783
PDLIST 378 2633#
PLP 113# 113 903 971 972 1455 1464 1465 1471 1472 1518 1854
PLPINI 435# 903 1455
POP4J 1203 2353#
PRBDUN 2335 2352#
PRBLUP 2341# 2349
PRBNAM 2340 2356#
PRBNXT 2343 2348#
PRMPDL 435 2638#
PRMPT0 547 551#
PRMSTO 873 880 908 916 961 971#
PTHBLK 1156 2124 2637#
RECTOT 1631 1674 1742 1759 2645#
RESACS 2571#
RESTRT 370# 575 2594
RESTRY 1974 2017# 2047
RPETFL 729 1950 1999 2660#
RPTFLG 730 2237 2664#
RTRYFL 727 1263 2236 2662#
RUNSVD 363 371#
SAVAC 1041 1042 1043 1052 2548 2549 2563 2571 2572 2600 2601 2602 2603 2634#
SAVACS 2532 2600#
SAVRUN 362 368 2611#
SCN$FZ 897 898 2649#
SCN$LZ 899 2677#
SCNCMD 399 440#
SCNTS0 458 469#
SCNTS1 466#
SCNTST 444 456#
SEG$ 348# 438 438# 1021 1021#
SEGAGN 1044# 1059
SETCH1 1356 1362#
SETCHR 1220 1262 1355#
SGDEV 366 1044 2612#
SGLOW 367 1046 2614#
SGNAM 364 1045 2613#
SGPPN 365 1048 2615#
STBUFZ 1235 1238 1270 1307#
STOSWA 942 945#
STOSWB 946 949#
STOSWT 509 534 938#
STRL.2 1087# 1090
STRLOG 1071 1073 1074 1085#
STSBZ0 992 996#
STSTBZ 480 987#
SWT$FO 900 901 2654#
SWT$LO 902 2676#
SWTD 502 763#
SWTL 501 715#
SWTM 502 739#
SWTN 501 691# 715 978 981
SWTP 503 715# 940
SWTS0A 950 963#
SWTST0 953 955 964#
T1 104# 104 350 351 352 382 384 386 391 393 400 401 402 403
404 405 406 408 413 414 416 440 451 460 461 464 465 466
468 469 470 471 472 474 482 546 547 548 557 559 561 562
564 566 568 579 582 590 592 605 606 607 608 612 613 626
872 874 879 883 898 899 901 902 907 914 921 922 925 928
959 964 971 973 974 978 981 987 988 989 991 992 995 996
998 999 1000 1030 1031 1044 1049 1051 1064 1065 1068 1069 1070 1072
1074 1085 1086 1087 1088 1097 1104 1105 1120 1121 1132 1138 1139 1141
1142 1143 1144 1145 1149 1150 1152 1153 1160 1161 1162 1163 1164 1165
1173 1175 1177 1178 1182 1184 1194 1196 1201 1206 1212 1214 1221 1222
1223 1225 1244 1245 1248 1259 1261 1264 1265 1267 1269 1274 1275 1280
1283 1286 1288 1289 1290 1295 1296 1297 1300 1304 1307 1308 1311 1312
1316 1332 1335 1336 1340 1343 1344 1355 1356 1357 1358 1362 1363 1368
1370 1371 1379 1396 1403 1434 1442 1444 1446 1450 1457 1458 1517 1518
1546 1549 1569 1576 1579 1610 1611 1614 1616 1617 1618 1621 1626 1629
1631 1633 1661 1662 1663 1665 1669 1693 1694 1696 1697 1701 1703 1704
1705 1707 1727 1728 1729 1733 1734 1735 1736 1737 1738 1739 1748 1781
1782 1783 1787 1788 1789 1790 1791 1853 1854 1883 1884 1885 1890 1894
1897 1938 1942 1944 1945 1946 1948 1950 1951 1953 1955 1956 1958 1960
1961 1962 1963 1964 1965 1967 1971 1972 1974 1982 1985 1988 2019 2023
2025 2029 2031 2032 2033 2034 2039 2040 2042 2044 2047 2058 2061 2063
2114 2117 2119 2120 2127 2128 2129 2130 2131 2133 2134 2136 2138 2140
2143 2144 2145 2148 2150 2151 2152 2153 2158 2162 2163 2164 2168 2172
2175 2177 2198 2206 2210 2214 2217 2218 2221 2226 2243 2245 2252 2254
2256 2258 2260 2265 2266 2268 2269 2277 2278 2282 2286 2289 2311 2312
2321 2324 2329 2333 2337 2346 2350 2365 2368 2369 2377 2380 2391 2394
2404 2408 2409 2410 2417 2419 2421 2422 2431 2433 2440 2449 2450 2451
2452 2458 2460 2462 2464 2473 2476 2484 2486 2492 2497 2506 2534 2536
2538 2542 2543 2546 2548 2556
T2 105# 105 477 478 479 591 592 595 599 603 626 627 628 629
631 635 636 885 888 890 892 915 926 957 959 960 964 965
972 989 990 997 1045 1154 1168 1169 1171 1172 1185 1228 1229 1230
1231 1232 1234 1239 1271 1309 1310 1311 1333 1341 1358 1359 1371 1372
1379 1380 1442 1450 1575 1576 1577 1578 1664 1665 1666 1667 1669 1695
1696 1702 1703 1704 1721 1722 1730 1731 1732 1740 1784 1785 1786 1792
1893 1894 1895 1896 2024 2025 2027 2034 2051 2052 2054 2055 2121 2217
2219 2221 2222 2223 2224 2235 2238 2285 2286 2287 2288 2341 2346 2381
2395 2418 2507 2508 2509 2511 2549
T3 106# 106 939 941 945 949 952 1046 1155 1334 1342 1360 1373 1381
1442 1450 1716 1718 1719 1722 1723 1728 1729 1736 1741 2122 2407 2412
2550 2551 2552 2553
T4 107# 107 1047 1156 1382 1389 1396 1403 1413 1418 1422 1423 1442 1450
1760 1768 2124 2340 2341
TELCON 2251 2264 2270 2323#
TELERS 1546# 1555
TELPRB 2242 2332#
TEMP 2222 2265 2625#
TEST.2 1935# 2006 2009
TEST4 1998#
TESTFL 410 443 734 735 1365 1975 1980 1998 2658#
TESTIT 432 1934#
THRTY2 1680 1683#
TIMEFL 736 816 1541 1543 1991 2663#
TIMSTM 1101 1193#
TLDVER 389 396 2610#
TPOPBL 2256 2260 2460 2464 2506 2508 2510 2640#
TPOPJ 1033 1088 2202 2239 2249 2279 2303 2313 2315 2326 2328# 2452 2488
TPOPJ1 2220 2327#
TSCNBL 440 500#
TSTBHR 1133 1283# 1301 1305
TSTBUF 1977 2020# 2040 2049 2070 2075
TSTDEN 996 1955 2657#
TY.MAN 1171
TY.SPL 1172
TYFEET 2046 2065 2497#
TYHELP 1899 2291 2518#
TYHLP0 2520 2523#
TYICHK 1462 1566# 1675 1711 1757 2020
TYIDSP 1578 1589#
TYIIGN 1589 1595#
TYIKIL 1589 1605#
TYIPAU 1589 1601#
TYISTS 1542 1589 1610# 1992
TYIT.2 1627 1631#
TYITOT 1544 1624#
TYPDLR 1889 2482# 2540
TYSLSH 2345 2492#
UCOMNT 718 1068 1072 2655#
UPSCN 380 397 1039# 2521 2590
UU.IBC 2136
UU.SOE 2138
WAITCK 1495 1505 1515#
WLDERR 1159 2126 2162#
WLDNMT 2165 2168#
WRTLOK 1316# 2276
XCTIO 1109 1656 1670 1743 1763 1776 1806 2197# 2442
XCTIO0 2230 2234 2240#
XCTIOD 2200 2206# 2321
XCTIOE 2210# 2280
ZZ 101# 103 103# 104 104# 105 105# 106 106# 107 107# 108 108# 109
109# 110 110# 111 111# 112 112# 113 113# 114 114# 192# 194 194#
226# 228 228# 229 229# 230 230# 231 231# 232 232# 233 233# 234
234# 237 240
$CLOSE 381 717 1119#
$FL232 180# 737
$FLITY 176# 724 813
$LOGSW 725 814 920#
%%CPYM 29# 30
%%JOBD 10 10#
%%MACT 12 12#
%%SCNM 13 13#
%%UUOS 11 11#
..FL 158# 160 160# 161 161# 162 162# 163 163# 165 165# 166 166# 167
167# 169 169# 172 172# 174 174# 175 175# 177 177# 178 178# 179
179# 181 181# 182 182# 183 183#
..TEMP 684# 684 685# 685 686# 686 687# 687 688# 688 689# 689 715# 715
716# 716 717# 717 718# 718 719# 719 720# 720 721# 721 722# 722
723# 723 724# 724 725# 725 726# 726 727# 727 728# 728 729# 729
730# 730 731# 731 732# 732 733# 733 734# 734 735# 735 736# 736
737# 737 738# 738 739# 739 740 740# 741 741# 742 742# 743 743#
744 744# 745 745# 746 746# 747 747# 748 748# 749 749# 750 750#
751 751# 752 752# 753 753# 754 754# 755 755# 756 756# 757 757#
758 758# 759 759# 760 760# 761 761# 762 762# 763 763# 764 764#
765 765# 766 766# 767 767# 768 768# 769 769# 770 770# 771 771#
772 772# 773 773# 774 774# 775 775# 776 776# 777 777# 778 778#
779 779# 780 780# 781 781# 782 782# 783 783# 784 784# 785 785#
786 786# 787 810# 810 811# 811 812# 812 813# 813 814# 814 815#
815 816# 816 817# 817 818 818# 819 819# 820 820# 821 821# 822
822# 823 823# 824 824# 825 825# 826 826# 827 827# 828 828# 829
829# 830 830# 831 849# 849 850# 850 851# 851 852# 852 853# 853
854# 854 855 855# 856 856# 857 857# 858 858# 859 859# 860 860#
861 861# 862 862# 863 863# 864
..TEMR 763# 763 764# 764 765# 765 766# 766 767# 767 768# 768 769# 769
770# 770 771# 771 772# 772 773# 773 774# 774 775# 775 776# 776
777# 777 778# 778 779# 779 780# 780 781# 781 782# 782 783# 783
784# 784 785# 785 786# 786 787 824# 824 825# 825 826# 826 827#
827 828# 828 829# 829 830# 830 831 859# 859 860# 860 861# 861
862# 862 863# 863 864
.ALCBF 1186 1241 1273 2383
.BFADR 1245 1275 1288 1721
.BFCTR 1102 1290 1664 1668 1684 1705 1706 1717 1727 1737 1738 1760 1761 1769
1771 1774 1781 1782 1783 1790 1791 1804 2024 2026 2391 2438
.BFPTR 1104 1289 1661 1662 1666 1667 1687 1690 1701 1707 1716 1730 1731 1733
1734 1740 1768 1784 1785 1787 1788 1792 2023 2027 2392 2440
.CHBEL 1579 2473
.CHCRT 2431
.CHLFD 1105 2433
.CLRFL 929
.DECNW 957
.FILIN 924
.FREBF 1286
.FXDEV 405 413 446 447 456 457 460 463 467 468 471 559 564 612
613 1138 1144 1316 1333 1341 1938
.FXEXT 597 599 601 603 1151 1152 2188
.FXLEN 143 673 926 1121 1142 1153 2119 2188 2619
.FXMOD 987 1355 1362
.FXNAM 562 1146 1148 1149
.FXNMM 1147
.GTLIM 605
.GTSPC 927
.HELPR 2523
.IOASC 1162 2379
.IOBIN 1208 1250
.IODMP 1332 1340
.ISCAN 383
.JBHRL 1027 1039 2519
.JBVER 28 393
.MONRT 574 2593
.OPBUF 1165 2134
.OPDEV 1168 2162
.OPMOD 1163 2130 2140
.OSCAN 452 483
.POP4T 1112 2353
.POPJ 749 821 1065 1069 2022 2575
.POPJ1 632
.PSH4T 1108 1193 2332
.RBCNT 1161 2128
.RBEXT 1177 2172
.RBTIM 1155 1160 2123 2127 2636
.RECOR 379 424
.SAVE1 1137 1598
.SAVE2 2208 2389
.SAVE3 1209 1251 1683 2116
.SAVE4 1454 1934
.SGDEV 366
.SGLOW 367
.SGNAM 364
.SGPPN 365
.STOPB 1158 2125
.SWASQ 742
.SWDEC 739 740 743 744 747 752 753 755 757 758 759 817 819 822
854 857
.TCHAR 1580 2351 2475 2493 2541 2558
.TCOLN 1941
.TCRLF 395 1448 1551 1574 2179 2271 2362 2478 2560
.TDECW 1628 1632 1947 1952 1966 2041 2045 2064 2257 2261 2576
.TFBLK 2178 2246 2581
.TFD80 1389
.TFDEN 1359
.TFM7B 1413
.TFM7T 1422
.TFM8B 1418
.TFM9T 1423#
.TFMOD 1372
.TFPAR 1380
.TFSET 1359 1372 1380
.TFSTA 2507
.TOCTW 1447 2577
.TOLEB 2582
.TPPNW 2579
.TSCAN 441 558
.TSFIL 2256 2460
.TSIXN 549 2347 2544 2578
.TSPAC 1199 1200 2545
.TSREC 2260 2464
.TSTRG 392 1445 1550 1615 1622 1630 1633 1891 1943 1949 1954 1957 1959 1969
1990 2043 2062 2176 2244 2255 2259 2283 2325 2338 2366 2487 2497 2547
2580
.TTIME 1612 1619
.TTIMN 1198
.TVERW 394
.TYOCH 1195 1202
AC$ 98# 103 104 105 106 107 108 109 110 111 112 113 114
ALIGN. 2336
CLOSE 1129 1278 1298 1302
CLRBFI 1571 2477
CORE 1031
CTITLE 33# 35
DEVCHR 627 2163
DEVNAM 406 414 472 566
DEVTYP 1169
DM 675 676 677 679 680 681
DOSCAN 690 802 843
ENTER 1180 2150
ERROR. 248# 448 589 614 617 633 637 979 982 993 1056 1317 1319 1394
1401 1411 1442 1547 1601 1605 1749 1795 1886 1939 1983 1986 2059 2159
2169 2173 2240 2363
ETYP 223# 228 229 230 231 232 233 234
EXIT 1058 1915 2317
FLAG$ 154# 160 161 162 163 165 166 167 169 172 174 175 177 178
179 181 182 183
FN 190# 194 1480# 1482
FUNCTS 187# 194 1482
GETSEG 1050
GETSTS 1221 1264 1295 1883 1971 2051 2217
GETTAB 606
HALT 1477 2444
HIGH$ 316# 438
IN 1657 1807
INCHRS 1569
INCHRW 2476
INFO. 259# 1547 1601 1939 1983 1986 2363
KEYS 683 686
LIT$ 339# 436 1017 2679
LOOKUP 1176 2151
LOW$ 324# 1021
MSTIME 400 1610
MTBSF. 1535 1817 1819
MTBSR. 1818 1820 2068 2071
MTCHR. 478 1216 1255 1961
MTEOF. 1843 1847
MTREW. 1829 1830 1831 1832 1922 1935 1981
MTSKF. 1821 1823
MTSKR. 1822 1824 2073
MTUNL. 1833 1834 1835 1836 1919
MTWAT. 1497 1499 1507 1509 1520 1970 2069 2072 2074
ND 122 123 124 125 126 127 128 129 130 131 132 133 135 136
138 675 676 677 679 680 681
OPEN 1166 1335 1343 2143
OPER$ 264# 1317 1319 1886
OUT 1110 1242 1671 1744 1764 1777 2036 2443
OUTCHR 1097
OUTPUT 1187
PJRST 483 549 875 916 929 961 1033 1133 1203 1305 1580 1599 1603 2000
2398 2423 2467 2478 2488 2493 2526
PJSP 1074 1633 2497
POINTR 724 737 813 987 989 1355 1362
POS 724 737 813 987 989 1355 1362
RELEAS 1130 1279 1299 1303 1923
RELOC$ 332# 348
RESET 353 2588
RESTR$ 299# 958 1236 1287 1449 2320 2328
RGHBT. 2336
RUNTIM 403 1617
SAVE$ 292# 956 1029 1233 1285 1441 1573 2197 2209
SETSTS 1222 1265 1297 1885 1972 2055 2224
SL 698 702 722 726 746 750 770 774 804 811 818 825
SP 691 692 694 695 696 699 701 704 705 707 709 710 711 715
716 718 719 720 723 725 728 729 731 733 734 735 739 740
742 743 744 747 749 752 753 755 757 758 759 763 764 766
767 768 771 773 776 777 779 781 782 783 803 805 807 808
810 812 814 815 817 819 821 822 824 826 828 829 844 847
849 852 854 857 859 862
SS 693 697 700 703 706 708 712 713 714 717 721 724 727 730
732 736 737 738 741 745 748 751 754 756 760 761 762 765
769 772 775 778 780 784 785 786 806 809 813 816 820 823
827 830 845 846 848 850 851 853 855 856 858 860 861 863
STORE 371 374 897 900 1119 1140 1456
STRNG$ 311# 391 1444 1613 1620 1629 1890 1942 1948 1953 1958 2042 2061 2175
2243 2254 2258 2281 2323 2365 2485
SWTCHS 642# 691 715 739 763 792# 803 810 817 824 835# 844 849 854
859
TAPOP. 1434 2511
TXNE 1171 1172
U 306# 2609 2610 2611 2612 2613 2614 2615 2616 2619 2620 2621 2622 2623
2624 2625 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2640 2643
2644 2645 2646 2650 2652 2655 2657 2658 2659 2660 2662 2663 2664 2665
2667 2668 2670 2671 2672 2673
USETI 1183
VRSN. 29
WARN. 254# 993 1442 1605 2059 2240
WID 724 737 813 987 989 1355 1362
X 691# 691 692 693 694 695 696 697 698 699 700 701 702 703
704 705 706 707 708 709 710 711 712 713 714 715# 715 716
717 718 719 720 721 722 723 724 725 726 727 728 729 730
731 732 733 734 735 736 737 738 739# 739 740 741 742 743
744 745 746 747 748 749 750 751 752 753 754 755 756 757
758 759 760 761 762 763# 763 764 765 766 767 768 769 770
771 772 773 774 775 776 777 778 779 780 781 782 783 784
785 786 803# 803 804 805 806 807 808 809 810# 810 811 812
813 814 815 816 817# 817 818 819 820 821 822 823 824# 824
825 826 827 828 829 830 844# 844 845 846 847 848 849# 849
850 851 852 853 854# 854 855 856 857 858 859# 859 860 861
862 863