Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-04 - decus/20-0128/copymt.lpt
There are 2 other files named copymt.lpt in the archive. Click here to see a list.
COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 1
COPYMT	MAC	23-FEB-77 11:47		B. SCHREIBER UI HI ENERGY PHYSICS GROUP

     1					SUBTTL	B. SCHREIBER UI HI ENERGY PHYSICS GROUP
     2
     3					SEARCH	JOBDAT,UUOSYM,MACTEN,SCNMAC
     4					.DIREC	.XTABM
     5					SALL
     6	400000'				TWOSEG
     7
     8					;SHOW UNIVERSAL VERSION NUMBERS
     9
    10		043000	000443		%%JOBD==:%%JOBD
    11		101100	000225		%%UUOS==:%%UUOS
    12		000100	000024		%%MACT==:%%MACT
    13		000700	000203		%%SCNM==:%%SCNM
    14
    15					;SELECTIVELY LOAD SCAN AND COMPANY
    16
    17					.TEXT	\/SEARCH REL:ALCOR/SEG:LOW\
    18					.TEXT	\/SEARCH REL:SCN7B/EXCLUD:(.SCAN)/SEG:LOW,REL:SCN7B\
    19					.REQUI	REL:HELPER		;LOAD HELPER IN HISEG
    20
    21					;COPYMT VERSION INFORMATION
    22
    23			000007		CMTVER==7		;MAJOR VERSION
    24			000040		CMTEDT==40		;EDIT LEVEL
    25			000000		CMTMIN==0		;MINOR VERSION LETTER
    26			000000		CMTWHO==0		;WHO LAST EDITTED
    27
    28	000137				LOC	.JBVER		;SET THE VERSION
    29		000700	000040		%%CPYM==:VRSN.	(CMT)
    30	000137	000700	000040		EXP	%%CPYM
    31
    32					DEFINE CTITLE (TEXT,MAJVER,EDIT)
    33					<TITLE	'TEXT'MAJVER(EDIT)>
    34
    35					CTITLE	(<COPYMT MAGNETIC TAPE COPY PROGRAM %>,\CMTVER,\CMTEDT)

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 2
COPYMT	MAC	23-FEB-77 11:47		REVISION HISTORY

    36					SUBTTL	REVISION HISTORY
    37
    38					COMMENT	\
    39
    40					3(11)	23-SEP-76	ALL EDITS TO NOW RELEGATED TO DEVELOPMENT.
    41								ADD /UNLOAD
    42					3(12)	27-SEP-76	REPORT TAPOP. UUO FAILURES. ONLY ASK ABOUT
    43								QUITTING ON BLOCK TOO LARGE ONCE.
    44					4(13)	27-SEP-76	ADD IFTYP FACILITY...ENABLED BY /IFTYP IN COMMAND
    45					4(14)	28-SEP-76	SPEED UP IFTYP HANDLING..USE JSP
    46					5(15)	30-SEP-76	ADD CODE TO COPY MTA TO DSK AND DSK TO
    47								MTA (IREAD MODE ONLY). ALSO ADD STATISTICS
    48								SUCH AS RUNTIME AND ELAPSED TIME TO IFTYP STUFF
    49					5(16)	04-OCT-76	USE RESULT OF DEVNAM FOR ALL MTCHR AND TAPOP
    50								UUOS. LOGICAL NAMES SOMETIMES DON'T WORK
    51								(ESP IF THEY ARE NUMERIC!) ALSO, WHEN TESTING
    52								A TAPE, TYPE OUT DENSITY AND TRACKS
    53					5(17)	05-OCT-76	ADD ROUTINE DOTPOP ON TOP OF ETAPOP TO
    54								SAVE A FEW WORDS. ADD /TIME TO TYPE
    55								ELAPSED AND CPU TIME.
    56					6(20)	08-OCT-76	ADD /TO32 TO COPY 36-BIT TAPE TO 32-BIT TAPE
    57					6(21)	11-OCT-76	TURN OFF FL$EOT AT COPDUN IF END OF LIST SEEN.
    58								THIS WILL PREVENT EXTRA MTBSF. OUTC, AT DO.DUN
    59								WHICH WAS IO TO UNASS CHN BECAUSE WE DID NOT
    60								REOPEN OUTPUT
    61					6(22)	22-OCT-76	ADD SETIBO/SETIBI
    62					6(23)	27-OCT-76	FIX SWTCHS MACRO...MISPLACED CONDITIONAL AND
    63								FS.VRQ MISSING ON A FEW SWITCHES.
    64					6(24)	05-NOV-76	FIX BUG IN CPYMTD IF IREAD LOGICAL RECORD
    65								ENDS ON BLOCK BOUNDARY (T3 GOT ZAPPED BY SETIBC)
    66					6(25)	13-NOV-76	BF.IBC GOES IN BUFFER HEADER, NOT BUFFFER RING!
    67								ALSO MUST CLEAR IO.UWC AT OUTCLS OR NEXT TO LAST
    68								BUFFER GETS WRITTEN OUT AGAIN.
    69					6(26)	15-NOV-76	ADD /ERROR:IGNORE. DEFAULT DSK EXTENSIONS TO .DAT.
    70								ADD "I" OPTION TO IFTYPE.
    71					6(27)	16-NOV-76	CLEARING IO.UWC SOMETIMES GET IO TO UNASS CHN.
    72								SOLUTION: ADD FL$OPN=1 WHEN OUTPUT IS OPEN.
    73					6(30)	1-26-77		BUG IF /COPY:N:M. DO NOT REOPEN OUTPUT IF N OR
    74								M RUNS OUT.
    75					6(31)	1-26-77		6(30) WAS NOT QUITE RIGHT.  INSTEAD OF QUITTING
    76								GET NEXT FUNCTION. ALSO CHECK FOR OUTPUT OPEN AT
    77								DO.CPY IN CASE OF /COPY:X/SKIP:Y/COPY:Z.
    78					6(32)	2-3-77		CHANGE TO ERROR., WARN., AND INFO.. ADD /RETRY:N
    79								TO SET # RETRIES FOR TAPE TESTING AND MAKE THE
    80								DEFAULT BE 4 INSTEAD OF 10 (TU70'S SHOULD NOT
    81								NEED 10 TRIES!!!)
    82					6(33)	11-FEB-77	ADD /REPEAT:N TO TRY THE TAPE TEST N TIMES
    83					7(34)	11-FEB-77	IMPLEMENT LOG FILE CAPABILITY
    84								WITH /LOG:FILESPEC, /COMMENT:"COMMENT FOR LOG FILE"
    85								AND /CLOSE
    86					7(35)	13-FEB-77	CLOSE LOG FILE ON FATAL ERROR!
    87					7(36)	13-FEB-77	IF LOG DEVICE IS LPT FORGET THE LOOKUP
    88					7(37)	18-FEB-77	ALLOW /LOG WITH NO FILE SPEC (DEFAULT = DSK:COPYMT.LOG)
    89					7(40)	23-FEB-77	SHOW FILE AND RECORD COUNTS AT END OF COPY
    90								FOR ALL MEDIA

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 2-1
COPYMT	MAC	23-FEB-77 11:47		REVISION HISTORY

    91
    92						\;END OF REVISION HISTORY

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 3
COPYMT	MAC	23-FEB-77 11:47		AC DEFINITIONS

    93					SUBTTL	AC DEFINITIONS
    94
    95					;DEFINE THE ACCUMULATORS
    96
    97					DEFINE	AC$ (X)
    98					<X=ZZ
    99					ZZ==ZZ+1
   100					X=X>
   101			000000		ZZ==0			;START THE BALL ROLLING
   102
   103			000000		AC$	F,		;FLAGS
   104			000001		AC$	T1,		;T1-4 ARE TEMPORARY AND FOR ARGUMENT PASSING
   105			000002		AC$	T2,
   106			000003		AC$	T3,
   107			000004		AC$	T4,
   108			000005		AC$	P1,		;P1-4 MUST BE PRESERVED (.SAVEX ARE BEAUTIFUL!)
   109			000006		AC$	P2,
   110			000007		AC$	P3,
   111			000010		AC$	P4,
   112			000011		AC$	L,		;LINK FOR JSP
   113			000012		AC$	PLP,		;PARAMETER LIST POINTER
   114			000013		AC$	ACT,		;HOLDS DESIRED ACTION IN DO.IT
   115			000017			P=17		;THE PUSH DOWN POINTER
   116			000007			N=P3		;VALUE HOLDER FROM SCAN .XXXNW, ETC.
   117			000010			C=P4		;CHARACTER AC FOR SCAN, .TICAN, ETC.

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 4
COPYMT	MAC	23-FEB-77 11:47		BIT DEFINITIONS

   118					SUBTTL	BIT DEFINITIONS
   119
   120					;ASSEMBLY DIRECTIVES
   121
   122					ND LN$PRM,^D60		;PARAM LENGTH
   123					ND LN$PDL,^D40		;PDL LENGTH
   124					ND MY$NAM,'COPYMT'	;MY NAME IN SIXBIT
   125					ND MY$PFX,'CMT'		;MESSAGE PREFIX
   126					ND N$BUFS,2		;# I/O BUFFERS (BOTH INPUT AND OUTPUT)
   127					ND N$LOGB,2		;# BUFFERS FOR LOG FILE
   128					ND DF$BFZ,^D1024	;DEFAULT BUFFER SIZE IF NO /BUFSIZ GIVEN
   129					ND MX$NPL,^D8		;# WORDS/LINE ON ERROR DUMP
   130					ND FT$MTP,-1		;NON-ZERO FOR MTAPE MONITORY COMMAND
   131					ND FT$DEB,0		;NON-ZERO FOR DEBUGGING CODE
   132					ND FT$OPT,-1		;NON-ZERO TO READ SWITCH.INI
   133					ND FT$TST,-1		;NON-ZERO TO INCLUDE /TAPTST CODE
   134					IFN FT$TST,<
   135					ND DF$TRY,4		;DEFAULT # RETRIES ON TAPE ERRORS
   136					ND N$TSTB,1		;USE 1 BUFFER FOR /TAPTST
   137					>;END IFN FT$TST
   138					ND N$DSKB,6		;USE THIS MANY BUFFERS FOR DSK I/O
   139
   140
   141					;FDB
   142
   143			000032		LN$FDB==.FXLEN		;USE STD SIZE FDB
   144
   145			000020		ATSIGN==(1B13)		;THE INDIRECT BIT
   146
   147			000001		INPC==1			;INPUT CHANNEL
   148			000002		OUTC==2			;OUTPUT CHANNEL
   149			000003		LPTC==3			;LPT CHANNEL FOR ERROR DUMPING
   150			000004		LOGC==4			;CHANNEL FOR LOG FILES

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 5
COPYMT	MAC	23-FEB-77 11:47		BIT DEFINITIONS

   151					;FLAGS IN F
   152
   153					DEFINE FLAG$ (F)
   154					<FL$'F==..FL		;;DEFINE THE FLAG BIT
   155					..FL==..FL_-1
   156					FL$'F==FL$'F>		;;SHOW THE FLAG VALUE
   157
   158			400000		..FL==(1B0)		;START AT BIT 0
   159
   160			400000		FLAG$ (MRG)		;ON WHEN MERGING (CONCATENATING) FILES 
   161			200000		FLAG$ (OUT)		;ON WHEN OUTPUT SPEC ALLOCATED
   162			100000		FLAG$ (CPY)		;ON WHEN /COPY OR /CONCAT SEEN
   163			040000		FLAG$ (EOT)		;CLEARED WHEN RECORD OUTPUT, SET AT INPUT EOF
   164								;TWO SETS IN A ROW IMPLIES LOGICAL EOT
   165			020000		FLAG$ (LPO)		;ON MEANS LPT FILE IS OPEN
   166			010000		FLAG$ (BAT)		;ON IF BATCH JOB (PREFIX A FEW MSGS WITH $)
   167			004000		FLAG$ (FLG)		;GENERAL PORPOISE FLAG
   168					IFN FT$MTP,<
   169			002000		FLAG$ (MTP)		;ON IF MTAPE MONITOR COMMAND
   170					>;END IFN FT$MTP
   171					IFN FT$TST,<
   172			001000		FLAG$ (TST)		;ON WHEN PROCESSING /T
   173					>;END IFN FT$TST
   174			000400		FLAG$ (BKT)		;HAVE SEEN BKT BEFORE AND USER SAID CONTINUE
   175			000200		FLAG$ (ITY)		;/IFTYP WAS SEEN
   176		000200	000000			$FLITY==(FL$ITY);A LEFT HAND VALUE OF THE SAME THING
   177			000100		FLAG$ (DSI)		;ON IF INPUT IS DSK
   178			000040		FLAG$ (DSO)		;ON IF OUTPUT IS DSK
   179			000020		FLAG$ (232)		;ON IF 36-BIT TAPE TO 32-BIT TAPE
   180		000020	000000			$FL232==(FL$232);NEED LH VALUE
   181			000010		FLAG$ (OPN)		;ON WHEN OUTPUT IS OPEN
   182			000004		FLAG$ (LOG)		;ON WHEN LOG FILE IS OPEN
   183			000002		FLAG$ (TSN)		;ON WHEN TIME STAMP NEEDED IN LOG FILE

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 6
COPYMT	MAC	23-FEB-77 11:47		BIT DEFINITIONS

   184					;MACRO TO DEFINE FUNCTION VALUES
   185
   186					DEFINE FUNCTS
   187					<FN (<BSP,SKP,EOF,REW,UNL,CPY,CON>)>
   188
   189					DEFINE FN (X)
   190					<IRP X,<ZZ==ZZ+1
   191					FN$'X==ZZ>>
   192			000000		ZZ==0			;FUNCTIONS START AT 1
   193
   194					FUNCTS
   195
   196		777777	777777		FN$INP==-1		;FUNCTIONS FOLLOWING THIS ONE ARE FOR INPUT SIDE
   197		777777	777776		FN$EOL==-2		;END OF FUNCTION LIST
   198
   199					;EXTRA FLAGS FOR SWTCHS MACRO
   200
   201		002000	000000		FS$XTR==1B7		;THIS SWITCH CAN TAKE EXTRA PARAMETERS
   202								;(I.E. /BACKSP:F:N)
   203		001000	000000		FS$NVL==1B8		;THIS SWITCH NEVER TAKES A VALUE
   204		000400	000000		FS$OUT==1B9		;THIS SWITCH IS OUTPUT ONLY
   205		000200	000000		FS$INP==1B10		;THIS SWITCH IS INPUT  ONLY
   206		000100	000000		FS$SPL==1B11		;THIS SWITCH REQUIRES SPECIAL PROCESSING
   207								;DO A JRST @SWTP(P1) TO DO IT

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 7
COPYMT	MAC	23-FEB-77 11:47		ERROR MACRO DEFINITIONS

   208					SUBTTL	ERROR MACRO DEFINITIONS
   209
   210					;ERROR.	($FLGS,$PFX,$MSG)
   211					;
   212					;$FLGS 	IS THE COMBINITATION OF THE FOLLOWING BITS:
   213
   214			000000			EF$ERR==0	;ERROR--PREFIX MSG WITH ?, RETURN CONTROL AFTER CALL
   215			000400			EF$FTL==400	;FATAL ERROR--ABORT AND RESTART
   216			000200			EF$WRN==200	;WARNING MESSAGE--CONTINUE
   217			000100			EF$INF==100	;INFORMATIVE MESSAGE--CONTINUE
   218			000040			EF$NCR==40	;NO FREE CRLF AFTER MESSAGE
   219			000020			EF$OPR==20	;MESSAGE SHOULD BE PREFIXED WITH CRLF-$ IF BATCH
   220			000017			EF$MAX==17	;MAX # OF TYPE CODES ALLOWABLE (9 BITS - ABOVE USED)
   221
   222					DEFINE ETYP ($TYP)
   223					<ZZ==ZZ+1
   224					EF$'$TYP==ZZ>
   225
   226			000000		ZZ==0		;TYPE CODES ARE FROM 1-EF$MAX
   227
   228			000001		ETYP	DEC,		;TYPE T1 IN DECIMAL AT END OF MESSAGE
   229			000002		ETYP	OCT,		;TYPE T1 IN OCTAL AT END OF MESSAGE
   230			000003		ETYP	SIX,		;TYPE T1 IN SIXBIT AT END OF MESSAGE
   231			000004		ETYP	PPN,		;TYPE T1 AS A PPN AT END OF MESSAGE
   232			000005		ETYP	STR,		;T1 PTS TO ASCIZ STR TO TYPE AT END OF MESSAGE
   233			000006		ETYP	FIL,		;T1 PTS TO SCAN FILE BLOCK TO TYPE AT END OF MSG
   234			000007		ETYP	LEB,		;T1 POINTS AT OPEN BLOCK
   235								;T2 POINTS AT LOOKUP/ENTER BLOCK
   236
   237			000007		MX$ERR==ZZ		;MAXIMUM LEGAL ERROR TYPE
   238			000000		EF$NOP==0		;INTERNAL FOR ERROR HANDLER
   239
   240					IFG ZZ-EF$MAX,<PRINTX ?TOO MANY ERROR TYPES>
   241
   242					;$PFX IS THE 3-LETTER PREFIX FOR THE MESSAGE
   243					;$MSG IS THE MESSAGE ITSELF
   244
   245			300000		NOOP==	(CAI)		;DEFINE NO-MEMORY-REFERENCE RIGHT-HAND NOOP
   246
   247					DEFINE	ERROR.	($FLGS,$PFX,$MSG)
   248					<PUSHJ	P,EHNDLR
   249					XWD NOOP+<$FLGS>,[''$PFX'',,[ASCIZ @$MSG@ ] ]
   250					>

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 8
COPYMT	MAC	23-FEB-77 11:47		ERROR MACRO DEFINITIONS

   251					;WARN.	($FLGS,$PFX,$MSG) -- GENERATE CALL TO ERROR HANDLER FOR WARNING
   252
   253					DEFINE WARN. ($FLGS,$PFX,$MSG)
   254					<ERROR.	(EF$WRN!$FLGS,$PFX,$MSG)>
   255
   256					;INFO.	($FLGS,$PFX,$MSG) -- GENERATE CALL TO ERROR HANDLING FOR INFO
   257
   258					DEFINE INFO. ($FLGS,$PFX,$MSG)
   259					<ERROR.	(EF$INF!$FLGS,$PFX,$MSG)>
   260
   261					;OPER$	($FLGS,$PFX,$MSG) -- MESSAGE THAT OPERATOR WILL SEE IN BATCH JOB
   262
   263					DEFINE OPER$ ($FLGS,$PFX,$MSG)
   264					<ERROR.	(EF$OPR!$FLGS,$PFX,$MSG)>

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 9
COPYMT	MAC	23-FEB-77 11:47		IMPLEMENTATION NOTES

   265					SUBTTL	IMPLEMENTATION NOTES
   266
   267					COMMENT	\A NOTE ABOUT THE PARAMETER LIST -
   268
   269					THE LIST IS SET UP IN TWO WORD ARGUMENTS.  THE FIRST WORD IS THE FUNCTION
   270					AND THE SECOND CONTAINS <FILE REPEAT COUNT,,RECORD REPEAT COUNT>.
   271					FOR FUNCTIONS THAT HAVE NO COUNTS (I.E. /EOF) THE COUNT IS SET
   272					TO ONE BY THE SWITCH HANDLER.  THE INTERNAL FUNCTIONS (FN$INP AND
   273					FN$EOL) DO NOT USE THE SECOND ARGUMENT, BUT IS PRESENT FOR A HOMOGENOUS
   274					LIST.
   275
   276					\;END NOTE
   277
   278					COMMENT	\
   279
   280					IF THIS PROGRAM IS REASSEMBLED AND DOES NOT APPEAR TO FUNCTION
   281					CORRECTLY, CHECK UUOSYM DEFINITIONS FOR MTCHR. AND TAPOP. UUO, AND WHAT
   282					THE MONITOR ACTUALLY STORES IN THESE ARG BLOCKS.  I EXPECT THAT THE
   283					DEFINITIONS FOR .TFSTS (GET STATUS) ARE WRONG IN THE UUOSYM I USED
   284					(.TSFIL==0, .TSREC==1).
   285
   286					\;END COMMENT

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 10
COPYMT	MAC	23-FEB-77 11:47		OTHER MACRO DEFINITIONS

   287					SUBTTL	OTHER MACRO DEFINITIONS
   288
   289					;SAVE$ SAVES DATA ON THE STACK
   290
   291					DEFINE	SAVE$	(X)
   292					<XLIST
   293					IRP X,<PUSH P,X>
   294					LIST>
   295
   296					;RESTR$ RESTORES DATA FROM THE STACK
   297
   298					DEFINE	RESTR$	(X)
   299					<XLIST
   300					IRP X,<POP P,X>
   301					LIST>
   302
   303					;MACRO TO ALLOCATE STORAGE IN THE LOW SEGMENT DATA BASE
   304
   305					DEFINE	U ($NAME,$WORDS<1>)
   306					<$NAME:	BLOCK	$WORDS>
   307
   308					;STRNG$ (STRING) SENDS STRING TO OUTPUT THROUGH .TSTRG
   309
   310					DEFINE STRNG$ (S)
   311					<MOVEI	T1,[ASCIZ \S\]
   312					PUSHJ	P,.TSTRG##>

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 11
COPYMT	MAC	23-FEB-77 11:47		OTHER MACRO DEFINITIONS

   313					;HIGH$	SWITCHES TO HIGH SEGMENT
   314
   315					DEFINE	HIGH$
   316					<IFE SEG$,<HILOC$==.
   317						SEG$==-1
   318						RELOC LOLOC$>
   319					>
   320
   321					;LOW$	SWITCHES TO LOW SEGMENT
   322
   323					DEFINE	LOW$
   324					<IFN SEG$,<LOLOC$==.
   325						SEG$==0
   326						RELOC HILOC$>
   327					>
   328
   329					;RELOC$	DEFINES INITIAL CONDITIONS
   330
   331					DEFINE	RELOC$
   332					<RELOC	0
   333					LOLOC$==400000
   334					SEG$==0>
   335
   336					;LIT$ FORCES OUT LITERALS IN CURRENT SEGMENT
   337
   338					DEFINE	LIT$
   339					<XLIST
   340					LIT
   341					LIST>

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 12
COPYMT	MAC	23-FEB-77 11:47		GET THE BALL ROLLING

   342					SUBTTL	GET THE BALL ROLLING
   343
   344					;MAIN AND ONLY ENTRY POINT. REMEMBER IF CCL ENTRY OR NOT, AND REMEMBER
   345					;WHERE WE CAME FROM.  THIS IS NECESSARY TO RECOVER THE SCAN HIGH SEGMENT
   346					;AFTER WE HAVE FINISHED COPYING
   347
   348			000000			RELOC$			;INITIALIZE SEGMENTS
   349
   350	000000'	634 01 0 00 000001 	COPYMT:	TDZA	T1,T1		;NOT CCL ENTRY
   351	000001'	201 01 0 00 000001 		MOVEI	T1,1		;CCL START
   352	000002'	202 01 0 00 002453'		MOVEM	T1,OFFSET	;REMEMBER FOR SCANNING
   353	000003'	047 00 0 00 000000 		RESET			;STOP ALL I/O
   354					REPEAT 0,<	;UN-REPEAT WHEN DISTRIBUTED
   355						MOVX	T1,%CNDVN	;MONITOR VERSION
   356						GETTAB	T1,
   357						SETZ	T1,		;WILL LOOSE BIG
   358						TXZ	T1,VR.WHO!VR.MIN;GET MAJOR VERSION #
   359						CAIGE	T1,60200	;MUST BE .GE. 602
   360						ERROR.	EF$FTL,N6M,<NEED 6.02 OR LATER MONITOR>
   361					>;END REPEAT 0
   362	000004'	332 00 0 00 002446'		SKIPE	SAVRUN		;HAVE WE SAVED RUN UUO ARGS?
   363	000005'	254 00 0 00 000013'		 JRST	RUNSVD		;YES--SKIP AHEAD
   364	000006'	202 00 0 00 002450'		MOVEM	.SGNAM,SGNAM	;NO--DO SO NOW
   365	000007'	202 07 0 00 002452'		MOVEM	.SGPPN,SGPPN	;
   366	000010'	202 11 0 00 002447'		MOVEM	.SGDEV,SGDEV
   367	000011'	202 17 0 00 002451'		MOVEM	.SGLOW,SGLOW	;LOW FILE EXTENSION
   368	000012'	476 00 0 00 002446'		SETOM	SAVRUN
   369
   370	000013'				RESTRT:
   371	000013'	402 00 0 00 000000 	RUNSVD:	STORE	17,0,16,0	;CLEAR ALL ACCUMULATORS
   372	000014'	200 17 0 00 000105'
   373	000015'	251 17 0 00 000016 
   374	000016'	402 00 0 00 002454'		STORE	17,FW$ZER,LW$ZER,0 ;AND ZEROED DATA BASE
   375	000017'	200 17 0 00 000106'
   376	000020'	251 17 0 00 003135'
   377	000021'	334 17 0 00 000022'		SKIPA	P,.+1		;LOAD UP PUSH DOWN POINTER
   378	000022'	777730	002527'		INIPDP:	 IOWD	LN$PDL,PDLIST
   379	000023'	260 17 0 00 000000*		PUSHJ	P,.RECOR##	;RESET CORE ALLOCATION
   380	000024'	260 17 0 00 000120'		PUSHJ	P,UPSCN		;IN CASE OF ABORT-RESTART
   381	000025'	260 17 0 00 000213'		PUSHJ	P,$CLOSE	;RESET THE /LOG SPEC BLOCK
   382	000026'	200 01 0 00 400044'		MOVE	T1,ISCNBL	;GET .ISCAN ARGUMENT BLOCK
   383	000027'	260 17 0 00 000000*		PUSHJ	P,.ISCAN##	;INITIALIZE THE SCANNER
   384	000030'	202 01 0 00 002444'		MOVEM	T1,ISCNVL	;REMEMBER VALUE RETURNED 
   385					IFN FT$MTP,<
   386	000031'	362 01 0 00 400113'		SOJE	T1,DOMTAP	;JUMP IF MTAPE COMMAND (VALUE=1)
   387					>;END IFN FT$MTP
   388	000032'	336 00 0 00 002453'		SKIPN	OFFSET		;CCL START?
   389	000033'	332 00 0 00 002445'		SKIPE	TLDVER		;TOLD VERSION YET?
   390	000034'	254 00 0 00 000043'		 JRST	CPYMT0		;YES--GO CALL .TSCAN
   391	000035'	201 01 0 00 000107'		STRNG$	<COPYMT %>	;NO--DO IT NOW
   392	000036'	260 17 0 00 000000*
   393	000037'	200 01 0 00 000137 		MOVE	T1,.JBVER
   394	000040'	260 17 0 00 000000*		PUSHJ	P,.TVERW##
   395	000041'	260 17 0 00 000000*		PUSHJ	P,.TCRLF##
   396	000042'	476 00 0 00 002445'		SETOM	TLDVER

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 13
COPYMT	MAC	23-FEB-77 11:47		GET THE BALL ROLLING

   397	000043'	260 17 0 00 000120'	CPYMT0:	PUSHJ	P,UPSCN		;ENSURE SCAN AROUND
   398	000044'	400 00 0 00 000000 		SETZ	F,		;***CLEAR THE FLAGS
   399	000045'	260 17 0 00 400000'		PUSHJ	P,SCNCMD	;GET A COMMAND
   400	000046'	047 01 0 00 000023 		MSTIME	T1,		;GET TIME OF DAY
   401	000047'	202 01 0 00 002510'		MOVEM	T1,GOTIME	;SAVE AS GO-TIME
   402	000050'	400 01 0 00 000000 		SETZ	T1,		;GET MY RUNTIME
   403	000051'	047 01 0 00 000027 		RUNTIM	T1,
   404	000052'	202 01 0 00 002511'		MOVEM	T1,GORUNT	;SAVE AS INITIAL RUNTIME
   405	000053'	200 01 0 00 003031'		MOVE	T1,OUTSPC+.FXDEV;OUTPUT DEV NAME
   406	000054'	047 01 0 00 000064 		DEVNAM	T1,		;SEE WHAT IT REALLY IS
   407	000055'	254 00 0 00 400170'		 JRST	ILLODV		;CAN'T
   408	000056'	202 01 0 00 002506'		MOVEM	T1,ODVNAM	;SAVE FOR LATER
   409					IFN FT$TST,<
   410	000057'	331 00 0 00 003120'		SKIPL	TESTFL		;NO INPUT IF /TEST
   411	000060'	254 00 0 00 000076'		 JRST	CPYMT1		;SO DON'T  TRY IT
   412					>;END IFN FT$TST
   413	000061'	200 01 0 00 002777'		MOVE	T1,INPSPC+.FXDEV;INPUT NAME
   414	000062'	047 01 0 00 000064 		DEVNAM	T1,		;GET REAL NAME
   415	000063'	254 00 0 00 400171'		 JRST	ILLIDV		;CAN'T
   416	000064'	202 01 0 00 002507'		MOVEM	T1,IDVNAM
   417	000065'	260 17 0 00 400134'		PUSHJ	P,CHKCMD	;CHECK COMMAND FOR GOODNESS
   418	000066'	260 17 0 00 000111'		PUSHJ	P,DWNSCN	;POOF GOES THE HISEG!
   419	000067'	260 17 0 00 000326'		PUSHJ	P,OPNOUT	;OPEN OUTPUT FILE
   420	000070'	260 17 0 00 000400'		PUSHJ	P,OPNINP	;GET NEXT INPUT FILE
   421	000071'	260 17 0 00 000143'		PUSHJ	P,CHKLOG	;SEE ABOUT THE LOG FILE NOW
   422	000072'	260 17 0 00 000634'		PUSHJ	P,DO.IT		;DO IT
   423	000073'	260 17 0 00 000220'	CPYMT9:	PUSHJ	P,CLSLOG	;CLOSE LOG IF IT WAS OPEN
   424	000074'	260 17 0 00 000023*		PUSHJ	P,.RECOR##	;RESET CORE ALLOCATION
   425	000075'	254 00 0 00 000043'		JRST	CPYMT0		;GET NEXT COMMAND
   426
   427					IFN FT$TST,<
   428	000076'	260 17 0 00 400162'	CPYMT1:	PUSHJ	P,CHKBAT	;SEE IF BATCH JOB
   429	000077'	260 17 0 00 000111'		PUSHJ	P,DWNSCN	;MAKE ME SMALLER
   430	000100'	260 17 0 00 000326'		PUSHJ	P,OPNOUT	;OPEN OUTPUT
   431	000101'	260 17 0 00 000143'		PUSHJ	P,CHKLOG	;GO SEE ABOUT LOG FILE BEFORE WE FIRE IT UP
   432	000102'	260 17 0 00 001430'		PUSHJ	P,TESTIT	;TEST IT
   433	000103'	254 00 0 00 000073'		JRST	CPYMT9		;LOOP
   434					>;END IFN FT$TST
   435	000104'	777704	002671'		PLPINI:	IOWD	LN$PRM,PRMPDL	;INITIAL PARAM LIST PTR
   436						LIT$			;FORCE OUT LITERALS
   437

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 14
COPYMT	MAC	23-FEB-77 11:47		GET THE BALL ROLLING

   438	400000'					HIGH$			;THIS CODE CAN DISSAPPEAR
   439
   440	400000'	200 01 0 00 400052'	SCNCMD:	MOVE	T1,TSCNBL	;GET .TSCAN ARGUMENT BLOCK
   441	400001'	260 17 0 00 000000*		PUSHJ	P,.TSCAN##	;CALL .TSCAN TO SCAN COMMAND
   442					IFN FT$TST,<
   443	400002'	331 00 0 00 003120'		SKIPL	TESTFL		;/TAPTST?
   444	400003'	254 00 0 00 400013'		 JRST	SCNTST		;YES--SHOULD ONLY HAVE ONE DEVICE
   445					>;END IFN FT$TST
   446	400004'	332 00 0 00 003031'		SKIPE	OUTSPC+.FXDEV	;OUTPUT THERE?
   447	400005'	336 00 0 00 002777'		SKIPN	INPSPC+.FXDEV	;YES--INPUT?
   448	400006'	260 17 0 00 002353'	E$$CER:	ERROR.	EF$FTL,CER,<COMMAND ERROR>
   449	400007'	300400	400620'
   450					IFN FT$OPT,<
   451	400010'	200 01 0 00 400064'		MOVE	T1,OSCNBL	;GET ARG PTR FOR .OSCAN
   452	400011'	260 17 0 00 000000*		PUSHJ	P,.OSCAN##	;SCAN DSK:SWITCH.INI[-]
   453					>;END IFN FT$OPT
   454	400012'	263 17 0 00 000000 		POPJ	P,		;**SCNCMD RETURN
   455					IFN FT$TST,<
   456	400013'	332 00 0 00 003031'	SCNTST:	SKIPE	OUTSPC+.FXDEV	;WAS IT DEV:/TAPTST= ?
   457						 JRST	[SKIPN INPSPC+.FXDEV ;YES--BUT WAS INPUT SPEC THERE ALSO?
   458							JRST	SCNTS0	;NO--ALL IS WELL
   459	400014'	254 00 0 00 400621'			JRST	E$$CER]	;NO--COMMAND ERROR
   460	400015'	332 01 0 00 002777'		SKIPE	T1,INPSPC+.FXDEV;INPUT SPECIFIED?
   461	400016'	312 01 0 00 400624'		 CAME	T1,[SIXBIT/DSK/] ;YES--IF IT IS DSK
   462	400017'	334 00 0 00 000000 		 SKIPA			;'DSK' MEANS /TEST WAS TYPED
   463	400020'	402 00 0 00 002777'		SETZM	INPSPC+.FXDEV	;FAKE-OUT SO WE USE TAPTST:
   464	400021'	200 01 0 00 400625'		MOVE	T1,[INPSPC,,OUTSPC] ;SETUP TO BLT SPEC TO PROPER PLACE
   465	400022'	251 01 0 00 003062'		BLT	T1,OUTSPE	;...MOVE IT
   466	400023'	200 01 0 00 400626'	SCNTS1:	MOVE	T1,[SIXBIT/TAPTST/] ;LAST CHANCE TRY IF NO NAME NOW
   467	400024'	336 00 0 00 003031'		SKIPN	OUTSPC+.FXDEV	;DID WE GET ON?
   468	400025'	202 01 0 00 003031'		 MOVEM	T1,OUTSPC+.FXDEV;NO--TRY THIS -- COMPLAIN IF FAILURE
   469	400026'	201 01 0 00 000001 	SCNTS0:	MOVEI	T1,N$TSTB	;USE N$TSTB BUFFERS
   470	400027'	202 01 0 00 003130'		MOVEM	T1,NOBUFS	;AND SET IT
   471	400030'	200 01 0 00 003031'		MOVE	T1,OUTSPC+.FXDEV;CHECK DEVICE FOR MAGTAPE
   472	400031'	047 01 0 00 000064 		DEVNAM	T1,		;DO IT AGAIN IN CASE WE CHANGED IT (ABOVE)
   473	400032'	254 00 0 00 400170'		 JRST	ILLODV		;CAN'T GET AT IT
   474	400033'	202 01 0 00 002506'		MOVEM	T1,ODVNAM	;SAVE FOR LATER
   475	400034'	260 17 0 00 400176'		PUSHJ	P,CKISMT	;BECAUSE WE WON'T TEST ANYTHING ELSE
   476	400035'	254 00 0 00 400211'		JRST	E..DNM		;NOT MTA
   477	400036'	200 02 0 00 002506'		MOVE	T2,ODVNAM	;GET NAME FOR MTCHR.
   478	400037'	047 02 0 00 000112 		MTCHR.	T2,		;GET IT
   479	400040'	400 02 0 00 000000 		SETZ	T2,		;BETTER THIS THAN A HALT!
   480	400041'	260 17 0 00 400566'		PUSHJ	P,STSTBZ	;SET UP 1 FOOT RECORD BUFFERSIZE
   481					IFN FT$OPT,<
   482	400042'	200 01 0 00 400064'		MOVE	T1,OSCNBL	;CAN HAVE /IFTYP IN SWITCH.INI
   483	400043'	254 00 0 00 400011*		PJRST	.OSCAN##	;SCAN AND RETURN
   484					>;END IFN FT$OPT
   485					IFE FT$OPT,<
   486						POPJ	P,		;END OF SCNCMD
   487					>;END IFE FT$OPT
   488					>;END IFN FT$TST

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 15
COPYMT	MAC	23-FEB-77 11:47		GET THE BALL ROLLING

   489					;ARGUMENT BLOCK FOR .ISCAN
   490
   491	400044'	000005	400045'		ISCNBL:	XWD 5,	.+1
   492	400045'	777776	400103'			IOWD N$CMDS,CMDLST	;LEGAL COMMAND LIST
   493	400046'	002453'	435564			XWD OFFSET,MY$PFX
   494	400047'	000000	000170'			XWD	0,CHROUT	;SO WE CAN MPX OUTPUT TO LOG FILE
   495	400050'	000000	000000			EXP	0
   496	400051'	400106'	000000			XWD	DOPRMP,0
   497
   498					;.TSCAN ARGUMENT BLOCK
   499
   500	400052'	000011	400053'		TSCNBL:	XWD 11,	.+1
   501	400053'	777750	400221'			IOWD SWTL,SWTN
   502	400054'	400332'	400302'			XWD SWTD,SWTM
   503	400055'	000000	400252'			XWD 0,SWTP
   504	400056'	777777	777777			EXP -1		;USE JOB NAME TABLE
   505	400057'	400467'	400516'			XWD CLRANS,CLRFIL
   506	400060'	400442'	400450'			XWD AIN,AOUT
   507	400061'	000000	000000			EXP 0
   508	400062'	000000	000000			EXP 0		;NO FLAGS
   509	400063'	000000	400517'			EXP STOSWT
   510
   511					IFN FT$OPT,<
   512					;.OSCAN ARGUMENT BLOCK
   513
   514	400064'	000004	400065'		OSCNBL:	XWD 4,	.+1
   515	400065'	777771	400361'			IOWD OPSWL,OPSWN
   516	400066'	400407'	400400'			XWD OPSWD,OPSWM
   517	400067'	000000	400371'			XWD 0,OPSWP
   518	400070'	777777	777777			EXP -1
   519	400071'	000000	000000			EXP 0
   520					>;END IFN FT$OPT
   521
   522					IFN FT$MTP,<	;MTAPE FEATURE
   523					;.TSCAN ARG BLOCK FOR MTAPE COMMAND
   524
   525	400072'	000011	400073'		MTSCNB:	XWD 11,	.+1
   526	400073'	777773	400415'			IOWD MTSWL,MTSWN
   527	400074'	400435'	400430'			XWD MTSWD,MTSWM
   528	400075'	000000	400423'			XWD 0,MTSWP
   529	400076'	777777	777777			EXP	-1
   530	400077'	400467'	400516'			XWD CLRANS,CLRFIL
   531	400100'	400442'	400450'			XWD AIN,AOUT
   532	400101'	000000	000000			EXP 0
   533	400102'	000000	000000			EXP 0
   534	400103'	000000	400517'			EXP STOSWT
   535					>;END IFN FT$MTP
   536
   537	400104'	435760	715564		CMDLST:	EXP	MY$NAM		;IF ANY BODY WANTS IT...
   538					IFN FT$MTP,<	;MTAPE COMMAND
   539	400105'	55 64 41 60 45 00 		SIXBIT	/MTAPE/		;
   540					>;END IFN FT$MTP
   541
   542			000002			N$CMDS==.-CMDLST
   543

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 15-1
COPYMT	MAC	23-FEB-77 11:47		GET THE BALL ROLLING

   544					;SCAN CALLS HERE TO PROMPT
   545
   546	400106'	331 00 0 00 000001 	DOPRMP:	SKIPL	T1		;INITIAL OR CONTINUATION?
   547	400107'	334 01 0 00 400112'		 SKIPA	T1,PRMPT0	;INITIAL
   548	400110'	205 01 0 00 030000 		 MOVSI	T1,'#  '	;CONTINUATION
   549	400111'	254 00 0 00 000000*		PJRST	.TSIXN##	;TYPE IT
   550
   551	400112'	435564	360000		PRMPT0:	XWD	MY$PFX,'>  '

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 16
COPYMT	MAC	23-FEB-77 11:47		MTAPE COMMAND HANDLER

   552					SUBTTL	MTAPE COMMAND HANDLER
   553
   554					IFN FT$MTP,<
   555
   556	400113'	661 00 0 00 002000 	DOMTAP:	TLO	F,FL$MTP	;FLAG MTAPEING
   557	400114'	200 01 0 00 400072'		MOVE	T1,MTSCNB	;TSCAN BLOCK FOR MTAPE COMMAND
   558	400115'	260 17 0 00 400001*		PUSHJ	P,.TSCAN##	;CALL COMMAND SCANNER
   559	400116'	336 01 0 00 002777'		SKIPN	T1,INPSPC+.FXDEV;CHECK FOR AN INPUT SPEC
   560	400117'	254 00 0 00 400006'		 JRST	E$$CER		;NO--MUST HAVE SCREWED UP
   561	400120'	316 01 0 00 400624'		CAMN	T1,[SIXBIT/DSK/] ;IS IT DSK?
   562						 JRST	[SKIPN	T1,INPSPC+.FXNAM ;YES--PROBABLY FORGOT THE COLON
   563							JRST	E$$CER		;WHOOPS!! BAD COMMAND
   564							MOVEM	T1,INPSPC+.FXDEV ;SO TRY THE FILE NAME
   565	400121'	254 00 0 00 400627'			JRST	.+1]
   566	400122'	047 01 0 00 000064 		DEVNAM	T1,		;GET REAL NAME
   567	400123'	254 00 0 00 400171'		 JRST	ILLIDV		;NOT REAL
   568	400124'	202 01 0 00 002507'		MOVEM	T1,IDVNAM	;SAVE FOR LATER
   569	400125'	260 17 0 00 400176'		PUSHJ	P,CKISMT	;ENSURE MTA
   570	400126'	254 00 0 00 400211'		JRST	E..DNM		;NOTT-GO BOMB
   571	400127'	260 17 0 00 000507'		PUSHJ	P,OPINOB	;OPEN INPUT WITH NO BUFFERS
   572	400130'	260 17 0 00 400162'		PUSHJ	P,CHKBAT	;BETTER CHECK FOR BATCH...
   573	400131'	260 17 0 00 000634'		PUSHJ	P,DO.IT		;PERFORM THE OPERATIONS
   574	400132'	260 17 0 00 000000*		PUSHJ	P,.MONRT##	;ALL DONE
   575	400133'	254 00 0 00 000013'		JRST	RESTRT		;ON .CONTINUE GET THE PROMPT
   576					>;END IFN FT$MTP

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 17
COPYMT	MAC	23-FEB-77 11:47		CHECK COMMAND FOR REAL MAGTAPES AND OTHER GOOD THINGS

   577					SUBTTL	CHECK COMMAND FOR REAL MAGTAPES AND OTHER GOOD THINGS
   578
   579	400134'	200 01 0 00 002506'	CHKCMD:	MOVE	T1,ODVNAM	;GET OUTPUT DEVICE REAL NAME
   580	400135'	260 17 0 00 400176'		PUSHJ	P,CKISMT	;ENSURE MTA
   581	400136'	661 00 0 00 000040 		 TLO	F,FL$DSO	;FLAG DSK OUTPUT
   582	400137'	200 01 0 00 002507'		MOVE	T1,IDVNAM	;SAME FOR INPUT
   583	400140'	260 17 0 00 400176'		PUSHJ	P,CKISMT
   584	400141'	661 00 0 00 000100 		 TLO	F,FL$DSI	;FLAG DSK INPUT
   585	400142'	603 00 0 00 000140 		TLNE	F,FL$DSO!FL$DSI	;CHECK FOR DSK IN OR OUT
   586						 JRST	[TLC	F,FL$DSI!FL$DSO ;YES--MAKE SURE NOT BOTH DSK
   587							TLCE	F,FL$DSI!FL$DSO ;
   588							JRST	CHKC.1	;A-OK--MOVIN' ALONG
   589	400143'	254 00 0 00 400641'			ERROR.	(EF$FTL,BDD,<BOTH DEVICES ARE DSK>)]
   590	400144'	200 01 0 00 002506'		MOVE	T1,ODVNAM	;MAKE SURE NOT SAME MTA
   591	400145'	200 02 0 00 002507'		MOVE	T2,IDVNAM	;...
   592	400146'	316 01 0 00 000002 		CAMN	T1,T2		;BETTER NOT BE THE SAME
   593	400147'	254 00 0 00 400174'		 JRST	E$$CUS		;YES--STUPID
   594	400150'	254 00 0 00 400162'		JRST	CHKC.2		;OK--NOW SKIP AHEAD
   595	400151'	525 02 0 00 444164 	CHKC.1:	HRLOI	T2,'DAT'	;SETUP DEFAULT EXTENSION
   596	400152'	603 00 0 00 000100 		TLNE	F,FL$DSI	;DISK INPUT?
   597	400153'	332 00 0 00 003002'		SKIPE	INPSPC+.FXEXT	;NEED ONE?
   598	400154'	334 00 0 00 000000 		  SKIPA			;NO--DON'T TOUCH IT
   599	400155'	202 02 0 00 003002'		   MOVEM T2,INPSPC+.FXEXT ;YES--DEFAULT IT
   600	400156'	603 00 0 00 000040 		TLNE	F,FL$DSO	;DISK OUTPUT?
   601	400157'	332 00 0 00 003034'		SKIPE	OUTSPC+.FXEXT	;YES--NEED DEFAULT?
   602	400160'	334 00 0 00 000000 		  SKIPA			;NO
   603	400161'	202 02 0 00 003034'		   MOVEM T2,OUTSPC+.FXEXT ;YES--DEFAULT
   604	400162'				CHKC.2:
   605	400162'	561 01 0 00 000040 	CHKBAT:	HRROI	T1,.GTLIM	;NOW SEE IF I AM A BATCH JOB
   606	400163'	047 01 0 00 000041 		GETTAB	T1,		;ASK MON
   607	400164'	400 01 0 00 000000 		 SETZ	T1,		;JE NE SAIS PAS
   608	400165'	603 01 0 00 000200 		TLNE	T1,(JB.LBT)	;BATCH JOB?
   609	400166'	661 00 0 00 010000 		 TLO	F,FL$BAT	;YES--REMEMBER THAT
   610	400167'	263 17 0 00 000000 		POPJ	P,		;ALL IS WELL (I HOPE)
   611
   612	400170'	334 01 0 00 003031'	ILLODV:	SKIPA	T1,OUTSPC+.FXDEV;DEVNAM FAILED
   613	400171'	200 01 0 00 002777'	ILLIDV:	MOVE	T1,INPSPC+.FXDEV
   614	400172'	260 17 0 00 002353'		ERROR.	EF$FTL!EF$SIX,IUD,<ILLEGAL OR UNKNOWN DEVICE - >
   615	400173'	300403	400654'
   616
   617	400174'	260 17 0 00 002353'	E$$CUS:	ERROR.	EF$FTL,CUS,<CAN'T USE SAME MTA FOR INPUT AND OUTPUT>
   618	400175'	300400	400665'

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 18
COPYMT	MAC	23-FEB-77 11:47		CHECK COMMAND FOR REAL MAGTAPES AND OTHER GOOD THINGS

   619					;CKISMT -- SEE IF DEVICE IS MTA
   620					;CALL:	MOVE	T1,DEVNAM
   621					;	PUSHJ	P,CKISMT
   622					;	*ITS A DSK*
   623					;	*ITS MTA*
   624					;PRESERVES T1
   625
   626	400176'	200 02 0 00 000001 	CKISMT:	MOVE	T2,T1		;COPY DEVICE NAME
   627	400177'	047 02 0 00 000004 		DEVCHR	T2,		;GET CHARACTERISTICS
   628	400200'	603 02 0 00 000020 		TLNE	T2,(DV.MTA)	;IS IT AN MTA?
   629	400201'	603 02 0 00 000010 		 TLNE	T2,(DV.TTY)	; AND ALSO A TTY (IMPLIES NUL:)
   630	400202'	254 00 0 00 400207'		JRST	CKISM1		;NO--SEE IF DSK
   631	400203'	603 02 0 00 000040 		TLNE	T2,(DV.AVL)	;MTA--IS IT AVAILABLE TO ME?
   632	400204'	254 00 0 00 000000*		 JRST	.POPJ1##	;YES--DONE
   633	400205'	260 17 0 00 002353'		ERROR.	EF$FTL!EF$SIX,MNA,<MTA IS NOT AVAILABLE - >
   634	400206'	300403	400673'
   635	400207'	603 02 0 00 200000 	CKISM1:	TLNE	T2,(DV.DSK)	;IS IT A DSK?
   636	400210'	603 02 0 00 000010 		 TLNE	T2,(DV.TTY)	;YES--AND NOT TTY (I.E. NOT NUL:)
   637	400211'	260 17 0 00 002353'	E..DNM:	ERROR.	EF$SIX!EF$FTL,DNM,<DEVICE NOT A MAGTAPE - >
   638	400212'	300403	400701'
   639	400213'	263 17 0 00 000000 		POPJ	P,		;DEVICE IS A DISK

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 19
COPYMT	MAC	23-FEB-77 11:47		SWITCH TABLE

   640					SUBTTL	SWITCH TABLE
   641
   642					DEFINE	SWTCHS,<
   643					SP *BACKSP,FN$BSP,.SWDEC##,MTN,FS$XTR!FS.VRQ
   644					SP BUFSIZ,BUFSIZ,.SWDEC##,BFZ,FS.NUE
   645					SS CLOSE,$CLOSE,0,FS.NFS!FS.NCM!FS$SPL
   646					SP COMMENT,<POINT ^D65-^D28,UCOMNT>,.SWASQ##,,FS.NUE
   647					SP CONCAT,FN$CON,.SWDEC##,MTN,FS.VRQ!FS$XTR!FS$INP
   648					SP *COPY,FN$CPY,.SWDEC##,MTN,FS$XTR!FS$INP!FS.VRQ
   649					SS *EOF,FN$EOF,FN$EOF,FS$NVL
   650					SL ERROR,ERRFLG,ERL,ERLCON,FS.NUE
   651					SP IBUF,NIBUFS,.SWDEC##,BFS,FS.NUE
   652					SS *IFTYP,<POINTR (F,$FLITY)>,1,FS.NUE
   653					SP LOG,$LOGSW,.POPJ##,LGF,FS.NFS!FS.NCM!FS$SPL
   654					SL MODE,MODFLG,MOD,MODBIN,FS.NUE
   655					SS NORETR,RTRYFL,1,FS.NUE
   656					SP OBUF,NOBUFS,.SWDEC##,BFS,FS.NUE
   657					IFN FT$TST,<
   658					SP REPEAT,RPETFL,.SWDEC##,RPT,FS.NUE
   659					>;END IFN FT$TST
   660					SS REPORT,RPTFLG,1,FS.NUE
   661					SP RETRY,NUMTRY,.SWDEC##,TRY,FS.NUE
   662					SS *REWIND,FN$REW,FN$REW,FS$NVL
   663					SP *SKIP,FN$SKP,.SWDEC##,MTN,FS$XTR!FS.VRQ
   664					IFN FT$TST,<
   665					SP TAPTST,TESTFL,.SWDEC##,TST,FS.NUE
   666					SP *TEST,TESTFL,.SWDEC##,TST,FS.NUE
   667					>;END IFN FT$TST
   668					SS TIME,TIMEFL,1,FS.NUE
   669					SS TO32,<POINTR(F,$FL232)>,1,FS.NUE
   670					SS *UNLOAD,FN$UNL,FN$UNL,FS$NVL
   671					>
   672
   673			000032		MX.LGF==.FXLEN
   674			000001		PD.LGF==1
   675					DM (BFS,^D20,6,6)
   676					DM (MTN,177777,177777,177777)
   677					DM (BFZ,^D4096,^D2048,^D1024)
   678					IFN FT$TST,<
   679					DM (RPT,177777,1,1)
   680					DM (TRY,^D100,DF$TRY,DF$TRY)
   681					DM (TST,177777,0,0)
   682					>;END IFN FT$TST
   683	400214'	435756	645156		KEYS (ERL,<CONTIN,IGNORE,QUERY>)
   684	400215'	514756	576245
   685	400216'	616545	627100
   686	400217'	425156	416271		KEYS (MOD,<BINARY,INDUST,SEVENB>)
   687	400220'	515644	656364
   688	400221'	634566	455642
   689
   690					DOSCAN	(SWT)
   691	400222'	124241	435363			EXP  SIXBIT  /*BACKSP/
   692	400223'	426546	635172			EXP  SIXBIT  /BUFSIZ/
   693	400224'	435457	634500			EXP  SIXBIT  /CLOSE/
   694	400225'	435755	554556			EXP  SIXBIT  /COMMENT/

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 19-1
COPYMT	MAC	23-FEB-77 11:47		SWITCH TABLE

   695	400226'	435756	434164			EXP  SIXBIT  /CONCAT/
   696	400227'	124357	607100			EXP  SIXBIT  /*COPY/
   697	400230'	124557	460000			EXP  SIXBIT  /*EOF/
   698	400231'	456262	576200			EXP  SIXBIT  /ERROR/
   699	400232'	514265	460000			EXP  SIXBIT  /IBUF/
   700	400233'	125146	647160			EXP  SIXBIT  /*IFTYP/
   701	400234'	545747	000000			EXP  SIXBIT  /LOG/
   702	400235'	555744	450000			EXP  SIXBIT  /MODE/
   703	400236'	565762	456462			EXP  SIXBIT  /NORETR/
   704	400237'	574265	460000			EXP  SIXBIT  /OBUF/
   705	400240'	624560	454164			EXP  SIXBIT  /REPEAT/
   706	400241'	624560	576264			EXP  SIXBIT  /REPORT/
   707	400242'	624564	627100			EXP  SIXBIT  /RETRY/
   708	400243'	126245	675156			EXP  SIXBIT  /*REWIND/
   709	400244'	126353	516000			EXP  SIXBIT  /*SKIP/
   710	400245'	644160	646364			EXP  SIXBIT  /TAPTST/
   711	400246'	126445	636400			EXP  SIXBIT  /*TEST/
   712	400247'	645155	450000			EXP  SIXBIT  /TIME/
   713	400250'	645723	220000			EXP  SIXBIT  /TO32/
   714	400251'	126556	545741			EXP  SIXBIT  /*UNLOAD/
   715	400252'	000000	000001			EXP <FN$BSP>			;*BACKSP
   716	400253'	000000	003131'			EXP <BUFSIZ>			;BUFSIZ
   717	400254'	000000	000213'			EXP <$CLOSE>			;CLOSE
   718	400255'	444500	003063'			EXP <POINT ^D65-^D28,UCOMNT>			;COMMENT
   719	400256'	000000	000007			EXP <FN$CON>			;CONCAT
   720	400257'	000000	000006			EXP <FN$CPY>			;*COPY
   721	400260'	000000	000003			EXP <FN$EOF>			;*EOF
   722	400261'	000000	003132'			EXP <ERRFLG>			;ERROR
   723	400262'	000000	003127'			EXP <NIBUFS>			;IBUF
   724	400263'	310100	000000		($FLITY)^<^L<$FLITY>+^L<-<<$FLITY>_<^L<$FLITY>>>-1>-1>^>^>			;*IFTYP
   725	400264'	000000	400506'			EXP <$LOGSW>			;LOG
   726	400265'	000000	003133'			EXP <MODFLG>			;MODE
   727	400266'	000000	003123'			EXP <RTRYFL>			;NORETR
   728	400267'	000000	003130'			EXP <NOBUFS>			;OBUF
   729	400270'	000000	003122'			EXP <RPETFL>			;REPEAT
   730	400271'	000000	003125'			EXP <RPTFLG>			;REPORT
   731	400272'	000000	003121'			EXP <NUMTRY>			;RETRY
   732	400273'	000000	000004			EXP <FN$REW>			;*REWIND
   733	400274'	000000	000002			EXP <FN$SKP>			;*SKIP
   734	400275'	000000	003120'			EXP <TESTFL>			;TAPTST
   735	400276'	000000	003120'			EXP <TESTFL>			;*TEST
   736	400277'	000000	003124'			EXP <TIMEFL>			;TIME
   737	400300'	260100	000000		($FL232)^<^L<$FL232>+^L<-<<$FL232>_<^L<$FL232>>>-1>-1>^>^>			;TO32
   738	400301'	000000	000005			EXP <FN$UNL>			;*UNLOAD
   739	400302'	177777	000000*			XWD	MX.MTN,.SWDEC##	;*BACKSP
   740	400303'	010000	400302*			XWD	MX.BFZ,.SWDEC##	;BUFSIZ
   741	400304'	000000	000000			XWD	0,0	;CLOSE
   742	400305'	000000	000000*			XWD	MX.,.SWASQ##	;COMMENT
   743	400306'	177777	400303*			XWD	MX.MTN,.SWDEC##	;CONCAT
   744	400307'	177777	400306*			XWD	MX.MTN,.SWDEC##	;*COPY
   745	400310'	000000	000000			XWD	0,0	;*EOF
   746	400311'	777775	400213'			XWD	-ERL.L,ERL.T-1	;ERROR
   747	400312'	000024	400307*			XWD	MX.BFS,.SWDEC##	;IBUF
   748	400313'	000000	000000			XWD	0,0	;*IFTYP
   749	400314'	000032	000000*			XWD	MX.LGF,.POPJ##	;LOG

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 19-2
COPYMT	MAC	23-FEB-77 11:47		SWITCH TABLE

   750	400315'	777775	400216'			XWD	-MOD.L,MOD.T-1	;MODE
   751	400316'	000000	000000			XWD	0,0	;NORETR
   752	400317'	000024	400312*			XWD	MX.BFS,.SWDEC##	;OBUF
   753	400320'	177777	400317*			XWD	MX.RPT,.SWDEC##	;REPEAT
   754	400321'	000000	000000			XWD	0,0	;REPORT
   755	400322'	000144	400320*			XWD	MX.TRY,.SWDEC##	;RETRY
   756	400323'	000000	000000			XWD	0,0	;*REWIND
   757	400324'	177777	400322*			XWD	MX.MTN,.SWDEC##	;*SKIP
   758	400325'	177777	400324*			XWD	MX.TST,.SWDEC##	;TAPTST
   759	400326'	177777	400325*			XWD	MX.TST,.SWDEC##	;*TEST
   760	400327'	000000	000000			XWD	0,0	;TIME
   761	400330'	000000	000000			XWD	0,0	;TO32
   762	400331'	000000	000000			XWD	0,0	;*UNLOAD
   763	400332'	042000	177777			XWD	..TEMR,PD.MTN	;*BACKSP
   764	400333'	100000	002000			XWD	..TEMR,PD.BFZ	;BUFSIZ
   765	400334'	404100	000000			XWD	..TEMR,0	;CLOSE
   766	400335'	100000	000000			XWD	..TEMR,PD.	;COMMENT
   767	400336'	042200	177777			XWD	..TEMR,PD.MTN	;CONCAT
   768	400337'	042200	177777			XWD	..TEMR,PD.MTN	;*COPY
   769	400340'	001000	000003			XWD	..TEMR,FN$EOF	;*EOF
   770	400341'	100000	000001			XWD	..TEMR,ERLCON	;ERROR
   771	400342'	100000	000006			XWD	..TEMR,PD.BFS	;IBUF
   772	400343'	100000	000001			XWD	..TEMR,1	;*IFTYP
   773	400344'	404100	000001			XWD	..TEMR,PD.LGF	;LOG
   774	400345'	100000	000001			XWD	..TEMR,MODBIN	;MODE
   775	400346'	100000	000001			XWD	..TEMR,1	;NORETR
   776	400347'	100000	000006			XWD	..TEMR,PD.BFS	;OBUF
   777	400350'	100000	000001			XWD	..TEMR,PD.RPT	;REPEAT
   778	400351'	100000	000001			XWD	..TEMR,1	;REPORT
   779	400352'	100000	000004			XWD	..TEMR,PD.TRY	;RETRY
   780	400353'	001000	000004			XWD	..TEMR,FN$REW	;*REWIND
   781	400354'	042000	177777			XWD	..TEMR,PD.MTN	;*SKIP
   782	400355'	100000	000000			XWD	..TEMR,PD.TST	;TAPTST
   783	400356'	100000	000000			XWD	..TEMR,PD.TST	;*TEST
   784	400357'	100000	000001			XWD	..TEMR,1	;TIME
   785	400360'	100000	000001			XWD	..TEMR,1	;TO32
   786	400361'	001000	000005			XWD	..TEMR,FN$UNL	;*UNLOAD
   787

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 20
COPYMT	MAC	23-FEB-77 11:47		.OSCAN/MTAPE COMMAND SWITCH TABLES

   788					SUBTTL	.OSCAN/MTAPE COMMAND SWITCH TABLES
   789
   790					IFN FT$OPT,<	;ONLY IF ASSEMBLED FOR OPTION SCANNNING
   791
   792					DEFINE	SWTCHS,<
   793					SP BUFSIZ,BUFSIZ,.SWDEC##,BFZ,FS.NUE
   794					SL ERROR,ERRFLG,ERL,ERLCON,FS.NUE
   795					SP IBUF,NIBUFS,.SWDEC##,BFS,FS.NUE
   796					SS *IFTYP,<POINTR (F,$FLITY)>,1,FS.NUE
   797					SP LOG,$LOGSW,.POPJ##,LGF,FS.NFS!FS.NCM!FS$SPL
   798					SP OBUF,NOBUFS,.SWDEC##,BFS,FS.NUE
   799					SS TIME,TIMEFL,1,FS.NUE
   800					>
   801
   802					DOSCAN (OPSW)
   803	400362'	426546	635172			EXP  SIXBIT  /BUFSIZ/
   804	400363'	456262	576200			EXP  SIXBIT  /ERROR/
   805	400364'	514265	460000			EXP  SIXBIT  /IBUF/
   806	400365'	125146	647160			EXP  SIXBIT  /*IFTYP/
   807	400366'	545747	000000			EXP  SIXBIT  /LOG/
   808	400367'	574265	460000			EXP  SIXBIT  /OBUF/
   809	400370'	645155	450000			EXP  SIXBIT  /TIME/
   810	400371'	000000	003131'			EXP <BUFSIZ>			;BUFSIZ
   811	400372'	000000	003132'			EXP <ERRFLG>			;ERROR
   812	400373'	000000	003127'			EXP <NIBUFS>			;IBUF
   813	400374'	310100	000000		($FLITY)^<^L<$FLITY>+^L<-<<$FLITY>_<^L<$FLITY>>>-1>-1>^>^>			;*IFTYP
   814	400375'	000000	400506'			EXP <$LOGSW>			;LOG
   815	400376'	000000	003130'			EXP <NOBUFS>			;OBUF
   816	400377'	000000	003124'			EXP <TIMEFL>			;TIME
   817	400400'	010000	400326*			XWD	MX.BFZ,.SWDEC##	;BUFSIZ
   818	400401'	777775	400213'			XWD	-ERL.L,ERL.T-1	;ERROR
   819	400402'	000024	400400*			XWD	MX.BFS,.SWDEC##	;IBUF
   820	400403'	000000	000000			XWD	0,0	;*IFTYP
   821	400404'	000032	400314*			XWD	MX.LGF,.POPJ##	;LOG
   822	400405'	000024	400402*			XWD	MX.BFS,.SWDEC##	;OBUF
   823	400406'	000000	000000			XWD	0,0	;TIME
   824	400407'	100000	002000			XWD	..TEMR,PD.BFZ	;BUFSIZ
   825	400410'	100000	000001			XWD	..TEMR,ERLCON	;ERROR
   826	400411'	100000	000006			XWD	..TEMR,PD.BFS	;IBUF
   827	400412'	100000	000001			XWD	..TEMR,1	;*IFTYP
   828	400413'	404100	000001			XWD	..TEMR,PD.LGF	;LOG
   829	400414'	100000	000006			XWD	..TEMR,PD.BFS	;OBUF
   830	400415'	100000	000001			XWD	..TEMR,1	;TIME
   831					>;END IFN FT$OPT
   832
   833					IFN FT$MTP,<
   834
   835					DEFINE SWTCHS,<
   836					SP *BACKSP,FN$BSP,.SWDEC##,MTN,FS$XTR
   837					SS *EOF,FN$EOF,FN$EOF,FS$NVL
   838					SS *REWIND,FN$REW,FN$REW,FS$NVL
   839					SP *SKIP,FN$SKP,.SWDEC##,MTN,FS$XTR
   840					SS *UNLOAD,FN$UNL,FN$UNL,FS$NVL
   841					>
   842

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 20-1
COPYMT	MAC	23-FEB-77 11:47		.OSCAN/MTAPE COMMAND SWITCH TABLES

   843					DOSCAN (MTSW)
   844	400416'	124241	435363			EXP  SIXBIT  /*BACKSP/
   845	400417'	124557	460000			EXP  SIXBIT  /*EOF/
   846	400420'	126245	675156			EXP  SIXBIT  /*REWIND/
   847	400421'	126353	516000			EXP  SIXBIT  /*SKIP/
   848	400422'	126556	545741			EXP  SIXBIT  /*UNLOAD/
   849	400423'	000000	000001			EXP <FN$BSP>			;*BACKSP
   850	400424'	000000	000003			EXP <FN$EOF>			;*EOF
   851	400425'	000000	000004			EXP <FN$REW>			;*REWIND
   852	400426'	000000	000002			EXP <FN$SKP>			;*SKIP
   853	400427'	000000	000005			EXP <FN$UNL>			;*UNLOAD
   854	400430'	177777	400405*			XWD	MX.MTN,.SWDEC##	;*BACKSP
   855	400431'	000000	000000			XWD	0,0	;*EOF
   856	400432'	000000	000000			XWD	0,0	;*REWIND
   857	400433'	177777	400430*			XWD	MX.MTN,.SWDEC##	;*SKIP
   858	400434'	000000	000000			XWD	0,0	;*UNLOAD
   859	400435'	002000	177777			XWD	..TEMR,PD.MTN	;*BACKSP
   860	400436'	001000	000003			XWD	..TEMR,FN$EOF	;*EOF
   861	400437'	001000	000004			XWD	..TEMR,FN$REW	;*REWIND
   862	400440'	002000	177777			XWD	..TEMR,PD.MTN	;*SKIP
   863	400441'	001000	000005			XWD	..TEMR,FN$UNL	;*UNLOAD
   864					>;END IFN FT$MTP

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 21
COPYMT	MAC	23-FEB-77 11:47		HELPER ROUTINES FOR SCANNING COMMANDS

   865					SUBTTL	HELPER ROUTINES FOR SCANNING COMMANDS
   866
   867					;SCAN CALLS HERE TO ALLOCATE SPACE FOR INPUT SPEC
   868
   869	400442'	607 00 0 00 102000 	AIN:	TLNN	F,FL$CPY!IFN FT$MTP,<FL$MTP> ;DID WE SEE /COPY OR /CONCAT?
   870									;OR IS THIS MTAPE COMMAND?
   871	400443'	260 17 0 00 400503'		 PUSHJ	P,CPYHOL	;NO--SET UP TO COPY WHOLE TAPE
   872	400444'	561 01 0 00 777776 		HRROI	T1,FN$EOL	;SET END OF LIST
   873	400445'	260 17 0 00 400552'		PUSHJ	P,PRMSTO	;...
   874	400446'	201 01 0 00 002777'		MOVEI	T1,INPSPC	;POINT TO SPEC
   875	400447'	254 00 0 00 400456'		PJRST	ALEN		;GET LENGTH AND RETURN
   876
   877					;SCAN CALLS HERE TO ALLOC OUTPUT SPEC SPACE
   878
   879	400450'	561 01 0 00 777777 	AOUT:	HRROI	T1,FN$INP	;SET END OF OUTPUT LIST
   880	400451'	260 17 0 00 400552'		PUSHJ	P,PRMSTO	;...
   881	400452'	260 17 0 00 400456'		PUSHJ	P,ALEN		;SETUP MODFLG AND T2 (LENGTH)
   882	400453'	661 00 0 00 200000 		TLO	F,FL$OUT	;OUTPUT SPEC ALLOCATED
   883	400454'	201 01 0 00 003031'		MOVEI	T1,OUTSPC	;HERE IT IS!
   884	400455'	263 17 0 00 000000 		POPJ	P,		;RETURN FROM AOUT
   885	400456'	337 02 0 00 003133'	ALEN:	SKIPG	T2,MODFLG	;/MODE:MODE SPECIFIED THIS SIDE?
   886	400457'	254 00 0 00 400465'		 JRST	ALEN2		;NO--DON'T BOTHER WITH IT
   887	400460'	603 00 0 00 200000 		TLNE	F,FL$OUT	;INPUT?
   888	400461'	202 02 0 00 003134'		MOVEM	T2,INPMOD	;YES
   889	400462'	607 00 0 00 200000 		TLNN	F,FL$OUT	;OUTPUT?
   890	400463'	202 02 0 00 003135'		MOVEM	T2,OUTMOD	;YES
   891	400464'	476 00 0 00 003133'		SETOM	MODFLG		;RESET MODFLG SO SCAN DOESN'T BARF
   892	400465'	201 02 0 00 000032 	ALEN2:	MOVEI	T2,LN$FDB	;TELL SCAN LENGTH OF FDB
   893	400466'	263 17 0 00 000000 		POPJ	P,
   894
   895					;SCAN CALLS HERE TO CLEAR ALL ANSWERS
   896
   897	400467'	402 00 0 00 002777'	CLRANS:	STORE	T1,SCN$FZ,SCN$LZ,0
   898	400470'	200 01 0 00 400702'
   899	400471'	251 01 0 00 003135'
   900	400472'	476 00 0 00 003063'		STORE	T1,SWT$FO,SWT$LO,-1 ;WORD SWITCHES TO -1 PLEASE
   901	400473'	200 01 0 00 400703'
   902	400474'	251 01 0 00 003135'
   903	400475'	200 12 0 00 000104'		MOVE	PLP,PLPINI	;SETUP PARAM LIST PTR
   904					IFN FT$MTP,<
   905	400476'	607 00 0 00 002000 		TLNN	F,FL$MTP	;MTAPE COMMAND?
   906	400477'	263 17 0 00 000000 		 POPJ	P,		;NO
   907	400500'	561 01 0 00 777777 		HRROI	T1,FN$INP	;YES--FORCE TO INPUT SIDE ONLY
   908	400501'	260 17 0 00 400552'		PUSHJ	P,PRMSTO	;SET ON PARAM LIST
   909					>;END IFN FT$MTP
   910	400502'	263 17 0 00 000000 		POPJ	P,
   911
   912					;FIX UP TO COPY WHOLE TAPE...NO /COPY OR /CONCAT
   913
   914	400503'	201 01 0 00 000006 	CPYHOL:	MOVEI	T1,FN$CPY	;FUNCTION
   915	400504'	525 02 0 00 677777 		HRLOI	T2,677777	;LARGE NUMBER OF FILES/RECORDS
   916	400505'	254 00 0 00 400552'		PJRST	PRMSTO		;SET ON PARAM LIST AND RETURN
   917
   918					;HERE TO STORE /LOG SWITCH
   919

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 21-1
COPYMT	MAC	23-FEB-77 11:47		HELPER ROUTINES FOR SCANNING COMMANDS

   920	400506'	302 10 0 00 000072 	$LOGSW:	CAIE	C,":"		;IS THERE A FILE SPEC?
   921						 JRST	[MOVEI	T1,1	;NO--STORE A 1
   922							MOVEM	T1,LOGSPC;...
   923	400507'	254 00 0 00 400704'			POPJ	P,]	;RETURN TO SCAN
   924	400510'	260 17 0 00 000000*		PUSHJ	P,.FILIN##	;READ THE FILE SPEC
   925	400511'	201 01 0 00 002454'		MOVEI	T1,LOGSPC	;POINT AT MY STORAGE
   926	400512'	201 02 0 00 000032 		MOVEI	T2,.FXLEN
   927	400513'	260 17 0 00 000000*		PUSHJ	P,.GTSPC##	;COPY SPEC TO MINE AREA
   928	400514'	201 01 0 00 000001 		MOVEI	T1,1		;NO SENSE IN SCAN CALLING CLRFIL NOW
   929	400515'	254 00 0 00 000000*		PJRST	.CLRFL##	;CLEAR FILE AREA AND RETURN

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 22
COPYMT	MAC	23-FEB-77 11:47		HELPER ROUTINES FOR SCANNING COMMANDS

   930					;SCAN CALLS HERE TO CLEAR ALL FILE ANSWERS
   931
   932	400516'	263 17 0 00 000000 	CLRFIL:	POPJ	P,		;***
   933
   934					;SCAN CALLS HERE TO STORE FILE SWITCHES
   935					;WITH N=VALUE,T2=PTR (FUNCTION FN$XXX IN THIS CASE), AND T3=FLAGS (LH)
   936					;ALSO P1=SWITCH INDEX
   937
   938	400517'				STOSWT:
   939	400517'	603 03 0 00 000100 		TLNE	T3,(FS$SPL)	;SPECIAL PROCESSING?
   940	400520'	254 00 1 05 400252'		 JRST	@SWTP(P1)	;YES--GO THERE
   941	400521'	607 03 0 00 000400 		TLNN	T3,(FS$OUT)	;SWITCH OUTPUT ONLY?
   942	400522'	254 00 0 00 400525'		 JRST	STOSWA		;NO
   943	400523'	603 00 0 00 200000 		TLNE	F,FL$OUT	;YES--IS OUTPUT DONE?
   944	400524'	254 00 0 00 400560'		 JRST	E$$OSI		;YES--GO BOMB--OUTPUT SWITCH ON INPUT
   945	400525'	607 03 0 00 000200 	STOSWA:	TLNN	T3,(FS$INP)	;INPUT ONLY?
   946	400526'	254 00 0 00 400531'		 JRST	STOSWB		;NO--GO STORE IT
   947	400527'	607 00 0 00 200000 		TLNN	F,FL$OUT	;YES--OUTPUT DONE YET?
   948	400530'	254 00 0 00 400563'		 JRST	E$$ISO		;NO--GO BOMB
   949	400531'	603 03 0 00 001000 	STOSWB:	TLNE	T3,(FS$NVL)	;NEVER TAKE A VALUE?
   950	400532'	254 00 0 00 400547'		 JRST	SWTS0A		;YES--MAKE SURE IT DOESN'T GET ONE
   951									;(BUT SET VALUE OF ONE SO IT GETS DONE ONCE)
   952	400533'	607 03 0 00 002000 		 TLNN	T3,(FS$XTR)	;NO--DOES IT TAKE EXTRA VALUES?
   953	400534'	254 00 0 00 400550'		  JRST	SWTST0		;NO--JUST MOVE ALONG
   954	400535'	302 10 0 00 000072 		CAIE	C,":"		;YES--IS THERE ONE?
   955	400536'	254 00 0 00 400550'		 JRST	SWTST0		;NO--ONLY RECORDS WERE GIVEN
   956						SAVE$	<N,T2>		;YES--SAVE VALUE, AND PTR (FUNCTION)
   957	400541'	260 17 0 00 000000*		PUSHJ	P,.DECNW##	;READ SECOND VALUE
   958						RESTR$	<T1,T2>		;RESTORE GOOD STUFF AND POSITION IN CORRECT ACS
   959	400544'	207 00 0 00 000002 		MOVSS	T2		;BUT FILE COUNT GOES IN LEFT HALF
   960	400545'	540 02 0 00 000007 		HRR	T2,N		;AND RECORD COUNT TO RIGHT HALF
   961	400546'	254 00 0 00 400552'		PJRST	PRMSTO		;STORE PARAMS, AND SKIP SCAN SWITCH STORE
   962
   963	400547'	201 07 0 00 000001 	SWTS0A:	MOVEI	N,1		;FS$NVL--MAKE SURE IT GETS DONE 1 TIME
   964	400550'	200 01 0 00 000002 	SWTST0:	MOVE	T1,T2		;POSITION FUNCTION
   965	400551'	550 02 0 00 000007 		HRRZ	T2,N		;AND VALUE (NOTE /BACKSP:N MEANS N RECORDS)
   966					;	PJRST	PRMSTO		;GO STORE PARAMS AND RETURN
   967
   968					;CALL PRMSTO TO STORE PARAMETERS IN FUNCTION PARAMETER LIST
   969					;WITH T1=FUNCTION, T2=VALUE
   970
   971	400552'	261 12 0 00 000001 	PRMSTO:	PUSH	PLP,T1		;STORE PARAMETER
   972	400553'	261 12 0 00 000002 		PUSH	PLP,T2		;AND VALUE (NOT USED IF DOESN'T TAKE ONE)
   973	400554'	302 01 0 00 000006 		CAIE	T1,FN$CPY	;IF THIS IS /COPY
   974	400555'	306 01 0 00 000007 		CAIN	T1,FN$CON	;OR /CONCAT
   975	400556'	661 00 0 00 100000 		 TLO	F,FL$CPY	;THEN WE HAVE A COPY SWITCH
   976	400557'	263 17 0 00 000000 		POPJ	P,		;DONE
   977
   978	400560'	200 01 0 05 400222'	E$$OSI:	MOVE	T1,SWTN(P1)	;GET SWITCH NAME FOR DUM USER
   979	400561'	260 17 0 00 002353'		ERROR.	EF$FTL!EF$SIX,OSI,<OUTPUT SWITCH ILLEGAL ON INPUT - >
   980	400562'	300403	400716'
   981	400563'	200 01 0 05 400222'	E$$ISO:	MOVE	T1,SWTN(P1)	;GET SWITCH NAME
   982	400564'	260 17 0 00 002353'		ERROR.	EF$FTL!EF$SIX,ISO,<INPUT SWITCH ILLEGAL ON OUTPUT - >
   983	400565'	300403	400726'

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 23
COPYMT	MAC	23-FEB-77 11:47		DETERMINE BUFFER SIZE FOR TAPE TESTING

   984					SUBTTL	DETERMINE BUFFER SIZE FOR TAPE TESTING
   985
   986					IFN FT$TST,<
   987	400566'	135 01 0 00 400727'	STSTBZ:	LDB	T1,[POINTR (OUTSPC+.FXMOD,FX.DEN)] ;SEE IF /DENSITY
   988	400567'	336 00 0 00 000001 		SKIPN	T1		;GET ONE?
   989	400570'	135 01 0 00 400730'		LDB	T1,[POINTR (T2,MT.DEN)] ;NO--GET MTCHR. DENSITY
   990	400571'	602 02 0 00 000020 		TRNE	T2,MT.7TR	;7 TRACK?
   991	400572'	307 01 0 00 000003 		 CAIG	T1,3		;YES--.GT. 800 BPI?
   992	400573'	326 01 0 00 400577'		  JUMPN	T1,STSBZ0	;OK IF NON-ZERO
   993	400574'	260 17 0 00 002353'		 WARN.	0,CDD,<CAN'T DETERMINE DENSITY - 800 BPI ASSUMED>
   994	400575'	300200	400742'
   995	400576'	201 01 0 00 000003 		MOVEI	T1,3		;800 BPI
   996	400577'	202 01 0 00 003117'	STSBZ0:	MOVEM	T1,TSTDEN	;SAVE TEST DENISTY
   997	400600'	602 02 0 00 000020 		TRNE	T2,MT.7TR	;SEVEN TRACK?
   998	400601'	334 01 0 01 400604'		 SKIPA	T1,BUFSZ7-1(T1)	;YES--GET PROPER LENGTH
   999	400602'	200 01 0 01 400607'		  MOVE	T1,BUFSZ9-1(T1)	;NO--USE 9-TRACK LENGTH
  1000	400603'	202 01 0 00 003131'		MOVEM	T1,BUFSIZ	;SET IT
  1001	400604'	263 17 0 00 000000 		POPJ	P,
  1002
  1003					;TABLE OF RECORD LENGTHS FOR DIFFERENT DENSITIES ON 7/9 TRACK UNITS
  1004					;LENGTH FOR ONE FOOT RECORDS = <DENSITY>/<BYTES/WORD ON TAPE>*<1 FOOT-IRG>
  1005					;(IRG=INTER-RECORD GAP)
  1006
  1007	400605'	000000	000567		BUFSZ7:	EXP	^D375,^D1042,^D1500 ;200/556/800
  1008	400606'	000000	002022
  1009	400607'	000000	002734
  1010	400610'	000000	000000		BUFSZ9:	EXP	0,0,^D1824,^D3648,^D14250   ;200/556/800/1600/6250
  1011	400611'	000000	000000
  1012	400612'	000000	003440
  1013	400613'	000000	007100
  1014	400614'	000000	033652
  1015					>;END IFN FT$TST
  1016
  1017						LIT$			;FORCE OUT HISEG LITERALS
  1018

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 24
COPYMT	MAC	23-FEB-77 11:47		HIGH SEGMENT HANDLING

  1019					SUBTTL	HIGH SEGMENT HANDLING
  1020
  1021	000111'					LOW$
  1022
  1023					;DWNSCN -- REMOVE THE HISEG IF PRESENT
  1024					;CALL:	PUSHJ	P,DWNSCN
  1025					;	*RETURN--ALL ACS SAVED*
  1026
  1027	000111'	336 00 0 00 000115 	DWNSCN:	SKIPN	.JBHRL		;HIGH SEGMENT AROUND?
  1028	000112'	263 17 0 00 000000 		POPJ	P,		;NO--DON'T DO CORE UUO NOW
  1029						SAVE$	T1		;PRESERVE T1 AS ADVERTIZED
  1030	000114'	205 01 0 00 000001 		MOVSI	T1,1		;YES--GET RID OF IT
  1031	000115'	047 01 0 00 000011 		CORE	T1,		;BYE/!
  1032	000116'	255 00 0 00 000000 		 JFCL			;SNH
  1033	000117'	254 00 0 00 002136'		PJRST	TPOPJ		;GET T1 AND RETURN
  1034
  1035					;UPSCN -- REGET THE HISEGMENT
  1036					;CALL:	PUSHJ 	P,UPSCN
  1037					;	*RETURN--ALL ACS SAVED*
  1038
  1039	000120'	332 00 0 00 000115 	UPSCN:	SKIPE	.JBHRL		;HIGH SEGMENT THERE?
  1040	000121'	263 17 0 00 000000 		 POPJ	P,		;YES--SKIP COSTLY GETSEG
  1041	000122'	202 17 0 00 002617'		MOVEM	17,SAVAC+17	;GETSEG DESTROYS ACS
  1042	000123'	201 17 0 00 002600'		MOVEI	17,SAVAC
  1043	000124'	251 17 0 00 002616'		BLT	17,SAVAC+16	;SAVE ALL
  1044	000125'	200 01 0 00 002447'	SEGAGN:	MOVE	T1,SGDEV	;SETUP FOR GETSEG
  1045	000126'	200 02 0 00 002450'		MOVE	T2,SGNAM
  1046	000127'	200 03 0 00 002451'		MOVE	T3,SGLOW
  1047	000130'	403 04 0 00 000006 		SETZB	T4,P2
  1048	000131'	200 05 0 00 002452'		MOVE	P1,SGPPN
  1049	000132'	201 07 0 00 000001 		MOVEI	P3,T1		;POINT AT THE BLOCK
  1050	000133'	047 07 0 00 000040 		GETSEG	P3,
  1051	000134'	334 01 0 00 000007 		SKIPA	T1,P3		;OOOPS--SET UP T1 TO TYPE OUT CODE
  1052						JRST	[MOVSI	17,SAVAC
  1053							BLT	17,17
  1054	000135'	254 00 0 00 003136'			POPJ	P,]
  1055	000136'	200 17 0 00 000022'		MOVE	P,INIPDP	;JUST IN CASE..RESET PDL
  1056	000137'	260 17 0 00 002353'		ERROR.	EF$ERR!EF$OCT,CGH,<CAN'T GET HIGH SEG - CODE = >
  1057	000140'	300002	003147'
  1058	000141'	047 01 0 00 000012 		EXIT	1,
  1059	000142'	254 00 0 00 000125'		JRST	SEGAGN		;MAYBE IT WAS JUST LOST?

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 25
COPYMT	MAC	23-FEB-77 11:47		LOG FILE HANDLING

  1060					SUBTTL	LOG FILE HANDLING
  1061
  1062					;CHKLOG -- SEE IF LOG FILE NEEDED AND SETUP FOR IT
  1063
  1064	000143'	200 01 0 00 002454'	CHKLOG:	MOVE	T1,LOGSPC	;GET THE DEVICE NAME
  1065	000144'	342 01 0 00 400404*		AOJE	T1,.POPJ##	;JUMP IF IT IS STILL (-1)
  1066	000145'	661 00 0 00 000004 		 TLO	F,FL$LOG	;NO--IT WAS /LOG OR /LOG:SPEC
  1067	000146'	260 17 0 00 000231'		PUSHJ	P,LOGOPN	;YES--OPEN THE LOG FILE
  1068	000147'	200 01 0 00 003063'		MOVE	T1,UCOMNT	;SEE IF A COMMENT GIVEN
  1069	000150'	342 01 0 00 000144*		AOJE	T1,.POPJ##	; IF NOT, UCOMNT WILL BE -1
  1070	000151'	201 01 0 00 003150'		MOVEI	T1,[ASCIZ/COMMENT: /]
  1071	000152'	260 17 0 00 000162'		PUSHJ	P,STRLOG	;SEND TO LOG FILE
  1072	000153'	201 01 0 00 003063'		MOVEI	T1,UCOMNT	;POINT AT COMMENTS
  1073	000154'	260 17 0 00 000162'		PUSHJ	P,STRLOG	;SEND TO LOG FILE
  1074	000155'	265 01 0 00 000162'	CLFLOG:	PJSP	T1,STRLOG	;SEND CRLF TO LOG AND RTURN
  1075						ASCIZ	.
  1076	000156'	015 012 000 000 000 	.
  1077	000157'	260 17 0 00 000155'	CLGNTS:	PUSHJ	P,CLFLOG	;SEND CRLF TO LOG FILE
  1078	000160'	621 00 0 00 000002 		TLZ	F,FL$TSN	;CLEAR TIME STAMP NEEDED
  1079	000161'	263 17 0 00 000000 		POPJ	P,		;RETURN
  1080
  1081					;STRLOG -- SEND STRING TO LOG FILE
  1082					;CALL:	MOVEI	T1,<ASCIZ STRING ADDR>
  1083					;	PUSHJ	P,STRLOG
  1084
  1085	000162'	505 01 0 00 440700 	STRLOG:	HRLI	T1,(POINT 7)	;FORM BYTE PTR
  1086	000163'	261 17 0 00 000001 		PUSH	P,T1		;SAVE ON PDL
  1087	000164'	134 01 0 17 000000 	STRL.2:	ILDB	T1,(P)		;GET A CHAR
  1088	000165'	322 01 0 00 002136'		JUMPE	T1,TPOPJ	;JUMP IF ALL DONE
  1089	000166'	260 17 0 00 000173'		PUSHJ	P,CHRLOG	;SEND TO LOG FILE
  1090	000167'	254 00 0 00 000164'		JRST	STRL.2
  1091
  1092					;CHROUT -- SEND CHARACTER TO TTY AND LOG FILE IF OPEN
  1093					;CHRLOG -- SEND CHARACTER TO LOG FILE
  1094					;CALL:	MOVEI	T1,<CHAR>
  1095					;	PUSHJ	P,CHRLOG/CHROUT
  1096
  1097	000170'	051 01 0 00 000001 	CHROUT:	OUTCHR	T1		;SEND TO TTY
  1098	000171'	607 00 0 00 000004 		TLNN	F,FL$LOG	;ARE WE LOGGING?
  1099	000172'	263 17 0 00 000000 		 POPJ	P,		;NO--DONE
  1100	000173'	623 00 0 00 000002 	CHRLOG:	TLZE	F,FL$TSN	;TIME FOR A TIME STAMP?
  1101	000174'	260 17 0 00 000313'		PUSHJ	P,TIMSTM	;YES--DO ONE
  1102	000175'	377 00 0 00 002527'		SOSG	GBHR+.BFCTR	;ROOM IN BUFFER?
  1103	000176'	254 00 0 00 000203'		JRST	CHRLG1		;NO--GO DUMP ONE
  1104	000177'	136 01 0 00 002526'	CHRLG0:	IDPB	T1,GBHR+.BFPTR	;YES--STORE IN BUFFER
  1105	000200'	306 01 0 00 000012 		CAIN	T1,.CHLFD	;LINEFEED?
  1106	000201'	661 00 0 00 000002 		 TLO	F,FL$TSN
  1107	000202'	263 17 0 00 000000 		POPJ	P,
  1108	000203'	260 17 0 00 000000*	CHRLG1:	PUSHJ	P,.PSH4T##	;PRESERVE T1-4
  1109	000204'	260 17 0 00 001757'		PUSHJ	P,XCTIO		;SEND TO LOG FILE
  1110	000205'	057 04 0 00 000000 		 OUT	LOGC,		;XCT'D
  1111	000206'	621 00 0 00 000004 		TLZ	F,FL$LOG	;!!EOT!!--NO MORE LOG FILE
  1112	000207'	260 17 0 00 000000*		PUSHJ	P,.POP4T##	;RESTORE T1-4
  1113	000210'	603 00 0 00 000004 		TLNE	F,FL$LOG	;IS LOG STILL ALIVE?
  1114	000211'	254 00 0 00 000177'		 JRST	CHRLG0		;YES--GO STOW CHARACTER

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 25-1
COPYMT	MAC	23-FEB-77 11:47		LOG FILE HANDLING

  1115	000212'	254 00 0 00 000224'		JRST	CLSLG2		;SKIP SOME
  1116
  1117					;HERE FROM THE /CLOSE SWITCH TO CLOSE THE FILE IF OPEN, ETC.
  1118
  1119	000213'	476 00 0 00 002454'	$CLOSE:	STORE	T1,LOGSPC,LOGSPC+.FXLEN-1,-1 ;RESET THE SPEC
  1120	000214'	200 01 0 00 003152'
  1121	000215'	251 01 0 00 002505'
  1122	000216'	621 00 0 00 000004 		TLZ	F,FL$LOG	;IN CASE OPEN
  1123	000217'	263 17 0 00 000000 		POPJ	P,		;RETURN BYPASSING STORE
  1124
  1125	000220'	607 00 0 00 000004 	CLSLOG:	TLNN	F,FL$LOG	;LOG OPEN?
  1126	000221'	263 17 0 00 000000 		 POPJ	P,		;NO
  1127	000222'	260 17 0 00 000157'		PUSHJ	P,CLGNTS	;DO A COUPLE OF NEW LINES TO SEPARATE
  1128	000223'	260 17 0 00 000157'		PUSHJ	P,CLGNTS	;THE DIFFERENT RUNS
  1129	000224'	070 04 0 00 000000 	CLSLG2:	CLOSE	LOGC,		;CLOSE THE CHANNEL
  1130	000225'	071 04 0 00 000000 		RELEASE	LOGC,
  1131	000226'	621 00 0 00 000004 		TLZ	F,FL$LOG	;CERTAINLY NOT OPEN NOW
  1132	000227'	201 01 0 00 002525'		MOVEI	T1,GBHR		;FREE BUFFERS
  1133	000230'	254 00 0 00 000436'		PJRST	TSTBHR
  1134
  1135					;HERE TO OPEN LOG FILE
  1136
  1137	000231'	260 17 0 00 000000*	LOGOPN:	PUSHJ	P,.SAVE1##	;PRESERVE P1
  1138	000232'	200 01 0 00 002454'		MOVE	T1,LOGSPC+.FXDEV;GET DEVICE NAME
  1139	000233'	366 01 0 00 000241'		SOJN	T1,LOGO.2	;JUMP IF DEFAULT NOT NEEDED
  1140	000234'	402 00 0 00 002454'		STORE	T1,LOGSPC,LOGSPC+.FXLEN-1,0 ;NEED DEFAULT--ZERO THE BLOC
  1141	000235'	200 01 0 00 003152'
  1142	000236'	251 01 0 00 002505'
  1143	000237'	205 01 0 00 446353 		  MOVSI	T1,'DSK'	;USE A GOOD DEFAULT
  1144	000240'	202 01 0 00 002454'		MOVEM	T1,LOGSPC+.FXDEV;REMEMBER WHAT WE DECIDED ON
  1145	000241'	200 01 0 00 003153'	LOGO.2:	MOVE	T1,[SIXBIT/COPYMT/] ;MY NAME IN CASE NEEDED
  1146	000242'	336 00 0 00 002455'		SKIPN	LOGSPC+.FXNAM	;DEFAULT NEEDED?
  1147	000243'	476 00 0 00 002456'		 SETOM	LOGSPC+.FXNMM
  1148	000244'	336 00 0 00 002455'		SKIPN	LOGSPC+.FXNAM
  1149	000245'	202 01 0 00 002455'		MOVEM	T1,LOGSPC+.FXNAM
  1150	000246'	525 01 0 00 545747 		HRLOI	T1,'LOG'	;DEFAULT EXTENSION
  1151	000247'	336 00 0 00 002457'		SKIPN	LOGSPC+.FXEXT	;SEE IF EXTENSION GIVEN
  1152	000250'	202 01 0 00 002457'		 MOVEM	T1,LOGSPC+.FXEXT;NO--SET IT IN
  1153	000251'	200 01 0 00 003154'		MOVE	T1,[XWD .FXLEN,LOGSPC] ;SETUP TO CONVERT SCAN BLOCKS
  1154	000252'	201 02 0 00 002620'		MOVEI	T2,OPNBLK
  1155	000253'	200 03 0 00 003155'		MOVE	T3,[XWD .RBTIM+1,LKPBLK]
  1156	000254'	201 04 0 00 002661'		MOVEI	T4,PTHBLK
  1157	000255'	205 05 0 00 002454'		MOVSI	P1,LOGSPC	;POINT TO SPEC IN CASE OF ERRORS
  1158	000256'	260 17 0 00 000000*		PUSHJ	P,.STOPB##	;CONVERT TO SCAN BLOCKS
  1159	000257'	254 00 0 00 001703'		 JRST	WLDERR		;GO DIE IF WILD
  1160	000260'	201 01 0 00 000035 		MOVEI	T1,.RBTIM	;SETUP BLOCK NOW
  1161	000261'	202 01 0 00 002623'		MOVEM	T1,LKPBLK+.RBCNT
  1162	000262'	201 01 0 00 000000 		MOVEI	T1,.IOASC	;IN ASCII
  1163	000263'	202 01 0 00 002620'		MOVEM	T1,OPNBLK+.OPMOD
  1164	000264'	205 01 0 00 002525'		MOVSI	T1,GBHR		;POINT AT BUFFER HEADER
  1165	000265'	202 01 0 00 002622'		MOVEM	T1,OPNBLK+.OPBUF
  1166	000266'	050 04 0 00 002620'		OPEN	LOGC,OPNBLK	;GET THE CHANNEL
  1167	000267'	254 00 0 00 001700'		 JRST	OPENER		;CAN'T--DIE
  1168	000270'	200 02 0 00 002621'		MOVE	T2,OPNBLK+.OPDEV;GET THE DEVICE NAME
  1169	000271'	047 02 0 00 000053 		DEVTYP	T2,		;SEE IF SPOOLED OR LOOKUP NOT NEEDED

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 25-2
COPYMT	MAC	23-FEB-77 11:47		LOG FILE HANDLING

  1170	000272'	254 00 0 00 000276'		 JRST	LOGO.3		;WE'LL NEVER KNOW
  1171	000273'	603 02 0 00 400000 		TXNE	T2,TY.MAN	;SEE IF LOOKUP/ENTER REQUIRED
  1172	000274'	603 02 0 00 000020 		TXNE	T2,TY.SPL	 ;SEE IF SPOOLED
  1173						 JRST	[SETZ	T1,	;SOME SORT OF SPOOLED DEVICE OR NO LKEN NEEDED
  1174	000275'	254 00 0 00 003156'			JRST	LOGO.4]	;SKIP AHEAD
  1175	000276'	474 01 0 00 000000 	LOGO.3:	SETO	T1,		;FLAG THAT FILE EXISTS
  1176	000277'	076 04 0 00 002623'		LOOKUP	LOGC,LKPBLK	;SEE IF FILE LIVES
  1177						 JRST	[HRRZ	T1,LKPBLK+.RBEXT ;NO--GET FAIL CODE
  1178							JUMPN	T1,LKENER ;JUMP IF REALLY AN ERROR
  1179	000300'	254 00 0 00 003160'			JRST	.+1]	;NO--JUMP BACK IN TO ENTER FILE
  1180	000301'	077 04 0 00 002623'	LOGO.4:	ENTER	LOGC,LKPBLK	;WRITE THE FILE
  1181	000302'	254 00 0 00 001713'		 JRST	LKENER		;CAN'T
  1182	000303'	332 00 0 00 000001 		SKIPE	T1		;DON'T USETI IF FILE NOT FOUND
  1183	000304'	074 04 0 00 777777 		USETI	LOGC,-1		;PREPARE TO APPEND TO FILE
  1184	000305'	205 01 0 00 000002 		MOVSI	T1,N$LOGB	;SETUP # BUFFERS
  1185	000306'	200 02 0 00 003163'		MOVE	T2,[XWD OPNBLK,GBHR]
  1186	000307'	260 17 0 00 000000*		PUSHJ	P,.ALCBF##	;ALLOCATE BUFFERS
  1187	000310'	067 04 0 00 000000 		OUTPUT	LOGC,		;DUMMY OUTPUT
  1188	000311'	661 00 0 00 000002 		TLO	F,FL$TSN	;FORCE A TIME STAMP ON FIRST LINE
  1189	000312'	263 17 0 00 000000 		POPJ	P,		;LOG FILE IS OPEN
  1190
  1191					;HERE TO PUT A TIME STAMP INTO THE LOG FILE
  1192
  1193	000313'	260 17 0 00 000203*	TIMSTM:	PUSHJ	P,.PSH4T##	;PRESERVE REGISTERS--NO TELLING WHAT MIGHT BE UP
  1194	000314'	201 01 0 00 000173'		MOVEI	T1,CHRLOG	;SETUP THE ROUTINE
  1195	000315'	260 17 0 00 000000*		PUSHJ	P,.TYOCH##
  1196	000316'	261 17 0 00 000001 		PUSH	P,T1		;SAVE OLD ONE
  1197	000317'	621 00 0 00 000002 		TLZ	F,FL$TSN	;PREVENT RECURSING TO OVERFLOW
  1198	000320'	260 17 0 00 000000*		PUSHJ	P,.TTIMN##	;TYPE THE TIME
  1199	000321'	260 17 0 00 000000*		PUSHJ	P,.TSPAC##
  1200	000322'	260 17 0 00 000321*		PUSHJ	P,.TSPAC##
  1201	000323'	262 17 0 00 000001 		POP	P,T1
  1202	000324'	260 17 0 00 000315*		PUSHJ	P,.TYOCH##	;RESET OUTPUT ROUTINE
  1203	000325'	254 00 0 00 002164'		PJRST	POP4J		;RESTORE REGS AND RETURN

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 26
COPYMT	MAC	23-FEB-77 11:47		OPEN FILES

  1204					SUBTTL	OPEN FILES
  1205
  1206	000326'	201 01 0 00 003031'	OPNOUT:	MOVEI	T1,OUTSPC	;POINT AT SPEC
  1207	000327'	260 17 0 00 001627'		PUSHJ	P,OPENIO	;OPEN IT
  1208	000330'	300 02 1 14 002517'		CAI	OUTC,@OBHR(.IOBIN)
  1209	000331'	260 17 0 00 000000*		PUSHJ	P,.SAVE3##	;SAVE P1-3
  1210	000332'	603 00 0 00 000040 		TLNE	F,FL$DSO	;DSK OUTPUT?
  1211	000333'	254 00 0 00 000347'		 JRST	OPNO$1		;YES--SKIP SOME
  1212	000334'	201 01 0 00 000002 		MOVEI	T1,MODIND	;GET INDUSTRY MODE VALUE
  1213	000335'	603 00 0 00 000020 		TLNE	F,FL$232	;/TO32?
  1214	000336'	202 01 0 00 003135'		 MOVEM	T1,OUTMOD	;YES--THIS IS THE MODE
  1215	000337'	201 05 0 00 000002 		MOVEI	P1,OUTC		;NO--GET MTCHR.
  1216	000340'	047 05 0 00 000112 		MTCHR.	P1,
  1217	000341'	400 05 0 00 000000 		 SETZ	P1,		;SNH
  1218	000342'	201 06 0 00 003031'		MOVEI	P2,OUTSPC	;GET FDB ADDRESS
  1219	000343'	201 07 0 00 000002 		MOVEI	P3,OUTC		;CHANNEL FOR SETCHR
  1220	000344'	260 17 0 00 000516'		PUSHJ	P,SETCHR	;SET DENSITY,PARITY AND MODE
  1221	000345'	062 02 0 00 000001 		GETSTS	OUTC,T1		;GET CURRENT STATUS
  1222	000346'	060 02 0 01 000020 		SETSTS	OUTC,IO.UWC(T1)	;TELL MON TO USE MY WORD COUNT
  1223	000347'	200 01 0 00 003130'	OPNO$1:	MOVE	T1,NOBUFS	;GET USER VALUE FOR OBUFS
  1224	000350'	603 00 0 00 000040 		TLNE	F,FL$DSO	;IF DSK OUTPUT
  1225	000351'	201 01 0 00 000006 		MOVEI	T1,N$DSKB	;SPLURGE A LITTLE
  1226	000352'	607 00 0 00 000020 		TLNN	F,FL$232	;/TO32?
  1227	000353'	254 00 0 00 000366'		 JRST	OPNO$2		;NO
  1228	000354'	337 02 0 00 003131'		SKIPG	T2,BUFSIZ	;YES--GET /BUFSIZ VALUE
  1229	000355'	201 02 0 00 002000 		 MOVEI	T2,DF$BFZ	;NONE--USE DEFAULT
  1230	000356'	221 02 0 00 000011 		IMULI	T2,^D9		;# 9-BIT BYTES/WORD
  1231	000357'	231 02 0 00 000010 		IDIVI	T2,^D8		;# WORDS TO HOLD 8 4-BIT BYTES/WORD
  1232	000360'	271 02 0 00 000001 		ADDI	T2,1		;IN CASE OF PARTIAL WORD
  1233						SAVE$	BUFSIZ		;SAVE GIVEN BUFSIZ FOR INPUT OPEN
  1234	000362'	202 02 0 00 003131'		MOVEM	T2,BUFSIZ	;SET AS THE BUFFERSIZE FOR BOTH
  1235	000363'	265 11 0 00 000464'		JSP	L,STBUFZ	;SET UP # BUFFERS AND BUFFER SIZE
  1236						RESTR$	BUFSIZ		;PUT BUFSIZ BACK
  1237	000365'	334 00 0 00 000000 		SKIPA			;SKIP CALL TO STBUFZ
  1238	000366'	265 11 0 00 000464'	OPNO$2:	JSP	L,STBUFZ	;SET UP # BUFFERS AND BUFFER SIZE IN T1
  1239	000367'	334 02 0 00 000370'		SKIPA	T2,.+1
  1240	000370'	002620'	002517'			XWD	OPNBLK,OBHR	;FOR .ALCBF
  1241	000371'	260 17 0 00 000307*		PUSHJ	P,.ALCBF##	;ALLOCATE BUFFERS
  1242	000372'	057 02 0 00 000000 		OUT	OUTC,		;DUMMY OUTPUT
  1243	000373'	255 00 0 00 000000 		JFCL			;(IN CASE)
  1244	000374'	205 01 0 00 200000 		MOVSI	T1,(BF.IBC)	;GET INHIBIT BUFFER CLEARING BIT
  1245	000375'	436 01 0 00 002517'		IORM	T1,OBHR+.BFADR	;SET IN BUFFER HEADER
  1246	000376'	661 00 0 00 000010 		TLO	F,FL$OPN	;OUTPUT IS OPEN
  1247	000377'	263 17 0 00 000000 		POPJ	P,

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 27
COPYMT	MAC	23-FEB-77 11:47		OPEN FILES

  1248	000400'	201 01 0 00 002777'	OPNINP:	MOVEI	T1,INPSPC	;POINT AT INPUT SPEC
  1249	000401'	260 17 0 00 001627'		PUSHJ	P,OPENIO	;OPEN ETC
  1250	000402'	300 01 0 14 002514'		CAI	INPC,IBHR(.IOBIN)
  1251	000403'	260 17 0 00 000331*		PUSHJ	P,.SAVE3##	;SAVE P1-3
  1252	000404'	603 00 0 00 000100 		TLNE	F,FL$DSI	;DSK INPUT?
  1253	000405'	254 00 0 00 000421'		 JRST	OPNI$1		;YES
  1254	000406'	201 05 0 00 000001 		MOVEI	P1,INPC		;CHANNEL FOR MTCHR.
  1255	000407'	047 05 0 00 000112 		MTCHR.	P1,		;GET ARGS
  1256	000410'	400 05 0 00 000000 		 SETZ	P1,		;SNH
  1257	000411'	201 06 0 00 002777'		MOVEI	P2,INPSPC	;FDB ADDR
  1258	000412'	201 07 0 00 000001 		MOVEI	P3,INPC		;INPUT CHANNEL
  1259	000413'	201 01 0 00 000001 		MOVEI	T1,MODBIN	;GET MODE BINARY VALUE
  1260	000414'	603 00 0 00 000020 		TLNE	F,FL$232	;/TO32?
  1261	000415'	202 01 0 00 003134'		MOVEM	T1,INPMOD	;YES--SET INPUT MODE
  1262	000416'	260 17 0 00 000516'		PUSHJ	P,SETCHR	;SET DENSITY,PARITY, AND MODE
  1263	000417'	333 00 0 00 003123'		SKIPLE	RTRYFL		;GET RETRY FLAG
  1264						 JRST	[GETSTS	INPC,T1	;AND SET NO RETRY IF DESIRED
  1265							SETSTS	INPC,IO.NRC(T1);TELL TAPSER TO NOT RETRY
  1266	000420'	254 00 0 00 003164'			JRST	.+1]	;JUMP IN AGAIN
  1267	000421'	200 01 0 00 003127'	OPNI$1:	MOVE	T1,NIBUFS	;GET USER VALUE
  1268	000422'	603 00 0 00 000100 		TLNE	F,FL$DSI	;DSK INPUT?
  1269	000423'	201 01 0 00 000006 		 MOVEI	T1,N$DSKB	;RUN FAST
  1270	000424'	265 11 0 00 000464'		JSP	L,STBUFZ	;SET UP # BUFFERS AND BUFSIZ IN T1
  1271	000425'	334 02 0 00 000426'		SKIPA	T2,.+1
  1272	000426'	002620'	002514'			XWD	OPNBLK,IBHR
  1273	000427'	260 17 0 00 000371*		PUSHJ	P,.ALCBF##	;ALLOCATE BUFFER
  1274	000430'	205 01 0 00 200000 		MOVSI	T1,(BF.IBC)	;GET INHIBIT BUFFER CLEARING BIT
  1275	000431'	436 01 0 00 002514'		IORM	T1,IBHR+.BFADR	;SET IN BUFFER HEADER
  1276	000432'	263 17 0 00 000000 		POPJ	P,
  1277
  1278	000433'	070 01 0 00 000000 	INPCLS:	CLOSE	INPC,		;CLOSE INPUT
  1279	000434'	071 01 0 00 000000 		RELEASE	INPC,		;FREE CHANEL
  1280	000435'	201 01 0 00 002514'		MOVEI	T1,IBHR		;GET BHR
  1281					;	PJRST	TSTBHR		;RELEASE BUFFERS
  1282
  1283	000436'	336 00 0 01 000000 	TSTBHR:	SKIPN	(T1)		;USE IT?
  1284	000437'	263 17 0 00 000000 		POPJ	P,		;NO--DONE
  1285						SAVE$	T1		;YES--SAVE IT A SEC
  1286	000441'	260 17 0 00 000000*		PUSHJ	P,.FREBF##	;FREE BUFFERS
  1287						RESTR$	T1		;GET BHR ADDR
  1288	000443'	402 00 0 01 000000 		SETZM	.BFADR(T1)
  1289	000444'	402 00 0 01 000001 		SETZM	.BFPTR(T1)
  1290	000445'	402 00 0 01 000002 		SETZM	.BFCTR(T1)
  1291	000446'	263 17 0 00 000000 		POPJ	P,
  1292
  1293	000447'	627 00 0 00 000010 	OUTCLS:	TLZN	F,FL$OPN	;IS OUTPUT OPEN?
  1294	000450'	263 17 0 00 000000 		 POPJ	P,		;NO--QUIT BEFORE WE DIE
  1295	000451'	062 02 0 00 000001 		GETSTS	OUTC,T1		;GET I/O STATS
  1296	000452'	620 01 0 00 000020 		TRZ	T1,IO.UWC	;CLEAR USER WORD COUNT
  1297	000453'	060 02 0 01 000000 		SETSTS	OUTC,(T1)	;ELSE MON WRITES AN EXTRA RECORD!!
  1298	000454'	070 02 0 00 000000 		CLOSE	OUTC,
  1299	000455'	071 02 0 00 000000 		RELEASE	OUTC,
  1300	000456'	201 01 0 00 002517'		MOVEI	T1,OBHR
  1301	000457'	254 00 0 00 000436'		JRST	TSTBHR
  1302	000460'	070 03 0 00 000000 	LPTCLS:	CLOSE	LPTC,

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 27-1
COPYMT	MAC	23-FEB-77 11:47		OPEN FILES

  1303	000461'	071 03 0 00 000000 		RELEASE	LPTC,
  1304	000462'	201 01 0 00 002522'		MOVEI	T1,LBHR
  1305	000463'	254 00 0 00 000436'		PJRST	TSTBHR
  1306
  1307	000464'	337 00 0 00 000001 	STBUFZ:	SKIPG	T1		;DID USER SPECIFY BUFFER COUNT?
  1308	000465'	201 01 0 00 000002 		MOVEI	T1,N$BUFS	;NO--USE DEFAULT
  1309	000466'	337 02 0 00 003131'		SKIPG	T2,BUFSIZ	;HOW ABOUT BUFSIZ?
  1310	000467'	201 02 0 00 002000 		 MOVEI	T2,DF$BFZ	;NO--DEFAULT
  1311	000470'	505 01 0 02 000000 		HRLI	T1,(T2)		;POSITION
  1312	000471'	204 01 0 00 000001 		MOVS	T1,T1		;AND SWAP SIDES
  1313	000472'	254 00 0 11 000000 		JRST	(L)		;RETURN

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 28
COPYMT	MAC	23-FEB-77 11:47		OPEN FILES

  1314					;CALL HERE TO COMPLAIN ABOUT TAPE BEING WRITE LOCKED
  1315
  1316	000473'	200 01 0 00 003031'	WRTLOK:	MOVE	T1,OUTSPC+.FXDEV;GET NAME
  1317	000474'	260 17 0 00 002353'		OPER$	EF$WRN!EF$SIX,MWL,<MTA IS WRITE LOCKED - >
  1318	000475'	300223	003174'
  1319	000476'	260 17 0 00 002353'		OPER$	EF$FTL,JAB,<JOB ABORTED>
  1320	000477'	300420	003200'
  1321					REPEAT 0,<
  1322						OPER$	EF$INF,WEG,<PLEASE WRITE-ENABLE AND TYPE ANY CHARACTER>
  1323						PUSHJ	P,GCHNWL	;GET CHAR AND .TCRLF
  1324						GETSTS	OUTC,T1		;GET STATUS
  1325						TRZ	T1,IO.IMP	;CLEAR IO.IMP WHICH GOT US HERE
  1326						SETSTS	OUTC,(T1)	;AND TELL MON
  1327						POPJ	P,		;NO--OK TO CONTINUE NOW
  1328					>;END REPEAT 0
  1329
  1330					;ROUTINE TO OPEN OUTPUT WITH NO BUFFERS -- FOR TAPE POSITIONING
  1331
  1332	000500'	201 01 0 00 000017 	OPONOB:	MOVEI	T1,.IODMP	;DUMP MODE -- WHY NOT?
  1333	000501'	200 02 0 00 003031'		MOVE	T2,OUTSPC+.FXDEV;DEV NAME
  1334	000502'	400 03 0 00 000000 		SETZ	T3,		;NO BUFFERS
  1335	000503'	050 02 0 00 000001 		OPEN	OUTC,T1		;DO IT
  1336	000504'	334 01 0 00 003201'		SKIPA	T1,[OUTSPC]	;ERROR
  1337	000505'	263 17 0 00 000000 		POPJ	P,
  1338	000506'	254 00 0 00 001701'		JRST	E$$COD		;TELL OF FAILURE
  1339
  1340	000507'	201 01 0 00 000017 	OPINOB:	MOVEI	T1,.IODMP	;OPEN INPUT WITH NO BUFFERS
  1341	000510'	200 02 0 00 002777'		MOVE	T2,INPSPC+.FXDEV;NAME
  1342	000511'	400 03 0 00 000000 		SETZ	T3,		;NO BUFFERS
  1343	000512'	050 01 0 00 000001 		OPEN	INPC,T1		;DO IT
  1344	000513'	334 01 0 00 003202'		 SKIPA	T1,[INPSPC]	;FAILED!
  1345	000514'	263 17 0 00 000000 		POPJ	P,		;RETURN
  1346	000515'	254 00 0 00 001701'		JRST	E$$COD		;CAN'T OPEN DEVICE

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 29
COPYMT	MAC	23-FEB-77 11:47		SET TAPE CHARACTERISTICS

  1347					SUBTTL	SET TAPE CHARACTERISTICS
  1348
  1349					;SETCHR -- SET CHARACTERISTICS
  1350					;CALL --	MOVE	P1,<RESULT OF MTCHR.>
  1351					;		MOVEI	P2,<FDB>
  1352					;		MOVEI	P3,<CHANNEL>
  1353					;		PUSHJ	P,SETCHR
  1354
  1355	000516'	135 01 0 00 003203'	SETCHR:	LDB	T1,[POINTR (.FXMOD(P2),FX.DEN)] ;GET THE DENSITY
  1356	000517'	322 01 0 00 000525'		JUMPE	T1,SETCH1	;JUMP IF NO DENSITY GIVEN
  1357	000520'	256 00 0 01 000551'		XCT	DENDIS(T1)	;CHECK LEGALITY AND SETUP T4
  1358	000521'	200 01 0 00 003204'		MOVE	T1,[XWD 3,T2]	;ARG WORD FOR TAPOP.
  1359	000522'	201 02 0 00 002001 		MOVEI	T2,.TFDEN+.TFSET;FUNCTION
  1360	000523'	200 03 0 00 000007 		MOVE	T3,P3		;CHANNEL NUMBER
  1361	000524'	260 17 0 00 000611'		PUSHJ	P,DOTPOP	;DO TAPOP AND HANDLE ERROR
  1362	000525'	135 01 0 00 003205'	SETCH1:	LDB	T1,[POINTR (.FXMOD(P2),FX.PAR)] ;GET PARITY VALUE
  1363	000526'	256 00 0 01 000541'		XCT	PARDIS(T1)	;SET THE PARITY
  1364					IFN FT$TST,<
  1365	000527'	331 00 0 00 003120'		SKIPL	TESTFL		;IF /TEST OR /TAPTST THEN IGNORE MODE
  1366	000530'	263 17 0 00 000000 		POPJ	P,		;IGNORE IT
  1367					>;END IFN FT$TST
  1368	000531'	337 01 0 07 003133'		SKIPG	T1,MODES-1(P3)	;/MODE FOR THIS SIDE?
  1369	000532'	263 17 0 00 000000 		 POPJ	P,		;NO--QUIT
  1370	000533'	256 00 0 01 000570'		XCT	MODISP-1(T1)	;YES--GET TAPOP. ARGUMENT
  1371	000534'	200 01 0 00 003204'		MOVE	T1,[XWD 3,T2]	;TAPOP. ARG WORD
  1372	000535'	201 02 0 00 002007 		MOVEI	T2,.TFMOD+.TFSET;FUNCTION
  1373	000536'	200 03 0 00 000007 		MOVE	T3,P3		;CHANNEL
  1374	000537'	260 17 0 00 000611'		PUSHJ	P,DOTPOP	;DO TAPOP
  1375	000540'	263 17 0 00 000000 		POPJ	P,		;DONE WITH SETS
  1376
  1377	000541'	255 00 0 00 000000 	PARDIS:	JFCL			;ODD PARITY IS THE DEFAULT
  1378	000542'	260 17 0 00 000543'		PUSHJ	P,EVNPAR	;EVEN--MUST SET IT
  1379	000543'	200 01 0 00 003204'	EVNPAR:	MOVE	T1,[XWD 3,T2]	;ARG FOR TAPOP.
  1380	000544'	201 02 0 00 002005 		MOVEI	T2,.TFPAR+.TFSET;FUNCTION+SET
  1381	000545'	200 03 0 00 000007 		MOVE	T3,P3		;CHANNEL
  1382	000546'	201 04 0 00 000001 		MOVEI	T4,1		;EVEN PARITY
  1383	000547'	260 17 0 00 000611'		PUSHJ	P,DOTPOP	;SET IT
  1384	000550'	263 17 0 00 000000 		POPJ	P,
  1385
  1386	000551'	255 00 0 00 000000 	DENDIS:	JFCL			;0--SHOULD BE COVERED ABOVE
  1387	000552'	260 17 0 00 000557'		PUSHJ	P,DEN200	;1--200 BPI--7 TRACK ONLY
  1388	000553'	260 17 0 00 000557'		PUSHJ	P,DEN556	;2--556 BPI--7 TRACK ONLY
  1389	000554'	201 04 0 00 000003 		MOVEI	T4,.TFD80	;3--800 BPI--7/9 TRACK
  1390	000555'	260 17 0 00 000564'		PUSHJ	P,DEN160	;4--1600 BPI--9 TRACK ONLY
  1391	000556'	260 17 0 00 000564'		PUSHJ	P,DEN625	;5--6250 BPI--9 TRACK ONLY

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 30
COPYMT	MAC	23-FEB-77 11:47		SET TAPE CHARACTERISTICS

  1392	000557'				DEN556:
  1393	000557'	606 05 0 00 000020 	DEN200:	TRNN	P1,MT.7TR	;MUST BE 7 TRACK
  1394	000560'	260 17 0 00 002353'	E$$ID9:	 ERROR.	EF$FTL,ID9,<ILLEGAL DENSITY FOR 9-TRACK>
  1395	000561'	300400	003214'
  1396	000562'	200 04 0 00 000001 		MOVE	T4,T1		;SET DENSITY
  1397	000563'	263 17 0 00 000000 		POPJ	P,
  1398
  1399	000564'				DEN625:
  1400	000564'	602 05 0 00 000020 	DEN160:	TRNE	P1,MT.7TR	;CAN'T BE 7 TRACK
  1401	000565'	260 17 0 00 002353'		 ERROR.	EF$FTL,ID7,<ILLEGAL DENSITY FOR 7-TRACK>
  1402	000566'	300400	003223'
  1403	000567'	200 04 0 00 000001 		MOVE	T4,T1		;SET DENSITY
  1404	000570'	263 17 0 00 000000 		POPJ	P,
  1405
  1406	000571'	260 17 0 00 000605'	MODISP:	PUSHJ	P,DEFMOD	;1--DEC COMPATIBLE CORE DUMP (/MODE:BINARY)
  1407	000572'	260 17 0 00 000601'		PUSHJ	P,INDMOD	;2--INDUSTRY COMPATIBLE 8BIT (/MODE:INDUST)
  1408	000573'	260 17 0 00 000574'		PUSHJ	P,MODSVN	;3--SEVENBIT MODE (/MODE:SEVEN) TU70 ONLY
  1409
  1410	000574'	602 05 0 00 000020 	MODSVN:	TRNE	P1,MT.7TR	;NOT ON 7 TRACK
  1411	000575'	260 17 0 00 002353'	E$$IM7:	ERROR.	EF$FTL,IM7,<ILLEGAL MODE FOR 7-TRACK>
  1412	000576'	300400	003231'
  1413	000577'	201 04 0 00 000004 		MOVEI	T4,.TFM7B	;SET SEVEN BIT MODE
  1414	000600'	263 17 0 00 000000 		POPJ	P,
  1415
  1416	000601'	602 05 0 00 000020 	INDMOD:	TRNE	P1,MT.7TR	;NOT ON 7
  1417	000602'	254 00 0 00 000575'		JRST	E$$IM7		;TSK,TSK
  1418	000603'	201 04 0 00 000002 		MOVEI	T4,.TFM8B	;8 BIT FORMAT
  1419	000604'	263 17 0 00 000000 		POPJ	P,
  1420
  1421	000605'	602 05 0 00 000020 	DEFMOD:	TRNE	P1,MT.7TR	;SEVEN OR NINE?
  1422	000606'	334 04 0 00 003232'		 SKIPA	T4,[.TFM7T]	;SEVEN
  1423	000607'	201 04 0 00 000001 		MOVEI	T4,<.TFM9T==1>	;NO--NINE
  1424	000610'	263 17 0 00 000000 		POPJ	P,

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 31
COPYMT	MAC	23-FEB-77 11:47		SET TAPE CHARACTERISTICS

  1425					;DOTPOP -- DO TAPOP WITH ERROR REPORTING
  1426					;CALL:	MOVE	T1,[TAPOP. ARG BLOCK]
  1427					;	MOVEI	T2,<TAPOP. FN>
  1428					;	MOVE	T3,<TAPNAM,IOCHAN OR WHATEVER>
  1429					;	MOVE	T4,<ARG>
  1430					;	PUSHJ	P,DOTPOP
  1431					;	*RETURN*
  1432
  1433
  1434	000611'	047 01 0 00 000154 	DOTPOP:	TAPOP.	T1,		;DO THE UUO
  1435	000612'	304 00 0 00 000000 		 CAIA			;FAILED--SKIP OVER TO REPORT ERROR
  1436	000613'	263 17 0 00 000000 		POPJ	P,		;OK--QUIT NOW
  1437
  1438					;ETAPOP -- REPORT TAPOP. UUO FAILURE
  1439					;SEE DOTPOP FOR CALLING SEQUENCE
  1440
  1441	000614'				ETAPOP:	SAVE$	<T4,T3,T2,T1>	;SAVE T1-4 IN CONSPICUOUS PLACE
  1442	000620'	260 17 0 00 002353'		WARN.	EF$OCT!EF$NCR,TUF,<TAPOP. UUO FAILURE--CODE = >
  1443	000621'	300242	003241'
  1444	000622'	201 01 0 00 003242'		STRNG$	<, FN = >
  1445	000623'	260 17 0 00 000036*
  1446	000624'	200 01 0 17 777777 		MOVE	T1,-1(P)	;GET FUNCTION (WAS IN T2)
  1447	000625'	260 17 0 00 000000*		PUSHJ	P,.TOCTW##	;
  1448	000626'	260 17 0 00 000041*		PUSHJ	P,.TCRLF##
  1449						RESTR$	<T1,T2,T3,T4>
  1450	000633'	263 17 0 00 000000 		POPJ	P,

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 32
COPYMT	MAC	23-FEB-77 11:47		DO THE REQUIRED STUFF

  1451					SUBTTL	DO THE REQUIRED STUFF
  1452
  1453	000634'				DO.IT:	
  1454	000634'	260 17 0 00 000000*		PUSHJ	P,.SAVE4##	;SAVE THE REGISTERS
  1455	000635'	200 12 0 00 000104'		MOVE	PLP,PLPINI	;SETUP PARM LIST PTR
  1456	000636'	402 00 0 00 002773'		STORE	T1,FW$STS,LW$STS,0 ;CLEAR STATUS WORDS
  1457	000637'	200 01 0 00 003244'
  1458	000640'	251 01 0 00 002776'
  1459	000641'	634 10 0 00 000010 		TDZA	P4,P4		;CLEAR I/O FLAG (SET TO 2 WHEN INPUT)
  1460	000642'	201 10 0 00 000002 	OUTDUN:	MOVEI	P4,2		;SET I/O FLAG TO 2 (OUTPUT SWTCHES DONE)
  1461	000643'				DANTHR:
  1462	000643'	265 11 0 00 000755'		JSP	L,TYICHK	;SEE ABOUT TTY COMMANDS
  1463	000644'	254 00 0 00 000723'		 JRST	DO.DUN		;SAID TO KILL THE COMMAND
  1464	000645'	200 13 0 12 000001 		MOVE	ACT,1(PLP)	;GET THE FUNCTION
  1465	000646'	271 12 0 00 000002 		ADDI	PLP,2		;MOVE TO NEXT FUNCTION
  1466	000647'	321 13 1 13 000661'		JUMPL	ACT,@ACTDIS(ACT) ;DISPATCH IMMEDIATELY IF INTERNAL FUNCTION
  1467	000650'	200 05 0 00 000013 		MOVE	P1,ACT		;COPY FOR ACTDIS XCT
  1468	000651'	275 13 0 00 000001 		SUBI	ACT,1		;COMPUTE ACT CORRECTLY FOR DOLOOP
  1469	000652'	221 13 0 00 000004 		IMULI	ACT,4		;...
  1470	000653'	270 13 0 00 000010 		ADD	ACT,P4		;ADD IN OFFSET FOR INPUT/OUTPUT
  1471	000654'	554 06 0 12 000000 		HLRZ	P2,0(PLP)	;GET (POSSIBLE) FILE COUNT
  1472	000655'	550 07 0 12 000000 		HRRZ	P3,0(PLP)	;GET (POSSIBLE) RECORD COUNT
  1473	000656'	254 00 1 05 000661'		JRST	@ACTDIS(P1)	;DISPATCH FOR ACTION
  1474
  1475	000657'	254 00 0 00 000723'		JRST	DO.DUN		;(-2) ALL DONE
  1476	000660'	254 00 0 00 000642'		JRST	OUTDUN		;(-1) OUTPUT DONE--INPUT ACTION NEXT
  1477	000661'	254 04 0 00 000661'	ACTDIS:	HALT	.		;(0)  ILLEGAL
  1478
  1479						DEFINE FN (X)
  1480					<IRP X,<EXP DO.'X>>
  1481
  1482	000662'	000000	000671'			FUNCTS			;GENERATE THE DISPATCH TABLE
  1483	000663'	000000	000671'
  1484	000664'	000000	000671'
  1485	000665'	000000	000671'
  1486	000666'	000000	000671'
  1487	000667'	000000	001054'
  1488	000670'	000000	001052'

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 33
COPYMT	MAC	23-FEB-77 11:47		DO THE REQUIRED STUFF

  1489	000671'				DO.BSP:	DO.SKP:	DO.EOF:
  1490	000671'				DO.REW:	DO.UNL:
  1491	000671'	323 06 0 00 000701'	DOLOOP:	JUMPLE	P2,DOLOP2	;JUMP IF NO MORE FILES
  1492	000672'	256 00 0 13 001270'	DOLOP1:	XCT	ACTABL(ACT)	;DO THE ACTION
  1493					IFN FT$MTP,<
  1494	000673'	603 00 0 00 002000 		TLNE	F,FL$MTP	;MTAPE COMMAND?
  1495	000674'	254 00 0 00 000712'		 JRST	WAITCK		;YES
  1496					>;END IFN FT$MTP
  1497	000675'	072 01 0 00 000000 		MTWAT.	INPC,		;WAIT FOR THINGS TO STOP
  1498	000676'	603 00 0 00 000010 		TLNE	F,FL$OPN	;ONLY WAIT ON OUTPUT IF OPEN
  1499	000677'	072 02 0 00 000000 		MTWAT.	OUTC,
  1500	000700'	367 06 0 00 000672'		SOJG	P2,DOLOP1	;DO ALL FILES
  1501	000701'	323 07 0 00 000643'	DOLOP2:	JUMPLE	P3,DANTHR	;NO RECORDS?
  1502	000702'	256 00 0 13 001271'	DOLOP3:	XCT	ACTABL+1(ACT)	;DO ACTION 
  1503					IFN FT$MTP,<
  1504	000703'	603 00 0 00 002000 		TLNE	F,FL$MTP	;MTAPE
  1505	000704'	254 00 0 00 000712'		 JRST	WAITCK		;YES
  1506					>;END IFN FT$MTP
  1507	000705'	072 01 0 00 000000 		MTWAT.	INPC,
  1508	000706'	603 00 0 00 000010 		TLNE	F,FL$OPN	;MAKE SURE CHAN IS OPEN
  1509	000707'	072 02 0 00 000000 		MTWAT.	OUTC,
  1510	000710'	367 07 0 00 000702'		SOJG	P3,DOLOP3
  1511	000711'	254 00 0 00 000643'		JRST	DANTHR
  1512
  1513					IFN FT$MTP,<	;HERE TO DECIDE IF WE WAIT OR NOT
  1514
  1515	000712'	367 06 0 00 000717'	WAITCK:	SOJG	P2,MTPWAT	;WAIT IF MORE FILES TO DO
  1516	000713'	367 07 0 00 000717'		SOJG	P3,MTPWAT	;OR MORE RECORDS
  1517	000714'	561 01 0 00 777776 		HRROI	T1,FN$EOL	;GET END OF LIST MARKER
  1518	000715'	316 01 0 12 000001 		CAMN	T1,1(PLP)	;WAIT IF NOT END OF LIST
  1519	000716'	254 00 0 00 000643'		 JRST	DANTHR		;END OF LIST--GO EXEC IT
  1520	000717'	072 01 0 00 000000 	MTPWAT:	MTWAT.	INPC,		;WAIT FOR OP TO FINISH
  1521	000720'	327 06 0 00 000672'		JUMPG	P2,DOLOP1	;JUMP IF MORE FILES
  1522	000721'	327 07 0 00 000702'		JUMPG	P3,DOLOP3	;JUMP IF MORE RECORDS
  1523	000722'	254 00 0 00 000643'		JRST	DANTHR		;NO--DO NEXT COMMAND
  1524					>;END IFN FT$MTP

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 34
COPYMT	MAC	23-FEB-77 11:47		END OF PROCESSING

  1525					SUBTTL	END OF PROCESSING
  1526
  1527					;HERE WHEN WE ARE ALL DONE
  1528
  1529	000723'	623 00 0 00 020000 	DO.DUN:	TLZE	F,FL$LPO	;LPT FILE OPEN?
  1530	000724'	260 17 0 00 000460'		PUSHJ	P,LPTCLS	;YES--CLOSE IT
  1531	000725'	260 17 0 00 000433'		PUSHJ	P,INPCLS	;CLOSE INPUT FILE
  1532	000726'	603 00 0 00 400040 		TLNE	F,FL$MRG!FL$DSO	;MERGING? (OR DSK OUTPUT?)
  1533	000727'	254 00 0 00 000732'		 JRST	DODUN1		;YES--NO EOF TO BSP OVER
  1534	000730'	603 00 0 00 040000 		TLNE	F,FL$EOT	;DID WE STOP AT DOUBLE EOF?
  1535	000731'	072 02 0 00 000017 		 MTBSF.	OUTC,		;YES--BACK OVER ONE OF THEM
  1536	000732'	260 17 0 00 000447'	DODUN1:	PUSHJ	P,OUTCLS	;CLOSE OUTPUT
  1537					IFN FT$MTP,<
  1538	000733'	603 00 0 00 002000 		TLNE	F,FL$MTP	;MTAPE COMMAND?
  1539	000734'	263 17 0 00 000000 		POPJ	P,		;YES--RETURN NOW
  1540					>;END IFN FT$MTP
  1541	000735'	333 00 0 00 003124'		SKIPLE	TIMEFL		;IF REQUESTED
  1542	000736'	260 17 0 00 001021'		PUSHJ	P,TYISTS	;TELL TOTAL TIME + CPU TIME USED
  1543	000737'	337 00 0 00 003124'		SKIPG	TIMEFL		;IF TIME NOT REQUESTED
  1544	000740'	260 17 0 00 001034'		PUSHJ	P,TYITOT	;THEN SHOW FILE, RECORD COUNTS NOW
  1545	000741'	201 05 0 00 000001 	ERRCHK:	MOVEI	P1,1		;SET INDEX TO REPORT ERRORS
  1546	000742'	200 01 0 05 002773'	TELERS:	MOVE	T1,ERRCNT(P1)	;GET COUNT
  1547	000743'	260 17 0 00 002353'		INFO.	EF$NCR!EF$DEC,IOT,<TOTAL OF >
  1548	000744'	300141	003247'
  1549	000745'	200 01 0 05 000753'		MOVE	T1,ERRMES(P1)	;END THE MESSAGE
  1550	000746'	260 17 0 00 000623*		PUSHJ	P,.TSTRG##	;...
  1551	000747'	260 17 0 00 000626*		PUSHJ	P,.TCRLF##	;NEW LINE
  1552					IFN FT$TST,<	;ONLY DO OUTPUT IF /T
  1553	000750'	607 00 0 00 001000 		TLNN	F,FL$TST	;/T?
  1554					>;END IFN FT$TST
  1555	000751'	365 05 0 00 000742'		SOJGE	P1,TELERS	;TELL INPUT TOO
  1556	000752'	263 17 0 00 000000 		POPJ	P,		;**DO.IT RETURN
  1557	000753'	000000	003250'		ERRMES:	[ASCIZ	/ INPUT ERRORS]/]
  1558	000754'	000000	003253'			[ASCIZ	/ OUTPUT ERRORS]/]

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 35
COPYMT	MAC	23-FEB-77 11:47		PROCESS TELETYPE COMMANDS WHILE RUNNING

  1559					SUBTTL	PROCESS TELETYPE COMMANDS WHILE RUNNING
  1560
  1561					;TYICHK -- ATTEND TO TTY INPUT FROM TERMINAL
  1562					;CALL:	JSP	L,TYICHK
  1563					;	*USER SAID TO QUIT*
  1564					;	*KEEP GOING*
  1565
  1566	000755'	607 00 0 00 012000 	TYICHK:	TLNN	F,FL$BAT!IFN FT$MTP,<FL$MTP> ;BATCH JOB?
  1567	000756'	607 00 0 00 000200 		 TLNN	F,FL$ITY	;OR NOT /IFTYP
  1568	000757'	254 00 0 11 000001 		 JRST	1(L)		;YES--RETURN QUICKLY
  1569	000760'	051 02 0 00 000001 		INCHRS	T1		;CHAR TYPED?
  1570	000761'	254 00 0 11 000001 		 JRST	1(L)		;NO--QUICK RETURN
  1571	000762'	051 11 0 00 000000 		CLRBFI			;YES--EAT THE REST
  1572	000763'	271 11 0 00 000001 		ADDI	L,1		;BUMP TO RETURN
  1573						SAVE$	L		;REMEMBER IT ON THE STACK
  1574	000765'	260 17 0 00 000747*		PUSHJ	P,.TCRLF##	;NEW LINE -- .TCRLF SAVES T1
  1575	000766'	205 02 0 00 777773 		MOVSI	T2,-N$TYIO	;GET AOBJN LOOP CTR
  1576	000767'	312 01 0 02 000774'		CAME	T1,IFTCHR(T2)	;THIS IT?
  1577	000770'	253 02 0 00 000767'		AOBJN	T2,.-1
  1578	000771'	321 02 1 02 001001'		JUMPL	T2,@TYIDSP(T2)	;JUMP IF GOT ONE
  1579	000772'	201 01 0 00 000007 		MOVEI	T1,.CHBEL	;NO--GET A BELL
  1580	000773'	254 00 0 00 000000*		PJRST	.TCHAR##	;BELL AND RETURN
  1581
  1582	000774'	000000	000105		IFTCHR:	EXP	"E","I","K","P","S"	;ERROR COUNT,IGNORE, KILL, PAUSE,STATS
  1583	000775'	000000	000111
  1584	000776'	000000	000113
  1585	000777'	000000	000120
  1586	001000'	000000	000123
  1587			000005			N$TYIO==.-IFTCHR
  1588
  1589	001001'	000000	001010'		TYIDSP:	EXP	ERRSUM,TYIIGN,TYIKIL,TYIPAU,TYISTS
  1590	001002'	000000	001006'
  1591	001003'	000000	001015'
  1592	001004'	000000	001012'
  1593	001005'	000000	001021'
  1594
  1595	001006'	621 00 0 00 000200 	TYIIGN:	TLZ	F,FL$ITY	;CLEAR IFTYP FLAG
  1596	001007'	263 17 0 00 000000 		POPJ	P,		;SKIP BACK
  1597
  1598	001010'	260 17 0 00 000231*	ERRSUM:	PUSHJ	P,.SAVE1##	;WE USE P1 FOR THIS
  1599	001011'	254 00 0 00 000741'		PJRST	ERRCHK		;TELL ERROR SUMMARIES
  1600
  1601	001012'	260 17 0 00 002353'	TYIPAU:	INFO.	0,PTC,<PAUSING--TYPE ANY CHARACTER TO CONTINUE>
  1602	001013'	300100	003267'
  1603	001014'	254 00 0 00 002311'		PJRST	GCHNWL		;GET IT AND RETURN
  1604
  1605	001015'	260 17 0 00 002353'	TYIKIL:	WARN.	0,FKC,<FUNCTION KILLED BY COMMAND>
  1606	001016'	300200	003276'
  1607	001017'	370 00 0 17 000000 		SOS	0(P)		;CPOPJ PLEASE
  1608	001020'	263 17 0 00 000000 		POPJ	P,		;CPOPJ TO DO A KILL
  1609
  1610	001021'	047 01 0 00 000023 	TYISTS:	MSTIME	T1,		;CURRENT TYME
  1611	001022'	274 01 0 00 002510'		SUB	T1,GOTIME	;GET ELAPSED TIME
  1612	001023'	260 17 0 00 000000*		PUSHJ	P,.TTIME##	;TYPE IT
  1613						STRNG$	< ELAPSED TIME

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 35-1
COPYMT	MAC	23-FEB-77 11:47		PROCESS TELETYPE COMMANDS WHILE RUNNING

  1614	001024'	201 01 0 00 003277'	>
  1615	001025'	260 17 0 00 000746*
  1616	001026'	400 01 0 00 000000 		SETZ	T1,		;MY RUNTIME
  1617	001027'	047 01 0 00 000027 		RUNTIM	T1,
  1618	001030'	274 01 0 00 002511'		SUB	T1,GORUNT	;ELAPSED RUNTIME
  1619	001031'	260 17 0 00 001023*		PUSHJ	P,.TTIME##	;TYPE IT
  1620						STRNG$	< CPU TIME
  1621	001032'	201 01 0 00 003303'	>
  1622	001033'	260 17 0 00 001025*
  1623
  1624	001034'	603 00 0 00 001000 	TYITOT:	TLNE	F,FL$TST	;ARE WE TESTING TAPE?
  1625	001035'	263 17 0 00 000000 		 POPJ	P,		;YES--WE REALLY SHOULD NOT BE HERE
  1626	001036'	337 01 0 00 002776'		SKIPG	T1,FILTOT	;ANY FILES TODAY?
  1627	001037'	254 00 0 00 001043'		 JRST	TYIT.2		;NO
  1628	001040'	260 17 0 00 000000*		PUSHJ	P,.TDECW##	;YES--SHOW THEM
  1629	001041'	201 01 0 00 003306'		STRNG$	< FILES, >
  1630	001042'	260 17 0 00 001033*
  1631	001043'	200 01 0 00 002775'	TYIT.2:	MOVE	T1,RECTOT	;GET RECORD TOTAL
  1632	001044'	260 17 0 00 001040*		PUSHJ	P,.TDECW##
  1633	001045'	265 01 0 00 001042*		PJSP	T1,.TSTRG##	;TYPE AND RETURN
  1634	001046'	040 122 105 103 117 		ASCIZ	. RECORDS COPIED
  1635	001047'	122 104 123 040 103 
  1636	001050'	117 120 111 105 104 
  1637	001051'	015 012 000 000 000 	.

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 36
COPYMT	MAC	23-FEB-77 11:47		PROCESS TELETYPE COMMANDS WHILE RUNNING

  1638					;HERE TO SET UP FOR MERGING
  1639
  1640	001052'	607 00 0 00 000040 	DO.CON:	TLNN	F,FL$DSO	;UNLESS DSK OUTPUT
  1641	001053'	661 00 0 00 400000 		 TLO	F,FL$MRG	;FLAG WE ARE MERGING
  1642									;(WILL HANDLE OTHER CORRECTLY)
  1643
  1644					;HERE TO COPY DATA FROM INPUT TO OUTPUT
  1645
  1646	001054'				DO.CPY:
  1647	001054'	603 00 0 00 000100 		TLNE	F,FL$DSI	;DSK TO TAPE?
  1648						 JRST	[SETZ	P2,	;YES--MAKE SURE FILE COUNT IS 0
  1649	001055'	254 00 0 00 003310'			JRST	CPYDTM]	;AND GO COPY DSK TO TAPE
  1650	001056'	603 00 0 00 000040 		TLNE	F,FL$DSO	;NO--TAPE TO DSK
  1651	001057'	254 00 0 00 001212'		 JRST	CPYMTD		;YES
  1652	001060'	607 00 0 00 000010 		TLNN	F,FL$OPN	;MAKE SURE OUTPUT TAPE IS OPEN
  1653	001061'	260 17 0 00 000326'		PUSHJ	P,OPNOUT	;GOOD THING WE CHECKED
  1654	001062'	337 00 0 00 000006 	COPYIT:	SKIPG	P2		;FILE COUNT NOT ZERO?
  1655	001063'	361 07 0 00 001323'		SOJL	P3,COPDUN	;YES--RECORDS RUN OUT?
  1656	001064'	260 17 0 00 001757'		PUSHJ	P,XCTIO		;NO--GET A BUFFER
  1657	001065'	056 01 0 00 000000 		 IN	INPC,		; XCT'D
  1658	001066'	254 00 0 00 001333'		  JRST	CPYEOF		;END OF FILE
  1659	001067'	603 00 0 00 000020 		TLNE	F,FL$232	;/TO32 BIT?
  1660	001070'	254 00 0 00 001112'		 JRST	CPY232		;YES--GO THERE
  1661	001071'	514 01 0 00 002515'		HRLZ	T1,IBHR+.BFPTR	;COPY FROM INPUT
  1662	001072'	540 01 0 00 002520'		HRR	T1,OBHR+.BFPTR	;TO OUTPUT BUFFER
  1663	001073'	252 01 0 00 001074'		AOBJP	T1,.+1		;BUT THEY ARE OFF BY ONE!
  1664	001074'	200 02 0 00 002516'		MOVE	T2,IBHR+.BFCTR	;GET THE INPUT COUNT
  1665	001075'	542 02 0 01 777777 		HRRM	T2,-1(T1)	;SET COUNT FOR MONITOR--IO.UWC IS ON
  1666	001076'	272 02 0 00 002515'		ADDM	T2,IBHR+.BFPTR	;INCREASE THE POINTER
  1667	001077'	273 02 0 00 002520'		ADDB	T2,OBHR+.BFPTR	;AND GET BLT TERMINATION PTR
  1668	001100'	402 00 0 00 002516'		SETZM	IBHR+.BFCTR	;CLEAR COUNTER
  1669	001101'	251 01 0 02 000000 		BLT	T1,(T2)		;COPY THE BUFFER
  1670	001102'	260 17 0 00 001757'	CPYDMP:	PUSHJ	P,XCTIO		;OUTPUT IT
  1671	001103'	057 02 0 00 000000 		 OUT	OUTC,		;...
  1672	001104'	254 00 0 00 001357'		  JRST	FULTAP		;HELP! TAPE IS FULL
  1673	001105'	621 00 0 00 040000 		TLZ	F,FL$EOT	;FLAG DID OUTPUT (SET AT EOF ON INPUT)
  1674	001106'	350 00 0 00 002775'		AOS	RECTOT		;COUNT RECORD
  1675	001107'	265 11 0 00 000755'		JSP	L,TYICHK	;SEE ABOUT USER INPUT
  1676	001110'	254 00 0 00 000723'		 JRST	DO.DUN		;YES--SAID TO KILL IT
  1677	001111'	254 00 0 00 001062'		JRST	COPYIT		;LOOP FOR MORE

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 37
COPYMT	MAC	23-FEB-77 11:47		COPY 36-BIT TO 32 BIT

  1678					SUBTTL	COPY 36-BIT TO 32 BIT
  1679
  1680	001112'	260 17 0 00 001114'	CPY232:	PUSHJ	P,THRTY2	;CALL A ROUTINE SO WE CAN SAVE REGISTERS
  1681	001113'	254 00 0 00 001102'		JRST	CPYDMP		;GO DUMP THE BUFFER
  1682
  1683	001114'	260 17 0 00 000403*	THRTY2:	PUSHJ	P,.SAVE3##	;SAVE SOME REGISTERS
  1684	001115'	200 05 0 00 002516'		MOVE	P1,IBHR+.BFCTR	;INPUT WORD COUNT
  1685	001116'	221 05 0 00 000011 		IMULI	P1,^D9		;# 4-BIT BYTES
  1686	001117'	205 06 0 00 440400 		MOVSI	P2,(POINT 4)	;SETUP 4-BIT BYTE PTR
  1687	001120'	540 06 0 00 002515'		HRR	P2,IBHR+.BFPTR	;GET THE PTR
  1688	001121'	541 06 0 06 000001 		HRRI	P2,1(P2)	;POINT AT THE DATA
  1689	001122'	205 07 0 00 441000 		MOVSI	P3,(POINT 8)	;FORM BYTE PTR TO STORE 8-BIT BYTES
  1690	001123'	540 07 0 00 002520'		HRR	P3,OBHR+.BFPTR
  1691	001124'	541 07 0 07 000001 		HRRI	P3,1(P3)
  1692
  1693	001125'	134 01 0 00 000006 	LUP32:	ILDB	T1,P2		;GET A BYTE
  1694	001126'	242 01 0 00 000004 		LSH	T1,4		;POSITION TO HIGH FOUR BITS
  1695	001127'	134 02 0 00 000006 		ILDB	T2,P2		;GET NEXT BYTE
  1696	001130'	434 01 0 00 000002 		OR	T1,T2		;FORM A WORD
  1697	001131'	136 01 0 00 000007 		IDPB	T1,P3		;STORE 8 BITS
  1698	001132'	275 05 0 00 000002 		SUBI	P1,2		;COUNT BYTES USED
  1699	001133'	327 05 0 00 001125'		JUMPG	P1,LUP32	;JUMP IF NOT DONE YET
  1700
  1701	001134'	550 01 0 00 002520'		HRRZ	T1,OBHR+.BFPTR	;GET THE OUTPUT PTR
  1702	001135'	201 02 0 07 000000 		MOVEI	T2,(P3)		;BEGIN TO COMPUTE WORDS TO OUTPUT
  1703	001136'	275 02 0 01 000000 		SUBI	T2,(T1)		;COMPUTE THEM
  1704	001137'	542 02 0 01 000000 		HRRM	T2,(T1)		;SET FOR IO.UWC
  1705	001140'	200 01 0 00 002516'		MOVE	T1,IBHR+.BFCTR	;GET INPUT WORD COUNT
  1706	001141'	402 00 0 00 002516'		SETZM	IBHR+.BFCTR	;CLEAR INPUT WORD COUNT
  1707	001142'	272 01 0 00 002515'		ADDM	T1,IBHR+.BFPTR	;LET MON KNOW WE USED THE BUFFER UP
  1708	001143'	263 17 0 00 000000 		POPJ	P,		;RETURN TO WRITE BUFFER

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 38
COPYMT	MAC	23-FEB-77 11:47		COPY DSK TO MAGTAPE IN PHYSICS (IREAD) FORMAT

  1709					SUBTTL	COPY DSK TO MAGTAPE IN PHYSICS (IREAD) FORMAT
  1710
  1711	001144'	265 11 0 00 000755'	CPYDTM:	JSP	L,TYICHK	;SEE ABOUT THE TTY
  1712	001145'	254 00 0 00 000723'		 JRST	DO.DUN		;SAID TO KILL
  1713	001146'	361 07 0 00 001323'		SOJL	P3,COPDUN	;DONE COPYING RECORDS? (OR WHOLE FILE?)
  1714	001147'	265 11 0 00 001262'	CPDM$A:	JSP	L,CKIBUF	;MAKE SURE BUFFER HAS GOODIES
  1715	001150'	254 00 0 00 001333'		 JRST	CPYEOF		;DONE--EOF
  1716	001151'	134 03 0 00 002515'		ILDB	T3,IBHR+.BFPTR	;RECORD LENGTH
  1717	001152'	370 00 0 00 002516'		SOS	IBHR+.BFCTR	;COUNT WHAT WE READ
  1718	001153'	322 03 0 00 001147'		JUMPE	T3,CPDM$A	;IGNORE 0 LENGTH RECORDS (PROBABLY ERROR)
  1719	001154'	603 03 0 00 777777 		TLNE	T3,-1		;NO RECORDS THIS LONG EITHER!
  1720	001155'	254 00 0 00 001147'		 JRST	CPDM$A		;WE ARE PROBABLY LOST...
  1721	001156'	200 02 0 00 002517'		MOVE	T2,OBHR+.BFADR	;ADDRESS CURRENT BUFFER
  1722	001157'	542 03 0 02 000001 		HRRM	T3,1(T2)	;SET FOR IO.UWC
  1723	001160'	202 03 0 00 002512'		MOVEM	T3,LSTBFZ	;SAVE IN CASE OF TOO LARGE RECORD
  1724
  1725	001161'	265 11 0 00 001262'	CPDM$0:	JSP	L,CKIBUF	;MAKE SURE SOMETHING IN INPUT BUFFER
  1726	001162'	254 00 0 00 001333'		JRST	CPYEOF		;DSK END OF FILE
  1727	001163'	200 01 0 00 002516'		MOVE	T1,IBHR+.BFCTR	;GET COUNT IN BUFFER
  1728	001164'	305 03 0 01 000000 	CPDM$1:	CAIGE	T3,(T1)		;CAN WE MOVE IT ALL?
  1729	001165'	201 01 0 03 000000 		 MOVEI	T1,(T3)		;NO--JUST PART
  1730	001166'	514 02 0 00 002515'		HRLZ	T2,IBHR+.BFPTR	;INPUT ADDRESS
  1731	001167'	540 02 0 00 002520'		HRR	T2,OBHR+.BFPTR	;TO OUTPUT
  1732	001170'	252 02 0 00 001171'		AOBJP	T2,.+1		;OFF BY ONE THO
  1733	001171'	272 01 0 00 002515'		ADDM	T1,IBHR+.BFPTR	;UPDATE PTRS
  1734	001172'	272 01 0 00 002520'		ADDM	T1,OBHR+.BFPTR	;...
  1735	001173'	210 01 0 00 000001 		MOVN	T1,T1		;- COUNT
  1736	001174'	270 03 0 00 000001 		ADD	T3,T1		;UPDATE WDS TO GO
  1737	001175'	272 01 0 00 002516'		ADDM	T1,IBHR+.BFCTR	;UPDATE COUNTS
  1738	001176'	273 01 0 00 002521'		ADDB	T1,OBHR+.BFCTR	;AND CHECK FOR REC TOO LARGE
  1739	001177'	321 01 0 00 001207'		 JUMPL	T1,BFTSML	;JUMP IF TOO SMALL
  1740	001200'	251 02 1 00 002520'		BLT	T2,@OBHR+.BFPTR	;MOVE WORDS
  1741	001201'	327 03 0 00 001161'		JUMPG	T3,CPDM$0	;JUMP IF REC NOT DONE
  1742	001202'	350 00 0 00 002775'		AOS	RECTOT		;COUNT THE RECORD
  1743	001203'	260 17 0 00 001757'		PUSHJ	P,XCTIO		;YES--DUMP THE RECORD
  1744	001204'	057 02 0 00 000000 		 OUT	OUTC,
  1745	001205'	254 00 0 00 001357'		JRST	FULTAP		;GET ANOTHER TAPE
  1746	001206'	254 00 0 00 001144'		JRST	CPYDTM		;DO NEXT RECORD
  1747
  1748	001207'	200 01 0 00 002512'	BFTSML:	MOVE	T1,LSTBFZ	;GET SIZE OF OFFENDER
  1749	001210'	260 17 0 00 002353'		ERROR.	EF$DEC!EF$FTL,BTS,<MTA BUFFER TOO SMALL FOR REC LENGTH = >
  1750	001211'	300401	003322'

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 39
COPYMT	MAC	23-FEB-77 11:47		COPY MAGTAPE TO DSK FILE (IREAD FORMAT)

  1751					SUBTTL	COPY MAGTAPE TO DSK FILE (IREAD FORMAT)
  1752
  1753	001212'	337 00 0 00 000006 	CPYMTD:	SKIPG	P2		;FILES LEFT
  1754	001213'	361 07 0 00 001323'		SOJL	P3,COPDUN	;OR RECORDS
  1755	001214'	265 11 0 00 001262'		JSP	L,CKIBUF	;YES--SEE IF INPUT THERE
  1756	001215'	254 00 0 00 001333'		 JRST	CPYEOF		;ALL DONE
  1757	001216'	265 11 0 00 000755'		JSP	L,TYICHK	;SEE ABOUT TTY
  1758	001217'	254 00 0 00 000723'		 JRST	 DO.DUN		;SAID TO HANG IT UP
  1759	001220'	350 00 0 00 002775'		AOS	RECTOT		;COUNT RECORDS COPIED
  1760	001221'	200 04 0 00 002516'		MOVE	T4,IBHR+.BFCTR	;GET SIZE OF RECORD
  1761	001222'	333 00 0 00 002521'		SKIPLE	OBHR+.BFCTR	;ROOM TO STORE WORD COUNT?
  1762	001223'	254 00 0 00 001230'		 JRST	CPMD$0		;YES
  1763	001224'	260 17 0 00 001757'		PUSHJ	P,XCTIO		;NO
  1764	001225'	057 02 0 00 000000 		 OUT	OUTC,
  1765	001226'	254 00 0 00 001257'		 JRST	E$$DIF		;**DSK IS FULL
  1766	001227'	621 00 0 00 040000 		TLZ	F,FL$EOT	;WE HAVE WRITTEN DATA
  1767
  1768	001230'	136 04 0 00 002520'	CPMD$0:	IDPB	T4,OBHR+.BFPTR	;STORE IN OUTPUT
  1769	001231'	370 00 0 00 002521'		SOS	OBHR+.BFCTR	;COUNT IT
  1770
  1771	001232'	337 00 0 00 002516'	CPMD0A:	SKIPG	IBHR+.BFCTR	;ANY WORDS LEFT THIS RECORD?
  1772	001233'	254 00 0 00 001212'		 JRST	CPYMTD		;NO--GET NEXT RECORD
  1773
  1774	001234'	333 00 0 00 002521'	CPMD$1:	SKIPLE	OBHR+.BFCTR	;ROOM IN OUTPUT?
  1775	001235'	254 00 0 00 001242'		 JRST	CPMD$2		;YES
  1776	001236'	260 17 0 00 001757'		PUSHJ	P,XCTIO		;NO--DUMP BUFFER
  1777	001237'	057 02 0 00 000000 		 OUT	OUTC,
  1778	001240'	254 00 0 00 001257'		 JRST	E$$DIF		;**DSK 	IS FULL
  1779	001241'	621 00 0 00 040000 		TLZ	F,FL$EOT	;WE HAVE WRITTEN DATA
  1780
  1781	001242'	200 01 0 00 002516'	CPMD$2:	MOVE	T1,IBHR+.BFCTR	;GET INPUT COUNT
  1782	001243'	313 01 0 00 002521'		CAMLE	T1,OBHR+.BFCTR	;ROOM FOR IT ALL?
  1783	001244'	200 01 0 00 002521'		 MOVE	T1,OBHR+.BFCTR	;NO--MOVE WHAT WE CAN
  1784	001245'	514 02 0 00 002515'		HRLZ	T2,IBHR+.BFPTR	;SETUP AOBJN WORD
  1785	001246'	540 02 0 00 002520'		HRR	T2,OBHR+.BFPTR	;...
  1786	001247'	252 02 0 00 001250'		AOBJP	T2,.+1		;OFF BY ONE AS USUAL
  1787	001250'	272 01 0 00 002515'		ADDM	T1,IBHR+.BFPTR	;UPDATE PTRS
  1788	001251'	272 01 0 00 002520'		ADDM	T1,OBHR+.BFPTR
  1789	001252'	210 01 0 00 000001 		MOVN	T1,T1		;- COUNT
  1790	001253'	272 01 0 00 002516'		ADDM	T1,IBHR+.BFCTR	;UPDATE COUNTERS
  1791	001254'	272 01 0 00 002521'		ADDM	T1,OBHR+.BFCTR
  1792	001255'	251 02 1 00 002520'		BLT	T2,@OBHR+.BFPTR	;MOVE DATA
  1793	001256'	254 00 0 00 001232'		JRST	CPMD0A		;LOOP FOR REST OF RECORD
  1794
  1795	001257'	260 17 0 00 002353'	E$$DIF:	ERROR.	EF$ERR,DIF,<DSK IS FULL -- ABORTING>
  1796	001260'	300000	003330'
  1797	001261'	254 00 0 00 000723'		JRST	DO.DUN
  1798
  1799					;CKIBUF -- SEE IF ANY INPUT THERE AND DO IN IF NOT
  1800					;CALL:	JSP	L,CKIBUF
  1801					;	 *EOF*
  1802					;	*DATA IN BUFFER*
  1803
  1804	001262'	333 00 0 00 002516'	CKIBUF:	SKIPLE	IBHR+.BFCTR	;ANYTHING THERE?
  1805	001263'	254 00 0 11 000001 		 JRST	1(L)		;YES--SKIP BACK

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 39-1
COPYMT	MAC	23-FEB-77 11:47		COPY MAGTAPE TO DSK FILE (IREAD FORMAT)

  1806	001264'	260 17 0 00 001757'		PUSHJ	P,XCTIO		;NO--GET NEXT RECORD
  1807	001265'	056 01 0 00 000000 		 IN	INPC,		;XCT'D
  1808	001266'	254 00 0 11 000000 		JRST	(L)		;EOF
  1809	001267'	254 00 0 11 000001 		JRST	1(L)		;GOT DATA

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 40
COPYMT	MAC	23-FEB-77 11:47		COPY MAGTAPE TO DSK FILE (IREAD FORMAT)

  1810					;THIS TABLE IS XCT'D TO DO THE PROPER FUNCTION
  1811					;THE ORDER IS:
  1812					;	OUTPUT FILE ACTION
  1813					;	OUTPUT RECORD ACTION
  1814					;	INPUT  FILE ACTION
  1815					;	INPUT  RECORD ACTION
  1816
  1817	001270'	072 02 0 00 000017 	ACTABL:	MTBSF.	OUTC,
  1818	001271'	072 02 0 00 000007 		MTBSR.	OUTC,
  1819	001272'	072 01 0 00 000017 		MTBSF.	INPC,
  1820	001273'	072 01 0 00 000007 		MTBSR.	INPC,
  1821	001274'	072 02 0 00 000016 		MTSKF.	OUTC,
  1822	001275'	072 02 0 00 000006 		MTSKR.	OUTC,
  1823	001276'	072 01 0 00 000016 		MTSKF.	INPC,
  1824	001277'	072 01 0 00 000006 		MTSKR.	INPC,
  1825	001300'	265 11 0 00 001314'		JSP	L,OMTEOF
  1826	001301'	265 11 0 00 001314'		JSP	L,OMTEOF
  1827	001302'	265 11 0 00 001314'		JSP	L,OMTEOF	;/EOF ON INPUT SIDE ONLY EOF'S OUTPUT TAPE
  1828	001303'	265 11 0 00 001314'		JSP	L,OMTEOF	;...
  1829	001304'	072 02 0 00 000001 		MTREW.	OUTC,
  1830	001305'	072 02 0 00 000001 		MTREW.	OUTC,
  1831	001306'	072 01 0 00 000001 		MTREW.	INPC,
  1832	001307'	072 01 0 00 000001 		MTREW.	INPC,
  1833	001310'	072 02 0 00 000011 		MTUNL.	OUTC,
  1834	001311'	072 02 0 00 000011 		MTUNL.	OUTC,
  1835	001312'	072 01 0 00 000011 		MTUNL.	INPC,
  1836	001313'	072 01 0 00 000011 		MTUNL.	INPC,
  1837
  1838	001314'				OMTEOF:
  1839					IFN FT$MTP,<
  1840	001314'	603 00 0 00 002000 		TLNE	F,FL$MTP	;MTAPE COMMAND?
  1841	001315'	254 00 0 00 001321'		JRST	OMTEF1		;YES--EOF INPUT SIDE THEN
  1842					>;END IFN FT$MTP
  1843	001316'	072 02 0 00 000003 		MTEOF.	OUTC,
  1844	001317'	621 00 0 00 400000 		TLZ	F,FL$MRG	;NOT MERGING ANY MORE
  1845	001320'	254 00 0 11 000000 		JRST	(L)
  1846					IFN FT$MTP,<
  1847	001321'	072 01 0 00 000003 	OMTEF1:	MTEOF.	INPC,		;EOF INPUT IF MTAPE CMD
  1848	001322'	254 00 0 11 000000 		JRST	(L)		;RETURN
  1849					>;END IFN FT$MTP

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 41
COPYMT	MAC	23-FEB-77 11:47		COPY MAGTAPE TO DSK FILE (IREAD FORMAT)

  1850	001323'	603 00 0 00 400000 	COPDUN:	TLNE	F,FL$MRG	;MERGING?
  1851	001324'	254 00 0 00 000643'		 JRST	DANTHR		;YES--CRUISE ON
  1852	001325'	260 17 0 00 000447'		PUSHJ	P,OUTCLS	;CLOSE OUTPUT
  1853	001326'	561 01 0 00 777776 		HRROI	T1,FN$EOL	;GET EOL FUNCTION
  1854	001327'	316 01 0 12 000001 		CAMN	T1,1(PLP)	;END OF LIST FUNCTION NEXT?
  1855	001330'	625 00 0 00 040000 		 TLZA	F,FL$EOT	;YES--DON'T REOPEN OUTPUT AND CLEAR FL$EOT
  1856	001331'	260 17 0 00 000326'		PUSHJ	P,OPNOUT	;NO--REOPEN OUTPUT
  1857	001332'	254 00 0 00 000643'		JRST	DANTHR		;GO PROCESS THE NEXT FUNCTION
  1858
  1859					;HERE ON INPUT END-OF-FILE
  1860
  1861	001333'	260 17 0 00 000433'	CPYEOF:	PUSHJ	P,INPCLS	;CLOSE INPUT
  1862	001334'	663 00 0 00 040000 		TLOE	F,FL$EOT	;SET/CHECK EOT FLAG
  1863	001335'	254 00 0 00 000723'		 JRST	DO.DUN		;YES--GO FINISH UP
  1864	001336'	603 00 0 00 000100 		TLNE	F,FL$DSI	;DSK IN?
  1865	001337'	254 00 0 00 001353'		JRST	CPYEFA		;YES--GO FINISH UP
  1866	001340'	350 00 0 00 002776'		AOS	FILTOT		;COUNT A FILE AS DONE
  1867	001341'	260 17 0 00 000400'		PUSHJ	P,OPNINP	;RE-OPEN INPUT
  1868	001342'	603 00 0 00 400000 		TLNE	F,FL$MRG	;MERGING?
  1869	001343'	364 06 0 00 001062'		SOJA	P2,COPYIT	;YES--DEC FILE COUNT AND GO
  1870	001344'	603 00 0 00 000040 		TLNE	F,FL$DSO	;NO--DSK OUTPUT?
  1871	001345'	364 06 0 00 001212'		 SOJA	P2,CPYMTD	;YES--CONTINUE THERE
  1872	001346'	260 17 0 00 000447'		 PUSHJ	P,OUTCLS	;NO--CLOSE OUTPUT FILE
  1873	001347'	367 06 0 00 001355'		SOJG	P2,CPYEF0	;JUMP IF MORE TO DO
  1874	001350'	327 07 0 00 001355'		JUMPG	P3,CPYEF0	;OR IF MORE RECORDS
  1875	001351'	621 00 0 00 040000 		TLZ	F,FL$EOT	;CLEAR EOT FLAG IN CASE MORE COPYING LATER
  1876	001352'	254 00 0 00 000643'		JRST	DANTHR		;NO MORE COPYING--GO GET NEXT FUNCTION AND DISP
  1877	001353'	621 00 0 00 040000 	CPYEFA:	TLZ	F,FL$EOT	;NOTHING ELSE TO DO--CLEAR EOT FLAG FOR DO.DUN
  1878	001354'	254 00 0 00 000723'		JRST	DO.DUN		;AND THEN GO THERE
  1879	001355'	260 17 0 00 000326'	CPYEF0:	PUSHJ	P,OPNOUT	;OPEN OUTPUT AGAIN
  1880	001356'	254 00 0 00 001062'		JRST	COPYIT		;GO AGAIN

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 42
COPYMT	MAC	23-FEB-77 11:47		COPY MAGTAPE TO DSK FILE (IREAD FORMAT)

  1881					;HERE WHEN TAPE IS FULL
  1882
  1883	001357'	062 02 0 00 000001 	FULTAP:	GETSTS	OUTC,T1		;GET STS BITS
  1884	001360'	620 01 0 00 002000 		 TRZ	T1,IO.EOT	;CLEAR SO WE CAN DUMP BUFFERS
  1885	001361'	060 02 0 01 000000 		SETSTS	OUTC,(T1)	;TELL TAPSER
  1886	001362'	260 17 0 00 002353'		OPER$	EF$WRN,OTF,<OUTPUT TAPE IS FULL>
  1887	001363'	300220	003335'
  1888	001364'	260 17 0 00 000447'		PUSHJ	P,OUTCLS	;CLOSE OUTPUT FILE (WRITE EOFS)
  1889	001365'	260 17 0 00 002317'	ASKEOO:	PUSHJ	P,TYPDLR	;TYPE CRLF-$ IF BATCH
  1890	001366'	201 01 0 00 003336'		STRNG$	<OPTION (H FOR HELP): >
  1891	001367'	260 17 0 00 001045*
  1892	001370'	260 17 0 00 002311'		PUSHJ	P,GCHNWL	;GET CHAR + .TCRLF
  1893	001371'	205 02 0 00 777773 		MOVSI	T2,-N$EOTO	;AOBJN
  1894	001372'	312 01 0 02 001401'		CAME	T1,EOTOPT(T2)	;CHECK THEM
  1895	001373'	253 02 0 00 001372'		AOBJN	T2,.-1
  1896	001374'	321 02 1 02 001406'		JUMPL	T2,@EOTDSP(T2)	;JUMP IF GOOD ANSWER
  1897	001375'	334 01 0 00 001376'	EOTHLP:	SKIPA	T1,.+1		;LOAD UP FILNAME
  1898	001376'	43 55 64 45 64 50 		SIXBIT	/CMTETH/	;COPYMT END-OF-TAPE HELP
  1899	001377'	260 17 0 00 002342'		PUSHJ	P,TYHELP	;TYPE SOME HELP
  1900	001400'	254 00 0 00 001365'		JRST	ASKEOO		;ASK AGAIN
  1901
  1902	001401'	000000	000103		EOTOPT:	EXP	"C","E","H","R","U"
  1903	001402'	000000	000105
  1904	001403'	000000	000110
  1905	001404'	000000	000122
  1906	001405'	000000	000125
  1907			000005			N$EOTO==.-EOTOPT
  1908
  1909	001406'	000000	001424'		EOTDSP:	EXP	FULCON
  1910	001407'	000000	001413'			EXP	EOTXIT
  1911	001410'	000000	001375'			EXP	EOTHLP
  1912	001411'	000000	001420'			EXP	EOTREW
  1913	001412'	000000	001415'			EXP	EOTUNL
  1914
  1915	001413'	047 01 0 00 000012 	EOTXIT:	EXIT	1,		;EXIT TO MONITOR
  1916	001414'	254 00 0 00 001365'		JRST	ASKEOO		;ON CONTINUE GO FOR ANOTHER ONE
  1917
  1918	001415'	260 17 0 00 000500'	EOTUNL:	PUSHJ	P,OPONOB	;OPEN -- NO BUFFERS
  1919	001416'	072 02 0 00 000011 		MTUNL.	OUTC,		;UNLOAD
  1920	001417'	254 00 0 00 001422'		JRST	EOTFIN		;CLOSE TAPE OUT
  1921	001420'	260 17 0 00 000500'	EOTREW:	PUSHJ	P,OPONOB	;OPEN WITH NO BUFFERS
  1922	001421'	072 02 0 00 000001 		MTREW.	OUTC,		;REWIND MTA
  1923	001422'	071 02 0 00 000000 	EOTFIN:	RELEASE	OUTC,		;CLOSE DEVICE
  1924	001423'	254 00 0 00 001365'		JRST	ASKEOO		;WAIT FOR CONTINUE
  1925
  1926	001424'	260 17 0 00 000326'	FULCON:	PUSHJ	P,OPNOUT	;OPEN OUTPUT TAPE
  1927	001425'	603 00 0 00 000100 		TLNE	F,FL$DSI	;DSK INPUT?
  1928	001426'	254 00 0 00 001144'		 JRST	CPYDTM		;YES--CONTINUE THERE, ELSE
  1929	001427'	254 00 0 00 001062'		JRST	COPYIT		;CONTINUE COPYING

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 43
COPYMT	MAC	23-FEB-77 11:47		TAPE TESTING

  1930					SUBTTL	TAPE TESTING
  1931
  1932					IFN FT$TST,<	;ALL UNDER FT$TST
  1933
  1934	001430'	260 17 0 00 000634*	TESTIT:	PUSHJ	P,.SAVE4##	;SAVE P1-4
  1935	001431'	072 02 0 00 000001 	TEST.2:	MTREW.	OUTC,		;REWIND OUTPUT TAPE
  1936	001432'	402 00 0 00 002774'		SETZM	OUTERS		;CLEAR ERROR COUNT FOR "E" IFTYPE CMD
  1937	001433'	661 00 0 00 001000 		TLO	F,FL$TST	;FLAG /T IN PROGRESS
  1938	001434'	200 01 0 00 003031'		MOVE	T1,OUTSPC+.FXDEV;GET NAME
  1939	001435'	260 17 0 00 002353'		INFO.	EF$SIX!EF$NCR,NTT,<TESTING >
  1940	001436'	300143	003345'
  1941	001437'	260 17 0 00 000000*		PUSHJ	P,.TCOLN##	;TYPE A COLON
  1942	001440'	201 01 0 00 003346'		STRNG$	</RETRY:>
  1943	001441'	260 17 0 00 001367*
  1944	001442'	337 01 0 00 003121'		SKIPG	T1,NUMTRY	;GET # TRIES
  1945	001443'	201 01 0 00 000004 		 MOVEI	T1,DF$TRY	;NO--ON SECOND THOUGHT, USE THE DEFAULT
  1946	001444'	202 01 0 00 003121'		MOVEM	T1,NUMTRY	;REMEMBER IT FOR LATER
  1947	001445'	260 17 0 00 001044*		PUSHJ	P,.TDECW##	;TYPE # RETRIES
  1948	001446'	201 01 0 00 003350'		STRNG$	</REPEAT:>	;TELL HOW MANY TIMES WE ARE REPEATING
  1949	001447'	260 17 0 00 001441*
  1950	001450'	337 01 0 00 003122'		SKIPG	T1,RPETFL
  1951	001451'	201 01 0 00 000001 		MOVEI	T1,1
  1952	001452'	260 17 0 00 001445*		PUSHJ	P,.TDECW##
  1953	001453'	201 01 0 00 003352'		STRNG$	</DENSITY:>
  1954	001454'	260 17 0 00 001447*
  1955	001455'	200 01 0 00 003117'		MOVE	T1,TSTDEN	;GET TEST DENSITY
  1956	001456'	201 01 0 01 001532'		MOVEI	T1,DENSTR-1(T1)	;GET ASCIZ STRING FOR IT
  1957	001457'	260 17 0 00 001454*		PUSHJ	P,.TSTRG##	;SEND IT
  1958	001460'	201 01 0 00 003354'		STRNG$	</TRACK:>
  1959	001461'	260 17 0 00 001457*
  1960	001462'	200 01 0 00 002506'		MOVE	T1,ODVNAM	;GET REAL NAME
  1961	001463'	047 01 0 00 000112 		MTCHR.	T1,		;SEE IF SEVEN OR NINE-TRACK
  1962	001464'	400 01 0 00 000000 		 SETZ	T1,		;NEVER KNOW
  1963	001465'	602 01 0 00 000020 		TRNE	T1,MT.7TR	;SEVEN?
  1964	001466'	334 01 0 00 003356'		 SKIPA	T1,[EXP 7]
  1965	001467'	201 01 0 00 000011 		 MOVEI	T1,^D9		;NINE
  1966	001470'	260 17 0 00 001452*		PUSHJ	P,.TDECW##	;TYPE 7 OR 9
  1967						MOVEI	T1,[ASCIZ/]
  1968	001471'	201 01 0 00 003357'	/]
  1969	001472'	260 17 0 00 001461*		PUSHJ	P,.TSTRG##	;END INFO
  1970	001473'	072 02 0 00 000000 		MTWAT.	OUTC,		;WAIT NOW WHILE TTY IS BUSY
  1971	001474'	062 02 0 00 000001 		GETSTS	OUTC,T1		;GET STATUS
  1972	001475'	060 02 0 01 000100 		SETSTS	OUTC,IO.NRC(T1)	;TELL TAPSER TO NOT RETRY
  1973	001476'	403 05 0 00 000007 		SETZB	P1,P3		;P1=RECORD COUNT, P3=TOTAL ERRORS
  1974	001477'	265 01 0 00 001540'		JSP	T1,RESTRY	;RESET THE RETRY COUNTER
  1975	001500'	337 10 0 00 003120'		SKIPG	P4,TESTFL	;GET VALUE OF /TEST:N
  1976	001501'	525 10 0 00 377777 		 HRLOI	P4,377777	;JUST /T...DO WHOLE TAPE
  1977	001502'	260 17 0 00 001543'		PUSHJ	P,TSTBUF	;TEST THE TAPE
  1978	001503'	260 17 0 00 000447'	ENDTST:	PUSHJ	P,OUTCLS	;CLOSE OUTPUT
  1979	001504'	260 17 0 00 000500'		PUSHJ	P,OPONOB	;OPEN FOR REWINDING
  1980	001505'	337 00 0 00 003120'		SKIPG	TESTFL		;UNLESS USER ONLY WANTED PART TESTED
  1981	001506'	072 02 0 00 000001 		MTREW.	OUTC,		;REWIND IT
  1982	001507'	200 01 0 00 000007 		MOVE	T1,P3		;COPY ERROR COUNT
  1983	001510'	260 17 0 00 002353'		INFO.	EF$DEC,TNE,<TOTAL NUMBER OF ERRORS = >
  1984	001511'	300101	003366'

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 43-1
COPYMT	MAC	23-FEB-77 11:47		TAPE TESTING

  1985	001512'	200 01 0 00 000005 		MOVE	T1,P1		;REC TOTAL=LENGTH
  1986	001513'	260 17 0 00 002353'		INFO.	EF$DEC!EF$NCR,TLI,<TAPE LENGTH = >
  1987	001514'	300141	003372'
  1988						MOVEI	T1,[ASCIZ/ FEET]
  1989	001515'	201 01 0 00 003373'	/]
  1990	001516'	260 17 0 00 001472*		PUSHJ	P,.TSTRG##	;
  1991	001517'	333 00 0 00 003124'		SKIPLE	TIMEFL		;IF /TIME
  1992	001520'	260 17 0 00 001021'		PUSHJ	P,TYISTS	;THEN DO IT
  1993					IFN FT$DEB,<
  1994						SOSG	T1,BUFZER	;SEE IF MON CLEARED BUFFERS DESPITE UU.IBC
  1995						PJRST	TEST.4		;NO--FINISH UP
  1996						INFO.	EF$DEC,MCB,<MON CLEARED BUF = >
  1997					>;END IFN FT$DEB
  1998	001521'	337 00 0 00 003120'	TEST4:	SKIPG	TESTFL		;IF USER SAID /TEST:N
  1999	001522'	377 00 0 00 003122'		 SOSG	RPETFL		; OR /REPEAT:1 OR NO /REPEAT AT ALL
  2000	001523'	254 00 0 00 000447'		  PJRST	OUTCLS		;  THEN JUST CLOSE OUTPUT AND RETURN
  2001					;***UNCOMMENT NEXT LINE IF WANT TO NOT DO MULTIPLE RETRIES IF TAPE OK
  2002					;	JUMPLE	P3,OUTCLS	;IF TAPE IS OK, THEN SKIP MULTIPLE PASSES
  2003	001524'	260 17 0 00 000447'		PUSHJ	P,OUTCLS	;NO /TEST:N AND .GT. /REPEAT:1
  2004	001525'	260 17 0 00 000326'		PUSHJ	P,OPNOUT	; SO REOPEN THE OUTPUT TAPE
  2005	001526'	607 00 0 00 000004 		TLNN	F,FL$LOG	; ARE WE LOGGING ALL OF THIS?
  2006	001527'	254 00 0 00 001431'		 JRST	TEST.2		;NO--JUST GO AHEAD
  2007	001530'	260 17 0 00 000157'		PUSHJ	P,CLGNTS	;YES--SEPARATE THE RUNS
  2008	001531'	260 17 0 00 000155'		PUSHJ	P,CLFLOG
  2009	001532'	254 00 0 00 001431'		JRST	TEST.2		;GO TEST IT NOW
  2010
  2011	001533'	062 060 060 000 000 	DENSTR:	ASCIZ	/200/		;1--200 BPI
  2012	001534'	065 065 066 000 000 		ASCIZ	/556/		;2--556
  2013	001535'	070 060 060 000 000 		ASCIZ	/800/		;3--800
  2014	001536'	061 066 060 060 000 		ASCIZ	/1600/		;4--1600
  2015	001537'	066 062 065 060 000 		ASCIZ	/6250/		;5--6250
  2016
  2017	001540'	210 06 0 00 003121'	RESTRY:	MOVN	P2,NUMTRY	;GET -(NUMBER OF RETRIES)
  2018	001541'	514 06 0 00 000006 		HRLZ	P2,P2		;PUT IN THE LH FOR AN AOBJN
  2019	001542'	254 00 0 01 000000 		JRST	(T1)		;RETURN

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 44
COPYMT	MAC	23-FEB-77 11:47		TAPE TESTING

  2020	001543'	265 11 0 00 000755'	TSTBUF:	JSP	L,TYICHK	;SEE ABOUT USER INPUT
  2021	001544'	263 17 0 00 000000 		POPJ	P,		;SAID TO KILL IT OFF
  2022	001545'	361 10 0 00 000150*		SOJL	P4,.POPJ##	;CHECK FOR REC COUNT OUT
  2023	001546'	200 01 0 00 002520'		MOVE	T1,OBHR+.BFPTR	;GET PTR
  2024	001547'	200 02 0 00 002521'		MOVE	T2,OBHR+.BFCTR	;AND COUNT
  2025	001550'	542 02 0 01 000000 		HRRM	T2,(T1)		;SET IN BUFFER SO IO.UWC WORKS
  2026	001551'	402 00 0 00 002521'		SETZM	OBHR+.BFCTR	;IN CASE IO.UWC DOESN'T WORK
  2027	001552'	273 02 0 00 002520'		ADDB	T2,OBHR+.BFPTR	;ADJUST PTR AND GET BLT TERM (IN CASE
  2028									; UU.IBC DIDN'T WORK)
  2029	001553'	332 00 0 01 000001 		SKIPE	1(T1)		;MON CLEAR THE BUFFER (OR FIRST TIME)?
  2030	001554'	254 00 0 00 001561'		 JRST	BFOTST		;NO--SKIP AHEAD
  2031	001555'	476 00 0 01 000001 		SETOM	1(T1)		;YES--MAKE IT ALL ONES
  2032	001556'	505 01 0 01 000001 		HRLI	T1,1(T1)	;FORM BLT WORD
  2033	001557'	541 01 0 01 000002 		HRRI	T1,2(T1)	;...
  2034	001560'	251 01 0 02 000000 		BLT	T1,(T2)		;FILL THE BUFFER
  2035					IFN FT$DEB,<AOS	BUFZER>		;COUNT THE TIMES MON CLEARED BUFFER

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 45
COPYMT	MAC	23-FEB-77 11:47		TAPE TESTING

  2036	001561'	057 02 0 00 000000 	BFOTST:	OUT	OUTC,		;DUMP THE BUFFER
  2037	001562'	354 00 0 00 000005 		 AOSA	P1		;OK--COUNT REC AND SKIP
  2038	001563'	254 00 0 00 001577'		  JRST	OCHERR		;OOPS--PONDER THE ERROR
  2039	001564'	550 01 0 00 000006 		HRRZ	T1,P2		;GET ERROR RETRIES
  2040	001565'	322 01 0 00 001543'		JUMPE	T1,TSTBUF	;JUMP IF FIRST TRY THIS RECORD
  2041	001566'	260 17 0 00 001470*		PUSHJ	P,.TDECW##	;NO--TYPE # OF TRIES
  2042	001567'	201 01 0 00 003375'		STRNG$	< ATTEMPTS TO WRITE TAPE AT >
  2043	001570'	260 17 0 00 001516*
  2044	001571'	200 01 0 00 000005 		MOVE	T1,P1		;REC #
  2045	001572'	260 17 0 00 001566*		PUSHJ	P,.TDECW##
  2046	001573'	260 17 0 00 002327'		PUSHJ	P,TYFEET	;FEET<CRLF>
  2047	001574'	265 01 0 00 001540'	OCHIEC:	JSP	T1,RESTRY	;RESET THE RETRY COUNTER IN P2
  2048	001575'	350 00 0 00 002774'		AOS	OUTERS		;COUNT OUTPUT ERROR
  2049	001576'	344 07 0 00 001543'		AOJA	P3,TSTBUF	;COUNT ERROR AND LOOP
  2050
  2051	001577'	062 02 0 00 000002 	OCHERR:	GETSTS	OUTC,T2		;GET ERROR BITS
  2052	001600'	602 02 0 00 002000 		TRNE	T2,IO.EOT	;END OF TAPE?
  2053	001601'	263 17 0 00 000000 		POPJ	P,		;YES--DONE WITH TEST
  2054	001602'	620 02 0 00 740000 		TRZ	T2,IO.ERR	;CLEAR ERROR BITS
  2055	001603'	060 02 0 02 000000 		SETSTS	OUTC,(T2)	;TELL MON
  2056	001604'	253 06 0 00 001617'		AOBJN	P2,OCHFIX	;COUNT AND JUMP IF NOT ENOUGHT TRIES
  2057	001605'	271 05 0 00 000001 		ADDI	P1,1		;COUNT THE RECORD
  2058	001606'	200 01 0 00 003121'		MOVE	T1,NUMTRY	;GET # TRIES
  2059	001607'	260 17 0 00 002353'		WARN.	EF$DEC!EF$NCR,FAR,<FAILED AFTER >
  2060	001610'	300241	003406'
  2061	001611'	201 01 0 00 003407'		STRNG$	< TRIES AT >
  2062	001612'	260 17 0 00 001570*
  2063	001613'	200 01 0 00 000005 		MOVE	T1,P1		;GET RECORD COUNT
  2064	001614'	260 17 0 00 001572*		PUSHJ	P,.TDECW##	;SHO THE FEET
  2065	001615'	260 17 0 00 002327'		PUSHJ	P,TYFEET	;TYPE FEET<CRLF>
  2066	001616'	254 00 0 00 001574'		JRST	OCHIEC		;GO FIX UP ERROR COUNTERS
  2067
  2068	001617'	072 02 0 00 000007 	OCHFIX:	MTBSR.	OUTC,		;BACKSPACE A RECORD (ONE IN ERROR)
  2069	001620'	072 02 0 00 000000 		MTWAT.	OUTC,		;WAIT FOR IT
  2070	001621'	323 05 0 00 001543'		JUMPLE	P1,TSTBUF	;IF FIRST REC THEN ALL DONE
  2071	001622'	072 02 0 00 000007 		MTBSR.	OUTC,		;BACKSPACE ANOTHER
  2072	001623'	072 02 0 00 000000 		MTWAT.	OUTC,		;WAIT
  2073	001624'	072 02 0 00 000006 		MTSKR.	OUTC,		;FORWARD ONE
  2074	001625'	072 02 0 00 000000 		MTWAT.	OUTC,		;WAIT
  2075	001626'	254 00 0 00 001543'		JRST	TSTBUF		;GO AGAIN
  2076					>;END IFN FT$TST

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 46
COPYMT	MAC	23-FEB-77 11:47		FIND BUFFER IN ERROR

  2077					SUBTTL	FIND BUFFER IN ERROR
  2078
  2079					REPEAT	0,<	;NOBODY USES IT YET
  2080					
  2081					;FNDBFE -- FIND BUFFER IN ERROR
  2082					;CALL:	MOVE	T1,<1ST WORD OF BUFFER HEADER>
  2083					;	PUSHJ	P,FNDBFE
  2084					;	*NOT FUND*
  2085					;	*FOUND--T1 HAS COUNTER OF # BUFS FROM PRESENT ONE,,PTR TO IT
  2086					
  2087					FNDBFE:	PUSHJ	P,.SAVE3##	;NEED REGS
  2088						SETZ	P3,		;CLEAR COUNT
  2089						HRRZ	P1,T1		;COPY PTR
  2090					BFELUP:	MOVE	P2,-1(P1)	;GET STATUS BITS
  2091						ANDI	P2,IO.IMP!IO.DER!IO.BKT!IO.DTE
  2092						JUMPN	P2,GOTBFE	;JUMP IF FOUND SOME ERROS
  2093						HRRZ	P1,(P1)		;NO--MOVE ALONG RING
  2094						CAME	P1,T1		;BACK TO WHERE WE STARTED?
  2095						 AOJA	P3,BFELUP	;NO--COUNT AND LOOP
  2096					RTZER:	SETZ	T1,		;NONE FOUND
  2097						POPJ	P,
  2098					
  2099					;HERE WITH FOUND BUFFER IN ERROR
  2100					
  2101					GOTBFE:	ANDCAM	P2,-1(P1)	;CLEAR ERROR BITS
  2102						HRLZ	T1,P3		;COUNT
  2103						HRRI	T1,(P1)		;BUFFER ADDR
  2104						JRST	.POPJ1##	;SKIP BACK
  2105					>;END REPEAT 0

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 47
COPYMT	MAC	23-FEB-77 11:47		OPENIO OPENS I/O CHANNELS

  2106					SUBTTL	OPENIO OPENS I/O CHANNELS
  2107
  2108					;OPENIO
  2109					;CALL:	MOVEI	T1,<FDB ADDR>
  2110					;	PUSHJ	P,OPENIO
  2111					;	CAI	CHANNEL,BUFADR	;@ IF OUTPUT, (MODE)
  2112					;	*ALL IS WELL RETURN*	;ABORT IF FAIL
  2113
  2114	001627'	504 01 0 17 000000 	OPENIO:	HRL	T1,0(P)		;REMEMBER CALLER
  2115	001630'	350 00 0 17 000000 		AOS	(P)		;DO A SKIP BACK
  2116	001631'	260 17 0 00 001114*		PUSHJ	P,.SAVE3##	;PRESERVE REGISTERS
  2117	001632'	204 05 0 00 000001 		MOVS	P1,T1		;COPY ARGUMENTS
  2118	001633'	200 06 0 05 000000 		MOVE	P2,(P1)		;GET REST OF THEM
  2119	001634'	205 01 0 00 000032 		MOVSI	T1,.FXLEN	;SETUP FOR .STOPB
  2120	001635'	544 01 0 00 000005 		HLR	T1,P1		;...
  2121	001636'	201 02 0 00 002620'		MOVEI	T2,OPNBLK	;
  2122	001637'	334 03 0 00 001640'		SKIPA	T3,.+1
  2123	001640'	000036	002623'			.RBTIM+1,,LKPBLK
  2124	001641'	201 04 0 00 002661'		MOVEI	T4,PTHBLK	;PATCH
  2125	001642'	260 17 0 00 000256*		PUSHJ	P,.STOPB##	;CONVERT TO OPEN/LOOKUP BLOCKS
  2126	001643'	254 00 0 00 001703'		 JRST	WLDERR		;NO WILDCARDING!
  2127	001644'	201 01 0 00 000035 	DOOPEN:	MOVEI	T1,.RBTIM	;SETUP COUNT
  2128	001645'	202 01 0 00 002623'		MOVEM	T1,LKPBLK+.RBCNT
  2129	001646'	135 01 0 00 003412'		LDB	T1,[POINT 4,P2,17] ;GET MODE
  2130	001647'	202 01 0 00 002620'		MOVEM	T1,OPNBLK+.OPMOD;STORE IN OPEN BLOCK
  2131	001650'	550 01 0 00 000006 		HRRZ	T1,P2		;BUFFER HEADER ADDRESS
  2132	001651'	603 06 0 00 000020 		TLNE	P2,ATSIGN	;READ OR WRITE?
  2133	001652'	207 00 0 00 000001 		MOVSS	T1		;WRITING, POSITON FOR IT
  2134	001653'	202 01 0 00 002622'		MOVEM	T1,OPNBLK+.OPBUF;STORE
  2135	001654'	135 07 0 00 003413'		LDB	P3,[POINT 4,P2,12] ;GET I/O CHANNEL
  2136	001655'	205 01 0 00 020000 		MOVSI	T1,(UU.IBC)	 ;GET INHIBIT BUFFER CLEARING BIT
  2137	001656'	306 07 0 00 000002 		CAIN	P3,OUTC		;IF OUTPUT CHANNEL
  2138	001657'	661 01 0 00 010000 		TLO	T1,(UU.SOE)	;THEN STOP ON ERROR ALSO
  2139	001660'	302 07 0 00 000003 		CAIE	P3,LPTC		;UNLESS LINE PRINTER CHANNEL
  2140	001661'	436 01 0 00 002620'		IORM	T1,OPNBLK+.OPMOD;STORE IN OPEN BLOCK
  2141	001662'	242 07 0 00 000005 		LSH	P3,5		;POSITION CHANNEL
  2142	001663'	207 00 0 00 000007 		MOVSS	P3		;IN CHANNEL POSITION
  2143	001664'	200 01 0 00 003414'		MOVE	T1,[OPEN OPNBLK];FORM INSTR
  2144	001665'	434 01 0 00 000007 		OR	T1,P3		;FINISH
  2145	001666'	256 00 0 00 000001 		XCT	T1		;TRY TO OPEN DEVICE
  2146	001667'	254 00 0 00 001700'		 JRST	OPENER		;CAN'T--BOMB OUT
  2147
  2148	001670'	200 01 0 00 000007 		MOVE	T1,P3		;REGET I/O CHANNEL
  2149	001671'	603 06 0 00 000020 		TLNE	P2,ATSIGN	;READ/WRITE?
  2150	001672'	665 01 0 00 077000 		 TLOA	T1,(ENTER)	;WRITE
  2151	001673'	661 01 0 00 076000 		  TLO	T1,(LOOKUP)	;READ
  2152	001674'	541 01 0 00 002623'		HRRI	T1,LKPBLK	;COMPLETE INSTR
  2153	001675'	256 00 0 00 000001 		XCT	T1		;FIND/WRITE THE FILE
  2154	001676'	254 00 0 00 001713'		 JRST	LKENER		;CAN'T
  2155	001677'	263 17 0 00 000000 		POPJ	P,		;RETURN

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 48
COPYMT	MAC	23-FEB-77 11:47		OPENIO OPENS I/O CHANNELS

  2156					;OPENIO ERRORS
  2157
  2158	001700'	554 01 0 00 000005 	OPENER:	HLRZ	T1,P1		;COPY FDB ADDR
  2159	001701'	260 17 0 00 002353'	E$$COD:	ERROR.	EF$FTL!EF$FIL,COD,<CAN'T OPEN DEVICE, FILE >
  2160	001702'	300406	003422'
  2161
  2162	001703'	200 01 0 00 002621'	WLDERR:	MOVE	T1,OPNBLK+.OPDEV;GET DEVICE
  2163	001704'	047 01 0 00 000004 		DEVCHR	T1,		;MAKE SURE MTA
  2164	001705'	607 01 0 00 000020 		TLNN	T1,(DV.MTA)	;IS IT?
  2165	001706'	254 00 0 00 001710'		 JRST	WLDNMT		;NO
  2166	001707'	254 00 0 00 001644'		JRST	DOOPEN		;YES--GO ON
  2167
  2168	001710'	554 01 0 00 000005 	WLDNMT:	HLRZ	T1,P1		;GET FDB
  2169	001711'	260 17 0 00 002353'	E$$DNM:	ERROR.	EF$FTL!EF$FIL,DNM,<DEVICE NOT A MAGTAPE - >
  2170	001712'	300406	003430'
  2171
  2172	001713'	550 01 0 00 002626'	LKENER:	HRRZ	T1,LKPBLK+.RBEXT;GET FAIL CODE
  2173	001714'	260 17 0 00 002353'		ERROR.	EF$ERR!EF$OCT!EF$NCR,LER,<LOOKUP/ENTER ERROR(>
  2174	001715'	300042	003435'
  2175	001716'	201 01 0 00 003436'		STRNG$	<) FILE >
  2176	001717'	260 17 0 00 001612*
  2177	001720'	554 01 0 00 000005 		HLRZ	T1,P1
  2178	001721'	260 17 0 00 000000*		PUSHJ	P,.TFBLK##	;TYPE SCAN BLOCK
  2179	001722'	260 17 0 00 000765*		PUSHJ	P,.TCRLF##	;NEW LINE
  2180	001723'	254 00 0 00 002427'		JRST	ERRFTL		;GO DIE
  2181
  2182					;SCAN BLOCK FOR LPT SPEC
  2183
  2184	001724'	54 60 64 00 00 00 	LPTSPC:	SIXBIT	/LPT/		;.FXDEV
  2185	001725'	435760	715564			EXP	MY$NAM		;.FXNAM
  2186	001726'	777777	777777			EXP	-1		;.FXNMM
  2187	001727'	546064	777777			'LPT',,-1		;.FXEXT
  2188	001730'					BLOCK	.FXLEN-.FXEXT	;THE REST

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 49
COPYMT	MAC	23-FEB-77 11:47		XCTIO EXECUTES IN/OUT UUO WITH ERROR HANDLING

  2189					SUBTTL	XCTIO EXECUTES IN/OUT UUO WITH ERROR HANDLING
  2190
  2191					;XCTIO
  2192					;CALL:	PUSHJ	P,XCTIO
  2193					;	<INSTR TO XCT>	;IN/OUT UUO
  2194					;	*EOF/EOT RETURN*
  2195					;	*NORMAL RETURN*
  2196
  2197	001757'				XCTIO:	SAVE$	T1		;SAVE POSSIBLE CHAR/WORD
  2198	001760'	200 01 1 17 777777 		MOVE	T1,@-1(P)	;GET INSTR TO XCT
  2199	001761'	350 00 0 17 777777 		AOS	-1(P)		;SKIP INSTR ON RETURN
  2200	001762'	260 17 0 00 001765'		PUSHJ	P,XCTIOD	;DO THE I/O
  2201	001763'	350 00 0 17 777777 		AOS	-1(P)		;OK--SKIP BACK
  2202	001764'	254 00 0 00 002136'		JRST	TPOPJ		;RESTOR T1 AND RETURN
  2203
  2204					;THIS ROUTINE DOESN'T SKIP IF XCTIO SHOULD, AND SKIPS IF XCTIO SHOULDN'T
  2205
  2206	001765'	256 00 0 00 000001 	XCTIOD:	XCT	T1		;DO THE UUO
  2207	001766'	263 17 0 00 000000 		POPJ	P,		;OK--CPOPJ SO XCTIO WILL CPOPJ1
  2208	001767'	260 17 0 00 000000*		PUSHJ	P,.SAVE2##	;ERROR--SAVE P1 - 2
  2209						SAVE$	T1		;SAVE OPERATION IN CASE OPTION=S
  2210	001771'	404 01 0 00 003440'	XCTIOE:	AND	T1,[17B12]	;ERROR--GET THE CHANNEL
  2211					;	MOVE	P1,T1		;COPY CHANNEL
  2212					;	OR	P1,[WAIT]	;FORM UUO TO WAIT FOR I/O TO FINISH
  2213					;	XCT	P1		;WAIT FOR IT
  2214	001772'	200 05 0 00 000001 		MOVE	P1,T1		;COPY CHANNEL
  2215	001773'	554 06 0 00 000005 		HLRZ	P2,P1		;GET IN RH FOR FUTURE TESTING
  2216	001774'	242 06 0 00 777773 		LSH	P2,-5		;...
  2217	001775'	434 01 0 00 003441'		OR	T1,[GETSTS T2]	;GET ERRROR BITS
  2218	001776'	256 00 0 00 000001 		XCT	T1
  2219	001777'	602 02 0 00 022000 		TRNE	T2,IO.EOF!IO.EOT;END OF SOMETHING?
  2220	002000'	254 00 0 00 002135'		JRST	TPOPJ1		;YES--CPOPJ1 SO XCTIO WILL CPOPJ
  2221	002001'	550 01 0 00 000002 		HRRZ	T1,T2		;NO--GET BITS IN RIGHT PLACE
  2222	002002'	202 02 0 00 002513'		MOVEM	T2,TEMP		;SAVE IN A VERY VOLATILE PLACE
  2223	002003'	620 02 0 00 740000 		TRZ	T2,IO.ERR	;CLEAR ERROR BITS
  2224	002004'	661 05 0 00 060002 		TLO	P1,(SETSTS (T2)) ;FORM INSTR TO RESET STATUS
  2225	002005'	256 00 0 00 000005 		XCT	P1		;MAKE ERROR DISSAPPEAR
  2226	002006'	602 01 0 00 400000 		TRNE	T1,IO.IMP	;CHECK FOR WRITE LOCK
  2227	002007'	254 00 0 00 002063'		 JRST	FIXWLK		;YES--GO HANDLE IT
  2228	002010'	306 06 0 00 000004 		CAIN	P2,LOGC		;IF LOG FILE
  2229						 JRST	[TLZ	F,FL$LOG;STOP OUTPUT FOR A WHILE
  2230	002011'	254 00 0 00 003442'			JRST	XCTIO0]	;AND GO PUT MSG TO TTY
  2231	002012'	302 06 0 00 000003 		CAIE	P2,LPTC		;UNLESS LPT CHANNEL
  2232	002013'	350 00 0 06 002772'		AOS	ERRCNT-1(P2)	;COUNT THE ERROR
  2233	002014'	302 06 0 00 000001 		CAIE	P2,INPC		;IF THIS IS INPUT CHANNEL
  2234	002015'	254 00 0 00 002023'		 JRST	XCTIO0		;NO
  2235	002016'	200 02 0 00 003132'		MOVE	T2,ERRFLG	;GET /ERROR VALUE
  2236	002017'	333 00 0 00 003123'		SKIPLE	RTRYFL		;/NORETRY??
  2237	002020'	333 00 0 00 003125'		 SKIPLE	RPTFLG		;YES--/REPORT?
  2238	002021'	306 02 0 00 000002 		 CAIN	T2,ERLIGN	;HOW ABOUT /ERROR:IGNORE?
  2239	002022'	254 00 0 00 002136'		JRST	TPOPJ		;/NORETRY AND /NOREPORT OR /ERROR:IGNORE

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 50
COPYMT	MAC	23-FEB-77 11:47		XCTIO EXECUTES IN/OUT UUO WITH ERROR HANDLING

  2240	002023'	260 17 0 00 002353'	XCTIO0:	WARN.	EF$NCR!EF$OCT,IOE,<I/O STATUS = >
  2241	002024'	300242	003447'
  2242	002025'	260 17 0 00 002140'		PUSHJ	P,TELPRB	;TELL WHAT THE BITS MEAN
  2243	002026'	201 01 0 00 003450'		STRNG$	<, ON >
  2244	002027'	260 17 0 00 001717*
  2245	002030'	200 01 0 06 003451'		MOVE	T1,[EXP INPSPC,OUTSPC,LPTSPC,LOGSPC]-1(P2) ;GET RIGHT FDB
  2246	002031'	260 17 0 00 001721*		PUSHJ	P,.TFBLK##	;TYPE IT OUT
  2247	002032'	306 06 0 00 000004 		CAIN	P2,LOGC		;IS THIS THE LOG CHANNEL?
  2248						 JRST	[TLO	F,FL$LOG;YES--MARK IT OPEN FOR BUSINESS AGAIN
  2249	002033'	254 00 0 00 003456'			JRST	TPOPJ]	;AND GO RETURN
  2250	002034'	306 06 0 00 000003 		CAIN	P2,LPTC		;OR LPT CHANNEL
  2251	002035'	254 00 0 00 002132'		 JRST	TELCON		;YES--JUST GO CONTINUE
  2252	002036'	200 01 0 00 000006 		MOVE	T1,P2		;COPY CHANNEL FOR TAPOP.
  2253	002037'	260 17 0 00 002332'		PUSHJ	P,GMTSTS	;GET FILE AND RECORD COUNTS
  2254	002040'	201 01 0 00 003460'		STRNG$	<, FILE >	;TELL FILE AND RECORD COUNTS
  2255	002041'	260 17 0 00 002027*
  2256	002042'	200 01 0 00 002771'		MOVE	T1,TPOPBL+.TSFIL;GET FILE
  2257	002043'	260 17 0 00 001614*		PUSHJ	P,.TDECW##
  2258	002044'	201 01 0 00 003462'		STRNG$	< RECORD >
  2259	002045'	260 17 0 00 002041*
  2260	002046'	200 01 0 00 002772'		MOVE	T1,TPOPBL+.TSREC;AND REC #
  2261	002047'	260 17 0 00 002043*		PUSHJ	P,.TDECW##
  2262	002050'	607 00 0 00 010000 		TLNN	F,FL$BAT	;IF BATCH JOB JUST CONTINUE
  2263	002051'	302 06 0 00 000001 		CAIE	P2,INPC		;THIS INPUT CHANNEL?
  2264	002052'	254 00 0 00 002132'		 JRST	TELCON		;NO--JUST CONTINUE
  2265	002053'	200 01 0 00 002513'		MOVE	T1,TEMP		;GET SAVED I/O STATUS
  2266	002054'	602 01 0 00 040000 		TRNE	T1,IO.BKT	;IF BLOCK TOO LARGE
  2267	002055'	260 17 0 00 002171'		 PUSHJ	P,BKTERR	;GO HANDLE SEPARATELY
  2268	002056'	333 01 0 00 003132'		SKIPLE	T1,ERRFLG	;GET /ERROR:LEVEL
  2269	002057'	302 01 0 00 000003 		 CAIE	T1,ERLQUE	;/ERROR:QUERY?
  2270	002060'	254 00 0 00 002132'		 JRST	TELCON		;NO--CONTINUE
  2271	002061'	260 17 0 00 001722*		PUSHJ	P,.TCRLF##	;NEW LINE
  2272	002062'	254 00 0 00 002070'		JRST	GETOPT		;GO GET ERROR OPTION
  2273
  2274					;HERE WHEN OUTPUT IS WRITE LOCKED--ASK USER TO WRITE-ENABLE IT
  2275
  2276	002063'	260 17 0 00 000473'	FIXWLK:	PUSHJ	P,WRTLOK	;TELL AND WAIT FOR WRTENBL
  2277	002064'	200 01 0 17 000000 		MOVE	T1,0(P)		;GET I/O INSTR
  2278	002065'	256 00 0 00 000001 		XCT	T1		;CLANK IT AGAIN
  2279	002066'	254 00 0 00 002136'		 JRST	TPOPJ		;SUCCESS!
  2280	002067'	254 00 0 00 001771'		JRST	XCTIOE		;OOPS..ERROR AGAIN

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 51
COPYMT	MAC	23-FEB-77 11:47		XCTIO EXECUTES IN/OUT UUO WITH ERROR HANDLING

  2281					GETOPT:	STRNG$	<
  2282	002070'	201 01 0 00 003464'	OPTION (H FOR HELP): >
  2283	002071'	260 17 0 00 002045*
  2284	002072'	260 17 0 00 002311'		PUSHJ	P,GCHNWL	;INCHRW T1 + .TCRLF
  2285	002073'	205 02 0 00 777771 		MOVSI	T2,-N$OPTN	;AOBJ
  2286	002074'	312 01 0 02 002103'		CAME	T1,OPTLST(T2)
  2287	002075'	253 02 0 00 002074'		AOBJN	T2,.-1
  2288	002076'	321 02 1 02 002112'		JUMPL	T2,@OP$DSP(T2)	;JUMP IF VALID
  2289	002077'	334 01 0 00 002100'	OP$HLP:	SKIPA	T1,.+1		;LOAD UP FILENAME
  2290	002100'	43 55 64 45 62 50 		SIXBIT	/CMTERH/	;COPYMT I/O ERROR HELP
  2291	002101'	260 17 0 00 002342'		PUSHJ	P,TYHELP	;GO TYPE HELP
  2292	002102'	254 00 0 00 002070'		JRST	GETOPT
  2293
  2294	002103'	000000	000103		OPTLST:	EXP	"C","D","E","G","H","I","S"
  2295	002104'	000000	000104
  2296	002105'	000000	000105
  2297	002106'	000000	000107
  2298	002107'	000000	000110
  2299	002110'	000000	000111
  2300	002111'	000000	000123
  2301			000007			N$OPTN==.-OPTLST
  2302
  2303	002112'	000000	002136'		OP$DSP:	EXP	TPOPJ		;CONTINUE
  2304	002113'	000000	002204'			EXP	OP$DMP		;DUMP IT
  2305	002114'	000000	002126'			EXP	OP$EXI		;EXIT
  2306	002115'	000000	002124'			EXP	OP$G		;GO
  2307	002116'	000000	002077'			EXP	OP$HLP		;HEP ME
  2308	002117'	000000	002121'			EXP	OP$IGN		;IGNORE FURTHER ERRORS
  2309	002120'	000000	002130'			EXP	OP$SKP		;SKIP IT
  2310
  2311	002121'	201 01 0 00 000002 	OP$IGN:	MOVEI	T1,ERLIGN	;/ERROR:IGNORE
  2312	002122'	202 01 0 00 003132'		MOVEM	T1,ERRFLG	;SET FOR LATER ERRORS
  2313	002123'	254 00 0 00 002136'		JRST	TPOPJ		;AND RETURN
  2314	002124'	476 00 0 00 003132'	OP$G:	SETOM	ERRFLG		;FLAG NOT TO BOTHER USER
  2315	002125'	254 00 0 00 002136'		JRST	TPOPJ		;CPOPJ SO XCTIO WILL CPOPJ1
  2316
  2317	002126'	047 01 0 00 000012 	OP$EXI:	EXIT	1,
  2318	002127'	254 00 0 00 002070'		JRST	GETOPT		;IF HE CONTINUES
  2319
  2320	002130'				OP$SKP:	RESTR$	T1		;GET THE I/O INSTR BACK
  2321	002131'	254 00 0 00 001765'		JRST	XCTIOD		;AND TRY AGAIN
  2322
  2323					TELCON:	STRNG$	< - CONTINUING
  2324	002132'	201 01 0 00 003471'	>
  2325	002133'	260 17 0 00 002071*
  2326	002134'	254 00 0 00 002136'		JRST	TPOPJ		;CPOPJ SO XCTIO WILL CPOPJ1
  2327	002135'	350 00 0 17 777777 	TPOPJ1:	AOS	-1(P)
  2328	002136'				TPOPJ:	RESTR$	T1
  2329	002137'	263 17 0 00 000000 		POPJ	P,

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 52
COPYMT	MAC	23-FEB-77 11:47		XCTIO EXECUTES IN/OUT UUO WITH ERROR HANDLING

  2330					;CALL HERE WITH ERROR BITS IN T1--REPORTS WHAT THEY ALL MEAN
  2331
  2332	002140'	260 17 0 00 000313*	TELPRB:	PUSHJ	P,.PSH4T##	;SAVE T1-4
  2333	002141'	200 05 0 00 000001 		MOVE	P1,T1		;COPY BITS
  2334	002142'	405 05 0 00 740000 		ANDI	P1,IO.IMP!IO.DER!IO.DTE!IO.BKT ;NARROW TO WHAT WE NEED
  2335	002143'	322 05 0 00 002164'		JUMPE	P1,PRBDUN	;JUMP IF NOT A PROBLEM!
  2336	002144'	242 05 0 00 777762 		LSH	P1,-<ALIGN. (IO.BKT)> ;POSITION
  2337	002145'	201 01 0 00 003475'		MOVEI	T1,[ASCIZ/ (/]	;START THE LIST
  2338	002146'	260 17 0 00 002133*		PUSHJ	P,.TSTRG##
  2339	002147'	621 00 0 00 004000 		TLZ	F,FL$FLG	;FL$FLG=1 MEANS NOT FIRST ONE--TYPE A COMMA
  2340	002150'	200 04 0 00 003476'		MOVE	T4,[POINT 18,PRBNAM] ;POINT TO THE PROBLEM
  2341	002151'	134 02 0 00 000004 	PRBLUP:	ILDB	T2,T4		;GET ONE
  2342	002152'	606 05 0 00 000001 		TRNN	P1,1		;THIS ONE A PROBLEM?
  2343	002153'	254 00 0 00 002160'		 JRST	PRBNXT		;NO
  2344	002154'	663 00 0 00 004000 		TLOE	F,FL$FLG	;YES--FIRST ONE?
  2345	002155'	260 17 0 00 002325'		PUSHJ	P,TYSLSH	;NO--SLASH 1
  2346	002156'	205 01 0 02 000000 		MOVSI	T1,(T2)		;POSITION ERROR CODE
  2347	002157'	260 17 0 00 400111*		PUSHJ	P,.TSIXN##	;TYPE IT
  2348	002160'	242 05 0 00 777777 	PRBNXT:	LSH	P1,-1		;MOVE OVER ONE
  2349	002161'	326 05 0 00 002151'		JUMPN	P1,PRBLUP
  2350	002162'	201 01 0 00 000051 		MOVEI	T1,")"		;FINISH IT OFF
  2351	002163'	260 17 0 00 000773*		PUSHJ	P,.TCHAR##	;...
  2352	002164'				PRBDUN:
  2353	002164'	260 17 0 00 000207*	POP4J:	PUSHJ	P,.POP4T##	;RESTORE T1-4
  2354	002165'	263 17 0 00 000000 		POPJ	P,
  2355
  2356	002166'	425364	604162		PRBNAM:	'BKTPAR'		;BLOCK TOO LARGE/PARITY (DATA) ERROR
  2357	002167'	444562	515560			'DERIMP'		;DEVICE ERROR/IMPROPER MODE
  2358	002170'	000000	000000			EXP	0		;SNH
  2359
  2360	002171'	663 00 0 00 000400 	BKTERR:	TLOE	F,FL$BKT	;BEEN HERE BEFORE?
  2361	002172'	263 17 0 00 000000 		 POPJ	P,		;YES--JUST RETURN
  2362	002173'	260 17 0 00 002061*		PUSHJ	P,.TCRLF##	;NEW LINE
  2363	002174'	260 17 0 00 002353'		INFO.	0,BKT,<BLOCK TOO LARGE ON INPUT--TRY LARGER /BUFSIZ>
  2364	002175'	300100	003510'
  2365	002176'	201 01 0 00 003511'	ASKCON:	STRNG$	<CONTINUE (Y OR N)? >
  2366	002177'	260 17 0 00 002146*
  2367	002200'	260 17 0 00 002311'		PUSHJ	P,GCHNWL	;GET HIS REPLY
  2368	002201'	302 01 0 00 000131 		CAIE	T1,"Y"		;WHAT DID HE SAY?
  2369						JRST	[CAIE	T1,"N"	;BUT DID HE REALLY SAY NO?
  2370							JRST	ASKCON	;NO--MAKE SURE
  2371	002202'	254 00 0 00 003515'			JRST	ERRFTL]	;YES--GO DIE
  2372	002203'	263 17 0 00 000000 		POPJ	P,		;HE SAID TO CONTINUE OK

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 53
COPYMT	MAC	23-FEB-77 11:47		ERROR DUMP ROUTINES

  2373					SUBTTL	ERROR DUMP ROUTINES
  2374
  2375	002204'	663 00 0 00 020000 	OP$DMP:	TLOE	F,FL$LPO	;LPT OPEN?
  2376	002205'	254 00 0 00 002215'		 JRST	DUMP0		;YES
  2377	002206'	201 01 0 00 001724'		MOVEI	T1,LPTSPC	;NO--GET SPEC ADDR
  2378	002207'	260 17 0 00 001627'		PUSHJ	P,OPENIO	;DO IT
  2379	002210'	300 03 1 00 002522'		CAI	LPTC,@LBHR(.IOASC) ;
  2380	002211'	205 01 0 00 000002 		MOVSI	T1,2		;USE 2 BUFFERS
  2381	002212'	334 02 0 00 002213'		SKIPA	T2,.+1		;
  2382	002213'	002620'	002522'			XWD	OPNBLK,LBHR	;ARG FOR .ALCBF
  2383	002214'	260 17 0 00 000427*		PUSHJ	P,.ALCBF##	;ALLOCATE BUFFERS
  2384
  2385	002215'	260 17 0 00 002277'	DUMP0:	PUSHJ	P,LHEDER	;HEADER FOR RECORD
  2386	002216'	260 17 0 00 002220'		PUSHJ	P,LDMPBF	;DUMP THE BUFFER
  2387	002217'	254 00 0 00 002070'		JRST	GETOPT		;ASK AGAIN
  2388
  2389	002220'	260 17 0 00 001767*	LDMPBF:	PUSHJ	P,.SAVE2##	;SAVE P1-2
  2390	002221'	201 05 0 00 000010 		MOVEI	P1,MX$NPL	;PRESET COUNTER
  2391	002222'	210 01 0 00 002516'		MOVN	T1,IBHR+.BFCTR	;GET NEG LENGTH OF BUFFER
  2392	002223'	550 06 0 00 002515'		HRRZ	P2,IBHR+.BFPTR	;POINT TO BUFFER
  2393	002224'	541 06 0 06 000001 		HRRI	P2,1(P2)	;POINT TO DATA WORDS
  2394	002225'	505 06 0 01 000000 		HRLI	P2,(T1)		;FORM AOBJN WORD
  2395	002226'	200 02 0 06 000000 	LDMLUP:	MOVE	T2,(P2)		;GET A WORD
  2396	002227'	260 17 0 00 002232'		PUSHJ	P,LOCTFW	;DUMP WITH FORMATTING
  2397	002230'	253 06 0 00 002226'		AOBJN	P2,LDMLUP	;DO ALL WORDS
  2398	002231'	254 00 0 00 002256'		PJRST	LCRLF		;NEW LINE AND RETURN
  2399
  2400					;CALL WITH WORD TO DUMP IN T2 (DUMPS ALL 12 OCTAL DIGITS WITH FORMATIING)
  2401
  2402	002232'	365 05 0 00 002234'	LOCTFW:	SOJGE	P1,LOCTF0	;JUMP IF COOL
  2403	002233'	260 17 0 00 002255'		PUSHJ	P,FLCRLF	;NO--NEW LINE
  2404	002234'	201 01 0 00 000040 	LOCTF0:	MOVEI	T1," "		;NO--SPACE TWO
  2405	002235'	260 17 0 00 002261'		PUSHJ	P,LCHR
  2406	002236'	260 17 0 00 002261'		PUSHJ	P,LCHR
  2407	002237'	201 03 0 00 000014 		MOVEI	T3,^D12		;12 DIGITS
  2408	002240'	400 01 0 00 000000 	LOCLUP:	SETZ	T1,		;CLEAR RESULT
  2409	002241'	246 01 0 00 000003 		LSHC	T1,3		;GET BYTE
  2410	002242'	201 01 0 01 000060 		MOVEI	T1,"0"(T1)	;ASSKEY-IZE IT
  2411	002243'	260 17 0 00 002261'		PUSHJ	P,LCHR		;LIST IT
  2412	002244'	367 03 0 00 002240'		SOJG	T3,LOCLUP	;DO ALL
  2413	002245'	263 17 0 00 000000 		POPJ	P,
  2414
  2415					;LOCT--LIST OCTAL
  2416
  2417	002246'	231 01 0 00 000010 	LOCT:	IDIVI	T1,^D8		;GET A DIGIT
  2418	002247'	506 02 0 17 000000 		HRLM	T2,(P)		;SAVE ON PDL
  2419	002250'	332 00 0 00 000001 		SKIPE	T1		;DONE?
  2420	002251'	260 17 0 00 002246'		PUSHJ	P,LOCT		;NO--RECURZE
  2421	002252'	554 01 0 17 000000 		HLRZ	T1,(P)		;YES--GET DIGIT
  2422	002253'	201 01 0 01 000060 		MOVEI	T1,"0"(T1)	;ASCII
  2423	002254'	254 00 0 00 002261'		PJRST	LCHR		;UNRECURSE OR RETURN

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 54
COPYMT	MAC	23-FEB-77 11:47		ERROR DUMP ROUTINES

  2424					;FLCRLF -- LIST CRLF TO PRINTER AND RESET P1
  2425
  2426	002255'	201 05 0 00 000010 	FLCRLF:	MOVEI	P1,MX$NPL	;RESET P1
  2427					;	PJRST	LCRLF		;CRLF AND RETURN
  2428
  2429					;LCRLF -- LIST CRLF TO PRINTER
  2430
  2431	002256'	201 01 0 00 000015 	LCRLF:	MOVEI	T1,.CHCRT	;CARRIAGE RETURN
  2432	002257'	260 17 0 00 002261'		PUSHJ	P,LCHR
  2433	002260'	201 01 0 00 000012 		MOVEI	T1,.CHLFD	;NEW LINE
  2434					;	PJRST	LCHR		;DUMP AND RETURN
  2435
  2436					;LCHR -- DUMP CHAR IN T1 TO LPT
  2437
  2438	002261'	377 00 0 00 002524'	LCHR:	SOSG	LBHR+.BFCTR	;ROOM?
  2439	002262'	254 00 0 00 002265'		 JRST	LBUFO		;NO
  2440	002263'	136 01 0 00 002523'	LCHRC:	IDPB	T1,LBHR+.BFPTR	;YES--STORE IT
  2441	002264'	263 17 0 00 000000 		POPJ	P,
  2442	002265'	260 17 0 00 001757'	LBUFO:	PUSHJ	P,XCTIO		;DO OUTPUT
  2443	002266'	057 03 0 00 000000 		 OUT	LPTC,
  2444	002267'	254 04 0 00 002267'		HALT	.		;EOT ON LPT!!??
  2445	002270'	254 00 0 00 002263'		JRST	LCHRC		;DUMP CHAR AND RETURN
  2446
  2447					;LSTR -- T1 POINTS TO ASCIZ STRING TO DUMP TO LPT
  2448
  2449	002271'	505 01 0 00 440700 	LSTR:	HRLI	T1,(POINT 7)	;BYTE PTR
  2450	002272'	261 17 0 00 000001 		PUSH	P,T1		;SAVE ON PDL
  2451	002273'	134 01 0 17 000000 	LSTRL:	ILDB	T1,(P)		;GET CHAR
  2452	002274'	322 01 0 00 002136'		JUMPE	T1,TPOPJ	;PRUNE PDL AND RETURN
  2453	002275'	260 17 0 00 002261'		PUSHJ	P,LCHR		;DUMP
  2454	002276'	254 00 0 00 002273'		JRST	LSTRL
  2455
  2456					;LHEDER -- LIST HEADER FOR THIS RECORD
  2457
  2458	002277'	201 01 0 00 003520'	LHEDER:	MOVEI	T1,[ASCIZ \DUMP OF FILE \]
  2459	002300'	260 17 0 00 002271'		PUSHJ	P,LSTR
  2460	002301'	200 01 0 00 002771'		MOVE	T1,TPOPBL+.TSFIL;INPUT FILE #
  2461	002302'	260 17 0 00 002246'		PUSHJ	P,LOCT
  2462	002303'	201 01 0 00 003462'		MOVEI	T1,[ASCIZ \ RECORD \]
  2463	002304'	260 17 0 00 002271'		PUSHJ	P,LSTR
  2464	002305'	200 01 0 00 002772'		MOVE	T1,TPOPBL+.TSREC;RECORD #
  2465	002306'	260 17 0 00 002246'		PUSHJ	P,LOCT
  2466	002307'	260 17 0 00 002256'		PUSHJ	P,LCRLF		;NEW LINE
  2467	002310'	254 00 0 00 002256'		PJRST	LCRLF		;AND ANOTHER AND RETURN

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 55
COPYMT	MAC	23-FEB-77 11:47		MINOR SUBROUTINES

  2468					SUBTTL	MINOR SUBROUTINES
  2469
  2470					;GCHNWL -- INCHRW T1 + CLRBFI + .TCRLF
  2471					;USES NO ACS EXCEPT RETURNS CHAR IN T1
  2472
  2473	002311'	201 01 0 00 000007 	GCHNWL:	MOVEI	T1,.CHBEL	;TYPE A BELL IF NOT BATCH
  2474	002312'	607 00 0 00 010000 		TLNN	F,FL$BAT	;IS IT?
  2475	002313'	260 17 0 00 002163*		 PUSHJ	P,.TCHAR##	;NO--TYPE DING
  2476	002314'	051 00 0 00 000001 		INCHRW	T1		;GET THE CHARACTER
  2477	002315'	051 11 0 00 000000 		CLRBFI			;IN CASE DUMP USER
  2478	002316'	254 00 0 00 002173*		PJRST	.TCRLF##	;NEW LINE AND RETURN
  2479
  2480					;TYPDLR -- TYPE CRLF-DOLLAR SIGN IF BATCH SO WE TALK TO OPERATOR
  2481
  2482	002317'	607 00 0 00 010000 	TYPDLR:	TLNN	F,FL$BAT	;BATCH JOB
  2483	002320'	263 17 0 00 000000 		 POPJ	P,		;NOT TODAY
  2484	002321'	261 17 0 00 000001 		PUSH	P,T1		;YES--SAVE T1
  2485						STRNG$	<
  2486	002322'	201 01 0 00 003523'	$>				;SEND CRLF-$
  2487	002323'	260 17 0 00 002177*
  2488	002324'	254 00 0 00 002136'		PJRST	TPOPJ		;GET T1 BACK AND RETURN
  2489
  2490					;TYSLSH -- TYPE A SLASH
  2491
  2492	002325'	201 01 0 00 000057 	TYSLSH:	MOVEI	T1,"/"		;GET ONE
  2493	002326'	254 00 0 00 002313*		PJRST	.TCHAR##	;SEND IT
  2494
  2495					;TYFEET -- TYPE "FEET<CR><LF>"
  2496
  2497	002327'	265 01 0 00 002323*	TYFEET:	PJSP	T1,.TSTRG##
  2498	002330'	040 106 105 105 124 		ASCIZ	. FEET
  2499	002331'	015 012 000 000 000 	.

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 56
COPYMT	MAC	23-FEB-77 11:47		MINOR SUBROUTINES

  2500					;GMTSTS -- GET FILE AND RECORD COUNT
  2501					;CALL:	MOVE	T1,IOCHAN
  2502					;	PUSHJ	P,GMTSTS
  2503					;	*RETURN, STATUS IN TPOPBL*
  2504					;USES T1-T2
  2505
  2506	002332'	202 01 0 00 002767'	GMTSTS:	MOVEM	T1,TPOPBL-2	;STORE CHANNEL
  2507	002333'	201 02 0 00 001016 		MOVEI	T2,.TFSTA	;FUNCTION
  2508	002334'	202 02 0 00 002766'		MOVEM	T2,TPOPBL-3	;SET IN BLOK
  2509	002335'	334 02 0 00 002336'		SKIPA	T2,.+1		;UUO ARG
  2510	002336'	000005	002766'			 XWD	5,TPOPBL-3	;5 WORDS,,ADDR
  2511	002337'	047 02 0 00 000154 		TAPOP.	T2,		;ASK MON
  2512	002340'	255 00 0 00 000000 		 JFCL			;(CAN'T POSSIBLY HAPPEN, SAID THE OPTIMIST)
  2513	002341'	263 17 0 00 000000 		POPJ	P,
  2514
  2515					;TYHELP -- TYPE HELP FILE SPECIFIED BY C(T1)
  2516					;WILL RESTORE AND RELEASE HISEG IF IT IS CURRENTLY GONE
  2517
  2518	002342'	621 00 0 00 004000 	TYHELP:	TLZ	F,FL$FLG	;ASSUME NOT GONE
  2519	002343'	332 00 0 00 000115 		SKIPE	.JBHRL		;BUT CHECK
  2520	002344'	254 00 0 00 002347'		 JRST	TYHLP0		;IT'S THERE--GO ON
  2521	002345'	260 17 0 00 000120'		PUSHJ	P,UPSCN		;OOPS--PUT IT BACK
  2522	002346'	661 00 0 00 004000 		TLO	F,FL$FLG	;REMEMBER WHAT WE DID
  2523	002347'	260 17 0 00 000000*	TYHLP0:	PUSHJ	P,.HELPR##	;CALL HELPER TO TYPE THE HELP
  2524	002350'	607 00 0 00 004000 		TLNN	F,FL$FLG	;CHECK THE FLAG
  2525	002351'	263 17 0 00 000000 		POPJ	P,		;IT WAS ALREADY THERE
  2526	002352'	254 00 0 00 000111'		PJRST	DWNSCN		;GO DISMISS IT

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 57
COPYMT	MAC	23-FEB-77 11:47		ERROR HANDLER

  2527					SUBTTL	ERROR HANDLER
  2528
  2529					;EHNDLR -- HANDLE ALL ERRORS
  2530					;THE ONLY CALL IS THRU THE ERROR. MACRO
  2531
  2532	002353'	260 17 0 00 002437'	EHNDLR:	PUSHJ	P,SAVACS	;SAVE THE ACS
  2533	002354'	200 05 1 17 000000 		MOVE	P1,@0(P)	;GET FLAGS AND ADDRESSES
  2534	002355'	201 01 0 00 000077 	EHND.0:	MOVEI	T1,"?"		;ASSUME AN ERROR
  2535	002356'	603 05 0 00 000200 		TLNE	P1,EF$WRN	;CHECK WARNING
  2536	002357'	201 01 0 00 000045 		MOVEI	T1,"%"		;YES
  2537	002360'	603 05 0 00 000100 		TLNE	P1,EF$INF	;IF BOTH OFF NOW THEN INFO
  2538	002361'	201 01 0 00 000133 		MOVEI	T1,"["		;GOOD THING WE CHECKED
  2539	002362'	603 05 0 00 000020 		TLNE	P1,EF$OPR	;OPERATOR SEE IT ALSO?
  2540	002363'	260 17 0 00 002317'		PUSHJ	P,TYPDLR	;YES--TYPE THAT FIRST (NOTE: T1 IS PRESERVED)
  2541	002364'	260 17 0 00 002326*		PUSHJ	P,.TCHAR##	;OUTPUT THE START OF MESSAGE
  2542	002365'	205 01 0 00 435564 		MOVSI	T1,MY$PFX	;SET UP MY PREFIX
  2543	002366'	544 01 0 05 000000 		HLR	T1,(P1)		;GET MESSAGE PREFIX
  2544	002367'	260 17 0 00 002157*		PUSHJ	P,.TSIXN##	;OUTPUT THE PREFIXES
  2545	002370'	260 17 0 00 000322*		PUSHJ	P,.TSPAC##	;AND A SPACE
  2546	002371'	550 01 0 05 000000 		HRRZ	T1,(P1)		;GET STRING ADDRESS
  2547	002372'	260 17 0 00 002327*		PUSHJ	P,.TSTRG##	;SEND IT
  2548	002373'	200 01 0 00 002601'		MOVE	T1,SAVAC+T1	;GET ORIGINAL T1 IN CASE TYPEOUT DESIRED
  2549	002374'	200 02 0 00 002602'		MOVE	T2,SAVAC+T2	;ORIGINAL T2 IN CASE .TOLEB
  2550	002375'	135 03 0 00 003524'		LDB	T3,[POINT 5,P1,17] ;GET TYPED OUT DESIRED
  2551	002376'	303 03 0 00 000007 		CAILE	T3,MX$ERR	;CHECK FOR IN-RANGE
  2552	002377'	201 03 0 00 000000 		 MOVEI	T3,EF$NOP	;NO--MAKE IT CPOPJ
  2553	002400'	260 17 1 03 002417'		PUSHJ	P,@ERRTAB(T3)	;CALL THE ROUTINE
  2554	002401'	603 05 0 00 000040 		TLNE	P1,EF$NCR	;IF NO CRLF THEN DON'T CLOSE INFO
  2555	002402'	254 00 0 00 002410'		 JRST	EHND.1		;NO--DON'T CHECK
  2556	002403'	201 01 0 00 000135 		MOVEI	T1,"]"		;PREPARE TO CLOSE INFO
  2557	002404'	603 05 0 00 000100 		TLNE	P1,EF$INF	;CHECK FOR INFO
  2558	002405'	260 17 0 00 002364*		PUSHJ	P,.TCHAR##	;SEND INFO CLOSE
  2559	002406'	607 05 0 00 000040 		TLNN	P1,EF$NCR	;NO CARRIAGE RETURN?
  2560	002407'	260 17 0 00 002316*		PUSHJ	P,.TCRLF##	;YES--SEND ONE
  2561	002410'	603 05 0 00 000400 	EHND.1:	TLNE	P1,EF$FTL	;NOW CHECK FATAL
  2562	002411'	254 00 0 00 002427'		 JRST	ERRFTL		;YES--GO DIE
  2563	002412'	202 00 0 00 002600'		MOVEM	F,SAVAC+F	;NO--BUT PUT F INTO SAVAC SO UPDATED
  2564									;FLAGS WILL BE SEEN
  2565						;FALL INTO RESACS
  2566
  2567					;RESACS -- RESTORE ALL ACS FROM SAVAC AREA
  2568					;	PUSHJ	P,RESACS
  2569					;	*ACS RESTORED FROM SAVAC*
  2570
  2571	002413'	202 17 0 00 002617'	RESACS:	MOVEM	17,SAVAC+17	;SAVE 17 TO RESTORE INTO IT
  2572	002414'	205 17 0 00 002600'		MOVSI	17,SAVAC
  2573	002415'	251 17 0 00 000017 		BLT	17,17		;REGISTERS ARE RESTORED
  2574	002416'	263 17 0 00 000000 		POPJ	P,		;RETURN

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 58
COPYMT	MAC	23-FEB-77 11:47		ERROR HANDLER

  2575	002417'	000000	001545*		ERRTAB:	.POPJ##			;CODE 0 -- NO ACTION
  2576	002420'	000000	002047*			.TDECW##		;CODE 1 -- TYPE T1 IN DECIMAL
  2577	002421'	000000	000625*			.TOCTW##		;CODE 2 -- TYPE T1 IN OCTAL
  2578	002422'	000000	002367*			.TSIXN##		;CODE 3 -- TYPE T1 IN SIXBIT
  2579	002423'	000000	000000*			.TPPNW##		;CODE 4 -- TYPE T1 AS PPN
  2580	002424'	000000	002372*			.TSTRG##		;CODE 5 -- T1 POINTS TO ASCIZ STRING
  2581	002425'	000000	002031*			.TFBLK##		;CODE 6 -- T1 POINTS AT FDB
  2582	002426'	000000	000000*			.TOLEB##		;CODE 7 -- T1 POINTS AT OPEN BLOCK
  2583									;	-- T2 POINTS AT LOOKUP BLOCK
  2584
  2585					;HERE TO DIE--
  2586
  2587	002427'	260 17 0 00 000220'	ERRFTL:	PUSHJ	P,CLSLOG	;CLOSE THE LOG IF WE ARE USEING IT
  2588	002430'	047 00 0 00 000000 		RESET			;KILL ALL FILES
  2589	002431'	200 17 0 00 000022'		MOVE	P,INIPDP	;RESET PDL
  2590	002432'	260 17 0 00 000120'		PUSHJ	P,UPSCN		;MAKE SURE SCAN IS THERE
  2591	002433'	336 00 0 00 002453'		SKIPN	OFFSET		;CCL ENTRY
  2592	002434'	331 00 0 00 002444'		 SKIPL	ISCNVL		;OR A RECOGNIZED COMMAND
  2593	002435'	260 17 0 00 400132*		  PUSHJ	P,.MONRT##	;YES--RETURN TO MONITOR
  2594	002436'	254 00 0 00 000013'		JRST	RESTRT		;GO CONTINUE
  2595
  2596					;SAVAC -- SAVE ALL ACS
  2597					;CALL -- PUSHJ P,SAVACS
  2598					;	*ACS SAVED IN SAVAC*	BEWARE!!
  2599
  2600	002437'	202 17 0 00 002617'	SAVACS:	MOVEM	17,SAVAC+17	;SAVE ONE
  2601	002440'	201 17 0 00 002600'		MOVEI	17,SAVAC
  2602	002441'	251 17 0 00 002616'		BLT	17,SAVAC+16
  2603	002442'	200 17 0 00 002617'		MOVE	17,SAVAC+17
  2604	002443'	263 17 0 00 000000 		POPJ	P,		;ACS ARE SAVED

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 59
COPYMT	MAC	23-FEB-77 11:47		STORAGE

  2605					SUBTTL	STORAGE
  2606
  2607					;STORAGE THAT IS CONSTANT BETWEEN RUNS
  2608
  2609	002444'				U (ISCNVL)		;VALUE RETURNED BY .ISCAN
  2610	002445'				U (TLDVER)		;-1 WHEN VERSION HAS BEEN TYPED ON TTY
  2611	002446'				U (SAVRUN)		;-1 WHEN RUN UUO ARGS SAVED
  2612	002447'				U (SGDEV)		;SAVEGET DEVICE NAME
  2613	002450'				U (SGNAM)		;SAVEGET PROGRAM NAME
  2614	002451'				U (SGLOW)		;SAVEGET LOW SEGMENT NAME
  2615	002452'				U (SGPPN)		;SAVEGET PPN
  2616	002453'				U (OFFSET)		;STARTING OFFSET (REMEMBER FOR .ISCAN)
  2617
  2618			002454'		FW$ZER==.
  2619	002454'				U (LOGSPC,.FXLEN)	;SPACE FOR LOG FILE SPEC
  2620	002506'				U (ODVNAM)		;REAL NAME (FROM DEVNAM)
  2621	002507'				U (IDVNAM)		;REAL NAME (FROM DEVNAM)
  2622	002510'				U (GOTIME)		;MSTIME FOR START
  2623	002511'				U (GORUNT)		;RUNTIM FOR START
  2624	002512'				U (LSTBFZ)		;LAST BUFFER SIZE SEEN WHEN DSKTOTAPE
  2625	002513'				U (TEMP)		;VERY TEMPORARY STORAGE
  2626					IFN FT$DEB,<
  2627					U (BUFZER)		;COUNT TIMES MON CLEARED BUFFERS WITH UU.IBC ON
  2628					>;END IFN FT$DEB
  2629	002514'				U (IBHR,3)		;INPUT BHR
  2630	002517'				U (OBHR,3)		;OUTPUT BHR
  2631	002522'				U (LBHR,3)		;LPT BHR
  2632	002525'				U (GBHR,3)		;LOG FILE BHR
  2633	002530'				U (PDLIST,LN$PDL)	;ALLOCATE SPACE FOR PUSH DOWN LIST
  2634	002600'				U (SAVAC,20)		;AC SAVE BLOCK WHEN IN ERROR HANDLER
  2635	002620'				U (OPNBLK,3)		;OPEN BLOCK
  2636	002623'				U (LKPBLK,.RBTIM+1)	;LOOKUP/ENTER BLOCK
  2637	002661'				U (PTHBLK,^D9)		;PATH BLOCK (NOT USED, BUT CAN'T USE .STOPN)
  2638	002672'				U (PRMPDL,LN$PRM)	;PARAM PUSHDOWN LIST
  2639	002766'					BLOCK	3	;***DO NOT TOUCH***USED BY TAPOP.
  2640	002771'				U (TPOPBL,2)		;TAPOP. ARG BLOCK
  2641			002773'		FW$STS==.
  2642	002773'				ERRCNT:
  2643	002773'				U (INPERS)		;INPUT ERROR COUNT
  2644	002774'				U (OUTERS)		;OUTPUT ERROR COUNT
  2645	002775'				U (RECTOT)		;RECORD TOTAL
  2646	002776'				U (FILTOT)		;FILE TOTAL
  2647			002776'			LW$STS==.-1
  2648
  2649			002777'		SCN$FZ==.	;FIRST WORD CLEARED FOR SCAN
  2650	002777'				U (INPSPC,LN$FDB)	;INPUT SPEC STORAGE
  2651			003030'			INPSPE==.-1
  2652	003031'				U (OUTSPC,LN$FDB)	;OUTPUT SPEC SPACE
  2653			003062'			OUTSPE==.-1	;END OF OUTPUT SPEC SPACE
  2654			003063'		SWT$FO==.	;FIRST SWITCH WORD (SET TO -1 BY CLRANS)
  2655	003063'				U (UCOMNT,^D28)		;FOR /COMMENT:"COMMENT STRING" FOR LOG FILE
  2656					IFN FT$TST,<
  2657	003117'				U (TSTDEN)		;SAVE DENSITY HERE
  2658	003120'				U (TESTFL)		;/TAPTST FLAG
  2659	003121'				U (NUMTRY)		;/RETRY:N

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE 59-1
COPYMT	MAC	23-FEB-77 11:47		STORAGE

  2660	003122'				U (RPETFL)		;/REPEAT:N
  2661					>;END IFN FT$TST
  2662	003123'				U (RTRYFL)		;RETRY FLAG
  2663	003124'				U (TIMEFL)		;/TIME FLAG
  2664	003125'				U (RPTFLG)		;REPEAT FLAG
  2665	003126'				U (IFTYFL)		;/IFTYP FLAG
  2666	003127'				BFRSIZ:		;**DO NOT SEPARATE
  2667	003127'				U (NIBUFS)		;# INPUT BUFFERS
  2668	003130'				U (NOBUFS)		;# OUTPUT BUFFERS
  2669							;**END DO NOT SEPARATE
  2670	003131'				U (BUFSIZ)		;/BUFSIZ:N
  2671	003132'				U (ERRFLG)		;/ERROR:CONTIN OR /ERROR:QUERY
  2672	003133'				U (MODFLG)		;/MODE:MODE 
  2673	003134'				U (MODES,2)		;/MODE:MODE FOR INPUT AND OUTPUT
  2674			003134'			INPMOD=MODES	;INPUT/MODE:MODE
  2675			003135'			OUTMOD=MODES+1	;OUTPUT/MODE:MODE
  2676			003135'		SWT$LO==.-1
  2677			003135'		SCN$LZ==.-1
  2678			003135'		LW$ZER==.-1
  2679						LIT$			;OUT GO THE LITERALS
  2680			000000'		CMTEND::END	COPYMT

