Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-04 - decus/20-0132/dumpr.lpt
There are 2 other files named dumpr.lpt in the archive. Click here to see a list.
DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 1
DUMPR	MAC	21-FEB-77 17:03		B. SCHREIBER - UI HIGH ENERGY PHYSICS GROUP

     1					SUBTTL	B. SCHREIBER - UI HIGH ENERGY PHYSICS GROUP
     2
     3					SEARCH	JOBDAT,UUOSYM,MACTEN,SCNMAC
     4					.DIREC	.XTABM
     5					SALL
     6
     7					;DUMPR VERSION INFORMATION
     8
     9			000005		DMPVER==5	;VERSION
    10			000026		DMPEDT==26	;EDIT
    11			000000		DMPMIN==0	;MINOR VERSION
    12			000000		DMPWHO==0	;WHO
    13
    14					DEFINE	CTITLE (TEXT,MAJVER,VEREDT)
    15					<TITLE	'TEXT'MAJVER(VEREDT)>
    16
    17					CTITLE	(<DUMPR - UTILITY FILE DUMPER %>,\DMPVER,\DMPEDT)
    18
    19	000137				LOC	.JBVER
    20		000500	000026		%%DUMP==:VRSN. (DMP)	;FOR LINK-EDIT MAP
    21	000137	000500	000026		EXP	%%DUMP
    22
    23					;SHOW UNIVERSAL VERSION
    24
    25		043000	000443		%%JOBD==:%%JOBD	;JOBDAT
    26		101100	000225		%%UUOS==:%%UUOS	;UUOSYM
    27		000100	000024		%%MACT==:%%MACT	;MACTEN
    28		000700	000203		%%SCNM==:%%SCNM	;SCNMAC
    29
    30					;REQUEST REST OF LOADING NOW
    31
    32					IF2,<	;ONLY NEED TO REQUEST LOADING IN PASS 2
    33					IFE FT$SEG,<	;IF LOADING RUNNING PART IN LOWSEG
    34					.REQUE	REL:HELPER
    35					IFN FT$WLD,<.REQUE REL:WLD7A>
    36					.TEXT	\REL:ALCOR/SEG:LOW/SEARCH\
    37					.TEXT	\REL:SCN7B/SEG:LOW/SEARCH/EXCLUD:(.SCAN),REL:SCN7B/SEARCH\
    38					>;END IFE FT$SEG
    39
    40					IFN FT$SEG,<	;IF LOADING IT ALL IN HIGH SEGMENT
    41					.REQUE	REL:ALCOR
    42					.REQUE	REL:SCN7B
    43					IFN FT$WLD,<.REQUE REL:WLD7A>
    44					.REQUE	REL:HELPER
    45					>;END IFN FT$SEG
    46					>;END IF2

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 2
DUMPR	MAC	21-FEB-77 17:03		REVISION HISTORY

    47					SUBTTL	REVISION HISTORY
    48
    49					COMMENT	\
    50
    51					1(1)	11/1/76		BIRTH
    52					1(2)	11/2/76		RECOVER FROM BLOCK TOO LARGE WITH /FORTRA OR 
    53								/IREAD(ON DSK).
    54					1(3)	11/4/76		MAKE DISK IREAD MUCH FASTER.  WORD COUNTS FOR
    55								NOT /LINRDX:DEC WILL START AT ZERO, RATHER
    56								THAN ONE.
    57					2(4)	11/4/76		IMPLEMENT /MODE:BYTE:N DUMP.  ADD CODE FOR
    58								SKIPPING FORTRAN BINARY ON MAGTAPE.
    59					2(5)	11/5/76		IMPLEMENT /MTBUF AND /ERROR
    60					2(6)	11/7/76		MAKE /MODE:ASCII WORK IF NOT /OMIT.
    61					2(7)	11/10/76	MAKE CONTROL CHARACTERS VISIBLE IF/MODE:ASCII/OMIT.
    62								CORRECT BYTE WIDTH COMPUTATION IF /RADIX ALSO.
    63					2(10)	11/11/76	MAKE /DUMP:F:R WORK IF /SUM. CHANGE JRST DUMP$G
    64								TO JRST DUMP.2 AT DUMP$G+7.
    65					2(11)	11/14/76	MISC. CLEANUPS. IMPLEMENT "I" OPTION FOR IFTYP.
    66					2(12)	11/15/76	SKIPE T3 IS REALLY SKIPE T2 AT GMBWID+6. THIS
    67								FIXES PROBLEM WITH /MODE:BYTE DUMPS
    68					2(13)	12/10/76	READ TTY WIDTH IF TTY DUMP AND NO /WIDTH GIVEN.
    69								FEATURE TEST IREAD STUFF WITH FT$PHX. MISC. CODE
    70								CLEANUPS.
    71					3(14)	12/27/76	ADD WILDCARDING UNDER FT$WLD CONDITIONAL
    72					3(15)	1/2/77		FINISH WILDCARDING (SINGLE INPUT SPEC ONLY). IF SPOOLED
    73								OUTPUT AND WILDCARDS, THEN CLOSE AND REOPEN OUTPUT AFTER
    74								EACH FILE.  FIX UP EIGHT-BIT ASCII PRINTOUT TO MAKE
    75								ALL CHARACTERS VISIBLE.
    76					3(16)	1/2/77		FIX BUG AT DUMPEF (NO HISEG PRESENT IF FT$WLD=1)
    77					3(17)	1/3/77		MAKE EBCDIC DUMP WORK. ADD /BLOCK TO SPECIFY
    78								# CHARACTERS IN AN EBCDIC RECORD
    79					4(20)	1/5/77		ADD /POSITION SWITCH.
    80					4(21)	1/6/77		MISC. CLEANUPS
    81					4(22)	1/27/77		ADD [DMPIPT INITIAL POSITION OF TAPE IS FILE N REC M]
    82								TO SHOW WHERE THE TAPE IS INITIALLY
    83					4(23)	1/27/77		SHOW FILE/RECORD POSITION ON INPUT ERRORS. DO A
    84								WAIT WHEN ERROR HAPPENS TO MAKE SURE I/O IS OVER
    85					4(24)	2/3/77		MTWAT BEFORE THE TAPOP. IN DMPINI WILL PROBABLY
    86								CURE SOME OF THE PROBLEMS WITH FUNNY FILE AND
    87								RECORD COUNTS.
    88					4(25)	2/13/77		SEE IF DEVICE IS ALSO TTY IF MTA (IE NULL) AND
    89								ZAP DV.MTA IF SO
    90					5(26)	2/18/77		IMPLEMENT /MODE:HALF AND /MODE:SYMBOL
    91
    92						\;END OF HISTORY

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 3
DUMPR	MAC	21-FEB-77 17:03		ASSEMBLY / ACCUMULATOR DEFINITIONS

    93					SUBTTL	ASSEMBLY / ACCUMULATOR DEFINITIONS
    94
    95					;ASSEMBLY DEFINES
    96
    97					ND LN$PDL,^D200		;PDL SIZE
    98					ND MY$NAM,'DUMPR '	;MY NAME
    99					ND MY$PFX,'DMP'		;MESSAGE PREFIX
   100					ND LN$ACT,^D50		;SIZE OF ACTION LIST
   101					ND LN$CMD,^D20		;SIZE OF BUFFER TO REMEMBER COMMANDS IN
   102			000143			MX$CMD==<LN$CMD*5>-1 ;MAX # CHARS IN COMMAND (LEAVE NULL ON END)
   103					ND LN$TTL,^D30		;LENGTH OF TITLE BLOCK (.NMUL IN SCAN IS THIS LONG)
   104					ND DF$BFZ,^D1024	;DEFAULT BUFFERSIZE IF NONE GIVEN
   105					ND FT$SEG,0		;1 = ALL EXECUTABLE CODE GOES IN HIGH SEGMENT
   106								;0 = ONLY PUT SCAN IN HIGH SEGMENT AND THROW
   107								;    IT AWAY WHEN RUNNING
   108					ND FT$OPT,1		;1 = SCAN SWITCH.INI FOR SWITCHES ALSO
   109					ND FT$PHX,1		;1 = INCLUDE /IREAD SWITCH (FOR UI PHYSICS)
   110					ND FT$WLD,1		;1 = ALLOW INPUT WILDCARDING
   111					ND FT$ISD,1		;1 = INCLUDE INSTRUCTION SET DUMP
   112
   113	400000'					    TWOSEG
   114					IFN FT$SEG,<RELOC 400000>
   115	000000'				IFE FT$SEG,<RELOC 0>

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 4
DUMPR	MAC	21-FEB-77 17:03		ASSEMBLY / ACCUMULATOR DEFINITIONS

   116					;DEFINE THE ACCUMULATORS
   117
   118					DEFINE AC$ (X)
   119					<X=ZZ
   120					ZZ==ZZ+1
   121					X=X>
   122
   123			000000		ZZ==0
   124
   125			000000		AC$ (F)		;FLAGS
   126			000001		AC$ (T1)	;T1-4 ARE TEMPORARY
   127			000002		AC$ (T2)
   128			000003		AC$ (T3)
   129			000004		AC$ (T4)
   130			000005		AC$ (P1)	;P1-4 ARE PERMANENT AND MUST BE PRESERVED
   131			000006		AC$ (P2)
   132			000007		AC$ (P3)
   133			000010		AC$ (P4)
   134			000011		AC$ (A)		;ACTION LIST POINTER
   135			000012		AC$ (DC)	;LH=DEVCHR LH FOR INPUT DEVICE
   136							;RH=DEVCHR LH FOR OUTPUT DEVICE
   137			000013		AC$ (W)		;AOBJN PTR TO DATA DURING DUMP
   138			000014		AC$ (M)		;CURRENT DUMP MODE INDEX
   139			000015		AC$ (L)		;# WORDS/LINE IN CURRENT DUMP MODE
   140			000016		AC$ (Q)		;# CHARACTER POSITIONS/WORD IN CURRENT DUMP MODE
   141			000017			P=17	;PUSHDOWN LIST POINTER
   142			000010			C=P4	;CHARACTER FROM SCAN
   143			000007			N=P3	;NUMBER OR WORD FROM SCAN
   144			000007			E1=P3	;USED IN FLOATING POINT OUTPUT
   145			000010			E2=P4	;DITTO
   146			000011			E3=A	;MORE
   147			000012			E4=DC	;AND MORE
   148			000013			E5=W	;AND THE LAST

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 5
DUMPR	MAC	21-FEB-77 17:03		FLAG DEFINITIONS

   149					SUBTTL	FLAG DEFINITIONS
   150
   151					;FLAGS IN LH OF F
   152
   153					DEFINE FLAG$ (FLG)
   154					<FL$'FLG==ZZ
   155					ZZ==ZZ_-1
   156					FL$'FLG==FL$'FLG> 
   157
   158			400000		ZZ==(1B0)
   159
   160			400000		FLAG$ (FOR)	;1 = DO FORTRAN INPUT
   161		400000	000000			$FLFOR==(FL$FOR)	;LEFT HANDED VALUE
   162					IFN FT$PHX,<
   163			200000		FLAG$ (PHY)	;1 = DO IREAD (PHYSIX) INPUT
   164		200000	000000			$FLPHY==(FL$PHY)	;LEFT HANDED VALUE
   165					>;END IFN FT$PHX
   166					IFE FT$PHX,<FL$PHY==0>		;DUMMY DEFINITION IF FEATURE TURNED OFF
   167			100000		FLAG$ (SUM)	;1 = /SUMMARY
   168		100000	000000			$FLSUM==(FL$SUM)	;LEFT HANDED VALUE
   169			040000		FLAG$ (TOT)	;1 = /TOTALS
   170		040000	000000			$FLTOT==(FL$TOT)	;LEFT HANDED VALUE
   171			020000		FLAG$ (OMI)	;1 = OMIT LINE NUMBERS (UNFORMATTED DUMP FOR ASCII)
   172		020000	000000			$FLOMI==(FL$OMI)	;LEFT HANDED VALUE
   173			010000		FLAG$ (ITY)	;1 = /IFTYP
   174		010000	000000			$FLITY==(FL$ITY)	;LEFT HANDED VALUE
   175			004000		FLAG$ (IND)	;1 = /INDUSTRY
   176		004000	000000			$FLIND==(FL$IND)	;LEFT HANDED VALUE
   177			002000		FLAG$ (OUT)	;1 = OUTPUT SPEC HAS BEEN ALLOCATED
   178			001000		FLAG$ (NEG)	;1 = CURRENT # IS NEGATIVE IN INTFMT, FLTFMT
   179			000400		FLAG$ (TMP)	;GENERAL TEMPORARY FLAG (NOT SAVED OVER CALLS)
   180			000200		FLAG$ (MNP)	;1 = DOING FILE POSITIONING IN FORTRA/IREAD MODE
   181			000100		FLAG$ (EOT)	;END-OF-TAPE FLAG (2 EOFS IN A ROW)
   182			000040		FLAG$ (OLY)	;1 = THERE IS A /ONLY IN EFFECT
   183			000020		FLAG$ (FL2)	;TEMPORARY FLAG
   184			000010		FLAG$ (OPN)	;1 = OUTPUT FILE IS OPEN
   185			000004		FLAG$ (RDX)	;1 = A /RADIX WAS GIVEN
   186			000002		FLAG$ (IOF)	;FLAG FOR USE IN XCTIO AND BELOW
   187			000001		FLAG$ (ODN)	;OUTPUT HAS BEEN DONE
   188
   189			764000		FL$SCN==FL$FOR!FL$PHY!FL$SUM!FL$TOT!FL$OMI!FL$IND ;FLAGS TO CLEAR AT CLRANS
   190			776004		FL$SCN==FL$SCN!FL$OUT!FL$ITY!FL$RDX
   191
   192			400000		ZZ==1B18		;OVER TO THE RIGHT HALF
   193
   194			400000		FLAG$ (POS)	;1 = /POSITION SWITCH

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 6
DUMPR	MAC	21-FEB-77 17:03		FLAG DEFINITIONS

   195					;I/O CHANNELS
   196
   197					;0	USED BY HELPER
   198			000001		INPC==1	;INPUT CHANNEL
   199			000002		OUTC==2	;OUTPUT CHANNEL
   200
   201			000020		ATSIGN==(1B13)		;I/O SWITCH FLAG FOR OPENIO
   202
   203					;MISCELLANEOUS BITS AND STUFF
   204
   205		000024	000000		$OKDVI==DV.MTA!DV.DIR			;INPUT CAN BE MTA OR DIRECTORY DEVICE
   206		040034	000000		$OKDVO==DV.MTA!DV.DIR!DV.TTY!DV.LPT	;OUTPUT CAN BE ONE OF THESE
   207			003000		CW$ANY==3000		;FORTRAN BINARY ANY LSCW PATTERN
   208			001000		CW$1O3==1000		;FORTRAN BINARY LSCW TYPE 1 OR 3 PATTERN
   209			002000		CW$TY3==2000		;FORTRAN BINARY LSCW TYPE 3 PATTERN
   210

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 7
DUMPR	MAC	21-FEB-77 17:03		FLAG DEFINITIONS

   211					;FLAGS AND BITS FOR SWTCHS MACRO
   212
   213		774000	000000		FS$XXX==FS.NFS!FS.LRG!FS.NUE!FS.VRQ!FS.OBV!FS.NOS!FS.NCM ;BITS USED BY SCAN
   214								;SEE SCNMAC.MAC FOR DESCRIPTION OF ABOVE BITS
   215		000001	000000		FS$XTR==1B17		;THIS SWITCH CAN TAKE EXTRA ARGUMENTS (/BACKSP:F:R)
   216		000002	000000		FS$NVL==1B16		;THIS SWITCH NEVER TAKES A VALUE
   217		000004	000000		FS$INP==1B15		;THIS SWITCH IS INPUT ONLY
   218		000010	000000		FS$OUT==1B14		;THIS SWITCH IS OUTPUT ONLY
   219
   220					;DEFINE THE FUNCTIONS
   221
   222		777777	777776		FN$END==-2		;END OF ALL FUNCTIONS -- TERMINATE DUMP
   223		777777	777777		FN$INP==-1		;ALL FUNCTIONS FOLLOWING THIS ARE INPUT ONLY
   224
   225					DEFINE FUNCTS
   226					<X (<MOD,ONL,DMP,BSP,SKP,REW,RIB>)>
   227
   228					DEFINE X(A)
   229					<IRP A,<FN$'A==ZZ
   230						ZZ==ZZ+1>>
   231
   232			000001		ZZ==1			;FUNCTIONS GO FROM 1-HIGHEST
   233
   234					FUNCTS			;DEFINE THE FUNCTIONS
   235
   236					;ALL POSITIONING FUNCTIONS MUST BE BETWEEN BSP AND REW
   237
   238			000004		FN$TP1==FN$BSP		;FIRST LEGAL POSITIONING FUNCTION
   239			000006		FN$TPX==FN$REW		;LAST LEGAL POSITIONING FUNCTION
   240
   241					;OPDEFINES
   242
   243		260740	000000		OPDEF	CALL	[PUSHJ	P,]	;SUBROUTINE CALL

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 9
DUMPR	MAC	21-FEB-77 17:03		ERROR MACRO DEFINITIONS

   244					SUBTTL	ERROR MACRO DEFINITIONS
   245
   246					;ERROR.	($FLGS,$PFX,$MSG)
   247					;
   248					;$FLGS 	IS THE COMBINITATION OF THE FOLLOWING BITS:
   249
   250			000000			EF$ERR==0	;ERROR--PREFIX MSG WITH ?, RETURN CONTROL AFTER CALL
   251			000400			EF$FTL==400	;FATAL ERROR--ABORT AND RESTART
   252			000200			EF$WRN==200	;WARNING MESSAGE--CONTINUE
   253			000100			EF$INF==100	;INFORMATIVE MESSAGE--CONTINUE
   254			000040			EF$NCR==40	;NO FREE CRLF AFTER MESSAGE
   255
   256					DEFINE ETYP ($TYP)
   257					<ZZ==ZZ+1
   258					EF$'$TYP==ZZ>
   259
   260			000000		ZZ==0		;TYPE CODES ARE FROM 1-37
   261
   262			000001		ETYP (DEC)	;TYPE T1 IN DECIMAL AT END OF MESSAGE
   263			000002		ETYP (OCT)	;TYPE T1 IN OCTAL AT END OF MESSAGE
   264			000003		ETYP (SIX)	;TYPE T1 IN SIXBIT AT END OF MESSAGE
   265			000004		ETYP (PPN)	;TYPE T1 AS A PPN AT END OF MESSAGE
   266			000005		ETYP (STR)	;T1 PTS TO ASCIZ STR TO TYPE AT END OF MESSAGE
   267			000006		ETYP (FIL)	;T1 PTS TO SCAN FILE BLOCK TO TYPE AT END OF MSG
   268			000006			EF$MAX==ZZ	;MAX ERROR TYPE
   269
   270					IFG ZZ-37,<PRINTX ?TOO MANY ERROR TYPES>
   271
   272					;$PFX IS THE 3-LETTER PREFIX FOR THE MESSAGE
   273					;$MSG IS THE MESSAGE ITSELF
   274
   275			300000		NOOP==	(CAI)		;DEFINE NO-MEMORY-REFERENCE RIGHT-HAND NOOP
   276
   277					DEFINE	ERROR.	($FLGS,$PFX,$MSG)
   278					<CALL	EHNDLR
   279					XWD NOOP+<$FLGS>,[''$PFX'',,[ASCIZ @$MSG@ ] ]
   280					>
   281
   282					;WARN.	FLGS,PFX,MSG
   283
   284					DEFINE	WARN.	($FLGS,$PFX,$MSG)
   285					<ERROR.	EF$WRN!$FLGS,$PFX,$MSG>
   286
   287					;INFO.	FLGS,PFX,MSG
   288
   289					DEFINE	INFO.	($FLGS,$PFX,$MSG)
   290					<ERROR.	EF$INF!$FLGS,$PFX,$MSG>

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 11
DUMPR	MAC	21-FEB-77 17:03		ERROR MACRO DEFINITIONS

   291					;SAVE$ SAVES DATA ON THE STACK
   292
   293					DEFINE	SAVE$	(X)
   294					<XLIST
   295					IRP X,<PUSH P,X>
   296					LIST>
   297
   298					;RESTR$ RESTORES DATA FROM THE STACK
   299
   300					DEFINE	RESTR$	(X)
   301					<XLIST
   302					IRP X,<POP P,X>
   303					LIST>
   304
   305					;MACRO TO ALLOCATE STORAGE IN THE LOW SEGMENT DATA BASE
   306
   307					DEFINE	U ($NAME,$WORDS<1>)
   308					<$NAME:	BLOCK	$WORDS>
   309
   310					;STRNG$ (STRING) SENDS STRING TO OUTPUT THROUGH .TSTRG
   311
   312					DEFINE STRNG$ (S)
   313					<MOVEI	T1,[ASCIZ \S\]
   314					CALL	.TSTRG##>
   315
   316					;ASCIZ$ (STRING) CREATES XLISTED ASCIZ STRING TO KEEP LISTING PRETTY
   317
   318					DEFINE ASCIZ$ (S)
   319					<XLIST
   320					ASCIZ \S\
   321					LIST>

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 12
DUMPR	MAC	21-FEB-77 17:03		ERROR MACRO DEFINITIONS

   322					;HIGH$ SWITCHES TO HIGH SEGMENT IF FT$SEG==0
   323
   324					DEFINE HIGH$
   325					<IFE FT$SEG,<IFE CSEG$,<HILOC$==.
   326								CSEG$==-1
   327								RELOC	LOLOC$>>
   328					>
   329
   330					;LOW$ SWITCHES TO LOW SEGMENT IF FT$SEG==0
   331
   332					DEFINE LOW$
   333					<IFE FT$SEG,<IFN CSEG$,<LOLOC$==.
   334								CSEG$==0
   335								RELOC	HILOC$>>
   336					>
   337
   338					;RELOC$ SETS UP LOLOC$ AND CSEG$ INITIALLY
   339
   340					DEFINE RELOC$
   341					<IFE FT$SEG,<LOLOC$==400000	;;POINT LOLOC$ AT HIGH SEGMENT
   342						     CSEG$== 0>>	;START OUT IN THE LOW SEGMENT (CSEG$=0)
   343
   344					;LIT$ FORCES OUT LITERALS IN CURRENT SEGMENT
   345
   346					DEFINE LIT$
   347					<XLIST
   348					LIT
   349					LIST>

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 13
DUMPR	MAC	21-FEB-77 17:03		MAIN PROGRAM

   350					SUBTTL	MAIN PROGRAM
   351
   352			000000		RELOC$
   353
   354					;PROGRAM ENTRY POINT
   355
   356	000000'	634 01 0 00 000001 	DUMPR:	TDZA	T1,T1		;NOT CCL
   357	000001'	201 01 0 00 000001 		MOVEI	T1,1		;CCL
   358	000002'	202 01 0 00 004523'		MOVEM	T1,OFFSET	;SAVE FOR SCAN
   359					IFE FT$SEG,<	;NEED TO SAVE THIS STUFF
   360	000003'	332 00 0 00 004516'		SKIPE	SAVRUN		;SAVED UUO ARGS?
   361	000004'	254 00 0 00 000012'		 JRST	RUNSVD		;YES
   362	000005'	202 00 0 00 004520'		MOVEM	.SGNAM,SGNAM
   363	000006'	202 07 0 00 004522'		MOVEM	.SGPPN,SGPPN
   364	000007'	202 11 0 00 004517'		MOVEM	.SGDEV,SGDEV
   365	000010'	202 17 0 00 004521'		MOVEM	.SGLOW,SGLOW
   366	000011'	476 00 0 00 004516'		SETOM	SAVRUN
   367
   368	000012'				RUNSVD:>;END IFE FT$SEG
   369	000012'	402 00 0 00 000000 	RESTRT:	STORE	17,0,16,0	;CLEAR ACS
   370	000013'	200 17 0 00 000075'
   371	000014'	251 17 0 00 000016 
   372	000015'	402 00 0 00 004524'		STORE	17,FW$ZER,LW$ZER,0 ;AND STORAGE
   373	000016'	200 17 0 00 000076'
   374	000017'	251 17 0 00 005475'
   375	000020'	047 00 0 00 000000 		RESET			;STOP ALL I/O
   376	000021'	334 17 0 00 000022'		SKIPA	P,.+1		;SETUP PDP
   377	000022'	777470	004523'		INIPDP:	IOWD	LN$PDL,PDLIST
   378	000023'	260 17 0 00 000000*		CALL	.RECOR##	;RESET CORE
   379	000024'	260 17 0 00 000110'	IFE FT$SEG,<CALL UPSCN>		;MAKE SURE HISEG IS THERE
   380	000025'	200 01 0 00 400011'		MOVE	T1,ISCNBL	;BLOCK FOR .ISCAN
   381	000026'	260 17 0 00 000000*		CALL	.ISCAN##	;INIT THE SCANNER
   382	000027'	202 01 0 00 004514'		MOVEM	T1,ISCNVL	;SAVE FOR LATER
   383	000030'	336 00 0 00 004523'		SKIPN	OFFSET		;CCL ENTRY?
   384	000031'	332 00 0 00 004515'		SKIPE	TLDVER		;TOLD WHO I AM?
   385	000032'	254 00 0 00 000041'		 JRST	FILD.0		;YES
   386	000033'	201 01 0 00 000077'		STRNG$	<DUMPR %>
   387	000034'	260 17 0 00 000000*
   388	000035'	200 01 0 00 000137 		MOVE	T1,.JBVER
   389	000036'	260 17 0 00 000000*		CALL	.TVERW##
   390	000037'	260 17 0 00 000000*		CALL	.TCRLF##
   391	000040'	476 00 0 00 004515'		SETOM	TLDVER

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 14
DUMPR	MAC	21-FEB-77 17:03		MAIN PROGRAM

   392	000041'	260 17 0 00 400000'	FILD.0:	CALL	SCNCMD		;SCAN A COMMAND
   393	000042'	622 00 0 00 400000 		TRZE	F,FL$POS	;WAS /POSITION GIVEN?
   394	000043'	254 00 0 00 400555'		 JRST	MTAPOS		;YES--GO DO IT
   395	000044'	474 05 0 00 000000 		SETO	P1,		;FLAG OUTPUT NOT OPEN YET
   396	000045'	260 17 0 00 000133'	FILD.2:	CALL	OPNINP		;OPEN INPUT FILE
   397	000046'	254 00 0 00 000070'	IFN FT$WLD,<JRST FILD.9>	;WILD SAYS ALL DONE
   398	000047'	356 00 0 00 000005 		AOSN	P1		;ONLY OPEN OUTPUT FILE FIRST TIME THRU
   399	000050'	260 17 0 00 000234'		CALL	OPNOUT		;AND OUTPUT FILE
   400	000051'	260 17 0 00 000101'	IFE FT$SEG,<CALL DWNSCN>	;RELEASE HISEG WHILE RUNNING
   401	000052'	260 17 0 00 000347'		CALL	PROCMD		;PROCESS THE COMMAND
   402	000053'	260 17 0 00 000110'	IFE FT$SEG,<CALL UPSCN>		;REGET HISEG IF WE LOST IT
   403	000054'	260 17 0 00 000205'		CALL	INPCLS		;CLOSE INPUT FILE
   404					IFN FT$WLD,<
   405	000055'	337 00 0 00 005257'		SKIPG	LKWLFL		;ARE WILD FILES POSSIBLE (DTA/DSK)?
   406	000056'	336 00 0 00 000000*		 SKIPN	.WLDFL##	;YES--AND ARE THERE ANY WILD FILES?
   407	000057'	254 00 0 00 000070'		   JRST	FILD.9		;NO--GO FINISH UP
   408	000060'	200 01 0 00 005263'		MOVE	T1,ODVNAM	;YES--GET OUTPUT DEVICE NAME
   409	000061'	047 01 0 00 000053 		DEVTYP	T1,		;SEE IF IT IS SPOOLED
   410	000062'	254 00 0 00 000045'		 JRST	FILD.2		;ASSUME NOT
   411	000063'	607 01 0 00 000020 		TXNN	T1,TY.SPL	;IS IT SPOOLED?
   412	000064'	254 00 0 00 000045'		 JRST	FILD.2		;NO--JUST GO AHEAD
   413	000065'	260 17 0 00 000224'		CALL	OUTCLS		;YES--MAKE A NEW FILE
   414	000066'	260 17 0 00 000234'		CALL	OPNOUT		; ...
   415	000067'	254 00 0 00 000045'		JRST	FILD.2		;GO TO IT
   416					>;END IFN FT$WLD
   417	000070'	260 17 0 00 000224'	FILD.9:	CALL	OUTCLS		;CLOSE OUTPUT FILE
   418	000071'	260 17 0 00 000000*	FILD.X:	CALL	.RUNCM##	;HANDLE /RUN IF SPECIFIED
   419	000072'	332 00 0 00 004523'		SKIPE	OFFSET		;EXIT 1, IF CCL ENTRY
   420	000073'	260 17 0 00 000000*		 CALL	.MONRT##	;
   421	000074'	254 00 0 00 000012'		JRST	RESTRT		;AND RESTART
   422					IFE FT$SEG,<LIT$>		;FORCE OUT LOW SEGMENT LITERALS
   423

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 15
DUMPR	MAC	21-FEB-77 17:03		SCAN A COMMAND FROM THE USER

   424					SUBTTL	SCAN A COMMAND FROM THE USER
   425
   426	400000'				HIGH$			;TO HIGH SEGMENT IF FT$SEG=0
   427
   428	400000'	200 01 0 00 400017'	SCNCMD:	MOVE	T1,TSCNBL	;FOR .TSCAN
   429	400001'	260 17 0 00 000000*		CALL	.TSCAN##	;SCAN THE COMMAND
   430					IFN FT$OPT,<
   431	400002'	200 01 0 00 400031'		MOVE	T1,OSCNBL	;GET OSCAN ARG BLOCK
   432	400003'	260 17 0 00 000000*		CALL	.OSCAN##	;SCAN SWITCH.INI FOR SOME SWITCHES
   433					>;END IFN FT$OPT
   434
   435					IFN FT$WLD,<
   436	400004'	201 01 0 00 005340'		MOVEI	T1,INPSPC	;SETUP PTR FOR WILD
   437	400005'	202 01 0 00 005255'		MOVEM	T1,WLDFIR	;...
   438					>;END IFN FT$WLD
   439	400006'	606 00 0 00 400000 		TRNN	F,FL$POS	;/POSITION?
   440	400007'	254 00 0 00 400051'		PJRST	CHKCMD		;CHECK COMMAND FOR GOODNESS
   441	400010'	263 17 0 00 000000 		 POPJ	P,		;YES--WILL CHECK GOODNESS LATER
   442
   443					;ARG BLOCK FOR .ISCAN
   444
   445	400011'	000005	400012'		ISCNBL:	XWD 5,	.+1
   446	400012'	777777	400043'			IOWD	N$CMDS,CMDLST
   447	400013'	004523'	445560			XWD	OFFSET,MY$PFX
   448	400014'	400045'	000000			XWD	TTINPT,0	;MY INPUT SO WE CAN REMEMBER CMD
   449	400015'	000000	000000			EXP	0
   450	400016'	400037'	000000			XWD	DOPRMP,0
   451
   452					;ARG BLOCK FOR .TSCAN
   453
   454	400017'	000011	400020'		TSCNBL:	XWD 11,	.+1
   455	400020'	777750	400231'			IOWD	SWTL,SWTN
   456	400021'	400342'	400312'			XWD	SWTD,SWTM
   457	400022'	000000	400262'			XWD	0,SWTP
   458	400023'	777777	777777			EXP	-1
   459	400024'	400444'	400462'			XWD	CLRANS,CLRFIL
   460	400025'	400422'	400434'			XWD	AIN,AOUT
   461	400026'	000000	000000			EXP	0
   462	400027'	000000	000000			EXP	0
   463	400030'	000000	400466'			EXP	STOSWT
   464
   465					IFN FT$OPT,<
   466	400031'	000004	400032'		OSCNBL:	XWD 4,	.+1
   467	400032'	777772	400371'			IOWD	OPSWL,OPSWN
   468	400033'	400414'	400406'			XWD	OPSWD,OPSWM
   469	400034'	000000	400400'			EXP	OPSWP
   470	400035'	777777	777777			EXP	-1
   471	400036'	000000	000000			EXP	0
   472					>;END IFN FT$OPT

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 16
DUMPR	MAC	21-FEB-77 17:03		SCAN A COMMAND FROM THE USER

   473					;SCAN CALLS HERE TO PROMPT WITH T1 NEGATIVE IF CONTINUATION PROMPT
   474
   475	400037'	331 00 0 00 000001 	DOPRMP:	SKIPL	T1		;FIRST OR CONT?
   476	400040'	334 01 0 00 400043'		SKIPA	T1,PRMPTM	;FIRST
   477	400041'	205 01 0 00 030000 		MOVSI	T1,'#  '	;CONTINUATION
   478	400042'	254 00 0 00 000000*		PJRST	.TSIXN##	;TYPE IT
   479
   480	400043'	445560	360000		PRMPTM:	XWD	MY$PFX,'>  '	;FIRST MSG
   481
   482	400044'	446555	606200		CMDLST:	EXP	MY$NAM		;MY NAME
   483			000001			N$CMDS==.-CMDLST
   484
   485					;SCAN CALLS HERE TO GET COMMAND CHARACTERS FROM TTY
   486
   487	400045'	051 04 0 00 000010 	TTINPT:	INCHWL	C		;GET A CHARACTER
   488	400046'	371 00 0 00 005254'		SOSL	SCMDCT		;ROOM TO STORE IT?
   489	400047'	136 10 0 00 005253'		IDPB	C,SCMDBP	;YES
   490	400050'	263 17 0 00 000000 		POPJ	P,		;RETURN WITH CHARACTER IN C

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 17
DUMPR	MAC	21-FEB-77 17:03		CHECK COMMAND FOR GOODNESS

   491					SUBTTL	CHECK COMMAND FOR GOODNESS
   492
   493	400051'	260 17 0 00 400164'	CHKCMD:	CALL	OUTDFL		;DEFAULT OUTPUT SIDE
   494	400052'	260 17 0 00 400117'		CALL	INPDFL		;AND INPUT SIDE
   495	400053'	337 01 0 00 005473'		SKIPG	T1,USERDX	;/RADIX SPECIFIED
   496	400054'	334 01 0 00 400703'		SKIPA	T1,[EXP ^D8]	;NO--USE BASE 8
   497	400055'	661 00 0 00 000004 		TLO	F,FL$RDX	;REMEMBER /RADIX WAS SEEN FOR "OCTAL" DUMPING
   498	400056'	202 01 0 00 005473'		MOVEM	T1,USERDX	;...
   499	400057'	607 00 0 00 000004 		TLNN	F,FL$RDX	;SPECIFY /RADIX/
   500	400060'	254 00 0 00 400070'		 JRST	CHKC.0		;NO
   501	400061'	301 01 0 00 000002 		CAIL	T1,2		;YES--CHECK LEGALITY
   502	400062'	303 01 0 00 000020 		CAILE	T1,^D16		;...
   503	400063'	260 17 0 00 004407'		 ERROR.	EF$ERR!EF$DEC,IAR,<ILLEGAL ARG FOR /RADIX - >
   504	400064'	300001	400712'
   505	400065'	242 01 0 00 777776 		LSH	T1,-2		;DIVIDE BY 4
   506	400066'	200 01 0 01 400112'		MOVE	T1,WRDRDX(T1)	;GET A WIDTH FOR THE WORD
   507	400067'	202 01 0 00 005474'		MOVEM	T1,USRWID	;SAVE FOR DUMPING
   508	400070'	337 01 0 00 005467'	CHKC.0:	SKIPG	T1,LINRDX	;WAS A LINE # RADIX SPECIFIED?
   509	400071'	201 01 0 00 000001 		 MOVEI	T1,LRXDEC	;NO--DEFAULT
   510	400072'	202 01 0 00 005467'		MOVEM	T1,LINRDX	;SET IT IN
   511	400073'	200 01 0 00 005262'		MOVE	T1,IDVNAM	;GET INPUT REAL NAME
   512	400074'	603 12 0 00 000020 		TLNE	DC,(DV.MTA)	;MTA?
   513	400075'	312 01 0 00 005263'		CAME	T1,ODVNAM	;SAME DEVICE?
   514	400076'	254 00 0 00 400101'		 JRST	CHKC.1		;NO--ONWARD
   515	400077'	260 17 0 00 004407'		 ERROR.	EF$SIX!EF$FTL,CUS,<CAN'T USE SAME MTA FOR INPUT AND OUTPUT - >
   516	400100'	300403	400724'
   517	400101'				CHKC.1:
   518					IFN FT$PHX,<
   519	400101'	641 00 0 00 600000 		TLC	F,FL$FOR!FL$PHY	;CAN'T HAVE /IREAD AND /FORTRAN
   520	400102'	647 00 0 00 600000 		TLCN	F,FL$FOR!FL$PHY	;SO MAKE SURE NOW
   521	400103'	260 17 0 00 004407'		 ERROR.	EF$FTL,MSE,<MODE SPECIFICATION ERROR - /IREAD + /FORTRAN>
   522	400104'	300400	400736'
   523					>;END IFN FT$PHX
   524	400105'	641 00 0 00 140000 		TLC	F,FL$SUM!FL$TOT	;CAN'T HAVE /SUMMARY AND /TOTALS
   525	400106'	647 00 0 00 140000 		TLCN	F,FL$SUM!FL$TOT
   526	400107'	260 17 0 00 004407'		 ERROR.	EF$FTL,SWE,<SWITCH ERROR - /SUMMARY + /TOTALS>
   527	400110'	300400	400746'
   528	400111'	263 17 0 00 000000 		POPJ	P,		;COMMAND IS SANCTIFIED
   529
   530	400112'	000000	000045		WRDRDX:	EXP	^D37		;BASE 2
   531	400113'	000000	000023			EXP	^D19		;BASE 4
   532	400114'	000000	000015			EXP	^D13		;BASE 8
   533	400115'	000000	000015			EXP	^D13		;DUMMY
   534	400116'	000000	000012			EXP	^D10		;BASE 16

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 18
DUMPR	MAC	21-FEB-77 17:03		CHECK COMMAND FOR GOODNESS

   535
   536					;DEFAULT INPUT SPECS
   537
   538	400117'	336 01 0 00 005340'	INPDFL:	SKIPN	T1,INPSPC+.FXDEV;DEFAULT DEVICE
   539	400120'	205 01 0 00 446353 		 MOVSI	T1,'DSK'	;IS DSK
   540	400121'	202 01 0 00 005340'		MOVEM	T1,INPSPC+.FXDEV
   541	400122'	047 01 0 00 000064 		DEVNAM	T1,		;SEE WHO IT IS
   542	400123'	254 00 0 00 400161'		 JRST	ILLIDV
   543	400124'	202 01 0 00 005262'		MOVEM	T1,IDVNAM
   544	400125'	047 01 0 00 000004 		DEVCHR	T1,		;GET BITS
   545	400126'	607 01 0 00 000024 		TLNN	T1,($OKDVI)	;CAN I USE IT?
   546	400127'	254 00 0 00 400161'		 JRST	ILLIDV		;NO
   547	400130'	500 12 0 00 000001 		HLL	DC,T1		;YES--SAVE DEVCHR BITS
   548	400131'	603 12 0 00 000020 		TLNE	DC,(DV.MTA)	;IS DEVICE A MAGTAPE?
   549	400132'	254 00 0 00 400151'		 JRST	INPD.1		;YES--CLEAR FILENAME AND EXTENSION
   550	400133'	623 00 0 00 004000 		TLZE	F,FL$IND	;NO--CLEAR /INDUSTRY IF GIVEN
   551	400134'	260 17 0 00 004407'		WARN.	0,IND,</INDUSTRY NO-OP ON NON-MTA DEVICE>
   552	400135'	300200	400756'
   553	400136'	200 01 0 00 400757'		MOVE	T1,[SIXBIT /DUMPIT/] ;DEFAULT NAME
   554	400137'	474 02 0 00 000000 		SETO	T2,
   555	400140'	336 00 0 00 005341'		SKIPN	INPSPC+.FXNAM
   556	400141'	202 02 0 00 005342'		 MOVEM	T2,INPSPC+.FXNMM
   557	400142'	336 00 0 00 005341'		SKIPN	INPSPC+.FXNAM
   558	400143'	202 01 0 00 005341'		 MOVEM	T1,INPSPC+.FXNAM
   559	400144'	525 01 0 00 444164 		HRLOI	T1,'DAT'	;AND EXTENSION
   560	400145'	205 02 0 00 200000 		MOVX	T2,FX.NUL	;GET NULL EXTENSION BIT
   561	400146'	612 02 0 00 005344'		TDNE	T2,INPSPC+.FXMOD;WAS ANYTHING SET FOR EXTENSION?
   562	400147'	202 01 0 00 005343'		 MOVEM	T1,INPSPC+.FXEXT;NO--USE A DEFAULT
   563	400150'	263 17 0 00 000000 		POPJ	P,
   564
   565					;HERE IF DEVICE SEEMS TO BE A MAGTAPE
   566
   567	400151'	603 12 0 00 000010 	INPD.1:	TLNE	DC,(DV.TTY)	;SEE IF IT IS ALSO A TTY (IE NUL:)
   568	400152'	621 12 0 00 000020 		TLZ	DC,(DV.MTA)	;YES--MAKE SURE WE DON'T TO MAGTAPE OPS
   569	400153'	402 00 0 00 005341'		SETZM	INPSPC+.FXNAM	;CLEAR NAME
   570	400154'	402 00 0 00 005342'		SETZM	INPSPC+.FXNMM	;AND MASK
   571	400155'	402 00 0 00 005343'		SETZM	INPSPC+.FXEXT	;AND EXTENSION
   572	400156'	402 00 0 00 005346'		SETZM	INPSPC+.FXDIR	;AND DIRECTORY
   573	400157'	263 17 0 00 000000 		POPJ	P,		;DONE
   574
   575	400160'	334 01 0 00 400760'	ILLODV:	SKIPA	T1,[EXP OUTSPC]	;ILLEGAL OUTPUT DEVICE
   576	400161'	201 01 0 00 005340'	ILLIDV:	MOVEI	T1,INPSPC	;ILLEGAL INPUT DEVICE
   577	400162'	260 17 0 00 004407'		ERROR.	EF$FTL!EF$FIL,IDV,<ILLEGAL DEVICE >
   578	400163'	300406	400765'

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 19
DUMPR	MAC	21-FEB-77 17:03		CHECK COMMAND FOR GOODNESS

   579					;HERE TO DEFAULT OUTPUT SPECIFICATION
   580
   581	400164'	205 02 0 00 400000 	OUTDFL:	MOVX	T2,FX.NDV	;NULL DEVICE FLAG
   582	400165'	616 02 0 00 005376'		TDNN	T2,OUTSPC+.FXMOD;WAS IT REALLY A NULL DEVICE?
   583	400166'	336 01 0 00 005372'		 SKIPN	T1,OUTSPC+.FXDEV;NO--PICK UP DEVICE IF GIVEN
   584	400167'	205 01 0 00 546064 		 MOVSI	T1,'LPT'	;YES--USE DEFAULT
   585	400170'	202 01 0 00 005372'		MOVEM	T1,OUTSPC+.FXDEV
   586	400171'	047 01 0 00 000064 		DEVNAM	T1,		;SEE WHO IT REALLY IS
   587	400172'	254 00 0 00 400160'		 JRST	ILLODV		;NOT ONE I KNOW
   588	400173'	202 01 0 00 005263'		MOVEM	T1,ODVNAM	;SAVE REAL NAME
   589	400174'	047 01 0 00 000004 		DEVCHR	T1,		;SEE WHAT SORT OF DEVICE IT IS
   590	400175'	607 01 0 00 040034 		TLNN	T1,($OKDVO)	;A DEVICE I LIKE?
   591	400176'	254 00 0 00 400160'		 JRST	ILLODV		;NO
   592	400177'	544 12 0 00 000001 		HLR	DC,T1		;SAVE DEVICE CHARACTERISTICS
   593	400200'	200 01 0 00 400766'		MOVE	T1,[SIXBIT /DUMPED/] ;DEFAULT FILENAME
   594	400201'	474 02 0 00 000000 		SETO	T2,		;AND MASK
   595	400202'	336 00 0 00 005373'		SKIPN	OUTSPC+.FXNAM	;NAME GIVEN?
   596	400203'	202 02 0 00 005374'		 MOVEM	T2,OUTSPC+.FXNMM;NO--USE MY DEFAULT
   597	400204'	336 00 0 00 005373'		SKIPN	OUTSPC+.FXNAM
   598	400205'	202 01 0 00 005373'		 MOVEM	T1,OUTSPC+.FXNAM
   599	400206'	525 01 0 00 546064 		HRLOI	T1,'LPT'	;FINALLY THE EXTENSION
   600	400207'	336 00 0 00 005375'		SKIPN	OUTSPC+.FXEXT
   601	400210'	202 01 0 00 005375'		MOVEM	T1,OUTSPC+.FXEXT
   602	400211'	263 17 0 00 000000 		POPJ	P,

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 20
DUMPR	MAC	21-FEB-77 17:03		SWITCH TABLE

   603					SUBTTL	SWITCH TABLE
   604
   605					DEFINE	SWTCHS,<
   606					SP *BACKSP,FN$BSP,.SWDEC##,MTN,FS$XTR!FS.VRQ
   607					SP BLOCK,S.BLKF,.SWDEC##,BKF,FS.NUE
   608					SP BUFSIZ,BUFSIZ,.SWDEC##,BFZ,FS.NUE
   609					SP *DUMP,FN$DMP,.SWDEC##,MTN,FS$XTR!FS$INP!FS.VRQ
   610					SL *ERROR,FLERR,ERR,ERRCON,FS.NUE
   611					SS *FORTRA,<POINTR(F,$FLFOR)>,1,FS.NUE
   612					SS IFTYP,<POINTR(F,$FLITY)>,1,FS.NUE
   613					SS INDUST,<POINTR(F,$FLIND)>,1,FS$INP!FS.NUE
   614					IFN FT$PHX,<SS *IREAD,<POINTR(F,$FLPHY)>,1,FS$INP!FS.NUE>
   615					SL LINRDX,LINRDX,LRX,LRXDEC,FS.NUE
   616					SL *MODE,FN$MOD,MOD,MODOCT,FS$XTR!FS$OUT
   617					SP MTBUF,NMTBUF,.SWDEC##,MBF,FS.NUE
   618					SS *NORETR,FLNTRY,1,FS$INP!FS.NUE
   619					SS OMIT,<POINTR(F,$FLOMI)>,1,FS$OUT!FS.NUE
   620					SP *ONLY,FN$ONL,.SWDEC##,ONL,FS$XTR!FS$INP
   621					SS *POSIT,<POINTR(F,FL$POS)>,1,FS.NUE
   622					SP RADIX,USERDX,.SWDEC##,RDX,FS$OUT!FS.NUE
   623					SS *REWIND,FN$REW,FN$REW,FS$NVL
   624					SS RIB,FN$RIB,FN$RIB,FS$NVL
   625					SP *SKIP,FN$SKP,.SWDEC##,MTN,FS$XTR!FS.VRQ
   626					SS SUMMAR,<POINTR(F,$FLSUM)>,1,FS$OUT!FS.NUE
   627					SP TITLE,<POINT ^D65-LN$TTL,TITLEB>,.SWASQ##,,FS.NUE
   628					SS *TOTALS,<POINTR(F,$FLTOT)>,1,FS$OUT!FS.NUE
   629					SP *WIDTH,FLWIDT,.SWDEC##,WID,FS$OUT!FS.NUE
   630					>
   631
   632
   633					DM (BFZ,^D4096,^D2048,^D1024)
   634					DM (BKF,177777,^D80,^D80)
   635					DM (MBF,^D10,^D3,^D3)
   636					DM (MTN,177777,177777,177777)
   637					DM (ONL,177777,0,0)
   638					DM (RDX,^D16,^D8,^D8)
   639					DM (WID,^D132,^D80,^D80)
   640	400212'	435756	645156		KEYS (ERR,<CONTIN,IGNORE,QUERY>)
   641	400213'	514756	576245
   642	400214'	616545	627100
   643	400215'	416343	515100		KEYS (MOD,<ASCII,BYTE,EBCDIC,FLOAT,HALF,HEX,INTEGE,OCTAL,SIXBIT,SYMBOL>)
   644	400216'	427164	450000
   645	400217'	454243	445143
   646	400220'	465457	416400
   647	400221'	504154	460000
   648	400222'	504570	000000
   649	400223'	515664	454745
   650	400224'	574364	415400
   651	400225'	635170	425164
   652	400226'	637155	425754
   653	400227'	444543	515541		KEYS (LRX,<DECIMA,HEX,OCTAL>)
   654	400230'	504570	000000
   655	400231'	574364	415400
   656
   657					;NOW EXPAND THE SWITCH TABLE

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 20-1
DUMPR	MAC	21-FEB-77 17:03		SWITCH TABLE

   658
   659					DOSCAN (SWT)
   660	400232'	124241	435363			EXP  SIXBIT  /*BACKSP/
   661	400233'	425457	435300			EXP  SIXBIT  /BLOCK/
   662	400234'	426546	635172			EXP  SIXBIT  /BUFSIZ/
   663	400235'	124465	556000			EXP  SIXBIT  /*DUMP/
   664	400236'	124562	625762			EXP  SIXBIT  /*ERROR/
   665	400237'	124657	626462			EXP  SIXBIT  /*FORTRA/
   666	400240'	514664	716000			EXP  SIXBIT  /IFTYP/
   667	400241'	515644	656364			EXP  SIXBIT  /INDUST/
   668	400242'	125162	454144			EXP  SIXBIT  /*IREAD/
   669	400243'	545156	624470			EXP  SIXBIT  /LINRDX/
   670	400244'	125557	444500			EXP  SIXBIT  /*MODE/
   671	400245'	556442	654600			EXP  SIXBIT  /MTBUF/
   672	400246'	125657	624564			EXP  SIXBIT  /*NORETR/
   673	400247'	575551	640000			EXP  SIXBIT  /OMIT/
   674	400250'	125756	547100			EXP  SIXBIT  /*ONLY/
   675	400251'	126057	635164			EXP  SIXBIT  /*POSIT/
   676	400252'	624144	517000			EXP  SIXBIT  /RADIX/
   677	400253'	126245	675156			EXP  SIXBIT  /*REWIND/
   678	400254'	625142	000000			EXP  SIXBIT  /RIB/
   679	400255'	126353	516000			EXP  SIXBIT  /*SKIP/
   680	400256'	636555	554162			EXP  SIXBIT  /SUMMAR/
   681	400257'	645164	544500			EXP  SIXBIT  /TITLE/
   682	400260'	126457	644154			EXP  SIXBIT  /*TOTALS/
   683	400261'	126751	446450			EXP  SIXBIT  /*WIDTH/
   684	400262'	000000	000004			EXP <FN$BSP>			;*BACKSP
   685	400263'	000000	005464'			EXP <S.BLKF>			;BLOCK
   686	400264'	000000	005465'			EXP <BUFSIZ>			;BUFSIZ
   687	400265'	000000	000003			EXP <FN$DMP>			;*DUMP
   688	400266'	000000	005466'			EXP <FLERR>			;*ERROR
   689	400267'	430100	000000		($FLFOR)^<^L<$FLFOR>+^L<-<<$FLFOR>_<^L<$FLFOR>>>-1>-1>^>^>			;*FORTRA
   690	400270'	360100	000000		($FLITY)^<^L<$FLITY>+^L<-<<$FLITY>_<^L<$FLITY>>>-1>-1>^>^>			;IFTYP
   691	400271'	350100	000000		($FLIND)^<^L<$FLIND>+^L<-<<$FLIND>_<^L<$FLIND>>>-1>-1>^>^>			;INDUST
   692	400272'	420100	000000		($FLPHY)^<^L<$FLPHY>+^L<-<<$FLPHY>_<^L<$FLPHY>>>-1>-1>^>^>			;*IREAD
   693	400273'	000000	005467'			EXP <LINRDX>			;LINRDX
   694	400274'	000000	000001			EXP <FN$MOD>			;*MODE
   695	400275'	000000	005470'			EXP <NMTBUF>			;MTBUF
   696	400276'	000000	005471'			EXP <FLNTRY>			;*NORETR
   697	400277'	370100	000000		($FLOMI)^<^L<$FLOMI>+^L<-<<$FLOMI>_<^L<$FLOMI>>>-1>-1>^>^>			;OMIT
   698	400300'	000000	000002			EXP <FN$ONL>			;*ONLY
   699	400301'	210100	000000		(FL$POS)^<^L<FL$POS>+^L<-<<FL$POS>_<^L<FL$POS>>>-1>-1>^>^>			;*POSIT
   700	400302'	000000	005473'			EXP <USERDX>			;RADIX
   701	400303'	000000	000006			EXP <FN$REW>			;*REWIND
   702	400304'	000000	000007			EXP <FN$RIB>			;RIB
   703	400305'	000000	000005			EXP <FN$SKP>			;*SKIP
   704	400306'	410100	000000		($FLSUM)^<^L<$FLSUM>+^L<-<<$FLSUM>_<^L<$FLSUM>>>-1>-1>^>^>			;SUMMAR
   705	400307'	444300	005425'			EXP <POINT ^D65-LN$TTL,TITLEB>			;TITLE
   706	400310'	400100	000000		($FLTOT)^<^L<$FLTOT>+^L<-<<$FLTOT>_<^L<$FLTOT>>>-1>-1>^>^>			;*TOTALS
   707	400311'	000000	005475'			EXP <FLWIDT>			;*WIDTH
   708	400312'	177777	000000*			XWD	MX.MTN,.SWDEC##	;*BACKSP
   709	400313'	177777	400312*			XWD	MX.BKF,.SWDEC##	;BLOCK
   710	400314'	010000	400313*			XWD	MX.BFZ,.SWDEC##	;BUFSIZ
   711	400315'	177777	400314*			XWD	MX.MTN,.SWDEC##	;*DUMP
   712	400316'	777775	400211'			XWD	-ERR.L,ERR.T-1	;*ERROR

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 20-2
DUMPR	MAC	21-FEB-77 17:03		SWITCH TABLE

   713	400317'	000000	000000			XWD	0,0	;*FORTRA
   714	400320'	000000	000000			XWD	0,0	;IFTYP
   715	400321'	000000	000000			XWD	0,0	;INDUST
   716	400322'	000000	000000			XWD	0,0	;*IREAD
   717	400323'	777775	400226'			XWD	-LRX.L,LRX.T-1	;LINRDX
   718	400324'	777766	400214'			XWD	-MOD.L,MOD.T-1	;*MODE
   719	400325'	000012	400315*			XWD	MX.MBF,.SWDEC##	;MTBUF
   720	400326'	000000	000000			XWD	0,0	;*NORETR
   721	400327'	000000	000000			XWD	0,0	;OMIT
   722	400330'	177777	400325*			XWD	MX.ONL,.SWDEC##	;*ONLY
   723	400331'	000000	000000			XWD	0,0	;*POSIT
   724	400332'	000020	400330*			XWD	MX.RDX,.SWDEC##	;RADIX
   725	400333'	000000	000000			XWD	0,0	;*REWIND
   726	400334'	000000	000000			XWD	0,0	;RIB
   727	400335'	177777	400332*			XWD	MX.MTN,.SWDEC##	;*SKIP
   728	400336'	000000	000000			XWD	0,0	;SUMMAR
   729	400337'	000000	000000*			XWD	MX.,.SWASQ##	;TITLE
   730	400340'	000000	000000			XWD	0,0	;*TOTALS
   731	400341'	000204	400335*			XWD	MX.WID,.SWDEC##	;*WIDTH
   732	400342'	040001	177777			XWD	..TEMR,PD.MTN	;*BACKSP
   733	400343'	100000	000120			XWD	..TEMR,PD.BKF	;BLOCK
   734	400344'	100000	002000			XWD	..TEMR,PD.BFZ	;BUFSIZ
   735	400345'	040005	177777			XWD	..TEMR,PD.MTN	;*DUMP
   736	400346'	100000	000001			XWD	..TEMR,ERRCON	;*ERROR
   737	400347'	100000	000001			XWD	..TEMR,1	;*FORTRA
   738	400350'	100000	000001			XWD	..TEMR,1	;IFTYP
   739	400351'	100004	000001			XWD	..TEMR,1	;INDUST
   740	400352'	100004	000001			XWD	..TEMR,1	;*IREAD
   741	400353'	100000	000001			XWD	..TEMR,LRXDEC	;LINRDX
   742	400354'	000011	000010			XWD	..TEMR,MODOCT	;*MODE
   743	400355'	100000	000003			XWD	..TEMR,PD.MBF	;MTBUF
   744	400356'	100004	000001			XWD	..TEMR,1	;*NORETR
   745	400357'	100010	000001			XWD	..TEMR,1	;OMIT
   746	400360'	000005	000000			XWD	..TEMR,PD.ONL	;*ONLY
   747	400361'	100000	000001			XWD	..TEMR,1	;*POSIT
   748	400362'	100010	000010			XWD	..TEMR,PD.RDX	;RADIX
   749	400363'	000002	000006			XWD	..TEMR,FN$REW	;*REWIND
   750	400364'	000002	000007			XWD	..TEMR,FN$RIB	;RIB
   751	400365'	040001	177777			XWD	..TEMR,PD.MTN	;*SKIP
   752	400366'	100010	000001			XWD	..TEMR,1	;SUMMAR
   753	400367'	100000	000000			XWD	..TEMR,PD.	;TITLE
   754	400370'	100010	000001			XWD	..TEMR,1	;*TOTALS
   755	400371'	100010	000120			XWD	..TEMR,PD.WID	;*WIDTH
   756

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 21
DUMPR	MAC	21-FEB-77 17:03		SWITCH TABLE FOR OPTION SCAN

   757					SUBTTL	SWITCH TABLE FOR OPTION SCAN
   758
   759					IFN FT$OPT,<
   760
   761					DEFINE SWTCHS,<
   762					SP BUFSIZ,BUFSIZ,.SWDEC##,BFZ,FS.NUE
   763					SL ERROR,FLERR,ERR,ERRCON,FS.NUE
   764					SS IFTYP,<POINTR(F,$FLITY)>,1,FS.NUE
   765					SL LINRDX,LINRDX,LRX,LRXDEC,FS.NUE
   766					SP MTBUF,NMTBUF,.SWDEC##,MBF,FS.NUE
   767					SP WIDTH,FLWIDT,.SWDEC##,WID,FS.NUE
   768					>
   769
   770					DOSCAN (OPSW)
   771	400372'	426546	635172			EXP  SIXBIT  /BUFSIZ/
   772	400373'	456262	576200			EXP  SIXBIT  /ERROR/
   773	400374'	514664	716000			EXP  SIXBIT  /IFTYP/
   774	400375'	545156	624470			EXP  SIXBIT  /LINRDX/
   775	400376'	556442	654600			EXP  SIXBIT  /MTBUF/
   776	400377'	675144	645000			EXP  SIXBIT  /WIDTH/
   777	400400'	000000	005465'			EXP <BUFSIZ>			;BUFSIZ
   778	400401'	000000	005466'			EXP <FLERR>			;ERROR
   779	400402'	360100	000000		($FLITY)^<^L<$FLITY>+^L<-<<$FLITY>_<^L<$FLITY>>>-1>-1>^>^>			;IFTYP
   780	400403'	000000	005467'			EXP <LINRDX>			;LINRDX
   781	400404'	000000	005470'			EXP <NMTBUF>			;MTBUF
   782	400405'	000000	005475'			EXP <FLWIDT>			;WIDTH
   783	400406'	010000	400341*			XWD	MX.BFZ,.SWDEC##	;BUFSIZ
   784	400407'	777775	400211'			XWD	-ERR.L,ERR.T-1	;ERROR
   785	400410'	000000	000000			XWD	0,0	;IFTYP
   786	400411'	777775	400226'			XWD	-LRX.L,LRX.T-1	;LINRDX
   787	400412'	000012	400406*			XWD	MX.MBF,.SWDEC##	;MTBUF
   788	400413'	000204	400412*			XWD	MX.WID,.SWDEC##	;WIDTH
   789	400414'	100000	002000			XWD	..TEMR,PD.BFZ	;BUFSIZ
   790	400415'	100000	000001			XWD	..TEMR,ERRCON	;ERROR
   791	400416'	100000	000001			XWD	..TEMR,1	;IFTYP
   792	400417'	100000	000001			XWD	..TEMR,LRXDEC	;LINRDX
   793	400420'	100000	000003			XWD	..TEMR,PD.MBF	;MTBUF
   794	400421'	100000	000120			XWD	..TEMR,PD.WID	;WIDTH
   795					>;END IFN FT$OPT

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 22
DUMPR	MAC	21-FEB-77 17:03		COMMAND SCANNING SUBROUTINES

   796					SUBTTL	COMMAND SCANNING SUBROUTINES
   797
   798	400422'				AIN:
   799	400422'	332 00 0 00 005340'		SKIPE	INPSPC+.FXDEV	;ALREADY BEEN HERE?
   800	400423'	260 17 0 00 004407'		 ERROR.	EF$FTL,MIS,<MULTIPLE INPUT SPECIFICATIONS ILLEGAL>
   801	400424'	300400	400777'
   802	400425'	336 00 0 00 005424'		SKIPN	DUMPFL		;SEEN A /DUMP?
   803	400426'	260 17 0 00 400463'		 CALL	HOLDMP		;NO--SET TO DUMP ENTIRE WHATEVER
   804	400427'	561 01 0 00 777776 		HRROI	T1,FN$END	;SEND END OF LIST
   805	400430'	260 17 0 00 400520'		CALL	PUTACT		;...
   806	400431'	201 01 0 00 005340'		MOVEI	T1,INPSPC	;GET ADDRESS
   807	400432'	201 02 0 00 000032 	ALEN:	MOVEI	T2,.FXLEN	;AND SIZE
   808	400433'	263 17 0 00 000000 		POPJ	P,
   809	400434'				AOUT:
   810	400434'	332 00 0 00 005372'		SKIPE	OUTSPC+.FXDEV	;BEEN HERE?
   811	400435'	260 17 0 00 004407'		 ERROR.	EF$FTL,MOF,<MULTIPLE OUTPUT FILES ILLEGAL>
   812	400436'	300400	401006'
   813	400437'	561 01 0 00 777777 		HRROI	T1,FN$INP	;SET END OF OUTPUT FUNCTIONS
   814	400440'	260 17 0 00 400520'		CALL	PUTACT		;SEND TO LIST
   815	400441'	661 00 0 00 002000 		TLO	F,FL$OUT	;SET OUTPUT SPEC ALLOCATED
   816	400442'	201 01 0 00 005372'		MOVEI	T1,OUTSPC
   817	400443'	254 00 0 00 400432'		PJRST	ALEN
   818
   819					;SCAN CALLS HERE TO CLEAR ALL ANSWERS
   820
   821	400444'	334 11 0 00 400445'	CLRANS:	SKIPA	A,.+1		;LOAD UP ACTION PTR
   822	400445'	777716	005170'		INIACT:	IOWD	LN$ACT,ACTLST
   823	400446'	621 00 0 00 776004 		TLZ	F,FL$SCN	;CLEAR SCAN FLAGS IN F
   824	400447'	402 00 0 00 005314'		STORE	T1,SCN$FZ,SCN$LZ,0 ;CLEAR WHAT SHOULD BE ZERO
   825	400450'	200 01 0 00 401007'
   826	400451'	251 01 0 00 005463'
   827	400452'	476 00 0 00 005464'		STORE	T1,SCN$FO,SCN$LO,-1 ;MINUS 1 WHAT SHOULD BE MINUS 1
   828	400453'	200 01 0 00 401010'
   829	400454'	251 01 0 00 005475'
   830	400455'	200 01 0 00 401011'		MOVE	T1,[POINT 7,CMDBFR] ;INIT PTR TO STORE COMMAND
   831	400456'	202 01 0 00 005253'		MOVEM	T1,SCMDBP	;...
   832	400457'	201 01 0 00 000143 		MOVEI	T1,MX$CMD	;AND COUNTER
   833	400460'	202 01 0 00 005254'		MOVEM	T1,SCMDCT	;...
   834	400461'	263 17 0 00 000000 		POPJ	P,
   835
   836					;SCAN CALLS HERE TO CLEAR FILE ANSWERS
   837
   838	400462'				CLRFIL:
   839	400462'	263 17 0 00 000000 		POPJ	P,
   840
   841					;CALL TO DUMP WHOLE TAPE
   842
   843	400463'	201 01 0 00 000003 	HOLDMP:	MOVEI	T1,FN$DMP	;FUNCTION
   844	400464'	525 02 0 00 777777 		HRLOI	T2,777777	;A RIDICULOUSLY LARGE FILE/RECORD COUNT
   845									;(USE NEG. # SO IF DSK INPUT WE KNOW
   846									; NO /DUMP AND THEN DUMP WHOLE FILE)
   847	400465'	254 00 0 00 400520'		PJRST	PUTACT		;STOW AWAY AND RETURN

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 23
DUMPR	MAC	21-FEB-77 17:03		STORE SWITCHES

   848					SUBTTL	STORE SWITCHES
   849
   850					;SCAN CALLS HERE TO STORE SOME SWITCHES
   851					;N=VALUE, T2=PTR (FN$XXX), T3=FLAGS (FS$XXX), P1=SWITCH INDEX
   852
   853	400466'	607 03 0 00 000010 	STOSWT:	TLNN	T3,(FS$OUT)	;OUTPUT ONLY?
   854	400467'	254 00 0 00 400472'		 JRST	STOSWA		;NO
   855	400470'	603 00 0 00 002000 		TLNE	F,FL$OUT	;YES--OUTPUT ALLOCATED?
   856	400471'	254 00 0 00 400547'		 JRST	E$$OSI		;NO--BOMB
   857	400472'	607 03 0 00 000004 	STOSWA:	TLNN	T3,(FS$INP)	;INPUT ONLY?
   858	400473'	254 00 0 00 400476'		 JRST	STOSWB		;NO
   859	400474'	607 00 0 00 002000 		TLNN	F,FL$OUT	;YES--OUTPUT ALLOCATED?
   860	400475'	254 00 0 00 400552'		 JRST	E$$ISO		;NO--BOMB
   861	400476'	603 03 0 00 000002 	STOSWB:	TLNE	T3,(FS$NVL)	;NEVER TAKE A VALUE?
   862	400477'	254 00 0 00 400516'		 JRST	SWTST0		;YES--THATS CORRECT
   863	400500'	306 02 0 00 000001 		CAIN	T2,FN$MOD	;THIS /MODE?
   864	400501'	254 00 0 00 400525'		 JRST	STOMOD		;YES--DO DIFFERENTLY
   865	400502'	603 03 0 00 000001 		TLNE	T3,(FS$XTR)	;TAKE EXTRA ARGS?
   866	400503'	302 10 0 00 000072 		CAIE	C,":"		;YES--ARE THEY THERE?
   867	400504'	254 00 0 00 400516'		 JRST	SWTST0		;NO--JUST STORE
   868						SAVE$	<N,T2>		;YES--SAVE VALUE, AND FUNCTION
   869	400507'	260 17 0 00 000000*		CALL	.DECNW##	;READ SECOND VALUE
   870						RESTR$	<T1,T2>		;GET FUNCTION AND VALUE IN RIGHT ACS
   871	400512'	207 00 0 00 000002 		MOVSS	T2		;POSITION FILE COUNT IN LH
   872	400513'	540 02 0 00 000007 		HRR	T2,N		;AND RECORD COUNT IN RH
   873	400514'	254 00 0 00 400520'		PJRST	PUTACT		;PUT ON ACTION LIST AND RETURN
   874
   875	400515'	201 07 0 00 000001 	SWTS0A:	MOVEI	N,1		;NEVER TAKES A VALUE,MAKE SURE IT GETS DONE 1 X
   876	400516'	200 01 0 00 000002 	SWTST0:	MOVE	T1,T2		;POSITION FUNCTION
   877	400517'	550 02 0 00 000007 		HRRZ	T2,N		;AND VALUE
   878					;	PJRST	PUTACT		;STORE PARAMS AND RETURN
   879
   880					;PUTACT -- STORE PARAMETERS IN ACTION LIST
   881					;CALL:	MOVE	T1,<FUNCTION>
   882					;	MOVE	T2,<VALUE>
   883					;	CALL	PUTACT
   884
   885	400520'	261 11 0 00 000001 	PUTACT:	PUSH	A,T1		;STORE FUNCTION
   886	400521'	261 11 0 00 000002 		PUSH	A,T2		;AND VALUE
   887	400522'	306 01 0 00 000003 		CAIN	T1,FN$DMP	;THIS THE /DUMP?
   888	400523'	476 00 0 00 005424'		 SETOM	DUMPFL		;YES--SAY WE HAVE ONE
   889	400524'	263 17 0 00 000000 		POPJ	P,
   890
   891	400525'	302 07 0 00 000002 	STOMOD:	CAIE	N,MODBYT	;/MODE:BYTE?
   892	400526'	254 00 0 00 400516'		JRST	SWTST0		;NO--DO NORMALLY
   893
   894	400527'	302 10 0 00 000072 		CAIE	C,":"		;MUST HAVE A VALUE
   895	400530'	260 17 0 00 004407'		 ERROR.	EF$FTL,BRB,</BYTE REQUIRES BYTESIZE>
   896	400531'	300400	401017'
   897						SAVE$	<N,T2>		;SAVE MODBYT, FN$MOD
   898	400534'	260 17 0 00 400507*		CALL	.DECNW##	;READ BYTESIZE
   899						RESTR$	<T1,T2>		;FN$MOD IN T1, MODBYT IN T2
   900	400537'	303 07 0 00 000000 		CAILE	N,0		;CAN'T VERY WELL HAVE NEGATIVE BYTE SIZES
   901	400540'	303 07 0 00 000044 		CAILE	N,^D36		;OR GREATR THAN ONE WORD
   902	400541'	254 00 0 00 400544'		 JRST	E$$IBS		;SO TELL HIM ITS ILLEGAL AND QUIT

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 23-1
DUMPR	MAC	21-FEB-77 17:03		STORE SWITCHES

   903	400542'	504 02 0 00 000007 		HRL	T2,N		;PUT BYTESIZE IN LH
   904	400543'	254 00 0 00 400520'		 PJRST	PUTACT		;SET ON ACTION LIST AND RETURN
   905	400544'	200 01 0 00 000007 	E$$IBS:	MOVE	T1,N		;POSITION TO TELL USER WHAT IS ILLEGAL
   906	400545'	260 17 0 00 004407'		ERROR.	EF$FTL!EF$DEC,IBS,<ILLEGAL BYTE SIZE - >
   907	400546'	300401	401025'
   908
   909	400547'	200 01 0 05 400232'	E$$OSI:	MOVE	T1,SWTN(P1)	;OUTPUT SWITCH ON INPUT SIDE
   910	400550'	260 17 0 00 004407'		ERROR.	EF$FTL!EF$SIX,OSI,<OUTPUT SWITCH ILLEGAL ON INPUT - >
   911	400551'	300403	401035'
   912	400552'	200 01 0 05 400232'	E$$ISO:	MOVE	T1,SWTN(P1)	;INPUT SWITCH ON OUTPUT SIDE
   913	400553'	260 17 0 00 004407'		ERROR.	EF$FTL!EF$SIX,ISO,<INPUT SWITCH ILLEGAL ON OUTPUT - >
   914	400554'	300403	401045'

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 24
DUMPR	MAC	21-FEB-77 17:03		DO /POSITION SWITCH

   915					SUBTTL	DO /POSITION SWITCH
   916
   917	400555'	260 17 0 00 400567'	MTAPOS:	CALL	CKPOSC		;CHECK FOR ILLEGAL FUNCTIONS, NEVER RETURN IFSO
   918	400556'	200 01 0 00 005340'		MOVE	T1,INPSPC+.FXDEV;GET INPUT NAME
   919	400557'	047 01 0 00 000004 		DEVCHR	T1,		;SEE WHAT IT IS
   920	400560'	607 01 0 00 000020 		TXNN	T1,DV.MTA	;IS IT A MAGTAPE?
   921	400561'	254 00 0 00 400161'		 JRST	ILLIDV		;NO--GO QUIT NOW
   922	400562'	260 17 0 00 400650'		CALL	INWLDO		;OPEN THE UNIT
   923	400563'	254 00 0 00 000012'		 JRST	RESTRT		;SNH
   924	400564'	260 17 0 00 400606'		CALL	MNPXCI		;DO MTA MANIPULATIONS
   925	400565'	260 17 0 00 000205'		CALL	INPCLS		;CLOSE INPUT
   926	400566'	254 00 0 00 000071'		JRST	FILD.X		;GO DO RUN COMMAND, EXIT 1, OR RESTRT
   927
   928					;ROUTINE TO CHECK FUNCTION LIST FOR BADDIES
   929
   930	400567'	201 01 0 00 005171'	CKPOSC:	MOVEI	T1,ACTLST	;POINT AT THE LIST
   931	400570'	550 02 0 01 000000 	CKPS.1:	HRRZ	T2,(T1)		;GET A FUNC
   932	400571'	271 01 0 00 000002 		ADDI	T1,2		;MOVE TO NEXT FUNCTION
   933	400572'	306 02 0 00 777776 		CAIN	T2,FN$END	;IS THIS THE END?
   934	400573'	263 17 0 00 000000 		 POPJ	P,		;YES
   935	400574'	205 03 0 00 777774 		MOVSI	T3,-N$MTAF 	;SETUP AOBJN
   936	400575'	312 02 0 03 400602'		CAME	T2,LGLMTF(T3)	;IS THIS IT?
   937	400576'	253 03 0 00 400575'		AOBJN	T3,.-1		;NO--CHECK ALL
   938	400577'	321 03 0 00 400570'		JUMPL	T3,CKPS.1	;GO CHECK NEXT IF THIS ONE OK
   939	400600'	260 17 0 00 004407'		ERROR.	EF$FTL,IPF,<ILLEGAL POSITIONING FUNCTION>
   940	400601'	300400	401054'
   941
   942					;TABLE OF LEGAL POSITIONING FUNCTIONS
   943
   944	400602'	000000	000004		LGLMTF:	EXP	FN$BSP,FN$SKP,FN$REW,FN$DMP ;FN$DMP IS IGNORED LATER
   945	400603'	000000	000005
   946	400604'	000000	000006
   947	400605'	000000	000003
   948			000004			N$MTAF==.-LGLMTF
   949
   950					;ROUTINE TO WHIP THROUGH ACTLST AND EXECUTE MTA FILE POSITIONING ONLY
   951					;THE LIST MUST CONTAIN ONLY FILE POSITIONING COMMANDS AND FN$END
   952
   953	400606'	260 17 0 00 000000*	MNPXCI:	CALL	.SAVE4##	;PRESERVE 4 REGISTERS
   954	400607'	201 05 0 00 000040 		MOVEI	P1,(Z INPC,)	;SETUP THE CHANNEL
   955	400610'	201 06 0 00 005171'		MOVEI	P2,ACTLST	;POINT AT THE LIST
   956	400611'	550 01 0 06 000000 	MNPX.2:	HRRZ	T1,(P2)		;GET NEXT THING
   957	400612'	306 01 0 00 777776 		CAIN	T1,FN$END	;IS THIS THE END?
   958	400613'	263 17 0 00 000000 		 POPJ	P,		;YES--ALL DONE
   959	400614'	554 07 0 06 000001 		HLRZ	P3,1(P2)	;GET POSSIBLE FILE COUNT
   960	400615'	550 10 0 06 000001 		HRRZ	P4,1(P2)	;AND POSSIBLE RECORD COUNT
   961	400616'	271 06 0 00 000002 		ADDI	P2,2		;MOVE TO NEXT THING
   962	400617'	254 00 1 01 400615'		JRST	@MNPDSP-FN$BSP(T1) ;DISPATCH
   963
   964	400620'	000000	400611'			EXP	MNPX.2		;IGNORE /DUMP
   965	400621'	000000	400634'		MNPDSP:	EXP	MNP.BS
   966	400622'	000000	400634'			EXP	MNP.SK
   967	400623'	000000	400624'			EXP	MNP.RW
   968
   969	400624'	200 01 0 00 401055'	MNP.RW:	MOVE	T1,[MTREW.]	;SETUP FUNCTION TO EXECUTE

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 24-1
DUMPR	MAC	21-FEB-77 17:03		DO /POSITION SWITCH

   970	400625'	400 03 0 00 000000 		SETZ	T3,		;CLEAR COUNT
   971	400626'	260 17 0 00 400630'	MNPXDG:	CALL	MNP.XX		;DO THE REWIND
   972	400627'	254 00 0 00 400611'		JRST	MNPX.2		;GO GET NEXT THING
   973
   974					;GET HERE WITH T1 HAVING MTAPE TO DO (MINUS CHAN), AND T3=# TIMES TO DO IT
   975
   976	400630'	661 01 0 05 000000 	MNP.XX:	TLO	T1,(P1)		;SETUP THE CHANNEL
   977	400631'	256 00 0 00 000001 		XCT	T1		;DO IT ONE TIME
   978	400632'	367 03 0 00 400631'		SOJG	T3,.-1		;DO IT ALL WE NEED TO
   979	400633'	263 17 0 00 000000 		POPJ	P,
   980
   981	400634'				MNP.SK:
   982	400634'	333 00 0 00 000010 	MNP.BS:	SKIPLE	P4		;ANY RECORDS TO DO?
   983	400635'	261 17 0 01 401052'		PUSH	P,[EXP <MTBSR.>,<MTSKR.>]-FN$BSP(T1) ;YES--SETUP FOR IT
   984	400636'	333 00 0 00 000007 		SKIPLE	P3		;ANY FILES TO DO?
   985	400637'	261 17 0 01 401054'		PUSH	P,[EXP <MTBSF.>,<MTSKF.>]-FN$BSP(T1) ;YES--
   986	400640'	337 03 0 00 000007 	MNP.BF:	SKIPG	T3,P3		;CHECK/PICKUP FILE ACTION
   987	400641'	254 00 0 00 400644'		 JRST	MNP.B1		;NO--CHECK RECORD ACTION
   988	400642'	262 17 0 00 000001 		POP	P,T1		;YES--GET MTAPE
   989	400643'	260 17 0 00 400630'		CALL	MNP.XX		;DO IT
   990	400644'	337 03 0 00 000010 	MNP.B1:	SKIPG	T3,P4		;CHECK/PICKUP RECORD ACTION
   991	400645'	254 00 0 00 400611'		 JRST	MNPX.2		;NO--GET NEXT THING
   992	400646'	262 17 0 00 000001 		POP	P,T1		;YES--GET MTAPE
   993	400647'	254 00 0 00 400626'		JRST	MNPXDG		;GO DO IT AND LOOP FOR MORE ACTION

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 25
DUMPR	MAC	21-FEB-77 17:03		WILD CARD HANDLING FOR INPUT FILE

   994					SUBTTL	WILD CARD HANDLING FOR INPUT FILE
   995
   996					IFN FT$WLD,<
   997					;ROUTINE TO CALL .LKWLD AND OPEN/LOOKUP THE FILE PRESENTED
   998					;CPOPJ IF NO FILE FOUND
   999					;CPOPJ1 IF OPENED OK
  1000
  1001	400650'	200 01 0 00 401062'	INWLDO:	MOVE	T1,[XWD SVINOB,OPNBLK] ;RESET OPNBLK IN CASE NOT FIRST TIME
  1002	400651'	251 01 0 00 005056'		BLT	T1,OPNBLK+.OPBUF
  1003	400652'	200 01 0 00 400675'	INWL.1:	MOVE	T1,LKWLDB	;GET THE ARG BLOCK
  1004	400653'	260 17 0 00 000000*		CALL	.LKWLD##	;FIND A FILE TO DO
  1005	400654'	263 17 0 00 000000 		 POPJ	P,		;CAN'T FIND ANYTHING
  1006	400655'	202 02 0 00 005257'		MOVEM	T2,LKWLFL	;SAVE FLAG FOR LATER (IN CASE MTA)
  1007	400656'	201 01 0 00 000014 		MOVEI	T1,.IOBIN	;USE BINARY MODE
  1008	400657'	542 01 0 00 005054'		HRRM	T1,OPNBLK+.OPMOD
  1009	400660'	201 01 0 00 005264'		MOVEI	T1,IBHR		;SETUP MY BUFFER HEADER ADDRESS
  1010	400661'	202 01 0 00 005056'		MOVEM	T1,OPNBLK+.OPBUF
  1011	400662'	050 01 0 00 005054'		OPEN	INPC,OPNBLK	;OPEN THE DEVICE
  1012						 JRST	[CALL	E.DFO##	;REPORT OPEN ERROR
  1013	400663'	254 00 0 00 401063'			JRST	INWL.1]	;KEEP GOING TILL .LKWLD SAYS DONE
  1014	400664'	333 00 0 00 005257'		SKIPLE	LKWLFL		;DO WE NEED TO DO A LOOKUP?
  1015	400665'	254 00 0 00 004306'		 JRST	$POPJ1		;NO--THEN WHY BOTHER (NOT DIR DEVICE)
  1016	400666'	076 01 0 00 005057'		LOOKUP	INPC,LKPBLK	;FIND THE FILE
  1017						 JRST	[CALL	E.DFL##	;REPORT ERROR
  1018	400667'	254 00 0 00 401065'			JRST	INWL.1]	;AND KEEP LOOKING
  1019	400670'	337 00 0 00 005367'		SKIPG	INPSPC+.FXFLM	;ENSURE .FXFLM IS RIGHT
  1020	400671'	476 00 0 00 005367'		SETOM	INPSPC+.FXFLM	;SO .CHKTM WILL WORK WRIGHT
  1021	400672'	260 17 0 00 000000*		CALL	.CHKTM##	;CHECK DATE/TIME CONSTRAINTS
  1022	400673'	254 00 0 00 400652'		 JRST	INWL.1		;FAILED--GET NEXT FILE
  1023	400674'	254 00 0 00 004306'		JRST	$POPJ1		;OK--SKIP BACK WITH THE FILE
  1024
  1025	400675'	000005	400676'		LKWLDB:	XWD	5,.+1
  1026	400676'	005255'	000000			XWD	WLDFIR,0
  1027	400677'	005054'	005057'			XWD	OPNBLK,LKPBLK
  1028	400700'	000032	000036			XWD	.FXLEN,.RBTIM+1
  1029	400701'	400000	005256'			EXP	1B0+WLDPTR
  1030	400702'	000000	000000			EXP	0
  1031					>;END IFN FT$WLD
  1032					IFE FT$SEG,<LIT$>
  1033	000101'					LOW$			;TO LOW SEGMENT IF FT$SEG=0

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 26
DUMPR	MAC	21-FEB-77 17:03		HIGH SEGMENT HANDLERS

  1034					SUBTTL	HIGH SEGMENT HANDLERS
  1035
  1036					IFE FT$SEG,<	;NOT NECESSARY IF LOAD ALL IN HIGH SEGMENT
  1037					;CALL DWNSCN TO REMOVE HIGH SEGMENT
  1038
  1039	000101'	336 00 0 00 000115 	DWNSCN:	SKIPN	.JBHRL		;SEG AROUND?
  1040	000102'	263 17 0 00 000000 		POPJ	P,		;NO--DON'T DO CORE UUO NOW
  1041						SAVE$	T1		;PRESERVE T1
  1042	000104'	205 01 0 00 000001 		MOVSI	T1,1		;YES--GET RID OF IT
  1043	000105'	047 01 0 00 000011 		CORE	T1,		;BYE/!
  1044	000106'	255 00 0 00 000000 		 JFCL			;SNH
  1045	000107'	254 00 0 00 004367'		JRST	TPOPJ		;RESTORE T1 AND RETURN
  1046
  1047					;CALL UPSCN TO REGET THE HIGH SEGMENT
  1048
  1049	000110'	332 00 0 00 000115 	UPSCN:	SKIPE	.JBHRL		;SCAN AROUND?
  1050	000111'	263 17 0 00 000000 		 POPJ	P,		;YES--SKIP COSTLY GETSEG
  1051	000112'	202 17 0 00 005053'		MOVEM	17,SAVAC+17	;GETSEG DESTROYS ACS
  1052	000113'	201 17 0 00 005034'		MOVEI	17,SAVAC
  1053	000114'	251 17 0 00 005052'		BLT	17,SAVAC+16	;SAVE ALL
  1054	000115'	200 01 0 00 004517'	SEGAGN:	MOVE	T1,SGDEV	;SETUP FOR GETSEG
  1055	000116'	200 02 0 00 004520'		MOVE	T2,SGNAM
  1056	000117'	200 03 0 00 004521'		MOVE	T3,SGLOW
  1057	000120'	403 04 0 00 000006 		SETZB	T4,P2
  1058	000121'	200 05 0 00 004522'		MOVE	P1,SGPPN
  1059	000122'	201 07 0 00 000001 		MOVEI	P3,T1		;POINT AT THE BLOCK
  1060	000123'	047 07 0 00 000040 		GETSEG	P3,
  1061	000124'	334 01 0 00 000007 		SKIPA	T1,P3		;FAILED!--GET ERROR CODE IN T1
  1062						JRST	[MOVSI	17,SAVAC
  1063							BLT	17,17
  1064	000125'	254 00 0 00 005476'			POPJ	P,]
  1065	000126'	200 17 0 00 000022'		MOVE	P,INIPDP	;RESET PDP (WILL GET RESTORED IF WE GET SEG)
  1066	000127'	260 17 0 00 004407'		ERROR.	EF$OCT!EF$ERR,CGH,<CAN'T GET HIGH SEGMENT, CODE = >
  1067	000130'	300002	005510'
  1068	000131'	047 01 0 00 000012 		EXIT	1,
  1069	000132'	254 00 0 00 000115'		JRST	SEGAGN		;MAYBE IT WAS JUST LOST?
  1070					>;END IFE FT$SEG

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 27
DUMPR	MAC	21-FEB-77 17:03		OPEN FILES

  1071					SUBTTL	OPEN FILES
  1072
  1073					;CALL HERE TO OPEN INPUT FILE
  1074					;ALWAYS RETURN CPOPJ IF FT$WLD=0
  1075					;IF FT$WLD=1, IF NO FILE FOUND RETURN CPOPJ, ELSE RETURN CPOPJ1 WITH GOODIES
  1076
  1077	000133'				OPNINP:
  1078					IFE FT$WLD,<
  1079						MOVEI	T1,INPSPC	;POINT AT THE SPEC
  1080						CALL	OPENIO		;OPEN THE DEVICE (LOOKUP FILE IF NEEDED)
  1081						CAI	INPC,IBHR(.IOBIN) ;
  1082					>;END IFE FT$WLD
  1083					IFN FT$WLD,<
  1084	000133'	260 17 0 00 400650'		CALL	INWLDO		;OPEN INPUT FILE
  1085	000134'	263 17 0 00 000000 		 POPJ	P,		;CAN'T FIND ANY--ALL DONE
  1086	000135'	350 00 0 17 000000 		AOS	(P)		;SETUP TO SKIP BACK--WE HAVE A FILE
  1087					>;END IFN FT$WLD
  1088	000136'	204 01 0 00 005511'		MOVS	T1,[XWD SVINOB,OPNBLK] ;SETUP TO SAVE OPEN/LOOKUP BLOCK
  1089	000137'	251 01 0 00 005166'		BLT	T1,SVINLK+.RBTIM;COPY IT OVER
  1090	000140'	200 01 0 00 005064'		MOVE	T1,LKPBLK+.RBSIZ;GET SIZE OF FILE IN WORDS
  1091	000141'	242 01 0 00 777771 		LSH	T1,-7		;CVT TO BLOCKS
  1092	000142'	340 01 0 00 000000 		AOJ	T1,		;...
  1093	000143'	202 01 0 00 005261'		MOVEM	T1,IFILSZ	;SAVE FOR LATER (POSITIONING)
  1094	000144'	607 12 0 00 000020 	OPNI.A:	TLNN	DC,(DV.MTA)	;INPUT MTA?
  1095	000145'	254 00 0 00 000161'		 JRST	OPNI.1		;NO
  1096	000146'	260 17 0 00 000000*		CALL	.SAVE3##	;YES--SAVE REGISTERS
  1097	000147'	201 05 0 00 005340'		MOVEI	P1,INPSPC	;POINT AT SPEC
  1098	000150'	201 06 0 00 000001 		MOVEI	P2,INPC		;AND CHANNEL
  1099	000151'	201 07 0 00 000001 		MOVEI	P3,INPC		;FOR MTCHR
  1100	000152'	047 07 0 00 000112 		MTCHR.	P3,
  1101	000153'	400 07 0 00 000000 		SETZ	P3,		;SNH
  1102	000154'	260 17 0 00 000262'		CALL	SETCHR		;SET /DENSITY AND /PARITY
  1103	000155'	603 00 0 00 004000 		TLNE	F,FL$IND	;/INDUSTRY?
  1104	000156'	072 01 0 00 000101 		 MTIND.	INPC,		;YES--SETUP FOR IT
  1105	000157'	333 00 0 00 005471'		SKIPLE	FLNTRY		;/NORETRY?
  1106						 JRST	[GETSTS	INPC,T1	;YES--GET STATUS
  1107							SETSTS	INPC,IO.NRC(T1) ;SET NO RETRY
  1108	000160'	254 00 0 00 005512'			JRST	.+1]
  1109	000161'	337 01 0 00 005465'	OPNI.1:	SKIPG	T1,BUFSIZ	;/BUFSIZ GIVEN?
  1110	000162'	201 01 0 00 002000 		 MOVEI	T1,DF$BFZ	;NO--USE A K
  1111	000163'	202 01 0 00 005465'		MOVEM	T1,BUFSIZ	;SET IN CASE WE DEFAULTED
  1112									;NOTE THAT .ALCBF WILL ADJUST BUFFER
  1113									;TO 128. FOR DSK OR 127. FOR DTA
  1114	000164'	505 01 0 00 000006 		HRLI	T1,6		;ASSUME DISK INPUT
  1115	000165'	607 12 0 00 000020 		TLNN	DC,(DV.MTA)	;BUT SEE IF MAGTAPE
  1116	000166'	254 00 0 00 000172'		 JRST	OPNI.2		;NO--SIX IS RIGHT
  1117	000167'	337 02 0 00 005470'		SKIPG	T2,NMTBUF	;DID USER SPECIFY /MTBUF?
  1118	000170'	201 02 0 00 000002 		 MOVEI	T2,2		;NO--USE 2
  1119	000171'	505 01 0 02 000000 		HRLI	T1,(T2)		;SET CORRECT BUFFER COUNT
  1120	000172'	334 02 0 00 000173'	OPNI.2:	SKIPA	T2,.+1		;OTHER ALCBUF ARGWORD
  1121	000173'	005054'	005264'			XWD	OPNBLK,IBHR
  1122	000174'	260 17 0 00 000000*		CALL	.ALCBF##	;SETUP BUFFERS
  1123	000175'	607 12 0 00 000020 		TLNN	DC,(DV.MTA)	;DSK OR DTA INPUT?
  1124	000176'	607 00 0 00 600000 		 TLNN	F,FL$FOR!FL$PHY	;AND /IREAD OR /FORTRAN?
  1125	000177'	603 00 0 00 400000 		 TLNE	F,FL$FOR	;BUT IF /FORTRAN ON TAPE

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 27-1
DUMPR	MAC	21-FEB-77 17:03		OPEN FILES

  1126	000200'	334 01 0 00 005465'		  SKIPA	T1,BUFSIZ	;YES--NEED TO ALLOCATE FORBUF
  1127	000201'	263 17 0 00 000000 		   POPJ	P,		;NO--WE ARE DONE
  1128	000202'	260 17 0 00 000000*		CALL	.ALCOR##	;ALLOCATE FORTRA/IREAD BUFFER
  1129	000203'	202 01 0 00 005272'		MOVEM	T1,FORADR	;SAVE FOR LATER USAGE
  1130	000204'	263 17 0 00 000000 		POPJ	P,

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 28
DUMPR	MAC	21-FEB-77 17:03		OPEN FILES

  1131					;COME HERE TO CLOSE INPUT DEVICE
  1132
  1133	000205'	070 01 0 00 000000 	INPCLS:	CLOSE	INPC,
  1134	000206'	071 01 0 00 000000 		RELEASE	INPC,
  1135	000207'	332 01 0 00 005272'		SKIPE	T1,FORADR	;WAS THERE A FORTRA/IREAD ARRAY?
  1136	000210'	260 17 0 00 000000*		CALL	.DECOR##	;YES--MAKE IT GO AWAY
  1137	000211'	402 00 0 00 005272'		SETZM	FORADR		;CLEAR IN CASE 
  1138	000212'	201 01 0 00 005264'		MOVEI	T1,IBHR
  1139					;	PJRST	TSTBHR		;FREE UP BUFFERS
  1140
  1141					;HERE TO FREE BUFFERS IF THEY WERE ALLOCATED
  1142
  1143	000213'	336 00 0 01 000000 	TSTBHR:	SKIPN	.BFADR(T1)	;USED?
  1144	000214'	263 17 0 00 000000 		 POPJ	P,		;NO--QUIT NOW
  1145						SAVE$	T1		;SAVE ADDRESS
  1146	000216'	260 17 0 00 000000*		CALL	.FREBF##	;FREE BUFFERS
  1147						RESTR$	T1		;RESTORE ADDRESS
  1148	000220'	402 00 0 01 000000 		SETZM	.BFADR(T1)
  1149	000221'	402 00 0 01 000001 		SETZM	.BFPTR(T1)
  1150	000222'	402 00 0 01 000002 		SETZM	.BFCTR(T1)
  1151	000223'	263 17 0 00 000000 		POPJ	P,
  1152
  1153					;HERE TO CLOSE OUTPUT FILE
  1154
  1155	000224'	623 00 0 00 000001 	OUTCLS:	TLZE	F,FL$ODN	;WAS ANY OUTPUT DONE?
  1156	000225'	634 01 0 00 000001 		 TDZA	T1,T1		;YES--PRESERVE THE FILE
  1157	000226'	201 01 0 00 000040 		  MOVEI	T1,CL.RST	;NO--MAKE FILE DISSAPPEAR
  1158	000227'	070 02 0 01 000000 		CLOSE	OUTC,(T1)	;FINISH WRITING THE FILE
  1159	000230'	071 02 0 00 000000 		RELEASE	OUTC,
  1160	000231'	621 00 0 00 000010 		TLZ	F,FL$OPN	;NOT OPEN NOW
  1161	000232'	201 01 0 00 005267'		MOVEI	T1,OBHR
  1162	000233'	254 00 0 00 000213'		PJRST	TSTBHR

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 29
DUMPR	MAC	21-FEB-77 17:03		OPEN FILES

  1163					;HERE TO OPEN OUTPUT FILE
  1164
  1165	000234'	201 01 0 00 005372'	OPNOUT:	MOVEI	T1,OUTSPC	;SETUP
  1166	000235'	260 17 0 00 004117'		CALL	OPENIO		;DO IT
  1167	000236'	300 02 1 00 005267'		CAI	OUTC,@OBHR(.IOASC)
  1168	000237'	602 12 0 00 000020 		TRNE	DC,(DV.MTA)	;IS OUTPUT DEVICE MTA?
  1169	000240'	254 00 0 00 000250'		 JRST	OPNO.1		;NO
  1170	000241'	260 17 0 00 000146*		CALL	.SAVE3##	;YES--SAVE P1-3
  1171	000242'	201 05 0 00 005372'		MOVEI	P1,OUTSPC
  1172	000243'	201 06 0 00 000002 		MOVEI	P2,OUTC
  1173	000244'	201 07 0 00 000002 		MOVEI	P3,OUTC
  1174	000245'	047 07 0 00 000112 		MTCHR.	P3,
  1175	000246'	400 07 0 00 000000 		 SETZ	P3,		;...SNH
  1176	000247'	260 17 0 00 000262'		CALL	SETCHR		;SET /DENSITY AND /PARITY
  1177	000250'	205 01 0 00 000006 	OPNO.1:	MOVSI	T1,6		;USE 6 BUFFERS
  1178	000251'	602 12 0 00 000020 		TRNE	DC,(DV.MTA)	;UNLESS MTA
  1179	000252'	205 01 0 00 000002 		 MOVSI	T1,2		;IN WHICH CASE USE 2
  1180	000253'	334 02 0 00 000254'		SKIPA	T2,.+1		;
  1181	000254'	005054'	005267'			XWD	OPNBLK,OBHR
  1182	000255'	260 17 0 00 000174*		CALL	.ALCBF##
  1183	000256'	067 02 0 00 000000 		OUTPUT	OUTC,		;DO DUMMY OUTPUT
  1184	000257'	661 00 0 00 000010 		TLO	F,FL$OPN	;OUTPUT FILE IS OPEN FOR BUSINESS
  1185	000260'	621 00 0 00 000001 		TLZ	F,FL$ODN	;NO OUTPUT DONE YET, THO
  1186	000261'	263 17 0 00 000000 		POPJ	P,

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 30
DUMPR	MAC	21-FEB-77 17:03		SET MAGTAPE CHARACTERISTICS

  1187					SUBTTL	SET MAGTAPE CHARACTERISTICS
  1188
  1189					;SETCHR -- SET TAPE CHARACTERISTICS
  1190					;CALL:	MOVEI	P1,<SPEC ADDR>
  1191					;	MOVEI	P2,<CHANNEL>
  1192					;	MOVE	P3,<AC RESULT OF MTCHR. UUO>
  1193					;	CALL	SETCHR
  1194					;	*RETURN*
  1195
  1196	000262'	135 01 0 00 005515'	SETCHR:	LDB	T1,[POINTR (.FXMOD(P1),FX.DEN)] ;GET /DENSITY: VALUE
  1197	000263'	322 01 0 00 000271'		JUMPE	T1,SETC.1	;JUMP IF NONE
  1198	000264'	256 00 0 01 000274'		XCT	SETDEN(T1)	;SET THE DENSITY
  1199	000265'	200 01 0 00 005516'		MOVE	T1,[XWD 3,T2]	;TAPOP. ARG
  1200	000266'	201 02 0 00 002001 		MOVEI	T2,.TFDEN+.TFSET;FUNCTION
  1201	000267'	200 03 0 00 000006 		MOVE	T3,P2		;CHANNEL
  1202	000270'	260 17 0 00 000324'		CALL	DOTPOP		;DO TAPOP.
  1203	000271'	135 01 0 00 005517'	SETC.1:	LDB	T1,[POINTR(.FXMOD(P2),FX.PAR)] ;/PARITY: VALUE
  1204	000272'	256 00 0 01 000316'		XCT	SETPAR(T1)	;SET THE PARITY
  1205	000273'	263 17 0 00 000000 		POPJ	P,
  1206
  1207	000274'	255 00 0 00 000000 	SETDEN:	JFCL			;SNH
  1208	000275'	260 17 0 00 000304'		CALL	DEN200		;200 BPI
  1209	000276'	260 17 0 00 000304'		CALL	DEN556		;556 BPI
  1210	000277'	201 04 0 00 000003 		MOVEI	T4,.TFD80	;800 BPI
  1211	000300'	260 17 0 00 000311'		CALL	DEN160		;1600 BPI
  1212	000301'	260 17 0 00 000311'		CALL	DEN625		;6250 BPI
  1213	000302'	200 04 0 00 000001 		MOVE	T4,T1		;(6)
  1214	000303'	200 04 0 00 000001 		MOVE	T4,T1		;(7)
  1215
  1216	000304'				DEN556:
  1217	000304'	606 07 0 00 000020 	DEN200:	TRNN	P3,MT.7TR	;MUST BE 7 TRACK
  1218	000305'	260 17 0 00 004407'	E$$ID9:	ERROR.	EF$FTL,ID9,<ILLEGAL DENSITY FOR 9-TRACK>
  1219	000306'	300400	005526'
  1220	000307'	200 04 0 00 000001 		MOVE	T4,T1		;SETUP DENSITY
  1221	000310'	263 17 0 00 000000 		POPJ	P,
  1222
  1223	000311'				DEN625:
  1224	000311'	602 07 0 00 000020 	DEN160:	TRNE	P3,MT.7TR	;CAN'T BE 7 TRACK
  1225	000312'	260 17 0 00 004407'	E$$ID7:	ERROR.	EF$FTL,ID7,<ILLEGAL DENSITY FOR 7-TRACK>
  1226	000313'	300400	005535'
  1227	000314'	200 04 0 00 000001 		MOVE	T4,T1
  1228	000315'	263 17 0 00 000000 		POPJ	P,
  1229
  1230	000316'	255 00 0 00 000000 	SETPAR:	JFCL			;ODD IS THE DEFAULT
  1231	000317'	260 17 0 00 000320'		CALL	EVNPAR		;SET EVEN
  1232	000320'	200 01 0 00 005516'	EVNPAR:	MOVE	T1,[XWD 3,T2]	;ARGWORD
  1233	000321'	201 02 0 00 002005 		MOVEI	T2,.TFPAR+.TFSET;FUNCTION
  1234	000322'	200 03 0 00 000006 		MOVE	T3,P2		;CHANNEL
  1235	000323'	201 04 0 00 000001 		MOVEI	T4,1		;EVEN PARITY
  1236					;	PJRST	DOTPOP		;DO AND RETURN
  1237							;FALL THROUGH TO DOTPOP

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 31
DUMPR	MAC	21-FEB-77 17:03		SET MAGTAPE CHARACTERISTICS

  1238					;DOTPOP -- DO A TAPOP WITH ERROR REPORTING
  1239					;CALL:	MOVE	T1,[ARGBLOCK]
  1240					;	MOVEI	T2,<FUNCTION>
  1241					;	MOVE	T3,<TAPNAM,IOCHAN, OR SOMETHING JUST AS GOOD>
  1242					;	MOVE	T4,<ARG>
  1243					;	CALL	DOTPOP
  1244					;	*RETURN*
  1245
  1246	000324'	047 01 0 00 000154 	DOTPOP:	TAPOP.	T1,		;DO IT
  1247	000325'	304 00 0 00 000000 		 CAIA			;FAILED--REPORT ERROR
  1248	000326'	263 17 0 00 000000 		POPJ	P,		;OK
  1249
  1250	000327'				ETAPOP:	SAVE$	<T4,T3,T2,T1>	;SAVE ON PDL
  1251	000333'	260 17 0 00 004407'		WARN.	EF$OCT!EF$NCR,TUF,<TAPOP. UUO FAILURE--CODE = >
  1252	000334'	300242	005544'
  1253	000335'	201 01 0 00 005545'		STRNG$	< - FN=>
  1254	000336'	260 17 0 00 000034*
  1255	000337'	200 01 0 17 777777 		MOVE	T1,-1(P)	;GET FN (WAS IN T2)
  1256	000340'	260 17 0 00 000000*		CALL	.TOCTW##
  1257	000341'	260 17 0 00 000037*		CALL	.TCRLF##
  1258						RESTR$	<T1,T2,T3,T4>
  1259	000346'	263 17 0 00 000000 		POPJ	P,

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 32
DUMPR	MAC	21-FEB-77 17:03		PROCESS THE COMMAND LIST

  1260					SUBTTL	PROCESS THE COMMAND LIST
  1261
  1262					;THIS IS THE HEART OF THE DUMPR PROGRAM.  IT GETS THE FUNCTIONS OFF
  1263					;OF THE ACTION (COMMAND) LIST AND PROCESSES THEM.
  1264
  1265	000347'	260 17 0 00 400606*	PROCMD:	CALL	.SAVE4##	;SAVE P1-4
  1266	000350'	260 17 0 00 000373'		CALL	DMPINI		;INITIALIZE
  1267	000351'	201 11 0 00 005171'		MOVEI	A,ACTLST	;SETUP A TO POINT TO ACTION LIST
  1268	000352'	625 00 0 00 002000 		TLZA	F,FL$OUT	;FLAG WE ARE ON OUTPUT SIDE OF THINGS
  1269	000353'	661 00 0 00 002000 	DMPINP:	 TLO	F,FL$OUT	;FLAG WE ARE ON INPUT SIDE OF THINGS
  1270	000354'	200 01 0 11 000000 	DMPLUP:	MOVE	T1,(A)		;GET A COMMAND
  1271	000355'	574 05 0 11 000001 		HLRE	P1,1(A)		;GET LH OF ARG WORD (USUALLY FILE COUNT)
  1272	000356'	550 06 0 11 000001 		HRRZ	P2,1(A)		;GET RH OF ARG WORD (USUALLY RECORD COUNT)
  1273	000357'	271 11 0 00 000002 		ADDI	A,2		;MOVE TO NEXT ACTION
  1274	000360'	254 00 1 01 000363'		JRST	@DMPDSP(T1)	;GO TO IT
  1275
  1276	000361'	000000	000615'			EXP	DMPEND		;(-2) END IT ALL
  1277	000362'	000000	000353'			EXP	DMPINP		;(-1) ALL POSITIONING SWITCHES FOLLOWING
  1278									;     ARE FOR INPUT SIDE
  1279	000363'	254 04 0 00 000363'	DMPDSP:	HALT	.		;(0)  SHOULD NOT HAPPEN
  1280
  1281					DEFINE X(A)			;MACRO TO GENERATE REST OF TABLE
  1282					<IRP A,<EXP D$'A>>
  1283	000364'	000000	001261'			FUNCTS			;GENERATE REST OF TABLE
  1284	000365'	000000	004030'
  1285	000366'	000000	000502'
  1286	000367'	000000	003730'
  1287	000370'	000000	003634'
  1288	000371'	000000	003776'
  1289	000372'	000000	004021'

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 33
DUMPR	MAC	21-FEB-77 17:03		PROCESS THE COMMAND LIST

  1290					;INITIALIZE FOR THE COMMAND PROCESSING
  1291
  1292	000373'	402 00 0 00 005302'	DMPINI:	STORE	T1,RUN$FZ,RUN$LZ,0 ;CLEAR SOME THINGS
  1293	000374'	200 01 0 00 005547'
  1294	000375'	251 01 0 00 005313'
  1295	000376'	603 12 0 00 000020 		TLNE	DC,(DV.MTA)	;IS INPUT MAGTAPE?
  1296	000377'	603 00 0 00 400000 		 TLNE	F,FL$FOR	;AND NOT /FORTRAN?
  1297	000400'	254 00 0 00 000411'		  JRST	DMPI.1		;NOT MTA OR MTA AND /FORTRAN
  1298	000401'	201 01 0 00 001016 		MOVEI	T1,.TFSTA	;ATTEMPT TO DIVINE THE TAPE'S LOCATION
  1299	000402'	202 01 0 00 005302'		MOVEM	T1,TAPOBL-3	;WITH A TAPOP.
  1300	000403'	201 01 0 00 000001 		MOVEI	T1,INPC		;HOPE TAPUUO LIKES CHANNEL ARGS TODAY
  1301	000404'	202 01 0 00 005303'		MOVEM	T1,TAPOBL-2	;...
  1302	000405'	200 01 0 00 005550'		MOVE	T1,[XWD 5,TAPOBL-3] ;ARGWORD
  1303	000406'	072 01 0 00 000000 		MTWAT.	INPC,		;FIRST MAKE SURE THE TAPE HAS STOPPED MOVING!
  1304	000407'	047 01 0 00 000154 		TAPOP.	T1,		;ASK MONITOR WHERE THE TAPE IS
  1305	000410'	255 00 0 00 000000 		 JFCL			;(IGNORE ERROR)
  1306	000411'	403 14 0 00 000013 	DMPI.1:	SETZB	M,W		;DEFAULT IS OCTAL MODE
  1307	000412'	260 17 0 00 001270'		CALL	D$MSET		;SET UP L AND Q
  1308	000413'	621 00 0 00 000340 		TLZ	F,FL$EOT!FL$OLY!FL$MNP ;CERTAINLY NOT END OF TAPE
  1309	000414'	260 17 0 00 000677'		CALL	INIHDR		;OUTPUT INITIAL HEADER MESSAGE
  1310	000415'	337 01 0 00 005464'		SKIPG	T1,S.BLKF	;GET BLOCKING FACTOR IN CASE EBCDIC
  1311	000416'	201 01 0 00 000120 		 MOVEI	T1,AD.BKF	;NOT SPECIFIED--GET DEFAULT
  1312	000417'	202 01 0 00 005464'		MOVEM	T1,S.BLKF	;SET IN CASE NEEDED
  1313	000420'	202 01 0 00 005260'		MOVEM	T1,EBCKNT	;AND THE COUNTER ALSO
  1314	000421'	263 17 0 00 000000 		POPJ	P,		;DONE
  1315
  1316					;DISPATCH TABLE FOR DUMPING WORDS
  1317
  1318	000422'	000000	002767'		DMPWRD:	EXP	FMTOCT		; 0--RADIX 8
  1319	000423'	000000	002514'			EXP	O$ASCW		; 1--ASCII
  1320	000424'	000000	002557'			EXP	O$BYTW		; 2--BYTE
  1321	000425'	000000	000435'			EXP	E$$EIW		; 3--EBCDIC
  1322	000426'	000000	003050'			EXP	FMTFLO		; 4--FLOAT
  1323	000427'	000000	005551'			EXP	[HALT]		; 6--HALF (SNH)
  1324	000430'	000000	001477'			EXP	O$HEXW		; 5--HEX
  1325	000431'	000000	002735'			EXP	FMTINT		; 6--INTEGER
  1326	000432'	000000	002767'			EXP	FMTOCT		; 7--OCTAL
  1327	000433'	000000	002462'			EXP	O$SIXN		;10--SIXBIT
  1328	000434'	000000	001507'			EXP	O$SYMW		;11--SYMBOL
  1329
  1330	000435'	260 17 0 00 004407'	E$$EIW:	ERROR.	EF$FTL,EIW,<EBCDIC ILLEGAL WITHOUT /INDUSTRY>
  1331	000436'	300400	005561'

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 34
DUMPR	MAC	21-FEB-77 17:03		MAJOR DUMP LOOP

  1332					SUBTTL	MAJOR DUMP LOOP
  1333
  1334	000437'	365 15 0 00 000442'	DUMPIT:	SOJGE	L,DUMP.1	;ROOM LEFT ON LINE?
  1335	000440'	260 17 0 00 001155'		 CALL	D$NEWL		;NO--MAKE NEW LINE
  1336	000441'	360 15 0 00 000000 		SOJ	L,		;DON'T FORGET TO COUNT WORD WE DUMP NOW
  1337	000442'	200 01 0 13 000000 	DUMP.1:	MOVE	T1,(W)		;GET A WORD
  1338	000443'	260 17 0 00 000527'		CALL	D$WORD		;DUMP IN PROPER MODE
  1339	000444'	253 13 0 00 000437'		AOBJN	W,DUMPIT	;DO ALL WORDS IN RECORD
  1340
  1341	000445'	337 00 0 00 000005 	DUMP.2:	SKIPG	P1		;FILES LEFT?
  1342	000446'	363 06 0 00 000615'		 SOJLE	P2,DMPEND	;YES--ANY RECORDS LEFT?
  1343	000447'	260 17 0 00 003355'	DUMP$G:	CALL	GETBUF		;NEW BUFFER FULL
  1344	000450'	254 00 0 00 000600'		JRST	DUMPEF		;END OF FILE
  1345	000451'	621 00 0 00 000100 		TLZ	F,FL$EOT	;CLEAR EOT FLAG--WE SAW SOME DATA
  1346	000452'	260 17 0 00 004063'		CALL	CHKTTY		;ATTEND TO TTY IF /IFTYP
  1347	000453'	254 00 0 00 000615'		 JRST	DMPEND		;SAID TO KILL IT OFF
  1348	000454'	260 17 0 00 001045'		CALL	RECHDR		;OUTPUT RECORD (BLOCK) HEADER
  1349	000455'	603 00 0 00 140000 		TLNE	F,FL$SUM!FL$TOT	;/SUMMARY OR /TOTAL
  1350	000456'	254 00 0 00 000445'		 JRST	DUMP.2		;YES--DONE WITH THIS RECORD
  1351	000457'	607 00 0 00 000040 		TLNN	F,FL$OLY	;IS THERE A /ONLY IN EFFECT?
  1352	000460'	254 00 0 00 000437'		JRST	DUMPIT		;CONTINUE DUMPING
  1353	000461'	200 07 0 00 005312'	OLYDMP:	MOVE	P3,ONLYLO	;GET LOW LIMIT
  1354	000462'	201 01 0 07 777777 		MOVEI	T1,-1(P3)	;ADJUST WRDCNT
  1355	000463'	272 01 0 00 005311'		ADDM	T1,WRDCNT	;TO REFLECT THE WORDS WE SKIPPED
  1356	000464'	363 07 0 00 000467'		SOJLE	P3,OLYD.1	;JUMP IF WE HAVE SKIPPED ENOUGH
  1357	000465'	253 13 0 00 000464'		AOBJN	W,.-1		;NO--SKIP MORE, BUT WATCH FOR END OF RECORD
  1358	000466'	254 00 0 00 000447'		JRST	DUMP$G		;RAN OUT OF RECORD BEFORE LOW LIMIT REACHED
  1359
  1360	000467'	200 07 0 00 005313'	OLYD.1:	MOVE	P3,ONLYHI	;GET UPPER LIMIT
  1361	000470'	274 07 0 00 005312'		SUB	P3,ONLYLO	;COMPUTE # WORDS TO DUMP
  1362	000471'	474 15 0 00 000000 		SETO	L,		;FORCE A NEW LINE FIRST TIME THROUGH
  1363	000472'	365 15 0 00 000475'	OLYD.2:	SOJGE	L,OLYD.3	;TIME FOR NEW LINE?
  1364	000473'	260 17 0 00 001155'		CALL	D$NEWL		;YES
  1365	000474'	275 15 0 00 000001 		SUBI	L,1		;COUNT WHAT WE DO NOW
  1366	000475'	200 01 0 13 000000 	OLYD.3:	MOVE	T1,(W)		;GET A WORD
  1367	000476'	260 17 0 00 000527'		CALL	D$WORD		;DUMP IN PROPER FORMAT
  1368	000477'	361 07 0 00 000445'		SOJL	P3,DUMP.2	;JUMP IF DUMPED ENOUGH
  1369	000500'	253 13 0 00 000472'		AOBJN	W,OLYD.2	;JUMP IF MORE WORDS IN RECORD
  1370	000501'	254 00 0 00 000445'		JRST	DUMP.2		;END OF RECORD
  1371
  1372					;HERE TO START THE DUMP
  1373
  1374	000502'	603 12 0 00 000004 	D$DMP:	TLNE	DC,(DV.DIR)	;INPUT A DIRECTORY DEVICE?
  1375	000503'	327 05 0 00 000525'		JUMPG	P1,E$$CDM	;NO FILES ALLOWED ON DIRECTORY DEVICE
  1376	000504'	607 12 0 00 000020 		TLNN	DC,(DV.MTA)	;CHECK FOR MTA INPUT
  1377	000505'	254 00 0 00 000520'		 JRST	D$DMP1		;NO--SKIP MESSAGE
  1378	000506'	201 01 0 00 005562'		MOVEI	T1,[ASCIZ/[DMPIPT INITIAL POSITION OF TAPE IS FILE /]
  1379	000507'	260 17 0 00 001456'		CALL	O$STRG		;SEND IT
  1380	000510'	200 01 0 00 005305'		MOVE	T1,FILE		;GET FILE COUNT
  1381	000511'	260 17 0 00 002474'		CALL	O$DECW		;SEND IIT
  1382	000512'	201 01 0 00 001107'		MOVEI	T1,RECMS2	;<SP>RECORD<SP>
  1383	000513'	260 17 0 00 001456'		CALL	O$STRG
  1384	000514'	200 01 0 00 005306'		MOVE	T1,RECORD
  1385	000515'	260 17 0 00 002474'		CALL	O$DECW
  1386	000516'	260 17 0 00 001007'		CALL	RBRKNL		;CLOSE INFO

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 34-1
DUMPR	MAC	21-FEB-77 17:03		MAJOR DUMP LOOP

  1387	000517'	260 17 0 00 003523'		CALL	FRCTYO		;MAKE IT SHOW IF TTY OUTPUT....KEEP USER HAPPY
  1388	000520'	325 05 0 00 000447'	D$DMP1:	JUMPGE	P1,DUMP$G	;JUMP IF FILE COUNT IS OK 
  1389	000521'	607 12 0 00 000020 		TLNN	DC,(DV.MTA)	;NO--SEE IF MTA
  1390	000522'	634 05 0 00 000005 		 TDZA	P1,P1		;NO--MAKE SURE FILE COUNT IS ZERO
  1391	000523'	525 05 0 00 377777 		HRLOI	P1,377777	;YES--DO WHOLE TAPE (SEE HOLDMP)
  1392	000524'	254 00 0 00 000447'		JRST	DUMP$G		;BEGIN TO DUMP
  1393	000525'	260 17 0 00 004407'	E$$CDM:	ERROR.	EF$FTL,CDM,<CANT DUMP MULTIPLE FILES ON DIRECTORY DEVICE>
  1394	000526'	300400	005604'

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 35
DUMPR	MAC	21-FEB-77 17:03		DUMP WORD ROUTINE

  1395					SUBTTL	DUMP WORD ROUTINE
  1396
  1397	000527'	607 00 0 00 004000 	D$WORD:	TLNN	F,FL$IND	;IN /INDUSTRY MODE?
  1398	000530'	254 00 1 14 000422'		 PJRST	@DMPWRD(M)	;NO--JUST GO DUMP THE SUCKER
  1399	000531'	254 00 1 14 000563'		PJRST	@DMPINW(M)	;YES--DO IT THAT WAY
  1400
  1401					;HERE TO CONVERT IBM 360/370 FLOATING POINT WORD TO PDP10
  1402
  1403	000532'	322 01 0 00 003050'	INDFLO:	JUMPE	T1,FMTFLO	;ALL DONE IF ZERO
  1404	000533'	331 00 0 00 000001 		SKIPL	T1		;SET NEGATIVE FLAG IF NEEDED
  1405	000534'	634 03 0 00 000003 		 TDZA	T3,T3		;NO--FLAG POSITIVE
  1406	000535'	474 03 0 00 000000 		  SETO	T3,		;YES--REMEMBER THAT
  1407	000536'	400 02 0 00 000000 		SETZ	T2,		;CLEAR T2
  1408	000537'	245 01 0 00 000010 		ROTC	T1,^D8		;SEPARATE EXPONENT AND MANTISSA
  1409	000540'	275 02 0 00 000100 		SUBI	T2,^D64		;COMPUTE ACTUAL FRACTION
  1410	000541'	240 02 0 00 000002 		ASH	T2,2		;MAKE PDP-10 EXPONENT BASE 2
  1411	000542'	315 02 0 00 005605'		CAMGE	T2,[EXP -^D128]	;WAS IT TOO SMALL?
  1412	000543'	254 00 0 00 000556'		 JRST	TOOSML		;YES--MAKE IT SMALLEST PDP-10 WORD
  1413	000544'	303 02 0 00 000177 		CAILE	T2,^D127	;TOO BIG?
  1414	000545'	254 00 0 00 000560'		 JRST	TOOBIG		;YES
  1415	000546'	271 02 0 00 000200 		ADDI	T2,^D128	;ADD PDP EXPONENT BIAS
  1416	000547'	245 01 0 00 777767 	FLTROT:	ROTC	T1,-^D9		;REMAKE THE NUMBER
  1417	000550'	145 01 0 00 000000 		FADRI	T1,(0.0)	;NORMALIZE IT
  1418	000551'	322 03 0 00 003050'		JUMPE	T3,FMTFLO	;ALL DONE IF POSITIVE
  1419	000552'	250 02 0 00 000001 		EXCH	T2,T1		;NEED TO NEGATE IT
  1420	000553'	400 01 0 00 000000 		SETZ	T1,		;SO SUBTRACT IT FROM ZERO
  1421	000554'	154 01 0 00 000002 		FSBR	T1,T2		;..
  1422	000555'	254 00 0 00 003050'		JRST	FMTFLO		;DUMP PDP10 FLOATING PT NUMBER
  1423	000556'	400 01 0 00 000000 	TOOSML:	SETZ	T1,		;DO ZERO IF TOO SMALL
  1424	000557'	254 00 0 00 003050'		JRST	FMTFLO		;OUTPUT A ZERO
  1425	000560'	201 01 0 00 000377 	TOOBIG:	MOVEI	T1,377		;MAKE LARGEST DEC10 NUMBER
  1426	000561'	474 02 0 00 000000 		SETO	T2,		;...
  1427	000562'	254 00 0 00 000547'		JRST	FLTROT
  1428
  1429	000563'	000000	003001'		DMPINW:	EXP	FMTRDX		;OCTAL
  1430	000564'	000000	002546'			EXP	O$IASC		;EIGHT BIT ASCII
  1431	000565'	000000	002557'			EXP	O$BYTW		;BYTE
  1432	000566'	000000	002602'			EXP	O$EBCW		;EBCDIC
  1433	000567'	000000	000532'			EXP	INDFLO		;FLOATING POINT
  1434	000570'	000000	005551'			EXP	[HALT]		;HALFWORD (SNH)
  1435	000571'	000000	001476'			EXP	O$HEXI		;HEX 
  1436						EXP	[ASH	T1,-4	;INTEGER--POSITION NUMBER
  1437	000572'	000000	005606'				JRST	FMTINT]	;AND DO IT
  1438	000573'	000000	003001'			EXP	FMTRDX		;OCTAL
  1439	000574'	000000	000576'			EXP	E$$SWI		;SIXBIT
  1440	000575'	000000	000576'			EXP	E$$SWI		;SYMBOL
  1441
  1442	000576'	260 17 0 00 004407'	E$$SWI:	ERROR.	EF$FTL,SWI,<SIXBIT/SYMBOL WITH /INDUSTRY ILLEGAL>
  1443	000577'	300400	005620'

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 36
DUMPR	MAC	21-FEB-77 17:03		DUMP WORD ROUTINE

  1444					;HERE AT END OF FILE
  1445
  1446	000600'	607 12 0 00 000004 	DUMPEF:	TLNN	DC,(DV.DIR)	;DIRECTORY DEVICE?
  1447	000601'	663 00 0 00 000100 		 TLOE	F,FL$EOT	;MTA--SET/CHEK EOT FLAG
  1448	000602'	254 00 0 00 000615'		  JRST	DMPEND		;DIRECTORY DEVICE OR EOT
  1449	000603'	260 17 0 00 001206'		CALL	FILEND		;OUTPUT END OF FILE MESSAGE
  1450	000604'	260 17 0 00 000205'		CALL	INPCLS		;CLOSE INPUT FILE
  1451					IFN FT$WLD,<
  1452	000605'	200 01 0 00 005511'		MOVE	T1,[XWD SVINOB,OPNBLK] ;RESET OPEN BLOCK
  1453	000606'	251 01 0 00 005114'		BLT	T1,LKPBLK+.RBTIM;(COPY LKPBLK ALSO IN CASE CAN'T REOPEN)
  1454	000607'	050 01 0 00 005054'		OPEN	INPC,OPNBLK	;GET THE DEVICE AGAIN
  1455						 JRST	[IFE FT$SEG,<CALL UPSCN> ;CAN'T--GET HISEG IF NEEDED
  1456							CALL	E.DFO##	;CAN'T--REPORT ERROR
  1457	000610'	254 00 0 00 005621'			JRST	DMPE.1]	;AND GO FINISH UP
  1458	000611'	260 17 0 00 000144'		CALL	OPNI.A		;SETUP BUFFERS , ETC.
  1459					>;END IFN FT$WLD
  1460					IFE FT$WLD,<
  1461						CALL	OPNINP		;REOPEN INPUT FILE
  1462					>;END IFE FT$WLD
  1463	000612'	367 05 0 00 000447'		SOJG	P1,DUMP$G	;JUMP IF MORE FILES
  1464	000613'	327 06 0 00 000447'		JUMPG	P2,DUMP$G	;OR MORE RECORDS
  1465	000614'	254 00 0 00 000623'		JRST	DMPE.1		;END OF DUMP
  1466
  1467					;HERE AT END OF DUMP
  1468
  1469	000615'				DMPEND:
  1470	000615'	603 00 0 00 000100 		TLNE	F,FL$EOT	;GET HERE WITH END OF TAPE?
  1471	000616'	254 00 0 00 000623'		 JRST	DMPE.1		;YES--DON'T OUTPUT END OF FILE MESSAGE
  1472	000617'	561 01 0 00 777776 		HRROI	T1,FN$END	;GET END FUNCTION
  1473	000620'	312 01 0 11 000000 		CAME	T1,(A)		;IS IT NEXT ON THE LIST
  1474						 JRST	[CALL	O$CRLF	;NO--NEW LINE
  1475	000621'	254 00 0 00 005624'			JRST	DMPE.1]	;AND SKIP
  1476	000622'	260 17 0 00 001206'		CALL	FILEND		;YES--OUTPUT END MESSAGE
  1477	000623'	201 01 0 00 000652'	DMPE.1:	MOVEI	T1,ENDMS1	;FIRST PART OF MESSAGE
  1478	000624'	260 17 0 00 001456'		CALL	O$STRG		;SEND IT
  1479	000625'	200 01 0 00 005307'		MOVE	T1,TOTFIL	;GET # FILES DUMPED
  1480	000626'	322 01 0 00 000632'		JUMPE	T1,DMPE.2	;JUMP IF NONE
  1481	000627'	260 17 0 00 002474'		CALL	O$DECW		;SEND FILES
  1482	000630'	201 01 0 00 000656'		MOVEI	T1,ENDMS2	;GET MESAGE
  1483	000631'	260 17 0 00 001456'		CALL	O$STRG		;SEND IT
  1484	000632'	200 01 0 00 005310'	DMPE.2:	MOVE	T1,TOTREC	;AND RECORDS
  1485	000633'	260 17 0 00 002474'		CALL	O$DECW		;OUTPUT THEM
  1486	000634'	607 12 0 00 000020 		TLNN	DC,(DV.MTA)	;MTA INPUT?
  1487	000635'	603 00 0 00 600000 		 TLNE	F,FL$FOR!FL$PHY	;NO--/FORTRA OR /IREAD?
  1488	000636'	334 01 0 00 005626'		  SKIPA	T1,[EXP ENDMS3]	;MTA OR /FORTRA OR /IREAD
  1489	000637'	201 01 0 00 000663'		  MOVEI	T1,ENDMS4	;MUST BE STRAIGHT DISK INPUT
  1490	000640'	260 17 0 00 001456'		CALL	O$STRG		;SEND IT
  1491	000641'	201 01 0 00 000665'		MOVEI	T1,ENDMS5	;FINAL MESSAGE
  1492	000642'	260 17 0 00 001456'		CALL	O$STRG		;SEND IT
  1493	000643'	260 17 0 00 003523'		CALL	FRCTYO		;IF TTY, FORCE OUTPUT OUT TO KEEP USER HAPPY
  1494	000644'	561 01 0 00 777776 		HRROI	T1,FN$END	;GET END FUNCTION
  1495	000645'	312 01 0 11 000000 		CAME	T1,0(A)		;IS IT COMING UP?
  1496	000646'	254 00 0 00 000354'		 JRST	DMPLUP		;NO--BACK FOR MORE
  1497	000647'	201 01 0 00 000670'		MOVEI	T1,ENDMSG	;YES--GET END MESSAGE
  1498	000650'	260 17 0 00 001456'		CALL	O$STRG		;END THE WORLD

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 36-1
DUMPR	MAC	21-FEB-77 17:03		DUMP WORD ROUTINE

  1499	000651'	254 00 0 00 003523'		PJRST	FRCTYO		;RETURN, FORCING OUTPUT IF TTY
  1500
  1501	000652'				ENDMS1:	ASCIZ$	<[DMPTOT TOTAL OF >
  1502	000656'				ENDMS2:	ASCIZ$	< FILES AND >
  1503	000661'				ENDMS3:	ASCIZ$	< RECORDS>
  1504	000663'				ENDMS4:	ASCIZ$	< BLOCKS>
  1505					ENDMS5:	ASCIZ$	< IN DUMP]
  1506					>
  1507					ENDMSG:	ASCIZ$	<[DMPERD END OF REQUESTED DUMP]
  1508					>
  1509

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 37
DUMPR	MAC	21-FEB-77 17:03		OUTPUT INITIAL HEADER 

  1510					SUBTTL	OUTPUT INITIAL HEADER 
  1511
  1512	000677'	260 17 0 00 000000*	INIHDR:	CALL	.SAVE1##	;MIGHT AS WELL
  1513	000700'	336 00 0 00 005425'		SKIPN	TITLEB		;WAS THERE A /TITLE?
  1514	000701'	254 00 0 00 000705'		JRST	INIH.1		;NO
  1515	000702'	201 01 0 00 005425'		MOVEI	T1,TITLEB	;YES--GET ADDRESS
  1516	000703'	260 17 0 00 001456'		CALL	O$STRG		;SEND IT
  1517	000704'	260 17 0 00 001434'		CALL	O$CRLF		;NEW LINE
  1518	000705'	260 17 0 00 001434'	INIH.1:	CALL	O$CRLF		;AND ANOTHER
  1519	000706'	201 01 0 00 000761'		MOVEI	T1,IMES1	;FIRST PART OF MESSAGE
  1520	000707'	260 17 0 00 001456'		CALL	O$STRG		;PLEASE EXCUSE THE COMMENTS
  1521	000710'	201 01 0 00 001437'		MOVEI	T1,O$CHAR	;BUT THIS CODE IS VERY SELF-EXPLANATORY
  1522	000711'	260 17 0 00 000000*		CALL	.TYOCH##	;SETUP MY OUTPUT ROUTINE WITH SCAN
  1523						SAVE$	T1		;REMEMBER OLD WON
  1524	000713'	260 17 0 00 001011'		CALL	TINSPC		;TYPE OUT THE INPUT FILE SPEC
  1525	000714'	607 12 0 00 000020 		TLNN	DC,(DV.MTA)	;IS INPUT A MAGTAPE?
  1526	000715'	254 00 0 00 000743'		 JRST	INIH.4		;NO
  1527	000716'	336 00 0 00 005304'		SKIPN	REELID		;YES--WAS THERE A REELID ON THE TAPE?
  1528	000717'	254 00 0 00 000724'		 JRST	INIH.3		;NO
  1529	000720'	201 01 0 00 000771'		MOVEI	T1,IMES5	;GET THE MESSAGE
  1530	000721'	260 17 0 00 001456'		CALL	O$STRG		;SEND IT
  1531	000722'	200 01 0 00 005304'		MOVE	T1,REELID	;GET THE REELID
  1532	000723'	260 17 0 00 002460'		CALL	O$SIXW		;SEND IT
  1533	000724'	260 17 0 00 001466'	INIH.3:	CALL	O$SPAC		;SPACE OVER
  1534	000725'	201 05 0 00 000001 		MOVEI	P1,INPC		;GET CHANNEL
  1535
  1536	000726'	047 05 0 00 000112 		MTCHR.	P1,		;GET CHARACTERISTICS
  1537	000727'	400 05 0 00 000000 		 SETZ	P1,		;SNH
  1538	000730'	602 05 0 00 000020 		TRNE	P1,MT.7TR	;IS IT SEVEN TRACK?
  1539	000731'	334 01 0 00 005627'		 SKIPA	T1,[EXP "7"]	;YES--SETUP
  1540	000732'	201 01 0 00 000071 		  MOVEI	T1,"9"		;NO--MUST BE 9
  1541	000733'	260 17 0 00 001437'		CALL	O$CHAR		;SEND IT
  1542	000734'	201 01 0 00 000774'		MOVEI	T1,IMES6	;GET "<SP>TRACK"
  1543	000735'	260 17 0 00 001456'		CALL	O$STRG		;SEND IT
  1544	000736'	135 01 0 00 005630'		LDB	T1,[POINT 3,P1,35] ;GET DENSITY
  1545	000737'	200 01 0 01 000777'		MOVE	T1,DENTBL(T1)	;GET STRING ADDRESS
  1546	000740'	260 17 0 00 001456'		CALL	O$STRG		;TELL DENSITY
  1547	000741'	201 01 0 00 000776'		MOVEI	T1,BPIMES	;TELL WHAT WE JUST TOLD
  1548	000742'	260 17 0 00 001456'		CALL	O$STRG		;TELL IT
  1549	000743'	201 01 0 00 000763'	INIH.4:	MOVEI	T1,IMES2
  1550	000744'	260 17 0 00 001456'		CALL	O$STRG
  1551	000745'	260 17 0 00 000000*		CALL	.TDATN##	;ADD THE DATE
  1552	000746'	201 01 0 00 000764'		MOVEI	T1,IMES3
  1553	000747'	260 17 0 00 001456'		CALL	O$STRG
  1554	000750'	260 17 0 00 000000*		CALL	.TTIMN##	;AND THE TIME
  1555	000751'	260 17 0 00 001007'		CALL	RBRKNL		;NEXT LINE
  1556	000752'	201 01 0 00 000765'		MOVEI	T1,IMES4
  1557	000753'	260 17 0 00 001456'		CALL	O$STRG
  1558	000754'	260 17 0 00 001014'		CALL	CMDOUT		;DUMP THE COMMAND
  1559	000755'	260 17 0 00 001007'		CALL	RBRKNL
  1560	000756'	260 17 0 00 003523'		CALL	FRCTYO		;FORCE OUT TO TTY IF IT IS TTY
  1561						RESTR$	T1
  1562	000760'	254 00 0 00 000711*		PJRST	.TYOCH##	;GIVE SCAN BACK ITS OUTPUT RTN
  1563
  1564	000761'				IMES1:	ASCIZ$	<[DUMP OF >
  1565	000763'				IMES2:	ASCIZ$	< ON >
  1566	000764'				IMES3:	ASCIZ$	< AT >
  1567	000765'				IMES4:	ASCIZ$	<[DMPCMD COMMAND: >
  1568	000771'				IMES5:	ASCIZ$	< - REELID=>
  1569	000774'				IMES6:	ASCIZ$	< TRACK/>
  1570	000776'				BPIMES:	ASCIZ$	< BPI>
  1571	000777'	000000	005631'		DENTBL:	[ASCIZ	/(DEFAULT)/]
  1572	001000'	000000	005633'			[ASCIZ	/200/]
  1573	001001'	000000	005634'			[ASCIZ	/556/]
  1574	001002'	000000	005635'			[ASCIZ	/800/]
  1575	001003'	000000	005636'			[ASCIZ	/1600/]
  1576	001004'	000000	005637'			[ASCIZ	/6250/]
  1577	001005'	000000	005640'			[ASCIZ	/(6)/]
  1578	001006'	000000	005641'			[ASCIZ	/(7)/]
  1579
  1580	001007'	265 01 0 00 001456'	RBRKNL:	PJSP	T1,O$STRG
  1581						ASCIZ	.]
  1582	001010'	135 015 012 000 000 	.
  1583
  1584	001011'	201 01 0 00 005126'	TINSPC:	MOVEI	T1,SVINOB	;POINT TO OPEN BLOCK
  1585	001012'	201 02 0 00 005131'		MOVEI	T2,SVINLK	;AND LOOKUP BLOCK
  1586	001013'	254 00 0 00 000000*		PJRST	.TOLEB##	;TYPE INPUT SPEC AND RETURN

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 38
DUMPR	MAC	21-FEB-77 17:03		DUMP THE COMMAND TO THE DUMP FILE

  1587					SUBTTL	DUMP THE COMMAND TO THE DUMP FILE
  1588
  1589	001014'	200 02 0 00 005642'	CMDOUT:	MOVE	T2,[POINT 7,CMDBFR]	;INIT THE POINTER
  1590	001015'	400 03 0 00 000000 		SETZ	T3,		;CLEAR THE HYPHEN FLAG (CONTINUED COMMANDS)
  1591	001016'	134 01 0 00 000002 	CMDO.1:	ILDB	T1,T2		;GET A CHARACTER
  1592	001017'	322 01 0 00 004307'	CMDO.3:	JUMPE	T1,$POPJ	;?? GOT TO END ??
  1593	001020'	302 01 0 00 000055 		CAIE	T1,"-"		;IS THIS A HYPHEN/
  1594	001021'	254 00 0 00 001030'		 JRST	CMDO.2		;NO--CHECK FURTHER
  1595	001022'	200 01 0 00 000002 		MOVE	T1,T2		;YES--GET NEXT CHARACTER
  1596	001023'	134 01 0 00 000001 		ILDB	T1,T1		;...
  1597	001024'	305 01 0 00 000040 		CAIGE	T1," "		;.GE. A SPACE (ROUGH APPROX OF EOL)
  1598									;THIS WOULD BE LIKE IN A DATE
  1599	001025'	364 03 0 00 001016'		 SOJA	T3,CMDO.1	;PROBABLY EOL--FLAG AND GO
  1600	001026'	201 01 0 00 000055 		MOVEI	T1,"-"		;PROBABLY NOT EOL--RESET HYPHEN
  1601	001027'	254 00 0 00 001043'		JRST	CMDO.4		;AND GO SEND IT
  1602	001030'	302 01 0 00 000011 	CMDO.2:	CAIE	T1,.CHTAB	;IS IT A TAB?
  1603	001031'	301 01 0 00 000040 		 CAIL	T1," "		;OR GE SPACE
  1604	001032'	254 00 0 00 001043'		  JRST	CMDO.4		;YES--GO SEND TO DUMP
  1605	001033'	322 03 0 00 004307'		JUMPE	T3,$POPJ	;IF WE HAVEN'T SEEN A "-" THEN THIS IS THE END
  1606	001034'	400 03 0 00 000000 		SETZ	T3,		;CLEAR HYPHEN FLAG AT EOL
  1607	001035'	302 01 0 00 000015 		CAIE	T1,.CHCRT	;IS IT A CARRIAGE RETURN?
  1608	001036'	254 00 0 00 001016'		JRST	CMDO.1		;NO--MUST BE ALTMODE OR SOME SUCH EOL
  1609	001037'	134 01 0 00 000002 		ILDB	T1,T2		;YES--GET (POSSIBLE LINEFEED)
  1610	001040'	306 01 0 00 000012 		CAIN	T1,.CHLFD	;IS IT?
  1611	001041'	254 00 0 00 001016'		JRST	CMDO.1		;YES--GET NEXT CHARACTER
  1612	001042'	254 00 0 00 001017'		JRST	CMDO.3		;NO--GO PROCESS THIS ONE
  1613	001043'	260 17 0 00 001437'	CMDO.4:	CALL	O$CHAR		;OUTPUT CHARACTER
  1614	001044'	254 00 0 00 001016'		JRST	CMDO.1		;DO MORE

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 39
DUMPR	MAC	21-FEB-77 17:03		OUTPUT RECORD (BLOCK) HEADER

  1615					SUBTTL	OUTPUT RECORD (BLOCK) HEADER
  1616
  1617	001045'	350 00 0 00 005306'	RECHDR:	AOS	RECORD		;COUNT THE RECORD
  1618	001046'	350 00 0 00 005310'		AOS	TOTREC		;AND TOTAL RECORDS
  1619	001047'	603 00 0 00 040000 		TLNE	F,FL$TOT	;TOTALS ONLY?
  1620	001050'	263 17 0 00 000000 		 POPJ	P,		;YES--DONE
  1621	001051'	201 01 0 00 000001 		MOVEI	T1,1		;RESET WRDCNT
  1622	001052'	200 02 0 00 005467'		MOVE	T2,LINRDX	;GET /LINRDX: VALUE
  1623	001053'	302 02 0 00 000001 		CAIE	T2,LRXDEC	;IS IT /LINRDX:DEC?
  1624	001054'	201 01 0 00 000000 		 MOVEI	T1,0		;NO--WORDS START AT ZERO
  1625	001055'	202 01 0 00 005311'		MOVEM	T1,WRDCNT	;SO LINE #'S WILL BE RIGHT(IF NOT /OMIT)
  1626	001056'	607 00 0 00 100000 		TLNN	F,FL$SUM	;/SUMMARY?
  1627	001057'	260 17 0 00 001434'		CALL	O$CRLF		;NEW LINE FOR NEW RECORD
  1628	001060'	260 17 0 00 001434'		CALL	O$CRLF		;AND ANOTHER
  1629	001061'	607 12 0 00 000004 	RECH.1:	TLNN	DC,(DV.DIR)	;DIRECTORY DEVICE?
  1630	001062'	254 00 0 00 001114'		 JRST	RECMTA		;NO--MTA
  1631	001063'	201 01 0 00 001077'		MOVEI	T1,BLKMS1	;YES--GET MESSAGE
  1632	001064'	603 00 0 00 600000 		TLNE	F,FL$FOR!FL$PHY	;/FORTRA OR /IREAD?
  1633	001065'	201 01 0 00 001103'		 MOVEI	T1,BLKMS3	;YES--DIFFERENT MESSAGE
  1634	001066'	260 17 0 00 001456'		CALL	O$STRG
  1635	001067'	200 01 0 00 005306'		MOVE	T1,RECORD	;GET RECORD #
  1636	001070'	260 17 0 00 002474'		CALL	O$DECW
  1637	001071'	201 01 0 00 000072 		MOVEI	T1,":"
  1638	001072'	260 17 0 00 001437'		CALL	O$CHAR
  1639	001073'	574 01 0 00 000013 		HLRE	T1,W		;GET WORD COUNT
  1640	001074'	213 00 0 00 000001 		MOVNS	T1		;MAKE POSITIVE
  1641	001075'	260 17 0 00 002474'		CALL	O$DECW
  1642	001076'	254 00 0 00 001131'		JRST	RECH.2		;REJOIN COD
  1643
  1644	001077'				BLKMS1:	ASCIZ$	<[BLOCK >
  1645	001101'				BLKMS2:	ASCIZ$	< WORDS>
  1646	001103'				BLKMS3:	ASCIZ$	<[RECORD >
  1647	001105'				RECMS1:	ASCIZ$	<[FILE >
  1648	001107'				RECMS2:	ASCIZ$	< RECORD >
  1649	001111'				RECMS3:	ASCIZ$	< CHARACTERS>
  1650

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 40
DUMPR	MAC	21-FEB-77 17:03		OUTPUT RECORD (BLOCK) HEADER

  1651	001114'	201 01 0 00 001105'	RECMTA:	MOVEI	T1,RECMS1
  1652	001115'	260 17 0 00 001456'		CALL	O$STRG
  1653	001116'	200 01 0 00 005305'		MOVE	T1,FILE		;FILE COUNT
  1654	001117'	260 17 0 00 002474'		CALL	O$DECW
  1655	001120'	201 01 0 00 001107'		MOVEI	T1,RECMS2
  1656	001121'	260 17 0 00 001456'		CALL	O$STRG
  1657	001122'	200 01 0 00 005306'		MOVE	T1,RECORD
  1658	001123'	260 17 0 00 002474'		CALL	O$DECW
  1659	001124'	201 01 0 00 000072 		MOVEI	T1,":"
  1660	001125'	260 17 0 00 001437'		CALL	O$CHAR
  1661	001126'	574 01 0 00 000013 		HLRE	T1,W		;WORD COUNT
  1662	001127'	213 00 0 00 000001 		MOVNS	T1
  1663	001130'	260 17 0 00 002474'		CALL	O$DECW
  1664	001131'	201 01 0 00 001101'	RECH.2:	MOVEI	T1,BLKMS2
  1665	001132'	260 17 0 00 001456'		CALL	O$STRG		;SEND IT
  1666	001133'	302 14 0 00 000001 		CAIE	M,MODASC	;/MODE:ASCII?
  1667	001134'	254 00 0 00 001144'		 JRST	RECH.3		;NO
  1668	001135'	260 17 0 00 001466'		CALL	O$SPAC		;SPACE ONE
  1669	001136'	574 01 0 00 000013 		HLRE	T1,W		;YES--GET WORDS AGAIN
  1670	001137'	213 00 0 00 000001 		MOVNS	T1
  1671	001140'	221 01 0 00 000005 		IMULI	T1,5		;CVT TO CHARACTERS
  1672	001141'	260 17 0 00 002474'		CALL	O$DECW		;OUTPUT IT
  1673	001142'	201 01 0 00 001111'		MOVEI	T1,RECMS3	;MESSAGE
  1674	001143'	260 17 0 00 001456'		CALL	O$STRG
  1675	001144'	201 01 0 00 000135 	RECH.3:	MOVEI	T1,"]"		;CLOSE INFO
  1676	001145'	260 17 0 00 001437'		CALL	O$CHAR		;...
  1677	001146'	603 00 0 00 100040 		TLNE	F,FL$OLY!FL$SUM	;ONLY IN EFFECT? (OR /SUMMARY)
  1678	001147'	254 00 0 00 003523'		PJRST	FRCTYO		;YES--NEW LINE STUFF DONE LATER
  1679	001150'	302 14 0 00 000003 		CAIE	M,MODEBC	;MODE EBCDIC?
  1680	001151'	306 14 0 00 000001 		CAIN	M,MODASC	;MODE ASCII?
  1681	001152'	607 00 0 00 020000 		 TLNN	F,FL$OMI	;ASCII OR EBCDIC--AND /OMIT?
  1682	001153'	254 00 0 00 001155'		  JRST	D$NEWL		;NO--DO NEW LINE THING
  1683	001154'	254 00 0 00 001434'		PJRST	O$CRLF		;YES--NEW LINE AND RETURN

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 41
DUMPR	MAC	21-FEB-77 17:03		OUTPUT RECORD (BLOCK) HEADER

  1684					;HERE TO DO WRDCNT AT BEGINNING OF LINE
  1685
  1686	001155'	302 14 0 00 000001 	D$NEWL:	CAIE	M,MODASC	;IF /MODE:ASCII
  1687	001156'	306 14 0 00 000003 		 CAIN	M,MODEBC	;OR /MODE:EBCDIC
  1688	001157'	607 00 0 00 020000 		TLNN	F,FL$OMI	;RIGHT--AND /OMIT?
  1689	001160'	260 17 0 00 001434'		CALL	O$CRLF		;NO--NEW LINE
  1690	001161'	603 00 0 00 020000 		TLNE	F,FL$OMI	;/OMIT?
  1691	001162'	254 00 0 00 001172'		 JRST	D$NEW2		;YES--SKIP A LITTLE
  1692	001163'	200 01 0 00 005311'		MOVE	T1,WRDCNT	;GET THE WORD COUNT
  1693	001164'	200 03 0 00 005467'		MOVE	T3,LINRDX	;GET SPECIFIED LINE # RADIX
  1694	001165'	200 16 0 03 001177'		MOVE	Q,LNOWID-1(T3)	;SETUP Q TO THE WIDTH
  1695	001166'	200 04 0 03 001174'		MOVE	T4,LNORDX-1(T3)	;AND THE RADIX
  1696	001167'	260 17 1 03 001202'		CALL	@LNODSP-1(T3)	;DO LINE NO IN SPECIFIED RADIX
  1697	001170'	201 01 0 00 000057 		MOVEI	T1,"/"		;END THE LINE #
  1698	001171'	260 17 0 00 001437'		CALL	O$CHAR		;(EACH FORMAT DOES A SPACE FIRST)
  1699									;(SO WE DON'T NEED ONE AFTER THE SLASH)
  1700	001172'	260 17 0 00 001270'	D$NEW2:	CALL	D$MSET		;RESET L AND Q
  1701	001173'	272 15 0 00 005311'		ADDM	L,WRDCNT	;UPDATE WRDCNT FOR NEXT LINE
  1702	001174'	263 17 0 00 000000 		POPJ	P,
  1703
  1704					;TABLE OF LINE # (WORD COUNT) RADICES
  1705
  1706	001175'	000000	000012		LNORDX:	EXP	^D10		;
  1707	001176'	000000	000020			EXP	^D16
  1708	001177'	000000	000010			EXP	^D8
  1709
  1710					;WIDTHS OF LINE #S IN SPECIFIED RADIX
  1711
  1712	001200'	000000	000006		LNOWID:	EXP	^D6
  1713	001201'	000000	000007			EXP	^D7
  1714	001202'	000000	000010			EXP	^D8
  1715
  1716	001203'	000000	002735'		LNODSP:	EXP	FMTINT		;INTEGER
  1717	001204'	000000	003002'			EXP	FMTR.1		;HEX
  1718	001205'	000000	003002'			EXP	FMTR.1		;OCTAL

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 42
DUMPR	MAC	21-FEB-77 17:03		OUTPUT END OF FILE MESSAGE

  1719					SUBTTL	OUTPUT END OF FILE MESSAGE
  1720
  1721	001206'				FILEND:	
  1722	001206'	607 00 0 00 040000 		TLNN	F,FL$TOT	;UNLESS /TOTAL
  1723	001207'	260 17 0 00 001434'		CALL	O$CRLF		;NEED NEW LINE
  1724	001210'	607 12 0 00 000020 		TLNN	DC,(DV.MTA)	;IS IT MAGTAPE?
  1725	001211'	603 00 0 00 600000 		 TLNE	F,FL$FOR!FL$PHY	;DSK--FORTRAN OR PHYSICS?
  1726	001212'	334 01 0 00 005643'		  SKIPA	T1,[FILMS1]	;MTA OR FORTRAN/IREAD
  1727	001213'	201 01 0 00 001253'		MOVEI	T1,FILMS3	;JUST STRAIGHT DISK INPUT
  1728	001214'	260 17 0 00 001456'		CALL	O$STRG
  1729	001215'	200 01 0 00 005306'		MOVE	T1,RECORD	;RECORDS
  1730	001216'	260 17 0 00 002474'		CALL	O$DECW		;...
  1731	001217'	607 12 0 00 000020 		TLNN	DC,(DV.MTA)	;MTA INPUT?
  1732	001220'	603 00 0 00 600000 		TLNE	F,FL$FOR!FL$PHY	;DSK--IS IT FORTRAN OR IREAD?
  1733	001221'	334 01 0 00 005644'		 SKIPA	T1,[FILMS2]	;MTA OR RECORD-ORIENDTED DISK INPUT
  1734	001222'	201 01 0 00 001255'		MOVEI	T1,FILMS4	;DISK BLOCK ORIENTED
  1735	001223'	260 17 0 00 001456'		CALL	O$STRG
  1736	001224'	200 01 0 00 005305'		MOVE	T1,FILE
  1737	001225'	260 17 0 00 002474'		CALL	O$DECW
  1738	001226'	201 01 0 00 000763'		MOVEI	T1,IMES2	;"<SP>ON<SP>"
  1739	001227'	260 17 0 00 001456'		CALL	O$STRG
  1740	001230'	201 01 0 00 001437'		MOVEI	T1,O$CHAR
  1741	001231'	260 17 0 00 000760*		CALL	.TYOCH##
  1742						SAVE$	T1
  1743	001233'	260 17 0 00 001011'		CALL	TINSPC		;TYPE OUT THE INPUT FILE SPEC.
  1744						RESTR$	T1
  1745	001235'	260 17 0 00 001231*		CALL	.TYOCH##
  1746	001236'	260 17 0 00 001007'		CALL	RBRKNL
  1747	001237'	402 00 0 00 005306'		SETZM	RECORD		;MOVING ALONG
  1748	001240'	607 12 0 00 000020 		TLNN	DC,(DV.MTA)	;ONLY MTA HAS MULTIPLE FILES
  1749	001241'	254 00 0 00 003523'		 PJRST	FRCTYO		;SO DON'T MESS UP THE TOTALS NOW
  1750	001242'	350 00 0 00 005305'		AOS	FILE
  1751	001243'	350 00 0 00 005307'		AOS	TOTFIL
  1752	001244'	254 00 0 00 003523'		PJRST	FRCTYO		;FORCE OUTPUT IF TTY OUTPUT
  1753
  1754	001245'				FILMS1:	ASCIZ$	<[DMPRIF >
  1755	001247'				FILMS2:	ASCIZ$	< RECORDS IN FILE >
  1756	001253'				FILMS3:	ASCIZ$	<[DMPBIF >
  1757	001255'				FILMS4:	ASCIZ$	< BLOCKS IN FILE >
  1758

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 43
DUMPR	MAC	21-FEB-77 17:03		/MODE -- SETUP CHARS/WORD AND WORDS/LINE

  1759					SUBTTL	/MODE -- SETUP CHARS/WORD AND WORDS/LINE
  1760
  1761	001261'	200 14 0 00 000006 	D$MOD:	MOVE	M,P2		;SET M TO THE MODE
  1762	001262'	306 14 0 00 000002 		CAIN	M,MODBYT	;IS THIS /MODE:BYTE?
  1763	001263'	254 00 0 00 001362'		 JRST	D$MBYT		;YES--SET IT UP
  1764	001264'	306 14 0 00 000005 		CAIN	M,MODHAL	;SEE IF /MODE:HALF
  1765	001265'	254 00 0 00 001427'		 JRST	D$MHLF		;YES--SETUP
  1766	001266'	260 17 0 00 001270'		CALL	D$MSET		;SETUP L AND Q
  1767	001267'	254 00 0 00 000354'		JRST	DMPLUP		;CONTINUE
  1768
  1769					;HERE TO SET MODE--CALLED AT END OF LINE TO RESET L AND Q
  1770
  1771	001270'	306 14 0 00 000002 	D$MSET:	CAIN	M,MODBYT	;/MODE:BYTE?
  1772	001271'	254 00 0 00 001305'		 JRST	MSETBY		;YES--DO IT
  1773	001272'	260 17 0 00 001310'		CALL	GETWID		;GET THE WIDTH REQUIRED FOR THE DUMP
  1774	001273'	603 00 0 00 004000 		TLNE	F,FL$IND	;/INDUSTRY?
  1775	001274'	334 16 0 14 001347'		 SKIPA	Q,MODTBI(M)	;YES--GET RIGHT SIZE FOR THAT
  1776	001275'	200 16 0 14 001334'		MOVE	Q,MODTBL(M)	;GET WIDTH OF ONE WORDS' WORTH
  1777	001276'	603 00 0 00 000004 		TLNE	F,FL$RDX	;/RADIX IN EFFECT?
  1778	001277'	200 16 0 00 005474'		 MOVE	Q,USRWID	;YES--GET COMPUTED WORD WIDTH
  1779	001300'	231 01 0 16 000000 		IDIVI	T1,(Q)		;COMPUTE WORDS/LINE
  1780	001301'	336 00 0 00 000002 		SKIPN	T2		;IF A ZERO REMAINDER
  1781	001302'	275 01 0 00 000001 		 SUBI	T1,1		;MUST SUBTRACT ONE--80 CPL DOES A FREE CRLF
  1782	001303'	550 15 0 00 000001 		HRRZ	L,T1		;PUT IN L FOR COUNTING
  1783	001304'	263 17 0 00 000000 		POPJ	P,
  1784	001305'	200 15 0 00 005300'	MSETBY:	MOVE	L,BYTBPL	;GET BYTES/LINE
  1785	001306'	200 16 0 00 005276'		MOVE	Q,BYTDPB	;AND DIGITS/BYTE
  1786	001307'	263 17 0 00 000000 		POPJ	P,
  1787
  1788	001310'	606 12 0 00 000010 	GETWID:	TRNN	DC,(DV.TTY)	;IS DUMP TO THE TTY?
  1789	001311'	254 00 0 00 001325'		 JRST	GETW.1		;NO--
  1790	001312'	333 01 0 00 005475'		SKIPLE	T1,FLWIDT	;WAS /WIDTH GIVEN (OR IS THIS 1ST TIME?)
  1791	001313'	254 00 0 00 001327'		 JRST	GETW.2		;GOT IT--GO AHEAD
  1792	001314'	200 01 0 00 005645'		MOVE	T1,[XWD 2,T2]	;SETUP TO DO A TRMOP
  1793	001315'	201 02 0 00 001012 		MOVEI	T2,.TOWID	;GET THE WIDTH FUNCTION
  1794	001316'	047 03 0 00 000030 		PJOB	T3,		;FIND MY JOB #
  1795	001317'	047 03 0 00 000115 		TRMNO.	T3,		;TO FIND TTY UDX
  1796	001320'	334 00 0 00 000000 		 SKIPA			;CAN'T--JUST USE DEFAULT AD.WID
  1797	001321'	047 01 0 00 000116 		TRMOP.	T1,		;READ TTY WIDTH SETTING
  1798	001322'	201 01 0 00 000120 		 MOVEI	T1,AD.WID	;CAN'T FOR SOME REASON--USE A GOOD DEFAULT
  1799	001323'	202 01 0 00 005475'		MOVEM	T1,FLWIDT	;SET FOR LATER USE
  1800	001324'	254 00 0 00 001327'		JRST	GETW.2		;JUMP IN TO COMMON CODE
  1801	001325'	337 01 0 00 005475'	GETW.1:	SKIPG	T1,FLWIDT	;NOT TTY--WAS /WIDTH GIVEN/
  1802	001326'	201 01 0 00 000204 		 MOVEI	T1,MX.WID	;NO--USE ^D132
  1803	001327'	603 00 0 00 020000 	GETW.2:	TLNE	F,FL$OMI	;OMITTING LINE NUMBERS?
  1804	001330'	263 17 0 00 000000 		 POPJ	P,		;YES--DONE
  1805	001331'	200 02 0 00 005467'		MOVE	T2,LINRDX	;NO--GET LINE RADIX
  1806	001332'	274 01 0 02 001177'		SUB	T1,LNOWID-1(T2)	;UNCOUNT WHAT WE WILL EAT FOR WORD COUNT
  1807	001333'	263 17 0 00 000000 		POPJ	P,		;RETURN
  1808
  1809	001334'	000000	000015		MODTBL:	EXP	^D13		;OCTAL
  1810	001335'	000000	000006			EXP	^D6		;ASCII
  1811	001336'	777777	777777			EXP	-1		;BYTYE
  1812	001337'	000000	000005			EXP	^D5		;EBCDIC
  1813	001340'	000000	000017			EXP	^D15		;FLOAT

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 43-1
DUMPR	MAC	21-FEB-77 17:03		/MODE -- SETUP CHARS/WORD AND WORDS/LINE

  1814	001341'	777777	777777			EXP	-1		;HALF
  1815	001342'	000000	000012			EXP	^D10		;HEX
  1816	001343'	000000	000016			EXP	^D14		;INTEGER
  1817	001344'	000000	000015			EXP	^D13		;OCTAL
  1818	001345'	000000	000007			EXP	^D7		;SIXBIT
  1819	001346'	000000	000030			EXP	^D24		;SYMBOL
  1820
  1821	001347'	000000	000014		MODTBI:	EXP	^D12		;OCTAL
  1822	001350'	000000	000005			EXP	^D5		;ASCII
  1823	001351'	777777	777777			EXP	-1		;BYTE
  1824	001352'	000000	000005			EXP	^D5		;EBCDIC
  1825	001353'	000000	000017			EXP	^D15		;FLOATING POINT
  1826	001354'	777777	777777			EXP	-1		;HALF
  1827	001355'	000000	000011			EXP	^D9		;HEX
  1828	001356'	000000	000014			EXP	^D12		;INTEGER
  1829	001357'	000000	000014			EXP	^D12		;INTEGER
  1830	001360'	777777	777777			EXP	-1		;SIXBIT
  1831	001361'	777777	777777			EXP	-1		;SYMBOL

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 44
DUMPR	MAC	21-FEB-77 17:03		/MODE -- SETUP FOR /MODE:BYTE

  1832					SUBTTL	/MODE -- SETUP FOR /MODE:BYTE
  1833
  1834	001362'	205 02 0 00 440000 	D$MBYT:	MOVSI	T2,(POINT)	;BEGIN TO FORM BYTE PTR
  1835	001363'	541 02 0 00 000005 		HRRI	T2,P1		;WILL LOAD FROM P1
  1836	001364'	137 05 0 00 005646'		DPB	P1,[POINT 6,T2,11] ;SET SIZE IN
  1837	001365'	202 02 0 00 005273'		MOVEM	T2,BYTPTR	;SAVE FOR LATER
  1838	001366'	603 00 0 00 004000 		TLNE	F,FL$IND	;/INDUSTRY?
  1839	001367'	334 01 0 00 005647'		 SKIPA	T1,[EXP ^D32]	;YES
  1840	001370'	201 01 0 00 000044 		  MOVEI	T1,^D36		;NO--FULL WORD
  1841	001371'	231 01 0 05 000000 		IDIVI	T1,(P1)		;GET BYTES/WORD
  1842	001372'	202 01 0 00 005274'		MOVEM	T1,BYTBPW	;...
  1843	001373'	202 02 0 00 005275'		MOVEM	T2,BYTREM	;SAVE REMAINDER BYTES ALSO
  1844	001374'	200 01 0 00 000005 		MOVE	T1,P1		;COPY SIZE
  1845	001375'	260 17 0 00 001417'		CALL	GMBWID		;GET THE WIDTH FOR A BYTE
  1846	001376'	202 01 0 00 005276'		MOVEM	T1,BYTDPB	;SAVE FOR LATER
  1847	001377'	200 01 0 00 005274'		MOVE	T1,BYTBPW	;GET BYTES/WORD
  1848	001400'	220 01 0 00 005276'		IMUL	T1,BYTDPB	;TIMES DIGITS/BYTE
  1849	001401'	270 01 0 00 005274'		ADD	T1,BYTBPW	;+ SLASHES AND SPACE
  1850	001402'	202 01 0 00 005277'		MOVEM	T1,BYTWID	;= WIDTH OF WORD OF BYTES
  1851	001403'	336 01 0 00 005275'		SKIPN	T1,BYTREM	;WAS THERE A REMAINDER?
  1852	001404'	254 00 0 00 001411'		 JRST	D$MBY1		;NO
  1853	001405'	260 17 0 00 001417'		CALL	GMBWID		;GET WIDTH OF THAT
  1854	001406'	340 01 0 00 000000 		 AOJ	T1,		;COUNT THE COMMA TOO
  1855	001407'	272 01 0 00 005277'		ADDM	T1,BYTWID	;ADD INTO WIDTH
  1856	001410'	202 01 0 00 005301'		MOVEM	T1,BYTRDB	;SAVE FOR LATER USE
  1857	001411'	260 17 0 00 001310'	D$MBY1:	CALL	GETWID		;GET THE WIDTH TO USE FOR OUTPUT
  1858	001412'	230 01 0 00 005277'		IDIV	T1,BYTWID	;TO GET WORDS/LINE
  1859	001413'	202 01 0 00 005300'		MOVEM	T1,BYTBPL	;SAVE BYTES/LINE
  1860	001414'	200 15 0 00 000001 		MOVE	L,T1		;COPY 
  1861	001415'	350 00 0 00 005276'		AOS	BYTDPB		;+1 SO FMTRDX WORKS
  1862	001416'	254 00 0 00 000354'		JRST	DMPLUP		;CONTINUE
  1863
  1864					;HERE WITH T1=BYTE SIZE
  1865					;RETURN T1=DIGITS REQUIRED TO DISPLAY IT.  USES T2,T3
  1866
  1867	001417'	200 03 0 00 005473'	GMBWID:	MOVE	T3,USERDX	;GET /RADIX:N OR 8
  1868	001420'	400 02 0 00 000000 		SETZ	T2,		;ZERO POWER OF TWO COUNT
  1869	001421'	242 03 0 00 777777 		LSH	T3,-1		;DIVIDE BY TWO
  1870	001422'	332 00 0 00 000003 		 SKIPE	T3		;DONE?
  1871	001423'	344 02 0 00 001421'		  AOJA	T2,.-2		;NO--LOOP AROUND
  1872	001424'	231 01 0 02 000000 		IDIVI	T1,(T2)		;YES--COMPUTE DIGITS REQUIRED
  1873	001425'	322 02 0 00 004307'		JUMPE	T2,$POPJ	;JUMP IF ALL IS WELL
  1874	001426'	344 01 0 00 004307'		 AOJA	T1,$POPJ	;NO--NEED ONE MORE DIGIT--SO DO IT
  1875
  1876					;HERE FOR /MODE:HALF SETUP
  1877
  1878	001427'	201 05 0 00 000022 	D$MHLF:	MOVEI	P1,^D18		;SETUP THE BYTE SIZE
  1879	001430'	603 00 0 00 004000 		TLNE	F,FL$IND	;SEE IF /INDUSTRY
  1880	001431'	201 05 0 00 000020 		 MOVEI	P1,^D16		;YES--DIFFERENT SIZE
  1881	001432'	201 14 0 00 000002 		MOVEI	M,MODBYT	;SETUP M TO BYTE MODE
  1882	001433'	254 00 0 00 001362'		JRST	D$MBYT		;DO BYTE SETUP

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 45
DUMPR	MAC	21-FEB-77 17:03		DUMP FILE OUTPUT ROUTINES

  1883					SUBTTL	DUMP FILE OUTPUT ROUTINES
  1884
  1885					;O$CRLF -- OUTPUT CRLF TO DUMP FILE
  1886
  1887	001434'	201 01 0 00 000015 	O$CRLF:	MOVEI	T1,.CHCRT	;CARRIAGE RETURN
  1888	001435'	260 17 0 00 001437'		CALL	O$CHAR		;DUMP IT
  1889	001436'	201 01 0 00 000012 		MOVEI	T1,.CHLFD	;LINED FEED
  1890							;FALL INTO O$CHAR TO SEND LINEFEED
  1891
  1892					;O$CHAR -- OUTPUT CHARACTER IN T1 TO DUMP FILE
  1893
  1894	001437'	377 00 0 00 005271'	O$CHAR:	SOSG	OBHR+.BFCTR	;ROOM IN THE BUFFER?
  1895	001440'	254 00 0 00 001445'		 JRST	O$BUFR		;NO--MAKE SOME
  1896	001441'	136 01 0 00 005270'	O$CHR1:	IDPB	T1,OBHR+.BFPTR	;STORE CHARACTER
  1897	001442'	661 00 0 00 000001 		TLO	F,FL$ODN	;WE HAVE DONE SOME OUTPUT
  1898	001443'	350 00 0 00 005167'		AOS	CHRKNT		;COUNT FOR PEOPLE WHO NEED IT
  1899	001444'	263 17 0 00 000000 		POPJ	P,
  1900	001445'	260 17 0 00 000000*	O$BUFR:	CALL	.PSH4T##	;PRESERVE T1-4 (XCTIO USES T2 AT LEAST)
  1901	001446'	260 17 0 00 004205'		CALL	XCTIO		;WRITE A BUFFER
  1902	001447'	057 02 0 00 000000 		 OUT	OUTC,		;XCT'D
  1903	001450'	334 00 0 00 000000 		  SKIPA			;?? DEVICE IS FULL OR EOT ??
  1904						JRST	[PUSHJ	P,.POP4T## ;RESTORE REGS
  1905	001451'	254 00 0 00 005650'			JRST	O$CHR1]	;AND CONTINUE
  1906	001452'	260 17 0 00 004407'		ERROR.	EF$ERR,ODF,<OUTPUT DEVICE IS FULL>
  1907	001453'	300000	005657'
  1908	001454'	260 17 0 00 000224'		CALL	OUTCLS		;TRY TO PRESERVE WHAT WE CAN
  1909	001455'	254 00 0 00 004475'		PJRST	ERRFTL		;GO DIE
  1910
  1911					;O$STRG -- OUTPUTS ASCIZ STRING POINTED TO BY T1 TO DUMP FILE
  1912
  1913	001456'	505 01 0 00 440700 	O$STRG:	HRLI	T1,(POINT 7)	;FORM PTR
  1914	001457'	261 17 0 00 000001 		PUSH	P,T1		;SAVE ON PDL
  1915	001460'	134 01 0 17 000000 	O$STR1:	ILDB	T1,(P)		;GET CHAR
  1916	001461'	322 01 0 00 004367'		JUMPE	T1,TPOPJ	;JUMP IS END OF STRING
  1917	001462'	260 17 0 00 001437'		CALL	O$CHAR		;WRITE THE CHARACTER
  1918	001463'	254 00 0 00 001460'		JRST	O$STR1		;LOOP

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 46
DUMPR	MAC	21-FEB-77 17:03		DUMP FILE OUTPUT ROUTINES

  1919					;O$SPEC -- OUTPUT SPACE IF NOT /OMIT
  1920					;O$SPAC -- OUTPUT A SPACE
  1921					;O$DOT  -- OUTPUT A DOT
  1922					;O$SLSH -- OUTPUT A SLASH
  1923					;O$TABC -- OUTPUT A TAB
  1924					;O$COMA -- OUTPUT A COMMA
  1925
  1926	001464'	603 00 0 00 020000 	O$SPEC:	TLNE	F,FL$OMI	;/OMIT?
  1927	001465'	263 17 0 00 000000 		POPJ	P,		;YES
  1928	001466'	334 01 0 00 005647'	O$SPAC:	SKIPA	T1,[EXP " "]	;DO A SPACE
  1929	001467'	201 01 0 00 000056 	O$DOT:	MOVEI	T1,"."		;DO A DOT
  1930	001470'	254 00 0 00 001437'		PJRST	O$CHAR
  1931	001471'	334 01 0 00 005660'	O$TABC:	SKIPA	T1,[EXP	"	"] ;GET A TAB
  1932	001472'	201 01 0 00 000057 	O$SLSH:	MOVEI	T1,"/"		;GET ONE
  1933	001473'	254 00 0 00 001437'		PJRST	O$CHAR		;AND SEND IT
  1934	001474'	201 01 0 00 000054 	O$COMA:	MOVEI	T1,","		;GET A COMMA
  1935	001475'	254 00 0 00 001437'		PJRST	O$CHAR		;SEND IT
  1936
  1937					;O$HEXW --OUTPUT 36 BIT HEX WORD
  1938					;O$HEXI -- OUTPUT 32 BIT HEX WORD (INDUSTRY)
  1939
  1940	001476'	334 03 0 00 005661'	O$HEXI:	SKIPA	T3,[DEC 8]	;8 HEX CHARS
  1941	001477'	201 03 0 00 000011 	O$HEXW:	MOVEI	T3,^D9		;9 HEX CHARS
  1942	001500'	200 02 0 00 000001 		MOVE	T2,T1		;POSITION NUMBER
  1943	001501'	260 17 0 00 001466'		CALL	O$SPAC		;SPACE OVER A CHARACTER
  1944	001502'	400 01 0 00 000000 	O$HEX1:	SETZ	T1,		;CLEAR RESULT
  1945	001503'	246 01 0 00 000004 		LSHC	T1,4		;GET A HEX DIGIT
  1946	001504'	260 17 0 00 002510'		CALL	O$DIGT		;OUTPUT IT
  1947	001505'	367 03 0 00 001502'		SOJG	T3,O$HEX1	;DO 8 OR 9
  1948	001506'	263 17 0 00 000000 		POPJ	P,

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 47
DUMPR	MAC	21-FEB-77 17:03		SYMBOLIC OUTPUT

  1949					SUBTTL	SYMBOLIC OUTPUT
  1950
  1951					;HERE TO OUTPUT WORD IN T1 IN SYMBOLIC FORMAT
  1952
  1953	001507'				O$SYMW:
  1954					IFE FT$ISD,<
  1955						ERROR.	EF$FTL,SNI,<SYMBOLIC DUMP NOT IMPLEMENTED>
  1956					>;END IFE FT$ISD
  1957					IFN FT$ISD,<
  1958	001507'	260 17 0 00 000677*		CALL	.SAVE1##	;SAVE P1
  1959	001510'	200 05 0 00 000001 		MOVE	P1,T1		;COPY WORD
  1960	001511'	260 17 0 00 001466'		CALL	O$SPAC		;SPACE OVER
  1961	001512'	402 00 0 00 005167'		SETZM	CHRKNT		;CLEAR COUNTER
  1962	001513'	135 01 0 00 005662'		LDB	T1,[POINT 9,P1,8];GET OP CODE
  1963	001514'	301 01 0 00 000700 		CAIL	T1,700		;SEE IF DIRECT I/O INSTR
  1964	001515'	254 00 0 00 001572'		 JRST	DIOIOW		;YES--GO DO IT
  1965	001516'	305 01 0 00 000040 		CAIGE	T1,40		;SEE IF LUUO
  1966	001517'	254 00 0 00 001556'		 JRST	UUOIOW		;YES--GO DO THAT
  1967	001520'	200 01 0 01 001560'		MOVE	T1,MNETBL-40(T1);NO--GET OPCODE
  1968	001521'	260 17 0 00 002460'		CALL	O$SIXW		;SHOW IT
  1969	001522'	260 17 0 00 001466'	OSYM.2:	CALL	O$SPAC		;GET A SPACE
  1970	001523'	260 17 0 00 001466'		CALL	O$SPAC		;AND ONE MORE
  1971	001524'	135 01 0 00 005663'		LDB	T1,[POINT 4,P1,12] ;GET AC FIELD
  1972	001525'	322 01 0 00 001530'	OSYM2A:	JUMPE	T1,OSYM.4	;JUMP IF 0
  1973	001526'	260 17 0 00 002473'		CALL	O$OCTW		;SHOW IT
  1974	001527'	260 17 0 00 001474'		CALL	O$COMA		;AND A COMMA
  1975	001530'	201 01 0 00 000100 	OSYM.4:	MOVEI	T1,"@"		;IN CASE INDIRECTION NEEDED
  1976	001531'	603 05 0 00 000020 		TLNE	P1,(1B13)	;CHECK IF SO
  1977	001532'	260 17 0 00 001437'		CALL	O$CHAR		;SEND THE INDIRECT BIT
  1978	001533'	550 01 0 00 000005 		HRRZ	T1,P1		;GET RH 18 BITS
  1979	001534'	260 17 0 00 002473'		CALL	O$OCTW		;SEND IT
  1980	001535'	135 01 0 00 005664'		LDB	T1,[POINT 4,P1,17] ;SEE IF INDEX FIELD
  1981	001536'	322 01 0 00 001546'		JUMPE	T1,OSYM.6	;JUMP IF NO INDEX
  1982	001537'	261 17 0 00 000001 		PUSH	P,T1		;SAVE INDEX
  1983	001540'	201 01 0 00 000050 		MOVEI	T1,"("		;START INDEX FIELD
  1984	001541'	260 17 0 00 001437'		CALL	O$CHAR		;SEND IT
  1985	001542'	262 17 0 00 000001 		POP	P,T1		;GET INDEX FIELD
  1986	001543'	260 17 0 00 002473'		CALL	O$OCTW		;SEND IT
  1987	001544'	201 01 0 00 000051 		MOVEI	T1,")"		;CLOSE INDEX
  1988	001545'	260 17 0 00 001437'		CALL	O$CHAR		;SEND IT
  1989	001546'	200 01 0 00 005167'	OSYM.6:	MOVE	T1,CHRKNT	;GET COUNT TO HERE
  1990	001547'	275 01 0 00 000027 		SUBI	T1,^D23		;THIS MANY CHARS IN FULL INSTR
  1991	001550'	325 01 0 00 004307'		JUMPGE	T1,$POPJ	;JUMP IF NO PADDING NEEDED
  1992	001551'	261 17 0 00 000001 		PUSH	P,T1		;NO--SAVE AMT NEEDED
  1993	001552'	260 17 0 00 001466'		CALL	O$SPAC		;SEND ONE
  1994	001553'	355 00 0 17 000000 		AOSGE	(P)		;SEE IF DONE
  1995	001554'	254 00 0 00 001552'		 JRST	.-2		;NO--DO MORE
  1996	001555'	254 00 0 00 004367'		JRST	TPOPJ		;CLEAR PDL AND RETURN
  1997
  1998					;HERE IF UUO IS 0-40
  1999
  2000	001556'	322 01 0 00 001567'	UUOIOW:	JUMPE	T1,UUO000	;JUMP IF ILL UUO
  2001	001557'	201 01 0 00 005665'		MOVEI	T1,[ASCIZ/UUO/]
  2002	001560'	260 17 0 00 001456'		CALL	O$STRG		;SEND UUO
  2003	001561'	135 02 0 00 005662'		LDB	T2,[POINT 9,P1,8] ;GET OP CODE

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 47-1
DUMPR	MAC	21-FEB-77 17:03		SYMBOLIC OUTPUT

  2004	001562'	207 00 0 00 000002 		MOVSS	T2		;MOVE TO LH
  2005	001563'	242 02 0 00 000011 		LSH	T2,^D9		;PUT TO HIGH 9 BITS
  2006	001564'	201 03 0 00 000003 		MOVEI	T3,3		;TYPE 3 OCTAL DIGITS
  2007	001565'	260 17 0 00 002774'		CALL	FMTO.1		;TYPE THEM
  2008	001566'	254 00 0 00 001522'		JRST	OSYM.2		;CONTINUE
  2009
  2010	001567'	205 01 0 00 720000 	UUO000:	MOVSI	T1,'Z  '	;GET A SIXBIT "Z"
  2011	001570'	260 17 0 00 002460'		CALL	O$SIXW		;SEND SIXBIT (WILL SEND NULLS AS BLANKS)
  2012	001571'	254 00 0 00 001522'		PJRST	OSYM.2		;CONTINUE
  2013
  2014					;HERE FOR DIRECT I/O INSTRS
  2015
  2016	001572'	135 01 0 00 005666'	DIOIOW:	LDB	T1,[POINT 3,P1,12] ;GET 3 BITS THAT TELL THE TALE
  2017	001573'	200 01 0 01 001610'		MOVE	T1,IOINTB(T1)	;GET THE SIXBIT FOR IT
  2018	001574'	260 17 0 00 002460'		CALL	O$SIXW		;TYPE IT OUT
  2019	001575'	260 17 0 00 001466'		CALL	O$SPAC		;AND THEN TWO SPACES
  2020	001576'	260 17 0 00 001466'		CALL	O$SPAC		;...
  2021	001577'	135 01 0 00 005667'		LDB	T1,[POINT 7,P1,9] ;GET DEVICE CODE
  2022	001600'	254 00 0 00 001525'		JRST	OSYM2A		;GO JUMP INTO THE PROCESSING
  2023
  2024	001601'	554 01 0 00 000005 	SYMXWD:	HLRZ	T1,P1		;GET LH
  2025	001602'	260 17 0 00 002473'		CALL	O$OCTW		;SHOW LH
  2026	001603'	201 01 0 00 005670'		MOVEI	T1,[ASCIZ/,,/]	;SOME COMMAS
  2027	001604'	260 17 0 00 001456'		CALL	O$STRG
  2028	001605'	550 01 0 00 000005 		HRRZ	T1,P1		;GET RH
  2029	001606'	260 17 0 00 002473'		CALL	O$OCTW		;SHOW RH
  2030	001607'	254 00 0 00 001546'		JRST	OSYM.6		;GO FINISH UP
  2031
  2032	001610'	42 54 53 51 00 00 	IOINTB:	SIXBIT	/BLKI/
  2033	001611'	44 41 64 41 51 00 		SIXBIT	/DATAI/
  2034	001612'	42 54 53 57 00 00 		SIXBIT	/BLKO/
  2035	001613'	44 41 64 41 57 00 		SIXBIT	/DATAO/
  2036	001614'	43 57 56 57 00 00 		SIXBIT	/CONO/
  2037	001615'	43 57 56 51 00 00 		SIXBIT	/CONI/
  2038	001616'	43 57 56 63 72 00 		SIXBIT	/CONSZ/
  2039	001617'	43 57 56 63 57 00 		SIXBIT	/CONSO/
  2040
  2041					;SIXBIT TABLE OF INSTR MNENOMICS
  2042
  2043					DEFINE X(A)<IRP A,<SIXBIT/A/>>
  2044
  2045	001620'				MNETBL:
  2046	001620'	43 41 54 54 00 00 	X (<CALL  ,INIT  ,UUO042,UUO043,UUO044,UUO045,UUO046,CALLI ,OPEN  ,TTCALL>)
  2047	001621'	51 56 51 64 00 00 
  2048	001622'	65 65 57 20 24 22 
  2049	001623'	65 65 57 20 24 23 
  2050	001624'	65 65 57 20 24 24 
  2051	001625'	65 65 57 20 24 25 
  2052	001626'	65 65 57 20 24 26 
  2053	001627'	43 41 54 54 51 00 
  2054	001630'	57 60 45 56 00 00 
  2055	001631'	64 64 43 41 54 54 
  2056	001632'	65 65 57 20 25 22 	X (<UUO052,UUO053,UUO054,RENAME,IN    ,OUT   ,SETSTS,STATO ,GETSTS,STATZ >)
  2057	001633'	65 65 57 20 25 23 
  2058	001634'	65 65 57 20 25 24 

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 47-2
DUMPR	MAC	21-FEB-77 17:03		SYMBOLIC OUTPUT

  2059	001635'	62 45 56 41 55 45 
  2060	001636'	51 56 00 00 00 00 
  2061	001637'	57 65 64 00 00 00 
  2062	001640'	63 45 64 63 64 63 
  2063	001641'	63 64 41 64 57 00 
  2064	001642'	47 45 64 63 64 63 
  2065	001643'	63 64 41 64 72 00 
  2066	001644'	51 56 42 65 46 00 	X (<INBUF ,OUTBUF,INPUT ,OUTPUT,CLOSE ,RELEAS,MTAPE ,UGETF ,USETI ,USETO >)
  2067	001645'	57 65 64 42 65 46 
  2068	001646'	51 56 60 65 64 00 
  2069	001647'	57 65 64 60 65 64 
  2070	001650'	43 54 57 63 45 00 
  2071	001651'	62 45 54 45 41 63 
  2072	001652'	55 64 41 60 45 00 
  2073	001653'	65 47 45 64 46 00 
  2074	001654'	65 63 45 64 51 00 
  2075	001655'	65 63 45 64 57 00 
  2076	001656'	54 57 57 53 65 60 	X (<LOOKUP,ENTER ,UJEN  ,UUO101,UUO102,UUO103,UUO104,UUO105,UUO106,UUO107>)
  2077	001657'	45 56 64 45 62 00 
  2078	001660'	65 52 45 56 00 00 
  2079	001661'	65 65 57 21 20 21 
  2080	001662'	65 65 57 21 20 22 
  2081	001663'	65 65 57 21 20 23 
  2082	001664'	65 65 57 21 20 24 
  2083	001665'	65 65 57 21 20 25 
  2084	001666'	65 65 57 21 20 26 
  2085	001667'	65 65 57 21 20 27 
  2086	001670'	44 46 41 44 00 00 	X (<DFAD  ,DFSB  ,DFMP  ,DFDV  ,UUO114,UUO115,UUO116,UUO117,DMOVE ,DMOVN >)
  2087	001671'	44 46 63 42 00 00 
  2088	001672'	44 46 55 60 00 00 
  2089	001673'	44 46 44 66 00 00 
  2090	001674'	65 65 57 21 21 24 
  2091	001675'	65 65 57 21 21 25 
  2092	001676'	65 65 57 21 21 26 
  2093	001677'	65 65 57 21 21 27 
  2094	001700'	44 55 57 66 45 00 
  2095	001701'	44 55 57 66 56 00 
  2096	001702'	46 51 70 00 00 00 	X (<FIX   ,UUO123,DMOVEM,DMOVNM,FIXR  ,FLTR  ,UFA   ,DFN   ,FSC   ,IBP   >)
  2097	001703'	65 65 57 21 22 23 
  2098	001704'	44 55 57 66 45 55 
  2099	001705'	44 55 57 66 56 55 
  2100	001706'	46 51 70 62 00 00 
  2101	001707'	46 54 64 62 00 00 
  2102	001710'	65 46 41 00 00 00 
  2103	001711'	44 46 56 00 00 00 
  2104	001712'	46 63 43 00 00 00 
  2105	001713'	51 42 60 00 00 00 
  2106	001714'	51 54 44 42 00 00 	X (<ILDB  ,LDB   ,IDPB  ,DPB   ,FAD   ,FADL  ,FADM  ,FADB  ,FADR  ,FADRI ,FADRM >)
  2107	001715'	54 44 42 00 00 00 
  2108	001716'	51 44 60 42 00 00 
  2109	001717'	44 60 42 00 00 00 
  2110	001720'	46 41 44 00 00 00 
  2111	001721'	46 41 44 54 00 00 
  2112	001722'	46 41 44 55 00 00 
  2113	001723'	46 41 44 42 00 00 

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 47-3
DUMPR	MAC	21-FEB-77 17:03		SYMBOLIC OUTPUT

  2114	001724'	46 41 44 62 00 00 
  2115	001725'	46 41 44 62 51 00 
  2116	001726'	46 41 44 62 55 00 
  2117	001727'	46 41 44 62 42 00 	X (<FADRB ,FSB   ,FSBL  ,FSBM  ,FSBB  ,FSBR  ,FSBRI ,FSBRM ,FSBRB ,FMP   >)
  2118	001730'	46 63 42 00 00 00 
  2119	001731'	46 63 42 54 00 00 
  2120	001732'	46 63 42 55 00 00 
  2121	001733'	46 63 42 42 00 00 
  2122	001734'	46 63 42 62 00 00 
  2123	001735'	46 63 42 62 51 00 
  2124	001736'	46 63 42 62 55 00 
  2125	001737'	46 63 42 62 42 00 
  2126	001740'	46 55 60 00 00 00 
  2127	001741'	46 55 60 54 00 00 	X (<FMPL  ,FMPM  ,FMPB  ,FMPR  ,FMPRI ,FMPRM ,FMPRB ,FDV   ,FDVL  ,FDVM  >)
  2128	001742'	46 55 60 55 00 00 
  2129	001743'	46 55 60 42 00 00 
  2130	001744'	46 55 60 62 00 00 
  2131	001745'	46 55 60 62 51 00 
  2132	001746'	46 55 60 62 55 00 
  2133	001747'	46 55 60 62 42 00 
  2134	001750'	46 44 66 00 00 00 
  2135	001751'	46 44 66 54 00 00 
  2136	001752'	46 44 66 55 00 00 
  2137	001753'	46 44 66 42 00 00 	X (<FDVB  ,FDVR  ,FDVRI ,FDVRM ,FDVRB ,MOVE  ,MOVEI ,MOVEM ,MOVES ,MOVS  >)
  2138	001754'	46 44 66 62 00 00 
  2139	001755'	46 44 66 62 51 00 
  2140	001756'	46 44 66 62 55 00 
  2141	001757'	46 44 66 62 42 00 
  2142	001760'	55 57 66 45 00 00 
  2143	001761'	55 57 66 45 51 00 
  2144	001762'	55 57 66 45 55 00 
  2145	001763'	55 57 66 45 63 00 
  2146	001764'	55 57 66 63 00 00 
  2147	001765'	55 57 66 63 51 00 	X (<MOVSI ,MOVSM ,MOVSS ,MOVN  ,MOVNI ,MOVNM ,MOVNS ,MOVM  ,MOVMI ,MOVMM >)
  2148	001766'	55 57 66 63 55 00 
  2149	001767'	55 57 66 63 63 00 
  2150	001770'	55 57 66 56 00 00 
  2151	001771'	55 57 66 56 51 00 
  2152	001772'	55 57 66 56 55 00 
  2153	001773'	55 57 66 56 63 00 
  2154	001774'	55 57 66 55 00 00 
  2155	001775'	55 57 66 55 51 00 
  2156	001776'	55 57 66 55 55 00 
  2157	001777'	55 57 66 55 63 00 	X (<MOVMS ,IMUL  ,IMULI ,IMULM ,IMULB ,MUL   ,MULI  ,MULM  ,MULB  ,IDIV  >)
  2158	002000'	51 55 65 54 00 00 
  2159	002001'	51 55 65 54 51 00 
  2160	002002'	51 55 65 54 55 00 
  2161	002003'	51 55 65 54 42 00 
  2162	002004'	55 65 54 00 00 00 
  2163	002005'	55 65 54 51 00 00 
  2164	002006'	55 65 54 55 00 00 
  2165	002007'	55 65 54 42 00 00 
  2166	002010'	51 44 51 66 00 00 
  2167	002011'	51 44 51 66 51 00 	X (<IDIVI ,IDIVM ,IDIVB ,DIV   ,DIVI  ,DIVM  ,DIVB  ,ASH   ,ROT   ,LSH   >)
  2168	002012'	51 44 51 66 55 00 

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 47-4
DUMPR	MAC	21-FEB-77 17:03		SYMBOLIC OUTPUT

  2169	002013'	51 44 51 66 42 00 
  2170	002014'	44 51 66 00 00 00 
  2171	002015'	44 51 66 51 00 00 
  2172	002016'	44 51 66 55 00 00 
  2173	002017'	44 51 66 42 00 00 
  2174	002020'	41 63 50 00 00 00 
  2175	002021'	62 57 64 00 00 00 
  2176	002022'	54 63 50 00 00 00 
  2177	002023'	52 46 46 57 00 00 	X (<JFFO  ,ASHC  ,ROTC  ,LSHC  ,UUO247,EXCH  ,BLT   ,AOBJP ,AOBJN ,JRST  >)
  2178	002024'	41 63 50 43 00 00 
  2179	002025'	62 57 64 43 00 00 
  2180	002026'	54 63 50 43 00 00 
  2181	002027'	65 65 57 22 24 27 
  2182	002030'	45 70 43 50 00 00 
  2183	002031'	42 54 64 00 00 00 
  2184	002032'	41 57 42 52 60 00 
  2185	002033'	41 57 42 52 56 00 
  2186	002034'	52 62 63 64 00 00 
  2187	002035'	52 46 43 54 00 00 	X (<JFCL  ,XCT   ,MAP   ,PUSHJ ,PUSH  ,POP   ,POPJ  ,JSR   ,JSP   ,JSA   >)
  2188	002036'	70 43 64 00 00 00 
  2189	002037'	55 41 60 00 00 00 
  2190	002040'	60 65 63 50 52 00 
  2191	002041'	60 65 63 50 00 00 
  2192	002042'	60 57 60 00 00 00 
  2193	002043'	60 57 60 52 00 00 
  2194	002044'	52 63 62 00 00 00 
  2195	002045'	52 63 60 00 00 00 
  2196	002046'	52 63 41 00 00 00 
  2197	002047'	52 62 41 00 00 00 	X (<JRA   ,ADD   ,ADDI  ,ADDM  ,ADDB  ,SUB   ,SUBI  ,SUBM  ,SUBB  ,CAI   >)
  2198	002050'	41 44 44 00 00 00 
  2199	002051'	41 44 44 51 00 00 
  2200	002052'	41 44 44 55 00 00 
  2201	002053'	41 44 44 42 00 00 
  2202	002054'	63 65 42 00 00 00 
  2203	002055'	63 65 42 51 00 00 
  2204	002056'	63 65 42 55 00 00 
  2205	002057'	63 65 42 42 00 00 
  2206	002060'	43 41 51 00 00 00 
  2207	002061'	43 41 51 54 00 00 	X (<CAIL  ,CAIE  ,CAILE ,CAIA  ,CAIGE ,CAIN  ,CAIG  ,CAM   ,CAML  ,CAME  >)
  2208	002062'	43 41 51 45 00 00 
  2209	002063'	43 41 51 54 45 00 
  2210	002064'	43 41 51 41 00 00 
  2211	002065'	43 41 51 47 45 00 
  2212	002066'	43 41 51 56 00 00 
  2213	002067'	43 41 51 47 00 00 
  2214	002070'	43 41 55 00 00 00 
  2215	002071'	43 41 55 54 00 00 
  2216	002072'	43 41 55 45 00 00 
  2217	002073'	43 41 55 54 45 00 	X (<CAMLE ,CAMA  ,CAMGE ,CAMN  ,CAMG  ,JUMP  ,JUMPL ,JUMPE ,JUMPLE,JUMPA >)
  2218	002074'	43 41 55 41 00 00 
  2219	002075'	43 41 55 47 45 00 
  2220	002076'	43 41 55 56 00 00 
  2221	002077'	43 41 55 47 00 00 
  2222	002100'	52 65 55 60 00 00 
  2223	002101'	52 65 55 60 54 00 

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 47-5
DUMPR	MAC	21-FEB-77 17:03		SYMBOLIC OUTPUT

  2224	002102'	52 65 55 60 45 00 
  2225	002103'	52 65 55 60 54 45 
  2226	002104'	52 65 55 60 41 00 
  2227	002105'	52 65 55 60 47 45 	X (<JUMPGE,JUMPN ,JUMPG ,SKIP  ,SKIPL ,SKIPE ,SKIPLE,SKIPA ,SKIPGE,SKIPN >)
  2228	002106'	52 65 55 60 56 00 
  2229	002107'	52 65 55 60 47 00 
  2230	002110'	63 53 51 60 00 00 
  2231	002111'	63 53 51 60 54 00 
  2232	002112'	63 53 51 60 45 00 
  2233	002113'	63 53 51 60 54 45 
  2234	002114'	63 53 51 60 41 00 
  2235	002115'	63 53 51 60 47 45 
  2236	002116'	63 53 51 60 56 00 
  2237	002117'	63 53 51 60 47 00 	X (<SKIPG ,AOJ   ,AOJL  ,AOJE  ,AOJLE ,AOJA  ,AOJGE ,AOJN  ,AOJG  ,AOS   >)
  2238	002120'	41 57 52 00 00 00 
  2239	002121'	41 57 52 54 00 00 
  2240	002122'	41 57 52 45 00 00 
  2241	002123'	41 57 52 54 45 00 
  2242	002124'	41 57 52 41 00 00 
  2243	002125'	41 57 52 47 45 00 
  2244	002126'	41 57 52 56 00 00 
  2245	002127'	41 57 52 47 00 00 
  2246	002130'	41 57 63 00 00 00 
  2247	002131'	41 57 63 54 00 00 	X (<AOSL  ,AOSE  ,AOSLE ,AOSA  ,AOSGE ,AOSN  ,AOSG  ,SOJ   ,SOJL  ,SOJE  >)
  2248	002132'	41 57 63 45 00 00 
  2249	002133'	41 57 63 54 45 00 
  2250	002134'	41 57 63 41 00 00 
  2251	002135'	41 57 63 47 45 00 
  2252	002136'	41 57 63 56 00 00 
  2253	002137'	41 57 63 47 00 00 
  2254	002140'	63 57 52 00 00 00 
  2255	002141'	63 57 52 54 00 00 
  2256	002142'	63 57 52 45 00 00 
  2257	002143'	63 57 52 54 45 00 	X (<SOJLE ,SOJA  ,SOJGE ,SOJN  ,SOJG  ,SOS   ,SOSL  ,SOSE  ,SOSLE ,SOSA  >)
  2258	002144'	63 57 52 41 00 00 
  2259	002145'	63 57 52 47 45 00 
  2260	002146'	63 57 52 56 00 00 
  2261	002147'	63 57 52 47 00 00 
  2262	002150'	63 57 63 00 00 00 
  2263	002151'	63 57 63 54 00 00 
  2264	002152'	63 57 63 45 00 00 
  2265	002153'	63 57 63 54 45 00 
  2266	002154'	63 57 63 41 00 00 
  2267	002155'	63 57 63 47 45 00 	X (<SOSGE ,SOSN  ,SOSG  ,SETZ  ,SETZI ,SETZM ,SETZB ,AND   ,ANDI  ,ANDM  >)
  2268	002156'	63 57 63 56 00 00 
  2269	002157'	63 57 63 47 00 00 
  2270	002160'	63 45 64 72 00 00 
  2271	002161'	63 45 64 72 51 00 
  2272	002162'	63 45 64 72 55 00 
  2273	002163'	63 45 64 72 42 00 
  2274	002164'	41 56 44 00 00 00 
  2275	002165'	41 56 44 51 00 00 
  2276	002166'	41 56 44 55 00 00 
  2277	002167'	41 56 44 42 00 00 	X (<ANDB  ,ANDCA ,ANDCAI,ANDCAM,ANDCAB,SETM  ,SETMI ,SETMM ,SETMB ,ANDCM >)
  2278	002170'	41 56 44 43 41 00 

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 47-6
DUMPR	MAC	21-FEB-77 17:03		SYMBOLIC OUTPUT

  2279	002171'	41 56 44 43 41 51 
  2280	002172'	41 56 44 43 41 55 
  2281	002173'	41 56 44 43 41 42 
  2282	002174'	63 45 64 55 00 00 
  2283	002175'	63 45 64 55 51 00 
  2284	002176'	63 45 64 55 55 00 
  2285	002177'	63 45 64 55 42 00 
  2286	002200'	41 56 44 43 55 00 
  2287	002201'	41 56 44 43 55 51 	X (<ANDCMI,ANDCMM,ANDCMB,SETA  ,SETAI ,SETAM ,SETAB ,XOR   ,XORI  ,XORM  >)
  2288	002202'	41 56 44 43 55 55 
  2289	002203'	41 56 44 43 55 42 
  2290	002204'	63 45 64 41 00 00 
  2291	002205'	63 45 64 41 51 00 
  2292	002206'	63 45 64 41 55 00 
  2293	002207'	63 45 64 41 42 00 
  2294	002210'	70 57 62 00 00 00 
  2295	002211'	70 57 62 51 00 00 
  2296	002212'	70 57 62 55 00 00 
  2297	002213'	70 57 62 42 00 00 	X (<XORB  ,IOR   ,IORI  ,IORM  ,IORB  ,ANDCB ,ANDCBI,ANDCBM,ANDCBB,EQV   >)
  2298	002214'	51 57 62 00 00 00 
  2299	002215'	51 57 62 51 00 00 
  2300	002216'	51 57 62 55 00 00 
  2301	002217'	51 57 62 42 00 00 
  2302	002220'	41 56 44 43 42 00 
  2303	002221'	41 56 44 43 42 51 
  2304	002222'	41 56 44 43 42 55 
  2305	002223'	41 56 44 43 42 42 
  2306	002224'	45 61 66 00 00 00 
  2307	002225'	45 61 66 51 00 00 	X (<EQVI  ,EQVM  ,EQVB  ,SETCA ,SETCAI,SETCAM,SETCAB,ORCA  ,ORCAI ,ORCAM >)
  2308	002226'	45 61 66 55 00 00 
  2309	002227'	45 61 66 42 00 00 
  2310	002230'	63 45 64 43 41 00 
  2311	002231'	63 45 64 43 41 51 
  2312	002232'	63 45 64 43 41 55 
  2313	002233'	63 45 64 43 41 42 
  2314	002234'	57 62 43 41 00 00 
  2315	002235'	57 62 43 41 51 00 
  2316	002236'	57 62 43 41 55 00 
  2317	002237'	57 62 43 41 42 00 	X (<ORCAB ,SETCM ,SETCMI,SETCMM,SETCMB,ORCM  ,ORCMI ,ORCMM ,ORCMB ,ORCB  >)
  2318	002240'	63 45 64 43 55 00 
  2319	002241'	63 45 64 43 55 51 
  2320	002242'	63 45 64 43 55 55 
  2321	002243'	63 45 64 43 55 42 
  2322	002244'	57 62 43 55 00 00 
  2323	002245'	57 62 43 55 51 00 
  2324	002246'	57 62 43 55 55 00 
  2325	002247'	57 62 43 55 42 00 
  2326	002250'	57 62 43 42 00 00 
  2327	002251'	57 62 43 42 51 00 	X (<ORCBI ,ORCBM ,ORCBB ,SETO  ,SETOI ,SETOM ,SETOB ,HLL   ,HLLI  ,HLLM  >)
  2328	002252'	57 62 43 42 55 00 
  2329	002253'	57 62 43 42 42 00 
  2330	002254'	63 45 64 57 00 00 
  2331	002255'	63 45 64 57 51 00 
  2332	002256'	63 45 64 57 55 00 
  2333	002257'	63 45 64 57 42 00 

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 47-7
DUMPR	MAC	21-FEB-77 17:03		SYMBOLIC OUTPUT

  2334	002260'	50 54 54 00 00 00 
  2335	002261'	50 54 54 51 00 00 
  2336	002262'	50 54 54 55 00 00 
  2337	002263'	50 54 54 63 00 00 	X (<HLLS  ,HRL   ,HRLI  ,HRLM  ,HRLS  ,HLLZ  ,HLLZI ,HLLZM ,HLLZS ,HRLZ  >)
  2338	002264'	50 62 54 00 00 00 
  2339	002265'	50 62 54 51 00 00 
  2340	002266'	50 62 54 55 00 00 
  2341	002267'	50 62 54 63 00 00 
  2342	002270'	50 54 54 72 00 00 
  2343	002271'	50 54 54 72 51 00 
  2344	002272'	50 54 54 72 55 00 
  2345	002273'	50 54 54 72 63 00 
  2346	002274'	50 62 54 72 00 00 
  2347	002275'	50 62 54 72 51 00 	X (<HRLZI ,HRLZM ,HRLZS ,HLLO  ,HLLOI ,HLLOM ,HLLOS ,HRLO  ,HRLOI ,HRLOM >)
  2348	002276'	50 62 54 72 55 00 
  2349	002277'	50 62 54 72 63 00 
  2350	002300'	50 54 54 57 00 00 
  2351	002301'	50 54 54 57 51 00 
  2352	002302'	50 54 54 57 55 00 
  2353	002303'	50 54 54 57 63 00 
  2354	002304'	50 62 54 57 00 00 
  2355	002305'	50 62 54 57 51 00 
  2356	002306'	50 62 54 57 55 00 
  2357	002307'	50 62 54 57 63 00 	X (<HRLOS ,HLLE  ,HLLEI ,HLLEM ,HLLES ,HRLE  ,HRLEI ,HRLEM ,HRLES ,HRR   >)
  2358	002310'	50 54 54 45 00 00 
  2359	002311'	50 54 54 45 51 00 
  2360	002312'	50 54 54 45 55 00 
  2361	002313'	50 54 54 45 63 00 
  2362	002314'	50 62 54 45 00 00 
  2363	002315'	50 62 54 45 51 00 
  2364	002316'	50 62 54 45 55 00 
  2365	002317'	50 62 54 45 63 00 
  2366	002320'	50 62 62 00 00 00 
  2367	002321'	50 62 62 51 00 00 	X (<HRRI  ,HRRM  ,HRRS  ,HLR   ,HLRI  ,HLRM  ,HLRS  ,HRRZ  ,HRRZI ,HRRZM >)
  2368	002322'	50 62 62 55 00 00 
  2369	002323'	50 62 62 63 00 00 
  2370	002324'	50 54 62 00 00 00 
  2371	002325'	50 54 62 51 00 00 
  2372	002326'	50 54 62 55 00 00 
  2373	002327'	50 54 62 63 00 00 
  2374	002330'	50 62 62 72 00 00 
  2375	002331'	50 62 62 72 51 00 
  2376	002332'	50 62 62 72 55 00 
  2377	002333'	50 62 62 72 63 00 	X (<HRRZS ,HLRZ  ,HLRZI ,HLRZM ,HLRZS ,HRRO  ,HRROI ,HRROM ,HRROS ,HLRO  >)
  2378	002334'	50 54 62 72 00 00 
  2379	002335'	50 54 62 72 51 00 
  2380	002336'	50 54 62 72 55 00 
  2381	002337'	50 54 62 72 63 00 
  2382	002340'	50 62 62 57 00 00 
  2383	002341'	50 62 62 57 51 00 
  2384	002342'	50 62 62 57 55 00 
  2385	002343'	50 62 62 57 63 00 
  2386	002344'	50 54 62 57 00 00 
  2387	002345'	50 54 62 57 51 00 	X (<HLROI ,HLROM ,HLROS ,HRRE  ,HRREI ,HRREM ,HRRES ,HLRE  ,HLREI ,HLREM >)
  2388	002346'	50 54 62 57 55 00 

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 47-8
DUMPR	MAC	21-FEB-77 17:03		SYMBOLIC OUTPUT

  2389	002347'	50 54 62 57 63 00 
  2390	002350'	50 62 62 45 00 00 
  2391	002351'	50 62 62 45 51 00 
  2392	002352'	50 62 62 45 55 00 
  2393	002353'	50 62 62 45 63 00 
  2394	002354'	50 54 62 45 00 00 
  2395	002355'	50 54 62 45 51 00 
  2396	002356'	50 54 62 45 55 00 
  2397	002357'	50 54 62 45 63 00 	X (<HLRES ,TRN   ,TLN   ,TRNE  ,TLNE  ,TRNA  ,TLNA  ,TRNN  ,TLNN  ,TDN   >)
  2398	002360'	64 62 56 00 00 00 
  2399	002361'	64 54 56 00 00 00 
  2400	002362'	64 62 56 45 00 00 
  2401	002363'	64 54 56 45 00 00 
  2402	002364'	64 62 56 41 00 00 
  2403	002365'	64 54 56 41 00 00 
  2404	002366'	64 62 56 56 00 00 
  2405	002367'	64 54 56 56 00 00 
  2406	002370'	64 44 56 00 00 00 
  2407	002371'	64 63 56 00 00 00 	X (<TSN   ,TDNE  ,TSNE  ,TDNA  ,TSNA  ,TDNN  ,TSNN  ,TRZ   ,TLZ   ,TRZE  >)
  2408	002372'	64 44 56 45 00 00 
  2409	002373'	64 63 56 45 00 00 
  2410	002374'	64 44 56 41 00 00 
  2411	002375'	64 63 56 41 00 00 
  2412	002376'	64 44 56 56 00 00 
  2413	002377'	64 63 56 56 00 00 
  2414	002400'	64 62 72 00 00 00 
  2415	002401'	64 54 72 00 00 00 
  2416	002402'	64 62 72 45 00 00 
  2417	002403'	64 54 72 45 00 00 	X (<TLZE  ,TRZA  ,TLZA  ,TRZN  ,TLZN  ,TDZ   ,TSZ   ,TDZE  ,TSZE  ,TDZA  >)
  2418	002404'	64 62 72 41 00 00 
  2419	002405'	64 54 72 41 00 00 
  2420	002406'	64 62 72 56 00 00 
  2421	002407'	64 54 72 56 00 00 
  2422	002410'	64 44 72 00 00 00 
  2423	002411'	64 63 72 00 00 00 
  2424	002412'	64 44 72 45 00 00 
  2425	002413'	64 63 72 45 00 00 
  2426	002414'	64 44 72 41 00 00 
  2427	002415'	64 63 72 41 00 00 	X (<TSZA  ,TDZN  ,TSZN  ,TRC   ,TLC   ,TRCE  ,TLCE  ,TRCA  ,TLCA  ,TRCN  >)
  2428	002416'	64 44 72 56 00 00 
  2429	002417'	64 63 72 56 00 00 
  2430	002420'	64 62 43 00 00 00 
  2431	002421'	64 54 43 00 00 00 
  2432	002422'	64 62 43 45 00 00 
  2433	002423'	64 54 43 45 00 00 
  2434	002424'	64 62 43 41 00 00 
  2435	002425'	64 54 43 41 00 00 
  2436	002426'	64 62 43 56 00 00 
  2437	002427'	64 54 43 56 00 00 	X (<TLCN  ,TDC   ,TSC   ,TDCE  ,TSCE  ,TDCA  ,TSCA  ,TDCN  ,TSCN  ,TRO   >)
  2438	002430'	64 44 43 00 00 00 
  2439	002431'	64 63 43 00 00 00 
  2440	002432'	64 44 43 45 00 00 
  2441	002433'	64 63 43 45 00 00 
  2442	002434'	64 44 43 41 00 00 
  2443	002435'	64 63 43 41 00 00 

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 47-9
DUMPR	MAC	21-FEB-77 17:03		SYMBOLIC OUTPUT

  2444	002436'	64 44 43 56 00 00 
  2445	002437'	64 63 43 56 00 00 
  2446	002440'	64 62 57 00 00 00 
  2447	002441'	64 54 57 00 00 00 	X (<TLO   ,TROE  ,TLOE  ,TROA  ,TLOA  ,TRON  ,TLON  ,TDO   ,TSO   ,TDOE  >)
  2448	002442'	64 62 57 45 00 00 
  2449	002443'	64 54 57 45 00 00 
  2450	002444'	64 62 57 41 00 00 
  2451	002445'	64 54 57 41 00 00 
  2452	002446'	64 62 57 56 00 00 
  2453	002447'	64 54 57 56 00 00 
  2454	002450'	64 44 57 00 00 00 
  2455	002451'	64 63 57 00 00 00 
  2456	002452'	64 44 57 45 00 00 
  2457	002453'	64 63 57 45 00 00 	X (<TSOE  ,TDOA  ,TSOA  ,TDON  ,TSON  >)
  2458	002454'	64 44 57 41 00 00 
  2459	002455'	64 63 57 41 00 00 
  2460	002456'	64 44 57 56 00 00 
  2461	002457'	64 63 57 56 00 00 
  2462					>;END IFN FT$ISD

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 48
DUMPR	MAC	21-FEB-77 17:03		SYMBOLIC OUTPUT

  2463					;O$SIXN -- OUTPUT SIXBIT WORD IN T1 TO DUMP FILE
  2464					;O$SIXW -- DITTO EXCEPT NO SPACE BEFORE WORD
  2465
  2466	002460'	200 02 0 00 000001 	O$SIXW:	MOVE	T2,T1		;POSITION
  2467	002461'	254 00 0 00 002464'		JRST	O$SIX0		;SKIP THE SPACE
  2468	002462'	200 02 0 00 000001 	O$SIXN:	MOVE	T2,T1		;POSITION
  2469	002463'	260 17 0 00 001466'		CALL	O$SPAC		;SPACE ONE
  2470	002464'	201 03 0 00 000006 	O$SIX0:	MOVEI	T3,6		;LOOP COUNT
  2471	002465'	400 01 0 00 000000 	O$SIX1:	SETZ	T1,		;CLEAR
  2472	002466'	245 01 0 00 000006 		ROTC	T1,6		;PEEL OFF A CHARACTER
  2473	002467'	271 01 0 00 000040 		ADDI	T1," "		;ASCIIIZE IT
  2474	002470'	260 17 0 00 001437'		CALL	O$CHAR		;DUMP IT
  2475	002471'	367 03 0 00 002465'		SOJG	T3,O$SIX1	;DO ALL
  2476	002472'	263 17 0 00 000000 		POPJ	P,
  2477
  2478					;O$DECW -- OUTPUT DECIMAL WORD IN T1 TO DUMP FILE
  2479					;O$OCTW -- OUTPUT OCTAL WORD IN T1 TO DUMP FILE
  2480					;O$RDXW -- OUTPUT WORD IN T1 TO DUMP FILE IN RADIX IN T3
  2481					;***THESE ARE UNFORMATTED DUMP ROUTINES
  2482
  2483	002473'	334 03 0 00 005661'	O$OCTW:	SKIPA	T3,[^D8]	;OCTAL
  2484	002474'	201 03 0 00 000012 	O$DECW:	MOVEI	T3,^D10		;DECIMAL
  2485	002475'	325 01 0 00 002502'	O$RDXW:	JUMPGE	T1,ORDXW1	;JUMP IF POSITIVE
  2486	002476'	200 02 0 00 000001 		MOVE	T2,T1		;NO--SAVE NUMBER
  2487	002477'	201 01 0 00 000055 		MOVEI	T1,"-"
  2488	002500'	260 17 0 00 001437'		CALL	O$CHAR
  2489	002501'	200 01 0 00 000002 		MOVE	T1,T2
  2490	002502'	230 01 0 00 000003 	ORDXW1:	IDIV	T1,T3		;DIVIDE BY RADIX
  2491	002503'	217 00 0 00 000002 		MOVMS	T2		;GT MAGNITUDE
  2492	002504'	506 02 0 17 000000 		HRLM	T2,(P)		;SAVE ON PIDDLE LIST
  2493	002505'	332 00 0 00 000001 		SKIPE	T1		;CHECK DONENESS
  2494	002506'	260 17 0 00 002502'		CALL	ORDXW1		;RECURSE
  2495	002507'	554 01 0 17 000000 		HLRZ	T1,(P)		;GET DIGIT
  2496	002510'	271 01 0 00 000060 	O$DIGT:	ADDI	T1,"0"		;ASCIIIZE IT
  2497	002511'	303 01 0 00 000071 		CAILE	T1,"9"		;SEE IF OVERFLOW INTO ALPHAS
  2498	002512'	271 01 0 00 000007 		ADDI	T1,"A"-"9"-1	;YES--PUT IT THERE
  2499	002513'	254 00 0 00 001437'		PJRST	O$CHAR		;RECURSE OR RETURN

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 49
DUMPR	MAC	21-FEB-77 17:03		SYMBOLIC OUTPUT

  2500					;O$ASCW -- DUMP WORD IN T1 IN ASCII
  2501
  2502	002514'	200 02 0 00 000001 	O$ASCW:	MOVE	T2,T1		;POSITION
  2503	002515'	260 17 0 00 001464'		CALL	O$SPEC		;SPACE IF NOT /OMIT
  2504	002516'	201 03 0 00 000005 		MOVEI	T3,5		;5 CHARS/WORD
  2505	002517'	400 01 0 00 000000 	O$ASC1:	SETZ	T1,		;CLEAR
  2506	002520'	245 01 0 00 000007 		ROTC	T1,7		;GRAB A CHARACTER
  2507	002521'	260 17 0 00 002524'		CALL	O$ASCC		;DUMP THE CHARACTER
  2508	002522'	367 03 0 00 002517'		SOJG	T3,O$ASC1	;DO ALL 5
  2509	002523'	263 17 0 00 000000 		POPJ	P,		;DONE
  2510
  2511	002524'	301 01 0 00 000011 	O$ASCC:	CAIL	T1,.CHTAB	;BETWEEN TAB AND CR?
  2512	002525'	303 01 0 00 000015 		 CAILE	T1,.CHCRT	;...
  2513	002526'	306 01 0 00 000007 		 CAIN	T1,.CHBEL	;IS IT A BELL?
  2514	002527'	254 00 0 00 001437'		PJRST	O$CHAR		;TAB/LF/VT/FF/CR/BELL--GO PRINT IT
  2515	002530'	603 00 0 00 020000 		TLNE	F,FL$OMI	;/OMIT?
  2516	002531'	254 00 0 00 002536'		 JRST	O$ASC5		;YES--HANDLE SLIGHTLY DIFFERENT
  2517	002532'	301 01 0 00 000040 		CAIL	T1," "		;LT A SPACE?
  2518	002533'	303 01 0 00 000172 		CAILE	T1,"Z"+40	;AND LE A LOWER CASE Z?
  2519	002534'	201 01 0 00 000077 	O$AQST:	MOVEI	T1,"?"		;NO--MAKE IT A QUESTION MARK
  2520	002535'	254 00 0 00 001437'	O$ASC4:	PJRST	O$CHAR		;OUTPUT IT AND RETURN
  2521
  2522					;HERE TO SEE IF CONTROL CHARACTER (1-37, EXCEPT A FEW SPECIAL ONES)
  2523
  2524	002536'	301 01 0 00 000040 	O$ASC5:	CAIL	T1," "		;MAKE A GROSS CHECK
  2525	002537'	254 00 0 00 001437'		 PJRST	O$CHAR		;TO ELIMINATE A LARGE PART OF THE ASCII SET
  2526						SAVE$	T1		;ITS A REAL CONTROL CHARACTER--SAVE IT
  2527	002541'	201 01 0 00 000136 		MOVEI	T1,"^"		;GET AN ARROW
  2528	002542'	260 17 0 00 001437'		CALL	O$CHAR		;ZIP IT OUT
  2529						RESTR$	T1		;GET CHARACTER BACK
  2530	002544'	201 01 0 01 000100 		MOVEI	T1,100(T1)	;BY MAJIK IT BECOMES VISIBLE
  2531	002545'	254 00 0 00 001437'		PJRST	O$CHAR		;GO PRINT IT
  2532
  2533					;O$IASC -- OUTPUT WORD IN T1 AS EIGHT-BIT ASCII
  2534
  2535	002546'	200 02 0 00 000001 	O$IASC:	MOVE	T2,T1		;SEE COMMENTS FOR O$ASCW
  2536	002547'	260 17 0 00 001464'		CALL	O$SPEC
  2537	002550'	201 03 0 00 000004 		MOVEI	T3,4		;ONLY 4 CHARS WORD
  2538	002551'	400 01 0 00 000000 	O$IAS1:	SETZ	T1,
  2539	002552'	245 01 0 00 000010 		ROTC	T1,^D8
  2540	002553'	405 01 0 00 000177 		ANDI	T1,177		;TRIM TO SEVEN BITS
  2541	002554'	260 17 0 00 002524'		CALL	O$ASCC		;OUTPUT THE CHARACTER
  2542	002555'	367 03 0 00 002551'		SOJG	T3,O$IAS1
  2543	002556'	263 17 0 00 000000 		POPJ	P,

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 50
DUMPR	MAC	21-FEB-77 17:03		SYMBOLIC OUTPUT

  2544					;O$BYTW -- OUTPUT WORD IN BYTE FORMAT
  2545
  2546	002557'	260 17 0 00 000241*	O$BYTW:	CALL	.SAVE3##	;GET A FEW
  2547	002560'	200 05 0 00 000001 		MOVE	P1,T1		;POSITION WORD
  2548	002561'	200 06 0 00 005273'		MOVE	P2,BYTPTR	;PTR TO LOAD BYTES
  2549	002562'	200 07 0 00 005274'		MOVE	P3,BYTBPW	;GET # BYTES / WORD
  2550	002563'	260 17 0 00 001466'		CALL	O$SPAC		;SPACE OUT
  2551	002564'	134 01 0 00 000006 	O$BYT1:	ILDB	T1,P2		;GET A BYTE
  2552	002565'	260 17 0 00 003001'		CALL	FMTRDX		;OUTPUT IT
  2553	002566'	363 07 0 00 002571'		SOJLE	P3,O$BYT2	;DONE?
  2554	002567'	260 17 0 00 001472'		CALL	O$SLSH		;NO--SLASH ONE
  2555	002570'	254 00 0 00 002564'		JRST	O$BYT1		;DO ANOTHER
  2556	002571'	336 02 0 00 005275'	O$BYT2:	SKIPN	T2,BYTREM	;WAS THERE A REMAINDER?
  2557	002572'	263 17 0 00 000000 		POPJ	P,		;NO--DONE
  2558	002573'	260 17 0 00 001472'		CALL	O$SLSH		;DO SLASH
  2559	002574'	137 02 0 00 005671'		DPB	T2,[POINT 6,P2,11] ;SET IN THE SIZE
  2560	002575'	134 01 0 00 000006 		ILDB	T1,P2		;GET THE BYTE
  2561	002576'	200 16 0 00 005301'		MOVE	Q,BYTRDB	;GET WIDTH OF REMAINDER
  2562	002577'	260 17 0 00 003001'		CALL	FMTRDX		;OUTPUT #
  2563	002600'	200 16 0 00 005276'		MOVE	Q,BYTDPB	;RESET Q
  2564	002601'	263 17 0 00 000000 		POPJ	P,

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 51
DUMPR	MAC	21-FEB-77 17:03		PRINT EBCDIC WORD

  2565					SUBTTL PRINT EBCDIC WORD
  2566
  2567					;O$EBCW -- OUTPUT EBCDIC WORD IN T1
  2568
  2569	002602'	200 02 0 00 000001 	O$EBCW:	MOVE	T2,T1		;COPY WORD
  2570	002603'	260 17 0 00 001464'		CALL	O$SPEC		;SPACE IF NEEDED
  2571	002604'	201 03 0 00 000004 		MOVEI	T3,4		;4 CPW
  2572	002605'	400 01 0 00 000000 	O$EBC1:	SETZ	T1,		;CLEAR RESULT
  2573	002606'	245 01 0 00 000010 		ROTC	T1,^D8		;PEEL OFF A CHAR
  2574	002607'	322 01 0 00 002617'		JUMPE	T1,O$EBC3	;IGNORE NULL CHARACTERS
  2575	002610'	260 17 0 00 002621'		CALL	XLTEBC		;XLATE TO ASCII
  2576	002611'	260 17 0 00 001437'		CALL	O$CHAR		;SEND IT
  2577	002612'	373 00 0 00 005260'		SOSLE	EBCKNT		;HAVE WE DONE A LINE?
  2578	002613'	254 00 0 00 002617'		 JRST	O$EBC3		;NO--SEE IF DONE WITH WORD
  2579	002614'	200 01 0 00 005464'		MOVE	T1,S.BLKF	;RESET BLOCK FACTOR
  2580	002615'	202 01 0 00 005260'		MOVEM	T1,EBCKNT	;...
  2581	002616'	260 17 0 00 001434'		CALL	O$CRLF		;NEW LINE PLEASE
  2582	002617'	367 03 0 00 002605'	O$EBC3:	SOJG	T3,O$EBC1	;JUMP IF MORE CHARS THIS WORD
  2583	002620'	263 17 0 00 000000 		POPJ	P,
  2584
  2585	002621'	301 01 0 00 000013 	XLTEBC:	CAIL	T1,.CHVTB	;LT A VERT TAB?
  2586	002622'	254 00 0 00 002627'		 JRST	XLTE.1		;NO
  2587	002623'	306 01 0 00 000005 		CAIN	T1,5		;IS IT A 5 (HORIZ. TAB)?
  2588	002624'	334 01 0 00 005660'		 SKIPA	T1,[EXP .CHTAB]	;YES--MAKE IT ONE
  2589	002625'	201 01 0 00 000077 	XLTQST:	MOVEI	T1,"?"		;FLAG WE DON'T KNOW IT
  2590	002626'	263 17 0 00 000000 		POPJ	P,
  2591	002627'	307 01 0 00 000015 	XLTE.1:	CAIG	T1,.CHCRT	;GT A CR?
  2592	002630'	263 17 0 00 000000 		POPJ	P,		;VERT TAB TO CR
  2593	002631'	301 01 0 00 000201 		CAIL	T1,^D129	;LT LOWER CASE A?
  2594	002632'	254 00 0 00 002644'		 JRST	XLTE.4		;NO--HANDLE ALPHA NUMERICS
  2595	002633'	261 17 0 00 000001 		PUSH	P,T1		;YES--SAVE CHARACTER
  2596	002634'	205 04 0 00 777741 		MOVSI	T4,-N$ECHR	;SET LOOP
  2597	002635'	554 01 0 04 002660'	XLTE.2:	HLRZ	T1,EBCTAB(T4)	;GET EBCDIC FROM TABLE
  2598	002636'	312 01 0 17 000000 		CAME	T1,(P)		;THIS IT?
  2599	002637'	253 04 0 00 002635'		AOBJN	T4,XLTE.2	;NO--LOOP TO END OR FIND ONE
  2600	002640'	262 17 0 00 000001 		POP	P,T1		;CLEAR STACK
  2601	002641'	325 04 0 00 002625'		JUMPGE	T4,XLTQST	;JUMP IF WE DON'T KNOW IT
  2602	002642'	550 01 0 04 002660'		HRRZ	T1,EBCTAB(T4)	;YES--GET ASCII EQUIVALENT
  2603	002643'	263 17 0 00 000000 		POPJ	P,
  2604
  2605	002644'	261 17 0 00 000001 	XLTE.4:	PUSH	P,T1		;SAVE CHARACTER ON PDL
  2606	002645'	205 04 0 00 777771 		MOVSI	T4,-N$ECH2	;GET A LOOPER
  2607	002646'	554 01 0 04 002717'	XLTE.5:	HLRZ	T1,EBCTB1(T4)	;GET LOWER LIMIT
  2608	002647'	313 01 0 17 000000 		CAMLE	T1,(P)		;IN RANGE?
  2609	002650'	254 00 0 00 002653'		 JRST	XLTE.6		;NO
  2610	002651'	550 01 0 04 002717'		HRRZ	T1,EBCTB1(T4)	;HIGH LIMIT
  2611	002652'	315 01 0 17 000000 		CAMGE	T1,(P)		;IN RANGE?
  2612	002653'	253 04 0 00 002646'	XLTE.6:	AOBJN	T4,XLTE.5	;NO--LOOP
  2613	002654'	262 17 0 00 000001 		POP	P,T1		;GET CHARACTER BACK
  2614	002655'	325 04 0 00 002625'		JUMPGE	T4,XLTQST	;NOT IN A GOOD RANGE
  2615	002656'	270 01 0 04 002726'		ADD	T1,EBCTB2(T4)	;CONVERT TO ASCII
  2616	002657'	263 17 0 00 000000 		POPJ	P,

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 52
DUMPR	MAC	21-FEB-77 17:03		PRINT EBCDIC WORD

  2617	002660'	000005	000011		EBCTAB:	XWD	^D5,.CHTAB	;5 BECOMES A TAB
  2618	002661'	000100	000040			XWD	^D64," "
  2619	002662'	000112	000135			XWD	^D74,"]"
  2620	002663'	000113	000056			XWD	^D75,"."
  2621	002664'	000114	000074			XWD	^D76,"<"
  2622	002665'	000115	000050			XWD	^D77,"("
  2623	002666'	000116	000053			XWD	^D78,"+"
  2624	002667'	000117	000136			XWD	^D79,"^"
  2625	002670'	000120	000046			XWD	^D80,"&"
  2626	002671'	000132	000041			XWD	^D90,"!"
  2627	002672'	000133	000044			XWD	^D91,"$"
  2628	002673'	000134	000052			XWD	^D92,"*"
  2629	002674'	000135	000051			XWD	^D93,")"
  2630	002675'	000136	000073			XWD	^D94,";"
  2631	002676'	000137	000133			XWD	^D95,"["
  2632	002677'	000140	000055			XWD	^D96,"-"
  2633	002700'	000141	000057			XWD	^D97,"/"
  2634	002701'	000153	000054			XWD	^D107,","
  2635	002702'	000154	000045			XWD	^D108,"%"
  2636	002703'	000155	000137			XWD	^D109,"_"
  2637	002704'	000156	000076			XWD	^D110,">"
  2638	002705'	000157	000077			XWD	^D111,"?"
  2639	002706'	000172	000072			XWD	^D122,":"
  2640	002707'	000173	000043			XWD	^D123,"#"
  2641	002710'	000174	000100			XWD	^D124,"@"
  2642	002711'	000175	000047			XWD	^D125,"'"
  2643	002712'	000176	000075			XWD	^D126,"="
  2644	002713'	000177	000042			XWD	^D127,""""
  2645	002714'	000300	000077			XWD	^D192,"?"
  2646	002715'	000320	000072			XWD	^D208,":"
  2647	002716'	000377	000137			XWD	^D255,"_"
  2648			000037		N$ECHR==.-EBCTAB
  2649
  2650	002717'	000201	000211		EBCTB1:	XWD	^D129,^D137	;RANGES FOR ALPHA NUMERICS
  2651	002720'	000221	000231			XWD	^D145,^D153
  2652	002721'	000242	000251			XWD	^D162,^D169
  2653	002722'	000301	000311			XWD	^D193,^D201
  2654	002723'	000321	000331			XWD	^D209,^D217
  2655	002724'	000342	000351			XWD	^D226,^D233
  2656	002725'	000360	000371			XWD	^D240,^D249
  2657			000007		N$ECH2==.-EBCTB1
  2658
  2659	002726'	777777	777640		EBCTB2:	EXP	-^D129+"A"-40	;LOWER CASE
  2660	002727'	777777	777631			EXP	-^D145+"J"-40
  2661	002730'	777777	777621			EXP	-^D162+"S"-40
  2662	002731'	777777	777600			EXP	-^D193+"A"
  2663	002732'	777777	777571			EXP	-^D209+"J"
  2664	002733'	777777	777561			EXP	-^D226+"S"
  2665	002734'	777777	777500			EXP	-^D240+"0"

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 53
DUMPR	MAC	21-FEB-77 17:03		FORMATTED INTEGER I/O

  2666					SUBTTL	FORMATTED INTEGER I/O
  2667
  2668	002735'	260 17 0 00 000000*	FMTINT:	CALL	.SAVE2##	;PRESERVE P1-2
  2669	002736'	201 05 0 16 777777 		MOVEI	P1,-1(Q)	;CHARACTERS/WORD (-1 SO WE DON'T COUNT SPACE)
  2670	002737'	400 06 0 00 000000 		SETZ	P2,		;CLEAR COUNT OF WHAT WE SEND
  2671	002740'	200 03 0 00 000001 		MOVE	T3,T1		;COPY NUMBER
  2672	002741'	335 00 0 00 000003 		SKIPGE	T3		;CHECK NEGATIVE
  2673	002742'	665 00 0 00 001000 		 TLOA	F,FL$NEG	;YES--SET FLAG
  2674	002743'	625 00 0 00 001000 		  TLZA	F,FL$NEG	;NO--CLEAR IT
  2675	002744'	213 00 0 00 000003 		MOVNS	T3		;IT WAS NEGATIVE--MAKE IT POSITIVE
  2676	002745'	231 03 0 00 000012 	FMTI.1:	IDIVI	T3,^D10		;GET A DIGIT
  2677	002746'	271 04 0 00 000060 		ADDI	T4,"0"		;MAKES IT ASCII
  2678	002747'	261 17 0 00 000004 		PUSH	P,T4		;SAVE ON PDL
  2679	002750'	340 06 0 00 000000 		AOJ	P2,		;COUNT THE CHARACTER
  2680	002751'	326 03 0 00 002745'		JUMPN	T3,FMTI.1	;JUMP IF MORE
  2681	002752'	274 05 0 00 000006 		SUB	P1,P2		;GET THE DIFFERENCE
  2682	002753'	201 01 0 00 000040 		MOVEI	T1," "		;SET IN CASE WE NEED TO PAD
  2683	002754'	362 05 0 00 002757'		SOJE	P1,FMTSGN	;JUMP IF WE FIT OK
  2684	002755'	260 17 0 00 001437'		CALL	O$CHAR
  2685	002756'	367 05 0 00 002755'		SOJG	P1,.-1		;PAD THEM ALL
  2686	002757'	623 00 0 00 001000 	FMTSGN:	TLZE	F,FL$NEG	;SEE IF NEGATIVE?
  2687	002760'	201 01 0 00 000055 		MOVEI	T1,"-"		;YES--GET ONE (ELSE USE THE SPACE)
  2688	002761'	260 17 0 00 001437'		CALL	O$CHAR		;SEND SPACE OR MINUS SIGN
  2689	002762'	323 06 0 00 004307'		JUMPLE	P2,$POPJ	;JUMP IF WE SENT NO DIGITS?
  2690	002763'	262 17 0 00 000001 		POP	P,T1		;GET ONE BACK
  2691	002764'	260 17 0 00 001437'		CALL	O$CHAR		;SEND IT
  2692	002765'	367 06 0 00 002763'		SOJG	P2,.-2		;DO ALL WE LEFT ON PDL
  2693	002766'	263 17 0 00 000000 		POPJ	P,		;DONE
  2694
  2695					;HERE TO DO (PROBABLY) OCTAL DUMP
  2696					;UNLESS /RADIX WAS SEEN THEN USE FMTRDX
  2697
  2698	002767'	603 00 0 00 000004 	FMTOCT:	TLNE	F,FL$RDX	;SEEN /RADIX?
  2699	002770'	254 00 0 00 003001'		 JRST	FMTRDX		;YES--DO IT THE SLOW WAY
  2700	002771'	201 03 0 00 000014 		MOVEI	T3,^D12		;NO--12 OCTAL DIGITS COMING UP
  2701	002772'	200 02 0 00 000001 		MOVE	T2,T1		;WORD TO T2
  2702	002773'	260 17 0 00 001466'		CALL	O$SPAC		;SPACE OVER ONE
  2703	002774'	400 01 0 00 000000 	FMTO.1:	SETZ	T1,		;CLEAR RESULT
  2704	002775'	246 01 0 00 000003 		LSHC	T1,3		;PEEL OFF A DIGIT
  2705	002776'	260 17 0 00 002510'		CALL	O$DIGT		;OUTPUT IT
  2706	002777'	367 03 0 00 002774'		SOJG	T3,FMTO.1	;DO 12
  2707	003000'	263 17 0 00 000000 		POPJ	P,

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 54
DUMPR	MAC	21-FEB-77 17:03		RADIX FORMATTED OUTPUT

  2708					SUBTTL RADIX FORMATTED OUTPUT
  2709
  2710					;FMTRDX -- DUMP NUMBER IN T1 IN CURRENT RADIX (UNSIGNED)
  2711					;FMTR.1 -- DUMP NUMBER IN T1 IN RADIX IN T4
  2712					;THANKS TO ROGER UPHOFF FOR IDEA FROM DUMPER
  2713
  2714	003001'	200 04 0 00 005473'	FMTRDX:	MOVE	T4,USERDX	;CURRENT RADIX
  2715	003002'	260 17 0 00 002735*	FMTR.1:	CALL	.SAVE2##	;THESE MUST BE SACRED
  2716	003003'	201 05 0 16 777777 		MOVEI	P1,-1(Q)	;COPY Q
  2717	003004'	201 06 0 16 777777 		MOVEI	P2,-1(Q)	;A COUPLE OF TIMES
  2718	003005'	321 01 0 00 003032'	RDXLUP:	JUMPL	T1,RDXADJ	;SPECIAL IF NEGATIVE
  2719	003006'	322 01 0 00 003015'		JUMPE	T1,RADXZR	;WATCH FOR END
  2720	003007'	230 01 0 00 000004 		IDIV	T1,T4		;PEEL OFF A DIGIT
  2721	003010'	271 02 0 00 000060 	RDXCON:	ADDI	T2,"0"		;MAKE IT ASCII
  2722	003011'	303 02 0 00 000071 		CAILE	T2,"9"		;IS IT A DIGIT?
  2723	003012'	271 02 0 00 000007 		ADDI	T2,"A"-"9"-1	;NO--MOVE UP TO ALPHABETICS
  2724	003013'	261 17 0 00 000002 		PUSH	P,T2		;SAVE ON PDL
  2725	003014'	367 05 0 00 003005'		SOJG	P1,RDXLUP	;GO FOR MORE
  2726
  2727	003015'	274 06 0 00 000005 	RADXZR:	SUB	P2,P1		;GET # OF GOOD DIGITS
  2728	003016'	201 01 0 00 000040 		MOVEI	T1," "		;SPACE OVER ONE
  2729	003017'	302 14 0 00 000002 		CAIE	M,MODBYT	;UNLESS /MODE:BYTE
  2730	003020'	260 17 0 00 001437'		CALL	O$CHAR
  2731	003021'	323 05 0 00 003025'		JUMPLE	P1,RDXNZR	;DO WE NEED ANY LEADING ZEROES?
  2732	003022'	201 01 0 00 000060 		MOVEI	T1,"0"		;YES--GET ONE
  2733	003023'	260 17 0 00 001437'		CALL	O$CHAR		;SEND IT
  2734	003024'	367 05 0 00 003023'		SOJG	P1,.-1		;DO ALL NEEDED
  2735	003025'	322 06 0 00 004307'	RDXNZR:	JUMPE	P2,$POPJ	;JUMP IF NO CHARS ON PDL (# WAS 0)
  2736	003026'	262 17 0 00 000001 		POP	P,T1		;GET CHAR OFF PDL
  2737	003027'	260 17 0 00 001437'		CALL	O$CHAR		;SEND IT
  2738	003030'	367 06 0 00 003026'		SOJG	P2,.-2
  2739	003031'	263 17 0 00 000000 		POPJ	P,
  2740
  2741					;HERE IF NUMBER IS NEGATIVE
  2742
  2743	003032'	621 00 0 00 000400 	RDXADJ:	TLZ	F,FL$TMP	;CLEAR TEMP FLAG
  2744	003033'	246 01 0 00 777777 		LSHC	T1,-1		;DIVIDE BY TWO
  2745	003034'	603 02 0 00 400000 		TLNE	T2,(1B0)	;WAS LOW ORDER BIT ON?
  2746	003035'	661 00 0 00 000400 		TLO	F,FL$TMP	;YES--REMEMBER THAT
  2747	003036'	230 01 0 00 000004 		IDIV	T1,T4		;DIVIDE BY RADIX
  2748	003037'	242 01 0 00 000001 		LSH	T1,1		;MULTIPLY QUOTIENT BY 2
  2749	003040'	242 02 0 00 000001 		LSH	T2,1		;SAME FOR REMAINDER
  2750	003041'	623 00 0 00 000400 		TLZE	F,FL$TMP	;DID WE SHIFT OUT A ONE?
  2751	003042'	340 02 0 00 000000 		 AOJ	T2,		;INCRMEMENT REMAINDER BY ONE
  2752	003043'	230 02 0 00 000004 		IDIV	T2,T4		;DIVIDE REMAINDER BY RADIX
  2753	003044'	332 00 0 00 000002 		SKIPE	T2		;IS THERE A QUOTIENT AGAIN?
  2754	003045'	340 01 0 00 000000 		 AOJ	T1,		;YES--ADJUST ORIGINAL QUOTIENT
  2755	003046'	200 02 0 00 000003 		MOVE	T2,T3		;POSITION REMAINDER
  2756	003047'	254 00 0 00 003010'		JRST	RDXCON		;AND CONTINUE

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 55
DUMPR	MAC	21-FEB-77 17:03		FORMATTED FLOATING POINT OUTPUT

  2757					SUBTTL	FORMATTED FLOATING POINT OUTPUT
  2758
  2759					;THANKS TO ROGER UPHOFF FOR ALGORITHM FROM DUMPER
  2760
  2761	003050'	260 17 0 00 004505'	FMTFLO:	CALL	SAVACS		;SAVE ACS
  2762	003051'	621 00 0 00 001420 		TLZ	F,FL$TMP!FL$NEG!FL$FL2 ;CLEAR FLAGS
  2763	003052'	403 04 0 00 000002 		SETZB	T4,T2		;CLEAR EXPONENT
  2764	003053'	325 01 0 00 003056'		JUMPGE	T1,EFMT1	;NUMBER NEGATIVE?
  2765	003054'	210 01 0 00 000001 		MOVN	T1,T1		;YES,NEGATE IT
  2766	003055'	665 00 0 00 001000 		TLOA	F,FL$NEG	;SET NEGATIVE FLAG
  2767
  2768	003056'	322 01 0 00 003131'	EFMT1:	JUMPE	T1,EFMT7	;ESCAPE IF ZERO
  2769	003057'	554 07 0 00 000001 		HLRZ	E1,T1		;EXTRACT EXPONENT
  2770	003060'	242 07 0 00 777767 		LSH	E1,-9		;
  2771	003061'	621 01 0 00 777000 		TLZ	T1,777000	; GET RID OF EXPONENT
  2772	003062'	240 01 0 00 000010 		ASH	T1,^D8		;PUT BIN POINT BETWEEN BITS 0 AND 1
  2773
  2774	003063'	571 10 0 07 777602 	EFMT2:	HRREI	E2,-200+2(E1)	;GET RID OF EXCESS 200
  2775	003064'	221 10 0 00 000232 		IMULI	E2,232		;DEC EXP=LOG10(2)*BIN EXP=.232(OCTAL)*BIN EXP
  2776	003065'	240 10 0 00 777767 		ASH	E2,-^D9		;GET RID OF 3 OCTAL FRACTION DIGITS
  2777	003066'	214 11 0 00 000010 		MOVM	E3,E2		;GET MAGNITUDE OF 10 SCALAR
  2778	003067'	305 11 0 00 000024 		CAIGE	E3,PTLEN	;IS THE POWER OF 10 TABLE LARGE ENOUGH
  2779	003070'	254 00 0 00 003121'		JRST	EFMT3		;YES
  2780	003071'	321 10 0 00 003073'		JUMPL	E2,.+2		;NO, SCALE F BY LARGEST ENTRY
  2781	003072'	334 10 0 00 005672'		SKIPA	E2,[PTLEN]	;GET ADDRESS OF LARGST POSITIVE POWER
  2782	003073'	211 10 0 00 000024 		MOVNI	E2,PTLEN	;GET ADDR OF LARGEST NEGATIVE POWER
  2783	003074'	260 17 0 00 003077'		CALL	BINEXP		;GET CORRESPONDING BINARY POWER OF TWO
  2784	003075'	260 17 0 00 003110'		CALL	FLODIV		;SCALE BY A LARGE POWER OF TEN
  2785	003076'	254 00 0 00 003063'		JRST	EFMT2		;DO SECOND SCALING
  2786
  2787	003077'	200 11 0 00 000010 	BINEXP:	MOVE	E3,E2		;COPY DECIMAL POWER
  2788	003100'	246 11 0 00 777776 		LSHC	E3,-2		;DIVIDE BY 4-- EXP10 HAS 4 ENTRIES/WORD
  2789	003101'	603 12 0 00 400000 		TLNE	E4,(1B0)	;WHICH HALF WORD?
  2790	003102'	334 11 0 11 003347'		SKIPA	E3,EXP10(E3)	;RIGHT HALF
  2791	003103'	554 11 0 11 003347'		HLRZ	E3,EXP10(E3)	;LEFT HALF
  2792	003104'	607 12 0 00 200000 		TLNN	E4,(1B1)	;WHICH QUADRANT?
  2793	003105'	242 11 0 00 777767 		LSH	E3,-^D9		;1ST OR 3RD
  2794	003106'	405 11 0 00 000777 		ANDI	E3,777		 ;MASK TO SIZE
  2795	003107'	263 17 0 00 000000 		POPJ	P,		;DONE

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 56
DUMPR	MAC	21-FEB-77 17:03		FORMATTED FLOATING POINT OUTPUT

  2796					;SCALE SINGLE FRACTION BY A POWER OF TEN
  2797
  2798	003110'	322 10 0 00 004307'	FLODIV:	JUMPE	E2,$POPJ	;IF EXP IS ZERO RETURN
  2799	003111'	270 04 0 00 000010 		ADD	T4,E2		;PUT SCALE FACTOR IN T4
  2800	003112'	275 07 0 11 777577 		SUBI	E1,-200-1(E3)	;SUB BIN POWER OF 10 EXP FROM BIN
  2801									; FRACTION EXP,REMOVE EXCESS 200;
  2802									; -1 ALLOWS FOR ASHC,LH OF E1 IS GARBGE
  2803	003113'	201 02 0 00 000000 		MOVEI	T2,0		;CLEAR LOW WORD
  2804	003114'	315 01 0 10 003315'		CAMGE	T1,HITEN(E2)	;WILL DIVIDE CAUSE A DIVIDE CHECK?
  2805	003115'	364 07 0 00 003117'		SOJA	E1,.+2		;NO, ALLOW FOR NOT DOING ASHC
  2806	003116'	244 01 0 00 777777 		ASHC	T1,-1		;YES, SCALE FRACTION
  2807	003117'	234 01 0 10 003315'		DIV	T1,HITEN(E2)	;SCALE BY A POWER OF TEN
  2808	003120'	263 17 0 00 000000 		POPJ	P,		;RETURN
  2809
  2810	003121'	260 17 0 00 003077'	EFMT3:	CALL	BINEXP		; GET BIN EXP THAT MATCHES DEC EXP
  2811	003122'	303 11 0 07 000000 		CAILE	E3,(E1)		;IS THIS POWER OF TEN .GT. FRACTION?
  2812	003123'	254 00 0 00 003127'		JRST	EFMT4		;YES, IN THE EXPONENT
  2813	003124'	306 11 0 07 000000 		CAIN	E3,(E1)		;MAYBE.
  2814	003125'	311 01 0 10 003315'		CAML	T1,HITEN(E2)	;EXPONENTS ARE THE SAME COMPARE FRACT
  2815	003126'	344 10 0 00 003121'		AOJA	E2,EFMT3	;POWER OF TEN IS ONE TOO SMALL
  2816
  2817	003127'	260 17 0 00 003110'	EFMT4:	CALL	FLODIV		;POWER OF TEN O.K., DO SCALING
  2818	003130'	240 01 0 07 777600 		ASH	T1,-200(E1)	;SCALE FRACTION RIGHT
  2819
  2820	003131'	261 17 0 00 000001 	EFMT7:	PUSH	P,T1		;PRESERVE T1
  2821	003132'	260 17 0 00 001466'		CALL	O$SPAC		;OUTPUT A SPACE
  2822	003133'	262 17 0 00 000001 		POP	P,T1		;GRAB IT BACK
  2823	003134'	201 05 0 00 000016 		MOVEI	P1,^D14		;LOAD FIELD WIDTH
  2824	003135'	201 06 0 00 000010 		MOVEI	P2,^D8		;NO. OF DECIMAL PLACES
  2825	003136'	200 10 0 00 000006 		MOVE	E2,P2		;
  2826	003137'	200 07 0 00 000017 		MOVE	E1,P		;MARK BOTTOM OF STACK
  2827	003140'	261 17 0 00 005673'		PUSH	P,[0]		;ALLOW FOR POSSIBLE OVERFLOW
  2828	003141'	335 11 0 00 000010 		SKIPGE	E3,E2		;GET NUMBER OF DIGITS
  2829	003142'	201 11 0 00 000000 		MOVEI	E3,0		;IF NEGATIVE ADD .5 TO FRACTION
  2830	003143'	270 01 0 11 003246'		ADD	T1,RNDHGH(E3)	;ROUND TO CORRECT NUMBER OF DIGITS
  2831	003144'	271 01 0 00 000001 		ADDI	T1,1		;ROUND A LITTLE MORE
  2832	003145'	627 01 0 00 400000 		TLZN	T1,(1B0)	;DID CARRY PROPAGATE TO BIT 0
  2833	003146'	350 00 0 17 000000 		AOS	(P)		;YES, PROPAGATE CARRY TO LEADING 0
  2834
  2835	003147'	225 01 0 00 000012 	EFMT11:	MULI	T1,^D10		;MULTIPLY BY 10
  2836	003150'	261 17 0 00 000001 		PUSH	P,T1		;STORE DIGIT ON STACK
  2837	003151'	200 01 0 00 000002 		MOVE	T1,T2		;SET UP NEW FRACTION
  2838	003152'	367 11 0 00 003147'		SOJG	E3,EFMT11	;
  2839
  2840	003153'	201 11 0 07 000002 		MOVEI	E3,2(E1)	;GET BASE OF STACKED DIGITS
  2841	003154'	200 12 0 07 000001 		MOVE	E4,1(E1)	; 
  2842	003155'	322 12 0 00 003160'		JUMPE	E4,EFMT14	;DID OVERFLOW OCCUR?
  2843	003156'	275 11 0 00 000001 		SUBI	E3,1		;YES, MOVE BACK BASE POINTER
  2844	003157'	271 04 0 00 000001 		ADDI	T4,1		;NO, INCREMENT EXPONENT

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 57
DUMPR	MAC	21-FEB-77 17:03		FORMATTED FLOATING POINT OUTPUT

  2845	003160'	200 13 0 00 000005 	EFMT14:	MOVE	E5,P1		;GET WIDTH
  2846	003161'	275 13 0 06 000002 		SUBI	E5,2(P2)	;SIGN,POINT,AND CHARS FOLLOWING
  2847	003162'	275 13 0 00 000004 		SUBI	E5,4		;ALLOW FOR  E+00
  2848	003163'	307 13 0 00 000001 	FIT:	CAIG	E5,1		;SPACE FOR LEADING BLANKS?
  2849	003164'	254 00 0 00 003167'		JRST	GO2ERF		;NO LEADING BLANKS
  2850	003165'	260 17 0 00 001466'		CALL	O$SPAC		;OUTPUT ONE
  2851	003166'	364 13 0 00 003163'		SOJA	E5,FIT		;UNTIL ENOUGH
  2852
  2853	003167'	326 10 0 00 003171'	GO2ERF:	JUMPN	E2,.+2		;CHECK FOR NO SIGNIFICANT DIGITS
  2854	003170'	661 00 0 00 000020 		TLO	F,FL$FL2	;ENSURE ZEROS WILL BE PRINTED
  2855	003171'	260 17 0 00 003215'		CALL	SIGN		;OUTPUT SIGN
  2856	003172'	323 13 0 00 003174'		JUMPLE	E5,EFORM2	;NO SPACE LEFT FOR "0"
  2857	003173'	260 17 0 00 003212'		CALL	ZERO		;OUTPUT ZERO
  2858	003174'	260 17 0 00 001467'	EFORM2:	CALL	O$DOT		;AND DECIMAL POINT
  2859	003175'	260 17 0 00 003221'		CALL	DIGIT		;OUTPUT FRACTIONAL DIGIT
  2860	003176'	366 10 0 00 003200'		SOJN	E2,.+2		;TOTAL COUNT EXPIRED?
  2861	003177'	661 00 0 00 000020 		TLO	F,FL$FL2	;YES, FLAG DIGITS EXHAUSTED
  2862	003200'	367 06 0 00 003175'		SOJG	P2,.-3		;RETURN IF MORE DIGITS
  2863
  2864	003201'	201 01 0 00 000105 		MOVEI	T1,"E"		;
  2865	003202'	260 17 0 00 001437'		CALL	O$CHAR		;OUTPUT E
  2866	003203'	325 04 0 00 003205'		JUMPGE	T4,EFORM5	;ALWAYS + IF ZERO
  2867	003204'	661 00 0 00 001000 		TLO	F,FL$NEG	;TRANSFER EXPONENT SIGN
  2868
  2869	003205'	260 17 0 00 003214'	EFORM5:	CALL	PLUS		;PRINT SIGN
  2870	003206'	201 13 0 00 000002 		MOVEI	E5,2		;AND SET DIGIT COUNT
  2871	003207'	200 17 0 00 000007 		MOVE	P,E1		;RESTORE STACK POINTER
  2872	003210'	214 01 0 00 000004 		MOVM	T1,T4		;GET EXPONENT
  2873	003211'	254 00 0 00 003227'		JRST	OUTP1		;
  2874
  2875					;OUTPUT
  2876
  2877	003212'	201 01 0 00 000060 	ZERO:	MOVEI	T1,"0"		;GET A ZERO
  2878	003213'	254 00 0 00 001437'		PJRST	O$CHAR		;PRINT IT
  2879	003214'	334 01 0 00 005674'	PLUS:	SKIPA	T1,[EXP	"+"]	;LOAD UP A PLUS SIGN
  2880	003215'	201 01 0 00 000040 	SIGN:	MOVEI	T1," "		;
  2881	003216'	623 00 0 00 001000 	SIGN1:	TLZE	F,FL$NEG	;IS SIGN NEGATIVE?
  2882	003217'	201 01 0 00 000055 		MOVEI	T1,"-"		;YES, SET IT
  2883	003220'	254 00 0 00 001437'		PJRST	O$CHAR		;PRINT IT
  2884
  2885	003221'	201 01 0 00 000060 	DIGIT:	MOVEI	T1,"0"		;SET DIGIT TO ZERO
  2886	003222'	603 00 0 00 000020 		TLNE	F,FL$FL2	;DO WE NEED TO PRINT A ZERO?
  2887	003223'	254 00 0 00 001437'		PJRST	O$CHAR		;YES--PRINT IT
  2888	003224'	200 01 0 11 000000 		MOVE	T1,(E3)		;GET A DIGIT
  2889	003225'	271 01 0 00 000060 		ADDI	T1,"0"		;SET TO ASCII
  2890	003226'	344 11 0 00 001437'		AOJA	E3,O$CHAR	;PRINT IT
  2891
  2892	003227'	201 04 0 00 000001 	OUTP1:	MOVEI	T4,1		;INITIALIZE DIGIT COUNT
  2893	003230'	231 01 0 00 000012 	OUTP2:	IDIVI	T1,^D10		; DIVIDE FRACTION BY TEN
  2894	003231'	261 17 0 00 000002 		PUSH	P,T2		;SAVE DIGIT
  2895	003232'	322 01 0 00 003234'		JUMPE	T1,OUTP3	;IS FRACTION ZERO YET?
  2896	003233'	344 04 0 00 003230'		AOJA	T4,OUTP2	 ;NO, DO ALL DIGITS
  2897
  2898	003234'	311 04 0 00 000013 	OUTP3:	CAML	T4,E5		;YES, ANY LEADING SPACES?
  2899	003235'	254 00 0 00 003240'		JRST	OUTP4		;NO

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 57-1
DUMPR	MAC	21-FEB-77 17:03		FORMATTED FLOATING POINT OUTPUT

  2900	003236'	260 17 0 00 003212'		CALL	ZERO		;YES, PRINT ONE
  2901	003237'	364 13 0 00 003234'		SOJA	E5,OUTP3	;FINISH THEM
  2902	003240'	262 17 0 00 000001 	OUTP4:	POP	P,T1		;GET A DIGIT
  2903	003241'	271 01 0 00 000060 		ADDI	T1,"0"		;SET TO ASCII
  2904	003242'	260 17 0 00 001437'		CALL	O$CHAR		;PRINT IT
  2905	003243'	366 04 0 00 003240'		SOJN	T4,OUTP4	;DO ALL OF THEM
  2906	003244'	260 17 0 00 004462'		CALL	RESACS		;RESTORE ACS
  2907	003245'	263 17 0 00 000000 		POPJ	P,		;DONE

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 58
DUMPR	MAC	21-FEB-77 17:03		FLOATING POINT OUTPUT TABLES

  2908					SUBTTL	FLOATING POINT OUTPUT TABLES
  2909
  2910	003246'	600000	000000		RNDHGH:	600000,,000000
  2911	003247'	414631	463146			414631,,463146
  2912	003250'	401217	270243			401217,,270243
  2913	003251'	400101	422335			400101,,422335
  2914	003252'	400006	433342			400006,,433342
  2915	003253'	400000	517426			400000,,517426
  2916	003254'	400000	041433			400000,,041433
  2917	003255'	400000	003265			400000,,003265
  2918	003256'	400000	000253			400000,,000253
  2919	003257'	400000	000021			400000,,000021
  2920	003260'	400000	000001			400000,,000001
  2921	003261'	400000	000000			400000,,000000
  2922	003262'	400000	000000			400000,,000000
  2923	003263'	400000	000000			400000,,000000
  2924	003264'	400000	000000			400000,,000000
  2925	003265'	400000	000000			400000,,000000
  2926	003266'	400000	000000			400000,,000000
  2927	003267'	400000	000000			400000,,000000
  2928	003270'	400000	000000			400000,,000000
  2929			000024		PTLEN=24
  2930	003271'	274712	041444			274712,,041444
  2931	003272'	354074	451755			354074,,451755
  2932	003273'	223445	672164			223445,,672164
  2933	003274'	270357	250621			270357,,250621
  2934	003275'	346453	122766			346453,,122766
  2935	003276'	220072	763671			220072,,763671
  2936	003277'	264111	560650			264111,,560650
  2937	003300'	341134	115022			341134,,115022
  2938	003301'	214571	460113			214571,,460113
  2939	003302'	257727	774136			257727,,774136
  2940	003303'	333715	773165			333715,,773165
  2941	003304'	211340	575011			211340,,575011
  2942	003305'	253630	734214			253630,,734214
  2943	003306'	326577	123257			326577,,123257
  2944	003307'	206157	364055			206157,,364055
  2945	003310'	247613	261070			247613,,261070
  2946	003311'	321556	135307			321556,,135307
  2947	003312'	203044	672274			203044,,672274
  2948	003313'	243656	135307			243656,,135307
  2949	003314'	314631	463146			314631,,463146
  2950	003315'	200000	000000		HITEN:	200000,,000000
  2951	003316'	240000	000000			240000,,000000
  2952	003317'	310000	000000			310000,,000000
  2953	003320'	372000	000000			372000,,000000
  2954	003321'	234200	000000			234200,,000000
  2955	003322'	303240	000000			303240,,000000
  2956	003323'	364110	000000			364110,,000000
  2957	003324'	230455	000000			230455,,000000
  2958	003325'	276570	200000			276570,,200000
  2959	003326'	356326	240000			356326,,240000
  2960	003327'	225005	744000			225005,,744000
  2961	003330'	272207	355000			272207,,355000
  2962	003331'	350651	224200			350651,,224200

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 58-1
DUMPR	MAC	21-FEB-77 17:03		FLOATING POINT OUTPUT TABLES

  2963	003332'	221411	634520			221411,,634520
  2964	003333'	265714	203644			265714,,203644
  2965	003334'	343277	244615			343277,,244615
  2966	003335'	216067	446770			216067,,446770
  2967	003336'	261505	360566			261505,,360566
  2968	003337'	336026	654723			336026,,654723
  2969	003340'	212616	214044			212616,,214044
  2970	003341'	255361	657055			255361,,657055
  2971
  2972	003342'	076101	105110			076101,,105110
  2973	003343'	113117	122125			113117,,122125
  2974	003344'	131134	137143			131134,,137143
  2975	003345'	146151	155160			146151,,155160
  2976	003346'	163167	172175			163167,,172175
  2977	003347'	201204	207212		EXP10:	201204,,207212
  2978	003350'	216221	224230			216221,,224230
  2979	003351'	233236	242245			233236,,242245
  2980	003352'	250254	257262			250254,,257262
  2981	003353'	266271	274300			266271,,274300
  2982	003354'	303000	000000			303000,,000000

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 59
DUMPR	MAC	21-FEB-77 17:03		FILE READING ROUTINES

  2983					SUBTTL	FILE READING ROUTINES
  2984
  2985					;CALL GETBUF TO GET NEXT BUFFER
  2986					;GETBUF HANDLES THE DIFFERENT MODES AND SETS UP W AS AN AOBJN WORD TO THE
  2987					;DATA
  2988
  2989	003355'	603 00 0 00 400000 	GETBUF:	TLNE	F,FL$FOR	;FORTRAN BINARY?
  2990	003356'	254 00 0 00 003530'		 JRST	RDFORT		;YES--GO TO IT
  2991					IFN FT$PHX,<
  2992	003357'	607 12 0 00 000020 		TLNN	DC,(DV.MTA)	;MTA INPUT?
  2993	003360'	607 00 0 00 200000 		 TLNN	F,FL$PHY	;NO--/IREAD?
  2994	003361'	304 00 0 00 000000 		  CAIA			;MTA OR DIR AND NOT /IREAD
  2995	003362'	254 00 0 00 003373'		  JRST	RDPHYX		;DIR DEV AND /IREAD
  2996					>;END IFN FT$PHX
  2997	003363'	260 17 0 00 004205'		CALL	XCTIO		;GET A BUFFER FULL
  2998	003364'	056 01 0 00 000000 		 IN	INPC,		;
  2999	003365'	263 17 0 00 000000 		POPJ	P,		;END OF FILE
  3000	003366'	550 13 0 00 005265'		HRRZ	W,IBHR+.BFPTR	;START THE AOBJ WORD
  3001	003367'	201 13 0 13 000001 		MOVEI	W,1(W)		;POINT AT DATA
  3002	003370'	210 01 0 00 005266'		MOVN	T1,IBHR+.BFCTR	;GET WORD COUNT
  3003	003371'	504 13 0 00 000001 		HRL	W,T1		;FINISH W
  3004	003372'	254 00 0 00 004306'		JRST	$POPJ1		;RETURN
  3005
  3006					IFN FT$PHX,<
  3007	003373'	260 17 0 00 003002*	RDPHYX:	CALL	.SAVE2##	;NEED A COUPLE OF REGISTERS
  3008	003374'	260 17 0 00 003513'	PHYX.0:	CALL	INPWRD		;GET IREAD WORD COUNT
  3009	003375'	263 17 0 00 000000 		POPJ	P,		;EOF
  3010	003376'	322 01 0 00 003374'		JUMPE	T1,PHYX.0	;NO SUCH THING AS ZERO WORD COUNT
  3011	003377'	603 01 0 00 777777 		TLNE	T1,-1		;OR MORE THAN 2**18 WORDS/RECORD
  3012	003400'	254 00 0 00 003436'		 JRST	E$$IFU		;**IREAD FILE IS MESSED UP
  3013	003401'	313 01 0 00 005465'		CAMLE	T1,BUFSIZ	;MUST BE LESS THAN THIS
  3014	003402'	254 00 0 00 003440'		 JRST	PHXLRG		;NO--TELL ABOUT LARGE RECORD AND FINISH UP
  3015	003403'	213 00 0 00 000001 	PHYX.4:	MOVNS	T1		;NEGATE IT
  3016	003404'	514 02 0 00 000001 		HRLZ	T2,T1		;FORM AOBJ WORD
  3017	003405'	540 02 0 00 005272'		HRR	T2,FORADR	;POINT TO THE BUFFER
  3018	003406'	200 13 0 00 000002 		MOVE	W,T2		;W IS SETUP NOW
  3019	003407'	210 05 0 00 000001 		MOVN	P1,T1		;GET WORD COUNT AS POSITIVE
  3020	003410'	550 06 0 00 000002 		HRRZ	P2,T2		;GET BUFFER ADDRESS
  3021
  3022	003411'	333 04 0 00 005266'	PHYX.2:	SKIPLE	T4,IBHR+.BFCTR	;GET WORD COUNT--ARE ANY WORDS LEFT?
  3023	003412'	254 00 0 00 003421'		 JRST	PHYX.3		;YES--GO USE THEM
  3024	003413'	260 17 0 00 004205'		CALL	XCTIO		;NO--NEED A BUFFER
  3025	003414'	056 01 0 00 000000 		 IN	INPC,		;XCT'D
  3026	003415'	334 00 0 00 000000 		 SKIPA			;EOF ALREADY?
  3027	003416'	254 00 0 00 003411'		JRST	PHYX.2		;PICK UP THE WORD COUNT
  3028	003417'	260 17 0 00 004407'		ERROR.	EF$FTL,EBE,<EOF BEFORE END OF IREAD RECORD>
  3029	003420'	300400	005704'
  3030	003421'	313 04 0 00 000005 	PHYX.3:	CAMLE	T4,P1		;ARE THERE MORE THAN WHAT WE NEED?
  3031	003422'	200 04 0 00 000005 		 MOVE	T4,P1		;YES--ONLY USE WHAT WE NEED
  3032	003423'	204 01 0 00 005265'		MOVS	T1,IBHR+.BFPTR	;BEGIN THE BLT CTL WORD
  3033	003424'	541 01 0 06 777777 		HRRI	T1,-1(P2)	;FORM OTHER HALF (-1 FOR NEXT INSTR)
  3034	003425'	252 01 0 00 003426'		AOBJP	T1,.+1		;EVERYTHING IS OFF BY ONE
  3035	003426'	272 04 0 00 005265'		ADDM	T4,IBHR+.BFPTR	;INCREMENT PTR TO NEXT FREE WORD
  3036	003427'	272 04 0 00 000006 		ADDM	T4,P2		;ALSO ADJUST FORADR PTR
  3037	003430'	213 00 0 00 000004 		MOVNS	T4		;MAKE COUNT NEGATIVE

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 59-1
DUMPR	MAC	21-FEB-77 17:03		FILE READING ROUTINES

  3038	003431'	272 04 0 00 000005 		ADDM	T4,P1		;DECREMENT WORD REQUIRED
  3039	003432'	272 04 0 00 005266'		ADDM	T4,IBHR+.BFCTR	;DECREMENT BUFFER TOTAL
  3040	003433'	251 01 0 06 777777 		BLT	T1,-1(P2)	;XFR THE WORDS
  3041	003434'	327 05 0 00 003411'		JUMPG	P1,PHYX.2	;JUMP IF NOT FINISHED WITH RECORD
  3042	003435'	254 00 0 00 004306'		JRST	$POPJ1		;DONE
  3043	003436'	260 17 0 00 004407'	E$$IFU:	ERROR.	EF$FTL,IFU,<IREAD FILE MESSED UP>
  3044	003437'	300400	005712'

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 60
DUMPR	MAC	21-FEB-77 17:03		FILE READING ROUTINES

  3045					;HERE WHEN RECORD TOO LARGE READING DISK IREAD FILE
  3046
  3047	003440'	260 17 0 00 003454'	PHXLRG:	CALL	LRGERR		;TELL USER AND DUMP FILE ABOUT IT
  3048	003441'	210 02 0 00 005465'		MOVN	T2,BUFSIZ	;GET - MAX BUFFER SIZE
  3049	003442'	270 02 0 00 000001 		ADD	T2,T1		;COMPUTE # WORDS EXTRA IN RECORD
  3050						SAVE$	T2		;SAVE WHILE WE COPY REST OF RECORD
  3051	003444'	200 01 0 00 005465'		MOVE	T1,BUFSIZ	;SETUP T1 TO MAX RECORD SIZE
  3052	003445'	260 17 0 00 003403'		CALL	PHYX.4		;COPY FIRST PART (FILL FORBUF)
  3053	003446'	254 00 0 00 003436'		 JRST	E$$IFU		;SNH
  3054						RESTR$	T2		;COMPUTE # WORDS WE MUST SKIP
  3055	003450'	260 17 0 00 003513'	PHXL.2:	CALL	INPWRD		;GET ONE
  3056	003451'	254 00 0 00 003436'		 JRST	E$$IFU		;SNH
  3057	003452'	367 02 0 00 003450'		SOJG	T2,PHXL.2	;EAT THEM ALL
  3058	003453'	254 00 0 00 004306'		JRST	$POPJ1		;RETURN WITH ALL THAT WE COULD EAT
  3059					>;END IFN FT$PHX
  3060
  3061					;CALL HERE TO REPORT RECORD TOO LARGE TO TTY AND DUMP FILE
  3062					;T1 CONTAINS SIZE OF RECORD THAT WAS TOO LARGE
  3063
  3064	003454'	260 17 0 00 003523'	LRGERR:	CALL	FRCTYO		;FORCE TTY OUTPUT (SO CRLF IS CORRECT)
  3065	003455'	260 17 0 00 000341*		CALL	.TCRLF##	;NEW LINE TO TTY (.TCRLF PRESERVES T1!)
  3066	003456'	260 17 0 00 003474'		CALL	RTLERR		;REPORT RECORD IN ERROR TO TTY
  3067	003457'	602 12 0 00 000010 		TRNE	DC,(DV.TTY)	;IF TTY OUTPUT FILE
  3068	003460'	263 17 0 00 000000 		 POPJ	P,		;DON'T TELL HIM (HER) TWICE
  3069						SAVE$	T1		;SAVE RECORD SIZE
  3070	003462'	260 17 0 00 001434'		CALL	O$CRLF		;FIRST SET TO NEW LINE
  3071	003463'	260 17 0 00 001434'		CALL	O$CRLF		;AND SKIP ONE SO MESSAGE STANDS OUT
  3072	003464'	201 01 0 00 001437'		MOVEI	T1,O$CHAR	;SET MY OUTPUT ROUTINE
  3073	003465'	260 17 0 00 001235*		CALL	.TYOCH##	;WITH .TOUTS
  3074	003466'	250 01 0 17 000000 		EXCH	T1,(P)		;SAVE OLD ROUTINE, RESTORE SIZE
  3075	003467'	476 00 0 00 005170'		SETOM	ERRTYX		;FLAG EHNDLR NOT TO SWITCH OUTPUTS
  3076	003470'	260 17 0 00 003474'		CALL	RTLERR		;REPORT LARGE RECORD TO DUMP FILE
  3077	003471'	250 01 0 17 000000 	XCHTYO:	EXCH	T1,(P)		;...
  3078	003472'	260 17 0 00 003465*		CALL	.TYOCH##	;RESTORE SCANS OUTPUT
  3079	003473'	254 00 0 00 004367'		JRST	TPOPJ		;RESTORE T1 AND RETURN
  3080
  3081	003474'	260 17 0 00 004407'	RTLERR:	WARN.	EF$DEC!EF$NCR,RTL,<RECORD TOO LARGE - >
  3082	003475'	300241	005717'
  3083	003476'	260 17 0 00 003500'		CALL	TYFREC		;TYPE FILE AND RECORD LOCATION
  3084	003477'	254 00 0 00 003455*		PJRST	.TCRLF##	;NEW LINE AND EXIT
  3085	003500'				TYFREC:	SAVE$	T1		;SAVE SIZE
  3086	003501'	201 01 0 00 005720'		STRNG$	< - FILE >
  3087	003502'	260 17 0 00 000336*
  3088	003503'	200 01 0 00 005305'		MOVE	T1,FILE
  3089	003504'	260 17 0 00 000000*		CALL	.TDECW##
  3090	003505'	201 01 0 00 005722'		STRNG$	< RECORD >
  3091	003506'	260 17 0 00 003502*
  3092	003507'	200 01 0 00 005306'		MOVE	T1,RECORD
  3093	003510'	340 01 0 00 000000 		AOJ	T1,		;REALLY C(RECORD)+1
  3094	003511'	260 17 0 00 003504*		CALL	.TDECW##
  3095	003512'	254 00 0 00 004367'		PJRST	TPOPJ		;RESTORE SIZE AND RETURN

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 61
DUMPR	MAC	21-FEB-77 17:03		FILE READING ROUTINES

  3096					;CALL HERE TO GET ONE WORD FROM INPUT FILE
  3097					;CPOPJ1 WITH WORD IN T1 OR CPOPJ IF EOF
  3098
  3099	003513'	375 00 0 00 005266'	INPWRD:	SOSGE	IBHR+.BFCTR	;ANY WORDS AT ALL?
  3100	003514'	254 00 0 00 003517'		 JRST	INPW.1		;NO--GET SOME
  3101	003515'	134 01 0 00 005265'		ILDB	T1,IBHR+.BFPTR	;YES--GET IT
  3102	003516'	254 00 0 00 004306'		JRST	$POPJ1
  3103	003517'	260 17 0 00 004205'	INPW.1:	CALL	XCTIO		;GET A BUFFER
  3104	003520'	056 01 0 00 000000 		 IN	INPC,
  3105	003521'	263 17 0 00 000000 		  POPJ	P,		;EOF
  3106	003522'	254 00 0 00 003513'		JRST	INPWRD		;GET A WORD NOW
  3107
  3108					;CALL HERE TO FORCE OUTPUT TO TTY IF OUTPUT OPEN AND TTY IS OUTPUT FILE
  3109
  3110	003523'	607 00 0 00 000010 	FRCTYO:	TLNN	F,FL$OPN	;OUTPUT FILE OPEN?
  3111	003524'	263 17 0 00 000000 		 POPJ	P,		;NO--DONT GET UNASSIGNED CHANNEL IO
  3112	003525'	602 12 0 00 000010 		TRNE	DC,(DV.TTY)	;TTY DUMP?
  3113	003526'	067 02 0 00 000000 		OUTPUT	OUTC,		;YES--MAKE MESSAGE APPEAR IN RIGHT PLACE
  3114	003527'	263 17 0 00 000000 		POPJ	P,

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 62
DUMPR	MAC	21-FEB-77 17:03		READ FORTRAN BINARY RECORDS 

  3115					SUBTTL	READ FORTRAN BINARY RECORDS 
  3116
  3117	003530'	260 17 0 00 001507*	RDFORT:	CALL	.SAVE1##	;NEED A REGISTER
  3118	003531'	400 13 0 00 000000 		SETZ	W,		;CLEAR WORD COUNT
  3119	003532'	200 05 0 00 005272'		MOVE	P1,FORADR	;POINT AT THE ARRAY
  3120	003533'	621 00 0 00 000420 		TLZ	F,FL$TMP!FL$FL2 ;FL$TMP IS THE "SAW TYPE 1 LSCW" FLAG
  3121									;FL$FL2 IS THE "RECORD TOO LARGE" FLAG
  3122
  3123	003534'	260 17 0 00 003513'	RFOR.1:	CALL	INPWRD		;GET A WORD
  3124	003535'	263 17 0 00 000000 		POPJ	P,		;END OF FILE
  3125	003536'	607 01 0 00 003000 	RFOR.3:	TLNN	T1,CW$ANY	;IS IT AN LSCW
  3126	003537'	254 00 0 00 003602'		 JRST	FORSRC		;NO--GO FIND ONE
  3127	003540'	607 01 0 00 001000 		TLNN	T1,CW$1O3	;TYPE 1 OR 3?
  3128	003541'	254 00 0 00 003566'		 JRST	FORCW2		;NO--TYPE 2
  3129	003542'	603 01 0 00 002000 		TLNE	T1,CW$TY3	;TYPE 3?
  3130	003543'	254 00 0 00 003571'		 JRST	FORCW3		;YES
  3131
  3132					;HERE TO DO FORTRAN TYPE 1 LSCW
  3133
  3134	003544'	661 00 0 00 000400 	FORCW1:	TLO	F,FL$TMP	;FLAG WE SAW ONE
  3135	003545'	200 02 0 00 000001 	FORCON:	MOVE	T2,T1		;COPY LSCW
  3136	003546'	201 01 0 01 777777 		MOVEI	T1,-1(T1)	;GET DATA WORD COUNT
  3137	003547'	270 13 0 00 000001 		ADD	W,T1		;UPDATE WORD COUNT
  3138	003550'	603 00 0 00 000020 		TLNE	F,FL$FL2	;ARE WE IN A LARGE RECORD?
  3139	003551'	254 00 0 00 003561'		 JRST	RFOR.5		;YES--SKIP AHEAD
  3140	003552'	313 13 0 00 005465'		CAMLE	W,BUFSIZ	;ROOM IN BUFFER?
  3141	003553'	254 00 0 00 003625'		 JRST	FORLRG		;NO--GO FIXUP
  3142	003554'	504 01 0 00 005265'		HRL	T1,IBHR+.BFPTR	;GET LH OF BLT
  3143	003555'	541 01 0 05 777777 		HRRI	T1,-1(P1)	;RH--(-1 SO WE CAN AOBJN)
  3144	003556'	253 01 0 00 003557'		AOBJN	T1,.+1		;MAKE IT RIGHT
  3145	003557'	270 05 0 00 000002 		ADD	P1,T2		;COMPUTE END OF BLT
  3146	003560'	251 01 0 05 777777 	RFOR.4:	BLT	T1,-1(P1)	;MOVE WORDS
  3147	003561'	201 01 0 02 777777 	RFOR.5:	MOVEI	T1,-1(T2)	;COUNT DATA WORDS EATEN
  3148	003562'	272 01 0 00 005265'		ADDM	T1,IBHR+.BFPTR
  3149	003563'	211 01 0 02 777777 		MOVNI	T1,-1(T2)	;...
  3150	003564'	272 01 0 00 005266'		ADDM	T1,IBHR+.BFCTR
  3151	003565'	254 00 0 00 003534'		JRST	RFOR.1		;CONTINUE
  3152
  3153	003566'	607 00 0 00 000400 	FORCW2:	TLNN	F,FL$TMP	;SEEN A TYPE 1?
  3154	003567'	254 00 0 00 003602'		 JRST	FORSRC		;NO--GO FIND ONE
  3155	003570'	254 00 0 00 003545'		JRST	FORCON		;YES--CONTINUE COPYING RECORD
  3156
  3157	003571'	627 00 0 00 000020 	FORCW3:	TLZN	F,FL$FL2	;WAS RECORD TOO LARGE?
  3158	003572'	254 00 0 00 003576'		 JRST	FOR3.X		;NO--EXIT GRACEFULLY
  3159	003573'	200 01 0 00 000013 		MOVE	T1,W		;YES--GET RECORD SIZE
  3160	003574'	260 17 0 00 003454'		CALL	LRGERR		;REPORT LARGE RECORD
  3161	003575'	550 13 0 00 005465'		HRRZ	W,BUFSIZ	;SET TO RETURN ONLY MAX
  3162	003576'	210 13 0 00 000013 	FOR3.X:	MOVN	W,W		;BEGIN TO COMPUTE AOBJN TO FORADR
  3163	003577'	517 00 0 00 000013 		HRLZS	W
  3164	003600'	540 13 0 00 005272'		HRR	W,FORADR	;NOW WE ARE DONE
  3165	003601'	254 00 0 00 004306'		JRST	$POPJ1		;SKIP BACK
  3166
  3167	003602'	260 17 0 00 003513'	FORSRC:	CALL	INPWRD		;GET A WORD
  3168	003603'	260 17 0 00 004407'		ERROR.	EF$FTL,IFF,<INCORRECTLY FORMATTED FORTRAN FILE>
  3169	003604'	300400	005733'

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 62-1
DUMPR	MAC	21-FEB-77 17:03		READ FORTRAN BINARY RECORDS 

  3170	003605'	607 01 0 00 776000 		TLNN	T1,776000	;ANY LS?
  3171	003606'	607 01 0 00 001000 		TLNN	T1,1000		;TYPE 1?
  3172	003607'	254 00 0 00 003602'		 JRST	FORSRC		;NOPE
  3173	003610'	200 02 0 00 005465'		MOVE	T2,BUFSIZ	;YES--GET /BUFSIZ
  3174	003611'	305 02 0 01 000000 		CAIGE	T2,(T1)		;CAN IT BE?
  3175	003612'	254 00 0 00 003602'		 JRST	FORSRC		;NOPE
  3176	003613'	550 02 0 00 005266'		HRRZ	T2,IBHR+.BFCTR	;GET WHAT IS LEFT IN BUFFER
  3177	003614'	302 02 0 01 777777 		CAIE	T2,-1(T1)	;THE SAME?
  3178	003615'	254 00 0 00 003602'		JRST	FORSRC		;NO
  3179	003616'	550 02 0 00 005265'		HRRZ	T2,IBHR+.BFPTR	;GET PTR
  3180	003617'	271 02 0 01 000000 		ADDI	T2,(T1)		;COMPUTE WHERE NEXT LSCW IS
  3181	003620'	200 02 1 00 000002 		MOVE	T2,@T2		;GET IT
  3182	003621'	607 02 0 00 774000 		TLNN	T2,774000	;IS IT AN LSCW?
  3183	003622'	607 02 0 00 003000 		 TLNN	T2,CW$ANY	;IS IT ANY LSCW?
  3184	003623'	254 00 0 00 003602'		  JRST	FORSRC		;NOT YET
  3185	003624'	254 00 0 00 003536'		JRST	RFOR.3		;YES--GO PROCESS IT
  3186
  3187					;HERE WHEN WE SEE THAT THE RECORD IS TOO LARGE
  3188
  3189	003625'	661 00 0 00 000020 	FORLRG:	TLO	F,FL$FL2	;FLAG FOR FORCW3 THAT RECORD IS TOO LARGE
  3190	003626'	504 01 0 00 005265'		HRL	T1,IBHR+.BFPTR	;GET SET TO MOVE WHAT WE CAN FROM THIS RECORD
  3191	003627'	541 01 0 05 777777 		HRRI	T1,-1(P1)	;...
  3192	003630'	253 01 0 00 003631'		AOBJN	T1,.+1		;FIX PTR
  3193	003631'	550 05 0 00 005272'		HRRZ	P1,FORADR	;COMPUTE END OF BUFFER
  3194	003632'	270 05 0 00 005465'		ADD	P1,BUFSIZ	;...
  3195	003633'	254 00 0 00 003560'		JRST	RFOR.4		;GO MOVE WHAT WE CAN AND SKIP REST

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 63
DUMPR	MAC	21-FEB-77 17:03		POSITIONING FUNCTIONS

  3196					SUBTTL	POSITIONING FUNCTIONS
  3197
  3198	003634'	603 00 0 00 002000 	D$SKP:	TLNE	F,FL$OUT	;WHICH SIDE?
  3199	003635'	607 12 0 00 000004 		TLNN	DC,(DV.DIR)	;INPUT--IS THIS DIRECTORY?
  3200	003636'	602 12 0 00 000004 		 TRNE	DC,(DV.DIR)	;OUTPUT--IS THIS DIRECTORY?
  3201	003637'	254 00 0 00 003703'		  JRST	SKPDIR		;DIRECTORY--GO SKIP IT
  3202	003640'	603 00 0 00 400000 		TLNE	F,FL$FOR	;MTA--IS IT FORTRAN SKIP?
  3203	003641'	254 00 0 00 003651'		 JRST	SKMFOR		;YES--DO IT
  3204	003642'	272 05 0 00 005305'		ADDM	P1,FILE		;INCREMENT FILE COUNT
  3205	003643'	272 06 0 00 005306'		ADDM	P2,RECORD	;AND RECORD COUNT
  3206	003644'	200 01 0 00 005734'		MOVE	T1,[MTSKF.]	;GET FILE MTAPE
  3207	003645'	200 02 0 00 005735'		MOVE	T2,[MTSKR.]	;AND RECORD MTAPE
  3208	003646'	260 17 0 00 003660'	DSKP.G:	CALL	SETIOC		;SET I/O CHANNELS IN
  3209	003647'	260 17 0 00 003672'		CALL	SKPFLR		;DO THEM
  3210	003650'	254 00 0 00 000354'		JRST	DMPLUP		;CONTINUE
  3211
  3212					;HERE TO SKIP FORTRAN BINARY ON MTA
  3213
  3214	003651'	200 01 0 00 005734'	SKMFOR:	MOVE	T1,[MTSKF.]	;SKIP FILES
  3215	003652'	260 17 0 00 003660'		CALL	SETIOC		;SETUP FOR IT
  3216	003653'	256 00 0 00 000001 	SKMF.1:	XCT	T1		;SKIP ONE FILE
  3217	003654'	256 00 0 00 000003 		XCT	T3		;WAIT FOR IT
  3218	003655'	350 00 0 00 005305'		AOS	FILE		;COUNT THE FILE
  3219	003656'	367 05 0 00 003653'		SOJG	P1,SKMF.1	;DO ALL NEEDED
  3220	003657'	254 00 0 00 003717'		JRST	SKDFOR		;GO SKIP RECORDS AND FINISH UP
  3221
  3222	003660'	603 00 0 00 002000 	SETIOC:	TLNE	F,FL$OUT	;INPUT OR OUTPUT?
  3223	003661'	254 00 0 00 003666'		 JRST	SETI.1		;INPUT
  3224	003662'	661 01 0 00 000100 		TLO	T1,(Z OUTC,)	;SET IN CHANNEL
  3225	003663'	661 02 0 00 000100 		TLO	T2,(Z OUTC,)	;...
  3226	003664'	200 03 0 00 005736'		MOVE	T3,[MTWAT. OUTC,] ;SET INSTR TO WAIT ON I/O
  3227	003665'	263 17 0 00 000000 		POPJ	P,
  3228	003666'	661 01 0 00 000040 	SETI.1:	TLO	T1,(Z INPC,)	;INPUT CHANNEL
  3229	003667'	661 02 0 00 000040 		TLO	T2,(Z INPC,)
  3230	003670'	200 03 0 00 005737'		MOVE	T3,[MTWAT. INPC,] ;INSTR TO WAIT ON I/O
  3231	003671'	263 17 0 00 000000 		POPJ	P,
  3232
  3233	003672'	323 05 0 00 003676'	SKPFLR:	JUMPLE	P1,SKPL.1	;JUMP IF NO FILE ACTION
  3234	003673'	256 00 0 00 000001 	SKPL.0:	XCT	T1		;DO IT
  3235	003674'	256 00 0 00 000003 		XCT	T3		;WAIT FOR OP TO FINISH
  3236	003675'	367 05 0 00 003673'		SOJG	P1,SKPL.0	;ALL REQUESTED TIMES
  3237	003676'	323 06 0 00 004307'	SKPL.1:	JUMPLE	P2,$POPJ	;JUMP IF NO RECORDS
  3238	003677'	256 00 0 00 000002 	SKPL.2:	XCT	T2
  3239	003700'	256 00 0 00 000003 		XCT	T3		;WAIT FOR I/O
  3240	003701'	367 06 0 00 003677'		SOJG	P2,SKPL.2
  3241	003702'	263 17 0 00 000000 		POPJ	P,
  3242
  3243	003703'	327 05 0 00 003726'	SKPDIR:	JUMPG	P1,E$$SFI	;SKIPPING FILES IS HIGHLY ILLEGAL
  3244	003704'	603 00 0 00 600000 		TLNE	F,FL$FOR!FL$PHY	;FORTRAN OR PHYSICS?
  3245	003705'	254 00 0 00 003717'		 JRST	SKDFOR		;YES
  3246	003706'	336 01 0 00 005306'		SKIPN	T1,RECORD	;WHERE ARE WE NOW?
  3247	003707'	201 01 0 00 000001 		 MOVEI	T1,1		;MUST BE AT THE BEGINNING
  3248	003710'	271 01 0 06 777777 		ADDI	T1,-1(P2)	;COMPUTE NEW RECORD
  3249	003711'	313 01 0 00 005261'		CAMLE	T1,IFILSZ	;DON'T USETI PAST EOF
  3250	003712'	200 01 0 00 005261'		MOVE	T1,IFILSZ	;...

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 63-1
DUMPR	MAC	21-FEB-77 17:03		POSITIONING FUNCTIONS

  3251	003713'	202 01 0 00 005306'		MOVEM	T1,RECORD	;...
  3252	003714'	074 01 0 01 000001 		USETI	INPC,1(T1)	;SET TO READ IT
  3253	003715'	260 17 0 00 004050'		CALL	CLRUSE		;CLEAR USE BITS FOR FRESH READ
  3254	003716'	254 00 0 00 000354'		JRST	DMPLUP		;CONTINUE EXECUTING FNS
  3255
  3256	003717'	661 00 0 00 000200 	SKDFOR:	TLO	F,FL$MNP	;FLAG MANIPULATING
  3257	003720'	260 17 0 00 003355'	SKDF.1:	CALL	GETBUF		;READ A RECORD
  3258	003721'	254 00 0 00 000615'		 JRST	DMPEND		;END IT ALL
  3259	003722'	350 00 0 00 005306'		AOS	RECORD		;COUNT THE RECORD
  3260	003723'	367 06 0 00 003720'		SOJG	P2,SKDF.1	;DO ALL REQUESTED
  3261	003724'	621 00 0 00 000200 		TLZ	F,FL$MNP	;NOT MANIPULATING ANY MORE
  3262	003725'	254 00 0 00 000354'		JRST	DMPLUP		;CONTINUE
  3263	003726'	260 17 0 00 004407'	E$$SFI:	ERROR.	EF$FTL,SFI,<SKIP/BACKSPACE FILES ILLEGAL ON DIRECTORY DEVICE>
  3264	003727'	300400	005752'
  3265
  3266	003730'				D$BSP:	
  3267	003730'	603 00 0 00 002000 		TLNE	F,FL$OUT	;INPUT OR OUTPUT?
  3268	003731'	607 12 0 00 000004 		TLNN	DC,(DV.DIR)	;INPUT--IS IT A DIR DEV?
  3269	003732'	602 12 0 00 000004 		 TRNE	DC,(DV.DIR)	;OUTPUT--IS IT A DIR DEV?
  3270	003733'	254 00 0 00 003747'		 JRST	BSPDIR		;DIR DEV--GO DO IT
  3271	003734'	603 00 0 00 400000 		TLNE	F,FL$FOR	;IS IT /FORTRAN?
  3272	003735'	254 00 0 00 003745'		JRST	E$$SFM		;CANT
  3273	003736'	210 01 0 00 000005 		MOVN	T1,P1		;UPDATE FILE AND RECORD
  3274	003737'	272 01 0 00 005305'		ADDM	T1,FILE		;COUNTS
  3275	003740'	210 01 0 00 000006 		MOVN	T1,P2		;...
  3276	003741'	272 01 0 00 005306'		ADDM	T1,RECORD
  3277	003742'	200 01 0 00 005753'		MOVE	T1,[MTBSF.]	;SETUP OPS
  3278	003743'	200 02 0 00 005754'		MOVE	T2,[MTBSR.]
  3279	003744'	254 00 0 00 003646'		JRST	DSKP.G		;GO DO IT AND RETURN
  3280
  3281	003745'	260 17 0 00 004407'	E$$SFM:	ERROR.	EF$FTL,SFM,<CANT BACKSPACE MTA WITH /FORTRA>
  3282	003746'	300400	005764'
  3283
  3284	003747'	327 05 0 00 003726'	BSPDIR:	JUMPG	P1,E$$SFI	;CAN'T SKIP MULTIPLE FILES ON DIR DEV
  3285	003750'	607 00 0 00 002000 		TLNN	F,FL$OUT	;NOR ON OUPTUT DEVICE
  3286	003751'	254 00 0 00 003766'		 JRST	E$$BSO		;GO DIE
  3287	003752'	336 01 0 00 005306'		SKIPN	T1,RECORD	;WHERE ARE WE?
  3288	003753'	201 01 0 00 000001 		 MOVEI	T1,1		;DON'T KNOW--MUST BE AT START OF FILE
  3289	003754'	274 01 0 00 000006 		SUB	T1,P2		;COMPUTE NEW POSITION
  3290	003755'	337 00 0 00 000001 		SKIPG	T1		;PAST BEGINNING OF FILE?
  3291	003756'	201 01 0 00 000001 		 MOVEI	T1,1		;YES--SET FOR FIRST RECORD
  3292	003757'	603 00 0 00 600000 		TLNE	F,FL$FOR!FL$PHY	;FORTRAN OR PHYSICS?
  3293	003760'	254 00 0 00 003770'		 JRST	BSPFOR		;YES--GO HANDLE IT
  3294	003761'	074 01 0 01 000000 		USETI	INPC,(T1)	;POSITION MYSELF THERE
  3295	003762'	370 00 0 00 000001 		SOS	T1		;ONE LESS TO STORE IN RECORD
  3296	003763'	202 01 0 00 005306'		MOVEM	T1,RECORD	;WILL GET UPDATE AT RECHDR
  3297	003764'	260 17 0 00 004050'		CALL	CLRUSE		;CLEAR USE BITS
  3298	003765'	254 00 0 00 000354'		JRST	DMPLUP
  3299
  3300	003766'	260 17 0 00 004407'	E$$BSO:	ERROR.	EF$FTL,BSO,<CANT BACKSPACE DISK OUTPUT>
  3301	003767'	300400	005773'
  3302
  3303	003770'	200 06 0 00 000001 	BSPFOR:	MOVE	P2,T1		;POSITION # RECS TO SKIP
  3304	003771'	074 01 0 00 000001 		USETI	INPC,1		;POSITION TO FILE START
  3305	003772'	260 17 0 00 004050'		CALL	CLRUSE		;CLEAR USE BITS

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 63-2
DUMPR	MAC	21-FEB-77 17:03		POSITIONING FUNCTIONS

  3306	003773'	402 00 0 00 005306'		SETZM	RECORD		;RESET
  3307	003774'	363 06 0 00 000354'		SOJLE	P2,DMPLUP	;JUMP IF WE ARE IN PROPER POSITION
  3308	003775'	254 00 0 00 003717'		JRST	SKDFOR		;NO--GO SKIP SOME RECORDS
  3309
  3310					;HERE TO PROCESS /REWIND
  3311
  3312	003776'	607 00 0 00 002000 	D$REW:	TLNN	F,FL$OUT	;OUTPUT SIDE?
  3313	003777'	602 12 0 00 000020 		TRNE	DC,(DV.MTA)	;YES--IS IT A MAGTAPE
  3314	004000'	304 00 0 00 000000 		 CAIA			;INPUT DEVICE OR OUTPUT IS MTA
  3315	004001'	260 17 0 00 004407'		ERROR.	EF$FTL,CRD,<CANNOT REWIND DISK OUTPUT>
  3316	004002'	300400	006002'
  3317	004003'	402 00 0 00 005305'		SETZM	FILE		;CLEAR FILE AND RECORD
  3318	004004'	402 00 0 00 005306'		SETZM	RECORD		;...
  3319	004005'	603 00 0 00 002000 		TLNE	F,FL$OUT	;INPUT SIDE?
  3320	004006'	607 12 0 00 000004 		TLNN	DC,(DV.DIR)	;A DIRECTORY DEVICE?
  3321	004007'	254 00 0 00 004013'		 JRST	REWMTA		;OUTPUT OR INPUT NOT DIRECTORY
  3322	004010'	074 01 0 00 000001 		USETI	INPC,1		;SET TO READ FIRST BLOCK
  3323	004011'	260 17 0 00 004050'		CALL	CLRUSE		;CLEAR THE USE BITS IN THE RING
  3324	004012'	254 00 0 00 000354'		JRST	DMPLUP		;DO NEXT COMMAND
  3325	004013'	200 01 0 00 006003'	REWMTA:	MOVE	T1,[MTREW.]	;SET UP FUNCTION
  3326	004014'	603 00 0 00 002000 		TLNE	F,FL$OUT	;INPUT OR OUTPUT?
  3327	004015'	665 01 0 00 000040 		 TLOA	T1,(Z INPC,)	;INPUT SIDE
  3328	004016'	661 01 0 00 000100 		  TLO	T1,(Z OUTC,)	;OUTPUT SIDE
  3329	004017'	256 00 0 00 000001 		XCT	T1		;REWIND THE DEVICE
  3330	004020'	254 00 0 00 000354'		JRST	DMPLUP		;NEXT COMMAND
  3331
  3332	004021'	603 00 0 00 002000 	D$RIB:	TLNE	F,FL$OUT	;MUST BE INPUT SIDE
  3333	004022'	607 12 0 00 200000 		 TLNN	DC,(DV.DSK)	;AND ON THE DSK
  3334	004023'	260 17 0 00 004407'	  	ERROR.	EF$FTL,RIB,</RIB ILLEGAL ON OUTPUT OR ILLEGAL DEVICE FOR /RIB>
  3335	004024'	300400	006016'
  3336	004025'	074 01 0 00 000000 		USETI	INPC,0		;POSITION TO READ THE RIB
  3337	004026'	260 17 0 00 004050'		CALL	CLRUSE		;CLEAR THE USE BITS
  3338	004027'	254 00 0 00 000354'		JRST	DMPLUP		;BACK FOR MORE
  3339
  3340	004030'	321 05 0 00 004046'	D$ONL:	JUMPL	P1,E$$ONL	;CHECK FOR BAD NUMBERS
  3341	004031'	321 06 0 00 004046'		JUMPL	P2,E$$ONL	;..
  3342	004032'	200 01 0 00 000005 		MOVE	T1,P1		;NOW SEE IF /ONLY WITH NO ARGS
  3343	004033'	671 01 0 00 000006 		TSO	T1,P2		;WHICH MEANS TO TURN OFF THE MODE
  3344	004034'	322 01 0 00 004044'		JUMPE	T1,D$ONLF	;SO GO DO THAT
  3345	004035'	315 06 0 00 000005 		CAMGE	P2,P1		;END MUST BE AT LEAST AS BIG AS BEGINNING
  3346	004036'	254 00 0 00 004046'		 JRST	E$$ONL		;LOOSE
  3347	004037'	336 00 0 00 000005 		SKIPN	P1		;MAKE SURE WE HAVE AT LEAST ONE
  3348	004040'	201 05 0 00 000001 		MOVEI	P1,1		;...
  3349	004041'	202 05 0 00 005312'		MOVEM	P1,ONLYLO	;SAVE LOW LIMIT
  3350	004042'	202 06 0 00 005313'		MOVEM	P2,ONLYHI	;AND HIGH LIMIT
  3351	004043'	665 00 0 00 000040 		TLOA	F,FL$OLY	;TELL DUMPIT WE ARE ONLY DUMPING PARTIAL REC
  3352	004044'	621 00 0 00 000040 	D$ONLF:	TLZ	F,FL$OLY	;HERE WE TURN OFF IF /ONLY OR /ONLY:0
  3353	004045'	254 00 0 00 000354'		JRST	DMPLUP		;CONTINUE FUNCTIONS
  3354	004046'	260 17 0 00 004407'	E$$ONL:	ERROR.	EF$FTL,OIS,</ONLY INCORRECTLY SPECIFIED>
  3355	004047'	300400	006025'
  3356
  3357	004050'	047 01 0 00 000010 	CLRUSE:	WAIT	INPC,		;WAIT FOR THINGS TO SETTLE OUT
  3358	004051'	550 01 0 00 005264'		HRRZ	T1,IBHR+.BFADR	;START AT THE BEGINNING
  3359	004052'	550 02 0 00 000001 		HRRZ	T2,T1		;COPY TO MOVE AROUND
  3360	004053'	205 03 0 00 400000 		MOVSI	T3,(BF.IOU)	;BIT TO CLEAR

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 63-3
DUMPR	MAC	21-FEB-77 17:03		POSITIONING FUNCTIONS

  3361	004054'	412 03 0 02 000000 	CLRU.1:	ANDCAM	T3,(T2)		;CLEAR THE USE BIT
  3362	004055'	550 02 0 02 000000 		HRRZ	T2,(T2)		;MOVE TO NEXT
  3363	004056'	316 02 0 00 000001 		CAMN	T2,T1		;DONE?
  3364	004057'	254 00 0 00 004054'		JRST	CLRU.1		;NO
  3365	004060'	205 03 0 00 400000 		MOVSI	T3,(BF.VBR)	;YES--NOW FIX BUFFER HEADER
  3366	004061'	436 03 0 00 005264'		IORM	T3,IBHR+.BFADR
  3367	004062'	263 17 0 00 000000 		POPJ	P,		;ALL DONE

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 64
DUMPR	MAC	21-FEB-77 17:03		ATTEND TO TTY INPUT WHILE RUNNING

  3368					SUBTTL	ATTEND TO TTY INPUT WHILE RUNNING
  3369
  3370					;CHKTTY -- SEE IF A COMMAND TYPED WHILE RUNNING
  3371					;CALL:	CALL	CHKTTY
  3372					;	*SAID TO KILL*
  3373					;	*KEEP GOING*
  3374
  3375	004063'	603 00 0 00 010000 	CHKTTY:	TLNE	F,FL$ITY	;/IFTYP
  3376	004064'	051 02 0 00 000001 		 INCHRS	T1		;YES--GET CHAR IF THERE
  3377	004065'	254 00 0 00 004306'		  JRST	$POPJ1		;NO /IFTYP OR NO CHAR
  3378	004066'	051 11 0 00 000000 		CLRBFI			;EAT WHAT MIGHT BE LEFT
  3379	004067'	205 02 0 00 777775 		MOVSI	T2,-N$IFTC	;AOBJN COUNTER
  3380	004070'	312 01 0 02 004076'		CAME	T1,IFTCMD(T2)	;THIS IT?
  3381	004071'	253 02 0 00 004070'		 AOBJN	T2,.-1
  3382	004072'	321 02 1 02 004101'		JUMPL	T2,@IFTDSP(T2)	;JUMP IF FOUND A GOOD ONE
  3383	004073'	201 01 0 00 000007 		MOVEI	T1,.CHBEL	;NO--GET A BELL
  3384	004074'	350 00 0 17 000000 		AOS	(P)		;SET TO SKIP BACK
  3385	004075'	254 00 0 00 000000*		PJRST	.TCHAR##	;TYPE BELL AND CONTINUE
  3386
  3387	004076'	000000	000111		IFTCMD:	EXP	"I"		;IGNORE IFTYP
  3388	004077'	000000	000113			EXP	"K"		;KILL COMMAND
  3389	004100'	000000	000120			EXP	"P"		;PAUSE COMMAND
  3390			000003			N$IFTC==.-IFTCMD
  3391
  3392	004101'	000000	004104'		IFTDSP:	EXP	IFTIGN		;IGNORE
  3393	004102'	000000	004307'			EXP	$POPJ		;KILL
  3394	004103'	000000	004106'			EXP	CHKT.P		;PAUSE
  3395
  3396	004104'	621 00 0 00 010000 	IFTIGN:	TLZ	F,FL$ITY	;CLEAR /IFTYP
  3397	004105'	254 00 0 00 004306'		PJRST	$POPJ1		;SKIP BACK
  3398
  3399	004106'	260 17 0 00 003477*	CHKT.P:	CALL	.TCRLF##	;NEW LINE
  3400	004107'	260 17 0 00 004407'		INFO.	0,PTC,<PAUSING--TYPE ANY CHARACTER TO CONTINUE>
  3401	004110'	300100	006036'
  3402	004111'	350 00 0 17 000000 		AOS	(P)		;SKIP BACK
  3403	004112'	051 11 0 00 000000 	GCHNWL:	CLRBFI			;CLEAR INPUT
  3404	004113'	051 00 0 00 000001 		INCHRW	T1		;GET A CHARACTER
  3405	004114'	051 11 0 00 000000 		CLRBFI			;EAT REAST
  3406						OUTSTR	[ASCIZ/
  3407	004115'	051 03 0 00 006037'	/]
  3408	004116'	263 17 0 00 000000 		POPJ	P,		;RETURN

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 65
DUMPR	MAC	21-FEB-77 17:03		OPEN I/O CHANNELS

  3409					SUBTTL	OPEN I/O CHANNELS
  3410					;OPENIO
  3411					;CALL:	MOVEI	T1,<FDB ADDR>
  3412					;	CALL	OPENIO
  3413					;	CAI	CHANNEL,BUFADR	;@ IF OUTPUT, (MODE)
  3414					;	*ALL IS WELL RETURN*	;ABORT IF FAIL
  3415
  3416	004117'	504 01 0 17 000000 	OPENIO:	HRL	T1,0(P)		;REMEMBER CALLER
  3417	004120'	350 00 0 17 000000 		AOS	0(P)		;SKIP ARGS ON RETURN
  3418	004121'	260 17 0 00 002557*		CALL	.SAVE3##	;PRESERVE REGISTERS
  3419	004122'	204 05 0 00 000001 		MOVS	P1,T1		;COPY ARGUMENTS
  3420	004123'	200 06 0 05 000000 		MOVE	P2,(P1)		;GET REST OF THEM
  3421	004124'	402 00 0 00 005054'		STORE	T1,OPNBLK,LKPBLK+.RBTIM,0 ;CLEAR ANY RESIDUE IN BLOCK
  3422	004125'	200 01 0 00 006040'
  3423	004126'	251 01 0 00 005114'
  3424	004127'	205 01 0 00 000032 		MOVSI	T1,.FXLEN	;SETUP FOR .STOPB
  3425	004130'	544 01 0 00 000005 		HLR	T1,P1		;...
  3426	004131'	201 02 0 00 005054'		MOVEI	T2,OPNBLK	;
  3427	004132'	334 03 0 00 004133'		SKIPA	T3,.+1
  3428	004133'	000036	005057'			.RBTIM+1,,LKPBLK
  3429	004134'	201 04 0 00 005115'		MOVEI	T4,PTHBLK
  3430	004135'	260 17 0 00 000000*		CALL	.STOPB##	;CONVERT TO OPEN/LOOKUP BLOCKS
  3431	004136'	254 00 0 00 004171'		 JRST	WLDERR		;NO WILDCARDING!
  3432	004137'	201 01 0 00 000035 		MOVEI	T1,.RBTIM	;SETUP COUNT
  3433	004140'	202 01 0 00 005057'		MOVEM	T1,LKPBLK+.RBCNT
  3434	004141'	135 01 0 00 006041'		LDB	T1,[POINT 4,P2,17] ;GET MODE
  3435	004142'	202 01 0 00 005054'		MOVEM	T1,OPNBLK	;STORE IN OPEN BLOCK
  3436	004143'	550 01 0 00 000006 		HRRZ	T1,P2		;BUFFER HEADER ADDRESS
  3437	004144'	603 06 0 00 000020 		TLNE	P2,ATSIGN	;READ OR WRITE?
  3438	004145'	207 00 0 00 000001 		MOVSS	T1		;WRITING, POSITON FOR IT
  3439	004146'	202 01 0 00 005056'		MOVEM	T1,OPNBLK+.OPBUF;STORE
  3440	004147'	135 07 0 00 006042'		LDB	P3,[POINT 4,P2,12] ;GET I/O CHANNEL
  3441	004150'	242 07 0 00 000005 		LSH	P3,5		;POSITION
  3442	004151'	207 00 0 00 000007 		MOVSS	P3		;IN CHANNEL POSITION
  3443	004152'	200 01 0 00 006043'		MOVE	T1,[OPEN OPNBLK];FORM INSTR
  3444	004153'	434 01 0 00 000007 		OR	T1,P3		;FINISH
  3445	004154'	256 00 0 00 000001 		XCT	T1		;TRY TO OPEN DEVICE
  3446	004155'	254 00 0 00 004166'		 JRST	OPENER		;CAN'T--BOMB OUT
  3447
  3448	004156'	200 01 0 00 000007 		MOVE	T1,P3		;REGET I/O CHANNEL
  3449	004157'	603 06 0 00 000020 		TLNE	P2,ATSIGN	;READ/WRITE?
  3450	004160'	665 01 0 00 077000 		 TLOA	T1,(ENTER)	;WRITE
  3451	004161'	661 01 0 00 076000 		  TLO	T1,(LOOKUP)	;READ
  3452	004162'	541 01 0 00 005057'		HRRI	T1,LKPBLK	;COMPLETE INSTR
  3453	004163'	256 00 0 00 000001 		XCT	T1		;FIND/WRITE THE FILE
  3454	004164'	254 00 0 00 004174'		 JRST	LKENER		;CAN'T
  3455	004165'	263 17 0 00 000000 		POPJ	P,		;DONE

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 67
DUMPR	MAC	21-FEB-77 17:03		OPEN I/O CHANNELS

  3456					;OPENIO ERRORS
  3457
  3458	004166'	554 01 0 00 000005 	OPENER:	HLRZ	T1,P1		;COPY FDB ADDR
  3459	004167'	260 17 0 00 004407'		ERROR.	EF$FTL!EF$FIL,COD,<CAN'T OPEN DEVICE, FILE >
  3460	004170'	300406	006051'
  3461
  3462	004171'	554 01 0 00 000005 	WLDERR:	HLRZ	T1,P1		;GET FDB
  3463	004172'	260 17 0 00 004407'		ERROR.	EF$FTL!EF$FIL,WFI,<WILDCARD FILESPEC ILLEGAL, FILE >
  3464	004173'	300406	006061'
  3465
  3466	004174'	550 01 0 00 005062'	LKENER:	HRRZ	T1,LKPBLK+.RBEXT;GET FAIL CODE
  3467	004175'	260 17 0 00 004407'		ERROR.	EF$ERR!EF$OCT!EF$NCR,LER,<LOOKUP/ENTER ERROR(>
  3468	004176'	300042	006066'
  3469	004177'	201 01 0 00 006067'		STRNG$	<) FILE >
  3470	004200'	260 17 0 00 003506*
  3471	004201'	554 01 0 00 000005 		HLRZ	T1,P1
  3472	004202'	260 17 0 00 000000*		CALL	.TFBLK##	;TYPE SCAN BLOCK
  3473	004203'	260 17 0 00 004106*		CALL	.TCRLF##	;NEW LINE
  3474	004204'	254 00 0 00 004475'		JRST	ERRFTL		;GO DIE

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 69
DUMPR	MAC	21-FEB-77 17:03		XCTIO EXECUTES IN/OUT UUO WITH ERROR HANDLING

  3475					SUBTTL	XCTIO EXECUTES IN/OUT UUO WITH ERROR HANDLING
  3476
  3477					;XCTIO
  3478					;CALL:	CALL	XCTIO
  3479					;	<INSTR TO XCT>	;IN/OUT UUO
  3480					;	*EOF/EOT RETURN*
  3481					;	*NORMAL RETURN*
  3482
  3483	004205'	256 00 1 17 000000 	XCTIO:	XCT	@0(P)		;DO THE INSTR
  3484	004206'	254 00 0 00 004305'		 JRST	$POPJ2		;OK--SKIP 2 AND RETURN
  3485						SAVE$	T1		;OOPS--SAVE T1
  3486	004210'	200 01 1 17 777777 		MOVE	T1,@-1(P)	;GET INSTR WE FAILED ON
  3487	004211'	350 00 0 17 777777 		AOS	-1(P)		;SKIP INSTR ON WAY BACK
  3488	004212'	404 01 0 00 006071'	XCTIOE:	AND	T1,[17B12]	;ERROR--GET THE CHANNEL
  3489	004213'	261 17 0 00 000003 		PUSH	P,T3		;SAVE T3 A SECOND
  3490	004214'	200 03 0 00 000001 		MOVE	T3,T1		;GET CHANNEL
  3491	004215'	434 03 0 00 006072'		OR	T3,[WAIT]	;WAIT FOR I/O TO CEASE
  3492	004216'	256 00 0 00 000003 		XCT	T3		;DO IT NOW
  3493	004217'	262 17 0 00 000003 		POP	P,T3		;GET T3 BACK
  3494	004220'	434 01 0 00 006073'		OR	T1,[GETSTS T2]	;GET ERRROR BITS
  3495	004221'	256 00 0 00 000001 		XCT	T1
  3496	004222'	602 02 0 00 022000 		TRNE	T2,IO.EOF!IO.EOT;END OF SOMETHING?
  3497	004223'	254 00 0 00 004367'		JRST	TPOPJ		;YES
  3498	004224'	250 01 0 00 000002 		EXCH	T1,T2		;NO--GET BITS IN RIGHT PLACE, SAVE I/O INSTR
  3499	004225'	540 02 0 00 000001 		HRR	T2,T1		;PUT BITS IN THE INSTR
  3500	004226'	620 02 0 00 740000 		TRZ	T2,IO.ERR	;CLEAR ERROR BITS
  3501	004227'	621 02 0 00 002000 		TLZ	T2,002000	;BY MAJIK, A GETSTS BECOMES A SETSTS
  3502	004230'	256 00 0 00 000002 		XCT	T2		;CLEAR THE ERROR BITS
  3503	004231'	135 02 0 00 006074'		LDB	T2,[POINT 4,T2,12] ;GET IO CHANNEL
  3504						SAVE$	T2		;SAVE CHAN ON PDL
  3505	004233'	302 02 0 00 000001 		CAIE	T2,INPC		;INPUT?
  3506	004234'	254 00 0 00 004243'		 JRST	XCTI.1		;NO--ALWAYS MESSAGE THEM
  3507	004235'	607 00 0 00 000200 		TLNN	F,FL$MNP	;READING TO SKIP?
  3508	004236'	333 00 0 00 005471'		 SKIPLE	FLNTRY		;OR NOT /NORETRY
  3509	004237'	254 00 0 00 004371'		 JRST	ETPJ1		;ONE OR THE OTHER GETS NO MESSAGE
  3510	004240'	200 02 0 00 005466'		MOVE	T2,FLERR	;GET /ERROR VALUE
  3511	004241'	306 02 0 00 000002 		CAIN	T2,ERRIGN	;IS IT /ERROR:IGNORE?
  3512	004242'	254 00 0 00 004371'		 JRST	ETPJ1		;YES--DON'T GRIPE
  3513	004243'				XCTI.1:	RESTR$	T2		;GET CHAN BACK
  3514	004244'	260 17 0 00 004251'		CALL	TELIOE		;TELL OF THE ERROR
  3515	004245'	333 01 0 00 005466'		SKIPLE	T1,FLERR	;GET /ERROR:ARG FLAG
  3516	004246'	302 01 0 00 000003 		 CAIE	T1,ERRQUE	;WAS IT /ERROR:QUERY?
  3517	004247'	254 00 0 00 004365'		  JRST	XIOCON		;NO--TELL CONTINUING AND EXIT THIS CALL
  3518	004250'	254 00 0 00 004341'		JRST	GEROPT		;YES--SEE WHAT HE (SHE) WANTS TO DO

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 70
DUMPR	MAC	21-FEB-77 17:03		XCTIO EXECUTES IN/OUT UUO WITH ERROR HANDLING

  3519	004251'	260 17 0 00 003523'	TELIOE:	CALL	FRCTYO		;FORCE TTY OUTPUT
  3520	004252'	260 17 0 00 004203*		CALL	.TCRLF##	;NEW LINE
  3521	004253'	260 17 0 00 004270'		CALL	TELIO1		;TELL TO USERS TTY
  3522	004254'	306 02 0 00 000001 		CAIN	T2,INPC		;IF NOT INPUT CHANNEL OR,
  3523	004255'	602 12 0 00 000010 		TRNE	DC,(DV.TTY)	;IF OUTPUT IS ALSO TO TTY
  3524	004256'	263 17 0 00 000000 		 POPJ	P,		;THEN WE ARE DONE
  3525						SAVE$	T1		;NO--SAVE T1
  3526	004260'	260 17 0 00 001434'		CALL	O$CRLF		;NEW LINE
  3527	004261'	260 17 0 00 001434'		CALL	O$CRLF		;AND ANOTHER
  3528	004262'	201 01 0 00 001437'		MOVEI	T1,O$CHAR	;SETUP ROUTINE
  3529	004263'	260 17 0 00 003472*		CALL	.TYOCH##	;WITH SCAN
  3530	004264'	250 01 0 17 000000 		EXCH	T1,(P)		;REMEMBER OLD ONE
  3531	004265'	476 00 0 00 005170'		SETOM	ERRTYX		;TELL EHNDLR TO NOT SWITCH THEM NOW
  3532	004266'	260 17 0 00 004270'		CALL	TELIO1		;TELL ERROR TO LISTING
  3533	004267'	254 00 0 00 003471'		PJRST	XCHTYO		;FIXUP OUTPUT AND RETURN
  3534
  3535	004270'	260 17 0 00 004407'	TELIO1:	WARN.	EF$NCR!EF$OCT,IOE,<I/O ERROR - STATUS=>
  3536	004271'	300242	006101'
  3537	004272'	260 17 0 00 004310'		CALL	TELPRB		;DECODE BITS FOR USER
  3538						SAVE$	T1		;SAVE STATUS
  3539	004274'	201 01 0 00 006057'		STRNG$	<, FILE >
  3540	004275'	260 17 0 00 004200*
  3541	004276'	201 01 0 00 005372'		MOVEI	T1,OUTSPC	;ASSUME OUTPUT ERROR
  3542						SAVE$	T2		;SAVE CHAN
  3543	004300'	260 17 1 02 006101'		CALL	@[EXP TINSPC,.TFBLK##]-1(T2) ;TYPE THE FILE SPEC
  3544	004301'	260 17 0 00 003500'		CALL	TYFREC		;TYPE FEET AND RECORDS
  3545						RESTR$	T2		;GET CHANN BACK
  3546	004303'	260 17 0 00 004252*		CALL	.TCRLF##	;NEW LINE
  3547	004304'	254 00 0 00 004367'		JRST	TPOPJ		;RESTORE T1 AND RETURN
  3548
  3549	004305'	350 00 0 17 000000 	$POPJ2:	AOS	(P)		;SKIP 2
  3550	004306'	350 00 0 17 000000 	$POPJ1:	AOS	(P)		;SKIP 1
  3551	004307'	263 17 0 00 000000 	$POPJ:	POPJ	P,		;SKIP 0

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 71
DUMPR	MAC	21-FEB-77 17:03		XCTIO EXECUTES IN/OUT UUO WITH ERROR HANDLING

  3552					;HERE WITH ERROR BITS IN T1--DECODE THEM
  3553					;USES NO ACS
  3554
  3555	004310'	260 17 0 00 001445*	TELPRB:	CALL	.PSH4T##	;PRESERVE ACS
  3556	004311'	200 04 0 00 000001 		MOVE	T4,T1		;COPY BITS
  3557	004312'	405 04 0 00 740000 		ANDI	T4,IO.IMP!IO.DER!IO.DTE!IO.BKT ;GET ONLY ERROR BITS
  3558	004313'	322 04 0 00 004334'		JUMPE	T4,PRBDUN	;JUMP IF NOT A PROBLEM
  3559	004314'	242 04 0 00 777762 		LSH	T4,-<ALIGN. (IO.BKT)> ;LINE UP
  3560	004315'	201 01 0 00 006104'		MOVEI	T1,[ASCIZ/ (/]	;START
  3561	004316'	260 17 0 00 004275*		CALL	.TSTRG##
  3562	004317'	621 00 0 00 000002 		TLZ	F,FL$IOF	;CLEAR A FLAG
  3563	004320'	200 03 0 00 006105'		MOVE	T3,[POINT 18,PRBNAM] ;INIT A PTR
  3564	004321'	134 02 0 00 000003 	PRBLUP:	ILDB	T2,T3		;GET A NAME
  3565	004322'	606 04 0 00 000001 		TRNN	T4,1		;IS THIS  A PROBLEM?
  3566	004323'	254 00 0 00 004330'		JRST	PRBNXT		;NO
  3567	004324'	663 00 0 00 000002 		TLOE	F,FL$IOF	;YES--IS IT FIRST?
  3568	004325'	260 17 0 00 004512'		 CALL	TYSLSH		;NO--TYPE A SLASH
  3569	004326'	205 01 0 02 000000 		MOVSI	T1,(T2)		;POSITION CODE
  3570	004327'	260 17 0 00 400042*		CALL	.TSIXN##	;SEND IT
  3571	004330'	242 04 0 00 777777 	PRBNXT:	LSH	T4,-1		;MOVE OVER
  3572	004331'	326 04 0 00 004321'		JUMPN	T4,PRBLUP	;JUMP IF MORE PROBLEMS
  3573	004332'	201 01 0 00 000051 		MOVEI	T1,")"		;NO--FINISH
  3574	004333'	260 17 0 00 004075*		CALL	.TCHAR##
  3575	004334'				PRBDUN:
  3576	004334'	260 17 0 00 000000*	POP4J:	CALL	.POP4T##	;RESTORE REGS
  3577	004335'	263 17 0 00 000000 		POPJ	P,		;AND RETURN
  3578
  3579	004336'	425364	604162		PRBNAM:	'BKTPAR'		;BLOCK TOO LARGE/PARITY ERROR
  3580	004337'	444562	515560			'DERIMP'		;DEVICE ERROR/WRITE LOCKED
  3581	004340'	000000	000000			EXP	0		;SNH

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 72
DUMPR	MAC	21-FEB-77 17:03		XCTIO EXECUTES IN/OUT UUO WITH ERROR HANDLING

  3582					GEROPT:	STRNG$	<
  3583	004341'	201 01 0 00 006106'	OPTION (H FOR HELP): >
  3584	004342'	260 17 0 00 004316*
  3585	004343'	260 17 0 00 004112'		CALL	GCHNWL		;GET HIS ANSWER IN T1
  3586	004344'	205 02 0 00 777773 		MOVSI	T2,-N$EOPT	;GET LOOP COUNT
  3587	004345'	312 01 0 02 004351'		CAME	T1,ERROPT(T2)	;IS THIS IT?
  3588	004346'	253 02 0 00 004345'		 AOBJN	T2,.-1		;NO--CHECK ALL
  3589	004347'	321 02 1 02 004356'		JUMPL	T2,@ERRDSP(T2)	;JUMP IF FOUND A MATCH
  3590	004350'	254 00 0 00 004341'		JRST	GEROPT		;ELSE ASK AGAIN
  3591
  3592	004351'	000000	000103		ERROPT:	EXP	"C"		;CONTINUE
  3593	004352'	000000	000110			EXP	"H"		;GIVE SOME HELP
  3594	004353'	000000	000111			EXP	"I"		;IGNORE FROM NOW ON
  3595	004354'	000000	000121			EXP	"Q"		;QUIT (FAKE AN EOF)
  3596	004355'	000000	000123			EXP	"S"		;SKIP THIS RECORD
  3597			000005		N$EOPT==.-ERROPT
  3598
  3599	004356'	000000	004365'		ERRDSP:	EXP	XIOCON		;CONTINUE
  3600	004357'	000000	004373'			EXP	GVEHLP		;GIVE HELP
  3601	004360'	000000	004363'			EXP	ERIGNR		;IGNORE ERRORS FROM NOW ON
  3602	004361'	000000	004377'			EXP	ERQUIT		;QUIT
  3603	004362'	000000	004401'			EXP	ERSKIP		;SKIP THIS RECORD
  3604
  3605					;HERE TO SET /ERROR:IGNORE
  3606
  3607	004363'	201 01 0 00 000002 	ERIGNR:	MOVEI	T1,ERRIGN	;GET VALUE
  3608	004364'	202 01 0 00 005466'		MOVEM	T1,FLERR	;
  3609
  3610	004365'				XIOCON:
  3611	004365'				TPOPJ1:	RESTR$	T1		;GET T1 AGAIN
  3612	004366'	354 00 0 17 000000 		AOSA	(P)
  3613	004367'				TPOPJ:	RESTR$	T1
  3614	004370'	263 17 0 00 000000 		POPJ	P,
  3615	004371'	262 17 0 17 000000 	ETPJ1:	POP	P,(P)		;CLEAR CRUD ON PDL
  3616	004372'	254 00 0 00 004365'		JRST	TPOPJ1		;AND RESTORE T1 AND RETURN
  3617
  3618					;HERE TO GIVE SOME HELP
  3619
  3620	004373'				GVEHLP:
  3621	004373'	260 17 0 00 000110'	IFE FT$SEG,<CALL UPSCN>		;MAKE HISEG ADDRESSABLE
  3622	004374'	051 03 0 00 401067'		OUTSTR	ERRHLM		;GIVE THE HELP
  3623	004375'	260 17 0 00 000101'	IFE FT$SEG,<CALL DWNSCN>	;REMOVE CORE ONCE MORE
  3624	004376'	254 00 0 00 004341'		JRST	GEROPT
  3625
  3626	401067'					IFE FT$SEG,<HIGH$>	;PUT MESSAGE IN SHARABLE HISEG
  3627					ERRHLM:	ASCIZ$	<TYPE ONE OF:
  3628					C - CONTINUE (DUMP THIS RECORD)
  3629					H - TYPE THIS
  3630					I - CONTINUE AND MAKE IT /ERROR:IGNORE
  3631					Q - QUIT NOW
  3632					S - SKIP THIS RECORD (DO NOT DUMP IT)
  3633					>
  3634	004377'					IFE FT$SEG,<LOW$>	;BACK TO LOWSEG 
  3635
  3636					;HERE TO QUIT

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 72-1
DUMPR	MAC	21-FEB-77 17:03		XCTIO EXECUTES IN/OUT UUO WITH ERROR HANDLING

  3637
  3638	004377'	403 05 0 00 000006 	ERQUIT:	SETZB	P1,P2		;FORCE AND END TO IT ALL
  3639	004400'	254 00 0 00 004367'		JRST	TPOPJ		;RETURN EOF
  3640
  3641					;HERE TO SKIP THIS RECORD
  3642
  3643	004401'	350 00 0 00 005306'	ERSKIP:	AOS	RECORD		;COUNT RECORD WE SKIPPED
  3644	004402'	200 01 0 17 777777 		MOVE	T1,-1(P)	;GET ADDRESS +1 
  3645	004403'	200 01 0 01 777777 		MOVE	T1,-1(T1)	;GET INSTR
  3646	004404'	256 00 0 00 000001 		 XCT	T1		;CLANK IT AGAIN
  3647	004405'	254 00 0 00 004365'		 JRST	TPOPJ1		;OK--RETURN
  3648	004406'	254 00 0 00 004212'		 JRST	XCTIOE		;JUST CAN'T WIN...

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 73
DUMPR	MAC	21-FEB-77 17:03		ERROR HANDLER

  3649					SUBTTL	ERROR HANDLER
  3650
  3651					;EHNDLR -- HANDLE ALL ERRORS
  3652					;THE ONLY CALL IS THRU THE ERROR. MACRO
  3653
  3654	004407'	260 17 0 00 004505'	EHNDLR:	CALL	SAVACS		;SAVE THE ACS
  3655	004410'	603 00 0 00 000010 		TLNE	F,FL$OPN	;OUTPUT FILE OPEN?
  3656	004411'	606 12 0 00 000010 		TRNN	DC,(DV.TTY)	;IS THIS TTY OUTPUT?
  3657	004412'	304 00 0 00 000000 		 CAIA			;OUTPUT NOT OPEN OR NOT TTY OUTPUT
  3658	004413'	260 17 0 00 001434'		 CALL	O$CRLF		;YES--MAKE NEW LINE SO MESSAGE IS SEEN
  3659	004414'	260 17 0 00 003523'		CALL	FRCTYO		;FORCE OUTPUT IF TTY
  3660	004415'	200 05 1 17 000000 		MOVE	P1,@0(P)	;GET FLAGS AND ADDRESSES
  3661	004416'	352 00 0 00 005170'		AOSE	ERRTYX		;CLEAR/CHECK FLAG
  3662	004417'	336 00 1 00 004263*		SKIPN	@.TYOCH##	;IS SCAN TTCALLING?
  3663						 JRST	[SETZM	ERRTYX	;YES--CLEAR FLAG
  3664	004420'	254 00 0 00 006113'			JRST	EHND.0]	;AND SKIP ON
  3665	004421'	400 01 0 00 000000 		SETZ	T1,		;NO--SO MAKE IT
  3666	004422'	260 17 0 00 004417*		CALL	.TYOCH##	;TELL SCAN
  3667	004423'	202 01 0 00 005170'		MOVEM	T1,ERRTYX	;REMEMBER/SET FLAG
  3668	004424'	201 01 0 00 000077 	EHND.0:	MOVEI	T1,"?"		;ASSUME AN ERROR
  3669	004425'	603 05 0 00 000200 		TLNE	P1,EF$WRN	;CHECK WARNING
  3670	004426'	201 01 0 00 000045 		MOVEI	T1,"%"		;YES
  3671	004427'	603 05 0 00 000100 		TLNE	P1,EF$INF	;IF BOTH OFF NOW THEN INFO
  3672	004430'	201 01 0 00 000133 		MOVEI	T1,"["		;GOOD THING WE CHECKED
  3673	004431'	260 17 0 00 004333*		CALL	.TCHAR##	;OUTPUT THE START OF MESSAGE
  3674	004432'	205 01 0 00 445560 		MOVSI	T1,MY$PFX	;SET UP MY PREFIX
  3675	004433'	544 01 0 05 000000 		HLR	T1,(P1)		;GET MESSAGE PREFIX
  3676	004434'	260 17 0 00 004327*		CALL	.TSIXN##	;OUTPUT THE PREFIXES
  3677	004435'	260 17 0 00 000000*		CALL	.TSPAC##	;AND A SPACE
  3678	004436'	550 01 0 05 000000 		HRRZ	T1,(P1)		;GET STRING ADDRESS
  3679	004437'	260 17 0 00 004342*		CALL	.TSTRG##	;SEND IT
  3680	004440'	200 01 0 00 005035'		MOVE	T1,SAVAC+T1	;GET ORIGINAL T1 IN CASE TYPEOUT DESIRED
  3681	004441'	135 02 0 00 006115'		LDB	T2,[POINT 5,P1,17] ;GET TYPED OUT DESIRED
  3682	004442'	303 02 0 00 000006 		CAILE	T2,EF$MAX	;CHECK LEGAL
  3683	004443'	201 02 0 00 000000 		 MOVEI	T2,0		;NOOOP
  3684	004444'	260 17 1 02 004466'		CALL	@ERRTAB(T2)	;CALL THE ROUTINE
  3685	004445'	603 05 0 00 000040 		TLNE	P1,EF$NCR	;IF NO CRLF THEN DON'T CLOSE INFO
  3686	004446'	254 00 0 00 004454'		 JRST	EHND.1		;NO--DON'T CHECK
  3687	004447'	201 01 0 00 000135 		MOVEI	T1,"]"		;PREPARE TO CLOSE INFO
  3688	004450'	603 05 0 00 000100 		TLNE	P1,EF$INF	;CHECK FOR INFO
  3689	004451'	260 17 0 00 004431*		CALL	.TCHAR##	;SEND INFO CLOSE
  3690	004452'	607 05 0 00 000040 		TLNN	P1,EF$NCR	;NO CARRIAGE RETURN?
  3691	004453'	260 17 0 00 004303*		CALL	.TCRLF##	;YES--SEND ONE
  3692	004454'	336 01 0 00 005170'	EHND.1:	SKIPN	T1,ERRTYX	;DID WE RESET SCAN?
  3693	004455'	254 00 0 00 004460'		 JRST	EHND.2		;NO
  3694	004456'	260 17 0 00 004422*		CALL	.TYOCH##	;AND RESTORE IT
  3695	004457'	402 00 0 00 005170'		SETZM	ERRTYX		;CLEAR FLAG
  3696	004460'	603 05 0 00 000400 	EHND.2:	TLNE	P1,EF$FTL	;NOW CHECK FATAL
  3697	004461'	254 00 0 00 004475'		 JRST	ERRFTL		;YES--GO DIE
  3698						;FALL INTO RESACS

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 74
DUMPR	MAC	21-FEB-77 17:03		ERROR HANDLER

  3699					;RESACS -- RESTORE ALL ACS FROM SAVAC AREA
  3700					;	CALL	RESACS
  3701					;	*ACS RESTORED FROM SAVAC*
  3702
  3703	004462'	202 17 0 00 005053'	RESACS:	MOVEM	17,SAVAC+17
  3704	004463'	205 17 0 00 005034'		MOVSI	17,SAVAC
  3705	004464'	251 17 0 00 000017 		BLT	17,17		;REGISTERS ARE RESTORED
  3706	004465'	263 17 0 00 000000 		POPJ	P,		;RETURN
  3707
  3708	004466'	000000	004307'		ERRTAB:	$POPJ			;CODE 0 -- NO ACTION
  3709	004467'	000000	003511*			.TDECW##		;CODE 1 -- TYPE T1 IN DECIMAL
  3710	004470'	000000	000340*			.TOCTW##		;CODE 2 -- TYPE T1 IN OCTAL
  3711	004471'	000000	004434*			.TSIXN##		;CODE 3 -- TYPE T1 IN SIXBIT
  3712	004472'	000000	000000*			.TPPNW##		;CODE 4 -- TYPE T1 AS PPN
  3713	004473'	000000	004437*			.TSTRG##		;CODE 5 -- T1 POINTS TO ASCIZ STRING
  3714	004474'	000000	004202*			.TFBLK##		;CODE 6 -- T1 POINTS AT FDB
  3715
  3716					;HERE TO DIE--
  3717
  3718	004475'	047 00 0 00 000000 	ERRFTL:	RESET			;KILL ALL FILES
  3719	004476'	200 17 0 00 000022'		MOVE	P,INIPDP	;RESET PDL
  3720	004477'	260 17 0 00 000110'	IFE FT$SEG,<CALL UPSCN>		;NEED HISEG
  3721	004500'	260 17 0 00 000000*		CALL	.CLRBF##	;CLEAR REST OF LINE OR WHATEVER
  3722	004501'	336 00 0 00 004523'		SKIPN	OFFSET		;CCL ENTRY
  3723	004502'	331 00 0 00 004514'		 SKIPL	ISCNVL		;OR MIXLOD MONITOR COMMAND?
  3724	004503'	260 17 0 00 000073*		  CALL	.MONRT##	;YES--EXIT 1,
  3725	004504'	254 00 0 00 000012'		JRST	RESTRT		;AND RESTART ON CONTINUE
  3726
  3727					;SAVAC -- SAVE ALL ACS
  3728					;CALL -- PUSHJ P,SAVACS
  3729					;	*ACS SAVED IN SAVAC*	BEWARE!!
  3730
  3731	004505'	202 17 0 00 005053'	SAVACS:	MOVEM	17,SAVAC+17	;SAVE ONE
  3732	004506'	201 17 0 00 005034'		MOVEI	17,SAVAC
  3733	004507'	251 17 0 00 005052'		BLT	17,SAVAC+16
  3734	004510'	200 17 0 00 005053'		MOVE	17,SAVAC+17
  3735	004511'	263 17 0 00 000000 		POPJ	P,		;ACS ARE SAVED
  3736
  3737					;TYSLSH -- TYPE A SLASH THROUGH .TCHAR
  3738
  3739	004512'	201 01 0 00 000057 	TYSLSH:	MOVEI	T1,"/"
  3740	004513'	254 00 0 00 004451*		PJRST	.TCHAR##	;DONE

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 75
DUMPR	MAC	21-FEB-77 17:03		STORAGE

  3741					SUBTTL	STORAGE
  3742
  3743					IFN FT$SEG,<RELOC 0>		;STORAGE GOES IN LOW SEGMENT
  3744
  3745					;STORAGE THAT REMAINS BETWEEN RUNS
  3746
  3747	004514'				U (ISCNVL)		;VALUE FROM .ISCAN
  3748	004515'				U (TLDVER)		;-1 WHEN TYPED VERSION TO TTY
  3749					IFE FT$SEG,<	;NEED TO STORE RUN ARGS
  3750	004516'				U (SAVRUN)		;-1 WHEN HAVE SAVED RUN ARGS
  3751	004517'				U (SGDEV)		;RUN UUO ARGUMENTS ARE SG???
  3752	004520'				U (SGNAM)
  3753	004521'				U (SGLOW)
  3754	004522'				U (SGPPN)
  3755					>;END IFE FT$SEG
  3756	004523'				U (OFFSET)		;STARTING OFFSET
  3757
  3758			004524'		FW$ZER==.	;FIRST WORD ZEROED
  3759	004524'				U (PDLIST,LN$PDL)	;PUSHDOWN LIST
  3760	005034'				U (SAVAC,20)		;SAVE ACS HERE
  3761	005054'				U (OPNBLK,3)		;OPEN BLOCK
  3762	005057'				U (LKPBLK,.RBTIM+1)	;LOOKUP/ENTER BLOCK
  3763	005115'				U (PTHBLK,^D9)		;PATH BLOCK
  3764	005126'				U (SVINOB,3)		;PLACE TO SAVE OPEN BLOCK FOR INPUT FILE
  3765	005131'				U (SVINLK,.RBTIM+1)	;PLACE TO SAVE LOOKUP BLOCK FOR INPUT FILE
  3766	005167'				U (CHRKNT)		;COUNTER FOR CHARACTERS OUTPUT
  3767	005170'				U (ERRTYX)		;FLAG FOR EHNDLR
  3768	005171'				U (ACTLST,LN$ACT)	;ACTION LIST
  3769	005253'				U (SCMDBP)		;BYTE PTR TO STORE IN CMDBFR
  3770	005254'				U (SCMDCT)		;BYTE CTR TO STORE IN CMDBFR
  3771					IFN FT$WLD,<	;WILD STORAGE
  3772	005255'				U (WLDFIR)		;ADDRESS OF SCAN BLOCK FOR .LKWLD
  3773	005256'				U (WLDPTR)		;WILD STORES SCAN BLOCK ADDR HERE
  3774	005257'				U (LKWLFL)		;-1/0/1 == DISK/DECTAPE/OTHER OR NULL
  3775					>;END IFN FT$WLD
  3776	005260'				U (EBCKNT)		;COUNT-DOWN FOR EBCDIC PRETTY PRINTING
  3777	005261'				U (IFILSZ)		;SIZE OF INPUT FILE IN BLOCKS
  3778	005262'				U (IDVNAM)		;INPUT REAL DEVICE NAME
  3779	005263'				U (ODVNAM)		;OUTPUT REAL DEVICE NAME
  3780	005264'				U (IBHR,3)		;INPUT BUFFER HEADER
  3781	005267'				U (OBHR,3)		;OUTPUT BUFFER HEADER
  3782	005272'				U (FORADR)		;ADDRESS OF BUFFER FOR FORTRAN/IREAD INPUT
  3783	005273'				U (BYTPTR)		;PTR FOR /MODE:BYTE
  3784	005274'				U (BYTBPW)		;# BYTES/WORD
  3785	005275'				U (BYTREM)		;# BITS LEFT OVER
  3786	005276'				U (BYTDPB)		;# DIGITS/BYTE
  3787	005277'				U (BYTWID)		;BYTE WIDTH FOR A WORD
  3788	005300'				U (BYTBPL)		;# BYTES/LINE
  3789	005301'				U (BYTRDB)		;REMAINDER DIGITS/BYTE
  3790			005302'		RUN$FZ==.	;FIRST WORD ZEROED AT COMMAND PROCESS START
  3791	005302'				BLOCK	3		;***FOR TAPOP. UUO
  3792			005304'		REELID==.-1		;REELID IS TAPOPBL-1
  3793	005305'				TAPOBL:			;FOR TAPOP.
  3794	005305'				U (FILE)		;FILE NUMBER
  3795	005306'				U (RECORD)		;RECORD NUMBER

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 75-1
DUMPR	MAC	21-FEB-77 17:03		STORAGE

  3796	005307'				U (TOTFIL)		;TOTAL FILES DUMPED
  3797	005310'				U (TOTREC)		;TOTAL RECORDS DUMPED
  3798	005311'				U (WRDCNT)		;ACCUMULATED RECORD WORD COUNT
  3799	005312'				U (ONLYLO)		;LOWEST WORD # IN RECORD TO DUMP
  3800	005313'				U (ONLYHI)		;HIGHEST WORD # IN RECORD TO DUMP
  3801			005313'		RUN$LZ==.-1	;LAST WORD ZEROED AS RUN STARTS (DUMPING)
  3802
  3803			005314'		SCN$FZ==.	;FIRST WORD ZEROED AT CLRANS
  3804	005314'				U (CMDBFR,LN$CMD)	;SAVE COMMAND HERE SO WE CAN PUT ON DUMP
  3805	005340'				U (INPSPC,.FXLEN)	;INPUT SPECIFICATION
  3806	005372'				U (OUTSPC,.FXLEN)	;OUTPUT SPECIFICATION
  3807	005424'				U (DUMPFL)		;-1 WHEN /DUMP SEEN
  3808	005425'				U (TITLEB,LN$TTL)	;BLOCK FOR /TITLE
  3809			005462'		 TITLEE==.-1	;FOR END OF BLT
  3810	005463'				U (TTLZER)		;ENSURE A ZERO ON THE END
  3811			005463'		SCN$LZ==.-1	;LAST WORD ZEROED AT CLRANS
  3812			005464'		SCN$FO==.	;FIRST WORD MINUS ONNED AT CLRANS
  3813	005464'				U (S.BLKF)		;/BLOCK:N
  3814	005465'				U (BUFSIZ)		;/BUFSIZ
  3815	005466'				U (FLERR)		;/ERROR:ARG
  3816	005467'				U (LINRDX)		;/LINRDX
  3817	005470'				U (NMTBUF)		;/MTBUF
  3818	005471'				U (FLNTRY)		;/NORETRY
  3819	005472'				U (FLOMIT)		;/OMIT
  3820	005473'				U (USERDX)		;/RADIX
  3821	005474'				U (USRWID)		;WIDTH OF WORD IF /RADIX USED
  3822	005475'				U (FLWIDT)		;/WIDTH
  3823			005475'		SCN$LO==.-1	;LAST WORD ONNED AT CLRANS
  3824			005475'		LW$ZER==.-1	;LAST WORD ZEROED AT STARTUP
  3825					IFN FT$SEG,<	;FORCE LITERALS OUT IN HIGH SEGMENT
  3826						RELOC
  3827					>;END IFN FT$SEG
  3828						XLIST	;JUST LITERALS FOLLOWING
  3829						LIST	;LITERALS PRECEDE
  3830			000000'		ENDUMP::END	DUMPR

NO ERRORS DETECTED

HI-SEG. BREAK IS 401127
PROGRAM BREAK IS 006116
CPU TIME USED 01:36.830

14K CORE USED

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE S-1
DUMPR	MAC	21-FEB-77 17:03		SYMBOL TABLE

A		000011		CSEG$		000000	SPD	DUMPR		000000'		EHNDLR		004407'		
ACTLST		005171'		CW$1O3		001000	SPD	DV.DIR	000004	000000	SPD	ENDMS1		000652'		
AD.BFZ		004000	SPD	CW$ANY		003000	SPD	DV.DSK	200000	000000	SPD	ENDMS2		000656'		
AD.BKF		000120	SPD	CW$TY3		002000	SPD	DV.LPT	040000	000000	SPD	ENDMS3		000661'		
AD.MBF		000003	SPD	D$BSP		003730'		DV.MTA	000020	000000	SPD	ENDMS4		000663'		
AD.MTN		177777	SPD	D$DMP		000502'		DV.TTY	000010	000000	SPD	ENDMS5		000665'		
AD.ONL		000000	SPD	D$DMP1		000520'		DWNSCN		000101'		ENDMSG		000670'		
AD.RDX		000010	SPD	D$MBY1		001411'		E$$BSO		003766'		ENDUMP		006116'	INT	
AD.WID		000120	SPD	D$MBYT		001362'		E$$CDM		000525'		ENTER	077000	000000		
AIN		400422'		D$MHLF		001427'		E$$EIW		000435'		ERIGNR		004363'		
ALEN		400432'		D$MOD		001261'		E$$IBS		400544'		ERQUIT		004377'		
AOUT		400434'		D$MSET		001270'		E$$ID7		000312'		ERR.L		000003	SPD	
ATSIGN		000020	SPD	D$NEW2		001172'		E$$ID9		000305'		ERR.T		400212'		
BF.IOU	400000	000000	SPD	D$NEWL		001155'		E$$IFU		003436'		ERRCON		000001	SPD	
BF.VBR	400000	000000	SPD	D$ONL		004030'		E$$ISO		400552'		ERRDSP		004356'		
BINEXP		003077'		D$ONLF		004044'		E$$ONL		004046'		ERRFTL		004475'		
BLKMS1		001077'		D$REW		003776'		E$$OSI		400547'		ERRHLM		401067'		
BLKMS2		001101'		D$RIB		004021'		E$$SFI		003726'		ERRIGN		000002	SPD	
BLKMS3		001103'		D$SKP		003634'		E$$SFM		003745'		ERROPT		004351'		
BPIMES		000776'		D$WORD		000527'		E$$SWI		000576'		ERRQUE		000003	SPD	
BSPDIR		003747'		DC		000012		E.DFL		401065'	EXT	ERRTAB		004466'		
BSPFOR		003770'		DEN160		000311'		E.DFO		005622'	EXT	ERRTYX		005170'		
BUFSIZ		005465'		DEN200		000304'		E1		000007		ERSKIP		004401'		
BYTBPL		005300'		DEN556		000304'		E2		000010		ETAPOP		000327'		
BYTBPW		005274'		DEN625		000311'		E3		000011		ETPJ1		004371'		
BYTDPB		005276'		DENTBL		000777'		E4		000012		EVNPAR		000320'		
BYTPTR		005273'		DEVCHR	047000	000004		E5		000013		EXIT	047000	000012		
BYTRDB		005301'		DEVNAM	047000	000064		EBCKNT		005260'		EXP10		003347'		
BYTREM		005275'		DEVTYP	047000	000053		EBCTAB		002660'		F		000000		
BYTWID		005277'		DF$BFZ		002000	SPD	EBCTB1		002717'		FILD.0		000041'		
C		000010		DIGIT		003221'		EBCTB2		002726'		FILD.2		000045'		
CALL	260740	000000		DIOIOW		001572'		EF$DEC		000001	SPD	FILD.9		000070'		
CHKC.0		400070'		DMPDSP		000363'		EF$ERR		000000	SPD	FILD.X		000071'		
CHKC.1		400101'		DMPE.1		000623'		EF$FIL		000006	SPD	FILE		005305'		
CHKCMD		400051'		DMPE.2		000632'		EF$FTL		000400	SPD	FILEND		001206'		
CHKT.P		004106'		DMPEDT		000026	SPD	EF$INF		000100	SPD	FILMS1		001245'		
CHKTTY		004063'		DMPEND		000615'		EF$MAX		000006	SPD	FILMS2		001247'		
CHRKNT		005167'		DMPI.1		000411'		EF$NCR		000040	SPD	FILMS3		001253'		
CKPOSC		400567'		DMPINI		000373'		EF$OCT		000002	SPD	FILMS4		001255'		
CKPS.1		400570'		DMPINP		000353'		EF$PPN		000004	SPD	FIT		003163'		
CL.RST		000040	SPD	DMPINW		000563'		EF$SIX		000003	SPD	FL$EOT		000100	SPD	
CLOSE	070000	000000		DMPLUP		000354'		EF$STR		000005	SPD	FL$FL2		000020	SPD	
CLRANS		400444'		DMPMIN		000000	SPD	EF$WRN		000200	SPD	FL$FOR		400000	SPD	
CLRBFI	051440	000000		DMPVER		000005	SPD	EFMT1		003056'		FL$IND		004000	SPD	
CLRFIL		400462'		DMPWHO		000000	SPD	EFMT11		003147'		FL$IOF		000002	SPD	
CLRU.1		004054'		DMPWRD		000422'		EFMT14		003160'		FL$ITY		010000	SPD	
CLRUSE		004050'		DOPRMP		400037'		EFMT2		003063'		FL$MNP		000200	SPD	
CMDBFR		005314'		DOTPOP		000324'		EFMT3		003121'		FL$NEG		001000	SPD	
CMDLST		400044'		DSKP.G		003646'		EFMT4		003127'		FL$ODN		000001	SPD	
CMDO.1		001016'		DUMP$G		000447'		EFMT7		003131'		FL$OLY		000040	SPD	
CMDO.2		001030'		DUMP.1		000442'		EFORM2		003174'		FL$OMI		020000	SPD	
CMDO.3		001017'		DUMP.2		000445'		EFORM5		003205'		FL$OPN		000010	SPD	
CMDO.4		001043'		DUMPEF		000600'		EHND.0		004424'		FL$OUT		002000	SPD	
CMDOUT		001014'		DUMPFL		005424'		EHND.1		004454'		FL$PHY		200000	SPD	
CORE	047000	000011		DUMPIT		000437'		EHND.2		004460'		FL$POS		400000	SPD	

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE S-2
DUMPR	MAC	21-FEB-77 17:03		SYMBOL TABLE

FL$RDX		000004	SPD	FT$WLD		000001	SPD	IO.BKT		040000	SPD	MODOCT		000010	SPD	
FL$SCN		776004	SPD	FW$ZER		004524'	SPD	IO.DER		200000	SPD	MODSIX		000011	SPD	
FL$SUM		100000	SPD	FX.DEN		070000	SPD	IO.DTE		100000	SPD	MODSYM		000012	SPD	
FL$TMP		000400	SPD	FX.NDV	400000	000000	SPD	IO.EOF		020000	SPD	MODTBI		001347'		
FL$TOT		040000	SPD	FX.NUL	200000	000000	SPD	IO.EOT		002000	SPD	MODTBL		001334'		
FLERR		005466'		FX.PAR		004000	SPD	IO.ERR		740000	SPD	MSETBY		001305'		
FLNTRY		005471'		GCHNWL		004112'		IO.IMP		400000	SPD	MT.7TR		000020	SPD	
FLODIV		003110'		GEROPT		004341'		IO.NRC		000100	SPD	MTAPOS		400555'		
FLOMIT		005472'		GETBUF		003355'		IOINTB		001610'		MTBSF.	072000	000017		
FLTROT		000547'		GETSEG	047000	000040		ISCNBL		400011'		MTBSR.	072000	000007		
FLWIDT		005475'		GETSTS	062000	000000		ISCNVL		004514'		MTCHR.	047000	000112		
FMTFLO		003050'		GETW.1		001325'		L		000015		MTIND.	072000	000101		
FMTI.1		002745'		GETW.2		001327'		LGLMTF		400602'		MTREW.	072000	000001		
FMTINT		002735'		GETWID		001310'		LINRDX		005467'		MTSKF.	072000	000016		
FMTO.1		002774'		GMBWID		001417'		LKENER		004174'		MTSKR.	072000	000006		
FMTOCT		002767'		GO2ERF		003167'		LKPBLK		005057'		MTWAT.	072000	000000		
FMTR.1		003002'		GVEHLP		004373'		LKWLDB		400675'		MX$CMD		000143	SPD	
FMTRDX		003001'		HALT	254200	000000		LKWLFL		005257'		MX.		000000	SPD	
FMTSGN		002757'		HILOC$		004377'	SPD	LN$ACT		000062	SPD	MX.BFZ		010000	SPD	
FN$BSP		000004	SPD	HITEN		003315'		LN$CMD		000024	SPD	MX.BKF		177777	SPD	
FN$DMP		000003	SPD	HOLDMP		400463'		LN$PDL		000310	SPD	MX.MBF		000012	SPD	
FN$END	777777	777776	SPD	IBHR		005264'		LN$TTL		000036	SPD	MX.MTN		177777	SPD	
FN$INP	777777	777777	SPD	IDVNAM		005262'		LNODSP		001203'		MX.ONL		177777	SPD	
FN$MOD		000001	SPD	IFILSZ		005261'		LNORDX		001175'		MX.RDX		000020	SPD	
FN$ONL		000002	SPD	IFTCMD		004076'		LNOWID		001200'		MX.WID		000204	SPD	
FN$REW		000006	SPD	IFTDSP		004101'		LOLOC$		401127'	SPD	MY$NAM	446555	606200	SPD	
FN$RIB		000007	SPD	IFTIGN		004104'		LOOKUP	076000	000000		MY$PFX		445560	SPD	
FN$SKP		000005	SPD	ILLIDV		400161'		LRGERR		003454'		N		000007		
FN$TP1		000004	SPD	ILLODV		400160'		LRX.L		000003	SPD	N$CMDS		000001	SPD	
FN$TPX		000006	SPD	IMES1		000761'		LRX.T		400227'		N$ECH2		000007	SPD	
FOR3.X		003576'		IMES2		000763'		LRXDEC		000001	SPD	N$ECHR		000037	SPD	
FORADR		005272'		IMES3		000764'		LRXHEX		000002	SPD	N$EOPT		000005	SPD	
FORCON		003545'		IMES4		000765'		LRXOCT		000003	SPD	N$IFTC		000003	SPD	
FORCW1		003544'		IMES5		000771'		LW$ZER		005475'	SPD	N$MTAF		000004	SPD	
FORCW2		003566'		IMES6		000774'		M		000014		NMTBUF		005470'		
FORCW3		003571'		IN	056000	000000		MNETBL		001620'		NOOP		300000	SPD	
FORLRG		003625'		INCHRS	051100	000000		MNP.B1		400644'		O$AQST		002534'		
FORSRC		003602'		INCHRW	051000	000000		MNP.BF		400640'		O$ASC1		002517'		
FRCTYO		003523'		INCHWL	051200	000000		MNP.BS		400634'		O$ASC4		002535'		
FS$INP	000004	000000	SPD	INDFLO		000532'		MNP.RW		400624'		O$ASC5		002536'		
FS$NVL	000002	000000	SPD	INIACT		400445'		MNP.SK		400634'		O$ASCC		002524'		
FS$OUT	000010	000000	SPD	INIH.1		000705'		MNP.XX		400630'		O$ASCW		002514'		
FS$XTR	000001	000000	SPD	INIH.3		000724'		MNPDSP		400621'		O$BUFR		001445'		
FS$XXX	774000	000000	SPD	INIH.4		000743'		MNPX.2		400611'		O$BYT1		002564'		
FS.LRG	200000	000000	SPD	INIHDR		000677'		MNPXCI		400606'		O$BYT2		002571'		
FS.NCM	004000	000000	SPD	INIPDP		000022'		MNPXDG		400626'		O$BYTW		002557'		
FS.NFS	400000	000000	SPD	INPC		000001	SPD	MOD.L		000012	SPD	O$CHAR		001437'		
FS.NOS	010000	000000	SPD	INPCLS		000205'		MOD.T		400215'		O$CHR1		001441'		
FS.NUE	100000	000000	SPD	INPD.1		400151'		MODASC		000001	SPD	O$COMA		001474'		
FS.OBV	020000	000000	SPD	INPDFL		400117'		MODBYT		000002	SPD	O$CRLF		001434'		
FS.VRQ	040000	000000	SPD	INPSPC		005340'		MODEBC		000003	SPD	O$DECW		002474'		
FT$ISD		000001	SPD	INPW.1		003517'		MODFLO		000004	SPD	O$DIGT		002510'		
FT$OPT		000001	SPD	INPWRD		003513'		MODHAL		000005	SPD	O$DOT		001467'		
FT$PHX		000001	SPD	INWL.1		400652'		MODHEX		000006	SPD	O$EBC1		002605'		
FT$SEG		000000	SPD	INWLDO		400650'		MODINT		000007	SPD	O$EBC3		002617'		

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE S-3
DUMPR	MAC	21-FEB-77 17:03		SYMBOL TABLE

O$EBCW		002602'		OUTP3		003234'		RECMTA		001114'		SVINLK		005131'		
O$HEX1		001502'		OUTP4		003240'		RECORD		005306'		SVINOB		005126'		
O$HEXI		001476'		OUTPUT	067000	000000		REELID		005304'	SPD	SWTD		400342'		
O$HEXW		001477'		OUTSPC		005372'		RELEAS	071000	000000		SWTL		000030	SPD	
O$IAS1		002551'		OUTSTR	051140	000000		RESACS		004462'		SWTM		400312'		
O$IASC		002546'		P		000017		RESET	047000	000000		SWTN		400232'		
O$OCTW		002473'		P1		000005		RESTRT		000012'		SWTP		400262'		
O$RDXW		002475'		P2		000006		REWMTA		004013'		SWTS0A		400515'		
O$SIX0		002464'		P3		000007		RFOR.1		003534'		SWTST0		400516'		
O$SIX1		002465'		P4		000010		RFOR.3		003536'		SYMXWD		001601'		
O$SIXN		002462'		PD.		000000	SPD	RFOR.4		003560'		T1		000001		
O$SIXW		002460'		PD.BFZ		002000	SPD	RFOR.5		003561'		T2		000002		
O$SLSH		001472'		PD.BKF		000120	SPD	RNDHGH		003246'		T3		000003		
O$SPAC		001466'		PD.MBF		000003	SPD	RTLERR		003474'		T4		000004		
O$SPEC		001464'		PD.MTN		177777	SPD	RUN$FZ		005302'	SPD	TAPOBL		005305'		
O$STR1		001460'		PD.ONL		000000	SPD	RUN$LZ		005313'	SPD	TAPOP.	047000	000154		
O$STRG		001456'		PD.RDX		000010	SPD	RUNSVD		000012'		TELIO1		004270'		
O$SYMW		001507'		PD.WID		000120	SPD	S.BLKF		005464'		TELIOE		004251'		
O$TABC		001471'		PDLIST		004524'		SAVAC		005034'		TELPRB		004310'		
OBHR		005267'		PHXL.2		003450'		SAVACS		004505'		TINSPC		001011'		
ODVNAM		005263'		PHXLRG		003440'		SAVRUN		004516'		TITLEB		005425'		
OFFSET		004523'		PHYX.0		003374'		SCMDBP		005253'		TITLEE		005462'	SPD	
OLYD.1		000467'		PHYX.2		003411'		SCMDCT		005254'		TLDVER		004515'		
OLYD.2		000472'		PHYX.3		003421'		SCN$FO		005464'	SPD	TOOBIG		000560'		
OLYD.3		000475'		PHYX.4		003403'		SCN$FZ		005314'	SPD	TOOSML		000556'		
OLYDMP		000461'		PJOB	047000	000030		SCN$LO		005475'	SPD	TOTFIL		005307'		
ONLYHI		005313'		PJRST	254000	000000		SCN$LZ		005463'	SPD	TOTREC		005310'		
ONLYLO		005312'		PJSP	265000	000000		SCNCMD		400000'		TPOPJ		004367'		
OPEN	050000	000000		PLUS		003214'		SEGAGN		000115'		TPOPJ1		004365'		
OPENER		004166'		POP4J		004334'		SETC.1		000271'		TRMNO.	047000	000115		
OPENIO		004117'		PRBDUN		004334'		SETCHR		000262'		TRMOP.	047000	000116		
OPNBLK		005054'		PRBLUP		004321'		SETDEN		000274'		TSCNBL		400017'		
OPNI.1		000161'		PRBNAM		004336'		SETI.1		003666'		TSTBHR		000213'		
OPNI.2		000172'		PRBNXT		004330'		SETIOC		003660'		TTINPT		400045'		
OPNI.A		000144'		PRMPTM		400043'		SETPAR		000316'		TTLZER		005463'		
OPNINP		000133'		PROCMD		000347'		SETSTS	060000	000000		TY.SPL	000020	000000	SPD	
OPNO.1		000250'		PTHBLK		005115'		SGDEV		004517'		TYFREC		003500'		
OPNOUT		000234'		PTLEN		000024		SGLOW		004521'		TYSLSH		004512'		
OPSWD		400414'		PUTACT		400520'		SGNAM		004520'		UPSCN		000110'		
OPSWL		000006	SPD	Q		000016		SGPPN		004522'		USERDX		005473'		
OPSWM		400406'		RADXZR		003015'		SIGN		003215'		USETI	074000	000000		
OPSWN		400372'		RBRKNL		001007'		SIGN1		003216'		USRWID		005474'		
OPSWP		400400'		RDFORT		003530'		SKDF.1		003720'		UUO000		001567'		
ORDXW1		002502'		RDPHYX		003373'		SKDFOR		003717'		UUOIOW		001556'		
OSCNBL		400031'		RDXADJ		003032'		SKMF.1		003653'		W		000013		
OSYM.2		001522'		RDXCON		003010'		SKMFOR		003651'		WAIT	047000	000010		
OSYM.4		001530'		RDXLUP		003005'		SKPDIR		003703'		WLDERR		004171'		
OSYM.6		001546'		RDXNZR		003025'		SKPFLR		003672'		WLDFIR		005255'		
OSYM2A		001525'		RECH.1		001061'		SKPL.0		003673'		WLDPTR		005256'		
OUT	057000	000000		RECH.2		001131'		SKPL.1		003676'		WRDCNT		005311'		
OUTC		000002	SPD	RECH.3		001144'		SKPL.2		003677'		WRDRDX		400112'		
OUTCLS		000224'		RECHDR		001045'		STOMOD		400525'		XCHTYO		003471'		
OUTDFL		400164'		RECMS1		001105'		STOSWA		400472'		XCTI.1		004243'		
OUTP1		003227'		RECMS2		001107'		STOSWB		400476'		XCTIO		004205'		
OUTP2		003230'		RECMS3		001111'		STOSWT		400466'		XCTIOE		004212'		

DUMPR - UTILITY FILE DUMPER %5(26)	MACRO %50A(441)-2 13:51 23-FEB-77 PAGE S-4
DUMPR	MAC	21-FEB-77 17:03		SYMBOL TABLE

XIOCON		004365'		.LKWLD		400653'	EXT	
XLTE.1		002627'		.MONRT		004503'	EXT	
XLTE.2		002635'		.OPBUF		000002	SPD	
XLTE.4		002644'		.OPMOD		000000	SPD	
XLTE.5		002646'		.OSCAN		400003'	EXT	
XLTE.6		002653'		.POP4T		005650'	EXT	
XLTEBC		002621'		.PSH4T		004310'	EXT	
XLTQST		002625'		.RBCNT		000000	SPD	
ZERO		003212'		.RBEXT		000003	SPD	
ZZ		000006	SPD	.RBSIZ		000005	SPD	
$FLFOR	400000	000000	SPD	.RBTIM		000035	SPD	
$FLIND	004000	000000	SPD	.RECOR		000023'	EXT	
$FLITY	010000	000000	SPD	.RUNCM		000071'	EXT	
$FLOMI	020000	000000	SPD	.SAVE1		003530'	EXT	
$FLPHY	200000	000000	SPD	.SAVE2		003373'	EXT	
$FLSUM	100000	000000	SPD	.SAVE3		004121'	EXT	
$FLTOT	040000	000000	SPD	.SAVE4		000347'	EXT	
$OKDVI	000024	000000	SPD	.SGDEV		000011	SPD	
$OKDVO	040034	000000	SPD	.SGLOW		000017	SPD	
$POPJ		004307'		.SGNAM		000000	SPD	
$POPJ1		004306'		.SGPPN		000007	SPD	
$POPJ2		004305'		.STOPB		004135'	EXT	
%%DUMP	000500	000026	SIN	.SWASQ		400337'	EXT	
%%JOBD	043000	000443	SIN	.SWDEC		400413'	EXT	
%%MACT	000100	000024	SIN	.TCHAR		004513'	EXT	
%%SCNM	000700	000203	SIN	.TCRLF		004453'	EXT	
%%UUOS	101100	000225	SIN	.TDATN		000745'	EXT	
.ALCBF		000255'	EXT	.TDECW		004467'	EXT	
.ALCOR		000202'	EXT	.TFBLK		006103'	EXT	
.BFADR		000000	SPD	.TFD80		000003	SPD	
.BFCTR		000002	SPD	.TFDEN		001001	SPD	
.BFPTR		000001	SPD	.TFPAR		001005	SPD	
.CHBEL		000007	SPD	.TFSET		001000	SPD	
.CHCRT		000015	SPD	.TFSTA		001016	SPD	
.CHKTM		400672'	EXT	.TOCTW		004470'	EXT	
.CHLFD		000012	SPD	.TOLEB		001013'	EXT	
.CHTAB		000011	SPD	.TOWID		001012	SPD	
.CHVTB		000013	SPD	.TPPNW		004472'	EXT	
.CLRBF		004500'	EXT	.TSCAN		400001'	EXT	
.DECNW		400534'	EXT	.TSIXN		004471'	EXT	
.DECOR		000210'	EXT	.TSPAC		004435'	EXT	
.FREBF		000216'	EXT	.TSTRG		004473'	EXT	
.FXDEV		000000	SPD	.TTIMN		000750'	EXT	
.FXDIR		000006	SPD	.TVERW		000036'	EXT	
.FXEXT		000003	SPD	.TYOCH		004456'	EXT	
.FXFLM		000027	SPD	.WLDFL		000056'	EXT	
.FXLEN		000032	SPD	
.FXMOD		000004	SPD	
.FXNAM		000001	SPD	
.FXNMM		000002	SPD	
.IOASC		000000	SPD	
.IOBIN		000014	SPD	
.ISCAN		000026'	EXT	
.JBHRL		000115		
.JBVER		000137		
A	   134#	   134	   146	   821	   885	   886	  1267	  1270	  1271	  1272	  1273	  1473	  1495
ACTLST	   822	   930	   955	  1267	  3768#
AD.BFZ	   633
AD.BKF	   634	  1311
AD.MBF	   635
AD.MTN	   636
AD.ONL	   637
AD.RDX	   638
AD.WID	   639	  1798
AIN	   460	   798#
ALEN	   807#	   817
AOUT	   460	   809#
ATSIGN	   201#	  3437	  3449
BF.IOU	  3360
BF.VBR	  3365
BINEXP	  2783	  2787#	  2810
BLKMS1	  1631	  1644#
BLKMS2	  1645#	  1664
BLKMS3	  1633	  1646#
BPIMES	  1547	  1570#
BSPDIR	  3270	  3284#
BSPFOR	  3293	  3303#
BUFSIZ	   686	   777	  1109	  1111	  1126	  3013	  3048	  3051	  3140	  3161	  3173	  3194	  3814#
BYTBPL	  1784	  1859	  3788#
BYTBPW	  1842	  1847	  1849	  2549	  3784#
BYTDPB	  1785	  1846	  1848	  1861	  2563	  3786#
BYTPTR	  1837	  2548	  3783#
BYTRDB	  1856	  2561	  3789#
BYTREM	  1843	  1851	  2556	  3785#
BYTWID	  1850	  1855	  1858	  3787#
C	   142#	   487	   489	   866	   894
CHKC.0	   500	   508#
CHKC.1	   514	   517#
CHKCMD	   440	   493#
CHKT.P	  3394	  3399#
CHKTTY	  1346	  3375#
CHRKNT	  1898	  1961	  1989	  3766#
CKPOSC	   917	   930#
CKPS.1	   931#	   938
CL.RST	  1157
CLRANS	   459	   821#
CLRFIL	   459	   838#
CLRU.1	  3361#	  3364
CLRUSE	  3253	  3297	  3305	  3323	  3337	  3357#
CMDBFR	   830	  1589	  3804#
CMDLST	   446	   482#	   483
CMDO.1	  1591#	  1599	  1608	  1611	  1614
CMDO.2	  1594	  1602#
CMDO.3	  1592#	  1612
CMDO.4	  1601	  1604	  1613#
CMDOUT	  1558	  1589#
CSEG$	   352#	   426	   426#	  1033	  1033#	  3626	  3626#	  3634	  3634#
CW$1O3	   208#	  3127
CW$ANY	   207#	  3125	  3183
CW$TY3	   209#	  3129
D$BSP	  1286	  3266#
D$DMP	  1285	  1374#
D$DMP1	  1377	  1388#
D$MBY1	  1852	  1857#
D$MBYT	  1763	  1834#	  1882
D$MHLF	  1765	  1878#
D$MOD	  1283	  1761#
D$MSET	  1307	  1700	  1766	  1771#
D$NEW2	  1691	  1700#
D$NEWL	  1335	  1364	  1682	  1686#
D$ONL	  1284	  3340#
D$ONLF	  3344	  3352#
D$REW	  1288	  3312#
D$RIB	  1289	  3332#
D$SKP	  1287	  3198#
D$WORD	  1338	  1367	  1397#
DC	   135#	   135	   147	   512	   547	   548	   567	   568	   592	  1094	  1115	  1123	  1168	  1178
	  1295	  1374	  1376	  1389	  1446	  1486	  1525	  1629	  1724	  1731	  1748	  1788	  2992	  3067
	  3112	  3199	  3200	  3268	  3269	  3313	  3320	  3333	  3523	  3656
DEN160	  1211	  1224#
DEN200	  1208	  1217#
DEN556	  1209	  1216#
DEN625	  1212	  1223#
DENTBL	  1545	  1571#
DF$BFZ	   104	  1110
DIGIT	  2859	  2885#
DIOIOW	  1964	  2016#
DMPDSP	  1274	  1279#
DMPE.1	  1457	  1465	  1471	  1475	  1477#
DMPE.2	  1480	  1484#
DMPEDT	    10#	    17	    20
DMPEND	  1276	  1342	  1347	  1448	  1469#	  3258
DMPI.1	  1297	  1306#
DMPINI	  1266	  1292#
DMPINP	  1269#	  1277
DMPINW	  1399	  1429#
DMPLUP	  1270#	  1496	  1767	  1862	  3210	  3254	  3262	  3298	  3307	  3324	  3330	  3338	  3353
DMPMIN	    11#	    20
DMPVER	     9#	    17	    20
DMPWHO	    12#	    20
DMPWRD	  1318#	  1398
DOPRMP	   450	   475#
DOTPOP	  1202	  1246#
DSKP.G	  3208#	  3279
DUMP$G	  1343#	  1358	  1388	  1392	  1463	  1464
DUMP.1	  1334	  1337#
DUMP.2	  1341#	  1350	  1368	  1370
DUMPEF	  1344	  1446#
DUMPFL	   802	   888	  3807#
DUMPIT	  1334#	  1339	  1352
DUMPR	   356#	  3830
DV.DIR	   205	   206	  1374	  1446	  1629	  3199	  3200	  3268	  3269	  3320
DV.DSK	  3333
DV.LPT	   206
DV.MTA	   205	   206	   512	   548	   568	   920	  1094	  1115	  1123	  1168	  1178	  1295	  1376	  1389
	  1486	  1525	  1724	  1731	  1748	  2992	  3313
DV.TTY	   206	   567	  1788	  3067	  3112	  3523	  3656
DWNSCN	   400	  1039#	  3623
E$$BSO	  3286	  3300#
E$$CDM	  1375	  1393#
E$$EIW	  1321	  1330#
E$$IBS	   902	   905#
E$$ID7	  1225#
E$$ID9	  1218#
E$$IFU	  3012	  3043#	  3053	  3056
E$$ISO	   860	   912#
E$$ONL	  3340	  3341	  3346	  3354#
E$$OSI	   856	   909#
E$$SFI	  3243	  3263#	  3284
E$$SFM	  3272	  3281#
E$$SWI	  1439	  1440	  1442#
E.DFL	  1017
E.DFO	  1012	  1456
E1	   144#	  2769	  2770	  2774	  2800	  2805	  2811	  2813	  2818	  2826	  2840	  2841	  2871
E2	   145#	  2774	  2775	  2776	  2777	  2780	  2781	  2782	  2787	  2798	  2799	  2804	  2807	  2814
	  2815	  2825	  2828	  2853	  2860
E3	   146#	  2777	  2778	  2787	  2788	  2790	  2791	  2793	  2794	  2800	  2811	  2813	  2828	  2829
	  2830	  2838	  2840	  2843	  2888	  2890
E4	   147#	  2789	  2792	  2841	  2842
E5	   148#	  2845	  2846	  2847	  2848	  2851	  2856	  2870	  2898	  2901
EBCKNT	  1313	  2577	  2580	  3776#
EBCTAB	  2597	  2602	  2617#	  2648
EBCTB1	  2607	  2610	  2650#	  2657
EBCTB2	  2615	  2659#
EF$DEC	   262#	   504	   907	  3082
EF$ERR	   250#	   504	  1067	  1907	  3468
EF$FIL	   267#	   578	  3460	  3464
EF$FTL	   251#	   516	   522	   527	   578	   801	   812	   896	   907	   911	   914	   940	  1219	  1226
	  1331	  1394	  1443	  3029	  3044	  3169	  3264	  3282	  3301	  3316	  3335	  3355	  3460	  3464
	  3696
EF$INF	   253#	  3401	  3671	  3688
EF$MAX	   268#	  3682
EF$NCR	   254#	  1252	  3082	  3468	  3536	  3685	  3690
EF$OCT	   263#	  1067	  1252	  3468	  3536
EF$PPN	   265#
EF$SIX	   264#	   516	   911	   914
EF$STR	   266#
EF$WRN	   252#	   552	  1252	  3082	  3536	  3669
EFMT1	  2764	  2768#
EFMT11	  2835#	  2838
EFMT14	  2842	  2845#
EFMT2	  2774#	  2785
EFMT3	  2779	  2810#	  2815
EFMT4	  2812	  2817#
EFMT7	  2768	  2820#
EFORM2	  2856	  2858#
EFORM5	  2866	  2869#
EHND.0	  3664	  3668#
EHND.1	  3686	  3692#
EHND.2	  3693	  3696#
EHNDLR	   503	   515	   521	   526	   551	   577	   800	   811	   895	   906	   910	   913	   939	  1066
	  1218	  1225	  1251	  1330	  1393	  1442	  1906	  3028	  3043	  3081	  3168	  3263	  3281	  3300
	  3315	  3334	  3354	  3400	  3459	  3463	  3467	  3535	  3654#
ENDMS1	  1477	  1501#
ENDMS2	  1482	  1502#
ENDMS3	  1488	  1503#
ENDMS4	  1489	  1504#
ENDMS5	  1491	  1505#
ENDMSG	  1497	  1507#
ENDUMP	  3830#
ERIGNR	  3601	  3607#
ERQUIT	  3602	  3638#
ERR.L	   640#	   641	   641#	   642	   642#	   643	   643#	   712	   784
ERR.T	   640#	   712	   784
ERRCON	   641#	   736	   790
ERRDSP	  3589	  3599#
ERRFTL	  1909	  3474	  3697	  3718#
ERRHLM	  3622	  3627#
ERRIGN	   642#	  3511	  3607
ERROPT	  3587	  3592#	  3597
ERRQUE	   643#	  3516
ERRTAB	  3684	  3708#
ERRTYX	  3075	  3531	  3661	  3663	  3667	  3692	  3695	  3767#
ERSKIP	  3603	  3643#
ETAPOP	  1250#
ETPJ1	  3509	  3512	  3615#
EVNPAR	  1231	  1232#
EXP10	  2790	  2791	  2977#
F	   125#	   125	   393	   439	   497	   499	   519	   520	   524	   525	   550	   689	   690	   691
	   692	   697	   699	   704	   706	   779	   815	   823	   855	   859	  1103	  1124	  1125	  1155
	  1160	  1184	  1185	  1268	  1269	  1296	  1308	  1345	  1349	  1351	  1397	  1447	  1470	  1487
	  1619	  1626	  1632	  1677	  1681	  1688	  1690	  1722	  1725	  1732	  1774	  1777	  1803	  1838
	  1879	  1897	  1926	  2515	  2673	  2674	  2686	  2698	  2743	  2746	  2750	  2762	  2766	  2854
	  2861	  2867	  2881	  2886	  2989	  2993	  3110	  3120	  3134	  3138	  3153	  3157	  3189	  3198
	  3202	  3222	  3244	  3256	  3261	  3267	  3271	  3285	  3292	  3312	  3319	  3326	  3332	  3351
	  3352	  3375	  3396	  3507	  3562	  3567	  3655
FILD.0	   385	   392#
FILD.2	   396#	   410	   412	   415
FILD.9	   397	   407	   417#
FILD.X	   418#	   926
FILE	  1380	  1653	  1736	  1750	  3088	  3204	  3218	  3274	  3317	  3794#
FILEND	  1449	  1476	  1721#
FILMS1	  1726	  1754#
FILMS2	  1733	  1755#
FILMS3	  1727	  1756#
FILMS4	  1734	  1757#
FIT	  2848#	  2851
FL$EOT	   181#	   181	  1308	  1345	  1447	  1470
FL$FL2	   183#	   183	  2762	  2854	  2861	  2886	  3120	  3138	  3157	  3189
FL$FOR	   160#	   160	   161	   189	   519	   520	  1124	  1125	  1296	  1487	  1632	  1725	  1732	  2989
	  3202	  3244	  3271	  3292
FL$IND	   175#	   175	   176	   189	   550	  1103	  1397	  1774	  1838	  1879
FL$IOF	   186#	   186	  3562	  3567
FL$ITY	   173#	   173	   174	   190	  3375	  3396
FL$MNP	   180#	   180	  1308	  3256	  3261	  3507
FL$NEG	   178#	   178	  2673	  2674	  2686	  2762	  2766	  2867	  2881
FL$ODN	   187#	   187	  1155	  1185	  1897
FL$OLY	   182#	   182	  1308	  1351	  1677	  3351	  3352
FL$OMI	   171#	   171	   172	   189	  1681	  1688	  1690	  1803	  1926	  2515
FL$OPN	   184#	   184	  1160	  1184	  3110	  3655
FL$OUT	   177#	   177	   190	   815	   855	   859	  1268	  1269	  3198	  3222	  3267	  3285	  3312	  3319
	  3326	  3332
FL$PHY	   163#	   163	   164	   189	   519	   520	  1124	  1487	  1632	  1725	  1732	  2993	  3244	  3292
FL$POS	   194#	   194	   393	   439	   699
FL$RDX	   185#	   185	   190	   497	   499	  1777	  2698
FL$SCN	   189#	   190	   190#	   823
FL$SUM	   167#	   167	   168	   189	   524	   525	  1349	  1626	  1677
FL$TMP	   179#	   179	  2743	  2746	  2750	  2762	  3120	  3134	  3153
FL$TOT	   169#	   169	   170	   189	   524	   525	  1349	  1619	  1722
FLERR	   688	   778	  3510	  3515	  3608	  3815#
FLNTRY	   696	  1105	  3508	  3818#
FLODIV	  2784	  2798#	  2817
FLOMIT	  3819#
FLTROT	  1416#	  1427
FLWIDT	   707	   782	  1790	  1799	  1801	  3822#
FMTFLO	  1322	  1403	  1418	  1422	  1424	  2761#
FMTI.1	  2676#	  2680
FMTINT	  1325	  1437	  1716	  2668#
FMTO.1	  2007	  2703#	  2706
FMTOCT	  1318	  1326	  2698#
FMTR.1	  1717	  1718	  2715#
FMTRDX	  1429	  1438	  2552	  2562	  2699	  2714#
FMTSGN	  2683	  2686#
FN$BSP	   234#	   238	   684	   944	   962	   983	   985
FN$DMP	   234#	   687	   843	   887	   944
FN$END	   222#	   804	   933	   957	  1472	  1494
FN$INP	   223#	   813
FN$MOD	   234#	   694	   863
FN$ONL	   234#	   698
FN$REW	   234#	   239	   701	   749	   944
FN$RIB	   234#	   702	   750
FN$SKP	   234#	   703	   944
FN$TP1	   238#
FN$TPX	   239#
FOR3.X	  3158	  3162#
FORADR	  1129	  1135	  1137	  3017	  3119	  3164	  3193	  3782#
FORCON	  3135#	  3155
FORCW1	  3134#
FORCW2	  3128	  3153#
FORCW3	  3130	  3157#
FORLRG	  3141	  3189#
FORSRC	  3126	  3154	  3167#	  3172	  3175	  3178	  3184
FRCTYO	  1387	  1493	  1499	  1560	  1678	  1749	  1752	  3064	  3110#	  3519	  3659
FS$INP	   217#	   711	   715	   716	   720	   722	   735	   739	   740	   744	   746	   857
FS$NVL	   216#	   725	   726	   749	   750	   861
FS$OUT	   218#	   718	   721	   724	   728	   730	   731	   742	   745	   748	   752	   754	   755	   853
FS$XTR	   215#	   708	   711	   718	   722	   727	   732	   735	   742	   746	   751	   865
FS$XXX	   213#
FS.LRG	   213	   708	   709	   710	   711	   712	   713	   714	   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	   740	   741	   742	   743	   744	   745	   746	   747	   748
	   749	   750	   751	   752	   753	   754	   755	   783	   784	   785	   786	   787	   788	   789
	   790	   791	   792	   793	   794
FS.NCM	   213
FS.NFS	   213
FS.NOS	   213
FS.NUE	   213	   709	   710	   712	   713	   714	   715	   716	   717	   719	   720	   721	   723	   724
	   728	   729	   730	   731	   733	   734	   736	   737	   738	   739	   740	   741	   743	   744
	   745	   747	   748	   752	   753	   754	   755	   783	   784	   785	   786	   787	   788	   789
	   790	   791	   792	   793	   794
FS.OBV	   213
FS.VRQ	   213	   708	   711	   727	   732	   735	   751
FT$ISD	   111	  1954	  1957
FT$OPT	   108	   430	   465	   759
FT$PHX	   109	   162	   166	   518	   668	   692	   716	   740	  2991	  3006
FT$SEG	    33	    40	   105	   114	   115	   352	   359	   379	   400	   402	   422	   426	  1032	  1033
	  1036	  1455	  3621	  3623	  3626	  3634	  3720	  3743	  3749	  3825
FT$WLD	    35	   110	   397	   404	   435	   996	  1078	  1083	  1451	  1460	  3771
FW$ZER	   372	   373	  3758#
FX.DEN	  1196
FX.NDV	   581
FX.NUL	   560
FX.PAR	  1203
GCHNWL	  3403#	  3585
GEROPT	  3518	  3582#	  3590	  3624
GETBUF	  1343	  2989#	  3257
GETW.1	  1789	  1801#
GETW.2	  1791	  1800	  1803#
GETWID	  1773	  1788#	  1857
GMBWID	  1845	  1853	  1867#
GO2ERF	  2849	  2853#
GVEHLP	  3600	  3620#
HILOC$	   426#	  1033	  3626#	  3634
HITEN	  2804	  2807	  2814	  2950#
HOLDMP	   803	   843#
IBHR	  1009	  1121	  1138	  3000	  3002	  3022	  3032	  3035	  3039	  3099	  3101	  3142	  3148	  3150
	  3176	  3179	  3190	  3358	  3366	  3780#
IDVNAM	   511	   543	  3778#
IFILSZ	  1093	  3249	  3250	  3777#
IFTCMD	  3380	  3387#	  3390
IFTDSP	  3382	  3392#
IFTIGN	  3392	  3396#
ILLIDV	   542	   546	   576#	   921
ILLODV	   575#	   587	   591
IMES1	  1519	  1564#
IMES2	  1549	  1565#	  1738
IMES3	  1552	  1566#
IMES4	  1556	  1567#
IMES5	  1529	  1568#
IMES6	  1542	  1569#
INDFLO	  1403#	  1433
INIACT	   822#
INIH.1	  1514	  1518#
INIH.3	  1528	  1533#
INIH.4	  1526	  1549#
INIHDR	  1309	  1512#
INIPDP	   377#	  1065	  3719
INPC	   198#	   954	  1011	  1016	  1098	  1099	  1104	  1106	  1107	  1133	  1134	  1300	  1303	  1454
	  1534	  2998	  3025	  3104	  3228	  3229	  3230	  3252	  3294	  3304	  3322	  3327	  3336	  3357
	  3505	  3522
INPCLS	   403	   925	  1133#	  1450
INPD.1	   549	   567#
INPDFL	   494	   538#
INPSPC	   436	   538	   540	   555	   556	   557	   558	   561	   562	   569	   570	   571	   572	   576
	   799	   806	   918	  1019	  1020	  1097	  3805#
INPW.1	  3100	  3103#
INPWRD	  3008	  3055	  3099#	  3106	  3123	  3167
INWL.1	  1003#	  1013	  1018	  1022
INWLDO	   922	  1001#	  1084
IO.BKT	  3557	  3559
IO.DER	  3557
IO.DTE	  3557
IO.EOF	  3496
IO.EOT	  3496
IO.ERR	  3500
IO.IMP	  3557
IO.NRC	  1107
IOINTB	  2017	  2032#
ISCNBL	   380	   445#
ISCNVL	   382	  3723	  3747#
L	   139#	   139	  1334	  1336	  1362	  1363	  1365	  1701	  1782	  1784	  1860
LGLMTF	   936	   944#	   948
LINRDX	   508	   510	   693	   780	  1622	  1693	  1805	  3816#
LKENER	  3454	  3466#
LKPBLK	  1016	  1027	  1090	  1453	  3423	  3428	  3433	  3452	  3466	  3762#
LKWLDB	  1003	  1025#
LKWLFL	   405	  1006	  1014	  3774#
LN$ACT	   100	   822	  3768
LN$CMD	   101	   102	  3804
LN$PDL	    97	   377	  3759
LN$TTL	   103	   705	  3808
LNODSP	  1696	  1716#
LNORDX	  1695	  1706#
LNOWID	  1694	  1712#	  1806
LOLOC$	   352#	   426	  1033#	  3626	  3634#
LRGERR	  3047	  3064#	  3160
LRX.L	   653#	   654	   654#	   655	   655#	   656	   656#	   717	   786
LRX.T	   653#	   717	   786
LRXDEC	   509	   654#	   741	   792	  1623
LRXHEX	   655#
LRXOCT	   656#
LW$ZER	   374	  3824#
M	   138#	   138	  1306	  1398	  1399	  1666	  1679	  1680	  1686	  1687	  1761	  1762	  1764	  1771
	  1775	  1776	  1881	  2729
MNETBL	  1967	  2045#
MNP.B1	   987	   990#
MNP.BF	   986#
MNP.BS	   965	   982#
MNP.RW	   967	   969#
MNP.SK	   966	   981#
MNP.XX	   971	   976#	   989
MNPDSP	   962	   965#
MNPX.2	   956#	   964	   972	   991
MNPXCI	   924	   953#
MNPXDG	   971#	   993
MOD.L	   643#	   644	   644#	   645	   645#	   646	   646#	   647	   647#	   648	   648#	   649	   649#	   650
	   650#	   651	   651#	   652	   652#	   653	   653#	   718
MOD.T	   643#	   718
MODASC	   644#	  1666	  1680	  1686
MODBYT	   645#	   891	  1762	  1771	  1881	  2729
MODEBC	   646#	  1679	  1687
MODFLO	   647#
MODHAL	   648#	  1764
MODHEX	   649#
MODINT	   650#
MODOCT	   651#	   742
MODSIX	   652#
MODSYM	   653#
MODTBI	  1775	  1821#
MODTBL	  1776	  1809#
MSETBY	  1772	  1784#
MT.7TR	  1217	  1224	  1538
MTAPOS	   394	   917#
MX$CMD	   102#	   832
MX.	   708#	   729	   783#
MX.BFZ	   633	   710	   783
MX.BKF	   634	   709
MX.MBF	   635	   719	   787
MX.MTN	   636	   708	   711	   727
MX.ONL	   637	   722
MX.RDX	   638	   724
MX.WID	   639	   731	   788	  1802
MY$NAM	    98	   482
MY$PFX	    99	   447	   480	  3674
N	   143#	   869	   872	   875	   877	   891	   898	   900	   901	   903	   905
N$CMDS	   446	   483#
N$ECH2	  2606	  2657#
N$ECHR	  2596	  2648#
N$EOPT	  3586	  3597#
N$IFTC	  3379	  3390#
N$MTAF	   935	   948#
NMTBUF	   695	   781	  1117	  3817#
NOOP	   275#	   504	   516	   522	   527	   552	   578	   801	   812	   896	   907	   911	   914	   940
	  1067	  1219	  1226	  1252	  1331	  1394	  1443	  1907	  3029	  3044	  3082	  3169	  3264	  3282
	  3301	  3316	  3335	  3355	  3401	  3460	  3464	  3468	  3536
O$AQST	  2519#
O$ASC1	  2505#	  2508
O$ASC4	  2520#
O$ASC5	  2516	  2524#
O$ASCC	  2507	  2511#	  2541
O$ASCW	  1319	  2502#
O$BUFR	  1895	  1900#
O$BYT1	  2551#	  2555
O$BYT2	  2553	  2556#
O$BYTW	  1320	  1431	  2546#
O$CHAR	  1521	  1541	  1613	  1638	  1660	  1676	  1698	  1740	  1888	  1894#	  1917	  1930	  1933	  1935
	  1977	  1984	  1988	  2474	  2488	  2499	  2514	  2520	  2525	  2528	  2531	  2576	  2684	  2688
	  2691	  2730	  2733	  2737	  2865	  2878	  2883	  2887	  2890	  2904	  3072	  3528
O$CHR1	  1896#	  1905
O$COMA	  1934#	  1974
O$CRLF	  1474	  1517	  1518	  1627	  1628	  1683	  1689	  1723	  1887#	  2581	  3070	  3071	  3526	  3527
	  3658
O$DECW	  1381	  1385	  1481	  1485	  1636	  1641	  1654	  1658	  1663	  1672	  1730	  1737	  2484#
O$DIGT	  1946	  2496#	  2705
O$DOT	  1929#	  2858
O$EBC1	  2572#	  2582
O$EBC3	  2574	  2578	  2582#
O$EBCW	  1432	  2569#
O$HEX1	  1944#	  1947
O$HEXI	  1435	  1940#
O$HEXW	  1324	  1941#
O$IAS1	  2538#	  2542
O$IASC	  1430	  2535#
O$OCTW	  1973	  1979	  1986	  2025	  2029	  2483#
O$RDXW	  2485#
O$SIX0	  2467	  2470#
O$SIX1	  2471#	  2475
O$SIXN	  1327	  2468#
O$SIXW	  1532	  1968	  2011	  2018	  2466#
O$SLSH	  1932#	  2554	  2558
O$SPAC	  1533	  1668	  1928#	  1943	  1960	  1969	  1970	  1993	  2019	  2020	  2469	  2550	  2702	  2821
	  2850
O$SPEC	  1926#	  2503	  2536	  2570
O$STR1	  1915#	  1918
O$STRG	  1379	  1383	  1478	  1483	  1490	  1492	  1498	  1516	  1520	  1530	  1543	  1546	  1548	  1550
	  1553	  1557	  1580	  1634	  1652	  1656	  1665	  1674	  1728	  1735	  1739	  1913#	  2002	  2027
O$SYMW	  1328	  1953#
O$TABC	  1931#
OBHR	  1161	  1167	  1181	  1894	  1896	  3781#
ODVNAM	   408	   513	   588	  3779#
OFFSET	   358	   383	   419	   447	  3722	  3756#
OLYD.1	  1356	  1360#
OLYD.2	  1363#	  1369
OLYD.3	  1363	  1366#
OLYDMP	  1353#
ONLYHI	  1360	  3350	  3800#
ONLYLO	  1353	  1361	  3349	  3799#
OPENER	  3446	  3458#
OPENIO	  1166	  3416#
OPNBLK	  1001	  1002	  1008	  1010	  1011	  1027	  1088	  1121	  1181	  1452	  1454	  3421	  3422	  3426
	  3435	  3439	  3443	  3761#
OPNI.1	  1095	  1109#
OPNI.2	  1116	  1120#
OPNI.A	  1094#	  1458
OPNINP	   396	  1077#
OPNO.1	  1169	  1177#
OPNOUT	   399	   414	  1165#
OPSWD	   468	   789#
OPSWL	   467	   777#
OPSWM	   468	   783#
OPSWN	   467	   771#	   777
OPSWP	   469	   777#
ORDXW1	  2485	  2490#	  2494
OSCNBL	   431	   466#
OSYM.2	  1969#	  2008	  2012
OSYM.4	  1972	  1975#
OSYM.6	  1981	  1989#	  2030
OSYM2A	  1972#	  2022
OUTC	   199#	  1158	  1159	  1167	  1172	  1173	  1183	  1902	  3113	  3224	  3225	  3226	  3328
OUTCLS	   413	   417	  1155#	  1908
OUTDFL	   493	   581#
OUTP1	  2873	  2892#
OUTP2	  2893#	  2896
OUTP3	  2895	  2898#	  2901
OUTP4	  2899	  2902#	  2905
OUTSPC	   575	   582	   583	   585	   595	   596	   597	   598	   600	   601	   810	   816	  1165	  1171
	  3541	  3806#
P	   141#	   243	   376	   441	   490	   528	   563	   573	   602	   808	   834	   839	   869	   871
	   889	   898	   900	   934	   958	   979	   983	   985	   988	   992	  1005	  1040	  1042	  1050
	  1064	  1065	  1085	  1086	  1127	  1130	  1144	  1146	  1148	  1151	  1186	  1205	  1221	  1228
	  1248	  1251	  1255	  1259	  1314	  1524	  1562	  1620	  1702	  1743	  1745	  1783	  1786	  1804
	  1807	  1899	  1904	  1914	  1915	  1927	  1948	  1982	  1985	  1992	  1994	  2476	  2492	  2495
	  2509	  2527	  2530	  2543	  2557	  2564	  2583	  2590	  2592	  2595	  2598	  2600	  2603	  2605
	  2608	  2611	  2613	  2616	  2678	  2690	  2693	  2707	  2724	  2736	  2739	  2795	  2808	  2820
	  2822	  2826	  2827	  2833	  2836	  2871	  2894	  2902	  2907	  2999	  3009	  3051	  3055	  3068
	  3070	  3074	  3077	  3086	  3105	  3111	  3114	  3124	  3227	  3231	  3241	  3367	  3384	  3402
	  3408	  3416	  3417	  3455	  3483	  3486	  3487	  3489	  3493	  3505	  3514	  3524	  3526	  3530
	  3539	  3543	  3546	  3549	  3550	  3551	  3577	  3612	  3614	  3615	  3644	  3660	  3706	  3719
	  3735
P1	   130#	   130	   395	   398	   909	   912	   954	   976	  1058	  1097	  1171	  1196	  1271	  1341
	  1375	  1388	  1390	  1391	  1463	  1534	  1536	  1537	  1538	  1544	  1835	  1836	  1841	  1844
	  1878	  1880	  1959	  1962	  1971	  1976	  1978	  1980	  2003	  2016	  2021	  2024	  2028	  2547
	  2669	  2681	  2683	  2685	  2716	  2725	  2727	  2731	  2734	  2823	  2845	  3019	  3030	  3031
	  3038	  3041	  3119	  3143	  3145	  3146	  3191	  3193	  3194	  3204	  3219	  3233	  3236	  3243
	  3273	  3284	  3340	  3342	  3345	  3347	  3348	  3349	  3419	  3420	  3425	  3458	  3462	  3471
	  3638	  3660	  3669	  3671	  3675	  3678	  3681	  3685	  3688	  3690	  3696
P2	   131#	   131	   955	   956	   959	   960	   961	  1057	  1098	  1172	  1201	  1203	  1234	  1272
	  1342	  1464	  1761	  2548	  2551	  2559	  2560	  2670	  2679	  2681	  2689	  2692	  2717	  2727
	  2735	  2738	  2824	  2825	  2846	  2862	  3020	  3033	  3036	  3040	  3205	  3237	  3240	  3248
	  3260	  3275	  3289	  3303	  3307	  3341	  3343	  3345	  3350	  3420	  3434	  3436	  3437	  3440
	  3449	  3638
P3	   132#	   132	   143	   144	   959	   984	   986	  1059	  1060	  1061	  1099	  1100	  1101	  1173
	  1174	  1175	  1217	  1224	  1353	  1354	  1356	  1360	  1361	  1368	  2549	  2553	  3440	  3441
	  3442	  3444	  3448
P4	   133#	   133	   142	   145	   960	   982	   990
PD.	   732#	   753	   789#
PD.BFZ	   633	   734	   789
PD.BKF	   634	   733
PD.MBF	   635	   743	   793
PD.MTN	   636	   732	   735	   751
PD.ONL	   637	   746
PD.RDX	   638	   748
PD.WID	   639	   755	   794
PDLIST	   377	  3759#
PHXL.2	  3055#	  3057
PHXLRG	  3014	  3047#
PHYX.0	  3008#	  3010
PHYX.2	  3022#	  3027	  3041
PHYX.3	  3023	  3030#
PHYX.4	  3015#	  3052
PLUS	  2869	  2879#
POP4J	  3576#
PRBDUN	  3558	  3575#
PRBLUP	  3564#	  3572
PRBNAM	  3563	  3579#
PRBNXT	  3566	  3571#
PRMPTM	   476	   480#
PROCMD	   401	  1265#
PTHBLK	  3429	  3763#
PTLEN	  2778	  2781	  2782	  2929#
PUTACT	   805	   814	   847	   873	   885#	   904
Q	   140#	   140	  1694	  1775	  1776	  1778	  1779	  1785	  2561	  2563	  2669	  2716	  2717
RADXZR	  2719	  2727#
RBRKNL	  1386	  1555	  1559	  1580#	  1746
RDFORT	  2990	  3117#
RDPHYX	  2995	  3007#
RDXADJ	  2718	  2743#
RDXCON	  2721#	  2756
RDXLUP	  2718#	  2725
RDXNZR	  2731	  2735#
RECH.1	  1629#
RECH.2	  1642	  1664#
RECH.3	  1667	  1675#
RECHDR	  1348	  1617#
RECMS1	  1647#	  1651
RECMS2	  1382	  1648#	  1655
RECMS3	  1649#	  1673
RECMTA	  1630	  1651#
RECORD	  1384	  1617	  1635	  1657	  1729	  1747	  3092	  3205	  3246	  3251	  3259	  3276	  3287	  3296
	  3306	  3318	  3643	  3795#
REELID	  1527	  1531	  3792#
RESACS	  2906	  3703#
RESTRT	   369#	   421	   923	  3725
REWMTA	  3321	  3325#
RFOR.1	  3123#	  3151
RFOR.3	  3125#	  3185
RFOR.4	  3146#	  3195
RFOR.5	  3139	  3147#
RNDHGH	  2830	  2910#
RTLERR	  3066	  3076	  3081#
RUN$FZ	  1292	  1293	  3790#
RUN$LZ	  1294	  3801#
RUNSVD	   361	   368#
S.BLKF	   685	  1310	  1312	  2579	  3813#
SAVAC	  1051	  1052	  1053	  1062	  3680	  3703	  3704	  3731	  3732	  3733	  3734	  3760#
SAVACS	  2761	  3654	  3731#
SAVRUN	   360	   366	  3750#
SCMDBP	   489	   831	  3769#
SCMDCT	   488	   833	  3770#
SCN$FO	   827	   828	  3812#
SCN$FZ	   824	   825	  3803#
SCN$LO	   829	  3823#
SCN$LZ	   826	  3811#
SCNCMD	   392	   428#
SEGAGN	  1054#	  1069
SETC.1	  1197	  1203#
SETCHR	  1102	  1176	  1196#
SETDEN	  1198	  1207#
SETI.1	  3223	  3228#
SETIOC	  3208	  3215	  3222#
SETPAR	  1204	  1230#
SGDEV	   364	  1054	  3751#
SGLOW	   365	  1056	  3753#
SGNAM	   362	  1055	  3752#
SGPPN	   363	  1058	  3754#
SIGN	  2855	  2880#
SIGN1	  2881#
SKDF.1	  3257#	  3260
SKDFOR	  3220	  3245	  3256#	  3308
SKMF.1	  3216#	  3219
SKMFOR	  3203	  3214#
SKPDIR	  3201	  3243#
SKPFLR	  3209	  3233#
SKPL.0	  3234#	  3236
SKPL.1	  3233	  3237#
SKPL.2	  3238#	  3240
STOMOD	   864	   891#
STOSWA	   854	   857#
STOSWB	   858	   861#
STOSWT	   463	   853#
SVINLK	  1089	  1585	  3765#
SVINOB	  1001	  1088	  1452	  1584	  3764#
SWTD	   456	   732#
SWTL	   455	   684#
SWTM	   456	   708#
SWTN	   455	   660#	   684	   909	   912
SWTP	   457	   684#
SWTS0A	   875#
SWTST0	   862	   867	   876#	   892
SYMXWD	  2024#
T1	   126#	   126	   356	   357	   358	   380	   382	   386	   388	   408	   409	   411	   428	   431
	   436	   437	   475	   476	   477	   495	   496	   498	   501	   502	   505	   506	   507	   508
	   509	   510	   511	   513	   538	   539	   540	   541	   543	   544	   545	   547	   553	   558
	   559	   562	   575	   576	   583	   584	   585	   586	   588	   589	   590	   592	   593	   598
	   599	   601	   804	   806	   813	   816	   825	   826	   828	   829	   830	   831	   832	   833
	   843	   871	   876	   885	   887	   900	   905	   909	   912	   918	   919	   920	   930	   931
	   932	   956	   957	   962	   969	   976	   977	   983	   985	   988	   992	  1001	  1002	  1003
	  1007	  1008	  1009	  1010	  1042	  1043	  1054	  1059	  1061	  1088	  1089	  1090	  1091	  1092
	  1093	  1106	  1107	  1109	  1110	  1111	  1114	  1119	  1126	  1129	  1135	  1138	  1143	  1146
	  1148	  1149	  1150	  1156	  1157	  1158	  1161	  1165	  1177	  1179	  1196	  1197	  1198	  1199
	  1203	  1204	  1213	  1214	  1220	  1227	  1232	  1246	  1251	  1253	  1255	  1259	  1270	  1274
	  1293	  1294	  1298	  1299	  1300	  1301	  1302	  1304	  1310	  1311	  1312	  1313	  1337	  1354
	  1355	  1366	  1378	  1380	  1382	  1384	  1403	  1404	  1408	  1416	  1417	  1419	  1420	  1421
	  1423	  1425	  1436	  1452	  1453	  1472	  1473	  1477	  1479	  1480	  1482	  1484	  1488	  1489
	  1491	  1494	  1495	  1497	  1515	  1519	  1521	  1524	  1529	  1531	  1539	  1540	  1542	  1544
	  1545	  1547	  1549	  1552	  1556	  1562	  1580	  1584	  1591	  1592	  1593	  1595	  1596	  1597
	  1600	  1602	  1603	  1607	  1609	  1610	  1621	  1624	  1625	  1631	  1633	  1635	  1637	  1639
	  1640	  1651	  1653	  1655	  1657	  1659	  1661	  1662	  1664	  1669	  1670	  1671	  1673	  1675
	  1692	  1697	  1726	  1727	  1729	  1733	  1734	  1736	  1738	  1740	  1743	  1745	  1779	  1781
	  1782	  1790	  1792	  1797	  1798	  1799	  1801	  1802	  1806	  1839	  1840	  1841	  1842	  1844
	  1846	  1847	  1848	  1849	  1850	  1851	  1854	  1855	  1856	  1858	  1859	  1860	  1872	  1874
	  1887	  1889	  1896	  1913	  1914	  1915	  1916	  1928	  1929	  1931	  1932	  1934	  1942	  1944
	  1945	  1959	  1962	  1963	  1965	  1967	  1971	  1972	  1975	  1978	  1980	  1981	  1982	  1983
	  1985	  1987	  1989	  1990	  1991	  1992	  2000	  2001	  2010	  2016	  2017	  2021	  2024	  2026
	  2028	  2466	  2468	  2471	  2472	  2473	  2485	  2486	  2487	  2489	  2490	  2493	  2495	  2496
	  2497	  2498	  2502	  2505	  2506	  2511	  2512	  2513	  2517	  2518	  2519	  2524	  2527	  2530
	  2535	  2538	  2539	  2540	  2547	  2551	  2560	  2569	  2572	  2573	  2574	  2579	  2580	  2585
	  2587	  2588	  2589	  2591	  2593	  2595	  2597	  2598	  2600	  2602	  2605	  2607	  2608	  2610
	  2611	  2613	  2615	  2671	  2682	  2687	  2690	  2701	  2703	  2704	  2718	  2719	  2720	  2728
	  2732	  2736	  2744	  2747	  2748	  2754	  2764	  2765	  2768	  2769	  2771	  2772	  2804	  2806
	  2807	  2814	  2818	  2820	  2822	  2830	  2831	  2832	  2835	  2836	  2837	  2864	  2872	  2877
	  2879	  2880	  2882	  2885	  2888	  2889	  2893	  2895	  2902	  2903	  3002	  3003	  3010	  3011
	  3013	  3015	  3016	  3019	  3032	  3033	  3034	  3040	  3049	  3051	  3070	  3072	  3074	  3077
	  3086	  3088	  3090	  3092	  3093	  3101	  3125	  3127	  3129	  3135	  3136	  3137	  3142	  3143
	  3144	  3146	  3147	  3148	  3149	  3150	  3159	  3170	  3171	  3174	  3177	  3180	  3190	  3191
	  3192	  3206	  3214	  3216	  3224	  3228	  3234	  3246	  3247	  3248	  3249	  3250	  3251	  3252
	  3273	  3274	  3275	  3276	  3277	  3287	  3288	  3289	  3290	  3291	  3294	  3295	  3296	  3303
	  3325	  3327	  3328	  3329	  3342	  3343	  3344	  3358	  3359	  3363	  3376	  3380	  3383	  3404
	  3416	  3419	  3422	  3423	  3424	  3425	  3432	  3433	  3434	  3435	  3436	  3438	  3439	  3443
	  3444	  3445	  3448	  3450	  3451	  3452	  3453	  3458	  3462	  3466	  3469	  3471	  3486	  3488
	  3490	  3494	  3495	  3498	  3499	  3515	  3516	  3526	  3528	  3530	  3539	  3541	  3556	  3560
	  3569	  3573	  3583	  3587	  3607	  3608	  3612	  3614	  3644	  3645	  3646	  3665	  3667	  3668
	  3670	  3672	  3674	  3675	  3678	  3680	  3687	  3692	  3739
T2	   127#	   127	   554	   556	   560	   561	   581	   582	   594	   596	   807	   844	   863	   869
	   871	   872	   876	   877	   886	   898	   900	   903	   931	   933	   936	  1006	  1055	  1117
	  1118	  1119	  1120	  1180	  1199	  1200	  1232	  1233	  1251	  1259	  1407	  1409	  1410	  1411
	  1413	  1415	  1419	  1421	  1426	  1585	  1589	  1591	  1595	  1609	  1622	  1623	  1780	  1792
	  1793	  1805	  1806	  1834	  1835	  1836	  1837	  1843	  1868	  1871	  1872	  1873	  1942	  2003
	  2004	  2005	  2466	  2468	  2486	  2489	  2491	  2492	  2502	  2535	  2556	  2559	  2569	  2701
	  2721	  2722	  2723	  2724	  2745	  2749	  2751	  2752	  2753	  2755	  2763	  2803	  2837	  2894
	  3016	  3017	  3018	  3020	  3048	  3049	  3051	  3055	  3057	  3135	  3145	  3147	  3149	  3173
	  3174	  3176	  3177	  3179	  3180	  3181	  3182	  3183	  3207	  3225	  3229	  3238	  3278	  3359
	  3361	  3362	  3363	  3379	  3380	  3381	  3382	  3426	  3494	  3496	  3498	  3499	  3500	  3501
	  3502	  3503	  3505	  3510	  3511	  3514	  3522	  3543	  3546	  3564	  3569	  3586	  3587	  3588
	  3589	  3681	  3682	  3683	  3684
T3	   128#	   128	   853	   857	   861	   865	   935	   936	   937	   938	   970	   978	   986	   990
	  1056	  1201	  1234	  1251	  1259	  1405	  1406	  1418	  1590	  1599	  1605	  1606	  1693	  1694
	  1695	  1696	  1794	  1795	  1867	  1869	  1870	  1940	  1941	  1947	  2006	  2470	  2475	  2483
	  2484	  2490	  2504	  2508	  2537	  2542	  2571	  2582	  2671	  2672	  2675	  2676	  2680	  2700
	  2706	  2755	  3217	  3226	  3230	  3235	  3239	  3360	  3361	  3365	  3366	  3427	  3489	  3490
	  3491	  3492	  3493	  3563	  3564
T4	   129#	   129	  1057	  1210	  1213	  1214	  1220	  1227	  1235	  1251	  1259	  1695	  2596	  2597
	  2599	  2601	  2602	  2606	  2607	  2610	  2612	  2614	  2615	  2677	  2678	  2714	  2720	  2747
	  2752	  2763	  2799	  2844	  2866	  2872	  2892	  2896	  2898	  2905	  3022	  3030	  3031	  3035
	  3036	  3037	  3038	  3039	  3429	  3556	  3557	  3558	  3559	  3565	  3571	  3572
TAPOBL	  1299	  1301	  1302	  3793#
TELIO1	  3521	  3532	  3535#
TELIOE	  3514	  3519#
TELPRB	  3537	  3555#
TINSPC	  1524	  1584#	  1743	  3543
TITLEB	   705	  1513	  1515	  3808#
TITLEE	  3809#
TLDVER	   384	   391	  3748#
TOOBIG	  1414	  1425#
TOOSML	  1412	  1423#
TOTFIL	  1479	  1751	  3796#
TOTREC	  1484	  1618	  3797#
TPOPJ	  1045	  1916	  1996	  3079	  3095	  3497	  3547	  3613#	  3639
TPOPJ1	  3611#	  3616	  3647
TSCNBL	   428	   454#
TSTBHR	  1143#	  1162
TTINPT	   448	   487#
TTLZER	  3810#
TY.SPL	   411
TYFREC	  3083	  3085#	  3544
TYSLSH	  3568	  3739#
UPSCN	   379	   402	  1049#	  1455	  3621	  3720
USERDX	   495	   498	   700	  1867	  2714	  3820#
USRWID	   507	  1778	  3821#
UUO000	  2000	  2010#
UUOIOW	  1966	  2000#
W	   137#	   137	   148	  1306	  1337	  1339	  1357	  1366	  1369	  1639	  1661	  1669	  3000	  3001
	  3003	  3018	  3118	  3137	  3140	  3159	  3161	  3162	  3163	  3164
WLDERR	  3431	  3462#
WLDFIR	   437	  1026	  3772#
WLDPTR	  1029	  3773#
WRDCNT	  1355	  1625	  1692	  1701	  3798#
WRDRDX	   506	   530#
XCHTYO	  3077#	  3533
XCTI.1	  3506	  3513#
XCTIO	  1901	  2997	  3024	  3103	  3483#
XCTIOE	  3488#	  3648
XIOCON	  3517	  3599	  3610#
XLTE.1	  2586	  2591#
XLTE.2	  2597#	  2599
XLTE.4	  2594	  2605#
XLTE.5	  2607#	  2612
XLTE.6	  2609	  2612#
XLTEBC	  2575	  2585#
XLTQST	  2589#	  2601	  2614
ZERO	  2857	  2877#	  2900
ZZ	   123#	   125	   125#	   126	   126#	   127	   127#	   128	   128#	   129	   129#	   130	   130#	   131
	   131#	   132	   132#	   133	   133#	   134	   134#	   135	   135#	   137	   137#	   138	   138#	   139
	   139#	   140	   140#	   158#	   160	   160#	   163	   163#	   167	   167#	   169	   169#	   171	   171#
	   173	   173#	   175	   175#	   177	   177#	   178	   178#	   179	   179#	   180	   180#	   181	   181#
	   182	   182#	   183	   183#	   184	   184#	   185	   185#	   186	   186#	   187	   187#	   192#	   194
	   194#	   232#	   234	   234#	   260#	   262	   262#	   263	   263#	   264	   264#	   265	   265#	   266
	   266#	   267	   267#	   268	   270
$FLFOR	   161#	   689
$FLIND	   176#	   691
$FLITY	   174#	   690	   779
$FLOMI	   172#	   697
$FLPHY	   164#	   692
$FLSUM	   168#	   704
$FLTOT	   170#	   706
$OKDVI	   205#	   545
$OKDVO	   206#	   590
$POPJ	  1592	  1605	  1873	  1874	  1991	  2689	  2735	  2798	  3237	  3393	  3551#	  3708
$POPJ1	  1015	  1023	  3004	  3042	  3058	  3102	  3165	  3377	  3397	  3550#
$POPJ2	  3484	  3549#
%%DUMP	    20#	    21
%%JOBD	    25	    25#
%%MACT	    27	    27#
%%SCNM	    28	    28#
%%UUOS	    26	    26#
..TEMP	   641#	   641	   642#	   642	   643#	   643	   644#	   644	   645#	   645	   646#	   646	   647#	   647
	   648#	   648	   649#	   649	   650#	   650	   651#	   651	   652#	   652	   653#	   653	   654#	   654
	   655#	   655	   656#	   656	   684#	   684	   685#	   685	   686#	   686	   687#	   687	   688#	   688
	   689#	   689	   690#	   690	   691#	   691	   692#	   692	   693#	   693	   694#	   694	   695#	   695
	   696#	   696	   697#	   697	   698#	   698	   699#	   699	   700#	   700	   701#	   701	   702#	   702
	   703#	   703	   704#	   704	   705#	   705	   706#	   706	   707#	   707	   708#	   708	   709	   709#
	   710	   710#	   711	   711#	   712	   712#	   713	   713#	   714	   714#	   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	   777#	   777	   778#	   778	   779#
	   779	   780#	   780	   781#	   781	   782#	   782	   783#	   783	   784	   784#	   785	   785#	   786
	   786#	   787	   787#	   788	   788#	   789	   789#	   790	   790#	   791	   791#	   792	   792#	   793
	   793#	   794	   794#	   795
..TEMR	   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	   789#	   789	   790#	   790	   791#	   791	   792#
	   792	   793#	   793	   794#	   794	   795
.ALCBF	  1122	  1182
.ALCOR	  1128
.BFADR	  1143	  1148	  3358	  3366
.BFCTR	  1150	  1894	  3002	  3022	  3039	  3099	  3150	  3176
.BFPTR	  1149	  1896	  3000	  3032	  3035	  3101	  3142	  3148	  3179	  3190
.CHBEL	  2513	  3383
.CHCRT	  1607	  1887	  2512	  2591
.CHKTM	  1021
.CHLFD	  1610	  1889
.CHTAB	  1602	  2511	  2588	  2617
.CHVTB	  2585
.CLRBF	  3721
.DECNW	   869	   898
.DECOR	  1136
.FREBF	  1146
.FXDEV	   538	   540	   583	   585	   799	   810	   918
.FXDIR	   572
.FXEXT	   562	   571	   600	   601
.FXFLM	  1019	  1020
.FXLEN	   807	  1028	  3424	  3805	  3806
.FXMOD	   561	   582	  1196	  1203
.FXNAM	   555	   557	   558	   569	   595	   597	   598
.FXNMM	   556	   570	   596
.IOASC	  1167
.IOBIN	  1007
.ISCAN	   381
.JBHRL	  1039	  1049
.JBVER	    19	   388
.LKWLD	  1004
.MONRT	   420	  3724
.OPBUF	  1002	  1010	  3439
.OPMOD	  1008
.OSCAN	   432
.POP4T	  1904	  3576
.PSH4T	  1900	  3555
.RBCNT	  3433
.RBEXT	  3466
.RBSIZ	  1090
.RBTIM	  1028	  1089	  1453	  3423	  3428	  3432	  3762	  3765
.RECOR	   378
.RUNCM	   418
.SAVE1	  1512	  1958	  3117
.SAVE2	  2668	  2715	  3007
.SAVE3	  1096	  1170	  2546	  3418
.SAVE4	   953	  1265
.SGDEV	   364
.SGLOW	   365
.SGNAM	   362
.SGPPN	   363
.STOPB	  3430
.SWASQ	   729
.SWDEC	   708	   709	   710	   711	   719	   722	   724	   727	   731	   783	   787	   788
.TCHAR	  3385	  3574	  3673	  3689	  3740
.TCRLF	   390	  1257	  3065	  3084	  3399	  3473	  3520	  3546	  3691
.TDATN	  1551
.TDECW	  3089	  3094	  3709
.TFBLK	  3472	  3543	  3714
.TFD80	  1210
.TFDEN	  1200
.TFPAR	  1233
.TFSET	  1200	  1233
.TFSTA	  1298
.TOCTW	  1256	  3710
.TOLEB	  1586
.TOWID	  1793
.TPPNW	  3712
.TSCAN	   429
.TSIXN	   478	  3570	  3676	  3711
.TSPAC	  3677
.TSTRG	   387	  1254	  3087	  3091	  3470	  3540	  3561	  3584	  3679	  3713
.TTIMN	  1554
.TVERW	   389
.TYOCH	  1522	  1562	  1741	  1745	  3073	  3078	  3529	  3662	  3666	  3694
.WLDFL	   406
AC$	   119#	   125	   126	   127	   128	   129	   130	   131	   132	   133	   134	   135	   137	   138
	   139	   140
ALIGN.	  3559
ASCIZ$	   319#	  1501	  1502	  1503	  1504	  1505	  1507	  1564	  1565	  1566	  1567	  1568	  1569	  1570
	  1644	  1645	  1646	  1647	  1648	  1649	  1754	  1755	  1756	  1757	  3627
CALL	   243#	   378	   379	   381	   387	   389	   390	   392	   396	   399	   400	   401	   402	   403
	   413	   414	   417	   418	   420	   429	   432	   493	   494	   503	   515	   521	   526	   551
	   577	   800	   803	   805	   811	   814	   869	   895	   898	   906	   910	   913	   917	   922
	   924	   925	   939	   953	   971	   989	  1004	  1012	  1017	  1021	  1066	  1084	  1096	  1102
	  1122	  1128	  1136	  1146	  1166	  1170	  1176	  1182	  1202	  1208	  1209	  1211	  1212	  1218
	  1225	  1231	  1251	  1254	  1256	  1257	  1265	  1266	  1307	  1309	  1330	  1335	  1338	  1343
	  1346	  1348	  1364	  1367	  1379	  1381	  1383	  1385	  1386	  1387	  1393	  1442	  1449	  1450
	  1455	  1456	  1458	  1474	  1476	  1478	  1481	  1483	  1485	  1490	  1492	  1493	  1498	  1512
	  1516	  1517	  1518	  1520	  1522	  1524	  1530	  1532	  1533	  1541	  1543	  1546	  1548	  1550
	  1551	  1553	  1554	  1555	  1557	  1558	  1559	  1560	  1613	  1627	  1628	  1634	  1636	  1638
	  1641	  1652	  1654	  1656	  1658	  1660	  1663	  1665	  1668	  1672	  1674	  1676	  1689	  1696
	  1698	  1700	  1723	  1728	  1730	  1735	  1737	  1739	  1741	  1743	  1745	  1746	  1766	  1773
	  1845	  1853	  1857	  1888	  1900	  1901	  1906	  1908	  1917	  1943	  1946	  1958	  1960	  1968
	  1969	  1970	  1973	  1974	  1977	  1979	  1984	  1986	  1988	  1993	  2002	  2007	  2011	  2018
	  2019	  2020	  2025	  2027	  2029	  2469	  2474	  2488	  2494	  2503	  2507	  2528	  2536	  2541
	  2546	  2550	  2552	  2554	  2558	  2562	  2570	  2575	  2576	  2581	  2668	  2684	  2688	  2691
	  2702	  2705	  2715	  2730	  2733	  2737	  2761	  2783	  2784	  2810	  2817	  2821	  2850	  2855
	  2857	  2858	  2859	  2865	  2869	  2900	  2904	  2906	  2997	  3007	  3008	  3024	  3028	  3043
	  3047	  3052	  3055	  3064	  3065	  3066	  3070	  3071	  3073	  3076	  3078	  3081	  3083	  3087
	  3089	  3091	  3094	  3103	  3117	  3123	  3160	  3167	  3168	  3208	  3209	  3215	  3253	  3257
	  3263	  3281	  3297	  3300	  3305	  3315	  3323	  3334	  3337	  3354	  3399	  3400	  3418	  3430
	  3459	  3463	  3467	  3470	  3472	  3473	  3514	  3519	  3520	  3521	  3526	  3527	  3529	  3532
	  3535	  3537	  3540	  3543	  3544	  3546	  3555	  3561	  3568	  3570	  3574	  3576	  3584	  3585
	  3621	  3623	  3654	  3658	  3659	  3666	  3673	  3676	  3677	  3679	  3684	  3689	  3691	  3694
	  3720	  3721	  3724
CLOSE	  1133	  1158
CLRBFI	  3378	  3403	  3405
CORE	  1043
CTITLE	    15#	    17
DEVCHR	   544	   589	   919
DEVNAM	   541	   586
DEVTYP	   409
DM	   633	   634	   635	   636	   637	   638	   639
DOSCAN	   659	   770
ENTER	  3450
ERROR.	   278#	   503	   515	   521	   526	   551	   577	   800	   811	   895	   906	   910	   913	   939
	  1066	  1218	  1225	  1251	  1330	  1393	  1442	  1906	  3028	  3043	  3081	  3168	  3263	  3281
	  3300	  3315	  3334	  3354	  3400	  3459	  3463	  3467	  3535
ETYP	   257#	   262	   263	   264	   265	   266	   267
EXIT	  1068
FLAG$	   154#	   160	   163	   167	   169	   171	   173	   175	   177	   178	   179	   180	   181	   182
	   183	   184	   185	   186	   187	   194
FUNCTS	   226#	   234	  1283
GETSEG	  1060
GETSTS	  1106	  3494
HALT	  1279	  1323	  1434
HIGH$	   325#	   426	  3626
IN	  2998	  3025	  3104
INCHRS	  3376
INCHRW	  3404
INCHWL	   487
INFO.	   290#	  3400
KEYS	   640	   643	   653
LIT$	   347#	   422	  1032
LOOKUP	  1016	  3451
LOW$	   333#	  1033	  3634
MOVX	   560	   581
MTBSF.	   985	  3277
MTBSR.	   983	  3278
MTCHR.	  1100	  1174	  1536
MTIND.	  1104
MTREW.	   969	  3325
MTSKF.	   985	  3206	  3214
MTSKR.	   983	  3207
MTWAT.	  1303	  3226	  3230
ND	    97	    98	    99	   100	   101	   103	   104	   105	   108	   109	   110	   111	   633	   634
	   635	   636	   637	   638	   639
OPEN	  1011	  1454	  3443
OUT	  1902
OUTPUT	  1183	  3113
OUTSTR	  3406	  3622
PJOB	  1794
PJRST	   440	   478	   817	   847	   873	   904	  1162	  1398	  1399	  1499	  1562	  1586	  1678	  1683
	  1749	  1752	  1909	  1930	  1933	  1935	  2012	  2499	  2514	  2520	  2525	  2531	  2878	  2883
	  2887	  3084	  3095	  3385	  3397	  3533	  3740
PJSP	  1580
POINTR	   689	   690	   691	   692	   697	   699	   704	   706	   779	  1196	  1203
POS	   689	   690	   691	   692	   697	   699	   704	   706	   779	  1196	  1203
RELEAS	  1134	  1159
RELOC$	   341#	   352
RESET	   375	  3718
RESTR$	   301#	   870	   899	  1147	  1258	  1561	  1744	  2529	  3054	  3513	  3545	  3611	  3613
RGHBT.	  3559
SAVE$	   294#	   868	   897	  1041	  1145	  1250	  1523	  1742	  2526	  3050	  3069	  3085	  3485	  3504
	  3525	  3538	  3542
SETSTS	  1107
SL	   664	   669	   670	   688	   693	   694	   712	   717	   718	   736	   741	   742	   772	   774
	   778	   780	   784	   786	   790	   792
SP	   660	   661	   662	   663	   671	   674	   676	   679	   681	   683	   684	   685	   686	   687
	   695	   698	   700	   703	   705	   707	   708	   709	   710	   711	   719	   722	   724	   727
	   729	   731	   732	   733	   734	   735	   743	   746	   748	   751	   753	   755	   771	   775
	   776	   777	   781	   782	   783	   787	   788	   789	   793	   794
SS	   665	   666	   667	   668	   672	   673	   675	   677	   678	   680	   682	   689	   690	   691
	   692	   696	   697	   699	   701	   702	   704	   706	   713	   714	   715	   716	   720	   721
	   723	   725	   726	   728	   730	   737	   738	   739	   740	   744	   745	   747	   749	   750
	   752	   754	   773	   779	   785	   791
STORE	   369	   372	   824	   827	  1292	  3421
STRNG$	   313#	   386	  1253	  3086	  3090	  3469	  3539	  3582
SWTCHS	   605#	   660	   684	   708	   732	   761#	   771	   777	   783	   789
TAPOP.	  1246	  1304
TRMNO.	  1795
TRMOP.	  1797
TXNN	   411	   920
U	   308#	  3747	  3748	  3750	  3751	  3752	  3753	  3754	  3756	  3759	  3760	  3761	  3762	  3763
	  3764	  3765	  3766	  3767	  3768	  3769	  3770	  3772	  3773	  3774	  3776	  3777	  3778	  3779
	  3780	  3781	  3782	  3783	  3784	  3785	  3786	  3787	  3788	  3789	  3794	  3795	  3796	  3797
	  3798	  3799	  3800	  3804	  3805	  3806	  3807	  3808	  3810	  3813	  3814	  3815	  3816	  3817
	  3818	  3819	  3820	  3821	  3822
USETI	  3252	  3294	  3304	  3322	  3336
VRSN.	    20
WAIT	  3357	  3491
WARN.	   285#	   551	  1251	  3081	  3535
WID	   689	   690	   691	   692	   697	   699	   704	   706	   779	  1196	  1203
X	   229#	   234	   660#	   660	   661	   662	   663	   664	   665	   666	   667	   668	   669	   670
	   671	   672	   673	   674	   675	   676	   677	   678	   679	   680	   681	   682	   683	   684#
	   684	   685	   686	   687	   688	   689	   690	   691	   692	   693	   694	   695	   696	   697
	   698	   699	   700	   701	   702	   703	   704	   705	   706	   707	   708#	   708	   709	   710
	   711	   712	   713	   714	   715	   716	   717	   718	   719	   720	   721	   722	   723	   724
	   725	   726	   727	   728	   729	   730	   731	   732#	   732	   733	   734	   735	   736	   737
	   738	   739	   740	   741	   742	   743	   744	   745	   746	   747	   748	   749	   750	   751
	   752	   753	   754	   755	   771#	   771	   772	   773	   774	   775	   776	   777#	   777	   778
	   779	   780	   781	   782	   783#	   783	   784	   785	   786	   787	   788	   789#	   789	   790
	   791	   792	   793	   794	  1282#	  1283	  2043#	  2046	  2056	  2066	  2076	  2086	  2096	  2106
	  2117	  2127	  2137	  2147	  2157	  2167	  2177	  2187	  2197	  2207	  2217	  2227	  2237	  2247
	  2257	  2267	  2277	  2287	  2297	  2307	  2317	  2327	  2337	  2347	  2357	  2367	  2377	  2387
	  2397	  2407	  2417	  2427	  2437	  2447	  2457