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
34
35 CTITLE (,\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
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 ;;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 )>
188
189 DEFINE FN (X)
190 >
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
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,
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 ,[''$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
255
256 ;INFO. ($FLGS,$PFX,$MSG) -- GENERATE CALL TO ERROR HANDLING FOR INFO
257
258 DEFINE INFO. ($FLGS,$PFX,$MSG)
259
260
261 ;OPER$ ($FLGS,$PFX,$MSG) -- MESSAGE THAT OPERATOR WILL SEE IN BATCH JOB
262
263 DEFINE OPER$ ($FLGS,$PFX,$MSG)
264
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 .
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
294 LIST>
295
296 ;RESTR$ RESTORES DATA FROM THE STACK
297
298 DEFINE RESTR$ (X)
299
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
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
319 >
320
321 ;LOW$ SWITCHES TO LOW SEGMENT
322
323 DEFINE LOW$
324
327 >
328
329 ;RELOC$ DEFINES INITIAL CONDITIONS
330
331 DEFINE RELOC$
332
335
336 ;LIT$ FORCES OUT LITERALS IN CURRENT SEGMENT
337
338 DEFINE LIT$
339
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,
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$ ;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,
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,)]
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,
615 400173' 300403 400654'
616
617 400174' 260 17 0 00 002353' E$$CUS: ERROR. EF$FTL,CUS,
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,
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,
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,,.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,,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,,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,)
684 400215' 514756 576245
685 400216' 616545 627100
686 400217' 425156 416271 KEYS (MOD,)
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 ;*BACKSP
716 400253' 000000 003131' EXP ;BUFSIZ
717 400254' 000000 000213' EXP <$CLOSE> ;CLOSE
718 400255' 444500 003063' EXP ;COMMENT
719 400256' 000000 000007 EXP ;CONCAT
720 400257' 000000 000006 EXP ;*COPY
721 400260' 000000 000003 EXP ;*EOF
722 400261' 000000 003132' EXP ;ERROR
723 400262' 000000 003127' EXP ;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 ;MODE
727 400266' 000000 003123' EXP ;NORETR
728 400267' 000000 003130' EXP ;OBUF
729 400270' 000000 003122' EXP ;REPEAT
730 400271' 000000 003125' EXP ;REPORT
731 400272' 000000 003121' EXP ;RETRY
732 400273' 000000 000004 EXP ;*REWIND
733 400274' 000000 000002 EXP ;*SKIP
734 400275' 000000 003120' EXP ;TAPTST
735 400276' 000000 003120' EXP ;*TEST
736 400277' 000000 003124' EXP ;TIME
737 400300' 260100 000000 ($FL232)^<^L<$FL232>+^L<-<<$FL232>_<^L<$FL232>>>-1>-1>^>^> ;TO32
738 400301' 000000 000005 EXP ;*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,,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
811 400372' 000000 003132' EXP ;ERROR
812 400373' 000000 003127' EXP ;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 ;OBUF
816 400377' 000000 003124' EXP ;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 ;*BACKSP
850 400424' 000000 000003 EXP ;*EOF
851 400425' 000000 000004 EXP ;*REWIND
852 400426' 000000 000002 EXP ;*SKIP
853 400427' 000000 000005 EXP ;*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, ;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$ ;YES--SAVE VALUE, AND PTR (FUNCTION)
957 400541' 260 17 0 00 000000* PUSHJ P,.DECNW## ;READ SECOND VALUE
958 RESTR$ ;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,