NO ERRORS DETECTED

HI-SEG. BREAK IS 400743
PROGRAM BREAK IS 003526
CPU TIME USED 01:24.925

14K CORE USED

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE S-1
COPYMT	MAC	23-FEB-77 11:47		SYMBOL TABLE

ACT		000013		CPDM$0		001161'		E$$CER		400006'		FL$232		000020	SPD	
ACTABL		001270'		CPDM$1		001164'		E$$COD		001701'		FL$BAT		010000	SPD	
ACTDIS		000661'		CPDM$A		001147'		E$$CUS		400174'		FL$BKT		000400	SPD	
AD.BFS		000006	SPD	CPMD$0		001230'		E$$DIF		001257'		FL$CPY		100000	SPD	
AD.BFZ		004000	SPD	CPMD$1		001234'		E$$DNM		001711'		FL$DSI		000100	SPD	
AD.MTN		177777	SPD	CPMD$2		001242'		E$$ID9		000560'		FL$DSO		000040	SPD	
AD.RPT		000001	SPD	CPMD0A		001232'		E$$IM7		000575'		FL$EOT		040000	SPD	
AD.TRY		000004	SPD	CPY232		001112'		E$$ISO		400563'		FL$FLG		004000	SPD	
AD.TST		000000	SPD	CPYDMP		001102'		E$$OSI		400560'		FL$ITY		000200	SPD	
AIN		400442'		CPYDTM		001144'		E..DNM		400211'		FL$LOG		000004	SPD	
ALEN		400456'		CPYEF0		001355'		EF$DEC		000001	SPD	FL$LPO		020000	SPD	
ALEN2		400465'		CPYEFA		001353'		EF$ERR		000000	SPD	FL$MRG		400000	SPD	
AOUT		400450'		CPYEOF		001333'		EF$FIL		000006	SPD	FL$MTP		002000	SPD	
ASKCON		002176'		CPYHOL		400503'		EF$FTL		000400	SPD	FL$OPN		000010	SPD	
ASKEOO		001365'		CPYMT0		000043'		EF$INF		000100	SPD	FL$OUT		200000	SPD	
ATSIGN		000020	SPD	CPYMT1		000076'		EF$LEB		000007	SPD	FL$TSN		000002	SPD	
BF.IBC	200000	000000	SPD	CPYMT9		000073'		EF$MAX		000017	SPD	FL$TST		001000	SPD	
BFOTST		001561'		CPYMTD		001212'		EF$NCR		000040	SPD	FLCRLF		002255'		
BFRSIZ		003127'		DANTHR		000643'		EF$NOP		000000	SPD	FN$BSP		000001	SPD	
BFTSML		001207'		DEFMOD		000605'		EF$OCT		000002	SPD	FN$CON		000007	SPD	
BKTERR		002171'		DEN160		000564'		EF$OPR		000020	SPD	FN$CPY		000006	SPD	
BUFSIZ		003131'		DEN200		000557'		EF$PPN		000004	SPD	FN$EOF		000003	SPD	
BUFSZ7		400605'		DEN556		000557'		EF$SIX		000003	SPD	FN$EOL	777777	777776	SPD	
BUFSZ9		400610'		DEN625		000564'		EF$STR		000005	SPD	FN$INP	777777	777777	SPD	
C		000010		DENDIS		000551'		EF$WRN		000200	SPD	FN$REW		000004	SPD	
CHKBAT		400162'		DENSTR		001533'		EHND.0		002355'		FN$SKP		000002	SPD	
CHKC.1		400151'		DEVCHR	047000	000004		EHND.1		002410'		FN$UNL		000005	SPD	
CHKC.2		400162'		DEVNAM	047000	000064		EHNDLR		002353'		FS$INP	000200	000000	SPD	
CHKCMD		400134'		DEVTYP	047000	000053		ENDTST		001503'		FS$NVL	001000	000000	SPD	
CHKLOG		000143'		DF$BFZ		002000	SPD	ENTER	077000	000000		FS$OUT	000400	000000	SPD	
CHRLG0		000177'		DF$TRY		000004	SPD	EOTDSP		001406'		FS$SPL	000100	000000	SPD	
CHRLG1		000203'		DO.BSP		000671'		EOTFIN		001422'		FS$XTR	002000	000000	SPD	
CHRLOG		000173'		DO.CON		001052'		EOTHLP		001375'		FS.LRG	200000	000000	SPD	
CHROUT		000170'		DO.CPY		001054'		EOTOPT		001401'		FS.NCM	004000	000000	SPD	
CKIBUF		001262'		DO.DUN		000723'		EOTREW		001420'		FS.NFS	400000	000000	SPD	
CKISM1		400207'		DO.EOF		000671'		EOTUNL		001415'		FS.NUE	100000	000000	SPD	
CKISMT		400176'		DO.IT		000634'		EOTXIT		001413'		FS.VRQ	040000	000000	SPD	
CLFLOG		000155'		DO.REW		000671'		ERL.L		000003	SPD	FT$DEB		000000	SPD	
CLGNTS		000157'		DO.SKP		000671'		ERL.T		400214'		FT$MTP	777777	777777	SPD	
CLOSE	070000	000000		DO.UNL		000671'		ERLCON		000001	SPD	FT$OPT	777777	777777	SPD	
CLRANS		400467'		DODUN1		000732'		ERLIGN		000002	SPD	FT$TST	777777	777777	SPD	
CLRBFI	051440	000000		DOLOOP		000671'		ERLQUE		000003	SPD	FULCON		001424'		
CLRFIL		400516'		DOLOP1		000672'		ERRCHK		000741'		FULTAP		001357'		
CLSLG2		000224'		DOLOP2		000701'		ERRCNT		002773'		FW$STS		002773'	SPD	
CLSLOG		000220'		DOLOP3		000702'		ERRFLG		003132'		FW$ZER		002454'	SPD	
CMDLST		400104'		DOMTAP		400113'		ERRFTL		002427'		FX.DEN		070000	SPD	
CMTEDT		000040	SPD	DOOPEN		001644'		ERRMES		000753'		FX.PAR		004000	SPD	
CMTEND		003526'	INT	DOPRMP		400106'		ERRSUM		001010'		GBHR		002525'		
CMTMIN		000000	SPD	DOTPOP		000611'		ERRTAB		002417'		GCHNWL		002311'		
CMTVER		000007	SPD	DUMP0		002215'		ETAPOP		000614'		GETOPT		002070'		
CMTWHO		000000	SPD	DV.AVL	000040	000000	SPD	EVNPAR		000543'		GETSEG	047000	000040		
COPDUN		001323'		DV.DSK	200000	000000	SPD	EXIT	047000	000012		GETSTS	062000	000000		
COPYIT		001062'		DV.MTA	000020	000000	SPD	F		000000		GETTAB	047000	000041		
COPYMT		000000'		DV.TTY	000010	000000	SPD	FILTOT		002776'		GMTSTS		002332'		
CORE	047000	000011		DWNSCN		000111'		FIXWLK		002063'		GORUNT		002511'		

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE S-2
COPYMT	MAC	23-FEB-77 11:47		SYMBOL TABLE

