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 (<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