GOTIME		002510'		LOGSPC		002454'		N$DSKB		000006	SPD	P2		000006		
HALT	254200	000000		LOLOC$		400743'	SPD	N$EOTO		000005	SPD	P3		000007		
HILOC$		000111'	SPD	LOOKUP	076000	000000		N$LOGB		000002	SPD	P4		000010		
IBHR		002514'		LPTC		000003	SPD	N$OPTN		000007	SPD	PARDIS		000541'		
IDVNAM		002507'		LPTCLS		000460'		N$TSTB		000001	SPD	PD.		000000	SPD	
IFTCHR		000774'		LPTSPC		001724'		N$TYIO		000005	SPD	PD.BFS		000006	SPD	
IFTYFL		003126'		LSTBFZ		002512'		NIBUFS		003127'		PD.BFZ		002000	SPD	
ILLIDV		400171'		LSTR		002271'		NOBUFS		003130'		PD.LGF		000001	SPD	
ILLODV		400170'		LSTRL		002273'		NOOP		300000	SPD	PD.MTN		177777	SPD	
IN	056000	000000		LUP32		001125'		NUMTRY		003121'		PD.RPT		000001	SPD	
INCHRS	051100	000000		LW$STS		002776'	SPD	OBHR		002517'		PD.TRY		000004	SPD	
INCHRW	051000	000000		LW$ZER		003135'	SPD	OCHERR		001577'		PD.TST		000000	SPD	
INDMOD		000601'		MOD.L		000003	SPD	OCHFIX		001617'		PDLIST		002530'		
INIPDP		000022'		MOD.T		400217'		OCHIEC		001574'		PJRST	254000	000000		
INPC		000001	SPD	MODBIN		000001	SPD	ODVNAM		002506'		PJSP	265000	000000		
INPCLS		000433'		MODES		003134'		OFFSET		002453'		PLP		000012		
INPERS		002773'		MODFLG		003133'		OMTEF1		001321'		PLPINI		000104'		
INPMOD		003134'		MODIND		000002	SPD	OMTEOF		001314'		POP4J		002164'		
INPSPC		002777'		MODISP		000571'		OP$DMP		002204'		PRBDUN		002164'		
INPSPE		003030'	SPD	MODSEV		000003	SPD	OP$DSP		002112'		PRBLUP		002151'		
IO.BKT		040000	SPD	MODSVN		000574'		OP$EXI		002126'		PRBNAM		002166'		
IO.DER		200000	SPD	MSTIME	047000	000023		OP$G		002124'		PRBNXT		002160'		
IO.DTE		100000	SPD	MT.7TR		000020	SPD	OP$HLP		002077'		PRMPDL		002672'		
IO.EOF		020000	SPD	MT.DEN		000007	SPD	OP$IGN		002121'		PRMPT0		400112'		
IO.EOT		002000	SPD	MTBSF.	072000	000017		OP$SKP		002130'		PRMSTO		400552'		
IO.ERR		740000	SPD	MTBSR.	072000	000007		OPEN	050000	000000		PTHBLK		002661'		
IO.IMP		400000	SPD	MTCHR.	047000	000112		OPENER		001700'		RECTOT		002775'		
IO.NRC		000100	SPD	MTEOF.	072000	000003		OPENIO		001627'		RELEAS	071000	000000		
IO.UWC		000020	SPD	MTPWAT		000717'		OPINOB		000507'		RESACS		002413'		
ISCNBL		400044'		MTREW.	072000	000001		OPNBLK		002620'		RESET	047000	000000		
ISCNVL		002444'		MTSCNB		400072'		OPNI$1		000421'		RESTRT		000013'		
JB.LBT	000200	000000	SPD	MTSKF.	072000	000016		OPNINP		000400'		RESTRY		001540'		
L		000011		MTSKR.	072000	000006		OPNO$1		000347'		RPETFL		003122'		
LBHR		002522'		MTSWD		400435'		OPNO$2		000366'		RPTFLG		003125'		
LBUFO		002265'		MTSWL		000005	SPD	OPNOUT		000326'		RTRYFL		003123'		
LCHR		002261'		MTSWM		400430'		OPONOB		000500'		RUNSVD		000013'		
LCHRC		002263'		MTSWN		400416'		OPSWD		400407'		RUNTIM	047000	000027		
LCRLF		002256'		MTSWP		400423'		OPSWL		000007	SPD	SAVAC		002600'		
LDMLUP		002226'		MTUNL.	072000	000011		OPSWM		400400'		SAVACS		002437'		
LDMPBF		002220'		MTWAT.	072000	000000		OPSWN		400362'		SAVRUN		002446'		
LHEDER		002277'		MX$ERR		000007	SPD	OPSWP		400371'		SCN$FZ		002777'	SPD	
LKENER		001713'		MX$NPL		000010	SPD	OPTLST		002103'		SCN$LZ		003135'	SPD	
LKPBLK		002623'		MX.		000000	SPD	OSCNBL		400064'		SCNCMD		400000'		
LN$FDB		000032	SPD	MX.BFS		000024	SPD	OUT	057000	000000		SCNTS0		400026'		
LN$PDL		000050	SPD	MX.BFZ		010000	SPD	OUTC		000002	SPD	SCNTS1		400023'		
LN$PRM		000074	SPD	MX.LGF		000032	SPD	OUTCHR	051040	000000		SCNTST		400013'		
LOCLUP		002240'		MX.MTN		177777	SPD	OUTCLS		000447'		SEG$		000000	SPD	
LOCT		002246'		MX.RPT		177777	SPD	OUTDUN		000642'		SEGAGN		000125'		
LOCTF0		002234'		MX.TRY		000144	SPD	OUTERS		002774'		SETCH1		000525'		
LOCTFW		002232'		MX.TST		177777	SPD	OUTMOD		003135'		SETCHR		000516'		
LOGC		000004	SPD	MY$NAM	435760	715564	SPD	OUTPUT	067000	000000		SETSTS	060000	000000		
LOGO.2		000241'		MY$PFX		435564	SPD	OUTSPC		003031'		SGDEV		002447'		
LOGO.3		000276'		N		000007		OUTSPE		003062'	SPD	SGLOW		002451'		
LOGO.4		000301'		N$BUFS		000002	SPD	P		000017		SGNAM		002450'		
LOGOPN		000231'		N$CMDS		000002	SPD	P1		000005		SGPPN		002452'		

COPYMT MAGNETIC TAPE COPY PROGRAM %7(40)	MACRO %50A(441)-2 13:56 23-FEB-77 PAGE S-3
COPYMT	MAC	23-FEB-77 11:47		SYMBOL TABLE

STBUFZ		000464'		TYSLSH		002325'		.OSCAN		400043'	EXT	
STOSWA		400525'		UCOMNT		003063'		.POP4T		002164'	EXT	
STOSWB		400531'		UPSCN		000120'		.POPJ		002417'	EXT	
STOSWT		400517'		USETI	074000	000000		.POPJ1		400204'	EXT	
STRL.2		000164'		UU.IBC	020000	000000	SPD	.PSH4T		002140'	EXT	
STRLOG		000162'		UU.SOE	010000	000000	SPD	.RBCNT		000000	SPD	
STSBZ0		400577'		WAITCK		000712'		.RBEXT		000003	SPD	
STSTBZ		400566'		WLDERR		001703'		.RBTIM		000035	SPD	
SWT$FO		003063'	SPD	WLDNMT		001710'		.RECOR		000074'	EXT	
SWT$LO		003135'	SPD	WRTLOK		000473'		.SAVE1		001010'	EXT	
SWTD		400332'		XCTIO		001757'		.SAVE2		002220'	EXT	
SWTL		000030	SPD	XCTIO0		002023'		.SAVE3		001631'	EXT	
SWTM		400302'		XCTIOD		001765'		.SAVE4		001430'	EXT	
SWTN		400222'		XCTIOE		001771'		.SGDEV		000011	SPD	
SWTP		400252'		ZZ		000007	SPD	.SGLOW		000017	SPD	
SWTS0A		400547'		$CLOSE		000213'		.SGNAM		000000	SPD	
SWTST0		400550'		$FL232	000020	000000	SPD	.SGPPN		000007	SPD	
T1		000001		$FLITY	000200	000000	SPD	.STOPB		001642'	EXT	
T2		000002		$LOGSW		400506'		.SWASQ		400305'	EXT	
T3		000003		%%CPYM	000700	000040	SIN	.SWDEC		400433'	EXT	
T4		000004		%%JOBD	043000	000443	SIN	.TCHAR		002405'	EXT	
TAPOP.	047000	000154		%%MACT	000100	000024	SIN	.TCOLN		001437'	EXT	
TELCON		002132'		%%SCNM	000700	000203	SIN	.TCRLF		002407'	EXT	
TELERS		000742'		%%UUOS	101100	000225	SIN	.TDECW		002420'	EXT	
TELPRB		002140'		..FL		000001	SPD	.TFBLK		002425'	EXT	
TEMP		002513'		.ALCBF		002214'	EXT	.TFD80		000003	SPD	
TEST.2		001431'		.BFADR		000000	SPD	.TFDEN		001001	SPD	
TEST4		001521'		.BFCTR		000002	SPD	.TFM7B		000004	SPD	
TESTFL		003120'		.BFPTR		000001	SPD	.TFM7T		000005	SPD	
TESTIT		001430'		.CHBEL		000007	SPD	.TFM8B		000002	SPD	
THRTY2		001114'		.CHCRT		000015	SPD	.TFM9T		000001	SPD	
TIMEFL		003124'		.CHLFD		000012	SPD	.TFMOD		001007	SPD	
TIMSTM		000313'		.CLRFL		400515'	EXT	.TFPAR		001005	SPD	
TLDVER		002445'		.DECNW		400541'	EXT	.TFSET		001000	SPD	
TPOPBL		002771'		.FILIN		400510'	EXT	.TFSTA		001016	SPD	
TPOPJ		002136'		.FREBF		000441'	EXT	.TOCTW		002421'	EXT	
TPOPJ1		002135'		.FXDEV		000000	SPD	.TOLEB		002426'	EXT	
TSCNBL		400052'		.FXEXT		000003	SPD	.TPPNW		002423'	EXT	
TSTBHR		000436'		.FXLEN		000032	SPD	.TSCAN		400115'	EXT	
TSTBUF		001543'		.FXMOD		000004	SPD	.TSFIL		000000	SPD	
TSTDEN		003117'		.FXNAM		000001	SPD	.TSIXN		002422'	EXT	
TY.MAN	400000	000000	SPD	.FXNMM		000002	SPD	.TSPAC		002370'	EXT	
TY.SPL	000020	000000	SPD	.GTLIM		000040	SPD	.TSREC		000001	SPD	
TYFEET		002327'		.GTSPC		400513'	EXT	.TSTRG		002424'	EXT	
TYHELP		002342'		.HELPR		002347'	EXT	.TTIME		001031'	EXT	
TYHLP0		002347'		.IOASC		000000	SPD	.TTIMN		000320'	EXT	
TYICHK		000755'		.IOBIN		000014	SPD	.TVERW		000040'	EXT	
TYIDSP		001001'		.IODMP		000017	SPD	.TYOCH		000324'	EXT	
TYIIGN		001006'		.ISCAN		000027'	EXT	
TYIKIL		001015'		.JBHRL		000115		
TYIPAU		001012'		.JBVER		000137		
TYISTS		001021'		.MONRT		002435'	EXT	
TYIT.2		001043'		.OPBUF		000002	SPD	
TYITOT		001034'		.OPDEV		000001	SPD	
TYPDLR		002317'		.OPMOD		000000	SPD	
ACT	   114#	   114	  1464	  1466	  1467	  1468	  1469	  1470	  1492	  1502
ACTABL	  1492	  1502	  1817#
ACTDIS	  1466	  1473	  1477#
AD.BFS	   675
AD.BFZ	   677
AD.MTN	   676
AD.RPT	   679
AD.TRY	   680
AD.TST	   681
AIN	   506	   531	   869#
ALEN	   875	   881	   885#
ALEN2	   886	   892#
AOUT	   506	   531	   879#
ASKCON	  2365#	  2370
ASKEOO	  1889#	  1900	  1916	  1924
ATSIGN	   145#	  2132	  2149
BF.IBC	  1244	  1274
BFOTST	  2030	  2036#
BFRSIZ	  2666#
BFTSML	  1739	  1748#
BKTERR	  2267	  2360#
BUFSIZ	   716	   810	  1000	  1228	  1234	  1237	  1309	  2670#
BUFSZ7	   998	  1007#
BUFSZ9	   999	  1010#
C	   117#	   920	   954
CHKBAT	   428	   572	   605#
CHKC.1	   588	   595#
CHKC.2	   594	   604#
CHKCMD	   417	   579#
CHKLOG	   421	   431	  1064#
CHRLG0	  1104#	  1114
CHRLG1	  1103	  1108#
CHRLOG	  1089	  1100#	  1194
CHROUT	   494	  1097#
CKIBUF	  1714	  1725	  1755	  1804#
CKISM1	   630	   635#
CKISMT	   475	   569	   580	   583	   626#
CLFLOG	  1074#	  1077	  2008
CLGNTS	  1077#	  1127	  1128	  2007
CLRANS	   505	   530	   897#
CLRFIL	   505	   530	   932#
CLSLG2	  1115	  1129#
CLSLOG	   423	  1125#	  2587
CMDLST	   492	   537#	   542
CMTEDT	    24#	    29	    35
CMTEND	  2680#
CMTMIN	    25#	    29
CMTVER	    23#	    29	    35
CMTWHO	    26#	    29
COPDUN	  1655	  1713	  1754	  1850#
COPYIT	  1654#	  1677	  1869	  1880	  1929
COPYMT	   350#	  2680
CPDM$0	  1725#	  1741
CPDM$1	  1728#
CPDM$A	  1714#	  1718	  1720
CPMD$0	  1762	  1768#
CPMD$1	  1774#
CPMD$2	  1775	  1781#
CPMD0A	  1771#	  1793
CPY232	  1660	  1680#
CPYDMP	  1670#	  1681
CPYDTM	  1649	  1711#	  1746	  1928
CPYEF0	  1873	  1874	  1879#
CPYEFA	  1865	  1877#
CPYEOF	  1658	  1715	  1726	  1756	  1861#
CPYHOL	   871	   914#
CPYMT0	   390	   397#	   425
CPYMT1	   411	   428#
CPYMT9	   423#	   433
CPYMTD	  1651	  1753#	  1772	  1871
DANTHR	  1461#	  1501	  1511	  1519	  1523	  1851	  1857	  1876
DEFMOD	  1406	  1421#
DEN160	  1390	  1400#
DEN200	  1387	  1393#
DEN556	  1388	  1392#
DEN625	  1391	  1399#
DENDIS	  1357	  1386#
DENSTR	  1956	  2011#
DF$BFZ	   128	  1229	  1310
DF$TRY	   135	  1945
DO.BSP	  1482	  1489#
DO.CON	  1488	  1640#
DO.CPY	  1487	  1646#
DO.DUN	  1463	  1475	  1529#	  1676	  1712	  1758	  1797	  1863	  1878
DO.EOF	  1484	  1489#
DO.IT	   422	   573	  1453#
DO.REW	  1485	  1490#
DO.SKP	  1483	  1489#
DO.UNL	  1486	  1490#
DODUN1	  1533	  1536#
DOLOOP	  1491#
DOLOP1	  1492#	  1500	  1521
DOLOP2	  1491	  1501#
DOLOP3	  1502#	  1510	  1522
DOMTAP	   386	   556#
DOOPEN	  2127#	  2166
DOPRMP	   496	   546#
DOTPOP	  1361	  1374	  1383	  1434#
DUMP0	  2376	  2385#
DV.AVL	   631
DV.DSK	   635
DV.MTA	   628	  2164
DV.TTY	   629	   636
DWNSCN	   418	   429	  1027#	  2526
E$$CER	   448#	   459	   560	   563
E$$COD	  1338	  1346	  2159#
E$$CUS	   593	   617#
E$$DIF	  1765	  1778	  1795#
E$$DNM	  2169#
E$$ID9	  1394#
E$$IM7	  1411#	  1417
E$$ISO	   948	   981#
E$$OSI	   944	   978#
E..DNM	   476	   570	   637#
EF$DEC	   228#	  1548	  1750	  1984	  1987	  2060
EF$ERR	   214#	  1057	  1796	  2174
EF$FIL	   233#	  2160	  2170
EF$FTL	   215#	   449	   589	   615	   618	   634	   638	   980	   983	  1320	  1395	  1402	  1412	  1750
	  2160	  2170	  2561
EF$INF	   217#	  1548	  1602	  1940	  1984	  1987	  2364	  2537	  2557
EF$LEB	   234#
EF$MAX	   220#	   240
EF$NCR	   218#	  1443	  1548	  1940	  1987	  2060	  2174	  2241	  2554	  2559
EF$NOP	   238#	  2552
EF$OCT	   229#	  1057	  1443	  2174	  2241
EF$OPR	   219#	  1318	  1320	  1887	  2539
EF$PPN	   231#
EF$SIX	   230#	   615	   634	   638	   980	   983	  1318	  1940
EF$STR	   232#
EF$WRN	   216#	   994	  1318	  1443	  1606	  1887	  2060	  2241	  2535
EHND.0	  2534#
EHND.1	  2555	  2561#
EHNDLR	   448	   589	   614	   617	   633	   637	   979	   982	   993	  1056	  1317	  1319	  1394	  1401
	  1411	  1442	  1547	  1601	  1605	  1749	  1795	  1886	  1939	  1983	  1986	  2059	  2159	  2169
	  2173	  2240	  2363	  2532#
ENDTST	  1978#
EOTDSP	  1896	  1909#
EOTFIN	  1920	  1923#
EOTHLP	  1897#	  1911
EOTOPT	  1894	  1902#	  1907
EOTREW	  1912	  1921#
EOTUNL	  1913	  1918#
EOTXIT	  1910	  1915#
ERL.L	   683#	   684	   684#	   685	   685#	   686	   686#	   746	   818
ERL.T	   683#	   746	   818
ERLCON	   684#	   770	   825
ERLIGN	   685#	  2238	  2311
ERLQUE	   686#	  2269
ERRCHK	  1545#	  1599
ERRCNT	  1546	  2232	  2642#
ERRFLG	   722	   811	  2235	  2268	  2312	  2314	  2671#
ERRFTL	  2180	  2371	  2562	  2587#
ERRMES	  1549	  1557#
ERRSUM	  1589	  1598#
ERRTAB	  2553	  2575#
ETAPOP	  1441#
EVNPAR	  1378	  1379#
F	   103#	   103	   398	   556	   581	   584	   585	   586	   587	   596	   600	   609	   724	   737
	   813	   869	   882	   887	   889	   905	   943	   947	   975	  1066	  1078	  1098	  1100	  1106
	  1111	  1113	  1122	  1125	  1131	  1188	  1197	  1210	  1213	  1224	  1226	  1246	  1252	  1260
	  1268	  1293	  1494	  1498	  1504	  1508	  1529	  1532	  1534	  1538	  1553	  1566	  1567	  1595
	  1624	  1640	  1641	  1647	  1650	  1652	  1659	  1673	  1766	  1779	  1840	  1844	  1850	  1855
	  1862	  1864	  1868	  1870	  1875	  1877	  1927	  1937	  2005	  2229	  2248	  2262	  2339	  2344
	  2360	  2375	  2474	  2482	  2518	  2522	  2524	  2563
FILTOT	  1626	  1866	  2646#
FIXWLK	  2227	  2276#
FL$232	   179#	   179	   180	  1213	  1226	  1260	  1659
FL$BAT	   166#	   166	   609	  1566	  2262	  2474	  2482
FL$BKT	   174#	   174	  2360
FL$CPY	   162#	   162	   869	   975
FL$DSI	   177#	   177	   584	   585	   586	   587	   596	  1252	  1268	  1647	  1864	  1927
FL$DSO	   178#	   178	   581	   585	   586	   587	   600	  1210	  1224	  1532	  1640	  1650	  1870
FL$EOT	   163#	   163	  1534	  1673	  1766	  1779	  1855	  1862	  1875	  1877
FL$FLG	   167#	   167	  2339	  2344	  2518	  2522	  2524
FL$ITY	   175#	   175	   176	  1567	  1595
FL$LOG	   182#	   182	  1066	  1098	  1111	  1113	  1122	  1125	  1131	  2005	  2229	  2248
FL$LPO	   165#	   165	  1529	  2375
FL$MRG	   160#	   160	  1532	  1641	  1844	  1850	  1868
FL$MTP	   169#	   169	   556	   869	   905	  1494	  1504	  1538	  1566	  1840
FL$OPN	   181#	   181	  1246	  1293	  1498	  1508	  1652
FL$OUT	   161#	   161	   882	   887	   889	   943	   947
FL$TSN	   183#	   183	  1078	  1100	  1106	  1188	  1197
FL$TST	   172#	   172	  1553	  1624	  1937
FLCRLF	  2403	  2426#
FN$BSP	   194#	   715	   849
FN$CON	   194#	   719	   974
FN$CPY	   194#	   720	   914	   973
FN$EOF	   194#	   721	   769	   850	   860
FN$EOL	   197#	   872	  1517	  1853
FN$INP	   196#	   879	   907
FN$REW	   194#	   732	   780	   851	   861
FN$SKP	   194#	   733	   852
FN$UNL	   194#	   738	   786	   853	   863
FS$INP	   205#	   743	   744	   767	   768	   945
FS$NVL	   203#	   745	   756	   762	   769	   780	   786	   855	   856	   858	   860	   861	   863	   949
FS$OUT	   204#	   941
FS$SPL	   206#	   741	   749	   765	   773	   821	   828	   939
FS$XTR	   201#	   739	   743	   744	   757	   763	   767	   768	   781	   854	   857	   859	   862	   952
FS.LRG	   739	   740	   741	   742	   743	   744	   745	   746	   747	   748	   749	   750	   751	   752
	   753	   754	   755	   756	   757	   758	   759	   760	   761	   762	   763	   764	   765	   766
	   767	   768	   769	   770	   771	   772	   773	   774	   775	   776	   777	   778	   779	   780
	   781	   782	   783	   784	   785	   786	   817	   818	   819	   820	   821	   822	   823	   824
	   825	   826	   827	   828	   829	   830	   854	   855	   856	   857	   858	   859	   860	   861
	   862	   863
FS.NCM	   741	   749	   765	   773	   821	   828
FS.NFS	   741	   749	   765	   773	   821	   828
FS.NUE	   740	   742	   746	   747	   748	   750	   751	   752	   753	   754	   755	   758	   759	   760
	   761	   764	   766	   770	   771	   772	   774	   775	   776	   777	   778	   779	   782	   783
	   784	   785	   817	   818	   819	   820	   822	   823	   824	   825	   826	   827	   829	   830
FS.VRQ	   739	   743	   744	   757	   763	   767	   768	   781
FT$DEB	   131	  1993	  2035	  2626
FT$MTP	   130	   168	   385	   522	   538	   554	   833	   869	   904	  1493	  1503	  1513	  1537	  1566
	  1839	  1846
FT$OPT	   132	   450	   481	   485	   511	   790
FT$TST	   133	   134	   171	   409	   427	   442	   455	   678	   705	   710	   729	   734	   753	   758
	   777	   782	   986	  1364	  1552	  1932	  2656
FULCON	  1909	  1926#
FULTAP	  1672	  1745	  1883#
FW$STS	  1456	  1457	  2641#
FW$ZER	   374	   375	  2618#
FX.DEN	   987	  1355
FX.PAR	  1362
GBHR	  1102	  1104	  1132	  1164	  1185	  2632#
GCHNWL	  1603	  1892	  2284	  2367	  2473#
GETOPT	  2272	  2281#	  2292	  2318	  2387
GMTSTS	  2253	  2506#
GORUNT	   404	  1618	  2623#
GOTIME	   401	  1611	  2622#
HILOC$	   438#	  1021
IBHR	  1250	  1272	  1275	  1280	  1661	  1664	  1666	  1668	  1684	  1687	  1705	  1706	  1707	  1716
	  1717	  1727	  1730	  1733	  1737	  1760	  1771	  1781	  1784	  1787	  1790	  1804	  2391	  2392
	  2629#
IDVNAM	   416	   568	   582	   591	  2621#
IFTCHR	  1576	  1582#	  1587
IFTYFL	  2665#
ILLIDV	   415	   567	   613#
ILLODV	   407	   473	   612#
INDMOD	  1407	  1416#
INIPDP	   378#	  1055	  2589
INPC	   147#	  1250	  1254	  1258	  1264	  1265	  1278	  1279	  1343	  1497	  1507	  1520	  1657	  1807
	  1819	  1820	  1823	  1824	  1831	  1832	  1835	  1836	  1847	  2233	  2263
INPCLS	  1278#	  1531	  1861
INPERS	  2643#
INPMOD	   888	  1261	  2674#
INPSPC	   413	   447	   457	   460	   463	   464	   559	   562	   564	   597	   599	   613	   874	  1248
	  1257	  1341	  1344	  2245	  2650#
INPSPE	  2651#
IO.BKT	  2266	  2334	  2336
IO.DER	  2334
IO.DTE	  2334
IO.EOF	  2219
IO.EOT	  1884	  2052	  2219
IO.ERR	  2054	  2223
IO.IMP	  2226	  2334
IO.NRC	  1265	  1972
IO.UWC	  1222	  1296
ISCNBL	   382	   491#
ISCNVL	   384	  2592	  2609#
JB.LBT	   608
L	   112#	   112	  1235	  1238	  1270	  1313	  1462	  1568	  1570	  1572	  1574	  1675	  1711	  1714
	  1725	  1755	  1757	  1805	  1808	  1809	  1825	  1826	  1827	  1828	  1845	  1848	  2020
LBHR	  1304	  2379	  2382	  2438	  2440	  2631#
LBUFO	  2439	  2442#
LCHR	  2405	  2406	  2411	  2423	  2432	  2438#	  2453
LCHRC	  2440#	  2445
LCRLF	  2398	  2431#	  2466	  2467
LDMLUP	  2395#	  2397
LDMPBF	  2386	  2389#
LHEDER	  2385	  2458#
LKENER	  1178	  1181	  2154	  2172#
LKPBLK	  1155	  1161	  1176	  1177	  1180	  2123	  2128	  2152	  2172	  2636#
LN$FDB	   143#	   892	  2650	  2652
LN$PDL	   123	   378	  2633
LN$PRM	   122	   435	  2638
LOCLUP	  2408#	  2412
LOCT	  2417#	  2420	  2461	  2465
LOCTF0	  2402	  2404#
LOCTFW	  2396	  2402#
LOGC	   150#	  1110	  1129	  1130	  1166	  1176	  1180	  1183	  1187	  2228	  2247
LOGO.2	  1139	  1145#
LOGO.3	  1170	  1175#
LOGO.4	  1174	  1180#
LOGOPN	  1067	  1137#
LOGSPC	   922	   925	  1064	  1119	  1120	  1121	  1138	  1140	  1141	  1142	  1144	  1146	  1147	  1148
	  1149	  1151	  1152	  1153	  1157	  2245	  2619#
LOLOC$	   348#	   438	  1021#
LPTC	   149#	  1302	  1303	  2139	  2231	  2250	  2379	  2443
LPTCLS	  1302#	  1530
LPTSPC	  2184#	  2245	  2377
LSTBFZ	  1723	  1748	  2624#
LSTR	  2449#	  2459	  2463
LSTRL	  2451#	  2454
LUP32	  1693#	  1699
LW$STS	  1458	  2647#
LW$ZER	   376	  2678#
MOD.L	   686#	   687	   687#	   688	   688#	   689	   689#	   750
MOD.T	   686#	   750
MODBIN	   687#	   774	  1259
MODES	  1368	  2673#	  2674	  2675
MODFLG	   726	   885	   891	  2672#
MODIND	   688#	  1212
MODISP	  1370	  1406#
MODSEV	   689#
MODSVN	  1408	  1410#
MT.7TR	   990	   997	  1393	  1400	  1410	  1416	  1421	  1963
MT.DEN	   989
MTPWAT	  1515	  1516	  1520#
MTSCNB	   525#	   557
MTSWD	   527	   859#
MTSWL	   526	   849#
MTSWM	   527	   854#
MTSWN	   526	   844#	   849
MTSWP	   528	   849#
MX$ERR	   237#	  2551
MX$NPL	   129	  2390	  2426
MX.	   739#	   742	   817#	   854#
MX.BFS	   675	   747	   752	   819	   822
MX.BFZ	   677	   740	   817
MX.LGF	   673#	   749	   821
MX.MTN	   676	   739	   743	   744	   757	   854	   857
MX.RPT	   679	   753
MX.TRY	   680	   755
MX.TST	   681	   758	   759
MY$NAM	   124	   537	  2185
MY$PFX	   125	   493	   551	  2542
N	   116#	   957	   960	   963	   965
N$BUFS	   126	  1308
N$CMDS	   492	   542#
N$DSKB	   138	  1225	  1269
N$EOTO	  1893	  1907#
N$LOGB	   127	  1184
N$OPTN	  2285	  2301#
N$TSTB	   136	   469
N$TYIO	  1575	  1587#
NIBUFS	   723	   812	  1267	  2667#
NOBUFS	   470	   728	   815	  1223	  2668#
NOOP	   245#	   449	   589	   615	   618	   634	   638	   980	   983	   994	  1057	  1318	  1320	  1395
	  1402	  1412	  1443	  1548	  1602	  1606	  1750	  1796	  1887	  1940	  1984	  1987	  2060	  2160
	  2170	  2174	  2241	  2364
NUMTRY	   731	  1944	  1946	  2017	  2058	  2659#
OBHR	  1208	  1240	  1245	  1300	  1662	  1667	  1690	  1701	  1721	  1731	  1734	  1738	  1740	  1761
	  1768	  1769	  1774	  1782	  1783	  1785	  1788	  1791	  1792	  2023	  2024	  2026	  2027	  2630#
OCHERR	  2038	  2051#
OCHFIX	  2056	  2068#
OCHIEC	  2047#	  2066
ODVNAM	   408	   474	   477	   579	   590	  1960	  2620#
OFFSET	   352	   388	   493	  2591	  2616#
OMTEF1	  1841	  1847#
OMTEOF	  1825	  1826	  1827	  1828	  1838#
OP$DMP	  2304	  2375#
OP$DSP	  2288	  2303#
OP$EXI	  2305	  2317#
OP$G	  2306	  2314#
OP$HLP	  2289#	  2307
OP$IGN	  2308	  2311#
OP$SKP	  2309	  2320#
OPENER	  1167	  2146	  2158#
OPENIO	  1207	  1249	  2114#	  2378
OPINOB	   571	  1340#
OPNBLK	  1154	  1163	  1165	  1166	  1168	  1185	  1240	  1272	  2121	  2130	  2134	  2140	  2143	  2162
	  2382	  2635#
OPNI$1	  1253	  1267#
OPNINP	   420	  1248#	  1867
OPNO$1	  1211	  1223#
OPNO$2	  1227	  1238#
OPNOUT	   419	   430	  1206#	  1653	  1856	  1879	  1926	  2004
OPONOB	  1332#	  1918	  1921	  1979
OPSWD	   516	   824#
OPSWL	   515	   810#
OPSWM	   516	   817#
OPSWN	   515	   803#	   810
OPSWP	   517	   810#
OPTLST	  2286	  2294#	  2301
OSCNBL	   451	   482	   514#
OUTC	   148#	  1208	  1215	  1219	  1221	  1222	  1242	  1295	  1297	  1298	  1299	  1335	  1499	  1509
	  1535	  1671	  1744	  1764	  1777	  1817	  1818	  1821	  1822	  1829	  1830	  1833	  1834	  1843
	  1883	  1885	  1919	  1922	  1923	  1935	  1970	  1971	  1972	  1981	  2036	  2051	  2055	  2068
	  2069	  2071	  2072	  2073	  2074	  2137
OUTCLS	  1293#	  1536	  1852	  1872	  1888	  1978	  2000	  2003
OUTDUN	  1460#	  1476
OUTERS	  1936	  2048	  2644#
OUTMOD	   890	  1214	  2675#
OUTSPC	   405	   446	   456	   464	   467	   468	   471	   601	   603	   612	   883	   987	  1206	  1218
	  1316	  1333	  1336	  1938	  2245	  2652#
OUTSPE	   465	  2653#
P	   115#	   377	   379	   380	   381	   383	   392	   394	   395	   397	   399	   417	   418	   419
	   420	   421	   422	   423	   424	   428	   429	   430	   431	   432	   441	   448	   452	   454
	   475	   480	   558	   569	   571	   572	   573	   574	   580	   583	   589	   610	   614	   617
	   633	   637	   639	   871	   873	   880	   881	   884	   893	   906	   908	   910	   923	   924
	   927	   932	   957	   959	   976	   979	   982	   993	  1001	  1028	  1030	  1040	  1054	  1055
	  1056	  1067	  1071	  1073	  1077	  1079	  1086	  1087	  1089	  1099	  1101	  1107	  1108	  1109
	  1112	  1123	  1126	  1127	  1128	  1137	  1158	  1186	  1189	  1193	  1195	  1196	  1198	  1199
	  1200	  1201	  1202	  1207	  1209	  1220	  1234	  1237	  1241	  1247	  1249	  1251	  1262	  1273
	  1276	  1284	  1286	  1288	  1291	  1294	  1317	  1319	  1337	  1345	  1361	  1366	  1369	  1374
	  1375	  1378	  1383	  1384	  1387	  1388	  1390	  1391	  1394	  1397	  1401	  1404	  1406	  1407
	  1408	  1411	  1414	  1419	  1424	  1436	  1442	  1445	  1446	  1447	  1448	  1450	  1454	  1530
	  1531	  1536	  1539	  1542	  1544	  1547	  1550	  1551	  1556	  1574	  1596	  1598	  1601	  1605
	  1607	  1608	  1612	  1615	  1619	  1622	  1625	  1628	  1630	  1632	  1653	  1656	  1670	  1680
	  1683	  1708	  1743	  1749	  1763	  1776	  1795	  1806	  1852	  1856	  1861	  1867	  1872	  1879
	  1886	  1888	  1889	  1891	  1892	  1899	  1918	  1921	  1926	  1934	  1939	  1941	  1943	  1947
	  1949	  1952	  1954	  1957	  1959	  1966	  1969	  1977	  1978	  1979	  1983	  1986	  1990	  1992
	  2003	  2004	  2007	  2008	  2021	  2041	  2043	  2045	  2046	  2053	  2059	  2062	  2064	  2065
	  2114	  2115	  2116	  2125	  2155	  2159	  2169	  2173	  2176	  2178	  2179	  2198	  2199	  2200
	  2201	  2207	  2208	  2210	  2240	  2242	  2244	  2246	  2253	  2255	  2257	  2259	  2261	  2267
	  2271	  2276	  2277	  2283	  2284	  2291	  2321	  2325	  2327	  2329	  2332	  2338	  2345	  2347
	  2351	  2353	  2354	  2361	  2362	  2363	  2366	  2367	  2372	  2378	  2383	  2385	  2386	  2389
	  2396	  2403	  2405	  2406	  2411	  2413	  2418	  2420	  2421	  2432	  2441	  2442	  2450	  2451
	  2453	  2459	  2461	  2463	  2465	  2466	  2475	  2483	  2484	  2487	  2513	  2521	  2523	  2525
	  2532	  2533	  2540	  2541	  2544	  2545	  2547	  2553	  2558	  2560	  2574	  2587	  2589	  2590
	  2593	  2604
P1	   108#	   108	   940	   978	   981	  1048	  1157	  1215	  1216	  1217	  1254	  1255	  1256	  1393
	  1400	  1410	  1416	  1421	  1467	  1473	  1545	  1546	  1549	  1555	  1684	  1685	  1698	  1699
	  1973	  1985	  2037	  2044	  2057	  2063	  2070	  2117	  2118	  2120	  2158	  2168	  2177	  2214
	  2215	  2224	  2225	  2333	  2334	  2335	  2336	  2342	  2348	  2349	  2390	  2402	  2426	  2533
	  2535	  2537	  2539	  2543	  2546	  2550	  2554	  2557	  2559	  2561
P2	   109#	   109	  1047	  1218	  1257	  1355	  1362	  1471	  1491	  1500	  1515	  1521	  1648	  1654
	  1686	  1687	  1688	  1693	  1695	  1753	  1869	  1871	  1873	  2017	  2018	  2039	  2056	  2118
	  2129	  2131	  2132	  2135	  2149	  2215	  2216	  2228	  2231	  2232	  2233	  2245	  2247	  2250
	  2252	  2263	  2392	  2393	  2394	  2395	  2397
P3	   110#	   110	   116	  1049	  1050	  1051	  1219	  1258	  1360	  1368	  1373	  1381	  1472	  1501
	  1510	  1516	  1522	  1655	  1689	  1690	  1691	  1697	  1702	  1713	  1754	  1874	  1973	  1982
	  2049	  2135	  2137	  2139	  2141	  2142	  2144	  2148
P4	   111#	   111	   117	  1459	  1460	  1470	  1975	  1976	  2022
PARDIS	  1363	  1377#
PD.	   763#	   766	   824#	   859#
PD.BFS	   675	   771	   776	   826	   829
PD.BFZ	   677	   764	   824
PD.LGF	   674#	   773	   828
PD.MTN	   676	   763	   767	   768	   781	   859	   862
PD.RPT	   679	   777
PD.TRY	   680	   779
PD.TST	   681	   782	   783
PDLIST	   378	  2633#
PLP	   113#	   113	   903	   971	   972	  1455	  1464	  1465	  1471	  1472	  1518	  1854
PLPINI	   435#	   903	  1455
POP4J	  1203	  2353#
PRBDUN	  2335	  2352#
PRBLUP	  2341#	  2349
PRBNAM	  2340	  2356#
PRBNXT	  2343	  2348#
PRMPDL	   435	  2638#
PRMPT0	   547	   551#
PRMSTO	   873	   880	   908	   916	   961	   971#
PTHBLK	  1156	  2124	  2637#
RECTOT	  1631	  1674	  1742	  1759	  2645#
RESACS	  2571#
RESTRT	   370#	   575	  2594
RESTRY	  1974	  2017#	  2047
RPETFL	   729	  1950	  1999	  2660#
RPTFLG	   730	  2237	  2664#
RTRYFL	   727	  1263	  2236	  2662#
RUNSVD	   363	   371#
SAVAC	  1041	  1042	  1043	  1052	  2548	  2549	  2563	  2571	  2572	  2600	  2601	  2602	  2603	  2634#
SAVACS	  2532	  2600#
SAVRUN	   362	   368	  2611#
SCN$FZ	   897	   898	  2649#
SCN$LZ	   899	  2677#
SCNCMD	   399	   440#
SCNTS0	   458	   469#
SCNTS1	   466#
SCNTST	   444	   456#
SEG$	   348#	   438	   438#	  1021	  1021#
SEGAGN	  1044#	  1059
SETCH1	  1356	  1362#
SETCHR	  1220	  1262	  1355#
SGDEV	   366	  1044	  2612#
SGLOW	   367	  1046	  2614#
SGNAM	   364	  1045	  2613#
SGPPN	   365	  1048	  2615#
STBUFZ	  1235	  1238	  1270	  1307#
STOSWA	   942	   945#
STOSWB	   946	   949#
STOSWT	   509	   534	   938#
STRL.2	  1087#	  1090
STRLOG	  1071	  1073	  1074	  1085#
STSBZ0	   992	   996#
STSTBZ	   480	   987#
SWT$FO	   900	   901	  2654#
SWT$LO	   902	  2676#
SWTD	   502	   763#
SWTL	   501	   715#
SWTM	   502	   739#
SWTN	   501	   691#	   715	   978	   981
SWTP	   503	   715#	   940
SWTS0A	   950	   963#
SWTST0	   953	   955	   964#
T1	   104#	   104	   350	   351	   352	   382	   384	   386	   391	   393	   400	   401	   402	   403
	   404	   405	   406	   408	   413	   414	   416	   440	   451	   460	   461	   464	   465	   466
	   468	   469	   470	   471	   472	   474	   482	   546	   547	   548	   557	   559	   561	   562
	   564	   566	   568	   579	   582	   590	   592	   605	   606	   607	   608	   612	   613	   626
	   872	   874	   879	   883	   898	   899	   901	   902	   907	   914	   921	   922	   925	   928
	   959	   964	   971	   973	   974	   978	   981	   987	   988	   989	   991	   992	   995	   996
	   998	   999	  1000	  1030	  1031	  1044	  1049	  1051	  1064	  1065	  1068	  1069	  1070	  1072
	  1074	  1085	  1086	  1087	  1088	  1097	  1104	  1105	  1120	  1121	  1132	  1138	  1139	  1141
	  1142	  1143	  1144	  1145	  1149	  1150	  1152	  1153	  1160	  1161	  1162	  1163	  1164	  1165
	  1173	  1175	  1177	  1178	  1182	  1184	  1194	  1196	  1201	  1206	  1212	  1214	  1221	  1222
	  1223	  1225	  1244	  1245	  1248	  1259	  1261	  1264	  1265	  1267	  1269	  1274	  1275	  1280
	  1283	  1286	  1288	  1289	  1290	  1295	  1296	  1297	  1300	  1304	  1307	  1308	  1311	  1312
	  1316	  1332	  1335	  1336	  1340	  1343	  1344	  1355	  1356	  1357	  1358	  1362	  1363	  1368
	  1370	  1371	  1379	  1396	  1403	  1434	  1442	  1444	  1446	  1450	  1457	  1458	  1517	  1518
	  1546	  1549	  1569	  1576	  1579	  1610	  1611	  1614	  1616	  1617	  1618	  1621	  1626	  1629
	  1631	  1633	  1661	  1662	  1663	  1665	  1669	  1693	  1694	  1696	  1697	  1701	  1703	  1704
	  1705	  1707	  1727	  1728	  1729	  1733	  1734	  1735	  1736	  1737	  1738	  1739	  1748	  1781
	  1782	  1783	  1787	  1788	  1789	  1790	  1791	  1853	  1854	  1883	  1884	  1885	  1890	  1894
	  1897	  1938	  1942	  1944	  1945	  1946	  1948	  1950	  1951	  1953	  1955	  1956	  1958	  1960
	  1961	  1962	  1963	  1964	  1965	  1967	  1971	  1972	  1974	  1982	  1985	  1988	  2019	  2023
	  2025	  2029	  2031	  2032	  2033	  2034	  2039	  2040	  2042	  2044	  2047	  2058	  2061	  2063
	  2114	  2117	  2119	  2120	  2127	  2128	  2129	  2130	  2131	  2133	  2134	  2136	  2138	  2140
	  2143	  2144	  2145	  2148	  2150	  2151	  2152	  2153	  2158	  2162	  2163	  2164	  2168	  2172
	  2175	  2177	  2198	  2206	  2210	  2214	  2217	  2218	  2221	  2226	  2243	  2245	  2252	  2254
	  2256	  2258	  2260	  2265	  2266	  2268	  2269	  2277	  2278	  2282	  2286	  2289	  2311	  2312
	  2321	  2324	  2329	  2333	  2337	  2346	  2350	  2365	  2368	  2369	  2377	  2380	  2391	  2394
	  2404	  2408	  2409	  2410	  2417	  2419	  2421	  2422	  2431	  2433	  2440	  2449	  2450	  2451
	  2452	  2458	  2460	  2462	  2464	  2473	  2476	  2484	  2486	  2492	  2497	  2506	  2534	  2536
	  2538	  2542	  2543	  2546	  2548	  2556
T2	   105#	   105	   477	   478	   479	   591	   592	   595	   599	   603	   626	   627	   628	   629
	   631	   635	   636	   885	   888	   890	   892	   915	   926	   957	   959	   960	   964	   965
	   972	   989	   990	   997	  1045	  1154	  1168	  1169	  1171	  1172	  1185	  1228	  1229	  1230
	  1231	  1232	  1234	  1239	  1271	  1309	  1310	  1311	  1333	  1341	  1358	  1359	  1371	  1372
	  1379	  1380	  1442	  1450	  1575	  1576	  1577	  1578	  1664	  1665	  1666	  1667	  1669	  1695
	  1696	  1702	  1703	  1704	  1721	  1722	  1730	  1731	  1732	  1740	  1784	  1785	  1786	  1792
	  1893	  1894	  1895	  1896	  2024	  2025	  2027	  2034	  2051	  2052	  2054	  2055	  2121	  2217
	  2219	  2221	  2222	  2223	  2224	  2235	  2238	  2285	  2286	  2287	  2288	  2341	  2346	  2381
	  2395	  2418	  2507	  2508	  2509	  2511	  2549
T3	   106#	   106	   939	   941	   945	   949	   952	  1046	  1155	  1334	  1342	  1360	  1373	  1381
	  1442	  1450	  1716	  1718	  1719	  1722	  1723	  1728	  1729	  1736	  1741	  2122	  2407	  2412
	  2550	  2551	  2552	  2553
T4	   107#	   107	  1047	  1156	  1382	  1389	  1396	  1403	  1413	  1418	  1422	  1423	  1442	  1450
	  1760	  1768	  2124	  2340	  2341
TELCON	  2251	  2264	  2270	  2323#
TELERS	  1546#	  1555
TELPRB	  2242	  2332#
TEMP	  2222	  2265	  2625#
TEST.2	  1935#	  2006	  2009
TEST4	  1998#
TESTFL	   410	   443	   734	   735	  1365	  1975	  1980	  1998	  2658#
TESTIT	   432	  1934#
THRTY2	  1680	  1683#
TIMEFL	   736	   816	  1541	  1543	  1991	  2663#
TIMSTM	  1101	  1193#
TLDVER	   389	   396	  2610#
TPOPBL	  2256	  2260	  2460	  2464	  2506	  2508	  2510	  2640#
TPOPJ	  1033	  1088	  2202	  2239	  2249	  2279	  2303	  2313	  2315	  2326	  2328#	  2452	  2488
TPOPJ1	  2220	  2327#
TSCNBL	   440	   500#
TSTBHR	  1133	  1283#	  1301	  1305
TSTBUF	  1977	  2020#	  2040	  2049	  2070	  2075
TSTDEN	   996	  1955	  2657#
TY.MAN	  1171
TY.SPL	  1172
TYFEET	  2046	  2065	  2497#
TYHELP	  1899	  2291	  2518#
TYHLP0	  2520	  2523#
TYICHK	  1462	  1566#	  1675	  1711	  1757	  2020
TYIDSP	  1578	  1589#
TYIIGN	  1589	  1595#
TYIKIL	  1589	  1605#
TYIPAU	  1589	  1601#
TYISTS	  1542	  1589	  1610#	  1992
TYIT.2	  1627	  1631#
TYITOT	  1544	  1624#
TYPDLR	  1889	  2482#	  2540
TYSLSH	  2345	  2492#
UCOMNT	   718	  1068	  1072	  2655#
UPSCN	   380	   397	  1039#	  2521	  2590
UU.IBC	  2136
UU.SOE	  2138
WAITCK	  1495	  1505	  1515#
WLDERR	  1159	  2126	  2162#
WLDNMT	  2165	  2168#
WRTLOK	  1316#	  2276
XCTIO	  1109	  1656	  1670	  1743	  1763	  1776	  1806	  2197#	  2442
XCTIO0	  2230	  2234	  2240#
XCTIOD	  2200	  2206#	  2321
XCTIOE	  2210#	  2280
ZZ	   101#	   103	   103#	   104	   104#	   105	   105#	   106	   106#	   107	   107#	   108	   108#	   109
	   109#	   110	   110#	   111	   111#	   112	   112#	   113	   113#	   114	   114#	   192#	   194	   194#
	   226#	   228	   228#	   229	   229#	   230	   230#	   231	   231#	   232	   232#	   233	   233#	   234
	   234#	   237	   240
$CLOSE	   381	   717	  1119#
$FL232	   180#	   737
$FLITY	   176#	   724	   813
$LOGSW	   725	   814	   920#
%%CPYM	    29#	    30
%%JOBD	    10	    10#
%%MACT	    12	    12#
%%SCNM	    13	    13#
%%UUOS	    11	    11#
..FL	   158#	   160	   160#	   161	   161#	   162	   162#	   163	   163#	   165	   165#	   166	   166#	   167
	   167#	   169	   169#	   172	   172#	   174	   174#	   175	   175#	   177	   177#	   178	   178#	   179
	   179#	   181	   181#	   182	   182#	   183	   183#
..TEMP	   684#	   684	   685#	   685	   686#	   686	   687#	   687	   688#	   688	   689#	   689	   715#	   715
	   716#	   716	   717#	   717	   718#	   718	   719#	   719	   720#	   720	   721#	   721	   722#	   722
	   723#	   723	   724#	   724	   725#	   725	   726#	   726	   727#	   727	   728#	   728	   729#	   729
	   730#	   730	   731#	   731	   732#	   732	   733#	   733	   734#	   734	   735#	   735	   736#	   736
	   737#	   737	   738#	   738	   739#	   739	   740	   740#	   741	   741#	   742	   742#	   743	   743#
	   744	   744#	   745	   745#	   746	   746#	   747	   747#	   748	   748#	   749	   749#	   750	   750#
	   751	   751#	   752	   752#	   753	   753#	   754	   754#	   755	   755#	   756	   756#	   757	   757#
	   758	   758#	   759	   759#	   760	   760#	   761	   761#	   762	   762#	   763	   763#	   764	   764#
	   765	   765#	   766	   766#	   767	   767#	   768	   768#	   769	   769#	   770	   770#	   771	   771#
	   772	   772#	   773	   773#	   774	   774#	   775	   775#	   776	   776#	   777	   777#	   778	   778#
	   779	   779#	   780	   780#	   781	   781#	   782	   782#	   783	   783#	   784	   784#	   785	   785#
	   786	   786#	   787	   810#	   810	   811#	   811	   812#	   812	   813#	   813	   814#	   814	   815#
	   815	   816#	   816	   817#	   817	   818	   818#	   819	   819#	   820	   820#	   821	   821#	   822
	   822#	   823	   823#	   824	   824#	   825	   825#	   826	   826#	   827	   827#	   828	   828#	   829
	   829#	   830	   830#	   831	   849#	   849	   850#	   850	   851#	   851	   852#	   852	   853#	   853
	   854#	   854	   855	   855#	   856	   856#	   857	   857#	   858	   858#	   859	   859#	   860	   860#
	   861	   861#	   862	   862#	   863	   863#	   864
..TEMR	   763#	   763	   764#	   764	   765#	   765	   766#	   766	   767#	   767	   768#	   768	   769#	   769
	   770#	   770	   771#	   771	   772#	   772	   773#	   773	   774#	   774	   775#	   775	   776#	   776
	   777#	   777	   778#	   778	   779#	   779	   780#	   780	   781#	   781	   782#	   782	   783#	   783
	   784#	   784	   785#	   785	   786#	   786	   787	   824#	   824	   825#	   825	   826#	   826	   827#
	   827	   828#	   828	   829#	   829	   830#	   830	   831	   859#	   859	   860#	   860	   861#	   861
	   862#	   862	   863#	   863	   864
.ALCBF	  1186	  1241	  1273	  2383
.BFADR	  1245	  1275	  1288	  1721
.BFCTR	  1102	  1290	  1664	  1668	  1684	  1705	  1706	  1717	  1727	  1737	  1738	  1760	  1761	  1769
	  1771	  1774	  1781	  1782	  1783	  1790	  1791	  1804	  2024	  2026	  2391	  2438
.BFPTR	  1104	  1289	  1661	  1662	  1666	  1667	  1687	  1690	  1701	  1707	  1716	  1730	  1731	  1733
	  1734	  1740	  1768	  1784	  1785	  1787	  1788	  1792	  2023	  2027	  2392	  2440
.CHBEL	  1579	  2473
.CHCRT	  2431
.CHLFD	  1105	  2433
.CLRFL	   929
.DECNW	   957
.FILIN	   924
.FREBF	  1286
.FXDEV	   405	   413	   446	   447	   456	   457	   460	   463	   467	   468	   471	   559	   564	   612
	   613	  1138	  1144	  1316	  1333	  1341	  1938
.FXEXT	   597	   599	   601	   603	  1151	  1152	  2188
.FXLEN	   143	   673	   926	  1121	  1142	  1153	  2119	  2188	  2619
.FXMOD	   987	  1355	  1362
.FXNAM	   562	  1146	  1148	  1149
.FXNMM	  1147
.GTLIM	   605
.GTSPC	   927
.HELPR	  2523
.IOASC	  1162	  2379
.IOBIN	  1208	  1250
.IODMP	  1332	  1340
.ISCAN	   383
.JBHRL	  1027	  1039	  2519
.JBVER	    28	   393
.MONRT	   574	  2593
.OPBUF	  1165	  2134
.OPDEV	  1168	  2162
.OPMOD	  1163	  2130	  2140
.OSCAN	   452	   483
.POP4T	  1112	  2353
.POPJ	   749	   821	  1065	  1069	  2022	  2575
.POPJ1	   632
.PSH4T	  1108	  1193	  2332
.RBCNT	  1161	  2128
.RBEXT	  1177	  2172
.RBTIM	  1155	  1160	  2123	  2127	  2636
.RECOR	   379	   424
.SAVE1	  1137	  1598
.SAVE2	  2208	  2389
.SAVE3	  1209	  1251	  1683	  2116
.SAVE4	  1454	  1934
.SGDEV	   366
.SGLOW	   367
.SGNAM	   364
.SGPPN	   365
.STOPB	  1158	  2125
.SWASQ	   742
.SWDEC	   739	   740	   743	   744	   747	   752	   753	   755	   757	   758	   759	   817	   819	   822
	   854	   857
.TCHAR	  1580	  2351	  2475	  2493	  2541	  2558
.TCOLN	  1941
.TCRLF	   395	  1448	  1551	  1574	  2179	  2271	  2362	  2478	  2560
.TDECW	  1628	  1632	  1947	  1952	  1966	  2041	  2045	  2064	  2257	  2261	  2576
.TFBLK	  2178	  2246	  2581
.TFD80	  1389
.TFDEN	  1359
.TFM7B	  1413
.TFM7T	  1422
.TFM8B	  1418
.TFM9T	  1423#
.TFMOD	  1372
.TFPAR	  1380
.TFSET	  1359	  1372	  1380
.TFSTA	  2507
.TOCTW	  1447	  2577
.TOLEB	  2582
.TPPNW	  2579
.TSCAN	   441	   558
.TSFIL	  2256	  2460
.TSIXN	   549	  2347	  2544	  2578
.TSPAC	  1199	  1200	  2545
.TSREC	  2260	  2464
.TSTRG	   392	  1445	  1550	  1615	  1622	  1630	  1633	  1891	  1943	  1949	  1954	  1957	  1959	  1969
	  1990	  2043	  2062	  2176	  2244	  2255	  2259	  2283	  2325	  2338	  2366	  2487	  2497	  2547
	  2580
.TTIME	  1612	  1619
.TTIMN	  1198
.TVERW	   394
.TYOCH	  1195	  1202
AC$	    98#	   103	   104	   105	   106	   107	   108	   109	   110	   111	   112	   113	   114
ALIGN.	  2336
CLOSE	  1129	  1278	  1298	  1302
CLRBFI	  1571	  2477
CORE	  1031
CTITLE	    33#	    35
DEVCHR	   627	  2163
DEVNAM	   406	   414	   472	   566
DEVTYP	  1169
DM	   675	   676	   677	   679	   680	   681
DOSCAN	   690	   802	   843
ENTER	  1180	  2150
ERROR.	   248#	   448	   589	   614	   617	   633	   637	   979	   982	   993	  1056	  1317	  1319	  1394
	  1401	  1411	  1442	  1547	  1601	  1605	  1749	  1795	  1886	  1939	  1983	  1986	  2059	  2159
	  2169	  2173	  2240	  2363
ETYP	   223#	   228	   229	   230	   231	   232	   233	   234
EXIT	  1058	  1915	  2317
FLAG$	   154#	   160	   161	   162	   163	   165	   166	   167	   169	   172	   174	   175	   177	   178
	   179	   181	   182	   183
FN	   190#	   194	  1480#	  1482
FUNCTS	   187#	   194	  1482
GETSEG	  1050
GETSTS	  1221	  1264	  1295	  1883	  1971	  2051	  2217
GETTAB	   606
HALT	  1477	  2444
HIGH$	   316#	   438
IN	  1657	  1807
INCHRS	  1569
INCHRW	  2476
INFO.	   259#	  1547	  1601	  1939	  1983	  1986	  2363
KEYS	   683	   686
LIT$	   339#	   436	  1017	  2679
LOOKUP	  1176	  2151
LOW$	   324#	  1021
MSTIME	   400	  1610
MTBSF.	  1535	  1817	  1819
MTBSR.	  1818	  1820	  2068	  2071
MTCHR.	   478	  1216	  1255	  1961
MTEOF.	  1843	  1847
MTREW.	  1829	  1830	  1831	  1832	  1922	  1935	  1981
MTSKF.	  1821	  1823
MTSKR.	  1822	  1824	  2073
MTUNL.	  1833	  1834	  1835	  1836	  1919
MTWAT.	  1497	  1499	  1507	  1509	  1520	  1970	  2069	  2072	  2074
ND	   122	   123	   124	   125	   126	   127	   128	   129	   130	   131	   132	   133	   135	   136
	   138	   675	   676	   677	   679	   680	   681
OPEN	  1166	  1335	  1343	  2143
OPER$	   264#	  1317	  1319	  1886
OUT	  1110	  1242	  1671	  1744	  1764	  1777	  2036	  2443
OUTCHR	  1097
OUTPUT	  1187
PJRST	   483	   549	   875	   916	   929	   961	  1033	  1133	  1203	  1305	  1580	  1599	  1603	  2000
	  2398	  2423	  2467	  2478	  2488	  2493	  2526
PJSP	  1074	  1633	  2497
POINTR	   724	   737	   813	   987	   989	  1355	  1362
POS	   724	   737	   813	   987	   989	  1355	  1362
RELEAS	  1130	  1279	  1299	  1303	  1923
RELOC$	   332#	   348
RESET	   353	  2588
RESTR$	   299#	   958	  1236	  1287	  1449	  2320	  2328
RGHBT.	  2336
RUNTIM	   403	  1617
SAVE$	   292#	   956	  1029	  1233	  1285	  1441	  1573	  2197	  2209
SETSTS	  1222	  1265	  1297	  1885	  1972	  2055	  2224
SL	   698	   702	   722	   726	   746	   750	   770	   774	   804	   811	   818	   825
SP	   691	   692	   694	   695	   696	   699	   701	   704	   705	   707	   709	   710	   711	   715
	   716	   718	   719	   720	   723	   725	   728	   729	   731	   733	   734	   735	   739	   740
	   742	   743	   744	   747	   749	   752	   753	   755	   757	   758	   759	   763	   764	   766
	   767	   768	   771	   773	   776	   777	   779	   781	   782	   783	   803	   805	   807	   808
	   810	   812	   814	   815	   817	   819	   821	   822	   824	   826	   828	   829	   844	   847
	   849	   852	   854	   857	   859	   862
SS	   693	   697	   700	   703	   706	   708	   712	   713	   714	   717	   721	   724	   727	   730
	   732	   736	   737	   738	   741	   745	   748	   751	   754	   756	   760	   761	   762	   765
	   769	   772	   775	   778	   780	   784	   785	   786	   806	   809	   813	   816	   820	   823
	   827	   830	   845	   846	   848	   850	   851	   853	   855	   856	   858	   860	   861	   863
STORE	   371	   374	   897	   900	  1119	  1140	  1456
STRNG$	   311#	   391	  1444	  1613	  1620	  1629	  1890	  1942	  1948	  1953	  1958	  2042	  2061	  2175
	  2243	  2254	  2258	  2281	  2323	  2365	  2485
SWTCHS	   642#	   691	   715	   739	   763	   792#	   803	   810	   817	   824	   835#	   844	   849	   854
	   859
TAPOP.	  1434	  2511
TXNE	  1171	  1172
U	   306#	  2609	  2610	  2611	  2612	  2613	  2614	  2615	  2616	  2619	  2620	  2621	  2622	  2623
	  2624	  2625	  2629	  2630	  2631	  2632	  2633	  2634	  2635	  2636	  2637	  2638	  2640	  2643
	  2644	  2645	  2646	  2650	  2652	  2655	  2657	  2658	  2659	  2660	  2662	  2663	  2664	  2665
	  2667	  2668	  2670	  2671	  2672	  2673
USETI	  1183
VRSN.	    29
WARN.	   254#	   993	  1442	  1605	  2059	  2240
WID	   724	   737	   813	   987	   989	  1355	  1362
X	   691#	   691	   692	   693	   694	   695	   696	   697	   698	   699	   700	   701	   702	   703
	   704	   705	   706	   707	   708	   709	   710	   711	   712	   713	   714	   715#	   715	   716
	   717	   718	   719	   720	   721	   722	   723	   724	   725	   726	   727	   728	   729	   730
	   731	   732	   733	   734	   735	   736	   737	   738	   739#	   739	   740	   741	   742	   743
	   744	   745	   746	   747	   748	   749	   750	   751	   752	   753	   754	   755	   756	   757
	   758	   759	   760	   761	   762	   763#	   763	   764	   765	   766	   767	   768	   769	   770
	   771	   772	   773	   774	   775	   776	   777	   778	   779	   780	   781	   782	   783	   784
	   785	   786	   803#	   803	   804	   805	   806	   807	   808	   809	   810#	   810	   811	   812
	   813	   814	   815	   816	   817#	   817	   818	   819	   820	   821	   822	   823	   824#	   824
	   825	   826	   827	   828	   829	   830	   844#	   844	   845	   846	   847	   848	   849#	   849
	   850	   851	   852	   853	   854#	   854	   855	   856	   857	   858	   859#	   859	   860	   861
	   862	   863