Google
 

Trailing-Edge - PDP-10 Archives - klad_sources - klad.sources/magtap.seq
There are no other files named magtap.seq in the archive.
;DDQDF







				IDENTIFICATION
				--------------

	PRODUCT CODE:		AH-7155E-DD

	DIAGNOSTIC CODE:	DDQDF

	PRODUCT NAME:	 	DDQDFE0 DIAGNOSTIC DISTRIBUTION
				MAGTAPE CREATOR

	VERSION:		0.5

	DATE RELEASED:		MAY 1978

	MAINTAINED BY:		DIAGNOSTIC ENGINEERING

	AUTHOR:			JOHN R. KIRCHOFF

		        COPYRIGHT (C) 1976, 1978

	        DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

	THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR  USE  ONLY  ON  A
	SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLUSION
	OF THE ABOVE COPYRIGHT NOTICE.   THIS  SOFTWARE,  OR  ANY  OTHER
	COPIES  THEREOF, MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE
	TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO
	AGREES  TO  THESE  LICENSE TERMS.  TITLE TO AND OWNERSHIP OF THE
	SOFTWARE  SHALL  AT   ALL  TIMES  REMAIN  IN  DIGITAL  EQUIPMENT
	CORPORATION.

	THE INFORMATION IN THIS DOCUMENT IS SUBJECT  TO  CHANGE  WITHOUT
	NOTICE  AND  SHOULD  NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
	EQUIPMENT CORPORATION.

	DIGITAL EQUIPMENT CORPORATION ASSUMES NO  RESPONSIBILITY FOR THE
	USE  OR  RELIABILITY  OF  ITS SOFTWARE IN EQUIPMENT WHICH IS NOT
	SUPPLIED BY DIGITAL EQUIPMENT CORPORATION.
MAINDEC-10-DDQDF						PAGE 2
MAGTAP                                                                                                                     SEQ 0003
			TABLE OF CONTENTS
			-----------------

1.0	ABSTRACT				PAGE 3

2.0	THE DIAGNOSTIC MAGTAPE			PAGE 3

3.0	STARTING PROCEDURE			PAGE 4

4.0	COMMAND DESCRIPTIONS			PAGE 5
4.1	HELP COMMAND				PAGE 5
4.2	GET COMMAND				PAGE 5
4.3	DIRECTORY COMMAND			PAGE 6
4.4	FDIRECTORY COMMAND			PAGE 6
4.5	CHECK COMMAND				PAGE 6
4.6	UNLOAD COMMAND				PAGE 7
4.7	EXIT COMMAND				PAGE 7
4.8	REWIND COMMAND				PAGE 7
4.9	TAPE COMMAND				PAGE 7
4.10	MAKE COMMAND				PAGE 8
4.11	VERIFY COMMAND				PAGE 11
4.12	/LIST COMMAND				PAGE 11
4.13	WILD FILE NAMES				PAGE 11
4.14	/GROUP	COMMAND				PAGE 12
4.15	/TYPE COMMAND				PAGE 13
4.16	SEARCH COMMAND				PAGE 13
4.17	OPTION COMMAND				PAGE 14
4.18	NUMBER COMMAND				PAGE 14

5.0	DIRECTORY FILE DESCRIPTION MAGTAP.MTA	PAGE 15

6.0	BOOTSTRAP FILE MAGTAP.RDI		PAGE 16
6.1	READ-IN ON A TM10			PAGE 16
6.2	READ-IN ON A DX10			PAGE 17
6.3	READ-IN ON AN RH10			PAGE 17

7.0	ERRORS					PAGE 18
MAINDEC-10-DDQDF						PAGE 3
MAGTAP                                                                                                                     SEQ 0004


1.0	ABSTRACT
	--------

THE DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR PROGRAM IS A USER MODE
PROGRAM THAT IS USED TO CREATE AND READ DIAGNOSTIC DISTRIBUTION
MAGTAPES.  THIS PROGRAM SHOULD PROVIDE ALL THAT IS NECESSARY TO
EASILY CREATE ANY MAGTAPE THAT CAN BE READ BY THE DIAGNOSTIC
MAGTAPE MONITOR (MAGMON).  THIS PROGRAM WILL ALSO PROVIDE A
SIMPLE METHOD OF TRANSFERRING FILES FROM A DIAGNOSTIC MAGTAPE
TO DISK.

2.0	THE DIAGNOSTIC MAGTAPE
	----------------------

A DIAGNOSTIC MAGTAPE IS WRITTEN IN STANDARD DIGITAL COMPATIBLE
FORMAT.  EACH FILE IS DIVIDED INTO 512 WORD RECORDS AND ENDS
WITH ONE END OF FILE MARK.  A SECOND END OF FILE MARK IS PLACED
AT THE END OF THE LAST FILE ON TAPE.

THE FIRST SIX FILES ON THE TAPE MUST ALWAYS BE AS FOLLOWS:

0. MAGTAP.RDI - A READ-IN BOOTSTRAP
1. MAGTAP.SAV - THIS MAGTAP PROGRAM
2. MAGMON.SAV - DIAGNOSTIC LOADER PROGRAM
3. MAGTAP.MTA - DIRECTORY OF TAPE READABLE BY MAGMON
		AND MAGTAP PROGRAMS
4. MAGTAP.DIR - PRINTABLE DIRECTORY OF THE MAGTAPE
5. THE FILE USED BY MAGTAP PROGRAM TO MAKE THE TAPE

ANY NUMBER OF FILES MAY FOLLOW.  THE MAXIMUM NUMBER OF FILES WILL
BE LIMITED ONLY BY THE LENGTH OF THE TAPE.
MAINDEC-10-DDQDF						PAGE 4
MAGTAP                                                                                                                     SEQ 0005

3.0	STARTING PROCEDURE
	------------------

THIS MAGTAP PROGRAM WILL RUN IN USER MODE ONLY.  WHEN RUNNING UNDER
A TOPS-20 MONITOR, THE TOPS-10 UUO SIMULATION FACILITY MUST BE AVAILABLE.
THE FOLLOWING COMMANDS MUST BE TYPED TO A TOPS-20 MONITOR (MTA0 USED AS
EXAMPLE MAGTAPE UNIT NAME):

		@ASSIGN MTA0
		@SET TAPE DENSITY 800(1600) BPI

SUPPLYING APPROPRIATE TAPE DENSITY.  SIMILAR TOPS-10 COMMANDS MAY
BE TYPED BUT ARE NOT REQUIRED.

IF THE PROGRAM IS ALREADY IN A DISK DIRECTORY, THE PROGRAM CAN BE
STARTED SIMPLY BY TYPING:

		RUN MAGTAP.SAV

IF THE MAGTAP PROGRAM IS NOT ON DISK, IT MUST BE RETRIEVED FROM THE
DIAGNOSTIC MAGTAPE.  MOUNT THE MAGTAPE ON A TAPE DRIVE THEN
FOLLOW THE APPROPRIATE EXAMPLE BELOW (IN THE EXAMPLES, THE TAPE
DRIVE IS ASSUMED TO BE MTA0):

	IF TOPS-10 MONITOR:
		.ASSIGN MTA0:
		.REWIND MTA0:
		.SET DENSITY MTA0: 800(1600) BPI
		.SET BLOCKSIZE MTA0: 512 WORDS
		.SKIP MTA0: 1 FILE
		.COPY MAGTAP.SAV=MTA0:

	IF TOPS-20 MONITOR:
		@ASSIGN MTA0:
		@REWIND MTA0:
		@SET TAPE DENSITY 800(1600) BPI
		@SKIP MTA0: 1 FILE
		@COPY (FROM) MTA0: (TO) MAGTAP.SAV

UPON STARTING, THE MAGTAP PROGRAM WILL PRINT ITS NAME AND VERSION
NUMBER THEN WILL ASK FOR THE NAME OF THE MAGTAPE DEVICE IT SHALL
USE:

		MAGTAPE DEVICE -
MAINDEC-10-DDQDF						PAGE 5
MAGTAP                                                                                                                     SEQ 0006

RESPOND BY TYPING A LOGICAL OR PHYSICAL NAME FOR A MAGNETIC TAPE
DEVICE.  A CHECK WILL BE MADE THAT THE DEVICE SELECTED IS AVAILABLE
AND IS A MAGTAPE DEVICE.  IF THE TAPE UNIT HAS THE CAPABILITY OF
READING AND WRITING AT 1600 BPI, THE FOLLOWING IS ASKED:

		WHAT DENSITY? (800 OR 1600) -

EITHER 800 OR 1600 MUST BE TYPED.

THE MAGTAP PROGRAM WILL NOW BE READY TO ACCEPT ANY COMMANDS AND WILL
PROMPT WITH:

		COMMAND -

4.0	COMMAND DESCRIPTIONS
	--------------------

THE MAGTAPE PROGRAM PERFORMS ALL OPERATIONS IN RESPONSE TO COMMANDS
TYPED BY THE USER.  COMMANDS CONSIST OF A VERB FOLLOWED BY OPTIONAL
ARGUMENTS.  A SEPARATOR CHARACTER (SPACE, TAB OR COMMA) MUST
SEPARATE THE COMMAND FROM ANY ARGUMENTS THAT MAY FOLLOW.  A COMMA
MUST BE USED BETWEEN ARGUMENTS IF MORE THAN ONE.  EVERY COMMAND
LINE MUST END WITH A CARRIAGE RETURN.

THE COMMAND VERB CAN BE ABBREVIATED TO ANY EXTENT AS LONG AS THE
ABBREVIATION IS UNIQUE.  IN THIS VERSION OF MAGTAP, NO TWO COMMANDS
START WITH THE SAME LETTER.  THEREFORE, ALL COMMANDS MAY BE ABBRE-
VIATED BY TYPING ONLY ONE LETTER.  THIS MAY NOT BE TRUE IN LATER
VERSIONS, HOWEVER.

4.1	HELP COMMAND
	------------

THE HELP COMMAND WILL CAUSE A BRIEF DESCRIPTION OF MAGTAP COMMANDS
TO BE PRINTED ON THE USER'S TERMINAL.  ALL ARGUMENTS ARE IGNORED.

4.2	GET COMMAND
	-----------

THE GET COMMAND IS USED TO COPY FILES FROM MAGTAPE TO THE DISK.  THE
GET COMMAND MAY BE FOLLOWED BY A LIST OF FILE SPECIFICATIONS IN THE
FORM FILE.EXT.  BOTH THE FILENAME AND EXTENSION MUST BE SPECIFIED.
IF JUST THE GET COMMAND IS TYPED, MAGTAPE WILL COPY ALL OF THE FILES
FROM THE MAGTAPE TO THE DISK.  IF ONE OR MORE FILES ARE SPECIFIED,
ONLY THOSE FILES WILL BE COPIED TO DISK.

IN ADDITION, THE OPTIONAL /GROUP:ARG AND /TYPE:ARG SWITCHES MAY BE
USED TO COPY ONLY THE SELECTED FILE GROUPINGS AND/OR SELECTED FILE
TYPES TO THE DISK.

ALL FILES COPIED TO DISK ARE GIVEN THEIR ORIGINAL FILE NAME AND
EXTENSION.  THE ORIGINAL CREATION DATE AND VERSION NUMBER ALSO
ARE MAINTAINED.
MAINDEC-10-DDQDF						PAGE 6
MAGTAP                                                                                                                     SEQ 0007

4.3	DIRECTORY COMMAND
	-----------------

THE DIRECTORY COMMAND SHOULD BE USED TO RETRIEVE THE DIRECTORY OF THE
MAGTAPE.  THE DIRECTORY FILE MAGTAP.DIR WILL BE READ FROM THE MAGTAPE
AND PRINTED ON THE USER'S TERMINAL.

OPTIONALLY, A DEVICE NAME CAN BE SPECIFIED IMMEDIATELY AFTER THE
DIRECTORY COMMAND.  IF PRESENT, THE DIRECTORY WILL BE COPIED TO THAT
DEVICE.  ANY DEVICE THAT CAN ACCEPT ASCII MODE OUTPUT CAN BE SPECIFIED.
FOR EXAMPLE, TO PRINT THE DIRECTORY OF THE MAGTAPE ON A LINE PRINTER
TYPE:

		DIRECTORY LPT

4.4	FDIRECTORY COMMAND
	------------------

THE FDIRECTORY COMMAND SHOULD BE USED INSTEAD OF THE DIRECTORY COMMAND
WHEN A FASTER DIRECTORY IS DESIRED.  THIS COMMAND WILL PRINT ONLY
THE FILE NAMES AND EXTENSIONS OF THE FILES ON THE MAGTAPE.  FOUR
NAMES WILL BE PRINTED ON EACH LINE.

AN OPTIONAL DEVICE NAME CAN BE SPECIFIED AS IN THE DIRECTORY
COMMAND.

4.5	CHECK COMMAND
	-------------

THE CHECK COMMAND PROVIDES A SIMPLE METHOD OF DETERMINING WHETHER
THE MAGTAPE CAN BE READ.  THE CHECK COMMAND MAY BE FOLLOWED BY A
LIST OF FILE SPECIFICATIONS.  IF JUST THE CHECK COMMAND IS TYPED,
THE ENTIRE TAPE IS CHECKED.  IF ONE OR MORE FILES ARE SPECIFIED,
ONLY THOSE FILES WILL BE CHECKED.

IN ADDITION, THE OPTIONAL /GROUP:ARG AND /TYPE:ARG SWITCHES MAY BE
USED TO CHECK ONLY THE SELECTED FILE GROUPINGS AND/OR SELECTED FILE
TYPES.

THE CHECK PROCESS INVOLVES READING THE MAGTAPE DIRECTORY AND SPACING
TO THE FILE TO BE CHECKED.  THE DATA BLOCKS ARE THEN READ TO DETERMINE
THAT THERE ARE NO HARD READ ERRORS.  FILES WITH EXTENSIONS A8, A10, A11,
TIC AND RAM ARE CHECKED FOR PROPER DATA FORMAT AND INTERNAL CHECKSUMS
ARE VERIFIED.
MAINDEC-10-DDQDF						PAGE 7
MAGTAP                                                                                                                     SEQ 0008

4.6	UNLOAD COMMAND
	--------------

THE UNLOAD COMMAND WILL CAUSE THE TAPE TO BE UNLOADED.  THE PROGRAM
THEN EXITS TO MONITOR COMMAND LEVEL.

4.7	EXIT COMMAND
	------------

THE EXIT COMMAND CAUSES THE PROGRAM TO EXIT TO MONITOR COMMAND LEVEL
WITHOUT UNLOADING THE TAPE.

4.8	REWIND COMMAND
	--------------

THE REWIND COMMAND WILL CAUSE THE MAGTAPE TO BE REWOUND AND THE
IN-CORE DIRECTORY TO BE CLEARED, FORCING THE DIRECTORY TO BE READ
FROM THE MAGTAPE ON THE NEXT GET, CHECK, VERIFY, DIRECTORY OR
FDIRECTORY COMMAND.

THIS COMMAND IS PROVIDED FOR THE USER'S CONVENIENCE.  IT SHOULD
NEVER BE REQUIRED FOR NORMAL OPERATIONS.

4.9	TAPE COMMAND
	------------

THE TAPE COMMAND IS USED TO SELECT A NEW MAGTAPE DEVICE.  THE TAPE
COMMAND MUST BE FOLLOWED BY A DEVICE NAME.  IF THE DEVICE SPECIFIED
IS NOT A MAGTAPE DEVICE,

		MAGTAPE DEVICE -

WILL BE ASKED.  NOW RESPOND WITH THE CORRECT DEVICE NAME.

IF THE TAPE UNIT SELECTED HAS THE CAPABILITY OF READING AND WRITING
AT 1600 BPI, THE FOLLOWING WILL BE ASKED:

		WHAT DENSITY? (800 OR 1600) -

EITHER 800 OR 1600 (OR ANY ABBREVIATION) MUST BE TYPED.

A TAPE COMMAND IS AUTOMATICALLY CALLED WHENEVER THE MAGTAP
PROGRAM IS STARTED OR RESTARTED.

IF AN ALTMODE CHARACTER IS TYPED AS THE DEVICE NAME, NO
MAGTAPE DEVICE WILL BE SELECTED.  THIS FEATURE WAS ADDED FOR DEBUG
PURPOSES, BUT MAY BE USEFUL AT TIMES.  THE HELP, NUMBER AND MAKE
COMMANDS MAY BE USED WITH NO MAGTAPE DEVICE SELECTED.  THE MAKE
COMMAND WILL CREATE THE DIRECTORY FILES ON DISK, THEN WILL EXIT
BEFORE ATTEMPTING TO WRITE THE TAPE.
MAINDEC-10-DDQDF						PAGE 8
MAGTAP                                                                                                                     SEQ 0009

4.10	MAKE COMMAND
	------------

THE MAKE COMMAND IS USED TO CREATE A MAGTAPE.  MAGTAP REQUIRES THAT
THE FOLLOWING FILES BE ACCESSIBLE ON DISK:

		MAGTAP.SAV
		MAGMON.SAV
		MAGTAP.RDI AND/OR DXMPA.A8

TO SPECIFY THE FILES THAT ARE TO BE WRITTEN ONTO THE MAGTAPE, A LIST
OF FILE SPECIFICATIONS IN THE FORM FILE.EXT SEPARATED BY A COMMA MUST
FOLLOW THE MAKE COMMAND.  THE MAGTAP PROGRAM WILL IMMEDIATELY CREATE
A FILE CALLED MAGTAP.TMP ON DSK CONTAINING THE FOLLOWING:

		MAGTAP.RDI
		MAGTAP.SAV
		MAGMON.SAV
		MAGTAP.MTA
		MAGTAP.DIR
		MAGTAP.TMP

THEN EACH FILE.EXT SPECIFIED IN THE COMMAND STRING, EACH ON A
SEPARATE LINE.  EACH LINE STARTS IN COLUMN ONE.

AN EXISTING DISK INPUT FILE CAN BE REFERENCED DIRECTLY BY TYPING:

		MAKE @DEV:FILE.EXT[P,PN]

IF ONLY:

		MAKE @FILE

IS TYPED, AN INP EXTENSION AND USER'S DISK AREA IS ASSUMED.  IF THE MAKE
COMMAND IS TYPED WITH NO ARGUMENTS, @DSK:MAGTAP.INP IS ASSUMED.

THE INPUT FILE CAN CONTAIN ANY INFORMATION DESIRED, BUT ALL LINES
THAT BEGIN WITH A PRINTABLE CHARACTER IN COLUMN ONE OTHER THAN A
SEMI-COLON MUST START WITH FILE.EXT, A NUMBER SIGNIFYING THE
FILE TYPE OR A SLASH GROUP COMMAND.
MAINDEC-10-DDQDF						PAGE 9
MAGTAP                                                                                                                     SEQ 0010


FILE TYPES ARE: EXEC, USER, SPECIAL, MONITOR, UNDEF.  THESE ARE
SPECIFIED BY AN OCTAL NUMBER CODED WITH THE APPROPRIATE BITS SET.
THIS OCTAL NUMBER IS CODED AS FOLLOWS:

		20 = UNDEF
		10 = MONITOR
		 4 = SPECIAL
		 2 = USER
		 1 = EXEC

	A 0 TYPE CODE MEANS UNSPECIFIED.

THE SLASH GROUP COMMAND IS USED TO SEPARATE FILES INTO SPECIFIED GROUPS.
THE COMMAND IS PLACED ON A LINE IN THE INPUT FILE IN THE FOLLOWING
FORMAT:

	/GROUP:ARGUMENT

THE GROUP ARGUMENTS ARE AS GIVEN UNDER THE /GROUP SWITCH COMMAND.

THE INPUT FILE IS FIRST CHECKED TO SEE THAT THE FIRST SIX FILE NAMES
SPECIFIED IN THE LIST ARE:

		MAGTAP.RDI
		MAGTAP.SAV
		MAGMON.SAV
		MAGTAP.MTA
		MAGTAP.DIR
		THE NAME OF THE INPUT FILE
MAINDEC-10-DDQDF						PAGE 10
MAGTAP                                                                                                                     SEQ 0011


ONCE AN INPUT FILE HAS BEEN ESTABLISHED OR WRITTEN, THE MAGTAP
PROGRAM WILL SEE IF THE FILES MAGTAP.RDI AND DXMPA.A8 ARE ON THE
DISK.  IF MAGTAP.RDI DOES NOT EXIST OR DXMPA.A8 HAS A MORE RECENT
CREATION DATE, A NEW MAGTAP.RDI FILE WILL BE CREATED.  THIS WILL
BE THE FILE READ BY THE HARDWARE READ-IN OPERATION.

THE MAGTAP PROGRAM WILL THEN LOOKUP EACH FILE SPECIFIED IN THE INPUT
FILE TO OBTAIN THE VERSION NUMBER AND CREATION DATE.  THIS INFORMATION
WILL BE WRITTEN INTO TWO FILES, MAGTAP.MTA AND MAGTAP.DIR.  THE FILE
MAGTAP.MTA WILL CONTAIN THREE WORDS FOR EACH FILE PLUS A HEADER AND
A CHECKSUM WORD IN EACH RECORD.  THE MAGTAP.DIR FILE WILL BE WRITTEN
IN ASCII CHARACTERS TO BECOME THE PRINTABLE DIRECTORY OF THE MAGTAPE.
A LINE WILL BE INSERTED BEFORE THE FIRST FILE NAME CONTAINING THE
DATE AND TIME OF CREATION OF THE DIRECTORY FILE.

ALL OTHER LINES OF THE FILE WILL BE COPIED DIRECTLY FROM THE INPUT
FILE EXCEPT FOR THE FIRST 34 CHARACTERS OF EACH LINE CONTAINING A
PRINTABLE CHARACTER OTHER THAN A SEMI-COLON IN COLUMN ONE.  THESE 34
CHARACTERS WILL BE INTERPRETED AS THE FILE NAME AND EXTENSION AND WILL
BE REPLACED WITH THE FILE NUMBER ON THE MAGTAPE, THE FILE NAME,
EXTENSION, VERSION AND CREATION DATE.  FOR EXAMPLE, AN INPUT FILE
CONTAINING THE FOLLOWING LINE:

DDXXX.A10	                        DEC-SYSTEM-10 DIAGNOSTIC 

WILL PRODUCE A LINE SIMILAR TO THE FOLLOWING:

  8.  00   DDXXX  A10   0.1   23-OCT-75   128  DEC-SYSTEM-10 DIAGNOSTIC

THE MAGTAPE IS THEN REWOUND AND FILES ARE WRITTEN ONTO THE MAGTAPE
EXACTLY AS READ FROM THE DISK.  AFTER THE ENTIRE TAPE HAS BEEN WRITTEN,
THE MAGTAPE WILL BE REWOUND AND THE PROGRAM WILL ASK FOR ANOTHER
COMMAND.
MAINDEC-10-DDQDF						PAGE 11
MAGTAP                                                                                                                     SEQ 0012

4.11	VERIFY COMMAND
	--------------

THE VERIFY COMMAND CAN BE USED TO VERIFY BEYOND A DOUBT THAT THE
MAGTAPE CAN BE READ CORRECTLY.  THE VERIFY COMMAND MAY BE FOLLOWED
BY A LIST OF FILE SPECIFICATIONS.  IF JUST THE VERIFY COMMAND IS
TYPED, THE ENTIRE TAPE IS VERIFIED.  IF ONE OR MORE FILES ARE
SPECIFIED, ONLY THOSE FILES WILL BE VERIFIED.

IN ADDITION, THE OPTIONAL /GROUP:ARG AND /TYPE:ARG SWITCHES MAY BE
USED TO VERIFY ONLY THE SELECTED FILE GROUPINGS AND/OR SELECTED FILE
TYPES.

THE VERIFY PROCESS PERFORMS THE CHECK PROCESS BUT ALSO READS THE
FILE FROM DISK AND VERIFIES THAT THE DATA MATCHES EXACTLY.  IN
ORDER TO PERFORM A VERIFY PROCESS, THE FILES TO BE VERIFIED MUST
EXIST ON THE DISK.


4.12	/LIST COMMAND
	-------------

THE /LIST COMMAND APPENDED TO THE MAKE, GET, CHECK OR VERIFY COMMAND
WILL CAUSE THE FILE NAME TO BE PRINTED WHEN THE FILE IS PROCESSED.

4.13	WILD FILE NAMES
	---------------

THE GET, CHECK & VERIFY COMMANDS MAY ALSO BE USED WITH WILD FILE NAMES
TO SELECTIVELY RESTORE OR CHECK CERTAIN CLASSES OF FILES.  A QUESTION
MARK "?" MAY BE USED TO ALLOW WILD CHARACTER MATCHING ON THE ASSOCIATED
FILE NAME CHARACTER POSITION.  AN ASTERISK "*" MAY BE USED TO MAKE
EITHER THE FILE NAME OR FILE EXTENSION WILD OR MAY BE USED TO COMPLETE
A FILE NAME OR EXTENSION AND MAKE THE REMAINING CHARACTER POSITIONS
WILD.
	EXAMPLES: *.ABC, ABCDEF.*, A??DEF.A??, A*.ABC
MAINDEC-10-DDQDF						PAGE 12
MAGTAP                                                                                                                     SEQ 0013


4.14	/GROUP:ARGUMENT COMMAND
-------------------------------

THE /GROUP:ARGUMENT COMMAND APPENDED TO THE "GET, CHECK, VERIFY"
COMMAND IS USED TO SELECTIVELY RESTORE OR CHECK SPECIFIC GROUPS OF FILES
ON THE MAGTAPE.  THE ARGUMENTS TO THE /GROUP COMMAND ARE:

	ALL		;ALL, OVERRIDES GROUPS ON THE MAGTAPE.
	DIASUP		;DIAGNOSTIC SUPPORT
	KACPU		;KA10 CPU DIAGNOSTICS
	KICPU		;KI10 CPU DIAGNOSTICS
	KLCPU		;KL10 CPU FUNCTIONAL DIAGNOSTICS
	KLDIAG		;KL10 HARDWARE DIAGNOSTICS
	KLTIC		;KL10 HARDWARE CLOCK SCANOUT
	KLISO		;KL10 HARDWARE ISOLATION
	KLADIAG		;KL10 MODEL A DIAGNOSTICS
	KLATIC		;KL10 MODEL A CLOCK SCANOUT
	KLAISO		;KL10 MODEL A ISOLATION
	KLBDIAG		;KL10 MODEL B DIAGNOSTICS
	KLBTIC		;KL10 MODEL B CLOCK SCANOUT
	KLBISO		;KL10 MODEL B ISOLATION
	MEMORY		;MEMORY DIAGNOSTICS
	TAPE		;MAGNETIC TAPE DIAGNOSTICS
	DISK		;DISK DIAGNOSTICS
	UNIREC		;UNIT RECORD DIAGNOSTICS
	COMM		;COMMUNICATION DIAGNOSTICS
	SYSEXR		;SYSTEM EXERCISER DIAGNOSTICS
	FEDIAG		;KL10 FRONT END DIAGNOSTICS
	FESUPP		;ADDITIONAL FRONT END DIAGNOSTICS
	FLDSRV		;FIELD SERVICE SUPPORT
	SPECIAL		;SPECIAL PROGRAMS
	TOPS10		;TOPS10 MONITOR SUPPORT
	TOPS20		;TOPS20 MONITOR SUPPORT
	UNDEF1		;UNDEFINED GROUPS 1 TO 6
	UNDEF2
	UNDEF3
	UNDEF4
	UNDEF5
	UNDEF6
MAINDEC-10-DDQDF						PAGE 13
MAGTAP                                                                                                                     SEQ 0014


4.15	/TYPE:ARGUMENT COMMAND
------------------------------

THE /TYPE:ARGUMENT COMMAND APPENDED TO THE "GET, CHECK, VERIFY"
COMMAND IS USED TO SELECTIVELY RESTORE OR CHECK SPECIFIC TYPES OF FILES
ON THE MAGTAPE.  THE /TYPE COMMAND MAY BE USED AS MANY TIMES AS
NECESSARY TO SPECIFY THE SELECTED TYPES AS THE SELECTION IS OR'ED
TOGETHER TO CREATE THE /TYPE RETREVIAL ARGUMENT.  THE ARGUMENTS TO
THE /TYPE COMMAND ARE:

	ALL		;ALL, OVERRIDES TYPES ON THE MAGTAPE.
	EXEC		;EXEC MODE DIAGNOSTICS
	USER		;USER MODE DIAGNOSTICS
	SPECIAL		;SPECIAL PROGRAMS
	MONITOR		;MONITOR SUPPORT PROGRAMS
	UNDEF		;UNDEFINED TYPE

4.16	SEARCH COMMAND
	--------------

THE SEARCH COMMAND IS USED TO SPECIFY THE DISK AREAS FROM WHICH THE
FILES ARE TO BE READ.  UP TO 20 DISK AREAS MAY BE SPECIFIED.  THIS
SEARCH LIST WILL BE USED BY THE MAKE, VERIFY AND NUMBER COMMANDS.

THE GENERAL FORM OF THE SEARCH COMMAND IS:

		SEARCH DEV:[P,PN],DEV:[P,PN],...

INDIVIDUAL DISK AREAS MUST BE SEPARATED BY COMMAS.  IF ONLY THE
DEV: IS SPECIFIED, [P,PN] DEFAULTS TO THE JOB'S P,PN.  IF ONLY
THE [P,PN] IS SPECIFIED, DEV: DEFAULTS TO DSK:.  AN INPLICIT DSK:
ALWAYS FOLLOWS THE SEARCH LIST SPECIFIED.

FOR EXAMPLE, TO MAKE OR VERIFY A MAGTAPE WITH FILES ON FS:[6,10]
AND [1,2] FROM A JOB LOGGED INTO [1,2], THE FOLLOWING SEARCH COMMAND
WOULD BE USED:

		SEARCH FS:[6,10],FS:

THIS WILL CAUSE THE MAGTAP PROGRAM TO LOOK FOR EACH FILE IN
FS:[6,10].  WHEN A FILE IS NOT FOUND THERE, MAGTAP WILL LOOK IN
FS:[1,2] NEXT. FINALLY DSK: WILL BE SEARCHED.
MAINDEC-10-DDQDF						PAGE 14
MAGTAP                                                                                                                     SEQ 0015


4.17	OPTION COMMAND
	--------------

ANY NUMBER OF SEARCH LISTS MAY BE PLACED IN A FILE CALLED
DSK:SWITCH.INI.  THE OPTION COMMAND DIRECTS MAGTAP TO READ ONE OF
THESE LINES.  THE FORMAT OF A LINE IN SWITCH.INI IS:

		MAGTAP:NAME DEV:[P,PN],DEV:[P,PN],...

THE OPTION COMMAND TO READ THIS LINE WOULD BE:

		OPTION NAME

IF NO NAME IS SPECIFIED IN THE COMMAND, A LINE WITH NO :NAME WILL
BE READ.  AN OPTION COMMAND WITH NO NAME SPECIFIED IS AUTOMATICALLY
CALLED WHEN EVER THE MAGTAP PROGRAM IS STARTED OR RESTARTED.


4.18	NUMBER COMMAND
	--------------

THE NUMBER COMMAND IS USED TO CHANGE THE VERSION NUMBER AND THE DATE
OF A FILE ON DISK.  THIS VERSION NUMBER AND DATE WILL THEN APPEAR
IN THE MAGTAPE DIRECTORY FOR ALL SUCCEEDING MAKE COMMANDS.  THE
NUMBER COMMAND MAY BE USED ON ANY FILE ON DISK THAT DOES NOT CONTAIN
THIS INFORMATION INTERNAL TO THE FILE.  FILES WITH A SAV EXTENSION HAVE
A VERSION NUMBER IN LOCATION 137, SO UNLESS THIS LOCATION IS ZERO,
ONLY THE DATE WILL HAVE ANY EFFECT ON THE MAGTAPE DIRECTORY FILE.

FILES WITH EXTENSIONS OF A8, A10, A11, TIC AND RAM NORMALLY BEGIN
WITH A FILE ID LINE.  THIS ID LINE CONTAINS THE FILE NAME AND MAY
CONTAIN THE VERSION AND DATE.  THE VERSION AND DATE IN THIS ID LINE
(IF PRESENT) WILL BE USED RATHER THAN THOSE IN THE DISK DIRECTORY
BY THE MAKE COMMAND.

THE COMMAND FORMAT IS:

	NUMBER FILE.EXT 0.2 20-JAN-76

THIS EXAMPLE WOULD SET THE VERSION TO 0.2 AND THE DATE TO 20-JAN-76.
IF IT IS DESIRED TO CHANGE ONLY ONE OF THE FILE'S PARAMETERS, ONLY
THAT PARAMETER NEED BE SPECIFIED.  THE MONTHS SHOULD BE SPECIFIED AS
JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC.
MAINDEC-10-DDQDF						PAGE 15
MAGTAP                                                                                                                     SEQ 0016

5.0	DIRECTORY FILE DESCRIPTION MAGTAP.MTA
	-------------------------------------

THE MAGTAPE DIRECTORY FILE IS GENERATED BY THE MAGTAP PROGRAM
EACH TIME THE MAKE OPERATION IS PERFORMED.  THIS FILE CONTAINS
ALL THE NECESSARY INFORMATION ABOUT EACH FILE ON THE MAGTAPE.  THIS
FILE IS WRITTEN IN 512 WORD RECORDS AND CAN CONSIST OF AS MANY
RECORDS AS NECESSARY TO CONTAIN INFORMATION ABOUT EACH FILE.

THE FIRST WORD OF EACH DIRECTORY RECORD IS THE FILE NUMBER OF THE
FIRST FILE NAMED IN THAT RECORD.  THE FIRST DIRECTORY RECORD WILL
ALWAYS HAVE A FIRST WORD OF ZERO.  FOLLOWING THE FIRST WORD IS A THREE
WORD BLOCK FOR EACH FILE ON THE TAPE, IN THE ORDER THEY APPEAR ON
THE TAPE.  THE RIGHT HALF OF THE LAST WORD IN THE RECORD CONTAINS
AN 18 BIT CHECKSUM OF ALL THE WORDS IN THE RECORD.  THIS 18 BIT
CHECKSUM IS COMPUTED BY ADDING ALL THE 36 BIT WORDS IN THE RECORD
TOGETHER AND THEN ADDING TOGETHER THE LEFT AND RIGHT HALVES OF THE
RESULT.  THE LEFT HALF OF THE LAST WORD WILL CONTAIN A ONE IF THE
INFORMATION ON THE LAST FILE ON THE TAPE IS CONTAINED IN THIS DIRECTORY
RECORD.  OTHERWISE, THE LEFT HALF WILL ALWAYS BE ZERO.

IN THE THREE WORD BLOCK FOR EACH FILE, THE FILE NAME IS IN THE FIRST
WORD, THE LEFT HALF OF THE SECOND WORD CONTAINS THE EXTENSION AND THE
TIME THE FILE WAS CREATED IS IN THE RIGHT HALF.  THE THIRD WORD
CONTAINS THE VERSION NUMBER IN THE LEFT HALF AND THE CREATION DATE
IN THE RIGHT HALF.  THE VERSION NUMBER CONTAINS A THREE DIGIT OCTAL
EDIT NUMBER FOLLOWED BY A THREE DIGIT OCTAL VERSION NUMBER.

THE GROUP CODE INFORMATION IS CONTAINED IN THE SECOND WORD IN BIT
POSITIONS 20 THRU 24 AND THE TYPE CODE INFORMATION IS CONTAINED IN THE
SECOND AND THIRD WORD WITH THE LOW ORDER THREE BITS IN THE THIRD WORD
IN BIT POSITIONS 18 THRU 20 AND THE HI ORDER TWO BITS IN THE SECOND WORD
IN BIT POSITIONS 18 AND 19.

THE DATE AND VERSION OF THE FILE ARE OBTAINED FROM THE FILE ITSELF,
IF SO CONTAINED.  IF THIS INFORMATION IS NOT CONTAINED IN THE FILE,
THE EXTENDED DISK DIRECTORY LOOKUP INFORMATION IS USED.  THE FOLLOWING
FILES MAY CONTAIN THIS INFORMATION:

FILES WITH A SAV EXTENSION ARE READ TO DETERMINE THE CONTENTS OF
LOCATION 137.  IF THIS LOCATION IS NON-ZERO, ITS CONTENTS ARE USED
AS THE VERSION NUMBER.

FILES WITH AN EXTENSION OF A8, A10, A11, TIC AND RAM ARE READ TO
SEE IF AN ID LINE IS PRESENT AT THE BEGINNING OF THE FILE.  IF
PRESENT, A VERSION AND DATE ARE SEARCHED FOR IN THIS LINE AND ARE
THEN USED.
MAINDEC-10-DDQDF						PAGE 16
MAGTAP                                                                                                                     SEQ 0017


6.0.	BOOTSTRAP FILE MAGTAP.RDI
	-------------------------

THIS MAGTAP PROGRAM PRODUCES A READ-IN BOOTSTRAP FILE WHICH IS
PLACED ON THE FRONT OF EVERY DIAGNOSTIC MAGTAPE.  THE FIRST RECORD
OF THIS FILE IS THE EXECUTABLE PDP-10 CODE TO PERFORM THE LOAD
AND START THE MAGMON PROGRAM WHEN ACTIVATED BY THE HARDWARE READ-IN
ON A KA10 OR KI10. THE REMAINING RECORDS OF THE FILE ARE A CORE IMAGE
OF THE DX10 MICRO-CODE.  THE MAGTAP PROGRAM READS THE DX10 MICRO-CODE
FILE DXMPA.A8 AND PRODUCES THE CORE IMAGE BEFORE GENERATING THE
READ-IN FILE.

THE READ-IN CAN BE PERFORMED ON TM10, DX10 AND RH10 TAPE CONTROL
UNITS.  FOLLOWING IS A DESCRIPTION OF OPERATION ON EACH OF THESE
CONTROL UNITS.  IF ANY ERRORS ARE DETECTED, THE PROGRAM HALTS.  THE
READ-IN PROGRAM IS NOT RESTARTABLE EXCEPT BY PRESSING THE READ-IN
BUTTON AGAIN.


6.1	READ-IN ON A TM10
	-----------------

READ-IN CAN BE DIRECTED TO EITHER OF TWO TM10'S ON A SYSTEM, A TM10
WITH DEVICE CODE OF 340 OR 350.  THE CONTROL UNIT MAY BE EITHER A
TM10A OR TM10B AND THE TM10B CAN HAVE A DF10C IN EITHER KA OR KI
MODE.  A DIAGNOSTIC MAGTAPE MUST BE MOUNTED ON DRIVE 0 OF THE SELECTED
TM10 FOR READ-IN.

				NOTE
		ALL DIAGNOSTIC MAGTAPES FOR THE TM10
		ARE WRITTEN AT 800 BPI.  TM10 TAPE
		CONTROLLERS ORIGINALLY WERE BUILT TO
		READ-IN AT 556 BPI.  BEFORE NEW DIAGNOSTIC
		MAGTAPES CAN BE READ-IN ON A TM10, AN
		ECO MUST BE INSTALLED IN THE TM10 TO
		CHANGE THIS READ-IN DENSITY TO 800 BPI.

THE HARDWARE DUMPS THE READ-IN RECORD INTO MEMORY STARTING AT
LOCATION 1000.  THE PROGRAM IS THEN STARTED.

THE READ-IN PROGRAM FIRST DETERMINES WHICH TM10 WAS USED, THEN SKIPS
THE TAPE FORWARD OVER TWO FILE MARKS AND READS THE FILE MAGMON.SAV.
THIS PROGRAM IS LOADED INTO CORE AND THEN STARTED.
MAINDEC-10-DDQDF						PAGE 17
MAGTAP                                                                                                                     SEQ 0018


6.2	READ-IN ON A DX10
	-----------------

READ-IN CAN BE DIRECTED TO ANY OF THREE DX10'S ON A SYSTEM.  THE
ACCEPTABLE DEVICE CODES ARE 220, 224 AND 034.  THE READ-IN ACTIVATES
A BOOTSTRAP IN THE DX10 WHICH SELECTS THE FIRST ON-LINE TAPE DRIVE,
REWINDS IT AND DUMPS THE READ-IN RECORD INTO MEMORY STARTING AT
LOCATION 0.  THE PDP-10 IS THEN STARTED AT LOCATION 100.  THE TAPE
DRIVE MUST BE 9-TRACK.  THE DIAGNOSTIC MAGTAPE CAN BE WRITTEN IN
EITHER 800 BPI OR 1600 BPI.

THE READ-IN RECORD FIRST RELOCATES ITSELF TO THE MEMORY LOCATIONS
WHERE THE TM10 WOULD DUMP IT.  THE DX10 WHICH CAUSED THE READ-IN
IS FOUND BY LOOKING FOR A DX10 THAT IS RUNNING.  THE BOOTSTRAP CODE
IN THE DX10 MEMORY IS THEN MODIFIED TO READ THE DX10 MICRO-CODE (THE
REMAINING RECORDS IN THE READ-IN FILE ON THE MAGTAPE) INTO PDP-10
MEMORY.  THE MICRO-CODE IS THEN WRITTEN INTO THE DX10 MEMORY AND
STARTED.

THE MAGMON.SAV FILE IS THEN READ USING THE NORMAL DX10 MICRO-CODE.


6.3	READ-IN ON AN RH10
	------------------

READ-IN CAN BE DIRECTED TO ANY TM02 CONTROLLER ON ANY OF SIX RH10'S.
THE ACCEPTABLE DEVICE CODES OF THE RH10'S ARE 270, 274, 360, 364, 370
AND 374.  THE TM02 NUMBER MUST BE SELECTED BY THE SWITCH ON THE MAIN-
TENANCE PANEL OF THE RH10.  THE TAPE UNIT MUST BE SLAVE NUMBER 0 AND
THE DIAGNOSTIC MAGTAPE MUST BE WRITTEN AT 800 BPI.

THE RH10 REQUESTS A READ-IN OPERATION OF THE TM02 WHICH REWINDS THE
TAPE DRIVE AND THEN USES THE DF10 TO READ THE BOOTSTRAP CODE INTO
MEMORY.

				NOTE

		A DF10C MUST BE IN KA MODE OR THE
		READ-IN WILL NOT WORK.

THE MAGMON.SAV FILE IS THEN READ AND STARTED.
MAINDEC-10-DDQDF						PAGE 18
MAGTAP                                                                                                                     SEQ 0019


7.0	ERRORS
	------

ALL ERRORS DETECTED BY THIS PROGRAM ARE REPORTED TO THE USER
BY A MESSAGE ON THE USER'S TERMINAL.  ALL ERRORS THAT PREVENT
CONTINUATION OF THE COMMAND WILL ABORT AND ASK FOR A NEW COMMAND.

ALL ERROR MESSAGES BEGIN WITH A QUESTION MARK (?) SO THAT
THIS PROGRAM CAN BE RUN UNDER A BATCH JOB, IF DESIRED.  ERROR
MASSAGES THAT ARE DUE TO A DEVICE ERROR INCLUDE AN OCTAL COPY
OF THE MONITOR DEVICE STATUS WORD.
			HISTORY FILE OF MAGTAP
			----------------------                                                                             SEQ 0020

------------------------------------------------------------------------

VERSION 0.5		MAY 1978		JOHN R. KIRCHOFF

ADDED SUPER ".A10" FILE PROCESSING FOR PDP-10 FILES.  CORRECTED A
PROBLEM WITH VERIFYING THAT THE FIRST FILES ON TAPE ARE CORRECT.
------------------------------------------------------------------------

VERSION 0.4		APRIL 1977		JOHN R. KIRCHOFF

ADDED WILD CARD FILE NAME PROCESSING FOR THE GET, CHECK & VERIFY COMMANDS.
CORRECTED A PROBLEM WITH NUMBERING FILES GREATER THAN 999.  CORRECTED
A PROBLEM WITH REWINDING THE TAPE FOR EVERY GET/GROUP COMMAND.  CHANGED
TAPE POSITIONING OPERATION SO THAT IF THE NEXT FILE TO GET IS MORE THAN
HALF WAY BACK TO THE BEGINNING OF THE TAPE THE TAPE WILL BE REWOUND AND
THEN SPACED FORWARD.
------------------------------------------------------------------------

VERSION 0.3		MARCH 1977		JOHN R. KIRCHOFF

CHANGED OPERATION TO REMOVE LISTING OF EACH FILE NAME AS THE TAPE IS
PROCESSED ON A "MAKE, GET, CHECK, VERIFY" COMMAND.  THE FILE NAME
BEING PROCESSED WILL BE LISTED IF AN ERROR OCCURS WHILE PROCESSING
THAT FILE.

/GROUP AND /TYPE FILE PROCESSING ADDED TO THE "MAKE, GET, CHECK, VERIFY"
COMMANDS.
------------------------------------------------------------------------

VERSION 0.2		DECEMBER 1976		DALE R. KECK

CORRECTED ONE INSTRUCTION IN MAGTAP READ-IN CODE TO FIX PROBLEM WITH
HARDWARE READ-IN ON A TM10A CONTROLLER.  READ-IN TO A TM10A WOULD
START BUT NEVER FINISH.
------------------------------------------------------------------------

VERSION 0.1		MARCH 9, 1976		DALE R. KECK

INITIAL RELEASE OF THE MAGTAP PROGRAM.

------------------------------------------------------------------------
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5^          DECDOC VER  00.24   22-MAY-78 16:55:26   PAGE 1             
                                                                                                                           SEQ 0021




















				   DOCUMENT
				**************
        MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5^
				**************

















		    COPYRIGHT 1978
		    DIGITAL EQUIPMENT CORPORATION
		    MAYNARD, MASS. 01754

MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5^          DECDOC VER  00.24   22-MAY-78 16:55:26   PAGE 2             
                                                                                                                           SEQ 0022

				 TABLE OF CONTENTS
				*******************


	51	PROGRAM PARAMETERS

	117	PROGRAM INITIALIZATION

	149	DEVICE SELECTION

	257	COMMAND DECODER

	499	MAKE COMMAND

	1075	UTILITY COMMANDS

	1123	DIRECTORY COMMANDS

	1221	READ COMMANDS

	1671	NUMBER COMMAND

	1754	DIRECTORY READ

	1911	SUBROUTINES

	3541	MAGTAPE READ-IN BOOTSTRAP FILE

	4009	PROGRAM STORAGE AREA
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5^          DECDOC VER  00.24   22-MAY-78 16:55:26   PAGE 3             
                                                                                                                           SEQ 0023
		1	MAINDEC-10-MAGTAP

		14				IDENTIFICATION
						--------------
			
				PRODUCT CODE:	MAINDEC - 10 - DDQDF
			
				PRODUCT NAME:	DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR
			
				VERSION:	0.5
			
				DATE RELEASED:	MAY 1978
			
				AUTHOR:		JOHN R. KIRCHOFF
						DALE R. KECK
			
				MAINTAINED BY:	DIAGNOSTIC ENGINEERING GROUP
			
			COPYRIGHT(C) 1976,1977,1978
			DIGITAL EQUIPMENT CORPORATION
			MARLBORO, MASS. 01752
			
			THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY
			ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH
			THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE,
			OR ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE
			MADE AVAILABLE TO ANY OTHER PERSON EXECPT FOR USE ON SUCH SYSTEM
			AND TO ONE WHO AGREES TO THESE LICENSE TERMS.  TITLE TO AND
			OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.
			
			THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
			NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
			EQUIPMENT CORPORATION.
			
			DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
			SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

		*****************************************************************
	51	PROGRAM PARAMETERS
		*****************************************************************

		53	ACCUMULATOR ASSIGNMENTS

		71	ASCII CHARACTER VALUES

		88	JOB DATA AREA DEFINITIONS

		94	MAGTAP DEFINITIONS

MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5^          DECDOC VER  00.24   22-MAY-78 16:55:26   PAGE 4             
                                                                                                                           SEQ 0024
		110	I/O CHANNELS

		*****************************************************************
	117	PROGRAM INITIALIZATION
		*****************************************************************

		119	START, INITIAL START OF PROGRAM

		141	DEFSWT, READ SWITCH.INI FOR DEFAULT SEARCH LIST

		*****************************************************************
	149	DEVICE SELECTION
		*****************************************************************

		151	STARTA, ASK WHICH MAGTAPE DEVICE TO USE

		175	CHECK DRIVE TYPE TO DETERMINE DENSITY

		226	MAGTAPE DEVICE SELECTION ERROR MESSAGES

		252	CONTROL O CLEAR

		*****************************************************************
	257	COMMAND DECODER
		*****************************************************************

		259	COMM, ASK FOR A COMMAND

		293	BADCMD, BAD COMMAND WAS INPUT

		309	COMAND, COMMAND COMPARE TABLE

		328	CMDGO, COMMAND DISPATCH TABLE

		352	SWPROC, COMMAND SWITCH PROCESS

		374	DENSITY, DENSITY COMPARE TABLE

		379	SWGRP, GET-CHECK-VERIFY ETC. COMMAND /GROUP PROCESS

		390	SWTYPE, GET-CHECK-VERIFY ETC. COMMAND /TYPE PROCESS

		406	SWEXIT, SWITCH PROCESS EXIT

		424	SWINP, MAKE COMMAND /GROUP SWITCH PROCESS

		463	GPCMD, MAKE /GROUP COMMAND TABLE

MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5^          DECDOC VER  00.24   22-MAY-78 16:55:26   PAGE 5             
                                                                                                                           SEQ 0025
		*****************************************************************
	499	MAKE COMMAND
		*****************************************************************

		501	MAKE, MAKE COMMAND WAS TYPED
				INPUT ARGUMENTS WITH COMMAND

		526	MKIND, MAKE COMMAND INDIRECT TO EXISTING FILE

		553	MKTERM, COMPARE EXISTING INPUT FILE WITH REQUIRED FORMAT

		591	MAKNOI, INPUT LIST OF FILE NAMES FROM COMMAND
				MAKE A FILE OF INFORMATION CALLED MAGTAP.TMP

		622	MKRDI, CHECK IF MAGTAP.RDI AND DXMPA.A8 EXIST
				IF DXMPA.A8 EXISTS, MAKE NEW RDI FILE UNLESS NEWER THAN DXMPA.A8

		669	NEWRDI, MAKE FILE CALLED MAGTAP.RDI
				THE READ-IN BOOTSTRAP FILE TO GO ON THE FRONT OF THE TAPE

		708		OPEN INPUT FILE

		725		OPEN CHANNEL 2 FOR MAGTAP.MTA

		743		OPEN CHANNEL 3 FOR MAGTAP.DIR

		767		CREATE THE MAGTAPE DIRECTORY FILES

		810	DIRFIL, SET UP EACH RECORD OF MTA FILE WITH FILE COUNT AND CHECKSUM

		865	DIRFND, READ EACH FILE TO GET DIRECTORY INFORMATION

		902		FINISH LINE OF DIRECTORY FILE MAGTAP.DIR WITH INPUT DATA

		928	DIREND, INSERT CHECKSUM TO END OF DIRECTORY RECORD IN MTA FILE

		958	MKTAPE, WRITE THE MAGTAPE

		1038	WRSIZE, WRITE FILES SIZE INTO .DIR FILE

MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5^          DECDOC VER  00.24   22-MAY-78 16:55:26   PAGE 6             
                                                                                                                           SEQ 0026
		*****************************************************************
	1075	UTILITY COMMANDS
		*****************************************************************

		1077	REWIND, REWIND COMMAND

		1086	UNLOAD, UNLOAD COMMAND

		1091	EXIT, EXIT COMMAND

		1101	OPTION, OPTION COMMAND

		*****************************************************************
	1123	DIRECTORY COMMANDS
		*****************************************************************

		1125	DIRECT, DIRECTORY AND FDIRECTORY COMMANDS

		1142	DIRPOS, SET UP TO READ DIRECTORY FILE

		1178	FDIRWT, WRITE FILE NAME AND EXTENSION, 4 FILES PER LINE

		*****************************************************************
	1221	READ COMMANDS
		*****************************************************************

		1223	CHEK, CHECK-VERIFY-GET COMMANDS

		1235		INPUT REST OF COMMAND

		1256		READ THE MAGTAPE DIRECTORY FILE

		1263		SET UP FOR EXAMINING LIST OF FILES

		1278	CHKNXT, CHECK EACH FILE NAME IN THE LIST

		1342		WRITE FILE TO DISK

		1381	CHKEOF, CHECK THAT BOTH FILES TERMINATE TOGETHER

		1446	FNDWLD, FIND THE FILE SPECIFIED IN THE .MTA DIRECTORY
				DOES PROCESSING FOR WILD FILE NAMES
				RETURNS +1 WHEN COMPLETE
				RETURNS +2 AFTER TAPE IN POSITION

		1482	FILWLD, FILE NAME WILD CHARACTER COMPARE
				CHECKS REQUESTED AND .MTA FILE NAMES CHAR BY CHAR
				WILD CHAR "?" ALWAYS MATCHES
				RETURN +1 FOR NO MATCH
				RETURN +2 IF FILE NAMES MATCH

MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5^          DECDOC VER  00.24   22-MAY-78 16:55:26   PAGE 7             
                                                                                                                           SEQ 0027
		1558	CHKSET, SET UP TO CHECK INTERNAL CHECKSUM OF FILE

		1575	CHKWRD, COME HERE TO CHECK EACH WORD OF FILE

		1610	CHR2, CHECK FOR SPACE OR "O" IN SECOND CHARACTER POSITION

		*****************************************************************
	1671	NUMBER COMMAND
		*****************************************************************

		1673	NUMBER, NUMBER COMMAND

		1722		A DATE IS SPECIFIED IN COMMAND

		*****************************************************************
	1754	DIRECTORY READ
		*****************************************************************

		1756	GETDIR, READ DIRECTORY FILE FROM MAGTAPE

		1784		CHECK INTERNAL CHECKSUM OF EACH DIRECTORY RECORD

		1811		DIRECTORY READ ERROR MESSAGES

		1832	FNDFIL, FIND THE FILE SPECIFIED IN FN AND EXT IN THE MAGTAPE DIRECTORY
				THEN POSITION THE TAPE TO THE FILE
				RETURN +1 IF NO FILE FOUND OF SPECIFIED NAME
				RETURN +2 AFTER TAPE IS IN POSITION AND ADDRESS OF
					DIRECTORY ENTRY IN A

		1861	FOUND, FILE FOUND IN MAGTAPE DIRECTORY
				MOVE TAPE TO BEGINNING OF THE FILE

		1880		COMPUTE DIRECTION AND NUMBER OF FILES TO MOVE TAPE

		1890		MOVE TAPE BACKWARDS

		1905		BACKWARDS POSITION L.T. 1/2 PRESENT POSITION
				REWIND THEN SPACE FORWARD TO FILE

MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5^          DECDOC VER  00.24   22-MAY-78 16:55:26   PAGE 8             
                                                                                                                           SEQ 0028
		*****************************************************************
	1911	SUBROUTINES
		*****************************************************************

		1913	FIND, FIND SUBROUTINE
				LOOKUP FILENAME AND EXTENSION IN ALL DISK AREAS SPECIFIED BY
				SEARCH SWITCH.  RETURN +2 WHEN FOUND.  RETURN +1
				IF NOT FOUND

		1958	COMPARE, COMPARE WORD IN 0 WITH ENTRIES IN TABLE SPECIFIED BY B
				NORMAL RETURN +2 WITH INDEX OF MATCH IN B
				ERROR	RETURN +1

		1993	RDNAME, READ A FILE NAME FROM THE INPUT FILE

		2031	RDEXT, READ THE EXTENSION

		2051	RDTYPE, READ TYPE FROM INPUT FILE

		2075		INPUT FILE ERRORS

		2111		INPUT FILE READ ERROR MESSAGES

		2154	INLIST, INPUT A LIST OF FILE.EXT AND PLACE IN MEMORY
				STARTING AT C(.JBFF)
				RETURN -FILE COUNT,, ADR IN B

		2189	INCORE, INCREASE CORE ASSIGNED TO JOB TO ENABLE REFERENCE
				TO ADDRESS IN D

		2202	RDDXMC, READ THE DX10 MICRO-CODE FILE

		2233	WCTIN, READ THE BEGINNING OF THE LINE FROM THE FILE

		2253	WRDIN, READ AN ENTRY FROM THE FILE, TERMINATE ON A COMMA

		2269	CHKIN, READ THE CHECKSUM FROM THE FILE AND THE CR-LF
				CHECK THAT CHECKSUM IS CORRECT

		2302	MAGBUF, SET UP MAGTAPE BUFFERS FOR CHANNEL 4

		2324	INWORD, INPUT A WORD FROM DEVICE USING INPUT INSTRUCTION IN INWXCT
				PLACE WORD IN SIXBIT IN 0
				PLACE TERMNATER CHARACTER IN A
				TERMINATOR CHARACTERS ARE SPACE, TAB, COMMA, PERIOD, LF, ALTMODE,
							  LB, RB, COLON, ATSIGN, DASH, SLASH
				CARRIAGE RETURNS AND SUCCESSIVE SPACES, COMMAS AND TABS ARE IGNORED
				NOTNUM IS SET TO -1 IF ANYTHING OTHER THAN A NUMBER WAS INPUT

MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5^          DECDOC VER  00.24   22-MAY-78 16:55:26   PAGE 9             
                                                                                                                           SEQ 0029
		2394		INPUT FROM .INP FILE

		2401	INNUM, INPUT AN OCTAL NUMBER
				PLACE NUMBER IN 0, MAXIMUM OF SIX DIGITS
				PLACE FIRST NON-DIGIT CHARACTER OR SEVENTH DIGIT IN A

		2416	PNTOCT, PRINT THE OCTAL NUMBER IN AC0

		2437	PNTDEC, PRINT THE DECIMAL NUMBER IN AC0

		2455	PNTSIX, PRINT SIXBIT WORD IN 0

		2469	RDCHAR, INPUT A CHARACTER FROM FILE ON CHANNEL 0.
				UPDATE LOCATION PAGE, LINE AND CHAR TO SHOW POSITION OF NEXT CHARACTER
				TO BE INPUT.  RETURN +2 WITH CHARACTER IN 0.
				RETURN +1 IF EOF INPUT
				IF ERROR, REPORT IT AND EXIT TO COMM

		2516	RD1, READ A CHARACTER INTO 0 FROM CHANNEL 1

		2536	RD4, READ A CHARACTER FROM MAGTAPE ON CHANNEL 4

		2553	RD4X, READ A CHARACTER FROM MAGTAPE ON CHANNEL 4
				IF A READ ERROR OCCURS, REPORT & READ TAPE TILL EOF

		2582	WRT2, WRITE THE DATA FROM 0 ONTO FILE ON CHANNEL 2

		2593	WRCHAR, WRITE A CHARACTER INTO DIRECTORY FILE ON CHANNEL 3

		2607	WRT4, WRITE THE DATA FROM 0 ONTO MAGTAPE ON CHANNEL 4

		2618	OUTDIG, OUTPUT THE DIGIT IN AC0. CONVERT TO SPACE IF LEADING ZERO

		2631	OUTWRD, OUTPUT SIXBIT WORD IN 0. CHARACTER COUNT IS IN A.

		2642	RDSWIT, READ SWITCH.INI FILE TO INPUT SEARCH LIST

		2683	SETSRC, SET UP SEARCH LIST

		2725		SEARCH LIST ARGUMENT ERROR MESSAGES

		2743	GETVER, OBTAIN AND WRITE VERSION NUMBER OF FILE.
				ALSO PLACE IN LH OF DATE WORD
				IF IN NORMAL FORMAT.

		2777	ASCVER, READ FIRST LINE OF ASCII FILE AND EXTRACT VERSION AND DATE

		2815	VERDEC, SET UP VERSION AND DATE FROM FILE

MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5^          DECDOC VER  00.24   22-MAY-78 16:55:26   PAGE 10            
                                                                                                                           SEQ 0030
		2851	ASCDAT, READ DATE FROM FILE LINE

		2893	CNVNUM, CONVERT SIXBIT NUMBER IN 0 TO OCTAL NUMBER

		2908	CNVDEC, CONVERT SIXBIT NUMBER IN 0 TO DECIMAL NUMBER

		2917	SAVVER, GET VERSION NUMBER OUT OF SAV FILE

		2939		OPEN AND LOOKUP FAILURE MESSAGES FOR INPUT FILE

		2970		OPEN AND LOOKUP FAILURE MESSAGES FOR DATA FILES

		3000		ADDITIONAL ERROR MESSAGES

		3018	WRITF, WRITE FILE NAMES POINTED TO BY C(D) INTO FILE ON CHANNEL 3

		3053	WRDATE, WRITE CREATION DATE OF FILE INTO .DIR FILE

		3086	DATTBP, COMPARE TABLE FOR MONTHS OF THE YEAR

		3103	NAMTAB, COMPARE TABLE FOR REQUIRED FILES ON EACH MAGTAPE

		*****************************************************************
	3541	MAGTAPE READ-IN BOOTSTRAP FILE
		*****************************************************************

		3543	MAGTAPE CONTROL BITS

		3560	MAGTAPE STATUS BITS

		3582	RDIO, READ-IN PROGRAM FOR MAGTAP.RDI

		3631		WAIT FOR TM10 OPERATION TO COMPLETE

		3646	DX10 CONTROL BITS

		3663	DX10 COMMANDS

		3673	DX10 STATUS BITS

		3704	SRTDX, DX10 READ-IN PROGRAM

		3732		DX10 FOUND, STOP IT AND MODIFY PDP-8A MEMORY

		3776		DX10 BLOCKO ROUTINE

		3794		DATAO WORDS SENT TO DX10

		3841	RH10 CONTROL BITS

MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5^          DECDOC VER  00.24   22-MAY-78 16:55:26   PAGE 11            
                                                                                                                           SEQ 0031
		3867	STRH, RH10 READ-IN PROGRAM

		3921		CHECK IF RH10 READ CORRECTLY

		3970	CLRCOR, CLEAR CORE IN PDP-10 FOR MAGMON.SAV

		3980	LOADPG, LOAD THE DATA BUFFER INTO CORE AND START MAGMON AT END

		*****************************************************************
	4009	PROGRAM STORAGE AREA
		*****************************************************************

		4011	INPUT FILE NAME FOR MAKE COMMAND

		4024	SEARCH LIST SET UP BY SEARCH SWITCH
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 1
MAGTAP	MAC	22-May-78 09:05	                                                                                           SEQ 0032

     1					;*MAINDEC-10-MAGTAP
     2
     3			000000			MCNVER==0
     4			000005			DECVER==5
     5
     6					XLIST
     7					LIST
     8					LALL
     9						PTITL	\MCNVER,\DECVER^
    10
    11					TITLE	MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5^
    12
    13						SALL
    14					;*			IDENTIFICATION
    15					;*			--------------
    16					;*
    17					;*	PRODUCT CODE:	MAINDEC - 10 - DDQDF
    18					;*
    19					;*	PRODUCT NAME:	DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR
    20					;*
    21					;*	VERSION:	0.5
    22					;*
    23					;*	DATE RELEASED:	MAY 1978
    24					;*
    25					;*	AUTHOR:		JOHN R. KIRCHOFF
    26					;*			DALE R. KECK
    27					;*
    28					;*	MAINTAINED BY:	DIAGNOSTIC ENGINEERING GROUP
    29					;*
    30					;*COPYRIGHT(C) 1976,1977,1978
    31					;*DIGITAL EQUIPMENT CORPORATION
    32					;*MARLBORO, MASS. 01752
    33					;*
    34					;*THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY
    35					;*ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH
    36					;*THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE,
    37					;*OR ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE
    38					;*MADE AVAILABLE TO ANY OTHER PERSON EXECPT FOR USE ON SUCH SYSTEM
    39					;*AND TO ONE WHO AGREES TO THESE LICENSE TERMS.  TITLE TO AND
    40					;*OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.
    41					;*
    42					;*THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
    43					;*NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
    44					;*EQUIPMENT CORPORATION.
    45					;*
    46					;*DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
    47					;*SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
    48
    49	000137					LOC	137
    50	000137	000000	000005		MCNVER,,DECVER
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 2
MAGTAP	MAC	22-May-78 09:05		PROGRAM PARAMETERS                                                                 SEQ 0033

    51					SUBTTL	PROGRAM PARAMETERS
    52
    53					;*ACCUMULATOR ASSIGNMENTS
    54
    55			000001			A=1				;GENERAL PURPOSE ACS
    56			000002			B=2
    57			000003			C=3
    58			000004			D=4
    59			000005			STAT=5				;OPEN BLOCK, STATUS
    60			000006			DEV=6				;DEVICE NAME
    61			000007			BUFFS=7				;BUFFER ADDRESS
    62			000010			CNT=10				;EXTENDED LOOKUP BLOCK, COUNT
    63			000011			PPN=11				;PROJECT, PROGRAMMER NUMBER
    64			000012			FN=12				;FILENAME
    65			000013			EXT=13				;EXTENSION
    66			000014			DAT=14				;DATE
    67			000015			SIZ=15				;SIZE
    68			000016			VER=16				;VERSION
    69			000017			P=17				;PUSH DOWN LIST POINTER
    70
    71					;*ASCII CHARACTER VALUES
    72
    73			000040			SPACE==" "
    74			000011			TAB==11
    75			000054			COMMA==","
    76			000012			LF==12
    77			000015			CR==15
    78			000013			VT==13
    79			000072			COLON==":"
    80			000073			SCOLON==";"
    81			000057			SLASH=="/"
    82			000077			QMARK=="?"
    83			000133			LB=="["
    84			000135			RB=="]"
    85			000056			PERIOD=="."
    86			000055			DASH=="-"
    87		064240	000000			CRLF==	BYTE(7)CR,LF
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 3
MAGTAP	MAC	22-May-78 09:05		PROGRAM PARAMETERS                                                                 SEQ 0034

    88					;*JOB DATA AREA DEFINITIONS
    89
    90			000044			.JBREL= 44
    91			000120			.JBSA= 120
    92			000121			.JBFF= 121
    93
    94					;*MAGTAP DEFINITIONS
    95
    96			001000			RCDSIZ==^D512			;SIZE OF RECORDS ON TAPE
    97			000014			NUMBUF==^D12			;NUMBER OF MAGTAPE BUFFERS
    98			001000			RDIADR==1000			;ADDRESS OF READ-IN PROGRAM
    99
   100		260740	000000			OPDEF	GO	[PUSHJ P,]
   101		263740	000000			OPDEF	RTN	[POPJ  P,]
   102		261740	000000			OPDEF	PUT	[PUSH  P,]
   103		262740	000000			OPDEF	GET	[POP   P,]
   104		047000	000154			OPDEF	TAPOP.	[CALLI 154]
   105
   106						DEFINE	PRINT	(MES) <
   107						OUTSTR	[ASCIZ \MES\]
   108						>
   109
   110					;*I/O CHANNELS
   111
   112			000000			CH0==0				;INPUT FILE CHANNEL
   113			000001			CH1==1				;INPUT CHANNEL
   114			000002			CH2==2				;WRITE CHANNEL
   115			000003			CH3==3				;WRITE CHANNEL
   116			000004			CH4==4				;MAGTAPE CHANNEL
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 4
MAGTAP	MAC	22-May-78 09:05		PROGRAM INITIALIZATION                                                             SEQ 0035

   117					SUBTTL	PROGRAM INITIALIZATION
   118
   119					;*START, INITIAL START OF PROGRAM
   120
   121	000140	047 00 0 00 000000 	START:	RESET				;RESET ALL IO CHANNELS
   122	000141	200 17 0 00 006571'		MOVE	P,[-40,,PLIST-1]	;SET UP PUSH LIST
   123	000142	201 00 0 00 004723 		MOVEI	PSHERR			;UNDERFLOW ERROR CALL
   124	000143	261 17 0 00 000000 		PUT
   125	000144	261 17 0 00 000000 		PUT
   126	000145	402 00 0 00 006507'		SETZM	ALOWLD#			;DON'T ALLOW WILD CHARACTERS
   127	000146	332 00 0 00 006544'		SKIPE	ONETIM#			;CHECK ONE TIME FLAG
   128	000147	254 00 0 00 000162 		JRST	DEFSWT			;BYPASS PRINTING TITLE
   129	000150	200 00 0 00 000044 		MOVE	.JBREL			;GET CORE ALLOCATED
   130	000151	202 00 0 00 006556'		MOVEM	SAVREL#			;SAVE IT
   131						PRINT	<
   132	000152	051 03 0 00 006572'	DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR   VERSION >
   133	000153	201 00 0 00 000000 		MOVEI	MCNVER			;GET EDIT NUMBER
   134	000154	260 17 0 00 003724 		GO	PNTOCT			;PRINT IN OCTAL
   135	000155	051 01 0 00 006605'		OUTCHR	[PERIOD]		;PRINT A PERIOD
   136	000156	201 00 0 00 000005 		MOVEI	DECVER			;GET VERSION NUMBER
   137	000157	260 17 0 00 003724 		GO	PNTOCT			;PRINT IN OCTAL
   138	000160	051 03 0 00 006606'		OUTSTR	[CRLF]			;END THE LINE
   139	000161	476 00 0 00 006544'		SETOM	ONETIM			;SET ONE TIME FLAG
   140
   141					;*DEFSWT, READ SWITCH.INI FOR DEFAULT SEARCH LIST
   142
   143	000162	205 00 0 00 446353 	DEFSWT:	MOVSI	'DSK'			;SET UP DEFAULT SEARCH LIST
   144	000163	202 00 0 00 006355 		MOVEM	SCHLST			;OF DSK
   145	000164	402 00 0 00 006356 		SETZM	SCHLST+1		;TO USER'S PPN
   146	000165	403 03 0 00 006357 		SETZB	C,SCHLST+2		;END OF TABLE, CLEAR OPTION NAME
   147	000166	260 17 0 00 004212 		GO	RDSWIT			;READ THE SWITCH.INI FILE
   148	000167	300 00 0 00 000000 		CAI				;DON'T CARE IF CAN'T FIND IT
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 5
MAGTAP	MAC	22-May-78 09:05		DEVICE SELECTION                                                                   SEQ 0036

   149					SUBTTL	DEVICE SELECTION
   150
   151					;*STARTA, ASK WHICH MAGTAPE DEVICE TO USE
   152
   153					STARTA:	PRINT	<
   154	000170	051 03 0 00 006607'	MAGTAPE	DEVICE - >
   155
   156	000171	200 00 0 00 006613'		MOVE	[INCHWL A]		;GET TERMINAL INPUT INSTRUCTION
   157	000172	202 00 0 00 006531'		MOVEM	INWXCT			;PUT IN WORD EXECUTED BY INWORD
   158	000173	402 00 0 00 006524'	TAPEI:	SETZM	DIRFLG#			;CLEAR DIRECTORY IN CORE FLAG
   159	000174	260 17 0 00 003613 		GO	INWORD			;INPUT FROM TERMINAL
   160	000175	306 01 0 00 000033 		CAIN	A,33			;CHECK IF AN ALTMODE TYPED
   161	000176	254 00 0 00 000253 		JRST	NULMAG			;YES, DON'T OPEN  MAGTAPE
   162	000177	332 00 0 00 000000 		SKIPE				;SKIP IF NO NAME TYPED
   163	000200	202 00 0 00 000210 		MOVEM	MAGDEV			;STORE AWAY NAME
   164	000201	306 01 0 00 000012 	MAGFLS:	CAIN	A,LF			;CHECK IF END OF LINE INPUT
   165	000202	254 00 0 00 000207 		JRST	MAGINT			;YES, GO OPEN MAGTAPE
   166	000203	260 17 0 00 003613 		GO	INWORD			;INPUT REST OF LINE
   167	000204	254 00 0 00 000201 		JRST	MAGFLS			;NO CHECK IF END
   168
   169	000205	201 00 0 00 000010 		MOVEI	10			;SET INITIAL STATUS BITS
   170	000206	542 00 0 00 000207 		HRRM	MAGINT			;TO SPECIFY IMAGE MODE
   171	000207	041 04 0 00 000010 	MAGINT:	INIT	CH4,10			;INIT TO IMAGE MODE
   172	000210	000000	000000		MAGDEV:	0				;MAGTAPE DEVICE NAME
   173	000211	006444	006444			XWD	BUF4,BUF4		;BUFFER ADDRESS, INPUT AND OUTPUT
   174	000212	254 00 0 00 000267 		JRST	NOMAG			;ERROR RETURN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 6
MAGTAP	MAC	22-May-78 09:05		DEVICE SELECTION                                                                   SEQ 0037

   175					;*CHECK DRIVE TYPE TO DETERMINE DENSITY
   176
   177	000213	072 04 0 00 000100 		MTDEC.	CH4,			;SET TO DIGITAL COMPATIBLE MODE
   178	000214	201 00 0 00 000003 		MOVEI	3			;SET DENSITY CODE TO 800 BPI
   179	000215	202 00 0 00 000262 		MOVEM	TAPEDC			;STORE IN MEMORY
   180	000216	201 00 0 00 000004 		MOVEI	CH4			;SET UP FOR CHANNEL 4
   181	000217	047 00 0 00 000112 		MTCHR.				;READ CHARACTERISTICS OF DEVICE
   182	000220	254 00 0 00 000275 		JRST	NOTMAG			;NOT A MAGNETIC TAPE
   183	000221	602 00 0 00 000020 		TRNE	1B31			;CHECK IF 7-TRACK
   184	000222	254 00 0 00 000263 		JRST	DEN800			;7-TRACK, MUST BE 800 BPI
   185						MOVE	[XWD 2,[1002		;READ CONTROLLER TYPE CODE
   186	000223	200 00 0 00 006616'				CH4   ]]	;FOR CHANNEL 4
   187	000224	047 00 0 00 000154 		TAPOP.				;OBTAIN THE CODE
   188	000225	254 00 0 00 000263 		JRST	DEN800			;NO TAPOP.S, CAN'T BE 1600 BPI
   189	000226	321 00 0 00 000231 		JUMPL	ASKDEN			;IF TYPE NUMBER
   190	000227	307 00 0 00 000002 		CAIG	2			;  IS 0, 1 OR 2, CONTROLLER IS TM10 OR TC10
   191	000230	254 00 0 00 000247 		JRST	TMDEN			;  SO USE ONLY 800 BPI
   192
   193	000231	051 03 0 00 006617'	ASKDEN:	PRINT	<WHAT DENSITY? (800 OR 1600) - >
   194	000232	260 17 0 00 003613 		GO	INWORD			;INPUT FROM TERMINAL
   195	000233	306 01 0 00 000012 		CAIN	A,LF			;TERMINATE WITH LF?
   196	000234	254 00 0 00 000242 		JRST	DECODE			;YES, DECODE ANSWER
   197	000235	261 17 0 00 000000 		PUT	0			;SAVE ANSWER
   198	000236	260 17 0 00 003613 		GO	INWORD			;INPUT SOME MORE
   199	000237	302 01 0 00 000012 		CAIE	A,LF			;LINE FEED NOW?
   200	000240	254 00 0 00 000236 		JRST	.-2			;NO, KEEP READING
   201	000241	262 17 0 00 000000 		GET	0			;GET ANSWER BACK
   202	000242	200 02 0 00 000453 	DECODE:	MOVE	B,DENSITY		;GET POINTER TO TABLE
   203	000243	260 17 0 00 003125 		GO	COMPARE			;COMPARE ANSWER WITH TABLE
   204	000244	254 00 0 00 000303 		JRST	NOTDEN			;DIDN'T COMPARE
   205	000245	332 00 0 00 000002 		SKIPE	B			;SKIP IF 800 SELECTED
   206	000246	350 00 0 00 000262 		AOS	TAPEDC			;CHANGE DENSITY CODE TO 1600 BPI
   207	000247	200 00 0 00 006626'	TMDEN:	MOVE	[XWD 3,TAPEDN]		;GET DENSITY CODE POINTER
   208	000250	047 00 0 00 000154 		TAPOP.				;SET DENSITY
   209	000251	254 00 0 00 000306 		JRST	NO1600			;ERROR
   210	000252	254 00 0 00 000314 		JRST	COMM			;NOW ASK FOR COMMAND
   211
   212	000253	260 17 0 00 003613 	NULMAG:	GO	INWORD			;INPUT TO END OF LINE
   213	000254	302 01 0 00 000012 		CAIE	A,LF			;CHECK IF LINE FEED
   214	000255	254 00 0 00 000253 		JRST	NULMAG			;NOT YET
   215	000256	402 00 0 00 000210 		SETZM	MAGDEV			;CLEAR MAGTAPE DEVICE NAME
   216	000257	254 00 0 00 000314 		JRST	COMM			;GO GET NEXT COMMAND
   217
   218	000260	000000	002001		TAPEDN:	2001				;TAPOP. CODE TO SET DENSITY
   219	000261	000000	000004			CH4				;MAGTAPE CHANNEL
   220	000262	000000	000003		TAPEDC:	3				;3 = 800 BPI, 4 = 1600 BPI
   221
   222	000263	201 00 0 00 000600 	DEN800:	MOVEI	600			;GET 800 BPI IN STATUS BITS
   223	000264	436 00 0 00 000207 		ORM	MAGINT			;SET INTO STATUS WORD
   224	000265	060 04 1 00 000207 		SETSTS	CH4,@MAGINT		;SET NEW STATUS
   225	000266	254 00 0 00 000314 		JRST	COMM			;GO GET NEXT COMMAND
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 7
MAGTAP	MAC	22-May-78 09:05		DEVICE SELECTION                                                                   SEQ 0038

   226					;*MAGTAPE DEVICE SELECTION ERROR MESSAGES
   227
   228	000267	260 17 0 00 000311 	NOMAG:	GO	COCLR			;CLEAR CONTROL O
   229	000270	051 01 0 00 006627'		OUTCHR	["?"]			;TYPE A QUESTION MARK
   230	000271	200 00 0 00 000210 		MOVE	MAGDEV			;GET MAGTAPE NAME
   231	000272	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
   232	000273	051 03 0 00 006630'		PRINT	< NOT AVAILABLE>
   233	000274	254 00 0 00 000170 		JRST	STARTA			;GO ASK AGAIN
   234
   235	000275	260 17 0 00 000311 	NOTMAG:	GO	COCLR			;CLEAR CONTROL O
   236	000276	051 01 0 00 006627'		OUTCHR	["?"]			;TYPE A QUESTION MARK
   237	000277	200 00 0 00 000210 		MOVE	MAGDEV			;GET DEVICE NAME
   238	000300	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
   239	000301	051 03 0 00 006633'		PRINT	< NOT A MAGNETIC TAPE DEVICE>
   240	000302	254 00 0 00 000170 		JRST	STARTA			;ASK AGAIN
   241
   242	000303	260 17 0 00 000311 	NOTDEN:	GO	COCLR			;CLEAR CONTROL O
   243						PRINT	<?
   244	000304	051 03 0 00 006641'	>
   245	000305	254 00 0 00 000231 		JRST	ASKDEN			;ASK AGAIN
   246
   247	000306	260 17 0 00 000311 	NO1600:	GO	COCLR			;CLEAR CONTROL O
   248						PRINT	<? CAN'T SET DENSITY WITH TAPOP. UUO
   249	000307	051 03 0 00 006642'	>
   250	000310	254 00 0 00 000231 		JRST	ASKDEN			;ASK AGAIN
   251
   252					;*CONTROL O CLEAR
   253
   254	000311	051 13 0 00 000000 	COCLR:	TTCALL	13,0			;CLEAR CONTROL O
   255	000312	255 00 0 00 000000 		JFCL
   256	000313	263 17 0 00 000000 		RTN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 8
MAGTAP	MAC	22-May-78 09:05		COMMAND DECODER                                                                    SEQ 0039

   257					SUBTTL	COMMAND DECODER
   258
   259					;*COMM, ASK FOR A COMMAND
   260
   261	000314	200 17 0 00 006571'	COMM:	MOVE	P,[-40,,PLIST-1]	;SET UP PUSH LIST
   262	000315	201 00 0 00 004723 		MOVEI	PSHERR			;UNDERFLOW ERROR CALL
   263	000316	261 17 0 00 000000 		PUT
   264	000317	261 17 0 00 000000 		PUT
   265	000320	071 00 0 00 000000 		RELEASE				;RELEASE ALL DEVICES BUT MAGTAPE
   266	000321	071 01 0 00 000000 		RELEASE	CH1,
   267	000322	071 02 0 00 000000 		RELEASE	CH2,
   268	000323	071 03 0 00 000000 		RELEASE	CH3,
   269	000324	402 00 0 00 006507'		SETZM	ALOWLD#			;DON'T ALLOW WILD CHARACTERS
   270	000325	402 00 0 00 006536'		SETZM	LSTSW#			;CLEAR LIST SWITCH FLAG
   271	000326	402 00 0 00 006570'		SETZM	WRDIR#			;CLEAR DIRECTORY IN CORE FLAG
   272	000327	260 17 0 00 000311 		GO	COCLR			;CLEAR CONTROL O
   273						PRINT	<
   274	000330	051 03 0 00 006652'	COMMAND - >				;ASK FOR COMMAND
   275	000331	554 00 0 00 000120 		HLRZ	.JBSA			;GET LOWEST FIRST FREE
   276	000332	332 00 0 00 006524'		SKIPE	DIRFLG			;SKIP IF DIRECTORY NOT IN CORE
   277	000333	200 00 0 00 006540'		MOVE	MAGDRE#			;GET END OF DIRECTORY ADDRESS
   278	000334	202 00 0 00 000121 		MOVEM	.JBFF			;SET IN JOB DATA AREA
   279	000335	315 00 0 00 006556'		CAMGE	SAVREL			;DON'T REDUCE CORE BELOW ORIGINAL
   280	000336	200 00 0 00 006556'		MOVE	SAVREL			;GET ORIGINAL CORE SIZE
   281	000337	047 00 0 00 000011 		CORE				;REDUCE TO ORIGINAL VALUE
   282	000340	300 00 0 00 000000 		CAI				;IGNORE ERROR
   283	000341	201 10 0 00 000006 		MOVEI	CNT,6			;SET COUNT TO 6 FOR EXTENDED LOOKUPS
   284	000342	201 05 0 00 000010 		MOVEI	STAT,10			;SET DATA MODE TO IMAGE
   285	000343	200 00 0 00 006613'		MOVE	[INCHWL A]		;GET TERMINAL INPUT INSTRUCTION
   286	000344	202 00 0 00 006531'		MOVEM	INWXCT#			;PUT IN LOCATION EXECUTED BY INWORD
   287	000345	260 17 0 00 003613 		GO	INWORD			;GET COMMAND
   288	000346	200 02 0 00 000370 		MOVE	B,COMAND		;GET COMMAND LIST ADDRESS
   289	000347	260 17 0 00 003125 		GO	COMPARE			;COMPARE COMMAND TO LIST
   290	000350	254 00 0 00 000352 		JRST	BADCMD			;DOES NOT MATCH
   291	000351	254 00 1 02 000407 		JRST	@CMDGO(B)		;GO TO COMMAND CALLED
   292
   293					;*BADCMD, BAD COMMAND WAS INPUT
   294
   295	000352	326 00 0 00 000361 	BADCMD:	JUMPN	BADCMI			;WAS ANY COMMAND TYPED?
   296	000353	306 01 0 00 000012 		CAIN	A,LF			;NO, JUST A LINE FEED?
   297	000354	254 00 0 00 000314 		JRST	COMM			;YES, ASK AGAIN
   298	000355	260 17 0 00 000311 		GO	COCLR			;CLEAR CONTROL O
   299	000356	051 01 0 00 006627'		OUTCHR	["?"]			;PRINT A QUESTION MARK
   300	000357	051 01 0 00 000001 		OUTCHR	A			;PRINT BAD COMMAND
   301	000360	254 00 0 00 000363 		JRST	BADCMX
   302	000361	051 01 0 00 006627'	BADCMI:	OUTCHR	["?"]			;PRINT A QUESTION MARK
   303	000362	260 17 0 00 003765 		GO	PNTSIX			;PRINT WORD INPUT
   304	000363	051 01 0 00 006627'	BADCMX:	OUTCHR	["?"]			;PRINT ANOTHER QUESTION MARK
   305	000364	306 01 0 00 000012 	BADCMF:	CAIN	A,12			;LINE FEED INPUT?
   306	000365	254 00 0 00 000314 		JRST	COMM			;YES, ASK FOR ANOTHER COMMAND
   307	000366	260 17 0 00 003613 		GO	INWORD			;INPUT REST OF LINE
   308	000367	254 00 0 00 000364 		JRST	BADCMF			;CHECK IF THIS IS ALL
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 9
MAGTAP	MAC	22-May-78 09:05		COMMAND DECODER                                                                    SEQ 0040

   309					;*COMAND, COMMAND COMPARE TABLE
   310
   311	000370	777762	000371		COMAND:	XWD .-COMNDE,.+1
   312	000371	50 45 54 60 00 00 		SIXBIT	"HELP"
   313	000372	55 41 53 45 00 00 		SIXBIT	"MAKE"
   314	000373	47 45 64 00 00 00 		SIXBIT	"GET"
   315	000374	43 50 45 43 53 00 		SIXBIT	"CHECK"
   316	000375	66 45 62 51 46 71 		SIXBIT	"VERIFY"
   317	000376	44 51 62 45 43 64 		SIXBIT	"DIRECT"
   318	000377	62 45 67 51 56 44 		SIXBIT	"REWIND"
   319	000400	65 56 54 57 41 44 		SIXBIT	"UNLOAD"
   320	000401	45 70 51 64 00 00 		SIXBIT	"EXIT"
   321	000402	63 45 41 62 43 50 		SIXBIT	"SEARCH"
   322	000403	57 60 64 51 57 56 		SIXBIT	"OPTION"
   323	000404	46 44 51 62 45 43 		SIXBIT	"FDIREC"
   324	000405	56 65 55 42 45 62 		SIXBIT	"NUMBER"
   325	000406	64 41 60 45 00 00 		SIXBIT	"TAPE"
   326			000406		COMNDE=.-1
   327
   328					;*CMDGO, COMMAND DISPATCH TABLE
   329
   330	000407	000000	005052		CMDGO:	HELP				;ADDRESSES OF COMMAND ROUTINES
   331	000410	000000	000621			MAKE
   332	000411	000000	001777			GETCOM
   333	000412	000000	001774			CHEK
   334	000413	000000	001776			VERIFY
   335	000414	000000	001645			DIRECT
   336	000415	000000	001606			REWIND
   337	000416	000000	001613			UNLOAD
   338	000417	000000	001615			LEAVE
   339	000420	000000	001640			SRCH
   340	000421	000000	001624			OPTION
   341	000422	000000	001647			FDIR
   342	000423	000000	002547			NUMBER
   343	000424	000000	001642			TAPEIN
   344
   345	000425	306 01 0 00 000012 	CMDERR:	CAIN	A,LF			;END OF LINE INPUT?
   346	000426	254 00 0 00 000431 		JRST	CMDERP			;YES, GO PRINT
   347	000427	260 17 0 00 003613 		GO	INWORD			;NO, INPUT MORE CHARACTERS
   348	000430	254 00 0 00 000425 		JRST	CMDERR
   349	000431	260 17 0 00 000311 	CMDERP:	GO	COCLR			;CLEAR CONTROL O
   350	000432	051 03 0 00 006655'		PRINT	<? COMMAND ERROR>	;PRINT ERROR MESSAGE
   351	000433	254 00 0 00 000314 		JRST	COMM			;ASK AGAIN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 10
MAGTAP	MAC	22-May-78 09:05		COMMAND DECODER                                                                    SEQ 0041

   352					;*SWPROC, COMMAND SWITCH PROCESS
   353
   354	000434	261 17 0 00 000002 	SWPROC:	PUT	B
   355	000435	260 17 0 00 003613 		GO	INWORD			;GET SWITCH COMMAND
   356	000436	200 02 0 00 000442 		MOVE	B,SWCMD			;GET SWITCH LIST ADDRESS
   357	000437	260 17 0 00 003125 		GO	COMPARE			;COMPARE COMMAND TO LIST
   358	000440	254 00 0 00 000352 		JRST	BADCMD			;DOES NOT MATCH
   359	000441	254 00 1 02 000446 		JRST	@SWGO(B)		;GO TO SWITCH COMMAND CALLED
   360
   361	000442	777775	000443		SWCMD:	XWD	.-SWCMDE,.+1
   362	000443	54 51 63 64 00 00 		SIXBIT	"LIST"
   363	000444	47 62 57 65 60 00 		SIXBIT	"GROUP"
   364	000445	64 71 60 45 00 00 		SIXBIT	"TYPE"
   365			000445		SWCMDE=.-1
   366
   367	000446	000000	000451		SWGO:	SWLIST				;ADDRESS OF SWITCH COMMAND ROUTINES
   368	000447	000000	000456			SWGRP
   369	000450	000000	000466			SWTYPE
   370
   371	000451	476 00 0 00 006536'	SWLIST:	SETOM	LSTSW			;SET LISTING SWITCH
   372	000452	254 00 0 00 000503 		JRST	SWEXIT
   373
   374					;*DENSITY, DENSITY COMPARE TABLE
   375
   376	000453	777776	000454		DENSITY:XWD -2,.+1			;POINTER TO TABLE
   377	000454	30 20 20 00 00 00 		SIXBIT	"800"
   378	000455	21 26 20 20 00 00 		SIXBIT	"1600"
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 11
MAGTAP	MAC	22-May-78 09:05		COMMAND DECODER                                                                    SEQ 0042

   379					;*SWGRP, GET-CHECK-VERIFY ETC. COMMAND /GROUP PROCESS
   380
   381	000456	302 01 0 00 000072 	SWGRP:	CAIE	A,":"			;/GROUP SW END WITH COLON
   382	000457	254 00 0 00 000352 		JRST	BADCMD			;NO, ERROR
   383	000460	260 17 0 00 003613 		GO	INWORD			;GET ARGUMENT
   384	000461	200 02 0 00 000560 		MOVE	B,GPCMD			;GET SWITCH LIST ADDRESS
   385	000462	260 17 0 00 003125 		GO	COMPARE			;COMPARE COMMAND TO LIST
   386	000463	254 00 0 00 000352 		JRST	BADCMD			;DOES NOT MATCH
   387	000464	202 02 0 00 006526'		MOVEM	B,GPNBR			;SAVE GROUP NUMBER
   388	000465	254 00 0 00 000503 		JRST	SWEXIT			;TO SWPROC EXIT
   389
   390					;*SWTYPE, GET-CHECK-VERIFY ETC. COMMAND /TYPE PROCESS
   391
   392	000466	302 01 0 00 000072 	SWTYPE:	CAIE	A,":"			;/TYPE SW END WITH COLON
   393	000467	254 00 0 00 000352 		JRST	BADCMD			;NO, ERROR
   394	000470	260 17 0 00 003613 		GO	INWORD			;GET ARGUMENT
   395	000471	200 02 0 00 000511 		MOVE	B,TYPCMD		;GET SWITCH LIST ADDRESS
   396	000472	260 17 0 00 003125 		GO	COMPARE			;COMPARE COMMAND TO LIST
   397	000473	254 00 0 00 000352 		JRST	BADCMD			;DOES NOT MATCH
   398	000474	306 02 0 00 000000 		CAIN	B,0			;/TYPE:ALL ?
   399	000475	254 00 0 00 000502 		JRST	.+5			;YES
   400	000476	201 00 0 00 000001 		MOVEI	0,1			;CHANGE TYPE INTO BIT POSITION
   401	000477	370 00 0 00 000002 		SOS	B
   402	000500	242 00 0 02 000000 		LSH	0,(B)
   403	000501	436 00 0 00 006562'		ORM	0,TYPNBR		;OR TYPE BIT INTO TYPE NUMBER
   404	000502	254 00 0 00 000503 		JRST	SWEXIT			;TO SWPROC EXIT
   405
   406					;*SWEXIT, SWITCH PROCESS EXIT
   407
   408	000503	306 01 0 00 000057 	SWEXIT:	CAIN	A,"/"			;DID THIS SW END WITH SLASH ?
   409	000504	254 00 0 00 000435 		JRST	SWPROC+1		;YES, PROCESS ANOTHER SWITCH
   410	000505	302 01 0 00 000012 		CAIE	A,LF			;MUST BE LF THEN
   411	000506	254 00 0 00 000352 		JRST	BADCMD			;NO, ERROR
   412
   413	000507	262 17 0 00 000002 		GET	B			;OK, RETURN
   414	000510	263 17 0 00 000000 		RTN
   415
   416	000511	777772	000512		TYPCMD:	XWD	.-TYPCME,.+1
   417	000512	41 54 54 00 00 00 		SIXBIT	"ALL"
   418	000513	45 70 45 43 00 00 		SIXBIT	"EXEC"
   419	000514	65 63 45 62 00 00 		SIXBIT	"USER"
   420	000515	63 60 45 43 51 41 		SIXBIT	"SPECIA"
   421	000516	55 57 56 51 64 57 		SIXBIT	"MONITO"
   422	000517	65 56 44 45 46 00 		SIXBIT	"UNDEF"
   423			000517		TYPCME=.-1
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 12
MAGTAP	MAC	22-May-78 09:05		COMMAND DECODER                                                                    SEQ 0043

   424					;*SWINP, MAKE COMMAND /GROUP SWITCH PROCESS
   425
   426	000520	261 17 0 00 000001 	SWINP:	PUT	A
   427	000521	261 17 0 00 000002 		PUT	B
   428	000522	261 17 0 00 006531'		PUT	INWXCT			;SAVE PRESENT INPUT INST
   429	000523	200 02 0 00 006661'		MOVE	B,[GO INWINP]
   430	000524	202 02 0 00 006531'		MOVEM	B,INWXCT		;SETUP TO READ FROM INP FILE
   431	000525	260 17 0 00 003613 		GO	INWORD			;GET SWITCH COMMAND
   432	000526	312 00 0 00 006662'		CAME	[SIXBIT/GROUP/]
   433	000527	254 00 0 00 003264 		JRST	SWIERR			;ONLY SW IS /GROUP:
   434	000530	302 01 0 00 000072 		CAIE	A,":"
   435	000531	254 00 0 00 003264 		JRST	SWIERR
   436
   437	000532	260 17 0 00 003613 		GO	INWORD			;GET ARGUMENT
   438	000533	202 01 0 00 006550'		MOVEM	A,SAVA#			;SAVE CMD TERMINATOR
   439	000534	200 02 0 00 000560 		MOVE	B,GPCMD			;GET SWITCH LIST ADDRESS
   440	000535	260 17 0 00 003125 		GO	COMPARE			;COMPARE COMMAND TO LIST
   441	000536	254 00 0 00 003264 		JRST	SWIERR			;DOES NOT MATCH
   442	000537	202 02 0 00 006526'		MOVEM	B,GPNBR			;SAVE GROUP NUMBER
   443
   444	000540	336 00 0 00 006570'		SKIPN	WRDIR			;WRITING .DIR FILE ?
   445	000541	254 00 0 00 000553 		JRST	SWINP1			;NO
   446
   447	000542	261 17 0 00 000000 		PUT	0
   448	000543	200 01 0 00 006665'		MOVE	A,[POINT 7,[ASCIZ "/GROUP:"]]
   449	000544	134 00 0 00 000001 		ILDB	A			;PUT COMMAND IN .DIR FILE
   450	000545	322 00 0 00 000550 		JUMPE	.+3
   451	000546	260 17 0 00 004144 		GO	WRCHAR
   452	000547	254 00 0 00 000544 		JRST	.-3
   453
   454	000550	262 17 0 00 000000 		GET	0
   455	000551	201 01 0 00 000006 		MOVEI	A,6
   456	000552	260 17 0 00 004201 		GO	OUTWRD			;PUT ARGUMENT IN .DIR FILE
   457
   458	000553	262 17 0 00 006531'	SWINP1:	GET	INWXCT			;RESTORE INPUT INST
   459	000554	262 17 0 00 000002 		GET	B
   460	000555	262 17 0 00 000001 		GET	A
   461	000556	200 00 0 00 006550'		MOVE	SAVA			;PUT COMMAND TERMINATOR IN 0
   462	000557	254 00 0 00 003237 		JRST	RDONW			;PUT REST OF LINE IN .DIR FILE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 13
MAGTAP	MAC	22-May-78 09:05		COMMAND DECODER                                                                    SEQ 0044

   463					;*GPCMD, MAKE /GROUP COMMAND TABLE
   464
   465	000560	777740	000561		GPCMD:	XWD	.-GPCMDE,.+1
   466	000561	41 54 54 00 00 00 		SIXBIT	"ALL"		;0
   467	000562	44 51 41 63 65 60 		SIXBIT	"DIASUP"	;1
   468	000563	53 41 43 60 65 00 		SIXBIT	"KACPU"		;2
   469	000564	53 51 43 60 65 00 		SIXBIT	"KICPU"		;3
   470	000565	53 54 43 60 65 00 		SIXBIT	"KLCPU"		;4
   471	000566	53 54 44 51 41 47 		SIXBIT	"KLDIAG"	;5
   472	000567	53 54 64 51 43 00 		SIXBIT	"KLTIC"		;6
   473	000570	53 54 51 63 57 00 		SIXBIT	"KLISO"		;7
   474	000571	53 54 41 44 51 41 		SIXBIT	"KLADIA"	;8
   475	000572	53 54 41 64 51 43 		SIXBIT	"KLATIC"	;9
   476	000573	53 54 41 51 63 57 		SIXBIT	"KLAISO"	;10
   477	000574	53 54 42 44 51 41 		SIXBIT	"KLBDIA"	;11
   478	000575	53 54 42 64 51 43 		SIXBIT	"KLBTIC"	;12
   479	000576	53 54 42 51 63 57 		SIXBIT	"KLBISO"	;13
   480	000577	55 45 55 57 62 71 		SIXBIT	"MEMORY"	;14
   481	000600	64 41 60 45 00 00 		SIXBIT	"TAPE"		;15
   482	000601	44 51 63 53 00 00 		SIXBIT	"DISK"		;16
   483	000602	65 56 51 62 45 43 		SIXBIT	"UNIREC"	;17
   484	000603	43 57 55 55 65 56 		SIXBIT	"COMMUN"	;18
   485	000604	63 71 63 45 70 62 		SIXBIT	"SYSEXR"	;19
   486	000605	46 45 44 51 41 47 		SIXBIT	"FEDIAG"	;20
   487	000606	46 45 63 65 60 60 		SIXBIT	"FESUPP"	;21
   488	000607	46 54 44 63 62 66 		SIXBIT	"FLDSRV"	;22
   489	000610	63 60 45 43 51 41 		SIXBIT	"SPECIA"	;23
   490	000611	64 57 60 63 21 20 		SIXBIT	"TOPS10"	;24
   491	000612	64 57 60 63 22 20 		SIXBIT	"TOPS20"	;25
   492	000613	65 56 44 45 46 21 		SIXBIT	"UNDEF1"	;26
   493	000614	65 56 44 45 46 22 		SIXBIT	"UNDEF2"	;27
   494	000615	65 56 44 45 46 23 		SIXBIT	"UNDEF3"	;28
   495	000616	65 56 44 45 46 24 		SIXBIT	"UNDEF4"	;29
   496	000617	65 56 44 45 46 25 		SIXBIT	"UNDEF5"	;30
   497	000620	65 56 44 45 46 26 		SIXBIT	"UNDEF6"	;31
   498			000620		GPCMDE=.-1
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 14
MAGTAP	MAC	22-May-78 09:05		MAKE COMMAND                                                                       SEQ 0045

   499					SUBTTL	MAKE COMMAND
   500
   501					;*MAKE, MAKE COMMAND WAS TYPED
   502					;*	INPUT ARGUMENTS WITH COMMAND
   503
   504	000621	402 00 0 00 006524'	MAKE:	SETZM	DIRFLG			;CLEAR DIRECTORY IN CORE FLAG
   505	000622	402 00 0 00 006526'		SETZM	GPNBR#			;SET GROUP NUMBER TO ZERO
   506	000623	402 00 0 00 006562'		SETZM	TYPNBR#			;SET TYPE NUMBER TO ZERO
   507	000624	554 02 0 00 000120 		HLRZ	B,.JBSA			;RECLAIM CORE FROM DIRECTORY AREA
   508	000625	202 02 0 00 000121 		MOVEM	B,.JBFF
   509	000626	205 00 0 00 446353 		MOVSI	'DSK'			;SET UP DEFAULT INPUT FILE SPECS
   510	000627	202 00 0 00 006346 		MOVEM	INDEVN			;DEVICE
   511	000630	200 00 0 00 006666'		MOVE	['MAGTAP']
   512	000631	202 00 0 00 006350 		MOVEM	INFILN			;FILE NAME
   513	000632	205 00 0 00 515660 		MOVSI	'INP'
   514	000633	202 00 0 00 006351 		MOVEM	INFILE			;EXTENSION
   515	000634	402 00 0 00 006354 		SETZM	INFILP			;PPN
   516	000635	306 01 0 00 000012 		CAIN	A,LF			;CHECK IF TERMINATOR IS LINE FEED
   517	000636	254 00 0 00 000706 		JRST	MKINDD			;YES, GO READ INDIRECT FILE
   518	000637	306 01 0 00 000100 		CAIN	A,"@"			;IS INDIRECT SPECIFIED ?
   519	000640	254 00 0 00 000646 		JRST	MKIND			;YES
   520	000641	260 17 0 00 003613 		GO	INWORD			;INPUT ANOTHER WORD
   521	000642	306 01 0 00 000012 		CAIN	A,LF			;LINE FEED
   522	000643	322 00 0 00 000706 		JUMPE	MKINDD			;AND NO FILE NAMED
   523	000644	302 01 0 00 000100 		CAIE	A,"@"			;SKIP IF INDIRECT SPECIFIED
   524	000645	254 00 0 00 000742 		JRST	MAKNOI			;GO INPUT FILE NAMES
   525
   526					;*MKIND, MAKE COMMAND INDIRECT TO EXISTING FILE
   527
   528	000646	260 17 0 00 003613 	MKIND:	GO	INWORD			;INPUT NEXT WORD
   529	000647	302 01 0 00 000072 		CAIE	A,COLON			;TERMINATE A COLON?
   530	000650	254 00 0 00 000654 		JRST	MKFILN			;NO, LOAD FILE NAME
   531	000651	322 00 0 00 000425 		JUMPE	CMDERR			;ERROR IF NO DEVICE NAMED
   532	000652	202 00 0 00 006346 		MOVEM	INDEVN			;LOAD INTO DEVICE NAME
   533	000653	254 00 0 00 000646 		JRST	MKIND			;INPUT NEXT WORD
   534	000654	332 00 0 00 000000 	MKFILN:	SKIPE				;SKIP IF NO FILE NAMED
   535	000655	202 00 0 00 006350 		MOVEM	INFILN			;LOAD FILE NAME
   536	000656	302 01 0 00 000056 		CAIE	A,PERIOD		;PERIOD TYPED?
   537	000657	254 00 0 00 000662 		JRST	MKPPN			;NO
   538	000660	260 17 0 00 003613 		GO	INWORD			;GET EXTENSION
   539	000661	202 00 0 00 006351 		MOVEM	INFILE			;LOAD EXTENSION
   540	000662	302 01 0 00 000133 	MKPPN:	CAIE	A,LB			;LEFT BRACKET TYPED?
   541	000663	254 00 0 00 000677 		JRST	MKTERM			;NO
   542	000664	260 17 0 00 003712 		GO	INNUM			;INPUT OCTAL NUMBER
   543	000665	302 01 0 00 000054 		CAIE	A,COMMA			;TERM A COMMA?
   544	000666	254 00 0 00 000425 		JRST	CMDERR			;NO, ERROR
   545	000667	506 00 0 00 006354 		HRLM	INFILP			;LOAD PROJECT NUMBER
   546	000670	260 17 0 00 003712 		GO	INNUM			;INPUT ANOTHER NUMBER
   547	000671	542 00 0 00 006354 		HRRM	INFILP			;LOAD PROGRAMMER NUMBER
   548	000672	306 01 0 00 000135 		CAIN	A,RB			;RIGHT BRACKET INPUT?
   549	000673	254 00 0 00 000646 		JRST	MKIND			;YES, INPUT MORE
   550	000674	302 01 0 00 000012 		CAIE	A,LF			;END OF LINE?
   551	000675	254 00 0 00 000425 		JRST	CMDERR			;NO, ERROR
   552	000676	254 00 0 00 000706 		JRST	MKINDD			;YES, INPUT DONE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 15
MAGTAP	MAC	22-May-78 09:05		MAKE COMMAND                                                                       SEQ 0046

   553					;*MKTERM, COMPARE EXISTING INPUT FILE WITH REQUIRED FORMAT
   554
   555	000677	306 01 0 00 000057 	MKTERM:	CAIN	A,"/"			;INPUT A SLASH ?
   556	000700	260 17 0 00 000434 		GO	SWPROC			;YES, PROCESS SWITCH
   557	000701	302 01 0 00 000040 		CAIE	A,SPACE			;INPUT A SPACE
   558	000702	306 01 0 00 000011 		CAIN	A,TAB			;OR TAB?
   559	000703	254 00 0 00 000646 		JRST	MKIND			;YES, GO CONTINUE INPUT
   560	000704	302 01 0 00 000012 		CAIE	A,LF			;END OF LINE?
   561	000705	254 00 0 00 000425 		JRST	CMDERR			;NO, UNEXPECTED CHARACTER
   562	000706	201 00 0 00 006430 	MKINDD:	MOVEI	BUF0			;SET UP BUFFER ADDRESS
   563	000707	202 00 0 00 006347 		MOVEM	INDEVB			;FOR INPUT FILE
   564	000710	050 00 0 00 006345 		OPEN	INDEV			;OPEN DISK ON CHANNEL 0
   565	000711	254 00 0 00 004621 		JRST	OPENFI			;AND READ INPUT FILE
   566	000712	200 00 0 00 006354 		MOVE	INFILP			;GET P,PN
   567	000713	202 00 0 00 006353 		MOVEM	INPPN			;PUT IN LOOKUP BLOCK
   568	000714	076 00 0 00 006350 		LOOKUP	INFILN			;LOOK UP INPUT FILE
   569	000715	254 00 0 00 004631 		JRST	LOOKFI			;ERROR RETURN, CAN'T FIND IT
   570	000716	056 00 0 00 000000 		IN				;SET UP BUFFERS
   571	000717	201 01 0 00 000000 		MOVEI	A,0			;FILE NUMBER
   572	000720	201 02 0 00 005040 		MOVEI	B,NAMTAB		;ADR OF NAME TABLE
   573	000721	260 17 0 00 003163 	CHKINF:	GO	RDNAME			;READ A FILE NAME FROM INPUT FILE
   574	000722	254 00 0 00 003323 		JRST	INFILR			;FILE ERROR
   575	000723	316 12 0 02 000000 		CAMN	FN,(B)			;COMPARE FILE NAMES
   576	000724	312 13 0 02 000001 		CAME	EXT,1(B)		;AND EXTENSIONS
   577	000725	254 00 0 00 003337 		JRST	INFILM			;THEY DON'T MATCH
   578	000726	271 02 0 00 000002 		ADDI	B,2			;INCREMENT TO NEXT NAME
   579	000727	302 01 0 00 000004 		CAIE	A,4			;FIVE FILES CHECKED?
   580	000730	344 01 0 00 000721 		AOJA	A,CHKINF		;NO, CHECK MORE
   581	000731	271 01 0 00 000001 		ADDI	A,1			;CHECK THE "INP" FILE
   582	000732	260 17 0 00 003163 		GO	RDNAME			;READ NEXT FILE NAME
   583	000733	254 00 0 00 003323 		JRST	INFILR			;ERROR ON EOF
   584	000734	312 12 0 00 006350 		CAME	FN,INFILN		;CHECK FILE NAME WITH THIS FILE
   585	000735	254 00 0 00 003337 		JRST	INFILM			;DON'T COMPARE
   586	000736	510 00 0 00 006351 		HLLZ	INFILE			;GET EXTENSION ONLY
   587	000737	312 00 0 00 000013 		CAME	EXT			;COMPARE
   588	000740	254 00 0 00 003337 		JRST	INFILM			;DON'T COMPARE
   589
   590	000741	254 00 0 00 000774 		JRST	MKRDI			;INPUT FILE OK, GO MAKE RDI FILE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 16
MAGTAP	MAC	22-May-78 09:05		MAKE COMMAND                                                                       SEQ 0047

   591					;*MAKNOI, INPUT LIST OF FILE NAMES FROM COMMAND
   592					;*	MAKE A FILE OF INFORMATION CALLED MAGTAP.TMP
   593
   594	000742	306 01 0 00 000057 	MAKNOI:	CAIN	A,"/"			;CHECK IF TERM A SLASH
   595	000743	254 00 0 00 000425 		JRST	CMDERR			;YES, ERROR
   596	000744	306 01 0 00 000012 		CAIN	A,LF			;CHECK IF TERM A LF
   597	000745	254 00 0 00 000425 		JRST	CMDERR			;YES, ERROR
   598	000746	205 02 0 00 645560 		MOVSI	B,'TMP'			;GET TMP EXTENSION
   599	000747	202 02 0 00 006351 		MOVEM 	B,INFILE		;STORE IN EXTENSION WORD
   600	000750	260 17 0 00 003371 		GO	INLIST			;INPUT LIST OF FILE NAMES
   601	000751	306 01 0 00 000057 		CAIN	A,"/"			;WAS TERM A SLASH ?
   602	000752	260 17 0 00 000434 		GO	SWPROC			;YES, PROCESS SWITCH COMMAND
   603						PRINT	<WRITING FILE MAGTAP.TMP
   604	000753	051 03 0 00 006667'	>
   605	000754	201 00 0 00 006441 		MOVEI	BUF3			;GET BUFFER ADR
   606	000755	206 00 0 00 006347 		MOVSM	INDEVB			;SET UP FOR OUTPUT
   607	000756	050 03 0 00 006345 		OPEN	CH3,INDEV		;OPEN DISK FOR OUTPUT
   608	000757	254 00 0 00 004621 		JRST	OPENFI			;ERROR
   609	000760	200 00 0 00 006354 		MOVE	INFILP			;GET P,PN
   610	000761	202 00 0 00 006353 		MOVEM	INPPN			;PUT IN LOOKUP BLOCK
   611	000762	077 03 0 00 006350 		ENTER	CH3,INFILN		;ENTER FILE
   612	000763	254 00 0 00 004626 		JRST	ENTRFI			;ERROR RETURN
   613	000764	065 03 0 00 000000 		OUTBUF	CH3,			;SET UP BUFFERS
   614
   615	000765	200 04 0 00 006675'		MOVE	D,[XWD -5,NAMTAB]	;SET UP FOR 5 FILE NAMES
   616	000766	260 17 0 00 004726 		GO	WRITF			;WRITE THEM
   617	000767	200 04 0 00 006676'		MOVE	D,[XWD -1,INFILN]	;SET UP FOR INPUT FILE
   618	000770	513 00 0 00 006351 		HLLZS	INFILE			;CLEAR DATE FROM ENTENSION WORD
   619	000771	260 17 0 00 004726 		GO	WRITF			;WRITE IT
   620	000772	200 04 0 00 000002 		MOVE	D,B			;GET INPUT LIST POINTER
   621	000773	260 17 0 00 004726 		GO	WRITF			;WRITE THEM
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 17
MAGTAP	MAC	22-May-78 09:05		MAKE COMMAND                                                                       SEQ 0048

   622					;*MKRDI, CHECK IF MAGTAP.RDI AND DXMPA.A8 EXIST
   623					;*	IF DXMPA.A8 EXISTS, MAKE NEW RDI FILE UNLESS NEWER THAN DXMPA.A8
   624
   625	000774	071 03 0 00 000000 	MKRDI:	RELEASE	CH3,			;CLOSE AND RELEASE FILE ON CHN 0
   626	000775	554 00 0 00 000120 		HLRZ	.JBSA			;RESTORE .JBFF TO RESET VALUE
   627	000776	202 00 0 00 000121 		MOVEM	.JBFF			;TO REUSE CORE AREA
   628	000777	201 10 0 00 000004 		MOVEI	CNT,4			;SET ARG COUNT TO 4
   629	001000	400 05 0 00 000000 		SETZ	STAT,			;SET ASCII MODE
   630	001001	200 12 0 00 006677'		MOVE	FN,[SIXBIT "DXMPA"]	;LOOKUP DX10 MICRO CODE FILE
   631	001002	205 13 0 00 413000 		MOVSI	EXT,'A8 '	
   632	001003	403 06 0 00 006522'		SETZB	DEV,DATEX#		;NO DEVICE OPEN NOW, ZERO DATE
   633	001004	201 00 0 00 000001 		MOVEI	CH1			;SET CHANNEL NO.
   634	001005	202 00 0 00 006510'		MOVEM	CHAN#			;TO 1
   635	001006	201 07 0 00 006433 		MOVEI	BUFFS,BUF1		;INPUT BUFFER IS BUF1
   636	001007	260 17 0 00 003060 		GO	FIND			;FIND FILE
   637	001010	254 00 0 00 001022 		JRST	LOKRDI			;NON-EXISTANT
   638	001011	200 00 0 00 000014 		MOVE	DAT			;GET DATE
   639	001012	405 00 0 00 007777 		ANDI	7777			;CLEAR OTHER BITS
   640	001013	242 13 0 00 777775 		LSH	EXT,-3			;POSITION HIGH ORDER 3 BITS OF DATE
   641	001014	405 13 0 00 070000 		ANDI	EXT,70000		;CLEAR OTHER BITS
   642	001015	434 00 0 00 000013 		OR	EXT			;MERGE
   643	001016	242 14 0 00 777764 		LSH	DAT,-^D12		;POSITION TIME
   644	001017	405 14 0 00 003777 		ANDI	DAT,3777		;CLEAR OTHER BITS
   645	001020	504 00 0 00 000014 		HRL	DAT			;PUT IN LEFT OF 0
   646	001021	202 00 0 00 006522'		MOVEM	DATEX			;SAVE DATE AND TIME OF DXMPA
   647	001022	200 12 0 00 006666'	LOKRDI:	MOVE	FN,[SIXBIT "MAGTAP"]	;LOOKUP MAGTAP.RDI
   648	001023	205 13 0 00 624451 		MOVSI	EXT,'RDI'	
   649	001024	403 06 0 00 000007 		SETZB	DEV,BUFFS		;NO DEVICE CURRENTLY OPEN, NO BUFFERS
   650	001025	201 00 0 00 000002 		MOVEI	CH2			;SET UP CHANNEL NO.
   651	001026	202 00 0 00 006510'		MOVEM	CHAN			;TO 2
   652	001027	260 17 0 00 003060 		GO	FIND			;FIND FILE
   653	001030	254 00 0 00 001050 		JRST	NEWRDI			;NOT FOUND, MAKE A NEW RDI FILE
   654	001031	336 00 0 00 006522'		SKIPN	DATEX			;MICRO-CODE EXIST?
   655	001032	254 00 0 00 001104 		JRST	MKDIR			;NO, USE RDI FILE
   656	001033	135 00 0 00 006700'		LDB	[POINT 12,DAT,35]	;GET LOW ORDER BITS OF DATE
   657	001034	135 01 0 00 006701'		LDB	A,[POINT 3,EXT,20]	;GET HIGH ORDER BITS
   658	001035	137 01 0 00 006702'		DPB	A,[POINT 3,0,23]	;PUT TOGETHER IN 0
   659	001036	550 01 0 00 006522'		HRRZ	A,DATEX			;GET DATE OF DXMPA
   660	001037	313 00 0 00 000001 		CAMLE	A			;RDI DATE NEWER THAN DXMPA?
   661	001040	254 00 0 00 001104 		JRST	MKDIR			;YES, USE RDI FILE
   662	001041	312 00 0 00 000001 		CAME	A			;DATES SAME?
   663	001042	254 00 0 00 001052 		JRST	UPDRDI			;NO, GO UPDATE RDI FILE
   664	001043	135 00 0 00 006703'		LDB	[POINT 11,DAT,23]	;GET CREATION TIME OF RDI FILE
   665	001044	554 01 0 00 006522'		HLRZ	A,DATEX			;AND DXMPA
   666	001045	311 00 0 00 000001 		CAML	A			;RDI FILE OLDER?
   667	001046	254 00 0 00 001104 		JRST	MKDIR			;NO, USE RDI FILE
   668	001047	254 00 0 00 001052 		JRST	UPDRDI			;GO UPDATE RDI FILE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 18
MAGTAP	MAC	22-May-78 09:05		MAKE COMMAND                                                                       SEQ 0049

   669					;*NEWRDI, MAKE FILE CALLED MAGTAP.RDI
   670					;*	THE READ-IN BOOTSTRAP FILE TO GO ON THE FRONT OF THE TAPE
   671
   672	001050	336 00 0 00 006522'	NEWRDI:	SKIPN	DATEX			;SKIP IF MICRO-CODE IS EXISTANT
   673	001051	254 00 0 00 001513 		JRST	NOMCOD			;NO, CAN'T MAKE RDI FILE
   674	001052	513 00 0 00 000013 	UPDRDI:	HLLZS	EXT			;CLEAR CREATION AND
   675	001053	400 14 0 00 000000 		SETZ	DAT,			;ACCESS DATES
   676						PRINT	<WRITING FILE MAGTAP.RDI
   677	001054	051 03 0 00 006704'	>
   678	001055	205 07 0 00 006436 		MOVSI	BUFFS,BUF2		;GET OUTPUT BUFFER ADR
   679	001056	201 05 0 00 000013 		MOVEI	STAT,13			;BINARY MODE
   680	001057	050 02 0 00 000005 		OPEN	CH2,STAT		;OPEN CHANNEL
   681	001060	254 00 0 00 004655 		JRST	OPENFG			;ERROR
   682	001061	077 02 0 00 000010 		ENTER	CH2,CNT			;ENTER FILE NAME
   683	001062	254 00 0 00 004662 		JRST	ENTRFG			;ERROR
   684	001063	067 02 0 00 000000 		OUTPUT	CH2,			;SET UP OUTPUT BUFFERS
   685	001064	056 01 0 00 000000 		IN	CH1,			;SET UP INPUT BUFFERS
   686	001065	200 01 0 00 006712'		MOVE	A,[-<RDIEND-RDI0>,,RDI0] ;SIZE OF RDI PROGRAM, ADR
   687	001066	201 02 0 00 000335 		MOVEI	B,RCDSIZ-<RDIEND-RDI0>	;ZERO FILL COUNTER
   688	001067	200 00 0 01 000000 	RDIWRT:	MOVE	(A)			;GET A DATA WORD
   689	001070	260 17 0 00 004134 		GO	WRT2			;WRITE IT
   690	001071	253 01 0 00 001067 		AOBJN	A,RDIWRT		;COUNT THE WORDS
   691	001072	322 02 0 00 001076 		JUMPE	B,RDIDXM		;JUMP IF NO ZERO WORDS
   692	001073	400 00 0 00 000000 		SETZ				;CLEAR 0
   693	001074	260 17 0 00 004134 		GO	WRT2			;WRITE ZEROS
   694	001075	367 02 0 00 001074 		SOJG	B,.-1			;FOR ZERO FILL COUNT
   695	001076	260 17 0 00 003440 	RDIDXM:	GO	RDDXMC			;GO READ MICRO-CODE FILE
   696	001077	205 01 0 00 775252 		MOVSI	A,-<10K/3+1>		;GET COUNT IF WORDS IN STORAGE AREA
   697	001100	540 01 0 00 000121 		HRR	A,.JBFF			;GET START ADR
   698	001101	200 00 0 01 000000 	RDIMC:	MOVE	(A)			;GET A WORD
   699	001102	260 17 0 00 004134 		GO	WRT2			;WRITE THIS WORD
   700	001103	253 01 0 00 001101 		AOBJN	A,RDIMC			;COUNT ALL THE WORDS
   701	001104	071 02 0 00 000000 	MKDIR:	RELEASE	CH2,			;CLOSE AND RELEASE THE FILE
   702	001105	071 01 0 00 000000 		RELEASE	CH1,			;RELEASE DXMPA.A8
   703	001106	554 00 0 00 000120 		HLRZ	.JBSA			;GET ORIGINAL FIRST FREE
   704	001107	202 00 0 00 000121 		MOVEM	.JBFF			;STORE IN .JBFF
   705	001110	402 00 0 00 006526'		SETZM	GPNBR			;CLEAR GROUP NUMBER
   706						PRINT	<WRITING FILES MAGTAP.MTA AND MAGTAP.DIR
   707	001111	051 03 0 00 006713'	>
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 19
MAGTAP	MAC	22-May-78 09:05		MAKE COMMAND                                                                       SEQ 0050

   708					;*	OPEN INPUT FILE
   709
   710	001112	201 00 0 00 006430 		MOVEI	BUF0			;SET UP READ BUFFER ADDRESS
   711	001113	202 00 0 00 006347 		MOVEM	INDEVB			;IN DEVICE BLOCK
   712	001114	050 00 0 00 006345 		OPEN	INDEV			;OPEN CHANNEL 0 FOR INPUT DEVICE
   713	001115	254 00 0 00 004621 		JRST	OPENFI			;ERROR
   714	001116	200 00 0 00 006354 		MOVE	INFILP			;GET P,PN
   715	001117	202 00 0 00 006353 		MOVEM	INPPN			;PUT IN LOOKUP BLOCK
   716	001120	076 00 0 00 006350 		LOOKUP	INFILN			;LOOKUP INPUT FILE
   717	001121	254 00 0 00 004631 		JRST	LOOKFI			;ERROR
   718	001122	056 00 0 00 000000 		IN				;SET UP BUFFERS
   719	001123	200 00 0 00 006724'		MOVE	[GO INWDEV]		;GET DEVICE READ DISPATCH INSTRUCTION
   720	001124	202 00 0 00 006531'		MOVEM	INWXCT			;PUT IN LOCATION EXECUTED BY INWORD
   721	001125	402 00 0 00 006511'		SETZM	CHAR#
   722	001126	402 00 0 00 006533'		SETZM	LINE#
   723	001127	402 00 0 00 006545'		SETZM	PAGE#
   724
   725					;*	OPEN CHANNEL 2 FOR MAGTAP.MTA
   726
   727	001130	201 10 0 00 000006 		MOVEI	CNT,6			;LOOKUP ARGUMENT COUNT
   728	001131	200 12 0 00 006666'		MOVE	FN,['MAGTAP']		;GET  FILE NAME
   729	001132	205 13 0 00 556441 		MOVSI	EXT,'MTA'		;EXTENSION
   730	001133	400 06 0 00 000000 		SETZ	DEV,			;CLEAR DEV
   731	001134	201 00 0 00 000002 		MOVEI	CH2			;SET UP FOR
   732	001135	202 00 0 00 006510'		MOVEM	CHAN			;CHANNEL 2
   733	001136	201 05 0 00 000013 		MOVEI	STAT,13			;SET UP FOR BINARY MODE
   734	001137	205 07 0 00 006436 		MOVSI	BUFFS,BUF2		;SPECIFY OUTPUT BUFFER
   735	001140	260 17 0 00 003060 		GO	FIND			;FIND THE FILE
   736	001141	255 00 0 00 000000 		JFCL				;NOT, FOUND
   737	001142	513 00 0 00 000013 	DIRMTA:	HLLZS	EXT			;CLEAR RIGHT HALF OF EXTENSION
   738	001143	403 14 0 00 000016 		SETZB	DAT,VER			;CLEAR DATE AND VERSION
   739	001144	070 02 0 00 000000 		CLOSE	CH2,			;CLOSE THE INPUT FILE
   740	001145	077 02 0 00 000010 		ENTER	CH2,CNT			;ENTER THE FILE
   741	001146	254 00 0 00 004662 		JRST	ENTRFG			;ERROR
   742	001147	065 02 0 00 000000 		OUTBUF	CH2,			;SET UP OUTPUT BUFFERS
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 20
MAGTAP	MAC	22-May-78 09:05		MAKE COMMAND                                                                       SEQ 0051

   743					;*	OPEN CHANNEL 3 FOR MAGTAP.DIR
   744
   745	001150	205 13 0 00 445162 		MOVSI	EXT,'DIR'		;SET UP EXTENSION
   746	001151	403 06 0 00 000005 		SETZB	DEV,STAT		;CLEAR DEV, SET ASCII MODE
   747	001152	350 00 0 00 006510'		AOS	CHAN			;CHANGE CHANNEL TO 3
   748	001153	205 07 0 00 006441 		MOVSI	BUFFS,BUF3		;SPECIFY OUTPUT BUFFER
   749	001154	260 17 0 00 003060 		GO	FIND			;FIND THE FILE
   750	001155	255 00 0 00 000000 		JFCL				;NOT FOUND
   751	001156	513 00 0 00 000013 	DIRDIR:	HLLZS	EXT			;CLEAR DATE FROM EXTENSION
   752	001157	403 14 0 00 000016 		SETZB	DAT,VER			;CLEAR DATE AND VERSION
   753	001160	070 03 0 00 000000 		CLOSE	CH3,			;CLOSE INPUT FILE
   754	001161	077 03 0 00 000010 		ENTER	CH3,CNT			;ENTER DIR FILE
   755	001162	254 00 0 00 004662 		JRST	ENTRFG			;ERROR
   756	001163	065 03 0 00 000000 		OUTBUF	CH3,			;SET UP BUFFERS
   757	001164	476 00 0 00 006570'		SETOM	WRDIR			;SET WRITING DIRECTORY FLAG
   758	001165	260 17 0 00 003163 		GO	RDNAME			;READ A NAME FROM THE FILE
   759	001166	254 00 0 00 004710 		JRST	RDNMER			;ERROR READING INPUT FILE
   760	001167	200 00 0 00 000121 		MOVE	.JBFF			;GET JOB FIRST FREE
   761	001170	202 00 0 00 006554'		MOVEM	SAVFF#			;SAVE IT
   762	001171	403 00 0 00 000002 		SETZB	B			;WRITE A ZERO FILE NUMBER
   763	001172	260 17 0 00 004134 		GO	WRT2
   764	001173	201 00 0 00 000001 		MOVEI	CH1			;SET UP FOR CHANNEL 1
   765	001174	202 00 0 00 006510'		MOVEM	CHAN			;PUT IN CHAN
   766	001175	201 07 0 00 006433 		MOVEI	BUFFS,BUF1		;SET UP INPUT BUFFER ADDRESS
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 21
MAGTAP	MAC	22-May-78 09:05		MAKE COMMAND                                                                       SEQ 0052

   767					;*	CREATE THE MAGTAPE DIRECTORY FILES
   768
   769	001176	200 01 0 00 006736'		MOVE	A,[POINT 7,[ASCIZ "DIAGNOSTIC MAGTAPE CREATED BY MAGTAP VER "]]
   770	001177	134 00 0 00 000001 	DIRHED:	ILDB	A			;GET A CHARACTER
   771	001200	322 00 0 00 001203 		JUMPE	DIRVER			;JUMP AROUND IF NULL
   772	001201	260 17 0 00 004144 		GO	WRCHAR			;WRITE CHARACTER
   773	001202	254 00 0 00 001177 		JRST	DIRHED			;GET NEXT CHARACTER
   774	001203	402 00 0 00 006532'	DIRVER:	SETZM	LDCHAR			;CLEAR LEADING CHARACTER FOR OUTNUM
   775	001204	135 00 0 00 006737'		LDB	[POINT 9,137,17]	;GET EDIT NUMBER
   776	001205	260 17 0 00 004750 		GO	OUTNUM			;WRITE NUMBER
   777	001206	201 00 0 00 000056 		MOVEI	PERIOD			;WRITE A PERIOD
   778	001207	260 17 0 00 004144 		GO	WRCHAR
   779	001210	135 00 0 00 006740'		LDB	[POINT 9,137,35]	;GET VERSION NUMBER
   780	001211	260 17 0 00 004750 		GO	OUTNUM			;WRITE NUMBER
   781	001212	205 00 0 00 005756 		MOVSI	' ON'			;PRINT ON
   782	001213	201 01 0 00 000004 		MOVEI	A,4			;SET CHARACTER COUNT TO 4
   783	001214	260 17 0 00 004201 		GO	OUTWRD			;WRITE WORD
   784	001215	047 00 0 00 000014 		DATE				;GET TODAY'S DATE
   785	001216	260 17 0 00 004764 		GO	WRDATE			;WRITE THE DATE
   786	001217	205 00 0 00 416400 		MOVSI	'AT '			;PRINT AT
   787	001220	201 01 0 00 000003 		MOVEI	A,3			;SET CHARACTER COUNT TO 3
   788	001221	260 17 0 00 004201 		GO	OUTWRD			;WRITE WORD
   789	001222	047 00 0 00 000023 		MSTIME				;GET TIME
   790	001223	231 00 0 00 165140 		IDIVI	^D60K			;DIVIDE INTO MINUTES
   791	001224	231 00 0 00 000074 		IDIVI	^D60			;DIVIDE OUT HOURS
   792	001225	261 17 0 00 000001 		PUT	A			;SAVE MINUTES
   793	001226	231 00 0 00 000012 		IDIVI	^D10			;DIVIDE BY 10
   794	001227	260 17 0 00 004170 		GO	OUTDIG			;PRINT THE NUMBER
   795	001230	200 00 0 00 000001 		MOVE	A			;GET NEXT DIGIT
   796	001231	350 00 0 00 006523'		AOS	DIGCNT			;CAUSE REST OF DIGITS TO BE PRINTED
   797	001232	260 17 0 00 004170 		GO	OUTDIG			;PRINT DIGIT
   798	001233	201 00 0 00 000072 		MOVEI	COLON			;PRINT A COLON
   799	001234	260 17 0 00 004144 		GO	WRCHAR	
   800	001235	262 17 0 00 000000 		GET	0			;GET MINUTES AGAIN
   801	001236	231 00 0 00 000012 		IDIVI	^D10			;DIVIDE BY 10	
   802	001237	260 17 0 00 004170 		GO	OUTDIG			;PRINT FIRST DIGIT
   803	001240	200 00 0 00 000001 		MOVE	A			;GET SECOND DIGIT
   804	001241	260 17 0 00 004170 		GO	OUTDIG			;PRINT IT
   805	001242	200 01 0 00 006741'		MOVE	A,[POINT 7,HEDMSG]
   806	001243	134 00 0 00 000001 		ILDB	A
   807	001244	322 00 0 00 001247 		JUMPE	.+3
   808	001245	260 17 0 00 004144 		GO	WRCHAR			;WRITE HEADER
   809	001246	254 00 0 00 001243 		JRST	.-3
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 22
MAGTAP	MAC	22-May-78 09:05		MAKE COMMAND                                                                       SEQ 0053

   810					;*DIRFIL, SET UP EACH RECORD OF MTA FILE WITH FILE COUNT AND CHECKSUM
   811
   812	001247	552 02 0 00 006512'	DIRRCD:	HRRZM	B,CHECK			;CLEAR CHECKSUM
   813	001250	505 02 0 00 777526 		HRLI	B,-<RCDSIZ-2>/3		;SET IN COUNT OF FILE NAMES PER RECORD
   814
   815	001251	402 00 0 00 006523'	DIRFIL:	SETZM	DIGCNT#			;CLEAR DIGIT COUNTER
   816	001252	201 01 0 00 000040 		MOVEI	A,SPACE			;SET LEADING CHARACTER TO A SPACE
   817	001253	202 01 0 00 006532'		MOVEM	A,LDCHAR		;FOR OUTDIG ROUTINE
   818	001254	550 00 0 00 000002 		HRRZ	B			;GET FILE NUMBER
   819	001255	231 00 0 00 001750 		IDIVI	^D1000			;DIVIDE BY 1000
   820	001256	260 17 0 00 004170 		GO	OUTDIG			;WRITE THE DIGIT
   821	001257	200 00 0 00 000001 		MOVE	A			;GET REMAINDER
   822	001260	231 00 0 00 000144 		IDIVI	^D100			;DIVIDE BY 100
   823	001261	260 17 0 00 004170 		GO	OUTDIG			;WRITE THE DIGIT
   824	001262	200 00 0 00 000001 		MOVE	A			;GET REMAINDER
   825	001263	231 00 0 00 000012 		IDIVI	^D10			;DIVIDE BY 10
   826	001264	260 17 0 00 004170 		GO	OUTDIG			;WRITE THE DIGIT
   827	001265	201 00 0 01 000060 		MOVEI	"0"(A)			;GET REMAINING DIGIT
   828	001266	260 17 0 00 004144 		GO	WRCHAR			;WRITE IT
   829	001267	201 00 0 00 000056 		MOVEI	PERIOD			;WRITE A PERIOD
   830	001270	260 17 0 00 004144 		GO	WRCHAR
   831	001271	201 00 0 00 000040 		MOVEI	SPACE			;WRITE 2 SPACES
   832	001272	260 17 0 00 004144 		GO	WRCHAR
   833	001273	260 17 0 00 004144 		GO	WRCHAR
   834
   835	001274	135 01 0 00 006742'		LDB	A,[POINT 3,TYPNBR,32]
   836	001275	201 00 0 01 000060 		MOVEI	"0"(A)
   837	001276	260 17 0 00 004144 		GO	WRCHAR			;WRITE HI-DIGIT TYPE NUMBER
   838	001277	135 01 0 00 006743'		LDB	A,[POINT 3,TYPNBR,35]
   839	001300	201 00 0 01 000060 		MOVEI	"0"(A)
   840	001301	260 17 0 00 004144 		GO	WRCHAR			;WRITE LO-DIGIT TYPE NUMBER
   841	001302	201 00 0 00 000040 		MOVEI	SPACE
   842	001303	260 17 0 00 004144 		GO	WRCHAR			;WRITE 2 SPACES
   843	001304	260 17 0 00 004144 		GO	WRCHAR
   844
   845	001305	200 00 0 00 000012 		MOVE	FN			;GET FILE NAME
   846	001306	272 00 0 00 006512'		ADDM	CHECK			;ADD TO CHECKSUM
   847	001307	260 17 0 00 004134 		GO	WRT2			;WRITE NAME IN MTA FILE
   848	001310	201 01 0 00 000007 		MOVEI	A,7			;SET CHAR COUNT TO 7
   849	001311	260 17 0 00 004201 		GO	OUTWRD			;WRITE WORD INTO .DIR FILE
   850	001312	312 12 0 00 006666'		CAME	FN,['MAGTAP']		;IS FILE NAME MAGTAP?
   851	001313	254 00 0 00 001330 		JRST	DIRFND			;NO, GO FIND THE FILE
   852	001314	554 00 0 00 000013 		HLRZ	EXT			;GET EXTENSION
   853	001315	302 00 0 00 556441 		CAIE	'MTA'			;CHECK IF ONE OF THE FILES
   854	001316	306 00 0 00 445162 		CAIN	'DIR'			;BEING WRITTEN
   855	001317	334 00 0 00 000000 		SKIPA				;YES, PUT IN CURRENT DATE
   856	001320	254 00 0 00 001330 		JRST	DIRFND			;NO, GO FIND FILE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 23
MAGTAP	MAC	22-May-78 09:05		MAKE COMMAND                                                                       SEQ 0054

   857	001321	047 14 0 00 000014 		DATE	DAT,			;GET TODAY'S DATE
   858	001322	047 00 0 00 000023 		MSTIME				;GET TIME
   859	001323	231 00 0 00 165140 		IDIVI	^D60K			;CONVERT TO MINUTES
   860	001324	542 00 0 00 000013 		HRRM	EXT			;STORE TO RIGHT OF EXTENSION
   861	001325	400 16 0 00 000000 		SETZ	VER,			;CLEAR VERSION
   862	001326	402 00 0 00 006527'		SETZM	INCNT			;NO SIZE ON "MAGTAP'S" FILES
   863	001327	254 00 0 00 001340 		JRST	DIREXT			;GO WRITE EXTENSION
   864
   865					;*DIRFND, READ EACH FILE TO GET DIRECTORY INFORMATION
   866
   867	001330	260 17 0 00 003060 	DIRFND:	GO	FIND			;FIND THE FILE
   868	001331	254 00 0 00 004713 		JRST	NOTFND			;NOT FOUND
   869
   870	001332	260 17 0 00 001532 		GO	INCOMP			;FIND INPUT FILE SIZE
   871	001333	135 00 0 00 006703'		LDB	[POINT 11,DAT,23]	;GET TIME FROM FILE
   872	001334	135 01 0 00 006701'		LDB	A,[POINT 3,EXT,20]	;GET 3 BITS OF DATE FROM EXT WORD
   873	001335	542 00 0 00 000013 		HRRM	EXT			;PUT TIME TO RIGHT OF EXTENSION
   874	001336	405 14 0 00 007777 		ANDI	DAT,7777		;CLEAR ALL BUT DATE BITS
   875	001337	137 01 0 00 006744'		DPB	A,[POINT 3,DAT,23]	;SET IN HIGH ORDER BITS
   876
   877	001340	200 00 0 00 006526'	DIREXT:	MOVE	GPNBR			;INSERT GROUP NUMBER IN .MTA FILE
   878	001341	137 00 0 00 006745'		DPB	[POINT 5,EXT,24]
   879
   880	001342	135 00 0 00 006746'		LDB	[POINT 2,TYPNBR,32]
   881	001343	137 00 0 00 006747'		DPB	[POINT 2,EXT,19]	;INSERT HI 2 BITS OF TYPE NUMBER
   882	001344	200 00 0 00 000013 		MOVE	EXT			;GET EXTENSION
   883	001345	272 00 0 00 006512'		ADDM	CHECK			;ADD TO CHECKSUM
   884	001346	260 17 0 00 004134 		GO	WRT2			;WRITE IN .MTA FILE
   885	001347	510 00 0 00 000013 		HLLZ	EXT			;GET EXTENSION
   886	001350	201 01 0 00 000004 		MOVEI	A,4			;SET CHARACTER COUNT TO 4
   887	001351	260 17 0 00 004201 		GO	OUTWRD			;WRITE EXTENSION INTO .DIR FILE
   888	001352	260 17 0 00 004340 		GO	GETVER			;GET VERSION NUMBER FROM FILE
   889										;AND WRITE IT IN .DIR FILE
   890	001353	200 00 0 00 006562'		MOVE	TYPNBR
   891	001354	137 00 0 00 006750'		DPB	[POINT 3,DAT,20]	;INSERT LOW 3 BITS OF TYPE NUMBER
   892	001355	200 00 0 00 000014 		MOVE	DAT			;GET VERSION AND DATE WORD
   893	001356	272 00 0 00 006512'		ADDM	CHECK			;ADD TO CHECKSUM
   894	001357	260 17 0 00 004134 		GO	WRT2			;WRITE INTO .MTA FILE
   895	001360	201 00 0 00 000040 		MOVEI	SPACE			;SET LEADING CHARACTER TO SPACE
   896	001361	202 00 0 00 006532'		MOVEM	LDCHAR			;FOR OUTDIG ROUTINE
   897	001362	135 00 0 00 006751'		LDB	[POINT 15,DAT,35]	;GET DATE
   898	001363	260 17 0 00 004764 		GO	WRDATE			;WRITE THE DATE
   899	001364	260 17 0 00 001553 		GO	WRSIZE			;WRITE FILE SIZE
   900	001365	200 00 0 00 006554'		MOVE	SAVFF			;RESTORE FIRST FREE
   901	001366	202 00 0 00 000121 		MOVEM	.JBFF			;WITH START VALUE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 24
MAGTAP	MAC	22-May-78 09:05		MAKE COMMAND                                                                       SEQ 0055

   902					;*	FINISH LINE OF DIRECTORY FILE MAGTAP.DIR WITH INPUT DATA
   903
   904	001367	336 01 0 00 006511'	SKIPIN:	SKIPN	A,CHAR			;CHECK IF INPUT TO END OF LINE
   905	001370	254 00 0 00 001376 		JRST	SKIPCR			;YES, GO PRINT CR
   906	001371	301 01 0 00 000042 		CAIL	A,^D34			;CHECK IF 34 CHARACTERS INPUT
   907	001372	254 00 0 00 001400 		JRST	SKIPON			;YES, GO AROUND
   908	001373	260 17 0 00 004001 		GO	RDCHAR			;READ ANOTHER CHARACTER
   909	001374	254 00 0 00 001376 		JRST	SKIPCR			;EOF, CALL IT END OF LINE
   910	001375	254 00 0 00 001367 		JRST	SKIPIN			;KEEP SKIPPING INPUT CHARACTERS
   911	001376	201 00 0 00 000015 	SKIPCR:	MOVEI	CR			;OUTPUT A CR
   912	001377	254 00 0 00 001402 		JRST	SKIPX
   913	001400	201 00 0 00 000011 	SKIPON:	MOVEI	TAB			;PREPARE TO PRINT A TAB
   914	001401	302 01 0 00 000042 		CAIE	A,^D34			;SKIP IF EXACTLY ON 34 CHARACTERS
   915	001402	260 17 0 00 004144 	SKIPX:	GO	WRCHAR			;NO, WRITE A TAB
   916
   917	001403	260 17 0 00 003163 		GO	RDNAME			;READ NEXT FILE NAME
   918	001404	254 00 0 00 001416 		JRST	DIREND			;END OF INPUT FILE
   919	001405	253 02 0 00 001251 		AOBJN	B,DIRFIL		;RECORD NEXT FILE UNLESS FULL
   920	001406	550 00 0 00 006512'		HRRZ	CHECK			;GET RIGHT HALF OF CHECKSUM
   921	001407	554 01 0 00 006512'		HLRZ	A,CHECK			;GET LEFT HALF OF CHECKSUM
   922	001410	270 00 0 00 000001 		ADD	A			;ADD TOGETHER
   923	001411	505 00 0 00 000000 		HRLI	0			;MARK MORE RECORDS TO COME WITH 0 IN LEFT HALF
   924	001412	260 17 0 00 004134 		GO	WRT2			;WRITE CHECKSUM INTO RECORD
   925	001413	550 00 0 00 000002 		HRRZ	B			;GET NEXT FILE NUMBER
   926	001414	260 17 0 00 004140 		GO	WRTBF2			;WRITE CURRENT RECORD AND FILE NUMBER INTO NEXT
   927	001415	254 00 0 00 001247 		JRST	DIRRCD			;GO WRITE NEXT RECORD
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 25
MAGTAP	MAC	22-May-78 09:05		MAKE COMMAND                                                                       SEQ 0056

   928					;*DIREND, INSERT CHECKSUM TO END OF DIRECTORY RECORD IN MTA FILE
   929
   930	001416	550 00 0 00 006512'	DIREND:	HRRZ	CHECK			;GET RIGHT HALF OF CHECKSUM
   931	001417	554 01 0 00 006512'		HLRZ	A,CHECK			;GET LEFT HALF OF CHECKSUM
   932	001420	270 00 0 00 000001 		ADD	A			;ADD TOGETHER
   933	001421	505 00 0 00 000001 		HRLI	1			;MARK LAST RECORD WITH 1 IN LEFT HALF
   934	001422	260 17 0 00 004134 		GO	WRT2			;WRITE INTO RECORD
   935	001423	071 02 0 00 000000 		RELEASE	CH2,			;CLOSE THE .MTA FILE
   936	001424	071 03 0 00 000000 		RELEASE	CH3,			;CLOSE THE .DIR FILE
   937	001425	071 00 0 00 000000 		RELEASE	CH0			;RELEASE INPUT FILES
   938	001426	071 00 0 00 000001 		RELEASE	CH1		
   939	001427	554 00 0 00 000120 		HLRZ	.JBSA			;RESTORE .JBFF TO ORIGINAL
   940	001430	202 00 0 00 000121 		MOVEM	.JBFF			;VALUE FOR NEXT STEP
   941	001431	402 00 0 00 006570'		SETZM	WRDIR			;CLEAR WRITING DIRECTORY FLAG
   942	001432	336 00 0 00 000210 		SKIPN	MAGDEV			;SKIP IF MAGTAPE DEVICE OPEN
   943	001433	254 00 0 00 000314 		JRST	COMM		
   944						PRINT	<MAKING MAGTAPE
   945	001434	051 03 0 00 006752'	>
   946	001435	050 00 0 00 006345 		OPEN	INDEV			;OPEN INPUT DEVICE
   947	001436	254 00 0 00 004621 		JRST	OPENFI			;ERROR
   948	001437	200 00 0 00 006354 		MOVE	INFILP			;GET P,PN
   949	001440	202 00 0 00 006353 		MOVEM	INPPN			;PUT IN LOOKUP BLOCK
   950	001441	076 00 0 00 006350 		LOOKUP	INFILN			;LOOKUP INPUT FILE
   951	001442	254 00 0 00 004631 		JRST	LOOKFI			;ERROR
   952	001443	056 00 0 00 000000 		IN				;SET UP BUFFERS
   953	001444	072 04 0 00 000001 		MTREW.	CH4,			;REWIND THE MAGTAPE
   954	001445	260 17 0 00 003567 		GO	MAGBUF			;SET UP MAGTAPE BUFFERS
   955	001446	201 05 0 00 000010 		MOVEI	STAT,10			;SET MODE TO IMAGE
   956	001447	200 00 0 00 000121 		MOVE	.JBFF			;SAVE FIRST FREE
   957	001450	202 00 0 00 006554'		MOVEM	SAVFF			;ADDRESS
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 26
MAGTAP	MAC	22-May-78 09:05		MAKE COMMAND                                                                       SEQ 0057

   958					;*MKTAPE, WRITE THE MAGTAPE
   959
   960	001451	260 17 0 00 003163 	MKTAPE:	GO	RDNAME			;READ A FILE NAME FROM INPUT FILE
   961	001452	254 00 0 00 001504 		JRST	MKEND			;END OF TAPE
   962	001453	260 17 0 00 003060 		GO	FIND			;LOOKUP FILE
   963	001454	254 00 0 00 004713 		JRST	NOTFND			;ERROR
   964	001455	056 01 0 00 000000 		IN	CH1,			;SET UP BUFFERS
   965	001456	336 00 0 00 006536'		SKIPN	LSTSW			;LIST FILES AS PROCESSED ?
   966	001457	254 00 0 00 001467 		JRST	.+10			;NO
   967	001460	051 01 0 00 006756'		OUTCHR	[TAB]
   968	001461	200 00 0 00 000012 		MOVE	FN			;PRINT FILE NAME
   969	001462	260 17 0 00 003765 		GO	PNTSIX
   970	001463	051 01 0 00 006605'		OUTCHR	[PERIOD]		;A PERIOD
   971	001464	510 00 0 00 000013 		HLLZ	EXT			;THEN EXTENSION
   972	001465	260 17 0 00 003765 		GO	PNTSIX
   973	001466	051 03 0 00 006606'		OUTSTR	[CRLF]			;END THE LINE
   974	001467	077 04 0 00 000012 		ENTER	CH4,FN			;ENTER FILE ONTO MAGTAPE
   975	001470	300 00 0 00 000000 		CAI				;CAN'T FAIL
   976	001471	260 17 0 00 004050 		GO	RD1			;READ FIRST WORD
   977	001472	254 00 0 00 001510 		JRST	NULFIL			;EOF ON FIRST INPUT
   978	001473	254 00 0 00 001476 		JRST	MKWRIT			;GO WRITE THIS WORD
   979	001474	260 17 0 00 004050 	MKTAPW:	GO	RD1			;READ A WORD
   980	001475	254 00 0 00 001500 		JRST	MKCLOS			;ENTIRE FILE READ
   981	001476	260 17 0 00 004157 	MKWRIT:	GO	WRT4			;WRITE ONTO MAGTAPE
   982	001477	254 00 0 00 001474 		JRST	MKTAPW			;GET NEXT CHARACTER
   983	001500	070 04 0 00 000000 	MKCLOS:	CLOSE	CH4,			;CLOSE OUTPUT FILE ON MAGTAP
   984	001501	200 00 0 00 006554'		MOVE	SAVFF			;RESTORE START FIRST FREE
   985	001502	202 00 0 00 000121 		MOVEM	.JBFF			;ADDRESS
   986	001503	254 00 0 00 001451 		JRST	MKTAPE			;START NEXT FILE
   987
   988	001504	072 04 0 00 000001 	MKEND:	MTREW.	CH4,			;REWIND THE MAGTAP
   989	001505	260 17 0 00 000311 		GO	COCLR			;CLEAR CONTROL O
   990						PRINT	<MAGTAPE COMPLETED
   991	001506	051 03 0 00 006757'		>
   992	001507	254 00 0 00 000314 		JRST	COMM			;END OF MAKE COMMAND
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 27
MAGTAP	MAC	22-May-78 09:05		MAKE COMMAND                                                                       SEQ 0058

   993	001510	260 17 0 00 001516 	NULFIL:	GO	ERRNAM			;PRINT ERROR FILE NAME
   994						PRINT	<FILE CONTAINS NO DATA, CAN'T WRITE ON MAGTAPE
   995	001511	051 03 0 00 006764'	>
   996	001512	254 00 0 00 000314 		JRST	COMM
   997
   998	001513	260 17 0 00 000311 	NOMCOD:	GO	COCLR			;CLEAR CONTROL O
   999						PRINT	<? NEITHER MAGTAP.RDI OR DXMPA.A8 WERE FOUND.
  1000					AT LEAST ONE MUST BE ON DISK.
  1001	001514	051 03 0 00 006776'	>
  1002	001515	254 00 0 00 000314 		JRST COMM
  1003
  1004	001516	261 17 0 00 000000 	ERRNAM:	PUT	0			;PRINT ERROR FILE NAME
  1005	001517	260 17 0 00 000311 		GO	COCLR			;CLEAR CONTROL O
  1006	001520	051 01 0 00 006627'		OUTCHR	[QMARK]
  1007	001521	051 01 0 00 007016'		OUTCHR	[SPACE]
  1008	001522	200 00 0 00 000012 		MOVE	FN			;PRINT FILE NAME
  1009	001523	260 17 0 00 003765 		GO	PNTSIX
  1010	001524	051 01 0 00 006605'		OUTCHR	[PERIOD]		;A PERIOD
  1011	001525	510 00 0 00 000013 		HLLZ	EXT			;THEN EXTENSION
  1012	001526	260 17 0 00 003765 		GO	PNTSIX
  1013	001527	051 03 0 00 007017'		PRINT	< - >
  1014	001530	262 17 0 00 000000 		GET	0
  1015	001531	263 17 0 00 000000 		RTN
  1016
  1017	001532	200 00 0 00 000015 	INCOMP:	MOVE	SIZ			;GET WORD COUNT FROM EXTENDED LOOKUP
  1018	001533	231 00 0 00 000200 		IDIVI	^D128			;DIVIDE BY BLOCK SIZE
  1019	001534	322 01 0 00 001536 		JUMPE	1,.+2			;ANY REMAINDER ?
  1020	001535	271 00 0 00 000001 		ADDI	0,1			;YES, ROUND UP
  1021	001536	202 00 0 00 006527'		MOVEM	INCNT#
  1022	001537	263 17 0 00 000000 		RTN
  1023
  1024	001540				HEDMSG:	ASCIZ	"
  1025
  1026	001540	015 012 015 012 040 	  #  TYPE  FILE   EXT   VER     DATE     SIZE
  1027	001541	040 043 040 040 124 
  1028	001542	131 120 105 040 040 
  1029	001543	106 111 114 105 040 
  1030	001544	040 040 105 130 124 
  1031	001545	040 040 040 126 105 
  1032	001546	122 040 040 040 040 
  1033	001547	040 104 101 124 105 
  1034	001550	040 040 040 040 040 
  1035	001551	123 111 132 105 015 
  1036
  1037	001552	012 015 012 000 000 	"
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 28
MAGTAP	MAC	22-May-78 09:05		MAKE COMMAND                                                                       SEQ 0059

  1038					;*WRSIZE, WRITE FILES SIZE INTO .DIR FILE
  1039
  1040	001553	201 00 0 00 000040 	WRSIZE:	MOVEI	SPACE
  1041	001554	260 17 0 00 004144 		GO	WRCHAR
  1042
  1043	001555	336 00 0 00 006527'		SKIPN	INCNT			;ANY FILE SIZE ?
  1044	001556	254 00 0 00 001601 		JRST	WRSIZ2			;NO
  1045
  1046	001557	402 00 0 00 006523'		SETZM	DIGCNT
  1047	001560	201 01 0 00 000040 		MOVEI	A,SPACE
  1048	001561	202 01 0 00 006532'		MOVEM	A,LDCHAR
  1049
  1050	001562	550 00 0 00 006527'		HRRZ	INCNT
  1051	001563	231 00 0 00 001750 		IDIVI	^D1000
  1052	001564	260 17 0 00 004170 		GO	OUTDIG			;PRINT 1000 DIGIT
  1053
  1054	001565	200 00 0 00 000001 		MOVE	A
  1055	001566	231 00 0 00 000144 		IDIVI	^D100
  1056	001567	260 17 0 00 004170 		GO	OUTDIG			;PRINT 100 DIGIT
  1057
  1058	001570	200 00 0 00 000001 		MOVE	A
  1059	001571	231 00 0 00 000012 		IDIVI	^D10
  1060	001572	260 17 0 00 004170 		GO	OUTDIG			;PRINT 10 DIGIT
  1061
  1062	001573	201 00 0 01 000060 		MOVEI	"0"(A)
  1063	001574	260 17 0 00 004144 		GO	WRCHAR			;PRINT 1 DIGIT
  1064
  1065	001575	201 00 0 00 000040 		MOVEI	SPACE
  1066	001576	260 17 0 00 004144 	WRSIZ1:	GO	WRCHAR
  1067	001577	260 17 0 00 004144 		GO	WRCHAR
  1068	001600	263 17 0 00 000000 		RTN
  1069
  1070	001601	260 17 0 00 004144 	WRSIZ2:	GO	WRCHAR
  1071	001602	260 17 0 00 004144 		GO	WRCHAR
  1072	001603	260 17 0 00 004144 		GO	WRCHAR
  1073	001604	260 17 0 00 004144 		GO	WRCHAR
  1074	001605	254 00 0 00 001576 		JRST	WRSIZ1
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 29
MAGTAP	MAC	22-May-78 09:05		UTILITY COMMANDS                                                                   SEQ 0060

  1075					SUBTTL	UTILITY COMMANDS
  1076
  1077					;*REWIND, REWIND COMMAND
  1078
  1079	001606	336 00 0 00 000210 	REWIND:	SKIPN	MAGDEV			;SKIP IF A MAGTAPE ASSIGNED
  1080	001607	254 00 0 00 000364 		JRST	BADCMF			;NO, GET OUT
  1081	001610	072 04 0 00 000001 		MTREW.	CH4,			;REWIND THE TAPE
  1082	001611	402 00 0 00 006524'		SETZM	DIRFLG#			;CLEAR DIRECTORY FLAG
  1083	001612	254 00 0 00 000364 		JRST	BADCMF			;GO FOR NEXT COMMAND
  1084
  1085
  1086					;*UNLOAD, UNLOAD COMMAND
  1087
  1088	001613	332 00 0 00 000210 	UNLOAD:	SKIPE	MAGDEV			;CHECK IF A MAGTAPE ASSIGNED
  1089	001614	072 04 0 00 000011 		MTUNL.	CH4,			;REWIND AND UNLOAD THE TAPE
  1090
  1091					;*EXIT, EXIT COMMAND
  1092
  1093	001615	047 00 0 00 000000 	LEAVE:	RESET				;RESET ALL DEVICES
  1094	001616	306 01 0 00 000012 		CAIN	A,LF			;CHECK IF END OF LINE INPUT
  1095	001617	254 00 0 00 001622 		JRST	LEAVN			;YES, GO ON
  1096	001620	260 17 0 00 003613 		GO	INWORD			;INPUT REST OF LINE
  1097	001621	254 00 0 00 001616 		JRST	.-3
  1098	001622	047 01 0 00 000012 	LEAVN:	EXIT	1,			;EXIT PROGRAM
  1099	001623	254 00 0 00 000140 		JRST	START			;START OVER IF CONTINUED
  1100
  1101					;*OPTION, OPTION COMMAND
  1102
  1103	001624	400 03 0 00 000000 	OPTION:	SETZ	C,			;CLEAR OPTION NAME
  1104	001625	306 01 0 00 000012 		CAIN	A,LF			;LINE FEED INPUT?
  1105	001626	254 00 0 00 001635 		JRST	OPTRD			;YES, GO READ SWITCH.INI FILE
  1106	001627	260 17 0 00 003613 		GO	INWORD			;READ NEXT WORD OF INPUT
  1107	001630	202 00 0 00 000003 		MOVEM	C			;SAVE OPTION NAME
  1108	001631	306 01 0 00 000012 	OPTFSH:	CAIN	A,LF			;LINE FEED INPUT?
  1109	001632	254 00 0 00 001635 		JRST	OPTRD			;YES, GO READ FILE
  1110	001633	260 17 0 00 003613 		GO	INWORD			;NO, KEEP READING UNTIL FIND ONE
  1111	001634	254 00 0 00 001631 		JRST	OPTFSH
  1112	001635	260 17 0 00 004212 	OPTRD:	GO	RDSWIT			;READ THE SWITCH.INI FILE
  1113						PRINT	<? OPTION LINE NOT FOUND
  1114	001636	051 03 0 00 007020'	>
  1115	001637	254 00 0 00 000314 		JRST	COMM			;GO GET COMMAND
  1116
  1117	001640	260 17 0 00 004257 	SRCH:	GO	SETSRC			;READ SEARCH LIST FROM TTY
  1118	001641	254 00 0 00 000314 		JRST	COMM			;GO GET NEXT COMMAND
  1119
  1120	001642	306 01 0 00 000012 	TAPEIN:	CAIN	A,LF			;CHECK IF END OF LINE
  1121	001643	254 00 0 00 000425 		JRST	CMDERR			;YES, ERROR
  1122	001644	254 00 0 00 000173 		JRST	TAPEI			;GO BACK TO MAGTAPE NAME INPUT ROUTINE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 30
MAGTAP	MAC	22-May-78 09:05		DIRECTORY COMMANDS                                                                 SEQ 0061

  1123					SUBTTL	DIRECTORY COMMANDS
  1124
  1125					;*DIRECT, DIRECTORY AND FDIRECTORY COMMANDS
  1126
  1127	001645	402 00 0 00 006525'	DIRECT:	SETZM	FASTDR#			;CLEAR FAST DIRECTORY FLAG
  1128	001646	254 00 0 00 001650 		JRST	DIR
  1129
  1130	001647	476 00 0 00 006525'	FDIR:	SETOM	FASTDR			;SET FAST DIRECTORY FLAG
  1131
  1132	001650	205 06 0 00 646471 	DIR:	MOVSI	DEV,'TTY'		;SET UP DEFAULT DEVICE AS TTY
  1133	001651	306 01 0 00 000012 		CAIN	A,LF			;CHECK IF END OF COMMAND LINE
  1134	001652	254 00 0 00 001662 		JRST	DIRPOS			;YES, GO POSITION TAPE
  1135	001653	260 17 0 00 003613 		GO	INWORD			;NO, READ DEVICE NAME
  1136	001654	332 00 0 00 000000 		SKIPE				;SKIP IF NO DEVICE NAMED
  1137	001655	202 00 0 00 000006 		MOVEM	DEV			;SAVE DEVICE NAMED
  1138	001656	306 01 0 00 000012 	DIRFCM:	CAIN	A,LF			;END OF LINE?
  1139	001657	254 00 0 00 001662 		JRST	DIRPOS			;YES
  1140	001660	260 17 0 00 003613 		GO	INWORD			;GET REST OF LINE
  1141	001661	254 00 0 00 001656 		JRST	DIRFCM
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 31
MAGTAP	MAC	22-May-78 09:05		DIRECTORY COMMANDS                                                                 SEQ 0062

  1142					;*DIRPOS, SET UP TO READ DIRECTORY FILE
  1143
  1144	001662	260 17 0 00 002664 	DIRPOS:	GO	GETDIR			;GET MAGTAPE DIRECTORY
  1145	001663	260 17 0 00 003567 		GO	MAGBUF			;SET UP MAGTAPE BUFFERS
  1146	001664	403 11 0 00 000005 		SETZB	PPN,STAT		;SET OUTPUT STATUS TO ASCII
  1147	001665	205 07 0 00 006441 		MOVSI	BUFFS,BUF3		;SET UP OUTPUT BUFFER ADR
  1148	001666	050 03 0 00 000005 		OPEN	CH3,STAT		;OPEN OUTPUT DEV
  1149	001667	254 00 0 00 004655 		JRST	OPENFG			;ERROR
  1150	001670	200 12 0 00 006666'		MOVE	FN,['MAGTAP']		;SET UP DIRECTORY NAME
  1151	001671	205 13 0 00 445162 		MOVSI	EXT,'DIR'		;  MAGTAP.DIR
  1152	001672	403 14 0 00 000015 		SETZB	DAT,SIZ			;CLEAR PPN AND DATE
  1153	001673	077 03 0 00 000012 		ENTER	CH3,FN			;ENTER FILE
  1154	001674	254 00 0 00 004662 		JRST	ENTRFG			;ERROR
  1155	001675	065 03 0 00 000000 		OUTBUF	CH3,			;SET UP BUFFERS
  1156	001676	076 04 0 00 000012 		LOOKUP	CH4,FN			;READ FILE FROM MAGTAPE
  1157	001677	255 00 0 00 000000 		JFCL				;CAN'T FAIL
  1158	001700	332 00 0 00 006525'		SKIPE	FASTDR			;CHECK IF FAST DIRECTORY REQUESTED
  1159	001701	254 00 0 00 001723 		JRST	FDIRWT			;YES, GO TO FAST PRINTER
  1160	001702	260 17 0 00 002766 		GO	FNDFIL			;FIND FILE ON MAGTAPE
  1161	001703	254 00 0 00 001715 		JRST	NODIR			;NO DIRECTORY FILE FOUND
  1162	001704	201 00 0 00 000700 		MOVEI	700			;CHANGE BYTE SIZE TO 7 BITS
  1163	001705	506 00 0 00 006445 		HRLM	BUF4+1			;FOR MAGTAPE READ BUFFER
  1164	001706	260 17 0 00 004070 	DIRWRT:	GO	RD4			;READ A CHARACTER
  1165	001707	254 00 0 00 001712 		JRST	DIRDON			;EOF, ALL DONE
  1166	001710	260 17 0 00 004144 		GO	WRCHAR			;WRITE IT TO DEVICE
  1167	001711	254 00 0 00 001706 		JRST	DIRWRT			;KEEP WRITING
  1168	001712	070 04 0 00 000000 	DIRDON:	CLOSE	CH4,			;CLOSE INPUT FILE
  1169	001713	350 00 0 00 006547'		AOS	POSIT			;INCREMENT POSITION OF TAPE
  1170	001714	254 00 0 00 000314 		JRST	COMM			;GET NEXT COMMAND
  1171
  1172	001715	260 17 0 00 000311 	NODIR:	GO	COCLR			;CLEAR CONTROL O
  1173	001716	051 03 0 00 007026'		PRINT	<? CAN'T FIND MAGTAP.>
  1174	001717	510 00 0 00 000013 		HLLZ	EXT			;GET EXTENSION
  1175	001720	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  1176	001721	051 03 0 00 007033'		PRINT	< ON MAGTAPE>
  1177	001722	254 00 0 00 000314 		JRST	COMM
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 32
MAGTAP	MAC	22-May-78 09:05		DIRECTORY COMMANDS                                                                 SEQ 0063

  1178					;*FDIRWT, WRITE FILE NAME AND EXTENSION, 4 FILES PER LINE
  1179
  1180	001723	205 13 0 00 556441 	FDIRWT:	MOVSI	EXT,'MTA'		;SET UP MTA EXTENSION
  1181	001724	260 17 0 00 002766 		GO	FNDFIL			;FIND FILE ON MAGTAPE
  1182	001725	254 00 0 00 001715 		JRST	NODIR			;CAN'T FIND IT
  1183	001726	400 04 0 00 000000 		SETZ	D,			;MAKE D POINT TO 0 FOR WRTFNX ROUTINE
  1184	001727	260 17 0 00 004070 	DIRPNT:	GO	RD4			;READ FIRST WORD OF FILE
  1185	001730	254 00 0 00 001712 		JRST	DIRDON			;NO WORDS IN FILE
  1186	001731	201 00 0 00 000015 	DIRLIN:	MOVEI	CR			;PRINT A CARRIAGE RETURN
  1187	001732	260 17 0 00 004144 		GO	WRCHAR
  1188	001733	201 00 0 00 000012 		MOVEI	LF			;PRINT A LINE FEED
  1189	001734	260 17 0 00 004144 		GO	WRCHAR
  1190	001735	201 03 0 00 000004 		MOVEI	C,4			;SET UP ENTRIES PER LINE COUNTER
  1191	001736	260 17 0 00 004070 	DIRFLE:	GO	RD4			;READ FILE NAME
  1192	001737	254 00 0 00 001762 		JRST	DIRLST			;END OF FILE
  1193	001740	607 00 0 00 770000 		TLNN	770000			;CHECK IF A FILE NAME
  1194	001741	254 00 0 00 001767 		JRST	DIRREC			;NO, MUST BE END OF RECORD
  1195	001742	260 17 0 00 004741 		GO	WRTFNX			;PRINT THE NAME
  1196	001743	201 00 0 00 000011 		MOVEI	TAB			;PRINT A TAB
  1197	001744	260 17 0 00 004144 		GO	WRCHAR
  1198	001745	260 17 0 00 004070 		GO	RD4			;READ EXTENSION
  1199	001746	254 00 0 00 001762 		JRST	DIRLST			;END OF FILE
  1200	001747	510 00 0 00 000000 		HLLZ				;CLEAR RIGHT HALF
  1201	001750	260 17 0 00 004741 		GO	WRTFNX			;WRITE EXTENSION
  1202	001751	260 17 0 00 004070 		GO	RD4			;READ NEXT WORD
  1203	001752	254 00 0 00 001762 		JRST	DIRLST			;END OF FILE
  1204	001753	363 03 0 00 001731 		SOJLE	C,DIRLIN		;END OF LINE?
  1205	001754	201 00 0 00 000011 		MOVEI	TAB			;NO, PRINT A TAB
  1206	001755	260 17 0 00 004144 		GO	WRCHAR
  1207	001756	254 00 0 00 001736 		JRST	DIRFLE			;PRINT NEXT FILE NAME
  1208	001757	260 17 0 00 004070 	DIRFLS:	GO	RD4			;READ TILL INPUT END OF FILE
  1209	001760	334 00 0 00 000000 		SKIPA				;GOT IT
  1210	001761	254 00 0 00 001757 		JRST	DIRFLS			;KEEP READING
  1211	001762	201 00 0 00 000015 	DIRLST:	MOVEI	CR			;PRINT A CARRIAGE RETURN
  1212	001763	260 17 0 00 004144 		GO	WRCHAR
  1213	001764	201 00 0 00 000012 		MOVEI	LF			;PRINT A LINE FEED
  1214	001765	260 17 0 00 004144 		GO	WRCHAR
  1215	001766	254 00 0 00 001712 		JRST	DIRDON
  1216	001767	603 00 0 00 777777 	DIRREC:	TLNE	-1			;ABSOLUTE END OF DIRECTORY FILE?
  1217	001770	254 00 0 00 001757 		JRST	DIRFLS			;YES
  1218	001771	260 17 0 00 004070 		GO	RD4			;NO, READ HEADER WORD FROM NEXT RECORD
  1219	001772	254 00 0 00 001762 		JRST	DIRLST			;END OF FILE
  1220	001773	254 00 0 00 001736 		JRST	DIRFLE			;PRINT THIS FILE NAME
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 33
MAGTAP	MAC	22-May-78 09:05		READ COMMANDS                                                                      SEQ 0064

  1221					SUBTTL	READ COMMANDS
  1222
  1223					;*CHEK, CHECK-VERIFY-GET COMMANDS
  1224
  1225	001774	400 02 0 00 000000 	CHEK:	SETZ	B,			;CLEAR CHECK FLAG
  1226	001775	254 00 0 00 002000 		JRST	CHKCOM
  1227	001776	334 02 0 00 007036'	VERIFY:	SKIPA	B,[-1]			;MAKE CHECK FLAG NEGATIVE
  1228	001777	201 02 0 00 777777 	GETCOM:	MOVEI	B,-1			;MAKE CHECK FLAG POSITIVE
  1229
  1230	002000	202 02 0 00 006514'	CHKCOM:	MOVEM	B,CHKFLG#		;SAVE CHECK CONTROL FLAG
  1231	002001	402 00 0 00 006526'		SETZM	GPNBR
  1232	002002	402 00 0 00 006562'		SETZM	TYPNBR
  1233	002003	476 00 0 00 006507'		SETOM	ALOWLD			;ALLOW WILD CHARACTERS
  1234
  1235					;*	INPUT REST OF COMMAND
  1236
  1237	002004	306 01 0 00 000057 		CAIN	A,"/"			;CHECH IF TERM A SLASH
  1238	002005	254 00 0 00 002015 		JRST	CHKLST			;YES, GET NULL LIST
  1239	002006	306 01 0 00 000012 		CAIN	A,LF			;CHECK IF TERM A LF
  1240	002007	254 00 0 00 002015 		JRST	CHKLST			;YES, GET NULL LIST
  1241	002010	260 17 0 00 003613 		GO	INWORD			;YES, GET NEXT WORD OF INPUT
  1242	002011	306 01 0 00 000057 		CAIN	A,"/"			;IF TERM NOW A SLASH
  1243	002012	326 00 0 00 000425 		JUMPN	CMDERR			;AND ONE WORD TYPED, ERROR
  1244	002013	306 01 0 00 000012 		CAIN	A,LF			;IF TERM NOW A LF
  1245	002014	326 00 0 00 000425 		JUMPN	CMDERR			;AND ONE WORD TYPED, ERROR
  1246	002015	260 17 0 00 003371 	CHKLST:	GO	INLIST			;INPUT FILE LIST
  1247	002016	306 01 0 00 000057 		CAIN	A,"/"			;IS SLASH TERMINATOR ?
  1248	002017	260 17 0 00 000434 		GO	SWPROC			;YES, PROCESS SWITCH COMMAND
  1249	002020	552 02 0 00 006534'		HRRZM	B,LSTADR#		;SAVE ADDRESS OF LIST
  1250	002021	576 02 0 00 006535'		HLREM	B,LSTCNT#		;SAVE COUNT OF FILES
  1251	002022	201 00 0 00 000001 		MOVEI	CH1			;SET UP TO USE CHANNEL 1
  1252	002023	202 00 0 00 006510'		MOVEM	CHAN			;PUT IN CHAN FOR FIND ROUTINE
  1253	002024	200 07 0 00 007037'		MOVE	BUFFS,[BUF2,,BUF1]	;SET UP BUFFER ADDRESSES
  1254	002025	201 10 0 00 000006 		MOVEI	CNT,6			;SET UP CNT
  1255	002026	201 05 0 00 000010 		MOVEI	STAT,10			;SET DATA MODE TO IMAGE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 34
MAGTAP	MAC	22-May-78 09:05		READ COMMANDS                                                                      SEQ 0065

  1256					;*	READ THE MAGTAPE DIRECTORY FILE
  1257
  1258	002027	260 17 0 00 002664 		GO	GETDIR			;GET THE DIRECTORY FILE INTO CORE
  1259	002030	260 17 0 00 003567 		GO	MAGBUF			;SET UP MAGTAPE BUFFERS
  1260	002031	200 00 0 00 000121 		MOVE	.JBFF			;SAVE FIRST FREE
  1261	002032	202 00 0 00 006554'		MOVEM	SAVFF
  1262
  1263					;*	SET UP FOR EXAMINING LIST OF FILES
  1264
  1265	002033	335 00 0 00 006535'		SKIPGE	LSTCNT			;SKIP IF CHECKING ALL FILES
  1266	002034	254 00 0 00 002241 		JRST	CHKWLD			;NO, GO GET FIRST ONE FROM LIST
  1267
  1268	002035	550 00 0 00 006537'		HRRZ	MAGDIR			;GET DIRECTORY ADDRESS
  1269	002036	340 00 0 00 000000 		AOJ				;INCREMENT BY 1
  1270	002037	202 00 0 00 006534'		MOVEM	LSTADR			;SAVE AS LIST ADDRESS
  1271	002040	336 00 0 00 006526'		SKIPN	GPNBR			;BOTH GROUP & TYPE 0 ?
  1272	002041	332 00 0 00 006562'		SKIPE	TYPNBR
  1273	002042	254 00 0 00 002046 		JRST	CHKNXT			;NO
  1274	002043	332 00 0 00 006547'		SKIPE	POSIT			;YES, REWIND TAPE
  1275	002044	072 04 0 00 000001 		MTREW.	CH4,
  1276	002045	402 00 0 00 006547'		SETZM	POSIT			;CLEAR POSITION
  1277
  1278					;*CHKNXT, CHECK EACH FILE NAME IN THE LIST
  1279
  1280	002046	200 12 1 00 006534'	CHKNXT:	MOVE	FN,@LSTADR		;GET FILE NAME
  1281	002047	350 00 0 00 006534'		AOS	LSTADR			;INCREMENT ADDRESS
  1282	002050	510 13 1 00 006534'		HLLZ	EXT,@LSTADR		;GET EXTENSION
  1283
  1284	002051	336 00 0 00 006526'		SKIPN	GPNBR			;GROUP # 0 ?
  1285	002052	254 00 0 00 002056 		JRST	.+4			;YES, GET ALL
  1286	002053	135 00 0 00 007040'		LDB	[POINT 5,@LSTADR,24]	;GET .MTA FILE GROUP #
  1287	002054	312 00 0 00 006526'		CAME	GPNBR			;THIS FILE MATCH SELECTION ?
  1288	002055	254 00 0 00 002236 		JRST	CHKBYP			;NO, BYPASS
  1289
  1290	002056	336 00 0 00 006562'		SKIPN	TYPNBR			;GET /TYPE:ALL ?
  1291	002057	254 00 0 00 002073 		JRST	CHKOK			;YES
  1292
  1293	002060	261 17 0 00 000001 		PUT	A
  1294	002061	135 01 0 00 007041'		LDB	A,[POINT 2,@LSTADR,19]
  1295	002062	350 00 0 00 006534'		AOS	LSTADR			;GET .MTA FILE TYPE NUMBER
  1296	002063	135 00 0 00 007042'		LDB	[POINT 3,@LSTADR,20]
  1297	002064	202 00 0 00 006561'		MOVEM	TYPGET#
  1298	002065	137 01 0 00 007043'		DPB	A,[POINT 2,TYPGET,32]
  1299	002066	262 17 0 00 000001 		GET	A
  1300	002067	200 00 0 00 006562'		MOVE	TYPNBR			;GET /TYPE: NUMBER
  1301	002070	616 00 0 00 006561'		TDNN	TYPGET			;ANY CORR BITS SET IN .MTA FILE ?
  1302	002071	254 00 0 00 002237 		JRST	CHKBYP+1		;NO, BYPASS
  1303	002072	254 00 0 00 002074 		JRST	CHKOK+1
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 35
MAGTAP	MAC	22-May-78 09:05		READ COMMANDS                                                                      SEQ 0066

  1304	002073	350 00 0 00 006534'	CHKOK:	AOS	LSTADR			;INCREMENT ADDRESS
  1305	002074	332 00 0 00 006535'		SKIPE	LSTCNT			;CHECKING ALL FILES ?
  1306	002075	254 00 0 00 002102 		JRST	.+5			;NO
  1307	002076	336 00 0 00 006526'		SKIPN	GPNBR			;BOTH GPNBR & TYPNBR ZERO ?
  1308	002077	332 00 0 00 006562'		SKIPE	TYPNBR
  1309	002100	254 00 0 00 002105 		JRST	CHKGPT			;NO
  1310	002101	254 00 0 00 002111 		JRST	CHKALL			;YES, GO AROUND
  1311	002102	260 17 0 00 002766 		GO	FNDFIL			;FIND THE FILE
  1312	002103	254 00 0 00 002370 		JRST	FNFNDM			;  NOT FOUND
  1313	002104	254 00 0 00 002124 		JRST	CHKLOK			;GO TO LOOKUP FILE
  1314	002105	260 17 0 00 002766 	CHKGPT:	GO	FNDFIL			;FIND THE FILE
  1315	002106	254 00 0 00 002370 		JRST	FNFNDM			;   NOT FOUND
  1316	002107	350 00 0 00 006534'		AOS	LSTADR			;INCREMENT ADR TO NEXT ENTRY
  1317	002110	254 00 0 00 002124 		JRST	CHKLOK			;GO TO LOOKUP FILE
  1318	002111	336 00 0 00 006536'	CHKALL:	SKIPN	LSTSW			;LIST FILES AS PROCESSED ?
  1319	002112	254 00 0 00 002122 		JRST	.+10			;NO
  1320	002113	051 01 0 00 006756'		OUTCHR	[TAB]
  1321	002114	200 00 0 00 000012 		MOVE	FN			;PRINT FILE NAME
  1322	002115	260 17 0 00 003765 		GO	PNTSIX
  1323	002116	051 01 0 00 006605'		OUTCHR	[PERIOD]
  1324	002117	510 00 0 00 000013 		HLLZ	EXT			;PRINT EXT
  1325	002120	260 17 0 00 003765 		GO	PNTSIX
  1326	002121	051 03 0 00 006606'		OUTSTR	[CRLF]
  1327	002122	350 01 0 00 006534'		AOS	A,LSTADR		;INCREMENT ADDRESS TO NEXT ENTRY
  1328	002123	275 01 0 00 000003 		SUBI	A,3			;MAKE A CONTAIN START OF DIRECTORY ENTRY
  1329
  1330	002124	402 00 0 00 006513'	CHKLOK:	SETZM	CHKERR#			;CLEAR CHECK ERROR FLAG
  1331	002125	402 00 0 00 006563'		SETZM	VERERR#			;CLEAR VERIFY ERROR FLAG
  1332	002126	076 04 0 00 000012 		LOOKUP	CH4,FN			;LOOKUP FILE ON MAGTAPE
  1333	002127	255 00 0 00 000000 		JFCL				;CAN'T FAIL
  1334	002130	260 17 0 00 002407 		GO	CHKSET			;SET UP CHECK PARAMETERS
  1335	002131	331 00 0 00 006514'		SKIPL	CHKFLG			;SKIP IF VERIFYING
  1336	002132	254 00 0 00 002136 		JRST	CHKGET			;NO
  1337	002133	260 17 0 00 003060 		GO	FIND			;FIND FILE ON DISK
  1338	002134	254 00 0 00 002373 		JRST	FNFNDD			;ERROR, FILE NOT FOUND
  1339	002135	056 01 0 00 000000 		IN	CH1,			;SET UP BUFFERS
  1340	002136	337 00 0 00 006514'	CHKGET:	SKIPG	CHKFLG			;SKIP IF GET COMMAND
  1341	002137	254 00 0 00 002162 		JRST	CHKDAT			;NO, GO CHECK DATA
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 36
MAGTAP	MAC	22-May-78 09:05		READ COMMANDS                                                                      SEQ 0067

  1342					;*	WRITE FILE TO DISK
  1343
  1344	002140	205 06 0 00 446353 		MOVSI	DEV,'DSK'		;SET DEVICE NAME TO DSK
  1345	002141	050 02 0 00 000005 		OPEN	CH2,STAT		;OPEN ON CHANNEL 2
  1346	002142	254 00 0 00 004655 		JRST	OPENFG			;ERROR
  1347	002143	400 11 0 00 000000 		SETZ	PPN,			;ZERO PPN
  1348	002144	135 00 0 00 007044'		LDB	[POINT 3,2(A),23]	;GET HIGH ORDER BITS OF DATE
  1349	002145	241 00 0 00 777775 		ROT	-3			;POSITION
  1350	002146	546 00 0 00 000013 		HLRM	EXT			;PUT TO RIGHT OF EXTENSION
  1351	002147	135 00 0 00 007045'		LDB	[POINT 12,2(A),35]	;GET REST OF DATE
  1352	002150	202 00 0 00 000014 		MOVEM	DAT			;PUT IN DATE WORD
  1353	002151	135 00 0 00 007046'		LDB	[POINT 11,1(A),35]	;GET CREATION TIME
  1354	002152	242 00 0 00 000014 		LSH	^D12			;POSITION
  1355	002153	436 00 0 00 000014 		ORM	DAT			;SET IN WITH DATE
  1356	002154	135 00 0 00 007047'		LDB	[POINT 9,2(A),8]	;GET EDIT NUMBER
  1357	002155	516 00 0 00 000016 		HRLZM	VER			;PUT IN LEFT OF VERSION WORD
  1358	002156	135 00 0 00 007050'		LDB	[POINT 9,2(A),17]	;GET VERSION NUMBER
  1359	002157	542 00 0 00 000016 		HRRM	VER			;PUT IN VERSION WORD
  1360	002160	077 02 0 00 000010 		ENTER	CH2,CNT			;ENTER FILE
  1361	002161	254 00 0 00 004662 		JRST	ENTRFG			;ERROR
  1362	002162	260 17 0 00 004106 	CHKDAT:	GO	RD4X			;READ A WORD FROM MAGTAPE
  1363	002163	254 00 0 00 002204 		JRST	CHKEOF			;EOF
  1364	002164	260 17 0 00 002425 		GO	CHKWRD			;CHECK WORD
  1365	002165	331 00 0 00 006514'		SKIPL	CHKFLG			;SKIP IF VERIFYING
  1366	002166	254 00 0 00 002174 		JRST	CHKWGT			;NO
  1367	002167	202 00 0 00 000001 		MOVEM	A			;SAVE WORD
  1368	002170	260 17 0 00 004050 		GO	RD1			;READ A WORD FROM DISK
  1369	002171	254 00 0 00 002177 		JRST	CHDEOF			;EOF
  1370	002172	312 00 0 00 000001 		CAME	A			;COMPARE WORDS
  1371	002173	476 00 0 00 006563'		SETOM	VERERR			;SET VERIFY ERROR FLAG
  1372	002174	333 00 0 00 006514'	CHKWGT:	SKIPLE	CHKFLG			;SKIP IF NOT GET COMMAND
  1373	002175	260 17 0 00 004134 		GO	WRT2			;WRITE WORD ONTO DISK
  1374	002176	254 00 0 00 002162 		JRST	CHKDAT			;GO BACK FOR NEXT WORD
  1375
  1376	002177	260 17 0 00 004106 	CHDEOF:	GO	RD4X			;DISK EOF, READ TILL TAPE EOF
  1377	002200	254 00 0 00 002210 		JRST	CHKEOF+4		;EOF
  1378	002201	332 00 0 00 000000 		SKIPE				;IF TAPE ZERO FILLED, OK
  1379	002202	476 00 0 00 006563'		SETOM	VERERR			;OTHERWISE ERROR
  1380	002203	254 00 0 00 002177 		JRST	.-4
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 37
MAGTAP	MAC	22-May-78 09:05		READ COMMANDS                                                                      SEQ 0068

  1381					;*CHKEOF, CHECK THAT BOTH FILES TERMINATE TOGETHER
  1382
  1383	002204	335 00 0 00 006514'	CHKEOF:	SKIPGE	CHKFLG			;SKIP IF NOT VERIFYING
  1384	002205	260 17 0 00 004050 		GO	RD1			;READ FROM DISK
  1385	002206	334 00 0 00 000000 		SKIPA				;EOF IS EXPECTED NOW
  1386	002207	260 17 0 00 002401 		GO	ERREOF			;NO EOF, VERIFY ERROR
  1387	002210	332 00 0 00 006563'		SKIPE	VERERR			;CHECK VERIFY ERROR FLAG
  1388	002211	260 17 0 00 002404 		GO	ERRCHK			;FILES ARE DIFFERENT
  1389
  1390	002212	350 00 0 00 006547'	NEXTA:	AOS	POSIT			;INCREMENT POSITION OF TAPE
  1391	002213	070 04 0 00 000000 	NEXTB:	CLOSE	CH4,			;CLOSE MAGTAPE FILE
  1392	002214	071 01 0 00 000000 		RELEASE	CH1,			;CLOSE INPUT FILE IF VERIFY
  1393	002215	071 02 0 00 000000 		RELEASE CH2,			;CLOSE OUTPUT FILE IN GET
  1394	002216	200 00 0 00 006554'		MOVE	SAVFF			;RESTORE FIRST FREE
  1395	002217	202 00 0 00 000121 		MOVEM	.JBFF			;ADDRESS
  1396	002220	331 00 0 00 006535'	NEXT:	SKIPL	LSTCNT			;SKIP IF CHECKING FILES FROM LIST
  1397	002221	254 00 0 00 002227 		JRST	CHKNXA			;NO
  1398	002222	332 00 0 00 006565'		SKIPE	WILD			;WILD FILE PROCESS ?
  1399	002223	254 00 0 00 002263 		JRST	CHKWNX			;YES, DO ENTIRE .MTA FILE
  1400	002224	351 00 0 00 006535'		AOSL	LSTCNT			;INCREMENT FILE COUNT
  1401	002225	254 00 0 00 000314 		JRST	COMM			;EXIT, ALL FILES CHECKED
  1402	002226	254 00 0 00 002241 		JRST	CHKWLD			;GO CHECK NEXT FILE IN LIST
  1403
  1404	002227	554 00 1 00 006534'	CHKNXA:	HLRZ	@LSTADR			;GET LEFT HALF OF NEXT WORD
  1405	002230	602 00 0 00 770000 		TRNE	770000			;CHECK IF A FILE NAME
  1406	002231	254 00 0 00 002046 		JRST	CHKNXT			;YES, GO CHECK IT
  1407	002232	326 00 0 00 000314 		JUMPN	COMM			;IF NOT ZERO, END OF TAPE
  1408	002233	201 00 0 00 000002 		MOVEI	2			;ANOTHER RECORD TO COME
  1409	002234	272 00 0 00 006534'		ADDM	LSTADR			;INCREMENT ADDRESS TO NEXT FILE NAME
  1410	002235	254 00 0 00 002046 		JRST	CHKNXT			;GO CHECK NEXT FILE
  1411
  1412	002236	350 00 0 00 006534'	CHKBYP:	AOS	LSTADR			;POINT TO NEXT ENTRY
  1413	002237	350 00 0 00 006534'		AOS	LSTADR
  1414	002240	254 00 0 00 002220 		JRST	NEXT			;TRY NEXT FILE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 38
MAGTAP	MAC	22-May-78 09:05		READ COMMANDS                                                                      SEQ 0069

  1415	002241	200 12 1 00 006534'	CHKWLD:	MOVE	FN,@LSTADR		;GET REQUESTED FILE NAME
  1416	002242	350 00 0 00 006534'		AOS	LSTADR
  1417	002243	510 13 1 00 006534'		HLLZ	EXT,@LSTADR		;GET EXTENSION
  1418
  1419	002244	200 01 0 00 007051'		MOVE	A,[POINT 6,FN]
  1420	002245	201 02 0 00 000011 		MOVEI	B,^D9
  1421
  1422	002246	402 00 0 00 006565'		SETZM	WILD#
  1423	002247	134 00 0 00 000001 		ILDB	0,A			;CHECK NAME & EXT FOR WILD
  1424	002250	306 00 0 00 000037 		CAIN	0,'?'			;WILD CHAR ?
  1425	002251	476 00 0 00 006565'		SETOM	WILD			;YES, SET INDICATOR
  1426	002252	367 02 0 00 002247 		SOJG	B,.-3
  1427
  1428	002253	336 00 0 00 006565'		SKIPN	WILD			;WILD INDICATOR SET ?
  1429	002254	254 00 0 00 002051 		JRST	CHKNXT+3		;NO, SINGLE FILE PROCESS
  1430
  1431	002255	200 01 0 00 006537'		MOVE	A,MAGDIR		;START LOOKING AT FILE 0
  1432	002256	275 01 0 00 000002 		SUBI	A,2			;COMPENSATE FOR "FNDWLD"
  1433	002257	476 00 0 00 006567'		SETOM	WILDC
  1434	002260	202 01 0 00 006566'		MOVEM	A,WILDA
  1435
  1436	002261	202 12 0 00 006555'		MOVEM	FN,SAVFN#
  1437	002262	202 13 0 00 006553'		MOVEM	EXT,SAVEXT#
  1438
  1439	002263	200 12 0 00 006555'	CHKWNX:	MOVE	FN,SAVFN		;GET BACK FILE NAME
  1440	002264	200 13 0 00 006553'		MOVE	EXT,SAVEXT
  1441
  1442	002265	260 17 0 00 002270 		GO	FNDWLD			;FIND THE FILE
  1443	002266	254 00 0 00 002224 		JRST	NEXT+4			;SCANNED ENTIRE LIST
  1444
  1445	002267	254 00 0 00 002124 		JRST	CHKLOK			;GO LOOKUP & PROCESS FILE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 39
MAGTAP	MAC	22-May-78 09:05		READ COMMANDS                                                                      SEQ 0070

  1446					;*FNDWLD, FIND THE FILE SPECIFIED IN THE .MTA DIRECTORY
  1447					;*	DOES PROCESSING FOR WILD FILE NAMES
  1448					;*	RETURNS +1 WHEN COMPLETE
  1449					;*	RETURNS +2 AFTER TAPE IN POSITION
  1450
  1451	002270	261 17 0 00 000000 	FNDWLD:	PUT	0
  1452	002271	261 17 0 00 000002 		PUT	B
  1453	002272	261 17 0 00 000003 		PUT	C
  1454
  1455	002273	200 03 0 00 006567'		MOVE	C,WILDC#		;GET SAVED POINTERS
  1456	002274	200 01 0 00 006566'		MOVE	A,WILDA#
  1457	002275	254 00 0 00 002305 		JRST	FNDWL2
  1458
  1459	002276	260 17 0 00 002320 	FNDWL1:	GO	FILWLD			;COMPARE FILE NAMES
  1460	002277	254 00 0 00 002305 		JRST	FNDWL2			;NO MATCH
  1461
  1462	002300	200 12 0 01 000000 		MOVE	FN,(A)			;SETUP PROPER FILE NAME
  1463	002301	510 13 0 01 000001 		HLLZ	EXT,1(A)
  1464
  1465	002302	202 03 0 00 006567'		MOVEM	C,WILDC			;SAVE POINTERS
  1466	002303	202 01 0 00 006566'		MOVEM	A,WILDA
  1467
  1468	002304	254 00 0 00 003015 		JRST	FOUND			;GO POSITION TO FILE
  1469
  1470	002305	271 01 0 00 000003 	FNDWL2:	ADDI	A,3			;INCREASE ADDRESS OVER ENTRY
  1471	002306	554 00 0 01 000000 		HLRZ	(A)			;GET LEFT HALF OF NEXT WORD
  1472	002307	602 00 0 00 770000 		TRNE	770000			;CHECK IF A FILE NAME
  1473	002310	344 03 0 00 002276 		AOJA	C,FNDWL1		;YES, INCREMENT COUNT & GO TO IT
  1474	002311	326 00 0 00 002314 		JUMPN	FNDWL3			;IF END OF DIRECTORY, RETURN
  1475	002312	271 01 0 00 000002 		ADDI	A,2
  1476	002313	344 03 0 00 002276 		AOJA	C,FNDWL1
  1477
  1478	002314	262 17 0 00 000003 	FNDWL3:	GET	C
  1479	002315	262 17 0 00 000002 		GET	B
  1480	002316	262 17 0 00 000000 		GET	0
  1481	002317	263 17 0 00 000000 		RTN				;SCANNED ENTIRE DIR, DONE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 40
MAGTAP	MAC	22-May-78 09:05		READ COMMANDS                                                                      SEQ 0071

  1482					;*FILWLD, FILE NAME WILD CHARACTER COMPARE
  1483					;*	CHECKS REQUESTED AND .MTA FILE NAMES CHAR BY CHAR
  1484					;*	WILD CHAR "?" ALWAYS MATCHES
  1485					;*	RETURN +1 FOR NO MATCH
  1486					;*	RETURN +2 IF FILE NAMES MATCH
  1487
  1488	002320	261 17 0 00 000001 	FILWLD:	PUT	A
  1489	002321	261 17 0 00 000002 		PUT	B
  1490	002322	261 17 0 00 000003 		PUT	C
  1491	002323	261 17 0 00 000004 		PUT	D
  1492	002324	261 17 0 00 000014 		PUT	DAT
  1493	002325	261 17 0 00 000015 		PUT	SIZ
  1494
  1495	002326	336 00 0 00 006526'		SKIPN	GPNBR			;GROUP # 0 ?
  1496	002327	254 00 0 00 002333 		JRST	.+4			;YES, ALL
  1497	002330	135 00 0 00 007052'		LDB	[POINT 5,1(A),24]	;GET .MTA FILE GROUP #
  1498	002331	312 00 0 00 006526'		CAME	GPNBR			;THIS MATCH SELECTION ?
  1499	002332	254 00 0 00 002361 		JRST	FILWL3			;NO, BYPASS
  1500
  1501	002333	336 00 0 00 006562'		SKIPN	TYPNBR			;GET /TYPE:ALL ?
  1502	002334	254 00 0 00 002344 		JRST	FILWL1			;YES
  1503
  1504	002335	135 02 0 00 007053'		LDB	B,[POINT 2,1(A),19]
  1505	002336	135 00 0 00 007054'		LDB	0,[POINT 3,2(A),20]
  1506	002337	202 00 0 00 006561'		MOVEM	TYPGET			;GET .MTA FILE TYPE NUMBER
  1507	002340	137 02 0 00 007043'		DPB	B,[POINT 2,TYPGET,32]
  1508	002341	200 00 0 00 006562'		MOVE	TYPNBR			;GET /TYPE:NUMBER
  1509	002342	616 00 0 00 006561'		TDNN	TYPGET			;ANY CORR BITS SET IN .MTA FILE ?
  1510	002343	254 00 0 00 002361 		JRST	FILWL3			;NO, BYPASS
  1511
  1512	002344	200 14 0 01 000000 	FILWL1:	MOVE	DAT,(A)			;SETUP .MTA FILE NAME
  1513	002345	510 15 0 01 000001 		HLLZ	SIZ,1(A)
  1514
  1515	002346	200 03 0 00 007051'		MOVE	C,[POINT 6,FN]
  1516	002347	200 04 0 00 007055'		MOVE	D,[POINT 6,DAT]
  1517	002350	201 02 0 00 000011 		MOVEI	B,^D9			;COMPARE 9 CHARS
  1518
  1519	002351	134 00 0 00 000003 	FILWL2:	ILDB	0,C			;GET CHAR FROM NAME REQUESTED
  1520	002352	134 01 0 00 000004 		ILDB	A,D			;GET CHAR FROM .MTA FILE NAME
  1521	002353	306 00 0 00 000037 		CAIN	0,'?'			;REQ CHAR A WILD CHAR ?
  1522	002354	254 00 0 00 002357 		JRST	.+3			;YES, MAKE A MATCH
  1523	002355	312 00 0 00 000001 		CAME	0,A			;ARE BOTH CHARS THE SAME ?
  1524	002356	254 00 0 00 002361 		JRST	FILWL3			;NO, DOES NOT MATCH
  1525	002357	367 02 0 00 002351 		SOJG	B,FILWL2		;SO FAR OK, DO ALL 9 CHARS
  1526
  1527	002360	350 00 0 17 777772 		AOS	-6(P)			;MATCH, SKIP RETURN
  1528
  1529	002361	262 17 0 00 000015 	FILWL3:	GET	SIZ
  1530	002362	262 17 0 00 000014 		GET	DAT
  1531	002363	262 17 0 00 000004 		GET	D
  1532	002364	262 17 0 00 000003 		GET	C
  1533	002365	262 17 0 00 000002 		GET	B
  1534	002366	262 17 0 00 000001 		GET	A
  1535	002367	263 17 0 00 000000 		RTN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 41
MAGTAP	MAC	22-May-78 09:05		READ COMMANDS                                                                      SEQ 0072

  1536	002370	260 17 0 00 001516 	FNFNDM:	GO	ERRNAM
  1537						PRINT	<FILE NOT FOUND ON MAGTAPE
  1538	002371	051 03 0 00 007056'	>
  1539	002372	254 00 0 00 002220 		JRST	NEXT			;GO TO NEXT FILE
  1540
  1541	002373	260 17 0 00 001516 	FNFNDD:	GO	ERRNAM
  1542						PRINT	<FILE NOT FOUND ON DISK, CAN'T VERIFY
  1543	002374	051 03 0 00 007064'	>
  1544	002375	335 00 0 00 006535'		SKIPGE	LSTCNT			;SKIP IF VERIFYING ENTIRE TAPE
  1545	002376	254 00 0 00 002213 		JRST	NEXTB			;NO, GO TO NEXT FILE
  1546	002377	072 04 0 00 000016 		MTSKF.	CH4,			;SKIP OVER FILE
  1547	002400	254 00 0 00 002212 		JRST	NEXTA			;GO TO NEXT FILE
  1548
  1549	002401	260 17 0 00 001516 	ERREOF:	GO	ERRNAM
  1550						PRINT	<FILES ARE DIFFERENT LENGTH
  1551	002402	051 03 0 00 007074'	>
  1552	002403	263 17 0 00 000000 		RTN
  1553
  1554	002404	260 17 0 00 001516 	ERRCHK:	GO	ERRNAM
  1555						PRINT	<FILES ARE DIFFERENT
  1556	002405	051 03 0 00 007102'	>
  1557	002406	263 17 0 00 000000 		RTN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 42
MAGTAP	MAC	22-May-78 09:05		READ COMMANDS                                                                      SEQ 0073

  1558					;*CHKSET, SET UP TO CHECK INTERNAL CHECKSUM OF FILE
  1559
  1560	002407	201 02 0 00 177777 	CHKSET:	MOVEI	B,177777		;SET UP MASK BITS FOR
  1561	002410	554 00 0 00 000013 		HLRZ	EXT			;  ASSEMBLED WORD
  1562	002411	302 00 0 00 412120 		CAIE	'A10'			;CHECK IF AN A10
  1563	002412	306 00 0 00 412121 		CAIN	'A11'			;  OR A11 FILE
  1564	002413	254 00 0 00 002422 		JRST	CHKA			;YES
  1565	002414	302 00 0 00 624155 		CAIE	'RAM'			;CHECK IF A RAM
  1566	002415	306 00 0 00 645143 		CAIN	'TIC'			;OR TIC FILE
  1567	002416	254 00 0 00 002422 		JRST	CHKA			;YES
  1568	002417	302 00 0 00 413000 		CAIE	'A8 '			;18 BIT WORDS EXCEPT
  1569	002420	254 00 0 00 002457 		JRST	CHKN			;NO, NOT AN ASCII FILE, DON'T CHECK
  1570	002421	242 02 0 00 777774 		LSH	B,-4			;IF A8 FILE, THEN 12 BIT WORDS
  1571	002422	202 02 0 00 006515'	CHKA:	MOVEM	B,CHKMSK#		;SAVE MASK
  1572	002423	201 02 0 00 002437 		MOVEI	B,CHR1			;SET UP TO EXPECT
  1573	002424	263 17 0 00 000000 		RTN				;  CHARACTER #1
  1574
  1575					;*CHKWRD, COME HERE TO CHECK EACH WORD OF FILE
  1576
  1577	002425	332 00 0 00 006513'	CHKWRD:	SKIPE	CHKERR			;CHECK IF ANY ERROR SO FAR
  1578	002426	263 17 0 00 000000 		RTN				;YES, DON'T DO ANY MORE CHECKING
  1579	002427	205 01 0 00 440700 		MOVSI	A,(POINT 7)		;GET BYTE POINTER TO WORD
  1580	002430	134 03 0 00 000001 	CHKNX:	ILDB	C,A			;GET A CHARACTER
  1581	002431	322 03 0 00 002434 		JUMPE	C,CHKNC			;IF ZERO, GO TO NEXT CHARACTER
  1582	002432	302 03 0 00 000012 		CAIE	C,LF			;IF LINE FEED, GO TO NEXT CHARACTER
  1583	002433	254 00 1 00 000002 		JRST	@B			;GO TO EXPECTING ROUTINE
  1584	002434	607 01 0 00 700000 	CHKNC:	TLNN	A,700000		;LOOK IF 5 CHARACTERS ALREADY CHECKED
  1585	002435	263 17 0 00 000000 		RTN				;YES, RETURN FOR NEXT WORD
  1586	002436	254 00 0 00 002430 		JRST	CHKNX			;NO, GO CHECK NEXT CHARACTER
  1587
  1588	002437	402 00 0 00 006516'	CHR1:	SETZM	CHKSM#			;CLEAR CHECKSUM WORD
  1589	002440	301 03 0 00 000060 		CAIL	C,"0"			;CHECK IF CHARACTER BETWEEN
  1590	002441	303 03 0 00 000132 		CAILE	C,"Z"			;  0 AND Z
  1591	002442	254 00 0 00 002461 		JRST	CHKE2			;NO, ERROR
  1592	002443	201 02 0 00 002464 		MOVEI	B,CHR2			;SET UP TO EXPECT SECOND CHARACTER
  1593	002444	306 03 0 00 000073 		CAIN	C,SCOLON		;UNLESS CHARACTER IS A SEMI-COLON
  1594	002445	201 02 0 00 002544 		MOVEI	B,CHROD			;THEN IGNORE THE ENTIRE LINE
  1595	002446	254 00 0 00 002434 		JRST	CHKNC			;  OF LINE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 43
MAGTAP	MAC	22-May-78 09:05		READ COMMANDS                                                                      SEQ 0074

  1596	002447	260 17 0 00 001516 	CHKE1:	GO	ERRNAM
  1597	002450	051 03 0 00 007107'		PRINT	<ILLEGAL CHARACTER CODE IN FILE ">
  1598	002451	261 17 0 00 000000 	CHKEC:	PUT	0			;SAVE 0
  1599	002452	200 00 0 00 000003 		MOVE	C			;GET CHARACTER
  1600	002453	260 17 0 00 003724 		GO	PNTOCT			;PRINT CHARACTER CODE
  1601	002454	051 03 0 00 007116'		PRINT	<">			;END THE QUOTATION
  1602	002455	262 17 0 00 000000 		GET	0			;RESTORE 0
  1603	002456	051 03 0 00 006606'	CHKE:	OUTSTR	[CRLF]			;END THE LINE
  1604	002457	476 00 0 00 006513'	CHKN:	SETOM	CHKERR			;SET ERROR FLAG
  1605	002460	263 17 0 00 000000 		RTN				;IGNORE REST OF FILE
  1606
  1607	002461	260 17 0 00 001516 	CHKE2:	GO	ERRNAM
  1608	002462	051 03 0 00 007117'		PRINT	<ILLEGAL FIRST CHARACTER IN LINE OF FILE ">
  1609	002463	254 00 0 00 002451 		JRST	CHKEC			;PRINT CHARACTER CODE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 44
MAGTAP	MAC	22-May-78 09:05		READ COMMANDS                                                                      SEQ 0075

  1610					;*CHR2, CHECK FOR SPACE OR "O" IN SECOND CHARACTER POSITION
  1611
  1612	002464	400 04 0 00 000000 	CHR2:	SETZ	D,			;CLEAR CHARACTER ASSEMBLY WORD
  1613	002465	201 02 0 00 002476 		MOVEI	B,CHRAD			;SET UP FOR ASCII DATA
  1614	002466	306 03 0 00 000040 		CAIN	C,SPACE			;CHECK IF A SPACE
  1615	002467	254 00 0 00 002434 		JRST	CHKNC			;YES, GO GET NEXT CHARACTER
  1616	002470	201 02 0 00 002544 		MOVEI	B,CHROD			;SET UP FOR OCTAL DATA
  1617	002471	306 03 0 00 000117 		CAIN	C,"O"			;CHECK IF O
  1618	002472	254 00 0 00 002434 		JRST	CHKNC			;YES, GO GET NEXT CHARACTER
  1619	002473	260 17 0 00 001516 		GO	ERRNAM
  1620	002474	051 03 0 00 007130'		PRINT	<ILLEGAL SECOND CHARACTER IN LINE OF FILE ">
  1621	002475	254 00 0 00 002451 		JRST	CHKEC			;PRINT CHARACTER CODE
  1622
  1623	002476	302 03 0 00 000054 	CHRAD:	CAIE	C,COMMA			;CHECK IF A COMMA
  1624	002477	254 00 0 00 002504 		JRST	CHRA1			;NO
  1625	002500	404 04 0 00 006515'		AND	D,CHKMSK		;FULL WORD IN D, STRIP
  1626	002501	272 04 0 00 006516'		ADDM	D,CHKSM			;ADD TO CHECKSUM
  1627	002502	400 04 0 00 000000 		SETZ	D,			;CLEAR ASSEMBLED WORD
  1628	002503	254 00 0 00 002434 		JRST	CHKNC			;GO GET NEXT CHARACTER
  1629
  1630	002504	302 03 0 00 000015 	CHRA1:	CAIE	C,CR			;CHECK IF A CARRIAGE RETURN
  1631	002505	254 00 0 00 002516 		JRST	CHRA2			;NO
  1632	002506	201 02 0 00 002437 		MOVEI	B,CHR1			;SET UP TO EXPECT NEW LINE
  1633	002507	404 04 0 00 006515'		AND	D,CHKMSK		;STRIP CHECKSUM WORD
  1634	002510	270 04 0 00 006516'		ADD	D,CHKSM			;ADD TO CHECKSUM COMPUTED
  1635	002511	616 04 0 00 006515'		TDNN	D,CHKMSK		;CHECK IF SUM IS ZERO
  1636	002512	254 00 0 00 002434 		JRST	CHKNC			;GO TO NEXT CHARACTER IF ZERO SUM
  1637	002513	260 17 0 00 001516 		GO	ERRNAM
  1638	002514	051 03 0 00 007141'		PRINT	<CHECKSUM ERROR IN FILE>
  1639	002515	254 00 0 00 002456 		JRST	CHKE			;SET ERROR FLAG
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 45
MAGTAP	MAC	22-May-78 09:05		READ COMMANDS                                                                      SEQ 0076

  1640	002516	301 03 0 00 000065 	CHRA2:	CAIL	C,"5"			;5 TO : ?
  1641	002517	303 03 0 00 000072 		CAILE	C,":"
  1642	002520	254 00 0 00 002526 		JRST	.+6
  1643
  1644	002521	275 03 0 00 000065 		SUBI	C,"5"			;YES, INSERT SUPPRESSED ONES
  1645	002522	242 04 0 00 000006 		LSH	D,6
  1646	002523	660 04 0 00 000077 		TRO	D,77
  1647	002524	367 03 0 00 002522 		SOJG	C,.-2
  1648	002525	254 00 0 00 002434 		JRST	CHKNC
  1649
  1650	002526	301 03 0 00 000060 		CAIL	C,"0"			;0 TO 4 ?
  1651	002527	303 03 0 00 000064 		CAILE	C,"4"
  1652	002530	254 00 0 00 002535 		JRST	CHRA3			;NO
  1653
  1654	002531	405 03 0 00 000007 		ANDI	C,7			;YES, INSERT SUPPRESSED ZEROS
  1655	002532	242 04 0 00 000006 		LSH	D,6
  1656	002533	365 03 0 00 002532 		SOJGE	C,.-1
  1657	002534	254 00 0 00 002434 		JRST	CHKNC
  1658
  1659	002535	301 03 0 00 000075 	CHRA3:	CAIL	C,75			;CHECK IF CHARACTER BETWEEN
  1660	002536	303 03 0 00 000174 		CAILE	C,174			;  75 AND 174
  1661	002537	254 00 0 00 002447 		JRST	CHKE1			;NO, ERROR
  1662
  1663	002540	405 03 0 00 000077 		ANDI	C,77			;STRIP TO 6 BITS
  1664	002541	242 04 0 00 000006 		LSH	D,6			;MAKE ROOM FOR BITS
  1665	002542	436 03 0 00 000004 		ORM	C,D			;MERGE IN THE NEW BITS
  1666	002543	254 00 0 00 002434 		JRST	CHKNC			;GET NEXT CHARACTER
  1667
  1668	002544	306 03 0 00 000015 	CHROD:	CAIN	C,CR			;WAIT FOR CARRAIGE RETURN
  1669	002545	201 02 0 00 002437 		MOVEI	B,CHR1			;YES, SET UP FOR NEW LINE
  1670	002546	254 00 0 00 002434 		JRST	CHKNC			;GET NEXT CHARACTER
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 46
MAGTAP	MAC	22-May-78 09:05		NUMBER COMMAND                                                                     SEQ 0077

  1671					SUBTTL	NUMBER COMMAND
  1672
  1673					;*NUMBER, NUMBER COMMAND
  1674
  1675	002547	476 00 0 00 006542'	NUMBER:	SETOM	NEWVER			;SET NEW VERSION AND DATE
  1676	002550	476 00 0 00 006541'		SETOM	NEWDAT			;  STORAGE TO INVALID DATA
  1677	002551	306 01 0 00 000012 		CAIN	A,LF			;END OF LINE?
  1678	002552	254 00 0 00 000425 		JRST	CMDERR			;YES, ERROR
  1679	002553	260 17 0 00 003613 		GO	INWORD			;READ FILE NAME
  1680	002554	302 01 0 00 000056 		CAIE	A,PERIOD		;TERM WITH PERIOD
  1681	002555	254 00 0 00 000425 		JRST	CMDERR			;  ERROR
  1682	002556	322 00 0 00 000425 		JUMPE	CMDERR			;ERROR IF NO FILE NAMED
  1683	002557	202 00 0 00 000012 		MOVEM	FN			;SAVE FILE NAME
  1684	002560	260 17 0 00 003613 		GO	INWORD			;GET EXT
  1685	002561	306 01 0 00 000012 		CAIN	A,LF			;END OF LINE?
  1686	002562	254 00 0 00 000425 		JRST	CMDERR			;YES, ERROR
  1687	002563	512 00 0 00 000013 		HLLZM	EXT			;SAVE EXT
  1688	002564	306 01 0 00 000056 		CAIN	A,PERIOD		;CAN'T TERM WITH PERIOD
  1689	002565	254 00 0 00 000425 		JRST	CMDERR			;ERROR
  1690	002566	260 17 0 00 003613 		GO	INWORD			;GET EDIT NUMBER OR DATE
  1691	002567	302 01 0 00 000056 	NUMARG:	CAIE	A,PERIOD		;TERM WITH PERIOD?
  1692	002570	254 00 0 00 002626 		JRST	NUMDAT			;NO, CHECK IF DASH
  1693	002571	336 00 0 00 006543'		SKIPN	NOTNUM			;CHECK IF NUMBER WAS TYPED
  1694	002572	602 00 0 00 777777 		TRNE	-1			;CHECK IF NO MORE THAN 3 DIGITS
  1695	002573	254 00 0 00 000425 		JRST	CMDERR			;TOO LARGE
  1696	002574	260 17 0 00 004552 		GO	CNVNUM			;CONVERT TO NUMBER
  1697	002575	516 00 0 00 006542'		HRLZM	NEWVER#			;SAVE EDIT NUMBER
  1698	002576	260 17 0 00 003712 		GO	INNUM			;INPUT VERSION NUMBER
  1699	002577	303 00 0 00 000777 		CAILE	777			;CHECK RANGE
  1700	002600	254 00 0 00 000425 		JRST	CMDERR			;TOO LARGE
  1701	002601	542 00 0 00 006542'		HRRM	NEWVER			;STORE VERSION NUMBER
  1702	002602	306 01 0 00 000012 	NUMFLS:	CAIN	A,LF			;END OF LINE YET?
  1703	002603	254 00 0 00 002610 		JRST	NUMFND			;YES, GO AROUND
  1704	002604	260 17 0 00 003613 		GO	INWORD			;INPUT NEXT WORD
  1705	002605	326 00 0 00 002567 		JUMPN	NUMARG			;JUMP IF ANYTHING TYPED
  1706	002606	302 01 0 00 000012 		CAIE	A,LF			;CHECK IF END OF LINE
  1707	002607	254 00 0 00 000425 		JRST	CMDERR			;NO, ERROR
  1708	002610	201 00 0 00 000001 	NUMFND:	MOVEI	CH1			;SET UP CHAN
  1709	002611	202 00 0 00 006510'		MOVEM	CHAN			;  FOR CHANNEL 1
  1710	002612	260 17 0 00 003060 		GO	FIND			;FIND FILE
  1711	002613	254 00 0 00 004713 		JRST	NOTFND			;NOT FOUND
  1712	002614	331 00 0 00 006542'		SKIPL	NEWVER			;SKIP IF NO VERSION TYPED
  1713	002615	200 16 0 00 006542'		MOVE	VER,NEWVER		;GET NEW VERSION
  1714	002616	335 01 0 00 006541'		SKIPGE	A,NEWDAT		;SKIP IF A DATE WAS TYPED
  1715	002617	254 00 0 00 002623 		JRST	NUMREN			;NO, GO AROUND
  1716	002620	137 01 0 00 006700'		DPB	A,[POINT 12,DAT,35]	;DEPOSIT LOW BITS OF NEW DATE
  1717	002621	242 01 0 00 777764 		LSH	A,-^D12			;SHIFT OUT LOW ORDER BITS
  1718	002622	137 01 0 00 006701'		DPB	A,[POINT 3,EXT,20]	;DEPOSIT HIGH ORDER BITS
  1719	002623	055 01 0 00 000010 	NUMREN:	RENAME	CH1,CNT			;RENAME THE FILE
  1720	002624	051 03 0 00 007146'		PRINT	<? RENAME ERROR>
  1721	002625	254 00 0 00 000314 		JRST	COMM
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 47
MAGTAP	MAC	22-May-78 09:05		NUMBER COMMAND                                                                     SEQ 0078

  1722					;*	A DATE IS SPECIFIED IN COMMAND
  1723
  1724	002626	302 01 0 00 000055 	NUMDAT:	CAIE	A,DASH			;TERM A DASH?
  1725	002627	254 00 0 00 000425 		JRST	CMDERR			;NO, ERROR
  1726	002630	336 00 0 00 006543'		SKIPN	NOTNUM			;CHECK IF NUMBER
  1727	002631	603 00 0 00 000077 		TLNE	77			;  OF NO MORE THAN 2 DIGITS
  1728	002632	254 00 0 00 000425 		JRST	CMDERR			;NO
  1729	002633	260 17 0 00 004566 		GO	CNVDEC			;CONVERT TO NUMBER
  1730	002634	307 00 0 00 000037 		CAIG	^D31			;CHECK RANGE
  1731	002635	375 03 0 00 000000 		SOSGE	C,0			;SAVE DATE, LESS 1
  1732	002636	254 00 0 00 000425 		JRST	CMDERR			;DATE NOT LEGAL
  1733	002637	260 17 0 00 003613 		GO	INWORD			;INPUT ANOTHER WORD
  1734	002640	302 01 0 00 000055 		CAIE	A,DASH			;TERMINATOR BETTER BE A DASH
  1735	002641	254 00 0 00 000425 		JRST	CMDERR			;NO, ERROR
  1736	002642	200 02 0 00 005023 		MOVE	B,DATTBP		;GET ADR OF MONTH TABLE
  1737	002643	260 17 0 00 003125 		GO	COMPARE			;COMPARE INPUT WITH TABLE
  1738	002644	254 00 0 00 000425 		JRST	CMDERR			;ERROR
  1739	002645	260 17 0 00 003613 		GO	INWORD			;READ NEXT WORD
  1740	002646	603 00 0 00 000077 		TLNE	77			;MAKE SURE NUMBER IS ONLY 2 DIGITS
  1741	002647	254 00 0 00 000425 		JRST	CMDERR			;ERROR
  1742	002650	261 17 0 00 000001 		PUT	A			;SAVE A
  1743	002651	260 17 0 00 004566 		GO	CNVDEC			;CONVERT TO NUMBER
  1744	002652	275 00 0 00 000100 		SUBI	^D64			;SUBTRACT START DATE OF 64
  1745	002653	335 00 0 00 000000 		SKIPGE				;NEGATIVE RESULT?
  1746	002654	271 00 0 00 000144 		ADDI	^D100			;YES, MAKE POSITIVE
  1747	002655	221 00 0 00 000014 		IMULI	^D12			;MULTIPLY BY 12
  1748	002656	272 00 0 00 000002 		ADDM	B			;ADD TO MONTH
  1749	002657	221 02 0 00 000037 		IMULI	B,^D31			;MULITPLY BY 31
  1750	002660	270 02 0 00 000003 		ADD	B,C			;ADD DAYS
  1751	002661	202 02 0 00 006541'		MOVEM	B,NEWDAT#		;SAVE NEW DATE
  1752	002662	262 17 0 00 000001 		GET	A			;RESTORE A
  1753	002663	254 00 0 00 002602 		JRST	NUMFLS			;CONTINUE TO READ ARGUMENTS
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 48
MAGTAP	MAC	22-May-78 09:05		DIRECTORY READ                                                                     SEQ 0079

  1754					SUBTTL	DIRECTORY READ
  1755
  1756					;*GETDIR, READ DIRECTORY FILE FROM MAGTAPE
  1757
  1758	002664	336 00 0 00 000210 	GETDIR:	SKIPN	MAGDEV			;SKIP IF A MAGTAGE DEVICE AVAILABLE
  1759	002665	254 00 0 00 002763 		JRST	IMPOSB			;IMPOSSIBLE WITH NO MAGTAPE
  1760	002666	332 00 0 00 006524'		SKIPE	DIRFLG			;SKIP IF DIRECTORY NOT IN CORE
  1761	002667	263 17 0 00 000000 		RTN				;ALREADY IN CORE, RETURN NOW
  1762	002670	200 01 0 00 000207 		MOVE	A,MAGINT		;GET INITIAL STATUS BITS
  1763	002671	060 04 0 01 000007 		SETSTS	CH4,7(A)		;SET MODE TO DUMP
  1764	002672	072 04 0 00 000001 		MTREW.	CH4,			;REWIND THE MAGTAPE
  1765	002673	201 00 0 00 000003 		MOVEI	3			;SPACE FORWARD
  1766	002674	072 04 0 00 000016 		MTSKF.	CH4,			;  TO MAGTAP.MTA
  1767	002675	367 00 0 00 002674 		SOJG	.-1			;  THREE FILES FORWARD
  1768	002676	400 03 0 00 000000 		SETZ	C,			;CLEAR FILE COUNT
  1769	002677	200 01 0 00 000121 		MOVE	A,.JBFF			;GET FIRST FREE ADDRESS
  1770	002700	202 01 0 00 006537'		MOVEM	A,MAGDIR#		;SAVE AS START OF DIRECTORY
  1771	002701	360 01 0 00 000000 		SOJ	A,			;GET ADDRESS -1 FOR IO WORD
  1772	002702	201 04 0 01 000001 	GETDRR:	MOVEI	D,1(A)			;GET START OF DATA BUFFER
  1773	002703	271 04 0 00 001000 		ADDI	D,RCDSIZ		;ADD SIZE OF RECORD
  1774	002704	260 17 0 00 003426 		GO	INCORE			;CHECK IF CORE AVAILABLE
  1775	002705	202 04 0 00 000121 		MOVEM	D,.JBFF			;INCREASE FIRST FREE
  1776	002706	505 01 0 00 777000 		HRLI	A,-RCDSIZ		;BUILD IO WORD
  1777	002707	400 02 0 00 000000 		SETZ	B,			;CLEAR LOCATION AFTER IO WORD
  1778	002710	056 04 0 00 000001 		IN	CH4,A			;READ A RECORD
  1779	002711	334 00 0 00 000000 		SKIPA
  1780	002712	254 00 0 00 002747 		JRST	DIRRDE			;DIRECTORY READ ERROR
  1781	002713	200 04 0 01 000001 		MOVE	D,1(A)			;GET HEADER WORD
  1782	002714	302 03 0 04 000000 		CAIE	C,(D)			;CHECK IF EXPECTED FILE NUMBER
  1783	002715	254 00 0 00 002755 		JRST	DIRHDE			;NO, HEADER ERROR
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 49
MAGTAP	MAC	22-May-78 09:05		DIRECTORY READ                                                                     SEQ 0080

  1784					;*	CHECK INTERNAL CHECKSUM OF EACH DIRECTORY RECORD
  1785
  1786	002716	271 01 0 00 000002 		ADDI	A,2			;INCREASE BUFFER ADDRESS TO FIRST ENTRY
  1787	002717	270 04 0 01 000000 	GETDRA:	ADD	D,(A)			;ADD THE THREE WORDS FROM
  1788	002720	270 04 0 01 000001 		ADD	D,1(A)			;  THE CURRENT FILE ENTRY
  1789	002721	270 04 0 01 000002 		ADD	D,2(A)			;  TO CHECKSUM
  1790	002722	271 01 0 00 000003 		ADDI	A,3			;INCREASE ADDRESS TO NEXT ENTRY
  1791	002723	554 00 0 01 000000 		HLRZ	(A)			;GET LEFT HALF OF NEXT WORD
  1792	002724	602 00 0 00 770000 		TRNE	770000			;CHECK IF A FILE NAME
  1793	002725	344 03 0 00 002717 		AOJA	C,GETDRA		;YES, INCREMENT FILE COUNT AND ADD IT IN
  1794	002726	554 02 0 00 000004 		HLRZ	B,D			;NO, GET LEFT OF COMPUTED CHECKSUM
  1795	002727	271 02 0 04 000000 		ADDI	B,(D)			;ADD RIGHT HALF TO IT
  1796	002730	550 04 0 01 000000 		HRRZ	D,(A)			;GET RIGHT HALF OF CHECKSUM WORD FROM RECORD
  1797	002731	302 04 0 02 000000 		CAIE	D,(B)			;SKIP IF THEY MATCH
  1798	002732	254 00 0 00 002760 		JRST	DIRHDC			;NO, CHECKSUM ERROR
  1799	002733	336 00 0 00 000000 		SKIPN				;SKIP IF LAST RECORD OF DIRECTORY FILE
  1800	002734	344 03 0 00 002702 		AOJA	C,GETDRR		;NO, INCREMENT FILE COUNT AND READ AGAIN
  1801	002735	070 04 0 00 000000 		CLOSE	CH4,			;CLOSE THE MAGTAPE FILE
  1802	002736	340 01 0 00 000000 		AOJ	A,			;INCREMENT ADDRESS TO AFTER CHECKSUM WORD
  1803	002737	552 01 0 00 000121 		HRRZM	A,.JBFF			;PUT THIS ADDRESS IN JOB FIRST FREE
  1804	002740	552 01 0 00 006540'		HRRZM	A,MAGDRE		;SAVE END OF DIRECTORY
  1805	002741	060 04 1 00 000207 		SETSTS	CH4,@MAGINT		;SET STATUS BACK TO IMAGE MODE
  1806	002742	072 04 0 00 000016 		MTSKF.	CH4,			;MOVE TAPE OVER FILE MARK
  1807	002743	201 00 0 00 000004 		MOVEI	4			;SET CURRENT TAPE POSITION
  1808	002744	202 00 0 00 006547'		MOVEM	POSIT#			;TO FILE NUMBER 4
  1809	002745	476 00 0 00 006524'		SETOM	DIRFLG			;SET DIRECTORY IN CORE FLAG
  1810	002746	263 17 0 00 000000 		RTN				;RETURN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 50
MAGTAP	MAC	22-May-78 09:05		DIRECTORY READ                                                                     SEQ 0081

  1811					;*	DIRECTORY READ ERROR MESSAGES
  1812
  1813	002747	260 17 0 00 000311 	DIRRDE:	GO	COCLR			;CLEAR CONTROL O
  1814	002750	051 03 0 00 007151'		PRINT	<? READ ERROR >
  1815	002751	062 04 0 00 000000 		GETSTS	CH4,			;READ FILE STATUS
  1816	002752	260 17 0 00 003724 		GO	PNTOCT			;PRINT STATUS
  1817	002753	051 03 0 00 007154'		PRINT	< FROM MAGTAPE FILE MAGTAP.MTA>
  1818	002754	254 00 0 00 000314 		JRST	COMM
  1819
  1820	002755	260 17 0 00 000311 	DIRHDE:	GO	COCLR			;CLEAR CONTROL O
  1821	002756	051 03 0 00 007162'		PRINT	<? HEADER WORD INCORRECT IN MAGTAPE FILE MAGTAP.MTA>
  1822	002757	254 00 0 00 000314 		JRST	COMM
  1823
  1824	002760	260 17 0 00 000311 	DIRHDC:	GO	COCLR			;CLEAR CONTROL O
  1825	002761	051 03 0 00 007175'		PRINT	<? CHECKSUM ERROR IN MAGTAPE FILE MAGTAP.MTA>
  1826	002762	254 00 0 00 000314 		JRST	COMM
  1827
  1828	002763	260 17 0 00 000311 	IMPOSB:	GO	COCLR			;CLEAR CONTROL O
  1829						PRINT	<? IMPOSSIBLE WITH NO MAGTAPE DEVICE SELECTED
  1830	002764	051 03 0 00 007206'	>
  1831	002765	254 00 0 00 000170 		JRST	STARTA			;GO ASK FOR MAGTAPE DEVICE AGAIN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 51
MAGTAP	MAC	22-May-78 09:05		DIRECTORY READ                                                                     SEQ 0082

  1832					;*FNDFIL, FIND THE FILE SPECIFIED IN FN AND EXT IN THE MAGTAPE DIRECTORY
  1833					;*	THEN POSITION THE TAPE TO THE FILE
  1834					;*	RETURN +1 IF NO FILE FOUND OF SPECIFIED NAME
  1835					;*	RETURN +2 AFTER TAPE IS IN POSITION AND ADDRESS OF
  1836					;*		DIRECTORY ENTRY IN A
  1837
  1838	002766	261 17 0 00 000000 	FNDFIL:	PUT	0			;SAVE ACS
  1839	002767	261 17 0 00 000002 		PUT	B
  1840	002770	261 17 0 00 000003 		PUT	C
  1841	002771	400 03 0 00 000000 		SETZ	C,			;START LOOKING AT FILE 0
  1842	002772	200 01 0 00 006537'		MOVE	A,MAGDIR		;GET ADDRESS OF DIRECTORY INFO
  1843	002773	340 01 0 00 000000 		AOJ	A,			;INCREMENT ADDRESS OVER HEADER
  1844	002774	312 12 0 01 000000 	FNDFLE:	CAME	FN,(A)			;COMPARE FILE NAMES
  1845	002775	254 00 0 00 003002 		JRST	FNDFLN			;NO MATCH
  1846	002776	510 00 0 01 000001 		HLLZ	1(A)			;GET EXTENSION
  1847	002777	430 00 0 00 000013 		XOR	EXT			;EXCLUSIVE OR WITH EXT
  1848	003000	607 00 0 00 777777 		TLNN	-1			;SKIP IF NO MATCH
  1849	003001	254 00 0 00 003015 		JRST	FOUND			;FOUND IT, GO POSITION TO FILE
  1850	003002	271 01 0 00 000003 	FNDFLN:	ADDI	A,3			;INCREASE ADDRESS OVER ENTRY
  1851	003003	554 00 0 01 000000 		HLRZ	(A)			;GET LEFT HALF OF NEXT WORD
  1852	003004	602 00 0 00 770000 		TRNE	770000			;CHECK IF A FILE NAME
  1853	003005	344 03 0 00 002774 		AOJA	C,FNDFLE		;YES, INCREMENT FILE COUNT AND GO TO IT
  1854	003006	326 00 0 00 003011 		JUMPN	FNDNFF			;IF END OF DIRECTORY, RETURN NOW
  1855	003007	271 01 0 00 000002 		ADDI	A,2			;INCREMENT ADDRESS TO NEXT FILE NAME
  1856	003010	344 03 0 00 002774 		AOJA	C,FNDFLE
  1857	003011	262 17 0 00 000003 	FNDNFF:	GET	C			;RESTORE ACS
  1858	003012	262 17 0 00 000002 		GET	B
  1859	003013	262 17 0 00 000000 		GET	0
  1860	003014	263 17 0 00 000000 		RTN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 52
MAGTAP	MAC	22-May-78 09:05		DIRECTORY READ                                                                     SEQ 0083

  1861					;*FOUND, FILE FOUND IN MAGTAPE DIRECTORY
  1862					;*	MOVE TAPE TO BEGINNING OF THE FILE
  1863
  1864	003015	336 00 0 00 006536'	FOUND:	SKIPN	LSTSW			;LIST FILE AS PROCESSED ?
  1865	003016	254 00 0 00 003026 		JRST	.+10			;NO
  1866	003017	051 01 0 00 006756'		OUTCHR	[TAB]			;PRINT A TAB
  1867	003020	200 00 0 00 000012 		MOVE	FN			;GET FILE NAME
  1868	003021	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  1869	003022	051 01 0 00 006605'		OUTCHR	[PERIOD]		;PRINT A PERIOD
  1870	003023	200 00 0 00 000013 		MOVE	EXT			;GET EXTENSION
  1871	003024	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  1872	003025	051 03 0 00 006606'		OUTSTR	[CRLF]			;END THE LINE
  1873
  1874	003026	250 03 0 00 006547'	POS:	EXCH	C,POSIT			;PUT FILE NUMBER IN POSITION
  1875	003027	332 00 0 00 006547'		SKIPE	POSIT			;POSIT = WHERE TO BE, C = PRESENT POSITION
  1876	003030	254 00 0 00 003033 		JRST	POSTAP			;NO, POSITION TAPE AWAY FROM BOT
  1877	003031	072 04 0 00 000001 		MTREW.	CH4,			;GOING TO POSITION 0, REWIND
  1878	003032	254 00 0 00 003050 		JRST	FNDFLX			;  AND EXIT
  1879
  1880					;*	COMPUTE DIRECTION AND NUMBER OF FILES TO MOVE TAPE
  1881
  1882	003033	200 02 0 00 000003 	POSTAP:	MOVE	B,C			;SAVE PRESENT POSITION
  1883	003034	274 03 0 00 006547'		SUB	C,POSIT			;COMPUTE NUMBER OF FILES TO MOVE
  1884	003035	322 03 0 00 003050 		JUMPE	C,FNDFLX		;EXIT NOW IF IN POSITION
  1885	003036	327 03 0 00 003042 		JUMPG	C,POSBAK		;JUMP IF MOVING BACKWARD
  1886	003037	072 04 0 00 000016 		MTSKF.	CH4,			;SKIP FORWARD TO FILE
  1887	003040	341 03 0 00 003037 		AOJL	C,.-1			;COUNT THE FILES
  1888	003041	254 00 0 00 003050 		JRST	FNDFLX			;IN POSITION, EXIT NOW
  1889
  1890					;*	MOVE TAPE BACKWARDS
  1891
  1892	003042	242 02 0 00 777777 	POSBAK:	LSH	B,-1			;HALVE PRESENT POSITION
  1893	003043	313 02 0 00 006547'		CAMLE	B,POSIT			;IS WHERE TO BE LT 1/2 PRESENT POS ?
  1894	003044	254 00 0 00 003055 		JRST	POSRWD			;YES, REWIND THEN SPACE FORWARD
  1895	003045	072 04 0 00 000017 		MTBSF.	CH4,			;SKIP BACKWARD TO FILE
  1896	003046	365 03 0 00 003045 		SOJGE	C,.-1			;COUNT THE FILES
  1897	003047	072 04 0 00 000016 		MTSKF.	CH4,			;MOVE FORWARD OVER THE FILE MARK
  1898
  1899	003050	262 17 0 00 000003 	FNDFLX:	GET	C			;RESTORE ACS
  1900	003051	262 17 0 00 000002 		GET	B
  1901	003052	262 17 0 00 000000 		GET	0
  1902	003053	350 00 0 17 000000 		AOS	(P)			;CAUSE SUCCESSFUL RETURN
  1903	003054	263 17 0 00 000000 		RTN				;EXIT
  1904
  1905					;*	BACKWARDS POSITION L.T. 1/2 PRESENT POSITION
  1906					;*	REWIND THEN SPACE FORWARD TO FILE
  1907
  1908	003055	072 04 0 00 000001 	POSRWD:	MTREW.	CH4,			;REWIND
  1909	003056	402 00 0 00 000003 		SETZM	C			;PRESENT POSITION NOW 0
  1910	003057	254 00 0 00 003027 		JRST	POS+1			;NOW SKIP FORWARD TO FILE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 53
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0084

  1911					SUBTTL	SUBROUTINES
  1912
  1913					;*FIND, FIND SUBROUTINE
  1914					;*	LOOKUP FILENAME AND EXTENSION IN ALL DISK AREAS SPECIFIED BY
  1915					;*	SEARCH SWITCH.  RETURN +2 WHEN FOUND.  RETURN +1
  1916					;*	IF NOT FOUND
  1917
  1918	003060	200 03 0 00 007220'	FIND:	MOVE	C,[OPEN STAT]		;GET OPEN UUO
  1919	003061	200 04 0 00 007221'		MOVE	D,[LOOKUP CNT]		;GET LOOKUP UUO
  1920	003062	200 01 0 00 006510'		MOVE	A,CHAN			;GET CHANNEL NUMBER
  1921	003063	137 01 0 00 007222'		DPB	A,[POINT 4,C,12]	;PUT CHANNEL NUMBER IN OPEN UUO
  1922	003064	137 01 0 00 007223'		DPB	A,[POINT 4,D,12]	;PUT CHANNEL NUMBER IN LOOKUP UUO
  1923	003065	201 01 0 00 006355 		MOVEI	A,SCHLST		;SET UP POINTER TO DISK AREAS
  1924	003066	336 00 0 01 000000 	FINDD:	SKIPN	(A)			;SKIP IF A DEVICE TO INIT
  1925	003067	254 00 0 00 003110 		JRST	FINDNO			;FILE NOT FOUND
  1926	003070	200 06 0 01 000000 		MOVE	DEV,(A)			;GET DEVICE NAME
  1927	003071	256 00 0 00 000003 		XCT	C			;OPEN THE DEVICE
  1928	003072	254 00 0 00 003101 		JRST	NODEV			;DEVICE NOT AVAILABLE
  1929
  1930	003073	200 11 0 01 000001 	FINDF:	MOVE	PPN,1(A)		;GET PPN
  1931	003074	256 00 0 00 000004 		XCT	D			;LOOKUP THE FILE
  1932	003075	334 00 0 00 000000 		SKIPA				;ERROR RETURN
  1933	003076	254 00 0 00 003233 		JRST	CPOPJ1			;FILE FOUND, RETURN +2
  1934	003077	271 01 0 00 000002 	FINDN:	ADDI	A,2			;UPDATE POINTER TO SCHLST
  1935	003100	254 00 0 00 003066 		JRST	FINDD			;FOR LOOKUP ON NEXT AREA
  1936
  1937	003101	260 17 0 00 000311 	NODEV:	GO	COCLR			;CLEAR CONTROL O
  1938	003102	051 03 0 00 007224'		PRINT	<? OPEN FAILURE ON DEVICE >
  1939	003103	200 00 0 00 000006 		MOVE	DEV			;GET DEVICE NAME
  1940	003104	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  1941	003105	051 03 0 00 006606'		OUTSTR	[CRLF]			;END THE LINE
  1942	003106	400 06 0 00 000000 		SETZ	DEV,			;CLEAR DEV
  1943	003107	254 00 0 00 003077 		JRST	FINDN			;KEEP LOOKING
  1944
  1945	003110	312 12 0 00 006350 	FINDNO:	CAME	FN,INFILN		;CHECK IF INPUT FILE NAME
  1946	003111	263 17 0 00 000000 		RTN				;NO, GIVE ERROR RETURN
  1947	003112	510 01 0 00 000013 		HLLZ	A,EXT			;GET EXTENSION
  1948	003113	430 01 0 00 006351 		XOR	A,INFILE		;COMPARE WITH INPUT EXTENSION
  1949	003114	603 01 0 00 777777 		TLNE	A,-1			;SKIP IF A MATCH
  1950	003115	263 17 0 00 000000 		RTN				;NO, GIVE ERROR RETURN
  1951	003116	200 06 0 00 006346 		MOVE	DEV,INDEVN		;GET DEVICE OF INPUT FILE
  1952	003117	256 00 0 00 000003 		XCT	C			;OPEN THE DEVICE
  1953	003120	263 17 0 00 000000 		RTN				;ERROR
  1954	003121	200 11 0 00 006354 		MOVE	PPN,INFILP		;GET P,PN OF INPUT FILE
  1955	003122	256 00 0 00 000004 		XCT	D			;LOOKUP THE FILE
  1956	003123	263 17 0 00 000000 		RTN				;ERROR
  1957	003124	254 00 0 00 003233 		JRST	CPOPJ1			;SUCCESSFUL RETURN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 54
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0085

  1958					;*COMPARE, COMPARE WORD IN 0 WITH ENTRIES IN TABLE SPECIFIED BY B
  1959					;*	NORMAL RETURN +2 WITH INDEX OF MATCH IN B
  1960					;*	ERROR	RETURN +1
  1961
  1962	003125	322 00 0 00 003234 	COMPARE:JUMPE	CPOPJ			;ERROR IF NO WORD IN 0
  1963	003126	552 02 0 00 006560'		HRRZM	B,TABADR#		;SAVE TABLE ADDRESS
  1964	003127	202 01 0 00 006557'		MOVEM	A,SVTRM#		;SAVE INPUT TERMINATOR
  1965	003130	202 04 0 00 006552'		MOVEM	D,SAVD#
  1966	003131	201 01 0 00 000077 		MOVEI	A,77			;SET UP MASK
  1967	003132	612 00 0 00 000001 	COMPM:	TDNE	A			;SKIP IF ALL MASKED BITS ARE ZERO
  1968	003133	254 00 0 00 003137 		JRST	COMPMK			;GO, COMPLETE MASK
  1969	003134	242 01 0 00 000006 		LSH	A,6			;SHIFT MASK BITS LEFT
  1970	003135	660 01 0 00 000077 		TRO	A,77			;SET FIRST 6 AGAIN
  1971	003136	254 00 0 00 003132 		JRST	COMPM			;GO CHECK MASK AGAIN
  1972	003137	242 01 0 00 777772 	COMPMK:	LSH	A,-6			;SHIFT OUT LAST 6 BITS
  1973	003140	452 01 0 00 006520'		SETCAM	A,COMPMS#		;COMPLIMENT MASK BITS, SAVE IT
  1974	003141	400 04 0 00 000000 		SETZ	D,			;CLEAR MATCH COUNTER
  1975	003142	200 01 0 02 000000 	COMPST:	MOVE	A,(B)			;GET A WORD FROM TABLE
  1976	003143	404 01 0 00 006520'		AND	A,COMPMS		;STRIP UNTYPED POSITIONS
  1977	003144	316 01 0 00 000000 		CAMN	A,0			;COMPARE
  1978	003145	260 17 0 00 003160 		GO	COMSET			;MATCH!
  1979	003146	253 02 0 00 003142 		AOBJN	B,COMPST		;SET UP FOR COMPARE OF NEXT WORD
  1980	003147	302 04 0 00 000001 		CAIE	D,1			;MORE THAN 1 MATCH OR
  1981	003150	254 00 0 00 003155 		JRST	COMPX			;NOT FOUND ?
  1982	003151	200 02 0 00 006551'	COMPMT:	MOVE	B,SAVB			;GET MATCH POINTER
  1983	003152	553 00 0 00 000002 		HRRZS	B			;CLEAR COUNT OF TABLE ENTRIES
  1984	003153	274 02 0 00 006560'		SUB	B,TABADR		;SUBTRACT ADR TO GET INDEX
  1985	003154	350 00 0 17 000000 		AOS	(P)			;RETURN +2
  1986	003155	200 01 0 00 006557'	COMPX:	MOVE	A,SVTRM			;RESTORE TERMINATOR
  1987	003156	200 04 0 00 006552'		MOVE	D,SAVD
  1988	003157	263 17 0 00 000000 		RTN
  1989
  1990	003160	202 02 0 00 006551'	COMSET:	MOVEM	B,SAVB#			;SAVE MATCH POINTER
  1991	003161	350 00 0 00 000004 		AOS	D			;COUNT MATCH
  1992	003162	263 17 0 00 000000 		RTN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 55
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0086

  1993					;*RDNAME, READ A FILE NAME FROM THE INPUT FILE
  1994
  1995	003163	332 00 0 00 006511'	RDNAME:	SKIPE	CHAR			;SKIP IF AT START OF LINE
  1996	003164	254 00 0 00 003235 		JRST	RDON			;READ NEXT CHARACTER
  1997	003165	260 17 0 00 004001 		GO	RDCHAR			;READ A CHARACTER
  1998	003166	263 17 0 00 000000 		RTN				;EOF
  1999	003167	303 00 0 00 000040 		CAILE	SPACE			;PRINTABLE CHARACTER?
  2000	003170	306 00 0 00 000073 		CAIN	SCOLON			;AND NOT A SEMI-COLON
  2001	003171	254 00 0 00 003237 		JRST	RDONW			;READ NEXT CHAR AFTER WRITING THIS ONE
  2002	003172	306 00 0 00 000057 		CAIN	"/"			;SLASH SWITCH COMMAND ?
  2003	003173	254 00 0 00 000520 		JRST	SWINP			;YES, PROCESS
  2004
  2005	003174	403 12 0 00 006562'		SETZB	FN,TYPNBR
  2006	003175	301 00 0 00 000060 		CAIL	"0"			;IS TYPE GIVEN ?
  2007	003176	303 00 0 00 000067 		CAILE	"7"
  2008	003177	254 00 0 00 003201 		JRST	.+2			;NO
  2009
  2010	003200	260 17 0 00 003242 		GO	RDTYPE			;YES, PROCESS TYPE NUMBER
  2011
  2012	003201	403 12 0 00 000013 		SETZB	FN,EXT			;CLEAR FILE NAME AND EXT
  2013	003202	200 04 0 00 007051'		MOVE	D,[POINT 6,FN]		;GET BYTE POINTER TO FN
  2014	003203	201 03 0 00 000006 		MOVEI	C,6			;SET COUNT TO 6
  2015
  2016	003204	306 00 0 00 000056 	RDFILN:	CAIN	PERIOD			;CHARACTER A PERIOD?
  2017	003205	254 00 0 00 003217 		JRST	RDDOT			;YES
  2018	003206	361 03 0 00 003270 		SOJL	C,FILERR		;DECREMENT COUNT
  2019	003207	307 00 0 00 000137 		CAIG	"_"			;CHECK IF LOWER CASE
  2020	003210	640 00 0 00 000040 		TRC	40			;CONVERT TO SIXBIT
  2021	003211	136 00 0 00 000004 		IDPB	D			;DEPOSIT CHARACTER
  2022	003212	260 17 0 00 004001 		GO	RDCHAR			;READ NEXT CHARACTER
  2023	003213	254 00 0 00 003270 		JRST	FILERR			;EOF IN FILE NAME
  2024	003214	307 00 0 00 000040 		CAIG	SPACE			;PRINTABLE CHARACTER?
  2025	003215	254 00 0 00 003270 		JRST	FILERR			;NO, ERROR IN FILE NAME
  2026	003216	254 00 0 00 003204 		JRST	RDFILN			;YES, CONTINUE WITH FILE NAME
  2027
  2028	003217	322 12 0 00 003270 	RDDOT:	JUMPE	FN,FILERR		;ERROR IF ZERO FILE NAME
  2029	003220	200 04 0 00 007232'		MOVE	D,[POINT 6,EXT]		;GET BYTE POINTER TO EXT
  2030	003221	201 03 0 00 000003 		MOVEI	C,3			;SET COUNT TO 3
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 56
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0087

  2031					;*RDEXT, READ THE EXTENSION
  2032
  2033	003222	260 17 0 00 004001 	RDEXT:	GO	RDCHAR			;READ NEXT CHARACTER
  2034	003223	254 00 0 00 003233 		JRST	RDCHRX			;EOF, RETURN +2
  2035	003224	307 00 0 00 000040 		CAIG	SPACE			;PRINTABLE CHARACTER?
  2036	003225	254 00 0 00 003233 		JRST	RDCHRX			;NO RETURN +2
  2037	003226	361 03 0 00 003233 		SOJL	C,RDCHRX		;DECREMENT COUNT.
  2038	003227	307 00 0 00 000137 		CAIG	"_"			;CHECK IF LOWER CASE
  2039	003230	640 00 0 00 000040 		TRC	40			;CONVERT TO SIXBIT
  2040	003231	136 00 0 00 000004 		IDPB	D			;DEPOSIT CHARACTER
  2041	003232	254 00 0 00 003222 		JRST	RDEXT			;GET NEXT CHARACTER
  2042	003233				RDCHRX:
  2043	003233	350 00 0 17 000000 	CPOPJ1:	AOS	(P)			;RETURN +2 WITH FILE NAME IN FN
  2044	003234	263 17 0 00 000000 	CPOPJ:	RTN				;AND EXTENSION IN EXT
  2045
  2046	003235	260 17 0 00 004001 	RDON:	GO	RDCHAR			;READ NEXT CHARACTER
  2047	003236	263 17 0 00 000000 		RTN				;EOF
  2048	003237	332 00 0 00 006570'	RDONW:	SKIPE	WRDIR			;SKIP IF NOT WRITING DIRECTORY
  2049	003240	260 17 0 00 004144 		GO	WRCHAR			;WRITE CHARACTER IN DIRECTORY FILE
  2050	003241	254 00 0 00 003163 		JRST	RDNAME			;RETURN TO START OF ROUTINE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 57
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0088

  2051					;*RDTYPE, READ TYPE FROM INPUT FILE
  2052
  2053	003242	302 00 0 00 000011 	RDTYPE:	CAIE	TAB
  2054	003243	306 00 0 00 000040 		CAIN	SPACE
  2055	003244	254 00 0 00 003256 		JRST	RDTYP1			;TYPE TERMINATOR
  2056
  2057	003245	301 00 0 00 000060 		CAIL	"0"
  2058	003246	303 00 0 00 000067 		CAILE	"7"
  2059	003247	254 00 0 00 003270 		JRST	FILERR			;TYPE ERROR
  2060
  2061	003250	242 12 0 00 000003 		LSH	FN,3
  2062	003251	405 00 0 00 000007 		ANDI	7
  2063	003252	436 00 0 00 000012 		ORM	FN			;INSERT THIS DIGIT IN TYPE NUMBER
  2064
  2065	003253	260 17 0 00 004001 		GO	RDCHAR			;GET NEXT CHAR
  2066	003254	254 00 0 00 003270 		JRST	FILERR			;EOF, ERROR
  2067	003255	254 00 0 00 003242 		JRST	RDTYPE
  2068
  2069	003256	301 12 0 00 000037 	RDTYP1:	CAIL	FN,37			;TYPE IS 0 TO 37
  2070	003257	254 00 0 00 003270 		JRST	FILERR			;NO, ERROR
  2071	003260	202 12 0 00 006562'		MOVEM	FN,TYPNBR		;SAVE TYPE NUMBER
  2072	003261	260 17 0 00 004001 		GO	RDCHAR			;READ CHAR PAST TERM
  2073	003262	254 00 0 00 003270 		JRST	FILERR			;EOF, ERROR
  2074	003263	263 17 0 00 000000 		RTN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 58
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0089

  2075					;*	INPUT FILE ERRORS
  2076
  2077	003264	260 17 0 00 000311 	SWIERR:	GO	COCLR			;CLEAR CONTROL O
  2078	003265	051 03 0 00 007233'		PRINT	<? SWITCH ERROR IN >
  2079	003266	202 00 0 00 000012 		MOVEM	0,FN
  2080	003267	254 00 0 00 003272 		JRST	.+3
  2081
  2082	003270	260 17 0 00 000311 	FILERR:	GO	COCLR			;CLEAR CONTROL O
  2083	003271	051 03 0 00 007237'		PRINT	<? IMPROPER FORMAT OF FILE NAME IN >
  2084	003272	200 00 0 00 006350 		MOVE	INFILN			;PRINT FILE NAME
  2085	003273	260 17 0 00 003765 		GO	PNTSIX
  2086	003274	051 01 0 00 006605'		OUTCHR	[PERIOD]		;PRINT A PERIOD
  2087	003275	510 00 0 00 006351 		HLLZ	INFILE			;PRINT EXTENSION
  2088	003276	260 17 0 00 003765 		GO	PNTSIX
  2089	003277	051 01 0 00 006756'		OUTCHR	[TAB]			;PRINT TAB
  2090
  2091	003300	336 00 0 00 006545'		SKIPN	PAGE			;SKIP IF NOT PAGE 1
  2092	003301	254 00 0 00 003306 		JRST	FILERL			;GO PRINT LINE NUMBER
  2093	003302	051 03 0 00 007246'		PRINT	<PAGE >			;PRINT PAGE NUMBER
  2094	003303	350 00 0 00 006545'		AOS	PAGE
  2095	003304	200 00 0 00 006545'		MOVE	PAGE
  2096	003305	260 17 0 00 003746 		GO	PNTDEC
  2097
  2098	003306	051 03 0 00 007250'	FILERL:	PRINT	< LINE >		;PRINT LINE NUMBER
  2099	003307	350 00 0 00 006533'		AOS	LINE
  2100	003310	200 00 0 00 006533'		MOVE	LINE
  2101	003311	260 17 0 00 003746 		GO	PNTDEC
  2102	003312	051 03 0 00 006606'		OUTSTR	[CRLF]			;END LINE
  2103	003313	200 00 0 00 000012 		MOVE	FN
  2104	003314	260 17 0 00 003765 		GO	PNTSIX			;PRINT LINE ALREADY INPUT
  2105	003315	051 01 0 00 000000 	FILERP:	OUTCHR				;PRINT LAST CHARACTER
  2106	003316	306 00 0 00 000012 		CAIN	LF			;LINE FEED PRINTED?
  2107	003317	254 00 0 00 000314 		JRST	COMM			;YES, GET OUT NOW
  2108	003320	260 17 0 00 004001 		GO	RDCHAR			;READ NEXT CHARACTER
  2109	003321	254 00 0 00 000314 		JRST	COMM			;EOF
  2110	003322	254 00 0 00 003315 		JRST	FILERP			;PRINT REST OF LINE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 59
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0090

  2111					;*	INPUT FILE READ ERROR MESSAGES
  2112
  2113	003323	260 17 0 00 000311 	INFILR:	GO	COCLR			;CLEAR CONTROL O
  2114	003324	051 03 0 00 007252'		PRINT	<? END OF FILE WHILE READING >
  2115	003325	200 00 0 00 006350 		MOVE	INFILN			;GET FILE NAME
  2116	003326	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  2117	003327	051 01 0 00 006605'		OUTCHR	[PERIOD]		;PRINT A PERIOD
  2118	003330	510 00 0 00 000013 		HLLZ	EXT			;GET EXTENSION
  2119	003331	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  2120	003332	051 03 0 00 007260'		PRINT	< AFTER >
  2121	003333	201 00 0 01 000001 		MOVEI	1(A)			;GET NUMBER
  2122	003334	260 17 0 00 003746 		GO	PNTDEC			;PRINT IT
  2123						PRINT	< FILE NAMES WERE READ.
  2124	003335	051 03 0 00 007262'	A MINIMUM OF SEVEN FILE NAMES ARE REQUIRED>
  2125	003336	254 00 0 00 000314 		JRST	COMM
  2126
  2127	003337	260 17 0 00 000311 	INFILM:	GO	COCLR			;CLEAR CONTROL O
  2128	003340	051 03 0 00 007300'		PRINT	<? ERROR IN INPUT FILE >
  2129	003341	200 00 0 00 006350 		MOVE	INFILN			;GET FILE NAME
  2130	003342	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  2131	003343	051 01 0 00 006605'		OUTCHR	[PERIOD]		;PRINT A PERIOD
  2132	003344	510 00 0 00 006351 		HLLZ	INFILE			;GET EXTENSION
  2133	003345	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  2134						PRINT	<
  2135	003346	051 03 0 00 007305'	FILE NUMBER >
  2136	003347	200 00 0 00 000001 		MOVE	A			;GET NUMBER
  2137	003350	260 17 0 00 003746 		GO	PNTDEC			;PRINT IT
  2138	003351	051 03 0 00 007310'		PRINT	< MUST BE >
  2139	003352	306 01 0 00 000004 		CAIN	A,4			;CHECK IF FILE 4
  2140	003353	201 02 0 00 006350 		MOVEI	B,INFILN		;YES, POINT TO INFILN
  2141	003354	200 00 0 02 000000 		MOVE	(B)			;GET FILE NAME
  2142	003355	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  2143	003356	051 01 0 00 006605'		OUTCHR	[PERIOD]		;PRINT A PERIOD
  2144	003357	510 00 0 02 000001 		HLLZ	1(B)			;GET EXTENSION
  2145	003360	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  2146	003361	051 03 0 00 007312'		PRINT	< BUT IS >
  2147	003362	200 00 0 00 000012 		MOVE	FN			;GET ACTUAL FILE NAME
  2148	003363	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  2149	003364	051 01 0 00 006605'		OUTCHR	[PERIOD]		;PRINT A PERIOD
  2150	003365	510 00 0 00 000013 		HLLZ	EXT			;GET ACTUAL EXTENSION
  2151	003366	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  2152	003367	051 03 0 00 006606'		OUTSTR	[CRLF]			;END LINE
  2153	003370	254 00 0 00 000314 		JRST 	COMM
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 60
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0091

  2154					;*INLIST, INPUT A LIST OF FILE.EXT AND PLACE IN MEMORY
  2155					;*	STARTING AT C(.JBFF)
  2156					;*	RETURN -FILE COUNT,, ADR IN B
  2157
  2158	003371	200 02 0 00 000121 	INLIST:	MOVE	B,.JBFF			;GET FIRST FREE LOCATION
  2159	003372	306 01 0 00 000057 	INLSTS:	CAIN	A,"/"			;SLASH ?
  2160	003373	254 00 0 00 003376 		JRST	.+3			;YES, END OF LIST
  2161	003374	302 01 0 00 000012 		CAIE	A,LF			;LINE FEED?
  2162	003375	254 00 0 00 003405 		JRST	INLSTD			;NO, MAYBE A DOT
  2163	003376	261 17 0 00 000001 		PUT	A
  2164	003377	200 01 0 00 000002 		MOVE	A,B			;GET START ADR
  2165	003400	274 01 0 00 000121 		SUB	A,.JBFF			;SUBTRACT ENDING ADR
  2166	003401	240 01 0 00 777777 		ASH	A,-1			;DIVIDE BY 2 FOR COUNT OF FILES
  2167	003402	504 02 0 00 000001 		HRL	B,A			;BUILD POINTER IN B
  2168	003403	262 17 0 00 000001 		GET	A
  2169	003404	263 17 0 00 000000 		RTN				;EXIT
  2170
  2171	003405	302 01 0 00 000056 	INLSTD:	CAIE	A,PERIOD		;PERIOD?
  2172	003406	254 00 0 00 000425 		JRST	CMDERR			;ERROR
  2173	003407	322 00 0 00 000425 		JUMPE	CMDERR			;ERROR IF NO NAME TYPED
  2174	003410	201 04 0 00 000002 		MOVEI	D,2			;INCREMENT .JBFF BY 2
  2175	003411	273 04 0 00 000121 		ADDB	D,.JBFF			;GET VALUE IN D
  2176	003412	260 17 0 00 003426 		GO	INCORE			;INCREASE CORE
  2177	003413	202 00 0 04 777776 		MOVEM	-2(D)			;STORE FILE NAME
  2178	003414	260 17 0 00 003613 		GO	INWORD			;INPUT ANOTHER WORD
  2179	003415	512 00 0 04 777777 		HLLZM	-1(D)			;STORE EXTENSION
  2180	003416	306 01 0 00 000056 	INLSTC:	CAIN	A,PERIOD		;MAKE SURE NOT ANOTHER PERIOD
  2181	003417	254 00 0 00 000425 		JRST	CMDERR			;ERROR
  2182	003420	302 01 0 00 000054 		CAIE	A,COMMA			;IF COMMA,
  2183	003421	306 01 0 00 000040 		CAIN	A,SPACE			;SPACE
  2184	003422	334 00 0 00 000000 		SKIPA				;
  2185	003423	306 01 0 00 000011 		CAIN	A,TAB			;OR TAB
  2186	003424	260 17 0 00 003613 		GO	INWORD			;INPUT NEXT WORD
  2187	003425	254 00 0 00 003372 		JRST	INLSTS			;NOW LOOK AT TERM
  2188
  2189					;*INCORE, INCREASE CORE ASSIGNED TO JOB TO ENABLE REFERENCE
  2190					;*	TO ADDRESS IN D
  2191
  2192	003426	317 04 0 00 000044 	INCORE:	CAMG	D,.JBREL
  2193	003427	263 17 0 00 000000 		RTN
  2194	003430	261 17 0 00 000004 		PUT	D			;SAVE D
  2195	003431	047 04 0 00 000011 		CORE	D,			;CALL CORE UUO
  2196	003432	254 00 0 00 003435 		JRST	INCORX			;ERROR RETURN
  2197	003433	262 17 0 00 000004 		GET	D			;RESTORE D
  2198	003434	263 17 0 00 000000 		RTN
  2199	003435	260 17 0 00 000311 	INCORX:	GO	COCLR			;CLEAR CONTROL O
  2200	003436	051 03 0 00 007314'		PRINT	<? NOT ENOUGH CORE AVAILABLE>
  2201	003437	254 00 0 00 000314 		JRST	COMM
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 61
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0092

  2202					;*RDDXMC, READ THE DX10 MICRO-CODE FILE
  2203
  2204	003440	200 04 0 00 000121 	RDDXMC:	MOVE	D,.JBFF			;GET FIRST FREE ADR
  2205	003441	271 04 0 00 002526 		ADDI	D,10K/3+1		;COMPUTE SIZE OF BLOCK
  2206	003442	260 17 0 00 003426 		GO	INCORE			;INCREASE CORE TO INCLUDE BLOCK
  2207	003443	514 03 0 00 000121 		HRLZ	C,.JBFF			;BUILD BLT POINTER
  2208	003444	540 03 0 00 000121 		HRR	C,.JBFF			;TO STORAGE BLOCK
  2209	003445	200 00 0 00 007322'		MOVE	[BYTE(12)7402,7402,7402]	;LOAD STORAGE AREA
  2210	003446	202 00 0 03 000000 		MOVEM	(C)			;WITH HLT INSTRUCTIONS
  2211	003447	340 03 0 00 000000 		AOJ	C,			;COMPLETE POINTER
  2212	003450	251 03 0 04 000000 		BLT	C,(D)			;FILL THE AREA
  2213	003451	260 17 0 00 003474 	MCADR:	GO	WCTIN			;GO READ THE WORD COUNT
  2214	003452	322 01 0 00 003473 		JUMPE	A,ENDLOD		;END OF FILE
  2215	003453	202 01 0 00 000004 		MOVEM	A,D			;SAVE COUNT
  2216	003454	260 17 0 00 003515 		GO	WRDIN			;READ THE ADDRESS
  2217	003455	231 01 0 00 000003 		IDIVI	A,3			;GET ADDRESS OF STORAGE WORD
  2218	003456	270 01 0 00 000121 		ADD	A,.JBFF			;ADD TABLE OF ADDRESS
  2219	003457	202 01 0 00 006546'		MOVEM	A,PNTR#			;SAVE AS POINTER ADR
  2220	003460	221 02 0 00 000014 		IMULI	B,^D12			;COMPUTE BYTE POSITION
  2221	003461	201 01 0 00 000044 		MOVEI	A,^D36			;FROM REMAINDER
  2222	003462	274 01 0 00 000002 		SUB	A,B			;IN FIRST
  2223	003463	242 01 0 00 000014 		LSH	A,^D12			;POSITION NUMBER
  2224	003464	435 01 0 00 001400 		ORI	A,^D12_6		;BYTE SIZE
  2225	003465	506 01 0 00 006546'		HRLM	A,PNTR			;COMPLETE POINTER
  2226	003466	260 17 0 00 003515 	MCDATA:	GO	WRDIN			;GET DATA WORD
  2227	003467	136 01 0 00 006546'		IDPB	A,PNTR			;DEPOSIT BYTE INTO TABLE
  2228	003470	367 04 0 00 003466 		SOJG	D,MCDATA		;GET ALL THE WORDS
  2229	003471	260 17 0 00 003532 		GO	CHKIN			;READ AND CHECK THE CHECKSUM
  2230	003472	254 00 0 00 003451 		JRST	MCADR			;GO READ ANOTHER ADDRESS
  2231	003473	263 17 0 00 000000 	ENDLOD:	RTN				;ALL DONE
  2232
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 62
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0093

  2233					;*WCTIN, READ THE BEGINNING OF THE LINE FROM THE FILE
  2234
  2235	003474	260 17 0 00 004050 	WCTIN:	GO	RD1			;READ A CHARACTER
  2236	003475	254 00 0 00 003555 		JRST	MCERR			;FILE ERROR
  2237	003476	302 00 0 00 000070 		CAIE	"8"			;FIRST CHARACTER SHOULD BE AN 8
  2238	003477	254 00 0 00 003560 		JRST	MCERR1			;NO, MAYBE A COMMENT
  2239	003500	260 17 0 00 004050 		GO	RD1			;READ ANOTHER CHARACTER
  2240	003501	254 00 0 00 003555 		JRST	MCERR			;ERROR
  2241	003502	201 01 0 00 000077 		MOVEI	A,77			;SET UP CHARACTER MASK
  2242	003503	201 02 0 00 000006 		MOVEI	B,6			;SET UP CHARACTER SHIFT COUNT
  2243	003504	306 00 0 00 000040 		CAIN	SPACE			;CHECK FOR SPACE
  2244	003505	254 00 0 00 003512 		JRST	WCTWC			;GO ON TO READ WC
  2245	003506	302 00 0 00 000117 		CAIE	"O"			;CHECK IF AN O
  2246	003507	254 00 0 00 003555 		JRST	MCERR			;UNKNOWN CHARACTER
  2247	003510	201 01 0 00 000007 		MOVEI	A,7			;MAKE CHARACTER MASK A 7
  2248	003511	201 02 0 00 000003 		MOVEI	B,3			;SHIFT ONLY 3 CHARACTERS
  2249	003512	202 01 0 00 006517'	WCTWC:	MOVEM	A,CMASK#		;STORE AWAY CHARACTER MASK
  2250	003513	202 02 0 00 006521'		MOVEM	B,CSIZE#		;STORE AWAY SHIFT COUNT
  2251	003514	402 00 0 00 006512'		SETZM	CHECK#			;CLEAR CHECKSUM
  2252
  2253					;*WRDIN, READ AN ENTRY FROM THE FILE, TERMINATE ON A COMMA
  2254
  2255	003515	400 01 0 00 000000 	WRDIN:	SETZ	A,			;CLEAR NUM
  2256	003516	260 17 0 00 004050 		GO	RD1			;READ A CHARACTER
  2257	003517	254 00 0 00 003555 		JRST	MCERR			;ERROR
  2258	003520	306 00 0 00 000054 		CAIN	COMMA			;CHECK IF COMA
  2259	003521	254 00 0 00 003526 		JRST	WRDCK			;YES CHECK NUMBER
  2260	003522	242 01 1 00 006521'		LSH	A,@CSIZE		;SHIFT NUMBER
  2261	003523	404 00 0 00 006517'		AND	CMASK			;CLEAR UNWANTED BITS
  2262	003524	434 01 0 00 000000 		OR	A,			;MERGE TOGETHER
  2263	003525	254 00 0 00 003516 		JRST	WRDIN+1			;READ NEXT
  2264	003526	303 01 0 00 007777 	WRDCK:	CAILE	A,7777			;CHECK IF A LEGAL ENTRY
  2265	003527	254 00 0 00 003555 		JRST	MCERR			;ERROR
  2266	003530	272 01 0 00 006512'		ADDM	A,CHECK			;UPDATE CHECKSUM
  2267	003531	263 17 0 00 000000 		RTN
  2268
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 63
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0094

  2269					;*CHKIN, READ THE CHECKSUM FROM THE FILE AND THE CR-LF
  2270					;*	CHECK THAT CHECKSUM IS CORRECT
  2271
  2272	003532	400 01 0 00 000000 	CHKIN:	SETZ	A,			;CLEAR A
  2273	003533	260 17 0 00 004050 		GO	RD1			;READ A CHARACTER
  2274	003534	254 00 0 00 003555 		JRST	MCERR			;ERROR
  2275	003535	306 00 0 00 000015 		CAIN	CR			;CHECK IF CR
  2276	003536	254 00 0 00 003545 		JRST	CHKSUM			;CHECKSUM IS IN A
  2277	003537	306 00 0 00 000054 		CAIN	COMMA			;CHECK IF NOT A COMMA
  2278	003540	254 00 0 00 003555 		JRST	MCERR			;NO END OF LINE HERE
  2279	003541	242 01 1 00 006521'		LSH	A,@CSIZE		;SHIFT NUMBER
  2280	003542	404 00 0 00 006517'		AND	CMASK			;CLEAR UNWANTED BITS
  2281	003543	434 01 0 00 000000 		OR	A,			;MERGE TOGETHER
  2282	003544	254 00 0 00 003533 		JRST	CHKIN+1			;READ NEXT CHARACTER
  2283	003545	270 01 0 00 006512'	CHKSUM:	ADD	A,CHECK			;ADD COMPUTED CHECKSUM
  2284	003546	405 01 0 00 007777 		ANDI	A,7777			;STRIP TO 12 BITS
  2285	003547	200 00 0 00 006521'		MOVE	CSIZE			;GET CHARACTER SIZE
  2286	003550	302 00 0 00 000003 		CAIE	3			;SKIP IF OCTAL CHARACTERS
  2287	003551	326 01 0 00 003555 		JUMPN	A,MCERR			;ERROR IN CHECKSUM
  2288	003552	260 17 0 00 004050 		GO	RD1			;READ LF
  2289	003553	254 00 0 00 003555 		JRST	MCERR			;ERROR
  2290	003554	263 17 0 00 000000 		RTN				;RETURN
  2291	003555	260 17 0 00 000311 	MCERR:	GO	COCLR			;CLEAR CONTROL O
  2292	003556	051 03 0 00 007323'		PRINT	<? FORMAT OR CHECKSUM ERROR READING DXMPA.A8>
  2293	003557	254 00 0 00 000314 		JRST	COMM
  2294
  2295	003560	302 00 0 00 000073 	MCERR1:	CAIE	SCOLON			;CHECK IF A COMMENT LINE
  2296	003561	254 00 0 00 003555 		JRST	MCERR			;NO, ERROR
  2297	003562	260 17 0 00 004050 	MCERRC:	GO	RD1			;YES, INPUT ENTIRE LINE
  2298	003563	254 00 0 00 003555 		JRST	MCERR			;  AND IGNORE ALL CHARACTERS IN IT
  2299	003564	302 00 0 00 000012 		CAIE	LF			;WAIT FOR A LINE FEED
  2300	003565	254 00 0 00 003562 		JRST	MCERRC			;NOT YET, GET NEXT CHARACTER
  2301	003566	254 00 0 00 003474 		JRST	WCTIN			;GO INPUT NEXT LINE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 64
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0095

  2302					;*MAGBUF, SET UP MAGTAPE BUFFERS FOR CHANNEL 4
  2303
  2304	003567	200 01 0 00 000121 	MAGBUF:	MOVE	A,.JBFF			;GET FIRST FREE ADDRESS
  2305	003570	270 01 0 00 007334'		ADD	A,[1B0+1]		;SET USE BIT
  2306	003571	202 01 0 00 006444 		MOVEM	A,BUF4			;PUT IN HEADER
  2307	003572	271 01 0 00 000001 		ADDI	A,1			;INCREASE ADR AGAIN
  2308	003573	505 01 0 00 004400 		HRLI	A,4400			;SET IN BYTE COUNT
  2309	003574	202 01 0 00 006445 		MOVEM	A,BUF4+1		;STORE BYTE POINTER
  2310	003575	402 00 0 00 006446 		SETZM	BUF4+2			;CLEAR BYTE COUNT
  2311	003576	200 04 0 00 000121 		MOVE	D,.JBFF			;GET FIRST FREE AGAIN
  2312	003577	271 04 0 00 014044 		ADDI	D,NUMBUF*<RCDSIZ+3>	;ADD BUFFER AREA SPACE
  2313	003600	260 17 0 00 003426 		GO	INCORE			;NO, INCREASE CORE
  2314	003601	250 04 0 00 000121 		EXCH	D,.JBFF			;UPDATE FIRST FREE AND GET OLD VALUE
  2315	003602	350 01 0 00 000004 		AOS	A,D			;INCREASE BY ONE
  2316	003603	505 01 0 00 001001 		HRLI	A,RCDSIZ+1		;PUT SIZE IN LEFT HALF
  2317	003604	201 02 0 00 000013 		MOVEI	B,NUMBUF-1		;GET NUMBER OF BUFFERS
  2318	003605	271 01 0 00 001003 	MAGBFL:	ADDI	A,RCDSIZ+3		;POINT TO NEXT BUFFER
  2319	003606	202 01 0 01 776775 		MOVEM	A,-<RCDSIZ+3>(A)	;STORE IN THIS BUFFER
  2320	003607	367 02 0 00 003605 		SOJG	B,MAGBFL		;LOOP ON ALL BUFFERS
  2321	003610	505 04 0 00 001001 		HRLI	D,RCDSIZ+1		;PUT SIZE TO LEFT OF FIRST BUFFER ADR
  2322	003611	202 04 0 01 000000 		MOVEM	D,(A)			;STORE IN LAST BUFFER
  2323	003612	263 17 0 00 000000 		RTN				;RETURN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 65
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0096

  2324					;*INWORD, INPUT A WORD FROM DEVICE USING INPUT INSTRUCTION IN INWXCT
  2325					;*	PLACE WORD IN SIXBIT IN 0
  2326					;*	PLACE TERMNATER CHARACTER IN A
  2327					;*	TERMINATOR CHARACTERS ARE SPACE, TAB, COMMA, PERIOD, LF, ALTMODE,
  2328					;*				  LB, RB, COLON, ATSIGN, DASH, SLASH
  2329					;*	CARRIAGE RETURNS AND SUCCESSIVE SPACES, COMMAS AND TABS ARE IGNORED
  2330					;*	NOTNUM IS SET TO -1 IF ANYTHING OTHER THAN A NUMBER WAS INPUT
  2331
  2332	003613	403 00 0 00 006543'	INWORD:	SETZB	NOTNUM#			;CLEAR 0 AND NOT NUMBER FLAG
  2333	003614	200 01 0 00 007335'		MOVE	A,[POINT 6,0]		;GET BYTE POINTER TO 0
  2334	003615	202 01 0 00 006530'		MOVEM	A,INWDP#		;SAVE IT
  2335	003616	256 00 0 00 006531'	INWDNX:	XCT	INWXCT			;INPUT A CHARACTER
  2336	003617	303 01 0 00 000137 		CAILE	A,"_"			;CHECK IF LOWER CASE
  2337	003620	275 01 0 00 000040 		SUBI	A,40			;YES, CONVERT TO UPPER CASE
  2338	003621	306 01 0 00 000015 		CAIN	A,CR			;CHECK IF CARRIAGE RETURN
  2339	003622	254 00 0 00 003616 		JRST	INWDNX			;IGNORE IT
  2340	003623	302 01 0 00 000012 		CAIE	A,LF			;CHECK IF LINE FEED
  2341	003624	306 01 0 00 000054 		CAIN	A,COMMA			;OR COMMA
  2342	003625	263 17 0 00 000000 		RTN				;YES, RETURN
  2343	003626	306 01 0 00 000057 		CAIN	A,"/"			;CHECK IF SLASH
  2344	003627	263 17 0 00 000000 		RTN				;YES, RETURN
  2345	003630	302 01 0 00 000033 		CAIE	A,33			;CHECK IF ALT-MODE
  2346	003631	306 01 0 00 000072 		CAIN	A,COLON			;CHECK IF COLON
  2347	003632	263 17 0 00 000000 		RTN				;YES, RETURN NOW
  2348	003633	302 01 0 00 000133 		CAIE	A,LB			;CHECK IF A SQUARE BRACKET
  2349	003634	306 01 0 00 000135 		CAIN	A,RB			;LEFT OR RIGHT
  2350	003635	263 17 0 00 000000 		RTN				;RETURN
  2351	003636	302 01 0 00 000056 		CAIE	A,PERIOD		;CHECK IF PERIOD
  2352	003637	306 01 0 00 000100 		CAIN	A,"@"			;CHECK IF @
  2353	003640	263 17 0 00 000000 		RTN				;RETURN
  2354	003641	302 01 0 00 000055 		CAIE	A,DASH			;CHECK IF A DASH
  2355	003642	306 01 0 00 000000 		CAIN	A,0			;  OR EOF
  2356	003643	263 17 0 00 000000 		RTN				;  RETURN
  2357	003644	302 01 0 00 000040 		CAIE	A,SPACE			;CHECK IF SPACE
  2358	003645	306 01 0 00 000011 		CAIN	A,TAB			;OR TAB
  2359	003646	254 00 0 00 003664 		JRST	INWDSP			;YES, IT IS A SEPARATOR
  2360	003647	306 01 0 00 000052 		CAIN	A,"*"			;IS IT ASTERISK ?
  2361	003650	254 00 0 00 003666 		JRST	INAST			;YES, WILD FIELD
  2362	003651	305 01 0 00 000040 		CAIGE	A,40			;CHECK IF A SIXBIT CHARACTER
  2363	003652	254 00 0 00 003616 		JRST	INWDNX			;NO, IGNORE IT
  2364	003653	640 01 0 00 000040 		TRC	A,40			;MAKE IT SIXBIT
  2365	003654	306 01 0 00 000037 		CAIN	A,'?'			;IS IT QUESTION MARK ?
  2366	003655	260 17 0 00 003675 		GO	INQMRK			;YES, WILD CHARACTER
  2367	003656	606 00 0 00 000077 		TRNN	77			;SKIP IF INPUT WORD IS FULL
  2368	003657	136 01 0 00 006530'		IDPB	A,INWDP			;STORE CHARACTER
  2369	003660	301 01 0 00 000020 		CAIL	A,'0'			;CHECK IF A DIGIT
  2370	003661	303 01 0 00 000031 		CAILE	A,'9'			;  OR NOT
  2371	003662	476 00 0 00 006543'		SETOM	NOTNUM			;NO, SET NOT NUMBER FLAG
  2372	003663	254 00 0 00 003616 		JRST	INWDNX			;GO GET NEXT CHARACTER
  2373	003664	322 00 0 00 003616 	INWDSP:	JUMPE	INWDNX			;IGNORE SEPARATOR IF NO WORD ASSEMBLED
  2374	003665	263 17 0 00 000000 		RTN				;RETURN IF WORD IS ASSEMBLED
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 66
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0097

  2375	003666	336 00 0 00 006507'	INAST:	SKIPN	ALOWLD			;ALLOW WILD ?
  2376	003667	254 00 0 00 000425 		JRST	CMDERR			;NO, COMMAND ERROR
  2377
  2378	003670	201 01 0 00 000037 		MOVEI	A,'?'			;WILD FIELD, FILL REST WITH ?'S
  2379	003671	602 00 0 00 000077 		TRNE	77
  2380	003672	254 00 0 00 003662 		JRST	INWDSP-2		;FILLED, SET NOT NUMBER & SCAN FOR TERM
  2381	003673	136 01 0 00 006530'		IDPB	A,INWDP
  2382	003674	254 00 0 00 003671 		JRST	.-3
  2383
  2384	003675	336 00 0 00 006507'	INQMRK:	SKIPN	ALOWLD			;ALLOW WILD ?
  2385	003676	254 00 0 00 000425 		JRST	CMDERR			;NO, COMMAND ERROR
  2386	003677	263 17 0 00 000000 		RTN
  2387
  2388	003700	202 00 0 00 000001 	INWDEV:	MOVEM	A			;SAVE 0
  2389	003701	260 17 0 00 004050 		GO	RD1			;GET A CHARACTER FROM FILE
  2390	003702	400 00 0 00 000000 		SETZ				;EOF, SET CHARACTER TO ZERO
  2391	003703	250 00 0 00 000001 		EXCH	A			;PUT CHARACTER IN A
  2392	003704	263 17 0 00 000000 		RTN				;EXIT
  2393
  2394					;*	INPUT FROM .INP FILE
  2395
  2396	003705	202 00 0 00 000001 	INWINP:	MOVEM	A			;SAVE 0
  2397	003706	260 17 0 00 004001 		GO	RDCHAR			;GET A CHAR FROM FILE
  2398	003707	400 00 0 00 000000 		SETZ				;EOF, SET CHAR TO ZERO
  2399	003710	250 00 0 00 000001 		EXCH	A			;PUT CHAR IN A
  2400	003711	263 17 0 00 000000 		RTN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 67
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0098

  2401					;*INNUM, INPUT AN OCTAL NUMBER
  2402					;*	PLACE NUMBER IN 0, MAXIMUM OF SIX DIGITS
  2403					;*	PLACE FIRST NON-DIGIT CHARACTER OR SEVENTH DIGIT IN A
  2404
  2405	003712	400 00 0 00 000000 	INNUM:	SETZ				;CLEAR 0
  2406	003713	256 00 0 00 006531'	INNUMS:	XCT	INWXCT			;INPUT A CHARACTER
  2407	003714	301 01 0 00 000060 		CAIL	A,"0"			;CHECK IF AN OCTAL DIGIT
  2408	003715	303 01 0 00 000067 		CAILE	A,"7"			;
  2409	003716	263 17 0 00 000000 		RTN				;NO, RETURN WITH CHARACTER IN A
  2410	003717	602 00 0 00 700000 		TRNE	700000			;ANY ROOM FOR DIGIT?
  2411	003720	263 17 0 00 000000 		RTN				;NO, ONLY 6 ALLOWED
  2412	003721	241 01 0 00 777775 		ROT	A,-3			;ROTATE DIGIT TO LEFT
  2413	003722	246 00 0 00 000003 		LSHC	3			;SHIFT INTO 0
  2414	003723	254 00 0 00 003713 		JRST	INNUMS			;GO GET NEXT CHARACTER
  2415
  2416					;*PNTOCT, PRINT THE OCTAL NUMBER IN AC0
  2417
  2418	003724	322 00 0 00 003744 	PNTOCT:	JUMPE	PNTZRO			;JUMP IF ZERO
  2419	003725	261 17 0 00 000000 		PUT	0			;SAVE TWO ACS
  2420	003726	261 17 0 00 000001 		PUT	A
  2421	003727	246 00 0 00 777737 		LSHC	-^D33			;SHIFT NUMBER INTO A
  2422	003730	660 01 0 00 000007 		TRO	A,7			;SET LOWER ORDER DIGIT TO ONES
  2423	003731	326 00 0 00 003734 		JUMPN	PNTOTC			;IF ZERO, FORCE A PRINT
  2424	003732	246 00 0 00 000003 		LSHC	3			;GET A DIGIT
  2425	003733	322 00 0 00 003732 		JUMPE	.-1			;IGNORE LEADING ZEROS
  2426	003734	271 00 0 00 000060 	PNTOTC:	ADDI	"0"			;CONVERT TO ASC11 CODE
  2427	003735	051 01 0 00 000000 		OUTCHR				;PRINT THIE DIGIT
  2428	003736	400 00 0 00 000000 		SETZ				;CLEAR ZERO
  2429	003737	246 00 0 00 000003 		LSHC	3			;GET NEXT DIGIT
  2430	003740	326 01 0 00 003734 		JUMPN	A,PNTOTC		;PRINT THIS ONE
  2431	003741	262 17 0 00 000001 		GET	A			;RESTORE ACS
  2432	003742	262 17 0 00 000000 		GET	0
  2433	003743	263 17 0 00 000000 		RTN				;EXIT
  2434
  2435	003744	051 01 0 00 007336'	PNTZRO:	OUTCHR	["0"]			;PRINT A ZERO
  2436	003745	263 17 0 00 000000 		RTN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 68
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0099

  2437					;*PNTDEC, PRINT THE DECIMAL NUMBER IN AC0
  2438
  2439	003746	261 17 0 00 000000 	PNTDEC:	PUT	0			;SAVE ACS
  2440	003747	261 17 0 00 000002 		PUT	B
  2441	003750	261 17 0 00 000001 		PUT	A
  2442	003751	400 02 0 00 000000 		SETZ	B,			;CLEAR DIGIT COUNTER
  2443	003752	231 00 0 00 000012 	PNTDCD:	IDIVI	^D10			;DIVIDE BY 10
  2444	003753	322 00 0 00 003756 		JUMPE	PNTDCO			;GO OUTPUT IF ZERO QUOTIENT
  2445	003754	261 17 0 00 000001 		PUT	A			;SAVE DIGIT ON PUSH LIST
  2446	003755	344 02 0 00 003752 		AOJA	B,PNTDCD		;GO DIVIDE AGAIN
  2447	003756	271 01 0 00 000060 	PNTDCO:	ADDI	A,"0"			;CONVERT TO ASCII
  2448	003757	051 01 0 00 000001 		OUTCHR	A			;PRINT DIGIT IN A
  2449	003760	262 17 0 00 000001 		GET	A			;GET NEXT DIGIT
  2450	003761	365 02 0 00 003756 		SOJGE	B,PNTDCO		;COUNT THE DIGITS TO PRINT
  2451	003762	262 17 0 00 000002 		GET	B			;RESTORE ACS
  2452	003763	262 17 0 00 000000 		GET	0
  2453	003764	263 17 0 00 000000 		RTN				;RETURN
  2454
  2455					;*PNTSIX, PRINT SIXBIT WORD IN 0
  2456
  2457	003765	261 17 0 00 000000 	PNTSIX:	PUT 0				;SAVE ACS
  2458	003766	261 17 0 00 000001 		PUT A
  2459	003767	246 00 0 00 777734 		LSHC	-^D36			;SHIFT WORD INTO A
  2460	003770	246 00 0 00 000006 	PNTSXC:	LSHC	6			;SHIF IN ONE CHARACTER
  2461	003771	271 00 0 00 000040 		ADDI	SPACE			;CONVERT TO ASCII
  2462	003772	051 01 0 00 000000 		OUTCHR				;PRINT IT
  2463	003773	400 00 0 00 000000 		SETZ				;CLEAR AC
  2464	003774	603 01 0 00 770000 		TLNE	A,770000		;SKIP IF NEXT CHARACTER IS BLANK
  2465	003775	254 00 0 00 003770 		JRST	PNTSXC			;NO, PRINT IT
  2466	003776	262 17 0 00 000001 	PNTSXX:	GET	A			;RESTORE ACS
  2467	003777	262 17 0 00 000000 		GET 	0
  2468	004000	263 17 0 00 000000 		RTN				;EXIT
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 69
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0100

  2469					;*RDCHAR, INPUT A CHARACTER FROM FILE ON CHANNEL 0.
  2470					;*	UPDATE LOCATION PAGE, LINE AND CHAR TO SHOW POSITION OF NEXT CHARACTER
  2471					;*	TO BE INPUT.  RETURN +2 WITH CHARACTER IN 0.
  2472					;*	RETURN +1 IF EOF INPUT
  2473					;*	IF ERROR, REPORT IT AND EXIT TO COMM
  2474
  2475	004001	375 00 0 00 006432 	RDCHAR:	SOSGE	BUF0+2			;DECREMENT THE BYTE COUNT
  2476	004002	254 00 0 00 004027 		JRST	GETBF0			;BUFFER EMPTY - GET ANOTHER ONE
  2477	004003	134 00 0 00 006431 		ILDB	BUF0+1			;GET A CHARACTER
  2478	004004	306 00 0 00 000015 		CAIN	CR			;CARRIAGE RETURN
  2479	004005	402 00 0 00 006511'		SETZM	CHAR			;CLEAR CHAR
  2480	004006	302 00 0 00 000012 		CAIE	LF			;LINE FEED  OR
  2481	004007	306 00 0 00 000013 		CAIN	VT			;VERTICAL TAB
  2482	004010	334 00 0 00 000000 		SKIPA
  2483	004011	254 00 0 00 004015 		JRST	RDCHRT			;NO
  2484	004012	402 00 0 00 006533'		SETZM	LINE			;CLEAR LINE
  2485	004013	402 00 0 00 006511'		SETZM	CHAR			;CLEAR CHAR
  2486	004014	350 00 0 00 006545'		AOS	PAGE			;INCREMENT PAGE
  2487	004015	302 00 0 00 000011 	RDCHRT:	CAIE	TAB			;TAB
  2488	004016	254 00 0 00 004023 		JRST	RDCHRP			;NO
  2489	004017	250 00 0 00 006511'		EXCH	CHAR			;GET CHAR
  2490	004020	620 00 0 00 000007 		TRZ	7			;CLEAR LOW ORDER OCTAL DIGIT
  2491	004021	271 00 0 00 000010 		ADDI	10			;INCREMENT TO TAB STOP
  2492	004022	250 00 0 00 006511'		EXCH	CHAR			;RESTORE CHAR
  2493	004023	301 00 0 00 000040 	RDCHRP:	CAIL	SPACE			;PRINTABLE CHARACTER
  2494	004024	350 00 0 00 006511'		AOS	CHAR			;INCREMENT CHAR
  2495	004025	350 00 0 17 000000 		AOS	(P)			;RETURN +2
  2496	004026	263 17 0 00 000000 		RTN
  2497
  2498	004027	056 00 0 00 000000 	GETBF0:	IN				;GET NEW BUFFER
  2499	004030	254 00 0 00 004001 		JRST	RDCHAR			;NO ERRORS
  2500	004031	062 00 0 00 000000 		GETSTS				;GET ERROR STATUS
  2501	004032	606 00 0 00 020000 		TRNN	1B22			;SKIP IF EOF
  2502	004033	254 00 0 00 004036 		JRST	ERRBF0			;NO, ERROR
  2503	004034	400 00 0 00 000000 		SETZ	0			;CLEAR CHARACTER
  2504	004035	263 17 0 00 000000 		RTN				;RETURN +1
  2505
  2506	004036	260 17 0 00 000311 	ERRBF0:	GO	COCLR			;CLEAR CONTROL O
  2507	004037	051 03 0 00 007151'		PRINT	<? READ ERROR >		;READ ERROR, REPORT IT
  2508	004040	260 17 0 00 003724 		GO	PNTOCT			;PRINT STATUS
  2509	004041	051 03 0 00 007337'		PRINT	< FILE - >		;PRINT FILE NAME
  2510	004042	200 00 0 00 006350 		MOVE	INFILN
  2511	004043	260 17 0 00 003765 		GO	PNTSIX
  2512	004044	051 01 0 00 006605'		OUTCHR	[PERIOD]
  2513	004045	510 00 0 00 006351 		HLLZ	INFILE			;AND EXTENSION
  2514	004046	260 17 0 00 003765 		GO	PNTSIX
  2515	004047	254 00 0 00 000314 		JRST	COMM
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 70
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0101

  2516					;*RD1, READ A CHARACTER INTO 0 FROM CHANNEL 1
  2517
  2518	004050	375 00 0 00 006435 	RD1:	SOSGE	BUF1+2			;DECREMENT BYTE COUNT
  2519	004051	254 00 0 00 004055 		JRST	RDBUF1			;BUFFER EMPTY
  2520	004052	134 00 0 00 006434 		ILDB	BUF1+1			;GET A BYTE
  2521	004053	350 00 0 17 000000 		AOS	(P)
  2522	004054	263 17 0 00 000000 		RTN
  2523	004055	056 01 0 00 000000 	RDBUF1:	IN	CH1,			;GET ANOTHER BUFFER
  2524	004056	254 00 0 00 004050 		JRST	RD1			;NOW GET CHARACTER
  2525	004057	062 01 0 00 000000 		GETSTS	CH1,			;GET ERROR STATUS
  2526	004060	602 00 0 00 020000 		TRNE	1B22			;CHECK IF EOF
  2527	004061	254 00 0 00 004066 		JRST	RDEOF			;YES
  2528	004062	260 17 0 00 001516 		GO	ERRNAM
  2529	004063	051 03 0 00 007341'		PRINT	<READ ERROR > 		;NO, PRINT ERROR
  2530	004064	260 17 0 00 003724 		GO	PNTOCT			;PRINT STATUS WORD
  2531	004065	254 00 0 00 000314 		JRST	COMM
  2532
  2533	004066	400 00 0 00 000000 	RDEOF:	SETZ				;CLEAR 0
  2534	004067	263 17 0 00 000000 		RTN
  2535
  2536					;*RD4, READ A CHARACTER FROM MAGTAPE ON CHANNEL 4
  2537
  2538	004070	375 00 0 00 006446 	RD4:	SOSGE	BUF4+2			;DECREMENT BYTE COUNT
  2539	004071	254 00 0 00 004075 		JRST	RDBUF4			;BUFFER EMPTY
  2540	004072	134 00 0 00 006445 		ILDB	BUF4+1			;GET A BYTE
  2541	004073	350 00 0 17 000000 		AOS	(P)			;CAUSE SKIP RETURN
  2542	004074	263 17 0 00 000000 		RTN				;RETURN
  2543
  2544	004075	056 04 0 00 000000 	RDBUF4:	IN	CH4,			;GET ANOTHER BUFFER
  2545	004076	254 00 0 00 004070 		JRST	RD4			;NOW GET CHARACTER
  2546	004077	062 04 0 00 000000 		GETSTS	CH4,			;GET ERROR STATUS
  2547	004100	602 00 0 00 020000 		TRNE	1B22			;CHECK IF EOF
  2548	004101	254 00 0 00 004066 		JRST	RDEOF			;YES
  2549	004102	260 17 0 00 001516 		GO	ERRNAM
  2550	004103	051 03 0 00 007344'		PRINT	<MAGTAPE READ ERROR > 
  2551	004104	260 17 0 00 003724 		GO	PNTOCT			;PRINT STATUS WORD
  2552	004105	254 00 0 00 000314 		JRST	COMM
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 71
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0102

  2553					;*RD4X, READ A CHARACTER FROM MAGTAPE ON CHANNEL 4
  2554					;*	IF A READ ERROR OCCURS, REPORT & READ TAPE TILL EOF
  2555
  2556	004106	375 00 0 00 006446 	RD4X:	SOSGE	BUF4+2			;DECREMENT BYTE COUNT
  2557	004107	254 00 0 00 004113 		JRST	RDBF4X			;BUFFER EMPTY
  2558	004110	134 00 0 00 006445 		ILDB	BUF4+1			;GET A BYTE
  2559	004111	350 00 0 17 000000 		AOS	(P)			;CAUSE SKIP RETURN
  2560	004112	263 17 0 00 000000 		RTN				;RETURN
  2561
  2562	004113	056 04 0 00 000000 	RDBF4X:	IN	CH4,			;GET ANOTHER BUFFER
  2563	004114	254 00 0 00 004106 		JRST	RD4X			;NOW GET CHARACTER
  2564	004115	062 04 0 00 000000 		GETSTS	CH4,			;GET ERROR STATUS
  2565	004116	602 00 0 00 020000 		TRNE	1B22			;CHECK IF EOF
  2566	004117	254 00 0 00 004066 		JRST	RDEOF			;YES
  2567
  2568	004120	260 17 0 00 001516 		GO	ERRNAM
  2569	004121	051 03 0 00 007344'		PRINT	<MAGTAPE READ ERROR > 
  2570	004122	260 17 0 00 003724 		GO	PNTOCT			;PRINT STATUS WORD
  2571	004123	051 03 0 00 006606'		OUTSTR	[CRLF]
  2572
  2573	004124	056 04 0 00 000000 		IN	CH4,			;GET BUFFERS TILL EOF
  2574	004125	254 00 0 00 004124 		JRST	.-1
  2575	004126	062 04 0 00 000000 		GETSTS	CH4,
  2576	004127	606 00 0 00 020000 		TRNN	1B22
  2577	004130	254 00 0 00 004124 		JRST	.-4
  2578
  2579	004131	070 02 0 00 000040 		CLOSE	CH2,40			;EOF, CLOSE & THRO AWAY NEW FILE
  2580	004132	262 17 0 00 000000 		GET	0			;THRO AWAY SUBROUTINE RETURN
  2581	004133	254 00 0 00 002212 		JRST	NEXTA			;GO COMPLETE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 72
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0103

  2582					;*WRT2, WRITE THE DATA FROM 0 ONTO FILE ON CHANNEL 2
  2583
  2584	004134	375 00 0 00 006440 	WRT2:	SOSGE	BUF2+2			;DECREMENT BYTE COUNT
  2585	004135	254 00 0 00 004140 		JRST	WRTBF2			;BUFFER FULL, GET ANOTHER
  2586	004136	136 00 0 00 006437 		IDPB	BUF2+1			;DEPOSIT A CHARACTER
  2587	004137	263 17 0 00 000000 		RTN
  2588	004140	057 02 0 00 000000 	WRTBF2:	OUT	CH2,			;WRITE THE BUFFER
  2589	004141	254 00 0 00 004134 		JRST	WRT2			;WRITE DATA NOW
  2590	004142	062 02 0 00 000000 		GETSTS	CH2,			;GET STATUS
  2591	004143	254 00 0 00 004153 		JRST	WRTERR
  2592
  2593					;*WRCHAR, WRITE A CHARACTER INTO DIRECTORY FILE ON CHANNEL 3
  2594
  2595	004144	375 00 0 00 006443 	WRCHAR:	SOSGE	BUF3+2			;DECREMENT THE BYTE COUNT
  2596	004145	254 00 0 00 004150 		JRST	GETBF3			;BUFFER FULL - GET ANOTHER
  2597	004146	136 00 0 00 006442 		IDPB	BUF3+1			;DEPOSIT A CHARACTER
  2598	004147	263 17 0 00 000000 		RTN
  2599	004150	057 03 0 00 000000 	GETBF3:	OUT	CH3,			;WRITE THIS BUFFER
  2600	004151	254 00 0 00 004144 		JRST	WRCHAR			;TRY AGAIN
  2601	004152	062 03 0 00 000000 		GETSTS	CH3,			;GET STATUS
  2602	004153	260 17 0 00 001516 	WRTERR:	GO	ERRNAM
  2603	004154	051 03 0 00 007350'		PRINT	<WRITE ERROR > 		;REPORT ERROR
  2604	004155	260 17 0 00 003724 		GO	PNTOCT			;PRINT STATUS
  2605	004156	254 00 0 00 000314 		JRST	COMM			;GET OUT NOW
  2606
  2607					;*WRT4, WRITE THE DATA FROM 0 ONTO MAGTAPE ON CHANNEL 4
  2608
  2609	004157	375 00 0 00 006446 	WRT4:	SOSGE	BUF4+2			;DECREMENT THE BYTE COUNT
  2610	004160	254 00 0 00 004163 		JRST	WRTBF4			;BUFFER FULL - GET ANOTHER
  2611	004161	136 00 0 00 006445 		IDPB	BUF4+1			;DEPOSIT A CHARACTER
  2612	004162	263 17 0 00 000000 		RTN				;RETURN
  2613	004163	057 04 0 00 000000 	WRTBF4:	OUT	CH4,			;WRITE THIS BUFFER
  2614	004164	254 00 0 00 004157 		JRST	WRT4			;TRY AGAIN
  2615	004165	062 04 0 00 000000 		GETSTS	CH4,			;GET ERROR STATUS
  2616	004166	070 04 0 00 000000 		CLOSE	CH4,			;CLOSE MAGTAPE CHANNEL
  2617	004167	254 00 0 00 004153 		JRST	WRTERR
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 73
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0104

  2618					;*OUTDIG, OUTPUT THE DIGIT IN AC0. CONVERT TO SPACE IF LEADING ZERO
  2619
  2620	004170	336 00 0 00 006523'	OUTDIG:	SKIPN	DIGCNT			;SKIP IF NUMBER ALREADY PRINTED
  2621	004171	322 00 0 00 004176 		JUMPE	OUTLDC			;OUTPUT LDCHAR IF DIGIT IS ZERO
  2622	004172	271 00 0 00 000060 		ADDI	"0"			;CONVERT TO ASCII CODE
  2623	004173	350 00 0 00 006523'		AOS	DIGCNT			;COUNT THE DIGIT
  2624	004174	260 17 0 00 004144 	OUTLCH:	GO	WRCHAR			;WRITE IT
  2625	004175	263 17 0 00 000000 		RTN
  2626
  2627	004176	200 00 0 00 006532'	OUTLDC:	MOVE	LDCHAR#			;GET LEADING CHARACTER
  2628	004177	326 00 0 00 004174 		JUMPN	OUTLCH			;OUTPUT IT IF NOT ZERO
  2629	004200	263 17 0 00 000000 		RTN				;ZERO CHARACTER, RETURN NOW
  2630
  2631					;*OUTWRD, OUTPUT SIXBIT WORD IN 0. CHARACTER COUNT IS IN A.
  2632
  2633	004201	202 01 0 00 006523'	OUTWRD:	MOVEM	A,DIGCNT		;SAVE COUNT
  2634	004202	246 00 0 00 777742 		LSHC	-^D30			;GET FIRST CHARACTER
  2635	004203	271 00 0 00 000040 	OUTWDC:	ADDI	SPACE			;CONVERT TO ASCII
  2636	004204	260 17 0 00 004144 		GO	WRCHAR			;WRITE CHARACTER
  2637	004205	377 00 0 00 006523'		SOSG	DIGCNT			;COUNT THE CHARACTER
  2638	004206	263 17 0 00 000000 		RTN				;ALL WERE PRINTED
  2639	004207	400 00 0 00 000000 		SETZ				;CLEAR ZERO
  2640	004210	246 00 0 00 000006 		LSHC	6			;GET NEXT CHARACTER
  2641	004211	254 00 0 00 004203 		JRST	OUTWDC			;WRITE THIS ONE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 74
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0105

  2642					;*RDSWIT, READ SWITCH.INI FILE TO INPUT SEARCH LIST
  2643
  2644	004212	403 05 0 00 000011 	RDSWIT:	SETZB	STAT,PPN		;CLEAR STATUS AND PPN, SELECTING ASCII MODE
  2645	004213	205 06 0 00 446353 		MOVSI	DEV,'DSK'		;GET DEVICE NAME
  2646	004214	201 07 0 00 006433 		MOVEI	BUFFS,BUF1		;INPUT BUFFER IS BUF1
  2647	004215	201 10 0 00 000006 		MOVEI	CNT,6			;SET COUNT TO 6
  2648	004216	200 12 0 00 007353'		MOVE	FN,['SWITCH']		;PREPARE TO READ FILE
  2649	004217	205 13 0 00 515651 		MOVSI	EXT,'INI'		;  SWITCH.INI
  2650	004220	050 01 0 00 000005 		OPEN	CH1,STAT		;OPEN CHANNEL 1 ON DSK
  2651	004221	263 17 0 00 000000 		RTN				;ERROR
  2652	004222	076 01 0 00 000010 		LOOKUP	CH1,CNT			;LOOPUP FILE SWITCH.INI
  2653	004223	263 17 0 00 000000 	NOSWIT:	RTN				;NOT FOUND
  2654	004224	056 01 0 00 000000 		IN	CH1,			;SET UP BUFFERS
  2655	004225	200 00 0 00 006724'		MOVE	[GO INWDEV]		;SET UP INPUT COMMAND
  2656	004226	202 00 0 00 006531'		MOVEM	INWXCT			;PUT IN WORD EXECUTED BY INWORD
  2657	004227	200 02 0 00 006666'		MOVE	B,['MAGTAP']		;GET NAME OF THIS PROGRAM
  2658	004230	260 17 0 00 003613 	RDLINE:	GO	INWORD			;INPUT A WORD
  2659	004231	322 01 0 00 004223 		JUMPE	A,NOSWIT		;EXIT IF END OF FILE
  2660	004232	306 01 0 00 000012 		CAIN	A,LF			;LINE FEED?
  2661	004233	254 00 0 00 004230 		JRST	RDLINE			;YES, READ NEXT LINE
  2662	004234	316 00 0 00 000002 		CAMN	B			;CHECK IF WORD IS MAGTAP
  2663	004235	254 00 0 00 004243 		JRST	RDOPT			;YES, LOOK AT OPTION
  2664	004236	260 17 0 00 003613 	RDEND:	GO	INWORD			;READ NEXT WORD
  2665	004237	306 01 0 00 000012 	RDENDA:CAIN	A,LF			;INPUT REST OF LINE
  2666	004240	254 00 0 00 004230 		JRST	RDLINE			;LINE FEED FOUND, READ NEXT LINE
  2667	004241	326 01 0 00 004236 		JUMPN	A,RDEND			;IF NOT END OF FILE, KEEP READING
  2668	004242	263 17 0 00 000000 		RTN				;EOF, RETURN
  2669
  2670	004243	322 03 0 00 004252 	RDOPT:	JUMPE	C,NOOPT			;JUMP IF NO OPTION SPECIFIED
  2671	004244	302 01 0 00 000072 		CAIE	A,COLON			;CHECK IF COLON INPUT
  2672	004245	254 00 0 00 004237 		JRST	RDENDA			;NO, THIS LINE HAS NO OPTION NAME
  2673	004246	260 17 0 00 003613 		GO	INWORD			;READ OPTION NAME
  2674	004247	312 00 0 00 000003 		CAME	C			;MATCH WITH NAME SPECIFIED
  2675	004250	254 00 0 00 004237 		JRST	RDENDA			;NO, THIS IS NOT OPTION LINE WANTED
  2676	004251	254 00 0 00 004256 		JRST	LINFND			;YES, GO SET UP SEARCH LIST
  2677
  2678	004252	302 01 0 00 000040 	NOOPT:	CAIE	A,SPACE			;TERMINATOR A SPACE
  2679	004253	306 01 0 00 000011 		CAIN	A,TAB			;  OR TAB?
  2680	004254	334 00 0 00 000000 		SKIPA				;YES
  2681	004255	254 00 0 00 004237 		JRST	RDENDA			;NO, NOT THIS LINE
  2682	004256	350 00 0 17 000000 	LINFND:	AOS	(P)			;FROM HERE, CAUSE RETURN +2
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 75
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0106

  2683					;*SETSRC, SET UP SEARCH LIST
  2684
  2685	004257	201 02 0 00 006355 	SETSRC:	MOVEI	B,SCHLST		;GET SEARCH LIST ADR
  2686	004260	201 03 0 00 000024 		MOVEI	C,^D20			;GET LIMIT AT 20 ENTRIES
  2687
  2688	004261	205 00 0 00 446353 	SETSCH:	MOVSI	'DSK'			;SET UP DEFAULT DSK
  2689	004262	202 00 0 02 000000 		MOVEM	(B)			;  AND USERS PPN IN
  2690	004263	402 00 0 02 000001 		SETZM	1(B)			;  SEARCH LIST
  2691	004264	402 00 0 02 000002 		SETZM	2(B)			;  THEN END OF LIST
  2692	004265	322 01 0 00 004327 	SETSNX:	JUMPE	A,SETEND		;EOF, RETURN
  2693	004266	306 01 0 00 000012 		CAIN	A,LF			;END OF LINE?
  2694	004267	254 00 0 00 004327 		JRST	SETEND			;YES, RETURN
  2695	004270	260 17 0 00 003613 		GO	INWORD			;READ A WORD
  2696	004271	332 00 0 00 000000 		SKIPE				;ANY STRUCTURE INPUT?
  2697	004272	202 00 0 02 000000 		MOVEM	(B)			;YES, SAVE IN LIST
  2698	004273	302 01 0 00 000072 		CAIE	A,COLON			;IF A COLON
  2699	004274	254 00 0 00 004277 		JRST	SETPPN			;NO, GO LOOK FOR PPN
  2700	004275	322 00 0 00 004335 		JUMPE	NULDEV			;ERROR IF NULL DEVICE
  2701	004276	254 00 0 00 004265 		JRST	SETSNX			;GO FOR NEXT WORD
  2702	004277	302 01 0 00 000133 	SETPPN:	CAIE	A,LB			;CHECK IF A LEFT BRACKET
  2703	004300	254 00 0 00 004312 		JRST	SETCOM			;NO
  2704	004301	260 17 0 00 003712 		GO	INNUM			;INPUT PROJECT NUMBER
  2705	004302	302 01 0 00 000054 		CAIE	A,COMMA			;TERMINATOR A COMMA?
  2706	004303	254 00 0 00 004324 		JRST	SETERP			;ERROR, IMPROPER PPN
  2707	004304	506 00 0 02 000001 		HRLM	1(B)			;STORE IT
  2708	004305	260 17 0 00 003712 		GO	INNUM			;INPUT PROGRAMMER NUMBER
  2709	004306	542 00 0 02 000001 		HRRM	1(B)			;STORE IT
  2710	004307	306 01 0 00 000135 		CAIN	A,RB			;TERMINATOR A RIGHT BRACKET?
  2711	004310	254 00 0 00 004265 		JRST	SETSNX			;YES, KEEP READING
  2712	004311	254 00 0 00 004324 		JRST	SETERP			;NO, ERROR, IMPROPER PPN
  2713
  2714	004312	302 01 0 00 000054 	SETCOM:	CAIE	A,COMMA			;CHECK IF COMMA INPUT
  2715	004313	254 00 0 00 004265 		JRST	SETSNX			;NO, KEEP READING
  2716	004314	271 02 0 00 000002 		ADDI	B,2			;INCREMENT ADDRESS BY 2
  2717	004315	367 03 0 00 004261 		SOJG	C,SETSCH		;KEEP READING
  2718	004316	260 17 0 00 000311 		GO	COCLR			;CLEAR CONTROL O
  2719						PRINT	<? TOO MANY DISK AREAS SPECIFIED, MAXIMUM OF 20 ALLOWED
  2720	004317	051 03 0 00 007354'	>
  2721	004320	306 01 0 00 000012 	SETTMY:	CAIN	A,LF			;CHECK IF LINE FEED INPUT
  2722	004321	254 00 0 00 004330 		JRST	SETERR			;YES, REPLACE ENTRY WITH DSK AND USERS PPN
  2723	004322	260 17 0 00 003613 		GO	INWORD			;INPUT ANOTHER WORD
  2724	004323	254 00 0 00 004320 		JRST	SETTMY			;LOOK FOR LF AGAIN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 76
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0107

  2725					;*	SEARCH LIST ARGUMENT ERROR MESSAGES
  2726
  2727	004324	260 17 0 00 000311 	SETERP:	GO	COCLR			;CLEAR CONTROL O
  2728						PRINT	<? IMPROPER [P,PN] SPECIFICATION
  2729	004325	051 03 0 00 007370'	>
  2730	004326	254 00 0 00 004330 		JRST	SETERR
  2731
  2732	004327	271 02 0 00 000002 	SETEND:	ADDI	B,2			;INCREMENT ADDRESS BY 2
  2733	004330	205 00 0 00 446353 	SETERR:	MOVSI	'DSK'			;SET UP DSK
  2734	004331	202 00 0 02 000000 		MOVEM	(B)			;  AND USER'S PPN
  2735	004332	402 00 0 02 000001 		SETZM	1(B)			;  AT END OF LIST
  2736	004333	402 00 0 02 000002 		SETZM	2(B)			;END THE LIST
  2737	004334	263 17 0 00 000000 		RTN
  2738
  2739	004335	260 17 0 00 000311 	NULDEV:	GO	COCLR			;CLEAR CONTROL O
  2740						PRINT	<? NULL DEVICE NAME IN SEARCH LIST
  2741	004336	051 03 0 00 007377'	>
  2742	004337	254 00 0 00 004330 		JRST	SETERR
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 77
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0108

  2743					;*GETVER, OBTAIN AND WRITE VERSION NUMBER OF FILE.
  2744					;*	ALSO PLACE IN LH OF DATE WORD
  2745					;*	IF IN NORMAL FORMAT.
  2746
  2747	004340	554 00 0 00 000013 	GETVER:	HLRZ	EXT			;GET EXTENSION
  2748	004341	306 00 0 00 634166 		CAIN	'SAV'			;IS IT SAV?
  2749	004342	260 17 0 00 004575 		GO	SAVVER			;YES
  2750	004343	302 00 0 00 412120 		CAIE	'A10'			;CHECK IF AN ASCIIZED FILE
  2751	004344	306 00 0 00 412121 		CAIN	'A11'			;A10, A11, OR A8
  2752	004345	254 00 0 00 004376 		JRST	ASCVER			;YES, A10 OR A11
  2753	004346	306 00 0 00 413000 		CAIN	'A8 '
  2754	004347	254 00 0 00 004376 		JRST	ASCVER			;YES, A8
  2755	004350	302 00 0 00 624155 		CAIE	'RAM'			;CHECK IF RAM OR TIC
  2756	004351	306 00 0 00 645143 		CAIN	'TIC'
  2757	004352	254 00 0 00 004376 		JRST	ASCVER			;YES, RAM OR TIC
  2758	004353	322 16 0 00 004371 	GETVRA:	JUMPE	VER,ZROVER		;IS VERSION ZERO?
  2759	004354	135 00 0 00 007407'		LDB	[POINT 9,VER,17]	;GET EDIT NUMBER
  2760	004355	137 00 0 00 007410'		DPB	[POINT 9,DAT,8]		;PUT IN DATE WORD
  2761	004356	260 17 0 00 004750 		GO	OUTNUM			;WRITE NUMBER
  2762	004357	201 00 0 00 000056 		MOVEI	PERIOD			;WRITE A PERIOD
  2763	004360	260 17 0 00 004144 		GO	WRCHAR
  2764	004361	135 00 0 00 007411'		LDB	[POINT 9,VER,35]	;GET VERSION NUMBER
  2765	004362	137 00 0 00 007412'		DPB	[POINT 9,DAT,17]	;PUT IN DATE WORD
  2766	004363	402 00 0 00 006532'		SETZM	LDCHAR			;CLEAR LEADING CHARACTER FOR OUTDIG
  2767	004364	402 00 0 00 006523'		SETZM	DIGCNT			;CLEAR DIGIT COUNTER
  2768	004365	260 17 0 00 004750 		GO	OUTNUM			;WRITE THE NUMBER
  2769	004366	201 01 0 00 000004 		MOVEI	A,4			;GET CHARACTER COUNT OF 4
  2770	004367	274 01 0 00 006523'		SUB	A,DIGCNT		;SUBTRACT DIGITS PRINTED
  2771	004370	254 00 0 00 004373 		JRST	VERE			;GO TO WRITE SPACE AFTER VERSION
  2772	004371	505 14 0 00 000000 	ZROVER:	HRLI	DAT,0			;CLEAR VERSION IN DATE WORD
  2773	004372	201 01 0 00 000010 		MOVEI	A,8			;SET SPACE COUNT TO 8
  2774	004373	400 00 0 00 000000 	VERE:	SETZ				;CLEAR ZERO TO TYPE SPACES ONLY
  2775	004374	260 17 0 00 004201 		GO	OUTWRD			;WRITE THE SPACES
  2776	004375	263 17 0 00 000000 		RTN			
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 78
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0109

  2777					;*ASCVER, READ FIRST LINE OF ASCII FILE AND EXTRACT VERSION AND DATE
  2778
  2779	004376	261 17 0 00 000121 	ASCVER:	PUT	.JBFF			;SAVE JOB FIRST FREE
  2780	004377	402 00 0 00 006564'		SETZM	VERPNT#			;CLEAR VERSION PRINTED FLAG
  2781	004400	064 01 0 00 000001 		INBUF	CH1,1			;SET UP BUFFERS
  2782	004401	260 17 0 00 004050 		GO	RD1			;READ FIRST CHARACTER
  2783	004402	254 00 0 00 004546 		JRST	ASCEND			;ERROR
  2784	004403	302 00 0 00 000073 		CAIE	SCOLON			;CHECK IF A SEMI-COLON
  2785	004404	254 00 0 00 004546 		JRST	ASCEND			;NO
  2786	004405	260 17 0 00 003613 		GO	INWORD			;READ A WORD FROM FILE
  2787	004406	302 01 0 00 000056 		CAIE	A,PERIOD		;CHECK IF A PERIOD TERMINATOR
  2788	004407	254 00 0 00 004546 		JRST	ASCEND			;ERROR
  2789	004410	260 17 0 00 003613 		GO	INWORD			;READ NEXT WORD
  2790	004411	302 01 0 00 000011 		CAIE	A,TAB			;CHECK IF A TAB TERMINATOR
  2791	004412	306 01 0 00 000040 		CAIN	A,SPACE			;CHECK IF A SPACE TERMINATOR
  2792	004413	254 00 0 00 004415 		JRST	.+2			;YES, SPACE OR TAB
  2793	004414	254 00 0 00 004546 		JRST	ASCEND			;ERROR
  2794	004415	260 17 0 00 003613 		GO 	INWORD			;READ NEXT WORD
  2795	004416	312 00 0 00 007413'		CAME	[SIXBIT 'VER']		;CHECK IF THE WORD 'VER'
  2796	004417	254 00 0 00 004546 		JRST	ASCEND			;ERROR
  2797	004420	260 17 0 00 003613 		GO	INWORD			;READ NEXT WORD
  2798	004421	336 00 0 00 006543'		SKIPN	NOTNUM			;NUMBER INPUT AND
  2799	004422	302 01 0 00 000056 		CAIE	A,PERIOD		;  TERMINATOR A PERIOD?
  2800	004423	254 00 0 00 004467 		JRST	VERUNK			;NO, UNKNOWN VERSION TYPE
  2801	004424	202 00 0 00 000016 		MOVEM	VER			;PUT EDIT NUMBER IN VER
  2802	004425	260 17 0 00 003613 		GO	INWORD			;READ NEXT WORD
  2803	004426	336 00 0 00 006543'		SKIPN	NOTNUM			;SKIP IF A NUMBER WAS NOT INPUT
  2804	004427	254 00 0 00 004432 		JRST	ASCVRA			;YES
  2805	004430	200 00 0 00 000016 		MOVE	VER			;GET FIRST WORD BACK
  2806	004431	254 00 0 00 004467 		JRST	VERUNK			;VERSION IN UNKNOWN FORMAT
  2807	004432	616 00 0 00 007414'	ASCVRA:	TDNN	[101010101010]		;CHECK IF EITHER NUMBER
  2808	004433	612 16 0 00 007414'		TDNE	VER,[101010101010]	;IS DECIMAL
  2809	004434	254 00 0 00 004442 		JRST	VERDEC			;YES, TREAT IT SPECIAL
  2810	004435	260 17 0 00 004552 		GO	CNVNUM			;CONVERT VERSION TO NUMBER
  2811	004436	250 00 0 00 000016 		EXCH	VER			;PUT IN VER, GET EDIT
  2812	004437	260 17 0 00 004552 		GO	CNVNUM			;CONVERT EDIT TO NUMBER
  2813	004440	506 00 0 00 000016 		HRLM	VER			;PUT IN VER
  2814	004441	254 00 0 00 004503 		JRST	ASCDAT			;GO ON TO READ DATE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 79
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0110

  2815					;*VERDEC, SET UP VERSION AND DATE FROM FILE
  2816
  2817	004442	250 00 0 00 000016 	VERDEC:	EXCH	VER			;GET BACK EDIT NUMBER
  2818	004443	334 00 0 00 000000 		SKIPA
  2819	004444	242 00 0 00 000006 		LSH	6			;GET THE THREE
  2820	004445	602 00 0 00 777777 		TRNE	-1			;LEAST SIGNIFICANT BITS
  2821	004446	254 00 0 00 004444 		JRST	.-2			;IN LEFT HALF OF AC
  2822	004447	334 00 0 00 000000 		SKIPA				;RIGHT JUSITFY
  2823	004450	242 00 0 00 777772 		LSH	-6			;NUMBER
  2824	004451	607 00 0 00 000077 		TLNN	77			;IN LEFT HALF
  2825	004452	254 00 0 00 004450 		JRST	.-2			;OF AC
  2826	004453	201 01 0 00 000003 		MOVEI	A,3			;SET CHARACTER COUNT TO 3
  2827	004454	260 17 0 00 004201 		GO	OUTWRD			;WRITE THE EDIT NUMBER
  2828	004455	201 00 0 00 000056 		MOVEI	PERIOD			;WRITE A PERIOD
  2829	004456	260 17 0 00 004144 		GO	WRCHAR			;TO SEPARATE THE EDIT AND VERSION NUMBERS
  2830	004457	200 00 0 00 000016 		MOVE	VER			;GET VERSION NUMBER
  2831	004460	334 00 0 00 000000 		SKIPA
  2832	004461	242 00 0 00 000006 		LSH	6			;MOVE THREE LEAST SIGNIFICANT BITS
  2833	004462	602 00 0 00 777777 		TRNE	-1			;INTO LEFT HALF OF AC
  2834	004463	254 00 0 00 004461 		JRST	.-2			;THEN SHIFT
  2835	004464	201 01 0 00 000004 		MOVEI	A,4			;SET CHARACTER COUNTER TO 4
  2836	004465	260 17 0 00 004201 		GO	OUTWRD			;WRITE THE VERSION NUMBER
  2837	004466	254 00 0 00 004501 		JRST	VEROUT			;MARK VERSION AS PRINTED
  2838
  2839	004467	602 00 0 00 000077 	VERUNK:	TRNE	77			;SKIP IF LAST CHARACTER IS BLANK
  2840	004470	254 00 0 00 004477 		JRST	UNKPNT			;NO
  2841	004471	242 00 0 00 777772 		LSH	-6			;SHIFT WORD TO RIGHT
  2842	004472	602 00 0 00 000077 		TRNE	77			;SKIP IF LAST CHARACTER STILL BLANK
  2843	004473	254 00 0 00 004477 		JRST	UNKPNT			;NO
  2844	004474	242 00 0 00 777772 		LSH	-6			;SHIFT WORD TO RIGHT
  2845	004475	606 00 0 00 000077 		TRNN	77			;LAST CHARACTER STILL ZERO?
  2846	004476	242 00 0 00 777772 		LSH	-6			;YES, SHIFT AGAIN
  2847	004477	201 01 0 00 000010 	UNKPNT:	MOVEI	A,8			;SET CHARACTER COUNT TO 8
  2848	004500	260 17 0 00 004201 		GO	OUTWRD			;WRITE VERSION WORD FROM FILE
  2849	004501	505 14 0 00 000000 	VEROUT:	HRLI	DAT,0			;CLEAR VERSION IN DATE WORD
  2850	004502	476 00 0 00 006564'		SETOM	VERPNT			;SET PRINTED VERSION FLAG
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 80
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0111

  2851					;*ASCDAT, READ DATE FROM FILE LINE
  2852
  2853	004503	260 17 0 00 003613 	ASCDAT:	GO	INWORD			;READ NEXT WORD
  2854	004504	302 01 0 00 000012 		CAIE	A,LF			;IF LINE FEED OR
  2855	004505	306 01 0 00 000000 		CAIN	A,0			;  EOF
  2856	004506	254 00 0 00 004546 		JRST	ASCEND			;  ERROR
  2857	004507	306 01 0 00 000055 		CAIN	A,DASH			;IF A DASH AND
  2858	004510	332 00 0 00 006543'		SKIPE	NOTNUM			;  A NUMBER
  2859	004511	254 00 0 00 004546 		JRST	ASCEND			;  MUST BE DATE. IF NOT, ERROR
  2860	004512	612 00 0 00 007415'		TDNE	[77777777]		;MAKE SURE NUMBER IS ONLY 2 DIGITS
  2861	004513	254 00 0 00 004546 		JRST	ASCEND			;ERROR
  2862	004514	202 00 0 00 000003 		MOVEM	C			;SAVE DATE
  2863	004515	260 17 0 00 003613 		GO	INWORD			;INPUT ANOTHER WORD
  2864	004516	302 01 0 00 000055 		CAIE	A,DASH			;TERMINATOR BETTER BE A DASH
  2865	004517	254 00 0 00 004546 		JRST	ASCEND			;ERROR
  2866	004520	261 17 0 00 000002 		PUT	B			;SAVE B
  2867	004521	200 02 0 00 005023 		MOVE	B,DATTBP		;GET ADR OF MONTH TABLE
  2868	004522	260 17 0 00 003125 		GO	COMPARE			;COMPARE INPUT WITH TABLE
  2869						JRST	[GET	B		;ERROR, ALSO RESTORE B
  2870	004523	254 00 0 00 007416'			 JRST	ASCEND ]
  2871	004524	202 02 0 00 000004 		MOVEM	B,D			;SAVE MONTH NUMBER
  2872	004525	262 17 0 00 000002 		GET	B			;RESTORE B	
  2873	004526	260 17 0 00 003613 		GO	INWORD			;READ NEXT WORD
  2874	004527	612 00 0 00 007415'		TDNE	[77777777]		;MAKE SURE NUMBER IS ONLY 2 DIGITS
  2875	004530	254 00 0 00 004546 		JRST	ASCEND			;ERROR
  2876	004531	260 17 0 00 004566 		GO	CNVDEC			;CONVERT YEAR TO NUMBER
  2877	004532	275 00 0 00 000100 		SUBI	^D64			;SUBTRACT START DATE OF 64
  2878	004533	335 00 0 00 000000 		SKIPGE				;NEGATIVE RESULT?
  2879	004534	271 00 0 00 000144 		ADDI	^D100			;YES, MAKE POSITIVE
  2880	004535	221 00 0 00 000014 		IMULI	^D12			;MULTIPLY BY 12
  2881	004536	272 00 0 00 000004 		ADDM	D			;ADD TO MONTH
  2882	004537	221 04 0 00 000037 		IMULI	D,^D31			;MULTIPLY BY 31
  2883	004540	200 00 0 00 000003 		MOVE	C			;GET DAYS
  2884	004541	260 17 0 00 004566 		GO	CNVDEC			;CONVERT TO NUMBER
  2885	004542	375 00 0 00 000000 		SOSGE				;REDUCE DAY BY 1
  2886	004543	254 00 0 00 004546 		JRST	ASCEND			;ERROR, DAY WAS ZERO
  2887	004544	272 00 0 00 000004 		ADDM	D			;ADD TO REST OF DATE
  2888	004545	542 04 0 00 000014 		HRRM	D,DAT			;STORE THE DATE
  2889	004546	262 17 0 00 000121 	ASCEND:	GET	.JBFF			;RESTORE JOB FIRST FREE
  2890	004547	336 00 0 00 006564'		SKIPN	VERPNT			;VERSION ALREADY PRINTED?
  2891	004550	254 00 0 00 004353 		JRST	GETVRA			;NO, GO PRINT NOW
  2892	004551	263 17 0 00 000000 		RTN				;RETURN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 81
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0112

  2893					;*CNVNUM, CONVERT SIXBIT NUMBER IN 0 TO OCTAL NUMBER
  2894
  2895	004552	322 00 0 00 004565 	CNVNUM:	JUMPE	CNVNMX			;RETURN IMMEDIATELY IF NO INPUT
  2896	004553	602 00 0 00 000077 	CNVNMA:	TRNE	77			;CHECK IF NUMBER RIGHT JUSTIFIED
  2897	004554	254 00 0 00 004557 		JRST	CNVNMB			;YES, GO START CONVERSION
  2898	004555	242 00 0 00 777772 		LSH	-6			;NO, SHIFT TO RIGHT
  2899	004556	254 00 0 00 004553 		JRST	CNVNMA			;TRY AGAIN
  2900	004557	245 00 0 00 777775 	CNVNMB:	ROTC	-3			;GET FIRST DIGIT
  2901	004560	242 00 0 00 777775 		LSH	-3			;MOVE TO NEXT
  2902	004561	245 00 0 00 777775 		ROTC	-3			;GET SECOND DIGIT
  2903	004562	242 00 0 00 777775 		LSH	-3			;MOVE TO NEXT
  2904	004563	245 00 0 00 000006 		ROTC	6			;MERGE ALL DIGITS
  2905	004564	405 00 0 00 000777 		ANDI	777			;CLEAR OTHER BITS
  2906	004565	263 17 0 00 000000 	CNVNMX:	RTN				;RETURN
  2907
  2908					;*CNVDEC, CONVERT SIXBIT NUMBER IN 0 TO DECIMAL NUMBER
  2909
  2910	004566	607 00 0 00 007700 	CNVDEC:	TLNN	7700			;CHECK IF ONLY ONE DIGIT
  2911	004567	242 00 0 00 777772 		LSH	-6			;YES, MAKE FIRST DIGIT ZERO
  2912	004570	135 01 0 00 007420'		LDB	A,[POINT 4,0,5]		;GET FIRST DIGIT
  2913	004571	221 01 0 00 000012 		IMULI	A,^D10			;MULTIPLY BY 10
  2914	004572	135 00 0 00 007421'		LDB	[POINT 4,0,11]		;GET SECOND DIGIT
  2915	004573	270 00 0 00 000001 		ADD	A			;ADD TOGETHER
  2916	004574	263 17 0 00 000000 		RTN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 82
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0113

  2917					;*SAVVER, GET VERSION NUMBER OUT OF SAV FILE
  2918
  2919	004575	261 17 0 00 000121 	SAVVER:	PUT	.JBFF			;SAVE JOB FIRST FREE
  2920	004576	060 01 0 00 000010 		SETSTS	CH1,10			;SET IMAGE MODE
  2921	004577	201 00 0 00 004400 		MOVEI	4400			;CHANGE BYTE POINTER FOR
  2922	004600	506 00 0 00 006434 		HRLM 	BUF1+1			;BUFFER HEADER
  2923	004601	056 01 0 00 000000 		IN	CH1,			;CLEAR VERSION FOR NOW
  2924	004602	260 17 0 00 004050 	SAVPNT:	GO	RD1			;READ A POINTER WORD
  2925	004603	254 00 0 00 004617 		JRST	SAVVEX			;EOF, EXIT NOW
  2926	004604	331 01 0 00 000000 		SKIPL	A,0			;MOVE TO A
  2927	004605	254 00 0 00 004617 		JRST	SAVVEX			;NOT A POINTER, EXIT NOW
  2928	004606	260 17 0 00 004050 	SAVDWD:	GO	RD1			;READ DATA WORD
  2929	004607	254 00 0 00 004617 		JRST	SAVVEX			;EOF, ERROR IN SAV FILE
  2930	004610	550 03 0 00 000001 		HRRZ	C,A			;GET ADDRESS OF POINTER
  2931	004611	301 03 0 00 000136 		CAIL	C,136			;CHECK IF 136 OR GREATER
  2932	004612	254 00 0 00 004615 		JRST	SAVVRF			;YES, VERSION FOUND?
  2933	004613	253 01 0 00 004606 		AOBJN	A,SAVDWD		;READ NEXT DATA WORD
  2934	004614	254 00 0 00 004602 		JRST	SAVPNT			;READ NEXT POINTER
  2935	004615	306 03 0 00 000136 	SAVVRF:	CAIN	C,136			;IS ADR 136?
  2936	004616	202 00 0 00 000016 		MOVEM	VER			;YES, SAVE VERSION
  2937	004617	262 17 0 00 000121 	SAVVEX:	GET	.JBFF			;RESTORE JOB FIRST FREE
  2938	004620	263 17 0 00 000000 		RTN				;RETURN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 83
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0114

  2939					;*	OPEN AND LOOKUP FAILURE MESSAGES FOR INPUT FILE
  2940
  2941	004621	260 17 0 00 000311 	OPENFI:	GO	COCLR			;CLEAR CONTROL O
  2942	004622	051 03 0 00 007224'		PRINT	<? OPEN FAILURE ON DEVICE >
  2943	004623	200 00 0 00 006346 		MOVE	INDEVN			;GET DEVICE NAME
  2944	004624	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  2945	004625	254 00 0 00 000314 		JRST	COMM
  2946
  2947	004626	260 17 0 00 000311 	ENTRFI:	GO	COCLR			;CLEAR CONTROL O
  2948	004627	051 03 0 00 007422'		PRINT	<? ENTER FAILURE ON >
  2949	004630	254 00 0 00 004633 		JRST	.+3
  2950	004631	260 17 0 00 000311 	LOOKFI:	GO	COCLR			;CLEAR CONTROL O
  2951	004632	051 03 0 00 007426'		PRINT	<? LOOKUP FAILURE ON >
  2952	004633	200 00 0 00 006346 		MOVE	INDEVN			;GET DEVICE NAME
  2953	004634	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  2954	004635	051 01 0 00 007433'		OUTCHR	[COLON]			;PRINT A COLON
  2955	004636	200 00 0 00 006350 		MOVE	INFILN			;GET FILE NAME
  2956	004637	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  2957	004640	051 01 0 00 006605'		OUTCHR	[PERIOD]		;PRINT A PERIOD
  2958	004641	510 00 0 00 006351 		HLLZ	INFILE			;GET EXTENSION
  2959	004642	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  2960	004643	336 00 0 00 006354 		SKIPN	INFILP			;CHECK IF PPN SPECIFIED
  2961	004644	254 00 0 00 000314 		JRST	COMM
  2962	004645	051 01 0 00 007434'		OUTCHR	[LB]			;PRINT OPENING BRACKET
  2963	004646	554 00 0 00 006354 		HLRZ	INFILP			;GET PROJECT NUMBER
  2964	004647	260 17 0 00 003724 		GO	PNTOCT			;PRINT IT
  2965	004650	051 01 0 00 007435'		OUTCHR	[COMMA]			;PRINT A COMMA
  2966	004651	550 00 0 00 006354 		HRRZ	INFILP			;GET PROGRAMMER NUMBER
  2967	004652	260 17 0 00 003724 		GO	PNTOCT			;PRINT IT
  2968	004653	051 01 0 00 007436'		OUTCHR	[RB]			;CLOSE THE BRACKET
  2969	004654	254 00 0 00 000314 		JRST	COMM
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 84
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0115

  2970					;*	OPEN AND LOOKUP FAILURE MESSAGES FOR DATA FILES
  2971
  2972	004655	260 17 0 00 000311 	OPENFG:	GO	COCLR			;CLEAR CONTROL O
  2973	004656	051 03 0 00 007224'		PRINT	<? OPEN FAILURE ON DEVICE >
  2974	004657	200 00 0 00 000006 		MOVE	DEV			;GET DEVICE NAME
  2975	004660	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  2976	004661	254 00 0 00 000314 		JRST	COMM
  2977
  2978	004662	260 17 0 00 000311 	ENTRFG:	GO	COCLR			;CLEAR CONTROL O
  2979	004663	051 03 0 00 007422'		PRINT	<? ENTER FAILURE ON >
  2980	004664	254 00 0 00 004667 		JRST	.+3
  2981	004665	260 17 0 00 000311 	LOOKFG:	GO	COCLR			;CLEAR CONTROL O
  2982	004666	051 03 0 00 007426'		PRINT	<? LOOKUP FAILURE ON >
  2983	004667	200 00 0 00 000006 		MOVE	DEV			;GET DEVICE NAME
  2984	004670	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  2985	004671	051 01 0 00 007433'		OUTCHR	[COLON]			;PRINT A COLON
  2986	004672	200 00 0 00 000012 		MOVE	FN			;GET FILE NAME
  2987	004673	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  2988	004674	051 01 0 00 006605'		OUTCHR	[PERIOD]		;PRINT A PERIOD
  2989	004675	510 00 0 00 000013 		HLLZ	EXT			;GET EXTENSION
  2990	004676	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  2991	004677	322 11 0 00 000314 		JUMPE	PPN,COMM		;EXIT IF NO PPN SPECIFIED
  2992	004700	051 01 0 00 007434'		OUTCHR	[LB]			;PRINT OPENING BRACKET
  2993	004701	554 00 0 00 000011 		HLRZ	PPN			;GET PROJECT NUMBER
  2994	004702	260 17 0 00 003724 		GO	PNTOCT			;PRINT IT
  2995	004703	051 01 0 00 007435'		OUTCHR	[COMMA]			;PRINT A COMMA
  2996	004704	550 00 0 00 000011 		HRRZ	PPN			;GET PROGRAMMER NUMBER
  2997	004705	260 17 0 00 003724 		GO	PNTOCT			;PRINT IT
  2998	004706	051 01 0 00 007436'		OUTCHR	[RB]			;CLOSE THE BRACKET
  2999	004707	254 00 0 00 000314 		JRST	COMM
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 85
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0116

  3000					;*	ADDITIONAL ERROR MESSAGES
  3001
  3002	004710	260 17 0 00 000311 	RDNMER:	GO	COCLR			;CLEAR CONTROL O
  3003	004711	051 03 0 00 007437'		PRINT	<? ERROR READING INPUT FILE,  EOF WHEN NOT EXPECTED.>
  3004	004712	254 00 0 00 000314 		JRST	COMM
  3005
  3006	004713	260 17 0 00 000311 	NOTFND:	GO	COCLR			;CLEAR CONTROL O
  3007	004714	051 03 0 00 007452'		PRINT	<? CAN'T FIND FILE >
  3008	004715	200 00 0 00 000012 		MOVE	FN			;GET FILE NAME
  3009	004716	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  3010	004717	051 01 0 00 006605'		OUTCHR	[PERIOD]		;PRINT A PERIOD
  3011	004720	510 00 0 00 000013 		HLLZ	EXT			;GET EXTENSION
  3012	004721	260 17 0 00 003765 		GO	PNTSIX			;PRINT IT
  3013	004722	254 00 0 00 000314 		JRST	COMM
  3014
  3015	004723	260 17 0 00 000311 	PSHERR:	GO	COCLR			;CLEAR CONTROL O
  3016	004724	051 03 0 00 007456'		PRINT	<? PUSHDOWN LIST UNDERFLOW ERROR>
  3017	004725	254 00 0 00 000314 		JRST 	COMM
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 86
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0117

  3018					;*WRITF, WRITE FILE NAMES POINTED TO BY C(D) INTO FILE ON CHANNEL 3
  3019
  3020	004726	260 17 0 00 004741 	WRITF:	GO	WRTFNX			;WRITE FILE NAME
  3021	004727	201 00 0 00 000056 		MOVEI	PERIOD			;WRITE A PERIOD
  3022	004730	260 17 0 00 004144 		GO	WRCHAR
  3023	004731	340 04 0 00 000000 		AOJ	D,			;INCREMENT ADDRESS
  3024	004732	260 17 0 00 004741 		GO	WRTFNX			;WRITE EXTENSION
  3025	004733	201 00 0 00 000015 	WRITCR:	MOVEI	CR			;WRITE A CARRIAGE RETURN
  3026	004734	260 17 0 00 004144 		GO	WRCHAR
  3027	004735	201 00 0 00 000012 		MOVEI	LF			;WRITE A LINE FEED
  3028	004736	260 17 0 00 004144 		GO	WRCHAR
  3029	004737	253 04 0 00 004726 		AOBJN	D,WRITF			;WRITE NEXT LINE
  3030	004740	263 17 0 00 000000 		RTN
  3031
  3032	004741	200 01 0 04 000000 	WRTFNX:	MOVE	A,(D)			;GET WORD TO WRITE
  3033	004742	400 00 0 00 000000 	WRITFN:	SETZ	0			;CLEAR 0
  3034	004743	246 00 0 00 000006 		LSHC	6			;GET A CHARACTER
  3035	004744	271 00 0 00 000040 		ADDI	SPACE			;CONVERT TO ASCII
  3036	004745	260 17 0 00 004144 		GO	WRCHAR			;WRITE IT
  3037	004746	326 01 0 00 004742 		JUMPN	A,WRITFN		;WRITE NEXT CHARACTER
  3038	004747	263 17 0 00 000000 		RTN				;EXIT
  3039
  3040
  3041	004750	402 00 0 00 006523'	OUTNUM:	SETZM	DIGCNT			;CLEAR DIGIT PRINTED FLAG
  3042	004751	246 00 0 00 777772 		LSHC	-6			;SHIFT OUT 2 DIGITS
  3043	004752	260 17 0 00 004170 		GO	OUTDIG			;PRINT DIGIT OR SPACE
  3044	004753	400 00 0 00 000000 		SETZ				;CLEAR 0
  3045	004754	246 00 0 00 000003 		LSHC	3			;GET NEXT DIGIT
  3046	004755	260 17 0 00 004170 		GO	OUTDIG			;PRINT DIGIT OR SPACE
  3047	004756	400 00 0 00 000000 		SETZ				;CLEAR 0
  3048	004757	246 00 0 00 000003 		LSHC	3			;GET LAST DIGIT
  3049	004760	271 00 0 00 000060 		ADDI	"0"			;CONVERT TO ASCII
  3050	004761	260 17 0 00 004144 		GO	WRCHAR			;WRITE IT
  3051	004762	350 00 0 00 006523'		AOS	DIGCNT			;COUNT THE DIGIT PRINTED
  3052	004763	263 17 0 00 000000 		RTN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 87
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0118

  3053					;*WRDATE, WRITE CREATION DATE OF FILE INTO .DIR FILE
  3054
  3055	004764	231 00 0 00 000037 	WRDATE:	IDIVI	^D31			;EXTRACT THE DAY
  3056	004765	261 17 0 00 000000 		PUT	0			;SAVE THE REST
  3057	004766	271 01 0 00 000001 		ADDI	A,1			;INCREASE BY ONE
  3058	004767	200 00 0 00 000001 		MOVE	A			;MOVE NUMBER TO 0
  3059	004770	231 00 0 00 000012 		IDIVI	^D10			;DIVIDE BY 10
  3060	004771	402 00 0 00 006523'		SETZM	DIGCNT			;CLEAR DIGIT COUNTER
  3061	004772	260 17 0 00 004170 		GO	OUTDIG			;PRINT FIRST DIGIT OR SPACE
  3062	004773	200 00 0 00 000001 		MOVE	A			;GET SECOND DIGIT
  3063	004774	260 17 0 00 004170 		GO	OUTDIG			;PRINT SECOND DIGIT
  3064	004775	262 17 0 00 000000 		GET	0			;GET REST OF DATE
  3065	004776	231 00 0 00 000014 		IDIVI	^D12			;EXTRACT THE MONTH
  3066	004777	261 17 0 00 000000 		PUT	0			;SAVE THE YEAR
  3067	005000	201 00 0 00 000055 		MOVEI	"-"			;PRINT A DASH
  3068	005001	260 17 0 00 004144 		GO	WRCHAR
  3069	005002	200 00 0 01 005024 		MOVE	DATTAB(A)		;GET NAME OF MONTH
  3070	005003	201 01 0 00 000003 		MOVEI	A,3			;GET CHARACTER COUNT TO 3
  3071	005004	260 17 0 00 004201 		GO	OUTWRD			;PRINT THE MONTH
  3072	005005	201 00 0 00 000055 		MOVEI	"-"			;PRINT ANOTHER DASH
  3073	005006	260 17 0 00 004144 		GO	WRCHAR
  3074	005007	262 17 0 00 000000 		GET	0			;GET YEAR AGAIN
  3075	005010	271 00 0 00 000100 		ADDI	^D64			;ADD START YEAR OF 64
  3076	005011	301 00 0 00 000144 		CAIL	^D100			;CHECK FOR OVERFLOW
  3077	005012	275 00 0 00 000144 		SUBI	^D100			;REDUCE TO TWO DIGITS
  3078	005013	350 00 0 00 006523'		AOS	DIGCNT			;MOKE DIGIT COUNT POSITIVE
  3079	005014	231 00 0 00 000012 		IDIVI	^D10			;DIVIDE BY 10
  3080	005015	260 17 0 00 004170 		GO	OUTDIG			;PRINT FIRST DIGIT
  3081	005016	200 00 0 00 000001 		MOVE	A			;GET SECOND DIGIT
  3082	005017	260 17 0 00 004170 		GO	OUTDIG			;PRINT IT
  3083	005020	201 00 0 00 000040 		MOVEI	SPACE			;PRINT A SPACE
  3084	005021	260 17 0 00 004144 		GO	WRCHAR
  3085	005022	263 17 0 00 000000 		RTN				;EXIT
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 88
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0119

  3086					;*DATTBP, COMPARE TABLE FOR MONTHS OF THE YEAR
  3087
  3088	005023	777764	005024		DATTBP:	.-DATTBE,,.+1
  3089	005024	52 41 56 00 00 00 	DATTAB:	SIXBIT	'JAN'
  3090	005025	46 45 42 00 00 00 		SIXBIT	'FEB'
  3091	005026	55 41 62 00 00 00 		SIXBIT	'MAR'
  3092	005027	41 60 62 00 00 00 		SIXBIT	'APR'
  3093	005030	55 41 71 00 00 00 		SIXBIT	'MAY'
  3094	005031	52 65 56 00 00 00 		SIXBIT	'JUN'
  3095	005032	52 65 54 00 00 00 		SIXBIT	'JUL'
  3096	005033	41 65 47 00 00 00 		SIXBIT	'AUG'
  3097	005034	63 45 60 00 00 00 		SIXBIT	'SEP'
  3098	005035	57 43 64 00 00 00 		SIXBIT	'OCT'
  3099	005036	56 57 66 00 00 00 		SIXBIT	'NOV'
  3100	005037	44 45 43 00 00 00 		SIXBIT	'DEC'
  3101			005037		DATTBE==.-1
  3102
  3103					;*NAMTAB, COMPARE TABLE FOR REQUIRED FILES ON EACH MAGTAPE
  3104
  3105	005040	55 41 47 64 41 60 	NAMTAB:	SIXBIT	"MAGTAP"		;THESE FILES MUST BE THE
  3106	005041	62 44 51 00 00 00 		SIXBIT	"RDI"			;FIRST TO BE WRITTEN ON
  3107	005042	55 41 47 64 41 60 		SIXBIT	"MAGTAP"		;THE MAGTAP
  3108	005043	63 41 66 00 00 00 		SIXBIT	"SAV"
  3109	005044	55 41 47 55 57 56 		SIXBIT	"MAGMON"
  3110	005045	63 41 66 00 00 00 		SIXBIT	"SAV"
  3111	005046	55 41 47 64 41 60 		SIXBIT	"MAGTAP"
  3112	005047	55 64 41 00 00 00 		SIXBIT	"MTA"
  3113	005050	55 41 47 64 41 60 		SIXBIT	"MAGTAP"
  3114	005051	44 51 62 00 00 00 		SIXBIT	"DIR"
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 89
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0120

  3115					;HELP COMMAND
  3116
  3117	005052	051 03 0 00 005054 	HELP:	OUTSTR	HLPMSG			;PRINT THE HELP MESSAGE
  3118	005053	254 00 0 00 000364 		JRST	BADCMF			;GO FOR NEXT COMMAND
  3119
  3120	005054				HLPMSG:	ASCIZ	\
  3121	005054	015 012 011 011 011 				MAGTAP COMMAND SUMMARY
  3122	005055	115 101 107 124 101 
  3123	005056	120 040 103 117 115 
  3124	005057	115 101 116 104 040 
  3125	005060	123 125 115 115 101 
  3126	005061	122 131 015 012 015 
  3127	005062	012 110 105 114 120 	HELP				TYPE THIS MESSAGE
  3128	005063	011 011 011 011 124 
  3129	005064	131 120 105 040 124 
  3130	005065	110 111 123 040 115 
  3131	005066	105 123 123 101 107 
  3132
  3133	005067	105 015 012 015 012 	GET				GET ALL FILES ON THE MAGTAPE AND PLACE
  3134	005070	107 105 124 011 011 
  3135	005071	011 011 107 105 124 
  3136	005072	040 101 114 114 040 
  3137	005073	106 111 114 105 123 
  3138	005074	040 117 116 040 124 
  3139	005075	110 105 040 115 101 
  3140	005076	107 124 101 120 105 
  3141	005077	040 101 116 104 040 
  3142	005100	120 114 101 103 105 
  3143	005101	015 012 011 011 011 					ON DISK
  3144	005102	011 117 116 040 104 
  3145	005103	111 123 113 015 012 	GET FILE1.EXT,FILE2.EXT		GET SPECIFIED FILES FROM MAGTAPE AND
  3146	005104	107 105 124 040 106 
  3147	005105	111 114 105 061 056 
  3148	005106	105 130 124 054 106 
  3149	005107	111 114 105 062 056 
  3150	005110	105 130 124 011 011 
  3151	005111	107 105 124 040 123 
  3152	005112	120 105 103 111 106 
  3153	005113	111 105 104 040 106 
  3154	005114	111 114 105 123 040 
  3155	005115	106 122 117 115 040 
  3156	005116	115 101 107 124 101 
  3157	005117	120 105 040 101 116 
  3158	005120	104 015 012 011 011 					PLACE ON DISK
  3159	005121	011 011 120 114 101 
  3160	005122	103 105 040 117 116 
  3161	005123	040 104 111 123 113 
  3162
  3163	005124	015 012 015 012 104 	DIRECTORY DEV			WRITE DIRECTORY OF MAGTAPE ON DEV AS
  3164	005125	111 122 105 103 124 
  3165	005126	117 122 131 040 104 
  3166	005127	105 126 011 011 011 
  3167	005130	127 122 111 124 105 
  3168	005131	040 104 111 122 105 
  3169	005132	103 124 117 122 131 
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 89-1
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0121

  3170	005133	040 117 106 040 115 
  3171	005134	101 107 124 101 120 
  3172	005135	105 040 117 116 040 
  3173	005136	104 105 126 040 101 
  3174	005137	123 015 012 011 011 					MAGTAP.DIR (DEFAULT DEV IS TTY)
  3175	005140	011 011 115 101 107 
  3176	005141	124 101 120 056 104 
  3177	005142	111 122 040 050 104 
  3178	005143	105 106 101 125 114 
  3179	005144	124 040 104 105 126 
  3180	005145	040 111 123 040 124 
  3181	005146	124 131 051 015 012 
  3182	005147	015 012 106 104 111 	FDIRECTORY DEV			WRITE A FAST DIRECTORY ON DEV AS
  3183	005150	122 105 103 124 117 
  3184	005151	122 131 040 104 105 
  3185	005152	126 011 011 011 127 
  3186	005153	122 111 124 105 040 
  3187	005154	101 040 106 101 123 
  3188	005155	124 040 104 111 122 
  3189	005156	105 103 124 117 122 
  3190	005157	131 040 117 116 040 
  3191	005160	104 105 126 040 101 
  3192	005161	123 015 012 011 011 					MAGTAP.DIR (FILE NAMES ONLY)
  3193	005162	011 011 115 101 107 
  3194	005163	124 101 120 056 104 
  3195	005164	111 122 040 050 106 
  3196	005165	111 114 105 040 116 
  3197	005166	101 115 105 123 040 
  3198	005167	117 116 114 131 051 
  3199
  3200	005170	015 012 015 012 103 	CHECK				CHECK THAT ENTIRE MAGTAPE CAN BE READ
  3201	005171	110 105 103 113 011 
  3202	005172	011 011 011 103 110 
  3203	005173	105 103 113 040 124 
  3204	005174	110 101 124 040 105 
  3205	005175	116 124 111 122 105 
  3206	005176	040 115 101 107 124 
  3207	005177	101 120 105 040 103 
  3208	005200	101 116 040 102 105 
  3209	005201	040 122 105 101 104 
  3210	005202	015 012 011 011 011 					WITHOUT ERRORS
  3211	005203	011 127 111 124 110 
  3212	005204	117 125 124 040 105 
  3213	005205	122 122 117 122 123 
  3214	005206	015 012 103 110 105 	CHECK FILE1.EXT,FILE2.EXT	CHECK THAT THE SPECIFIED FILES CAN BE
  3215	005207	103 113 040 106 111 
  3216	005210	114 105 061 056 105 
  3217	005211	130 124 054 106 111 
  3218	005212	114 105 062 056 105 
  3219	005213	130 124 011 103 110 
  3220	005214	105 103 113 040 124 
  3221	005215	110 101 124 040 124 
  3222	005216	110 105 040 123 120 
  3223	005217	105 103 111 106 111 
  3224	005220	105 104 040 106 111 
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 89-2
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0122

  3225	005221	114 105 123 040 103 
  3226	005222	101 116 040 102 105 
  3227	005223	015 012 011 011 011 					READ WITHOUT ERRORS
  3228	005224	011 122 105 101 104 
  3229	005225	040 127 111 124 110 
  3230	005226	117 125 124 040 105 
  3231	005227	122 122 117 122 123 
  3232
  3233	005230	015 012 015 012 105 	EXIT				EXIT TO MONITOR
  3234	005231	130 111 124 011 011 
  3235	005232	011 011 105 130 111 
  3236	005233	124 040 124 117 040 
  3237	005234	115 117 116 111 124 
  3238	005235	117 122 015 012 015 
  3239	005236	012 125 116 114 117 	UNLOAD				UNLOAD MAGTAPE AND EXIT TO MONITOR
  3240	005237	101 104 011 011 011 
  3241	005240	011 125 116 114 117 
  3242	005241	101 104 040 115 101 
  3243	005242	107 124 101 120 105 
  3244	005243	040 101 116 104 040 
  3245	005244	105 130 111 124 040 
  3246	005245	124 117 040 115 117 
  3247	005246	116 111 124 117 122 
  3248
  3249	005247	015 012 015 012 122 	REWIND				REWIND MAGTAPE AND CLEAR IN-CORE
  3250	005250	105 127 111 116 104 
  3251	005251	011 011 011 011 122 
  3252	005252	105 127 111 116 104 
  3253	005253	040 115 101 107 124 
  3254	005254	101 120 105 040 101 
  3255	005255	116 104 040 103 114 
  3256	005256	105 101 122 040 111 
  3257	005257	116 055 103 117 122 
  3258	005260	105 015 012 011 011 					DIRECTORY
  3259	005261	011 011 104 111 122 
  3260	005262	105 103 124 117 122 
  3261
  3262	005263	131 015 012 015 012 	TAPE DEV			SELECT NEW MAGTAPE DEVICE DEV
  3263	005264	124 101 120 105 040 
  3264	005265	104 105 126 011 011 
  3265	005266	011 123 105 114 105 
  3266	005267	103 124 040 116 105 
  3267	005270	127 040 115 101 107 
  3268	005271	124 101 120 105 040 
  3269	005272	104 105 126 111 103 
  3270	005273	105 040 104 105 126 
  3271
  3272	005274	015 012 015 012 115 	MAKE				MAKE A MAGTAPE USING INPUT FILE
  3273	005275	101 113 105 011 011 
  3274	005276	011 011 115 101 113 
  3275	005277	105 040 101 040 115 
  3276	005300	101 107 124 101 120 
  3277	005301	105 040 125 123 111 
  3278	005302	116 107 040 111 116 
  3279	005303	120 125 124 040 106 
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 89-3
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0123

  3280	005304	111 114 105 015 012 					DSK:MAGTAP.INP
  3281	005305	011 011 011 011 104 
  3282	005306	123 113 072 115 101 
  3283	005307	107 124 101 120 056 
  3284	005310	111 116 120 015 012 	MAKE @DEV:FILE.EXT[P,PN]	MAKE MAGTAPE USING INPUT FILE SPECIFIED
  3285	005311	115 101 113 105 040 
  3286	005312	100 104 105 126 072 
  3287	005313	106 111 114 105 056 
  3288	005314	105 130 124 133 120 
  3289	005315	054 120 116 135 011 
  3290	005316	115 101 113 105 040 
  3291	005317	115 101 107 124 101 
  3292	005320	120 105 040 125 123 
  3293	005321	111 116 107 040 111 
  3294	005322	116 120 125 124 040 
  3295	005323	106 111 114 105 040 
  3296	005324	123 120 105 103 111 
  3297	005325	106 111 105 104 015 
  3298	005326	012 115 101 113 105 	MAKE FILE1.EXT,FILE2.EXT	MAKE MAGTAPE CONTANING SPECIFIED FILES
  3299	005327	040 106 111 114 105 
  3300	005330	061 056 105 130 124 
  3301	005331	054 106 111 114 105 
  3302	005332	062 056 105 130 124 
  3303	005333	011 115 101 113 105 
  3304	005334	040 115 101 107 124 
  3305	005335	101 120 105 040 103 
  3306	005336	117 116 124 101 116 
  3307	005337	111 116 107 040 123 
  3308	005340	120 105 103 111 106 
  3309	005341	111 105 104 040 106 
  3310	005342	111 114 105 123 015 
  3311
  3312	005343	012 015 012 126 105 	VERIFY				VERIFY THAT EVERY FILE ON MAGTAPE IS
  3313	005344	122 111 106 131 011 
  3314	005345	011 011 011 126 105 
  3315	005346	122 111 106 131 040 
  3316	005347	124 110 101 124 040 
  3317	005350	105 126 105 122 131 
  3318	005351	040 106 111 114 105 
  3319	005352	040 117 116 040 115 
  3320	005353	101 107 124 101 120 
  3321	005354	105 040 111 123 015 
  3322	005355	012 011 011 011 011 					IDENTICAL TO SAME FILE ON DISK
  3323	005356	111 104 105 116 124 
  3324	005357	111 103 101 114 040 
  3325	005360	124 117 040 123 101 
  3326	005361	115 105 040 106 111 
  3327	005362	114 105 040 117 116 
  3328	005363	040 104 111 123 113 
  3329	005364	015 012 126 105 122 	VERIFY FILE1.EXT,FILE2.EXT	VERIFY THAT SPECIFIED FILES ARE
  3330	005365	111 106 131 040 106 
  3331	005366	111 114 105 061 056 
  3332	005367	105 130 124 054 106 
  3333	005370	111 114 105 062 056 
  3334	005371	105 130 124 011 126 
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 89-4
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0124

  3335	005372	105 122 111 106 131 
  3336	005373	040 124 110 101 124 
  3337	005374	040 123 120 105 103 
  3338	005375	111 106 111 105 104 
  3339	005376	040 106 111 114 105 
  3340	005377	123 040 101 122 105 
  3341	005400	015 012 011 011 011 					IDENTICAL ON MAGTAPE AND DISK
  3342	005401	011 111 104 105 116 
  3343	005402	124 111 103 101 114 
  3344	005403	040 117 116 040 115 
  3345	005404	101 107 124 101 120 
  3346	005405	105 040 101 116 104 
  3347	005406	040 104 111 123 113 
  3348
  3349	005407	015 012 015 012 123 	SEARCH DEV:[P,PN1],DEV2:[P,PN2]	SET UP SEARCH LIST OF DISK AREAS TO BE
  3350	005410	105 101 122 103 110 
  3351	005411	040 104 105 126 072 
  3352	005412	133 120 054 120 116 
  3353	005413	061 135 054 104 105 
  3354	005414	126 062 072 133 120 
  3355	005415	054 120 116 062 135 
  3356	005416	011 123 105 124 040 
  3357	005417	125 120 040 123 105 
  3358	005420	101 122 103 110 040 
  3359	005421	114 111 123 124 040 
  3360	005422	117 106 040 104 111 
  3361	005423	123 113 040 101 122 
  3362	005424	105 101 123 040 124 
  3363	005425	117 040 102 105 015 
  3364	005426	012 011 011 011 011 					SEARCHED BY MAKE, VERIFY AND NUMBER
  3365	005427	123 105 101 122 103 
  3366	005430	110 105 104 040 102 
  3367	005431	131 040 115 101 113 
  3368	005432	105 054 040 126 105 
  3369	005433	122 111 106 131 040 
  3370	005434	101 116 104 040 116 
  3371	005435	125 115 102 105 122 
  3372	005436	015 012 011 011 011 					COMMANDS
  3373	005437	011 103 117 115 115 
  3374	005440	101 116 104 123 015 
  3375
  3376	005441	012 015 012 117 120 	OPTION NAME			SET UP SEARCH LIST FROM DSK:SWITCH.INI
  3377	005442	124 111 117 116 040 
  3378	005443	116 101 115 105 011 
  3379	005444	011 011 123 105 124 
  3380	005445	040 125 120 040 123 
  3381	005446	105 101 122 103 110 
  3382	005447	040 114 111 123 124 
  3383	005450	040 106 122 117 115 
  3384	005451	040 104 123 113 072 
  3385	005452	123 127 111 124 103 
  3386	005453	110 056 111 116 111 
  3387	005454	015 012 011 011 011 					LINE 'MAGTAP:NAME'
  3388	005455	011 114 111 116 105 
  3389	005456	040 047 115 101 107 
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 89-5
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0125

  3390	005457	124 101 120 072 116 
  3391	005460	101 115 105 047 015 
  3392
  3393	005461	012 015 012 116 125 	NUMBER FILE.EXT 0.1		SET VERSION NUMBER OF SPECIFIED FILE
  3394	005462	115 102 105 122 040 
  3395	005463	106 111 114 105 056 
  3396	005464	105 130 124 040 060 
  3397	005465	056 061 011 011 123 
  3398	005466	105 124 040 126 105 
  3399	005467	122 123 111 117 116 
  3400	005470	040 116 125 115 102 
  3401	005471	105 122 040 117 106 
  3402	005472	040 123 120 105 103 
  3403	005473	111 106 111 105 104 
  3404	005474	040 106 111 114 105 
  3405	005475	015 012 011 011 011 					IN DISK DIRECTORY TO 0.1
  3406	005476	011 111 116 040 104 
  3407	005477	111 123 113 040 104 
  3408	005500	111 122 105 103 124 
  3409	005501	117 122 131 040 124 
  3410	005502	117 040 060 056 061 
  3411
  3412	005503	015 012 015 012 057 	/LIST				LIST FILES AS PROCESSED
  3413	005504	114 111 123 124 011 
  3414	005505	011 011 011 114 111 
  3415	005506	123 124 040 106 111 
  3416	005507	114 105 123 040 101 
  3417	005510	123 040 120 122 117 
  3418	005511	103 105 123 123 105 
  3419	005512	104 015 012 011 011 					FOR MAKE, GET, CHECK, VERIFY COMMAND
  3420	005513	011 011 106 117 122 
  3421	005514	040 115 101 113 105 
  3422	005515	054 040 107 105 124 
  3423	005516	054 040 103 110 105 
  3424	005517	103 113 054 040 126 
  3425	005520	105 122 111 106 131 
  3426	005521	040 103 117 115 115 
  3427	005522	101 116 104 015 012 
  3428	005523	015 012 057 107 122 	/GROUP:ARG			FOR GET, CHECK, VERIFY COMMAND
  3429	005524	117 125 120 072 101 
  3430	005525	122 107 011 011 011 
  3431	005526	106 117 122 040 107 
  3432	005527	105 124 054 040 103 
  3433	005530	110 105 103 113 054 
  3434	005531	040 126 105 122 111 
  3435	005532	106 131 040 103 117 
  3436	005533	115 115 101 116 104 
  3437	005534	015 012 040 040 107 	  GROUP ARGUMENTS ARE:		ALL, DIASUP, KACPU, KICPU, KLCPU
  3438	005535	122 117 125 120 040 
  3439	005536	101 122 107 125 115 
  3440	005537	105 116 124 123 040 
  3441	005540	101 122 105 072 011 
  3442	005541	011 101 114 114 054 
  3443	005542	040 104 111 101 123 
  3444	005543	125 120 054 040 113 
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 89-6
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0126

  3445	005544	101 103 120 125 054 
  3446	005545	040 113 111 103 120 
  3447	005546	125 054 040 113 114 
  3448	005547	103 120 125 015 012 					KLDIAG, KLTIC, KLISO
  3449	005550	011 011 011 011 113 
  3450	005551	114 104 111 101 107 
  3451	005552	054 040 113 114 124 
  3452	005553	111 103 054 040 113 
  3453	005554	114 111 123 117 015 
  3454	005555	012 011 011 011 011 					KLADIAG, KLATIC, KLAISO
  3455	005556	113 114 101 104 111 
  3456	005557	101 107 054 040 113 
  3457	005560	114 101 124 111 103 
  3458	005561	054 040 113 114 101 
  3459	005562	111 123 117 015 012 					KLBDIAG, KLBTIC, KLBISO
  3460	005563	011 011 011 011 113 
  3461	005564	114 102 104 111 101 
  3462	005565	107 054 040 113 114 
  3463	005566	102 124 111 103 054 
  3464	005567	040 113 114 102 111 
  3465	005570	123 117 015 012 011 					MEMORY, TAPE, DISK, UNIREC, COMM
  3466	005571	011 011 011 115 105 
  3467	005572	115 117 122 131 054 
  3468	005573	040 124 101 120 105 
  3469	005574	054 040 104 111 123 
  3470	005575	113 054 040 125 116 
  3471	005576	111 122 105 103 054 
  3472	005577	040 103 117 115 115 
  3473	005600	015 012 011 011 011 					SYSEXR, FEDIAG, FESUPP, FLDSRV
  3474	005601	011 123 131 123 105 
  3475	005602	130 122 054 040 106 
  3476	005603	105 104 111 101 107 
  3477	005604	054 040 106 105 123 
  3478	005605	125 120 120 054 040 
  3479	005606	106 114 104 123 122 
  3480	005607	126 015 012 011 011 					SPECIAL, TOPS10, TOPS20
  3481	005610	011 011 123 120 105 
  3482	005611	103 111 101 114 054 
  3483	005612	040 124 117 120 123 
  3484	005613	061 060 054 040 124 
  3485	005614	117 120 123 062 060 
  3486	005615	015 012 011 011 011 					UNDEF1-6
  3487	005616	011 125 116 104 105 
  3488	005617	106 061 055 066 015 
  3489
  3490	005620	012 015 012 057 124 	/TYPE:ARG			FOR GET, CHECK, VERIFY COMMAND
  3491	005621	131 120 105 072 101 
  3492	005622	122 107 011 011 011 
  3493	005623	106 117 122 040 107 
  3494	005624	105 124 054 040 103 
  3495	005625	110 105 103 113 054 
  3496	005626	040 126 105 122 111 
  3497	005627	106 131 040 103 117 
  3498	005630	115 115 101 116 104 
  3499	005631	015 012 040 040 124 	  TYPE ARGUMENTS ARE:		ALL, EXEC, USER, SPECIAL, MONITOR, UNDEF
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 89-7
MAGTAP	MAC	22-May-78 09:05		SUBROUTINES                                                                        SEQ 0127

  3500	005632	131 120 105 040 101 
  3501	005633	122 107 125 115 105 
  3502	005634	116 124 123 040 101 
  3503	005635	122 105 072 011 011 
  3504	005636	101 114 114 054 040 
  3505	005637	105 130 105 103 054 
  3506	005640	040 125 123 105 122 
  3507	005641	054 040 123 120 105 
  3508	005642	103 111 101 114 054 
  3509	005643	040 115 117 116 111 
  3510	005644	124 117 122 054 040 
  3511	005645	125 116 104 105 106 
  3512
  3513	005646	015 012 015 012 011 					    TYPE .INP FILE CODES:
  3514	005647	011 011 011 040 040 
  3515	005650	040 040 124 131 120 
  3516	005651	105 040 056 111 116 
  3517	005652	120 040 106 111 114 
  3518	005653	105 040 103 117 104 
  3519	005654	105 123 072 015 012 						20 = UNDEF
  3520	005655	011 011 011 011 011 
  3521	005656	062 060 040 075 040 
  3522	005657	125 116 104 105 106 
  3523	005660	015 012 011 011 011 						10 = MONITOR
  3524	005661	011 011 061 060 040 
  3525	005662	075 040 115 117 116 
  3526	005663	111 124 117 122 015 
  3527	005664	012 011 011 011 011 						04 = SPECIAL
  3528	005665	011 060 064 040 075 
  3529	005666	040 123 120 105 103 
  3530	005667	111 101 114 015 012 						02 = USER
  3531	005670	011 011 011 011 011 
  3532	005671	060 062 040 075 040 
  3533	005672	125 123 105 122 015 
  3534	005673	012 011 011 011 011 						01 = EXEC
  3535	005674	011 060 061 040 075 
  3536	005675	040 105 130 105 103 
  3537	005676	015 012 011 011 011 						00 = ALL
  3538	005677	011 011 060 060 040 
  3539	005700	075 040 101 114 114 
  3540	005701	015 012 000 000 000 	\
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 90
MAGTAP	MAC	22-May-78 09:05		MAGTAPE READ-IN BOOTSTRAP FILE                                                     SEQ 0128

  3541					SUBTTL	MAGTAPE READ-IN BOOTSTRAP FILE
  3542
  3543					;*MAGTAPE CONTROL BITS
  3544
  3545			000344		TMS=344					;MAG TAPE STATUS (TMS)
  3546			000340		TMC=340					;MAG TAPE CONTROL (TMC)
  3547			000350		TMC2=350				;MAGTAPE CONTROL #2
  3548			000354		TMS2=354				;MAGTAPE STATUS #2
  3549			040000		PARITY=1B21				;ODD PARITY
  3550			000200		BPI800=1B28				;800 BPI DENSITY
  3551			020000		DUMP=1B22				;CORE DUMP MODE
  3552			000000		NOOP=0					;NO-OP
  3553			010000		NOOP1=10B26				;UNIT READY CHECK
  3554			002000		READX=2B26				;READ
  3555			006000		SPACE=6B26				;SPACE FORWARD RECORD
  3556			016000		SPACE1=16B26				;SPACE FORWARD FILE
  3557			007000		SPACE2=7B26				;SPACE REVERSE RECORD
  3558			017000		SPACE3=17B26				;SPACE REVERSE FILE
  3559
  3560					;*MAGTAPE STATUS BITS
  3561
  3562		000400	000000		DF22=1B9				;DF10 IN 22 BIT MODE
  3563		000170	000000		DF10=17B14				;DF10 CHECK BITS
  3564			400000		HUNG=1B18				;TRANSPORT HUNG
  3565			200000		WIND=1B19				;TRANSPORT REWINDING
  3566			100000		BOT=1B20				;BEGINNING OF TAPE
  3567			040000		ILLOP=1B21				;ILLEGAL OPERATION
  3568			020000		PERR=1B22				;PARITY ERROR
  3569			010000		EOF=1B23				;END OF FILE
  3570			004000		EOT=1B24				;END OF TAPE (REAL)
  3571			002000		RCERR=1B25				;READ/COMP ERROR
  3572			001000		RLINC=1B26				;RECORD LENGTH INCORRECT
  3573			000400		DATLAT=1B27				;DATA LATE
  3574			000200		BADTAP=1B28				;BAD TAPE
  3575			000100		JOBDON=1B29				;JOB DONE
  3576			000040		IDLE=1B30				;XPORT IDLE
  3577			000010		WRTLCK=1B32				;WRITE LOCK
  3578			000004		CHAN7=1B33				;SEVEN CHANNEL XPORT
  3579			000001		DATA=1B35				;DATA READY
  3580
  3581			466600		BADBIT=HUNG!ILLOP!EOT!RCERR!DATLAT!BADTAP!PERR	;ERROR BITS
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 91
MAGTAP	MAC	22-May-78 09:05		MAGTAPE READ-IN BOOTSTRAP FILE                                                     SEQ 0129

  3582					;*RDIO, READ-IN PROGRAM FOR MAGTAP.RDI
  3583
  3584	005702	777340	000777		RDI0:	IOWD	<RDIEND-RDI0-3>,STTM	;POINTER TO DATA IN RECORD
  3585
  3586	001000					PHASE	RDIADR
  3587
  3588	001000	7 344 24 0 00 000005 	STTM:	CONI	TMS,STAT		;READ STATUS OF TMS
  3589	001001	602 05 0 00 000100 		TRNE	STAT,JOBDON		;CHECK IF JOB DONE SET
  3590	001002	254 00 0 00 001014 		JRST	GOTM			;YES, GO USE IT
  3591	001003	205 04 0 00 001000 		MOVSI	D,(1B8)			;GET BIT 8 TO CHANGE DEVICE CODE
  3592	001004	436 04 0 00 001000 		ORM	D,STTM			;CHANGE CODE OF CONI
  3593	001005	256 00 0 00 001000 		XCT	STTM			;READ STATUS OF TMS2
  3594	001006	606 05 0 00 000100 		TRNN	STAT,JOBDON		;CHECK IF JOB DONE SET
  3595	001007	254 04 0 00 001007 		HALT	.			;NO
  3596	001010	436 04 0 00 001026 		ORM	D,TMDTO			;CHANGE ALL I/O INSTRUCTIONS
  3597	001011	436 04 0 00 001036 		ORM	D,RDTM			;TO THE TM10
  3598	001012	436 04 0 00 001047 		ORM	D,TMBLK			;TO SECOND DEVICE CODE
  3599	001013	436 04 0 00 001032 		ORM	D,TMSP
  3600
  3601	001014	265 17 0 00 001414 	GOTM:	JSP	P,CLRCOR		;CLEAR CORE
  3602	001015	201 00 0 00 001057 		MOVEI	TMCHN			;SET UP DF10 ICCW
  3603	001016	202 00 0 00 000020 		MOVEM	LOWCMD			;IN MEMORY
  3604	001017	607 05 0 00 000170 		TLNN	STAT,(DF10)		;CHECK IF TM10B
  3605	001020	607 05 0 00 000400 		TLNN	STAT,(DF22)		;WITH 22-BIT DF10
  3606	001021	254 00 0 00 001025 		JRST	LDTM			;NO
  3607	001022	554 00 0 00 001057 		HLRZ	TMCHN			;GET WORD COUNT
  3608	001023	242 00 0 00 000004 		LSH	4			;POSITION FOR 22-BIT ADDRESS
  3609	001024	506 00 0 00 001057 		HRLM	TMCHN			;PUT IT BACK IN CHAN LIST
  3610	001025	201 00 0 00 000020 	LDTM:	MOVEI	LOWCMD			;GET ICCW ADDRESS
  3611	001026	7 344 14 0 00 000000 	TMDTO:	DATAO	TMS,			;LOAD INTO TM10
  3612	001027	256 00 0 00 001000 		XCT	STTM			;READ STATUS OF XPORT
  3613	001030	606 05 0 00 000040 		TRNN	STAT,IDLE		;WAIT FOR XPORT TO BECOME IDLE
  3614	001031	254 00 0 00 001027 		JRST	.-2			;KEEP WAITING
  3615	001032	7 340 20 0 00 076200 	TMSP:	CONO	TMC,DUMP!PARITY!SPACE1!BPI800	;SPACE FORWARD ONE
  3616	001033	265 17 0 00 001061 		JSP	P,WAITTM		;  FILE MARK
  3617	001034	256 00 0 00 001032 		XCT	TMSP			;SPACE FORWARD ANOTHER FILE MARK
  3618	001035	265 17 0 00 001061 		JSP	P,WAITTM		;TO POSITION AT MAGMON.SAV
  3619	001036	7 340 20 0 00 062200 	RDTM:	CONO	TMC,DUMP!PARITY!READX!BPI800	;START READ
  3620	001037	607 05 0 00 000170 		TLNN	STAT,(DF10)		;CHECK IF TM10B
  3621	001040	254 00 0 00 001052 		JRST	WTTM			;YES, WAIT FOR DONE
  3622	001041	200 00 0 00 001057 		MOVE	TMCHN			;GET BLKI POINTER
  3623	001042	256 00 0 00 001000 	TMRDS:	XCT	STTM			;GET STATUS
  3624	001043	602 05 0 00 000100 		TRNE	STAT,JOBDON		;LOOK FOR JOB DONE
  3625	001044	254 00 0 00 001053 		JRST	TMDON			;YES
  3626	001045	606 05 0 00 000001 		TRNN	STAT,DATA		;LOOK FOR DATA REQUEST
  3627	001046	254 00 0 00 001042 		JRST	TMRDS			;WAIT AGAIN
  3628	001047	7 340 00 0 00 000000 	TMBLK:	BLKI	TMC,0			;READ A DATA WORD
  3629	001050	254 00 0 00 001052 		JRST	WTTM			;BLKI SATISFIED
  3630	001051	254 00 0 00 001042 		JRST	TMRDS			;WAIT AGAIN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 92
MAGTAP	MAC	22-May-78 09:05		MAGTAPE READ-IN BOOTSTRAP FILE                                                     SEQ 0130

  3631					;*	WAIT FOR TM10 OPERATION TO COMPLETE
  3632
  3633	001052	265 17 0 00 001061 	WTTM:	JSP	P,WAITTM		;WAIT FOR XPORT TO STOP
  3634	001053	602 05 0 00 476600 	TMDON:	TRNE	STAT,BADBIT!EOF		;CHECK FOR ERRORS
  3635	001054	254 04 0 00 001054 		HALT	.			;READ ERROR
  3636	001055	265 17 0 00 001423 		JSP	P,LOADPG		;LOAD DATA FROM THIS RECORD
  3637	001056	254 00 0 00 001036 		JRST	RDTM			;READ NEXT RECORD
  3638
  3639	001057	777000	001436		TMCHN:	IOWD	RCDSIZ,RDIBUF		;DF10 TRANSFER WORD
  3640	001060	000000	000000			0				;END OF LIST
  3641
  3642	001061	256 00 0 00 001000 	WAITTM:	XCT	STTM			;GET STATUS
  3643	001062	606 05 0 00 000100 		TRNN	STAT,JOBDON		;SKIP IF XPORT IDLE
  3644	001063	254 00 0 00 001061 		JRST	WAITTM			;NO, KEEP WAITING
  3645	001064	254 00 1 00 000017 		JRST	@P			;RETURN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 93
MAGTAP	MAC	22-May-78 09:05		MAGTAPE READ-IN BOOTSTRAP FILE                                                     SEQ 0131

  3646					;*DX10 CONTROL BITS
  3647
  3648			000220		PDC=220					;DX10 DEVICE CODE
  3649			000224		PDC2=224				;DX10 #2
  3650			000034		PDC3=34					;DX10 #3
  3651			000001		RUNIND=1				;RUN INDICATOR OF 8A PROCESSOR
  3652			002000		INHLD=1B25				;INHIBIT LOAD OF ICPC (CONO)
  3653			002000		CSRFLG=1B25				;CHANNEL STATUS REGISTER ERROR (CONI)
  3654			001000		MPERR=1B26				;8A TIME OUT ERROR
  3655			000400		MEMPAR=1B27				;MEMORY PARITY ERROR
  3656			000200		NXM=1B28				;NON-EXISTANT MEMORY ERROR
  3657			000100		STAVL=1B29				;STATUS AVAILABLE FLAG
  3658			000020		CLEAR=1B31				;CLEAR DEVICES
  3659			000010		CONT=1B32				;CONTINUE DX10
  3660			001700		INTFLG=MPERR+MEMPAR+NXM+STAVL
  3661
  3662
  3663					;*DX10 COMMANDS
  3664
  3665		200000	470000		BSB=	1B1!47B23			;BACKSPACE BLOCK
  3666		200000	570000		BSF=1B1!57B23				;BACKSPACE SPACE FILE
  3667		200000	770000		FSF=1B1!77B23				;FORWARD SPACE FILE
  3668		300000	020000		RDF=1B1!1B2!2B23			;READ FORWARD
  3669		140000	000000		CHJMPG=1B2!1B3				;CHANNEL JUMP AND GO
  3670		020000	000000		STORE=1B4				;STORE STATUS
  3671		200000	070000		REWD=1B1!7B23				;REWIND COMMAND
  3672		060000	000000		CHJMPS=1B3!1B4				;STORE AND JUMP COMMAND
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 94
MAGTAP	MAC	22-May-78 09:05		MAGTAPE READ-IN BOOTSTRAP FILE                                                     SEQ 0132

  3673					;*DX10 STATUS BITS
  3674
  3675		040000	000000		BUSY=1B3				;CONTROL UNIT OR DEVICE BUSY
  3676		004000	000000		UNITCK=1B6				;UNIT CHECK
  3677		002000	000000		UNITEX=1B7				;UNIT EXCEPTION
  3678		000400	000000		TYPE0=2B10				;STATUS TYPE CODE 2
  3679		000100	000000		SELERR=1B11				;DEVICE SELECTION ERROR
  3680		000040	000000		SEQERR=1B12				;SEQUENCE ERROR
  3681		000020	000000		DEVPAR=1B13				;DEVICE PARITY ERROR
  3682		000010	000000		LENERR=1B14				;LENGTH ERROR
  3683		000002	000000		ILLCMD=1B16				;ILLEGAL COMMAND
  3684		000001	000000		DSRFLG=1B17				;DEVICE STATUS REGISTER ERROR
  3685			400000		SNSERR=1B18				;SENSE BYTE RETRIEVAL ERROR
  3686			200000		OPI=1B19				;OPERATION INCOMPLETE
  3687
  3688			000012		RETRY=^D10				;RETRY COUNT
  3689			000020		LOWCMD=20				;LOW COMMAND AREA
  3690
  3691			000002		DXCLR=2					;RESET DX10 BIT
  3692			000001		RSEL=1					;SELECT RSEL REGISTER
  3693			000005		MPADR=5					;8A ADDRESS REGISTER CODE
  3694			000004		MPCTL=4					;8A CONTROL REGISTER CODE
  3695			000012		DAC=12					;DATA ADDRESS COUNTER CODE
  3696			007713		UNITNM=	7713				;ADDRESS OF UNIT FROM 8-MEMORY
  3697			020000		ENEXM=1B22				;ENABLE EXAMINE
  3698			010000		ENDEP=1B23				;ENABLE DEPOSIT
  3699			200000		MPHALT=1B19				;8A HALT SWITCH
  3700			100000		MPCONT=1B20				;8A CONTINUE SWITCH
  3701			000200		MCSTRT=200				;MICRO-CODE START ADDRESS
  3702			000016		MCCODE=16				;MICRO-CODE ADDRESS CONTAINING '70'
  3703			002720		DXCODE='70'				;CODE IN MCCODE
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 95
MAGTAP	MAC	22-May-78 09:05		MAGTAPE READ-IN BOOTSTRAP FILE                                                     SEQ 0133

  3704					;*SRTDX, DX10 READ-IN PROGRAM
  3705
  3706			000012			DXFIX==RDIADR+77-.
  3707						IF1,	<
  3708						IFL	<DXFIX>, <
  3709					PRINTX	DX10 READ-IN START ADDRESS CANNOT BE PLACED IN 100 >>
  3710	001065					IFG	<DXFIX>, < BLOCK DXFIX >
  3711
  3712	001077	515 00 0 00 000100 	SRTDX:	HRLZI	100			;SET UP BLT POINTER
  3713	001100	541 00 0 00 001077 		HRRI	SRTDX			;  TO TRANSFER PROGRAM TO
  3714	001101	251 00 0 00 001437 		BLT	RDIBUF			;  CORRECT PLACE IN MEMORY
  3715	001102	254 00 0 00 001103 		JRST	STDX			;GO TO PROGRAM THERE
  3716
  3717	001103	7 220 24 0 00 000005 	STDX:	CONI	PDC,STAT		;READ DX10 STATUS
  3718	001104	603 05 0 00 000001 		TLNE	STAT,RUNIND		;CHECK IF DX10 IS RUNNING
  3719	001105	254 00 0 00 001121 		JRST	SPDX			;YES
  3720	001106	201 04 0 00 000045 		MOVEI	D,PDC2_-2		;GET PDC2 CODE
  3721	001107	7 224 24 0 00 000005 		CONI	PDC2,STAT		;READ STATUS
  3722	001110	603 05 0 00 000001 		TLNE	STAT,RUNIND		;CHECK IF RUNNING
  3723	001111	254 00 0 00 001116 		JRST	FNDDX			;YES
  3724	001112	201 04 0 00 000007 		MOVEI	D,PDC3_-2		;GET PDC3 CODE
  3725	001113	7 034 24 0 00 000005 		CONI	PDC3,STAT		;READ STATUS
  3726	001114	607 05 0 00 000001 		TLNN	STAT,RUNIND		;CHECK IF RUNNING
  3727	001115	254 04 0 00 001115 		HALT	.			;NO
  3728
  3729	001116	205 02 0 00 777772 	FNDDX:	MOVSI	B,-6			;GET COUNT OF I/O INSTRUCTIONS
  3730	001117	137 04 0 02 001173 		DPB	D,DXPNT(B)		;CHANGE ALL I/O INSTRUCTIONS
  3731	001120	253 02 0 00 001117 		AOBJN	B,.-1			;  TO DEVICE CODE OF DX10 RUNNING
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 96
MAGTAP	MAC	22-May-78 09:05		MAGTAPE READ-IN BOOTSTRAP FILE                                                     SEQ 0134

  3732					;*	DX10 FOUND, STOP IT AND MODIFY PDP-8A MEMORY
  3733
  3734	001121	205 00 0 00 777750 	SPDX:	MOVSI	DXBK1-DXBK2		;GET COUNT OF DATAO DATA WORDS
  3735	001122	541 00 0 00 001205 		HRRI	DXBK1-1			;BUILD BLKO POINTER
  3736	001123	265 17 0 00 001170 		JSP	P,DXBKO			;STOP THE DX10 AND READ UNIT NO.
  3737	001124	7 220 04 0 00 000001 	DXDTI:	DATAI	PDC,A			;READ ADDRESS OF DRIVE
  3738	001125	405 01 0 00 000017 		ANDI	A,17			;CLEAR ALL OTHER BITS
  3739	001126	436 01 0 00 001201 		ORM	A,DXFSF1		;LOAD ADDRESS INTO ALL
  3740	001127	436 01 0 00 001202 		ORM	A,DXFSF2		;  DX10 DEVICE INSTRUCTIONS
  3741	001130	436 01 0 00 001203 		ORM	A,DXRD
  3742	001131	505 00 0 00 777766 		HRLI	DXBK2-DXBK3		;GET COUNT OF NEXT I/O LIST
  3743	001132	265 17 0 00 001170 		JSP	P,DXBKO			;CAUSE DX10 TO READ THE MICRO-CODE
  3744										;  FROM THE TAPE INTO CORE
  3745	001133	256 00 0 00 001103 		XCT	STDX			;READ STATUS
  3746	001134	603 05 0 00 000001 		TLNE	STAT,RUNIND		;WAIT FOR DX10 TO STOP
  3747	001135	254 00 0 00 001133 		JRST	.-2
  3748	001136	606 05 0 00 000100 		TRNN	STAT,STAVL		;CHECK IF STATUS AVAILABLE SET
  3749	001137	254 04 0 00 001137 		HALT	.			;NO, ERROR READING MICR0-CODE TO CORE
  3750	001140	505 00 0 00 777773 		HRLI	DXBK3-DXBK4		;GET COUNT OF NEXT I/O LIST
  3751	001141	265 17 0 00 001170 		JSP	P,DXBKO			;SELECT 8A ADDRESS 0
  3752	001142	205 02 0 00 441400 		MOVSI	B,(POINT 12)		;BUILD BYTE POINTER
  3753	001143	541 02 0 00 031000 		HRRI	B,31000			;  TO 8A MEMORY IMAGE
  3754	001144	201 03 0 00 010000 		MOVEI	C,10000			;GET COUNT OF PDP-8A WORDS
  3755	001145	134 01 0 00 000002 	LOAD8A:	ILDB	A,B			;GET A PDP-8A WORD
  3756	001146	660 01 0 00 010000 		TRO	A,ENDEP			;SET THE ENDEP BIT
  3757	001147	7 220 14 0 00 000001 	DXDTO:	DATAO	PDC,A			;WRITE INTO 8A MEMORY
  3758	001150	367 03 0 00 001145 		SOJG	C,LOAD8A		;LOAD ALL WORDS
  3759
  3760	001151	505 00 0 00 777773 		HRLI	DXBK4-DXBK5		;START THE DX10
  3761	001152	265 17 0 00 001170 		JSP	P,DXBKO			;  MICRO-CODE
  3762
  3763	001153	265 17 0 00 001414 		JSP	P,CLRCOR		;CLEAR CORE
  3764	001154	201 00 0 00 001201 		MOVEI	DXFSF1			;SET UP ICPC
  3765	001155	505 00 0 00 140000 		HRLI	(CHJMPG)		;  IN MEMORY WITH A JUMP
  3766	001156	202 00 0 00 000020 		MOVEM	LOWCMD			;  COMMAND TO PROGRAM
  3767	001157	7 220 20 0 00 020130 	DXCNO:	CONO	PDC,<LOWCMD>_9!STAVL!CLEAR!CONT	;START THE DX10
  3768	001160	256 00 0 00 001103 	DXWAT:	XCT	STDX			;READ DX10 STATUS
  3769	001161	606 05 0 00 001700 		TRNN	STAT,INTFLG		;WAIT FOR AN INTERRUPT FLAG
  3770	001162	254 00 0 00 001160 		JRST	DXWAT
  3771	001163	602 05 0 00 003600 		TRNE	STAT,MPERR!MEMPAR!NXM!CSRFLG	;CHECK FOR ERRORS
  3772	001164	254 04 0 00 001164 		HALT	.			;ERROR FLAG SET, STOP HERE
  3773	001165	265 17 0 00 001423 		JSP	P,LOADPG		;LOAD PROGRAM
  3774	001166	7 220 20 0 00 002110 	DXCNT:	CONO	PDC,INHLD!STAVL!CONT	;CONTINUE READING
  3775	001167	254 00 0 00 001160 		JRST	DXWAT			;WAIT FOR DONE FLAG
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 97
MAGTAP	MAC	22-May-78 09:05		MAGTAPE READ-IN BOOTSTRAP FILE                                                     SEQ 0135

  3776					;*	DX10 BLOCKO ROUTINE
  3777
  3778	001170	7 220 10 0 00 000000 	DXBKO:	BLKO	PDC,0			;WRITE TO DX10
  3779	001171	254 00 1 00 000017 		JRST	@P			;BLKO SATISFIED
  3780	001172	254 00 0 00 001170 		JRST	DXBKO			;KEEP WRITING
  3781
  3782	001173	32 07 0 00 001103 	DXPNT:	POINT	7,STDX,9		;POINTER TO ALL
  3783	001174	32 07 0 00 001124 		POINT	7,DXDTI,9		;  I/O INSTRUCTIONS
  3784	001175	32 07 0 00 001147 		POINT	7,DXDTO,9
  3785	001176	32 07 0 00 001170 		POINT	7,DXBKO,9
  3786	001177	32 07 0 00 001157 		POINT	7,DXCNO,9	
  3787	001200	32 07 0 00 001166 		POINT	7,DXCNT,9
  3788
  3789	001201	200000	770000		DXFSF1:	FSF				;SKIP OVER TWO FILE MARKS
  3790	001202	200000	770000		DXFSF2:	FSF				;TO POSITION AT MAGMON.SAV
  3791	001203	300000	020000		DXRD:	RDF				;READ FROM TAPE
  3792	001204	660000	001437			-<RCDSIZ*5>_4,,RDIBUF		;TRANSFER WORD FOR READ
  3793	001205	060000	001203			CHJMPS!DXRD			;STORE STATUS, SET CPC TO READ AGAIN
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 98
MAGTAP	MAC	22-May-78 09:05		MAGTAPE READ-IN BOOTSTRAP FILE                                                     SEQ 0136

  3794					;*	DATAO WORDS SENT TO DX10
  3795
  3796	001206	000002	000000		DXBK1:	DXCLR,,0			;STOP THE DX10
  3797	001207	000001	000004			RSEL,,MPCTL			;SELECT MPCTL
  3798	001210	000000	000000			0				;CLEAR THE SWITCHES
  3799	001211	000001	000005			RSEL,,MPADR			;SELECT MPADR
  3800	001212	000000	007605			7605				;SET ADDRESS
  3801	001213	000001	000004			RSEL,,MPCTL			;SELECT CONTROL
  3802	001214	000000	015211			ENDEP!5211			;DEPOSIT JMP 7611
  3803	001215	000001	000005			RSEL,,MPADR			;SELECT ADDRESS
  3804	001216	000000	007616			7616				;SET ADDRESS
  3805	001217	000001	000004			RSEL,,MPCTL			;SELECT MPCTL
  3806	001220	000000	016505			ENDEP!6505			;INSERT G8C INSTRUCTION
  3807	001221	000000	011315			ENDEP!1315			;TAD (1000)
  3808	001222	000001	000005			RSEL,,MPADR			;SELECT MPADR
  3809	001223	000000	007644			7644				;SET ADDRESS
  3810	001224	000001	000004			RSEL,,MPCTL			;SELECT MPCTL
  3811	001225	000000	012312			ENDEP!2312			;DEPOSIT ISZ LMT
  3812	001226	000000	015215			ENDEP!5215			;DEPOSIT JMP RDNXT
  3813	001227	000000	016567			ENDEP!6567			;DEPOSIT SSA
  3814	001230	000000	017402			ENDEP!7402			;DEPOSIT HLT
  3815	001231	000001	000005			RSEL,,MPADR			;SELECT MPADR
  3816	001232	000000	007712			7712				;SET ADDRESS
  3817	001233	000001	000004			RSEL,,MPCTL			;SELECT MPCTL
  3818	001234	000000	017774			ENDEP!<-4&7777>			;DEPOSIT A -4
  3819	001235	000000	020000			ENEXM				;READ THE NEXT WORD
  3820	001236	000000	010007		DXBK2:	ENDEP!7				;REWIND COMMAND
  3821	001237	000000	011000			ENDEP!RCDSIZ			;RECORD SIZE
  3822	001240	000001	000007			RSEL,,7				;SELECT 8R REGISTER
  3823	001241	000000	660000			0,,-<RCDSIZ*5>_4		;LOAD BYTE COUNT
  3824	001242	000001	000006			RSEL,,6				;SELECT OTHER HALF
  3825	001243	000000	037000			37000				;LOAD ADDRESS
  3826	001244	000001	000005			RSEL,,MPADR			;SELECT MPADR
  3827	001245	000000	007601			7601				;LOAD ADDRESS OF BOOTSTRAP PROGRAM
  3828	001246	000001	000004			RSEL,,MPCTL			;SELECT MPCTL
  3829	001247	000000	100000			MPCONT				;START THE DX10
  3830	001250	000001	000004		DXBK3:	RSEL,,MPCTL			;SELECT MPCTL
  3831	001251	000000	000000			0				;CLEAR SWITCHES
  3832	001252	000001	000005			RSEL,,MPADR			;SELECT MPADR
  3833	001253	000000	000000			0				;LOAD ADDRESS 0
  3834	001254	000001	000004			RSEL,,MPCTL			;SELECT MPCTL
  3835	001255	000002	000000		DXBK4:	DXCLR,,0			;CLEAR THE DX10
  3836	001256	000001	000005			RSEL,,MPADR			;SELECT MPADR
  3837	001257	000000	000200			MCSTRT				;LOAD MICRO-CODE START ADDRESS
  3838	001260	000001	000004			RSEL,,MPCTL			;SELECT MPCTL
  3839	001261	000000	100000			MPCONT				;START THE DX10 MICRO-CODE
  3840	001262				DXBK5:
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 99
MAGTAP	MAC	22-May-78 09:05		MAGTAPE READ-IN BOOTSTRAP FILE                                                     SEQ 0137

  3841					;*RH10 CONTROL BITS
  3842
  3843			000270		DH==270					;RH10 DEVICE CODES
  3844			000274		DH2==274
  3845			000360		DH3==360
  3846			000364		DH4==364
  3847			000370		DH5==370
  3848			000374		DH6==374
  3849
  3850			000010		CMDDN==1B32				;CONI DONE BIT
  3851		004000	000000		DF22F==1B6				;DF22 FLAG BIT
  3852			002000		RHCLR==1B25				;RESET RH10
  3853			001000		DEN1==1B26				;800 BPI DENSITY BIT
  3854		110000	000000		DRTC==11B5				;TAPE CONTROL REGISTER
  3855		004000	000000		LR==1B6					;LOAD REGISTER BIT
  3856		050000	000000		DRFC==5B5				;FRAME COUNT REGISTER
  3857			000000		DRCR==0B25				;DRIVE COMMAND REGISTER
  3858		010000	000000		DRSR==1B5				;STATUS REGISTER
  3859			000031		SPFWDR==31				;SKIP FORWARD COMMAND
  3860			020000		PIP==1B22				;POSITIONING IN PROGRESS
  3861			000200		DRY==1B28				;DRIVE READY
  3862			040000		CERR==1B21				;CUMULATIVE ERROR BIT
  3863		400000	000000		DHSTRC==40B5				;RH10 CONTROL REGISTER
  3864			000071		RDF==71					;READ COMMAND
  3865		020000	000000		DRER1==2B5				;ERROR REGISTER
  3866			000004		TM==1B33				;TAPE MARK READ
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 100
MAGTAP	MAC	22-May-78 09:05		MAGTAPE READ-IN BOOTSTRAP FILE                                                     SEQ 0138

  3867					;*STRH, RH10 READ-IN PROGRAM
  3868
  3869	001262	7 270 30 0 00 000010 	STRH:	CONSZ	DH,CMDDN		;LOOK FOR A RH10
  3870	001263	254 00 0 00 001306 		JRST	FNDTU			;  WITH THE DONE BIT SET
  3871	001264	201 04 0 00 000057 		MOVEI	D,DH2_-2		;  TO FIND OUT WHICH
  3872	001265	7 274 30 0 00 000010 		CONSZ	DH2,CMDDN		;  RH10 PERFORMED THE READ-IN
  3873	001266	254 00 0 00 001303 		JRST	FNDRH
  3874	001267	201 04 0 00 000074 		MOVEI	D,DH3_-2
  3875	001270	7 360 30 0 00 000010 		CONSZ	DH3,CMDDN
  3876	001271	254 00 0 00 001303 		JRST	FNDRH
  3877	001272	201 04 0 00 000075 		MOVEI	D,DH4_-2
  3878	001273	7 364 30 0 00 000010 		CONSZ	DH4,CMDDN
  3879	001274	254 00 0 00 001303 		JRST	FNDRH
  3880	001275	201 04 0 00 000076 		MOVEI	D,DH5_-2
  3881	001276	7 370 30 0 00 000010 		CONSZ	DH5,CMDDN
  3882	001277	254 00 0 00 001303 		JRST	FNDRH
  3883	001300	201 04 0 00 000077 		MOVEI	D,DH6_-2
  3884	001301	7 374 34 0 00 000010 		CONSO	DH6,CMDDN
  3885	001302	254 04 0 00 001302 		HALT	.			;NO RH10 HAS THE DONE BIT SET
  3886
  3887	001303	205 02 0 00 777767 	FNDRH:	MOVSI	B,-9			;GET COUNT OF I/O INSTRUCTIONS
  3888	001304	137 04 0 02 001360 		DPB	D,RHPNT(B)		;CHANGE ALL I/O INSTRUCTIONS
  3889	001305	253 02 0 00 001304 		AOBJN	B,.-1			;  TO DEVICE CODE OF RH10 TO USE
  3890
  3891	001306	7 270 04 0 00 000000 	FNDTU:	DATAI	DH,0			;GET DRIVE NUMBER
  3892	001307	554 00 0 00 000000 		HLRZ				;  TO RIGHT OF AC
  3893	001310	205 02 0 00 777772 		MOVSI	B,-6			;GET COUNT OF DATAO WORDS
  3894	001311	137 00 0 02 001371 		DPB	DVPNT(B)		;CHANGE ALL WORDS TO
  3895	001312	253 02 0 00 001311 		AOBJN	B,.-1			;  DRIVE NUMBER READ
  3896
  3897	001313	265 17 0 00 001414 		JSP	P,CLRCOR		;CLEAR CORE
  3898	001314	201 00 0 00 001057 		MOVEI	TMCHN			;SET UP DF10 ICCW
  3899	001315	202 00 0 00 000020 		MOVEM	LOWCMD			;  IN MEMORY
  3900
  3901	001316	474 01 0 00 000000 	GORH:	SETO	A,			;SET TWICE FLAG
  3902	001317	7 270 20 0 00 002000 	RHCNO:	CONO	DH,RHCLR		;CLEAR THE RH10
  3903	001320	310 00 0 00 001413 		CAM	RHERR			;STALL
  3904	001321	7 270 14 0 00 001406 	RHDT1:	DATAO	DH,RHCTL		;LOAD TAPE CONTROL REGISTER
  3905	001322	310 00 0 00 001413 		CAM	RHERR			;STALL
  3906	001323	7 270 14 0 00 001407 	RHDT2:	DATAO	DH,RHFC			;CLEAR FRAME COUNTER
  3907	001324	310 00 0 00 001413 		CAM	RHERR			;STALL
  3908	001325	7 270 14 0 00 001410 	RHDT3:	DATAO	DH,RHFORW		;SPACE FORWARD ONE FILE
  3909	001326	265 17 0 00 001377 		JSP	P,RHRDY			;WAIT FOR TAPE TO STOP
  3910	001327	606 00 0 00 000004 		TRNN	TM			;CHECK FOR TAPE MARK DETECTED
  3911	001330	254 04 0 00 001330 		HALT	.			;SPACE FORWARD ERROR
  3912	001331	342 01 0 00 001317 		AOJE	A,GORH+1		;SPACE OVER TWO FILE MARKS
  3913
  3914	001332	256 00 0 00 001317 		XCT	RHCNO			;CLEAR THE RH10
  3915	001333	310 00 0 00 001413 		CAM	RHERR			;STALL
  3916	001334	256 00 0 00 001321 	RDRH:	XCT	RHDT1			;LOAD CONTROL REGISTER
  3917	001335	310 00 0 00 001413 		CAM	RHERR			;STALL
  3918	001336	256 00 0 00 001323 		XCT	RHDT2			;CLEAR FRAME COUNT REGISTER
  3919	001337	310 00 0 00 001413 		CAM	RHERR			;STALL
  3920	001340	7 270 14 0 00 001412 	RHDT4:	DATAO	DH,RHREAD		;START A READ OPERATION
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 101
MAGTAP	MAC	22-May-78 09:05		MAGTAPE READ-IN BOOTSTRAP FILE                                                     SEQ 0139

  3921					;*	CHECK IF RH10 READ CORRECTLY
  3922
  3923	001341	7 270 24 0 00 000005 	RHST:	CONI	DH,STAT			;READ CHANNEL STATUS
  3924	001342	606 05 0 00 000010 		TRNN	STAT,CMDDN		;WAIT FOR DONE FLAG
  3925	001343	254 00 0 00 001341 		JRST	.-2
  3926	001344	602 05 0 00 577700 		TRNE	STAT,577700		;CHECK FOR CHANNEL ERROR
  3927	001345	254 04 0 00 001345 		HALT	.			;RH10 ERROR WHILE READING
  3928	001346	265 17 0 00 001377 		JSP	P,RHRDY			;WAIT FOR TAPE TO STOP
  3929	001347	602 00 0 00 000004 		TRNE	TM			;CHECK IF READ A TAPE MARK
  3930	001350	254 04 0 00 001350 		HALT	.			;READ ERROR - EOF DETECTED
  3931	001351	7 270 14 0 00 001413 	RHDT5:	DATAO	DH,RHERR		;SELECT ERROR REGISTER
  3932	001352	310 00 0 00 001413 		CAM	RHERR			;STALL
  3933	001353	256 00 0 00 001306 		XCT	FNDTU			;READ ERROR BITS
  3934	001354	602 00 0 00 176777 		TRNE	176777			;CHECK IF ERROR OTHER THAN LENGTH ERROR
  3935	001355	254 04 0 00 001355 		HALT	.			;DEVICE READ ERROR
  3936	001356	265 17 0 00 001423 		JSP	P,LOADPG		;LOAD DATA FROM THIS RECORD
  3937	001357	254 00 0 00 001334 		JRST	RDRH			;READ NEXT RECORD
  3938
  3939	001360	32 07 0 00 001306 	RHPNT:	POINT	7,FNDTU,9		;POINTERS TO ALL I/O
  3940	001361	32 07 0 00 001341 		POINT	7,RHST,9		;  INSTRUCTIONS
  3941	001362	32 07 0 00 001317 		POINT	7,RHCNO,9
  3942	001363	32 07 0 00 001321 		POINT	7,RHDT1,9
  3943	001364	32 07 0 00 001323 		POINT	7,RHDT2,9
  3944	001365	32 07 0 00 001325 		POINT	7,RHDT3,9
  3945	001366	32 07 0 00 001340 		POINT	7,RHDT4,9
  3946	001367	32 07 0 00 001351 		POINT	7,RHDT5,9
  3947	001370	32 07 0 00 001377 		POINT	7,RHRDY,9
  3948
  3949	001371	22 03 0 00 001406 	DVPNT:	POINT	3,RHCTL,17		;POINTERS TO ALL DATAO WORDS
  3950	001372	22 03 0 00 001407 		POINT	3,RHFC,17		;  TO TAPE UNIT OR RH10
  3951	001373	22 03 0 00 001410 		POINT	3,RHFORW,17
  3952	001374	22 03 0 00 001411 		POINT	3,RHSTAT,17
  3953	001375	22 03 0 00 001412 		POINT	3,RHREAD,17
  3954	001376	22 03 0 00 001413 		POINT	3,RHERR,17
  3955
  3956	001377	7 270 14 0 00 001411 	RHRDY:	DATAO	DH,RHSTAT		;SELECT STATUS REGISTER
  3957	001400	310 00 0 00 001413 		CAM	RHERR			;STALL
  3958	001401	256 00 0 00 001306 		XCT	FNDTU			;READ STATUS
  3959	001402	606 00 0 00 020000 		TRNN	PIP			;CHECK IF DRIVE IS STOPPED
  3960	001403	606 00 0 00 000200 		TRNN	DRY
  3961	001404	254 00 0 00 001377 		JRST	RHRDY			;NO, KEEP WAITING
  3962	001405	254 00 1 00 000017 		JRST	@P			;RETURN
  3963
  3964	001406	114000	001000		RHCTL:	DRTC!LR!DEN1			;LOAD TAPE CONTROL REGISTER
  3965	001407	054000	000000		RHFC:	DRFC!LR!0			;CLEAR FRAME COUNTER
  3966	001410	004000	000031		RHFORW:	DRCR!LR!SPFWDR			;LOAD SPACE FORWARD COMMAND
  3967	001411	010000	000000		RHSTAT:	DRSR				;SELECT STATUS REGISTER
  3968	001412	404000	002071		RHREAD:	DHSTRC!LR!RDF!<LOWCMD>B29	;READ DATA
  3969	001413	020000	000000		RHERR:	DRER1				;SELECT ERROR REGISTER
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 102
MAGTAP	MAC	22-May-78 09:05		MAGTAPE READ-IN BOOTSTRAP FILE                                                     SEQ 0140

  3970					;*CLRCOR, CLEAR CORE IN PDP-10 FOR MAGMON.SAV
  3971
  3972	001414	211 02 0 00 000760 	CLRCOR:	MOVNI	B,STTM-20		;GET COUNT OF WORD TO CLEAR
  3973	001415	402 00 0 02 001000 		SETZM	STTM(B)			;BETWEEN 20 AND STTM
  3974	001416	341 02 0 00 001415 		AOJL	B,.-1			;CLEAR ALL THE WORDS
  3975	001417	211 02 0 00 027141 		MOVNI	B,30600-RDIBUF		;GET COUNT OF WORDS TO CLEAR
  3976	001420	402 00 0 02 030600 		SETZM	30600(B)		;BETWEEN RDIBUF AND 30600
  3977	001421	341 02 0 00 001420 		AOJL	B,.-1			;CLEAR ALL THE WORDS
  3978	001422	254 00 1 00 000017 		JRST	@P			;RETURN
  3979
  3980					;*LOADPG, LOAD THE DATA BUFFER INTO CORE AND START MAGMON AT END
  3981
  3982	001423	205 01 0 00 777000 	LOADPG:	MOVSI	A,-RCDSIZ		;GET COUNT OF WORDS IN BUFFER
  3983	001424	541 01 0 00 001437 		HRRI	A,RDIBUF		;AND ADDRESS OF BUFFER
  3984	001425	200 00 0 01 000000 	LOADWD:	MOVE	(A)			;GET A WORD FROM BUFFER
  3985	001426	325 02 0 00 001433 		JUMPGE	B,LOADPT		;JUMP IF LOOKING FOR POINTER
  3986	001427	252 02 0 00 001430 		AOBJP	B,.+1			;INCREMENT POINTER
  3987	001430	202 00 0 02 000000 		MOVEM	(B)			;PUT WORD IN MEMORY
  3988	001431	253 01 0 00 001425 	LOADNX:	AOBJN	A,LOADWD		;COUNT AND GET NEXT WORD IN BUFFER
  3989	001432	254 00 1 00 000017 		JRST	@P			;RETURN TO READ NEXT BUFFER
  3990	001433	325 00 0 00 001436 	LOADPT:	JUMPGE	PGMST			;START PROGRAM IF START WORD
  3991	001434	202 00 0 00 000002 		MOVEM	B			;STORE POINTER IN B
  3992	001435	254 00 0 00 001431 		JRST	LOADNX			;GET NEXT WORD FROM BUFFER
  3993	001436	254 00 1 00 000000 	PGMST:	JRST	@0			;START THE PROGRAM
  3994
  3995	001437				RDIBUF:					;ADDRESS OF READ BUFFER
  3996
  3997	001437	254 00 0 00 001000 		JRST	STTM			;START WORD FOR TM10
  3998
  3999	001440	777777	001440			IOWD	1,.+1			;POINTER WORD FOR RH10
  4000	001441	254 00 0 00 001262 		JRST	STRH			;START WORD FOR RH10
  4001
  4002	006345					DEPHASE
  4003
  4004	006345				RDIEND:	
  4005
  4006						IF1,<
  4007						IFG <RDIEND-RDI0-RCDSIZ>,<
  4008						PRINTX	READ-IN CODE IS LARGER THAN ONE MAGTAPE RECORD  >>
MAGTAP - DIAGNOSTIC DISTRIBUTION MAGTAPE CREATOR, VERSION 0,5	MACRO %53(1026) 16:51 22-May-78 Page 103
MAGTAP	MAC	22-May-78 09:05		PROGRAM STORAGE AREA                                                               SEQ 0141

  4009					SUBTTL	PROGRAM STORAGE AREA
  4010
  4011					;*INPUT FILE NAME FOR MAKE COMMAND
  4012
  4013	006345	000000	000000		INDEV:	EXP	0			;ASCII MODE
  4014	006346	44 63 53 00 00 00 	INDEVN:	SIXBIT	'DSK'			;DEVICE NAME
  4015	006347	000000	006430		INDEVB:	EXP	BUF0			;BUFFER ADDRESS FOR CHANNEL 0
  4016	006350	55 41 47 64 41 60 	INFILN:	SIXBIT	'MAGTAP'		;FILE NAME
  4017	006351	51 56 60 00 00 00 	INFILE:	SIXBIT	'INP'			;EXTENSION
  4018	006352	000000	000000		INFILD:	0				;CREATION DATE
  4019	006353	000000	000000		INPPN:	0				;P,PN
  4020	006354	000000	000000		INFILP:	0				;SAVED P,PN
  4021
  4022
  4023
  4024					;*SEARCH LIST SET UP BY SEARCH SWITCH
  4025
  4026	006355	44 63 53 00 00 00 	SCHLST:	SIXBIT	'DSK'			;DEFAULT TO DSK
  4027	006356	000000	000000			0				;OF USER P,PN
  4028	006357	000000	000000			0				;ZERO DENOTES END OF TABLE
  4029	006360					BLOCK	^D20*2			;ROOM FOR 20 ENTRIES
  4030	006430				BUF0:	BLOCK 3				;RING BUFFER HEADER FOR CHN 0
  4031	006433				BUF1:	BLOCK 3
  4032	006436				BUF2:	BLOCK 3
  4033	006441				BUF3:	BLOCK 3
  4034	006444				BUF4:	BLOCK 3
  4035
  4036	006447				PLIST:	BLOCK 40
  4037
  4038	006507	000000	000000		END:	0
  4039	006507'					RELOC	END
  4040
  4041						NOSYM
  4042			000140			END	START

NO ERRORS DETECTED

PROGRAM BREAK IS 007465
ABSOLUTE BREAK IS 006510
CPU TIME USED 00:13.190

24P CORE USED

A	    55#	   156	   160	   164	   195	   199	   213	   285	   296	   300	   305	   345	   381	   392
	   408	   410	   426	   434	   438	   448	   449	   455	   460	   516	   518	   521	   523	   529     SEQ 0142
	   536	   540	   543	   548	   550	   555	   557	   558	   560	   571	   579	   580	   581	   594
	   596	   601	   657	   658	   659	   660	   662	   665	   666	   686	   688	   690	   696	   697
	   698	   700	   769	   770	   782	   787	   792	   795	   803	   805	   806	   816	   817	   821
	   824	   827	   835	   836	   838	   839	   848	   872	   875	   886	   904	   906	   914	   921
	   922	   931	   932	  1047	  1048	  1054	  1058	  1062	  1094	  1104	  1108	  1120	  1133	  1138
	  1237	  1239	  1242	  1244	  1247	  1293	  1294	  1298	  1299	  1327	  1328	  1348	  1351	  1353
	  1356	  1358	  1367	  1370	  1419	  1423	  1431	  1432	  1434	  1456	  1462	  1463	  1466	  1470
	  1471	  1475	  1488	  1497	  1504	  1505	  1512	  1513	  1520	  1523	  1534	  1579	  1580	  1584
	  1677	  1680	  1685	  1688	  1691	  1702	  1706	  1714	  1716	  1717	  1718	  1724	  1734	  1742
	  1752	  1762	  1763	  1769	  1770	  1771	  1772	  1776	  1778	  1781	  1786	  1787	  1788	  1789
	  1790	  1791	  1796	  1802	  1803	  1804	  1842	  1843	  1844	  1846	  1850	  1851	  1855	  1920
	  1921	  1922	  1923	  1924	  1926	  1930	  1934	  1947	  1948	  1949	  1964	  1966	  1967	  1969
	  1970	  1972	  1973	  1975	  1976	  1977	  1986	  2121	  2136	  2139	  2159	  2161	  2163	  2164
	  2165	  2166	  2167	  2168	  2171	  2180	  2182	  2183	  2185	  2214	  2215	  2217	  2218	  2219
	  2221	  2222	  2223	  2224	  2225	  2227	  2241	  2247	  2249	  2255	  2260	  2262	  2264	  2266
	  2272	  2279	  2281	  2283	  2284	  2287	  2304	  2305	  2306	  2307	  2308	  2309	  2315	  2316
	  2318	  2319	  2322	  2333	  2334	  2336	  2337	  2338	  2340	  2341	  2343	  2345	  2346	  2348
	  2349	  2351	  2352	  2354	  2355	  2357	  2358	  2360	  2362	  2364	  2365	  2368	  2369	  2370
	  2378	  2381	  2388	  2391	  2396	  2399	  2407	  2408	  2412	  2420	  2422	  2430	  2431	  2441
	  2445	  2447	  2448	  2449	  2458	  2464	  2466	  2633	  2659	  2660	  2665	  2667	  2671	  2678
	  2679	  2692	  2693	  2698	  2702	  2705	  2710	  2714	  2721	  2769	  2770	  2773	  2787	  2790
	  2791	  2799	  2826	  2835	  2847	  2854	  2855	  2857	  2864	  2912	  2913	  2915	  2926	  2930
	  2933	  3032	  3037	  3057	  3058	  3062	  3069	  3070	  3081	  3737	  3738	  3739	  3740	  3741
	  3755	  3756	  3757	  3901	  3912	  3982	  3983	  3984	  3988
ALOWLD	   126#	   126	   269#	   269	  1233	  2375	  2384
ASCDAT	  2814	  2853#
ASCEND	  2783	  2785	  2788	  2793	  2796	  2856	  2859	  2861	  2865	  2870	  2875	  2886	  2889#
ASCVER	  2752	  2754	  2757	  2779#
ASCVRA	  2804	  2807#
ASKDEN	   189	   193#	   245	   250
B	    56#	   202	   205	   288	   291	   354	   356	   359	   384	   387	   395	   398	   401	   402
	   413	   427	   429	   430	   439	   442	   459	   507	   508	   572	   575	   576	   578	   598
	   599	   620	   687	   691	   694	   762	   812	   813	   818	   919	   925	  1225	  1227	  1228
	  1230	  1249	  1250	  1420	  1426	  1452	  1479	  1489	  1504	  1507	  1517	  1525	  1533	  1560
	  1570	  1571	  1572	  1583	  1592	  1594	  1613	  1616	  1632	  1669	  1736	  1748	  1749	  1750
	  1751	  1777	  1794	  1795	  1797	  1839	  1858	  1882	  1892	  1893	  1900	  1963	  1975	  1979
	  1982	  1983	  1984	  1990	  2140	  2141	  2144	  2158	  2164	  2167	  2220	  2222	  2242	  2248
	  2250	  2317	  2320	  2440	  2442	  2446	  2450	  2451	  2657	  2662	  2685	  2689	  2690	  2691
	  2697	  2707	  2709	  2716	  2732	  2734	  2735	  2736	  2866	  2867	  2869	  2871	  2872	  3729
	  3730	  3731	  3752	  3753	  3755	  3887	  3888	  3889	  3893	  3894	  3895	  3972	  3973	  3974
	  3975	  3976	  3977	  3985	  3986	  3987	  3991
BADBIT	  3581#	  3634
BADCMD	   290	   295#	   358	   382	   386	   393	   397	   411
BADCMF	   305#	   308	  1080	  1083	  3118
BADCMI	   295	   302#
BADCMX	   301	   304#
BADTAP	  3574#	  3581
BOT	  3566#
BPI800	  3550#	  3615	  3619
BSB	  3665#
BSF	  3666#
BUF0	   562	   710	  2475	  2477	  4015	  4030#
BUF1	   635	   766	  1253	  2518	  2520	  2646	  2922	  4031#                                                    SEQ 0143
BUF2	   678	   734	  1253	  2584	  2586	  4032#
BUF3	   605	   748	  1147	  2595	  2597	  4033#
BUF4	   173	  1163	  2306	  2309	  2310	  2538	  2540	  2556	  2558	  2609	  2611	  4034#
BUFFS	    61#	   635	   649	   678	   734	   748	   766	  1147	  1253	  2646
BUSY	  3675#
C	    57#	   146	  1103	  1107	  1190	  1204	  1453	  1455	  1465	  1473	  1476	  1478	  1490	  1515
	  1519	  1532	  1580	  1581	  1582	  1589	  1590	  1593	  1599	  1614	  1617	  1623	  1630	  1640
	  1641	  1644	  1647	  1650	  1651	  1654	  1656	  1659	  1660	  1663	  1665	  1668	  1731	  1750
	  1768	  1782	  1793	  1800	  1840	  1841	  1853	  1856	  1857	  1874	  1882	  1883	  1884	  1885
	  1887	  1896	  1899	  1909	  1918	  1921	  1927	  1952	  2014	  2018	  2030	  2037	  2207	  2208
	  2210	  2211	  2212	  2670	  2674	  2686	  2717	  2862	  2883	  2930	  2931	  2935	  3754	  3758
CERR	  3862#
CH0	   112#	   937
CH1	   113#	   266	   633	   685	   702	   764	   938	   964	  1251	  1339	  1392	  1708	  1719	  2523
	  2525	  2650	  2652	  2654	  2781	  2920	  2923
CH2	   114#	   267	   650	   680	   682	   684	   701	   731	   739	   740	   742	   935	  1345	  1360
	  1393	  2579	  2588	  2590
CH3	   115#	   268	   607	   611	   613	   625	   753	   754	   756	   936	  1148	  1153	  1155	  2599
	  2601
CH4	   116#	   171	   177	   180	   186	   219	   224	   953	   974	   983	   988	  1081	  1089	  1156
	  1168	  1275	  1332	  1391	  1546	  1763	  1764	  1766	  1778	  1801	  1805	  1806	  1815	  1877
	  1886	  1895	  1897	  1908	  2544	  2546	  2562	  2564	  2573	  2575	  2613	  2615	  2616
CHAN	   634#	   634	   651	   732	   747	   765	  1252	  1709	  1920
CHAN7	  3578#
CHAR	   721#	   721	   904	  1995	  2479	  2485	  2489	  2492	  2494
CHDEOF	  1369	  1376#
CHECK	   812	   846	   883	   893	   920	   921	   930	   931	  2251#	  2251	  2266	  2283
CHEK	   333	  1225#
CHJMPG	  3669#	  3765
CHJMPS	  3672#	  3793
CHKA	  1564	  1567	  1571#
CHKALL	  1310	  1318#
CHKBYP	  1288	  1302	  1412#
CHKCOM	  1226	  1230#
CHKDAT	  1341	  1362#	  1374
CHKE	  1603#	  1639
CHKE1	  1596#	  1661
CHKE2	  1591	  1607#
CHKEC	  1598#	  1609	  1621
CHKEOF	  1363	  1377	  1383#
CHKERR	  1330#	  1330	  1577	  1604
CHKFLG	  1230#	  1230	  1335	  1340	  1365	  1372	  1383
CHKGET	  1336	  1340#
CHKGPT	  1309	  1314#
CHKIN	  2229	  2272#	  2282
CHKINF	   573#	   580
CHKLOK	  1313	  1317	  1330#	  1445
CHKLST	  1238	  1240	  1246#
CHKMSK	  1571#	  1571	  1625	  1633	  1635
CHKN	  1569	  1604#
CHKNC	  1581	  1584#	  1595	  1615	  1618	  1628	  1636	  1648	  1657	  1666	  1670
CHKNX	  1580#	  1586
CHKNXA	  1397	  1404#                                                                                                    SEQ 0144
CHKNXT	  1273	  1280#	  1406	  1410	  1429
CHKOK	  1291	  1303	  1304#
CHKSET	  1334	  1560#
CHKSM	  1588#	  1588	  1626	  1634
CHKSUM	  2276	  2283#
CHKWGT	  1366	  1372#
CHKWLD	  1266	  1402	  1415#
CHKWNX	  1399	  1439#
CHKWRD	  1364	  1577#
CHR1	  1572	  1588#	  1632	  1669
CHR2	  1592	  1612#
CHRA1	  1624	  1630#
CHRA2	  1631	  1640#
CHRA3	  1652	  1659#
CHRAD	  1613	  1623#
CHROD	  1594	  1616	  1668#
CLEAR	  3658#	  3767
CLRCOR	  3601	  3763	  3897	  3972#
CMASK	  2249#	  2249	  2261	  2280
CMDDN	  3850#	  3869	  3872	  3875	  3878	  3881	  3884	  3924
CMDERP	   346	   349#
CMDERR	   345#	   348	   531	   544	   551	   561	   595	   597	  1121	  1243	  1245	  1678	  1681	  1682
	  1686	  1689	  1695	  1700	  1707	  1725	  1728	  1732	  1735	  1738	  1741	  2172	  2173	  2181
	  2376	  2385
CMDGO	   291	   330#
CNT	    62#	   283	   628	   682	   727	   740	   754	  1254	  1360	  1719	  1919	  2647	  2652
CNVDEC	  1729	  1743	  2876	  2884	  2910#
CNVNMA	  2896#	  2899
CNVNMB	  2897	  2900#
CNVNMX	  2895	  2906#
CNVNUM	  1696	  2810	  2812	  2895#
COCLR	   228	   235	   242	   247	   254#	   272	   298	   349	   989	   998	  1005	  1172	  1813	  1820
	  1824	  1828	  1937	  2077	  2082	  2113	  2127	  2199	  2291	  2506	  2718	  2727	  2739	  2941
	  2947	  2950	  2972	  2978	  2981	  3002	  3006	  3015
COLON	    79#	   529	   798	  2346	  2671	  2698	  2954	  2985
COMAND	   288	   311#
COMM	   210	   216	   225	   261#	   297	   306	   351	   943	   992	   996	  1002	  1115	  1118	  1170
	  1177	  1401	  1407	  1721	  1818	  1822	  1826	  2107	  2109	  2125	  2153	  2201	  2293	  2515
	  2531	  2552	  2605	  2945	  2961	  2969	  2976	  2991	  2999	  3004	  3013	  3017
COMMA	    75#	   543	  1623	  2182	  2258	  2277	  2341	  2705	  2714	  2965	  2995
COMNDE	   311	   326#
COMPAR	   203	   289	   357	   385	   396	   440	  1737	  1962#	  2868
COMPM	  1967#	  1971
COMPMK	  1968	  1972#
COMPMS	  1973#	  1973	  1976
COMPMT	  1982#
COMPST	  1975#	  1979
COMPX	  1981	  1986#
COMSET	  1978	  1990#
CONT	  3659#	  3767	  3774
CPOPJ	  1962	  2044#
CPOPJ1	  1933	  1957	  2043#
CR	    77#	    87	   911	  1186	  1211	  1630	  1668	  2275	  2338	  2478	  3025                             SEQ 0145
CRLF	    87#	   138	   973	  1326	  1603	  1872	  1941	  2102	  2152	  2571
CSIZE	  2250#	  2250	  2260	  2279	  2285
CSRFLG	  3653#	  3771
D	    58#	   615	   617	   620	  1183	  1491	  1516	  1520	  1531	  1612	  1625	  1626	  1627	  1633
	  1634	  1635	  1645	  1646	  1655	  1664	  1665	  1772	  1773	  1775	  1781	  1782	  1787	  1788
	  1789	  1794	  1795	  1796	  1797	  1919	  1922	  1931	  1955	  1965	  1974	  1980	  1987	  1991
	  2013	  2021	  2029	  2040	  2174	  2175	  2177	  2179	  2192	  2194	  2195	  2197	  2204	  2205
	  2212	  2215	  2228	  2311	  2312	  2314	  2315	  2321	  2322	  2871	  2881	  2882	  2887	  2888
	  3023	  3029	  3032	  3591	  3592	  3596	  3597	  3598	  3599	  3720	  3724	  3730	  3871	  3874
	  3877	  3880	  3883	  3888
DAC	  3695#
DASH	    86#	  1724	  1734	  2354	  2857	  2864
DAT	    66#	   638	   643	   644	   645	   656	   664	   675	   738	   752	   857	   871	   874	   875
	   891	   892	   897	  1152	  1352	  1355	  1492	  1512	  1516	  1530	  1716	  2760	  2765	  2772
	  2849	  2888
DATA	  3579#	  3626
DATEX	   632#	   632	   646	   654	   659	   665	   672
DATLAT	  3573#	  3581
DATTAB	  3069	  3089#
DATTBE	  3088	  3101#
DATTBP	  1736	  2867	  3088#
DECODE	   196	   202#
DECVER	     4#	     9	    50	   136
DEFSWT	   128	   143#
DEN1	  3853#	  3964
DEN800	   184	   188	   222#
DENSIT	   202	   376#
DEV	    60#	   632	   649	   730	   746	  1132	  1137	  1344	  1926	  1939	  1942	  1951	  2645	  2974
	  2983
DEVPAR	  3681#
DF10	  3563#	  3604	  3620
DF22	  3562#	  3605
DF22F	  3851#
DH	  3843#	  3869	  3891	  3902	  3904	  3906	  3908	  3920	  3923	  3931	  3956
DH2	  3844#	  3871	  3872
DH3	  3845#	  3874	  3875
DH4	  3846#	  3877	  3878
DH5	  3847#	  3880	  3881
DH6	  3848#	  3883	  3884
DHSTRC	  3863#	  3968
DIGCNT	   796	   815#	   815	  1046	  2620	  2623	  2633	  2637	  2767	  2770	  3041	  3051	  3060	  3078
DIR	  1128	  1132#
DIRDIR	   751#
DIRDON	  1165	  1168#	  1185	  1215
DIRECT	   335	  1127#
DIREND	   918	   930#
DIREXT	   863	   877#
DIRFCM	  1138#	  1141
DIRFIL	   815#	   919
DIRFLE	  1191#	  1207	  1220
DIRFLG	   158#	   158	   276	   504	  1082#	  1082	  1760	  1809
DIRFLS	  1208#	  1210	  1217
DIRFND	   851	   856	   867#                                                                                            SEQ 0146
DIRHDC	  1798	  1824#
DIRHDE	  1783	  1820#
DIRHED	   770#	   773
DIRLIN	  1186#	  1204
DIRLST	  1192	  1199	  1203	  1211#	  1219
DIRMTA	   737#
DIRPNT	  1184#
DIRPOS	  1134	  1139	  1144#
DIRRCD	   812#	   927
DIRRDE	  1780	  1813#
DIRREC	  1194	  1216#
DIRVER	   771	   774#
DIRWRT	  1164#	  1167
DRCR	  3857#	  3966
DRER1	  3865#	  3969
DRFC	  3856#	  3965
DRSR	  3858#	  3967
DRTC	  3854#	  3964
DRY	  3861#	  3960
DSRFLG	  3684#
DUMP	  3551#	  3615	  3619
DVPNT	  3894	  3949#
DXBK1	  3734	  3735	  3796#
DXBK2	  3734	  3742	  3820#
DXBK3	  3742	  3750	  3830#
DXBK4	  3750	  3760	  3835#
DXBK5	  3760	  3840#
DXBKO	  3736	  3743	  3751	  3761	  3778#	  3780	  3785
DXCLR	  3691#	  3796	  3835
DXCNO	  3767#	  3786
DXCNT	  3774#	  3787
DXCODE	  3703#
DXDTI	  3737#	  3783
DXDTO	  3757#	  3784
DXFIX	  3706#	  3710
DXFSF1	  3739	  3764	  3789#
DXFSF2	  3740	  3790#
DXPNT	  3730	  3782#
DXRD	  3741	  3791#	  3793
DXWAT	  3768#	  3770	  3775
END	  4038#	  4039
ENDEP	  3698#	  3756	  3802	  3806	  3807	  3811	  3812	  3813	  3814	  3818	  3820	  3821
ENDLOD	  2214	  2231#
ENEXM	  3697#	  3819
ENTRFG	   683	   741	   755	  1154	  1361	  2978#
ENTRFI	   612	  2947#
EOF	  3569#	  3634
EOT	  3570#	  3581
ERRBF0	  2502	  2506#
ERRCHK	  1388	  1554#
ERREOF	  1386	  1549#
ERRNAM	   993	  1004#	  1536	  1541	  1549	  1554	  1596	  1607	  1619	  1637	  2528	  2549	  2568	  2602
EXT	    65#	   576	   587	   631	   640	   641	   642	   648	   657	   674	   729	   737	   745	   751     SEQ 0147
	   852	   860	   872	   873	   878	   881	   882	   885	   971	  1011	  1151	  1174	  1180	  1282
	  1324	  1350	  1417	  1437	  1440	  1463	  1561	  1687	  1718	  1847	  1870	  1947	  2012	  2029
	  2118	  2150	  2649	  2747	  2989	  3011
FASTDR	  1127#	  1127	  1130	  1158
FDIR	   341	  1130#
FDIRWT	  1159	  1180#
FILERL	  2092	  2098#
FILERP	  2105#	  2110
FILERR	  2018	  2023	  2025	  2028	  2059	  2066	  2070	  2073	  2082#
FILWL1	  1502	  1512#
FILWL2	  1519#	  1525
FILWL3	  1499	  1510	  1524	  1529#
FILWLD	  1459	  1488#
FIND	   636	   652	   735	   749	   867	   962	  1337	  1710	  1918#
FINDD	  1924#	  1935
FINDF	  1930#
FINDN	  1934#	  1943
FINDNO	  1925	  1945#
FN	    64#	   575	   584	   630	   647	   728	   845	   850	   968	   974	  1008	  1150	  1153	  1156
	  1280	  1321	  1332	  1415	  1419	  1436	  1439	  1462	  1515	  1683	  1844	  1867	  1945	  2005
	  2012	  2013	  2028	  2061	  2063	  2069	  2071	  2079	  2103	  2147	  2648	  2986	  3008
FNDDX	  3723	  3729#
FNDFIL	  1160	  1181	  1311	  1314	  1838#
FNDFLE	  1844#	  1853	  1856
FNDFLN	  1845	  1850#
FNDFLX	  1878	  1884	  1888	  1899#
FNDNFF	  1854	  1857#
FNDRH	  3873	  3876	  3879	  3882	  3887#
FNDTU	  3870	  3891#	  3933	  3939	  3958
FNDWL1	  1459#	  1473	  1476
FNDWL2	  1457	  1460	  1470#
FNDWL3	  1474	  1478#
FNDWLD	  1442	  1451#
FNFNDD	  1338	  1541#
FNFNDM	  1312	  1315	  1536#
FOUND	  1468	  1849	  1864#
FSF	  3667#	  3789	  3790
GETBF0	  2476	  2498#
GETBF3	  2596	  2599#
GETCOM	   332	  1228#
GETDIR	  1144	  1258	  1758#
GETDRA	  1787#	  1793
GETDRR	  1772#	  1800
GETVER	   888	  2747#
GETVRA	  2758#	  2891
GORH	  3901#	  3912
GOTM	  3590	  3601#
GPCMD	   384	   439	   465#
GPCMDE	   465	   498#
GPNBR	   387	   442	   505#	   505	   705	   877	  1231	  1271	  1284	  1287	  1307	  1495	  1498
HEDMSG	   805	  1024#
HELP	   330	  3117#
HLPMSG	  3117	  3120#                                                                                                    SEQ 0148
HUNG	  3564#	  3581
IDLE	  3576#	  3613
ILLCMD	  3683#
ILLOP	  3567#	  3581
IMPOSB	  1759	  1828#
INAST	  2361	  2375#
INCNT	   862	  1021#	  1021	  1043	  1050
INCOMP	   870	  1017#
INCORE	  1774	  2176	  2192#	  2206	  2313
INCORX	  2196	  2199#
INDEV	   564	   607	   712	   946	  4013#
INDEVB	   563	   606	   711	  4015#
INDEVN	   510	   532	  1951	  2943	  2952	  4014#
INFILD	  4018#
INFILE	   514	   539	   586	   599	   618	  1948	  2087	  2132	  2513	  2958	  4017#
INFILM	   577	   585	   588	  2127#
INFILN	   512	   535	   568	   584	   611	   617	   716	   950	  1945	  2084	  2115	  2129	  2140	  2510
	  2955	  4016#
INFILP	   515	   545	   547	   566	   609	   714	   948	  1954	  2960	  2963	  2966	  4020#
INFILR	   574	   583	  2113#
INHLD	  3652#	  3774
INLIST	   600	  1246	  2158#
INLSTC	  2180#
INLSTD	  2162	  2171#
INLSTS	  2159#	  2187
INNUM	   542	   546	  1698	  2405#	  2704	  2708
INNUMS	  2406#	  2414
INPPN	   567	   610	   715	   949	  4019#
INQMRK	  2366	  2384#
INTFLG	  3660#	  3769
INWDEV	   719	  2388#	  2655
INWDNX	  2335#	  2339	  2363	  2372	  2373
INWDP	  2334#	  2334	  2368	  2381
INWDSP	  2359	  2373#	  2380
INWINP	   429	  2396#
INWORD	   159	   166	   194	   198	   212	   287	   307	   347	   355	   383	   394	   431	   437	   520
	   528	   538	  1096	  1106	  1110	  1135	  1140	  1241	  1679	  1684	  1690	  1704	  1733	  1739
	  2178	  2186	  2332#	  2658	  2664	  2673	  2695	  2723	  2786	  2789	  2794	  2797	  2802	  2853
	  2863	  2873
INWXCT	   157	   286#	   286	   428	   430	   458	   720	  2335	  2406	  2656
JOBDON	  3575#	  3589	  3594	  3624	  3643
LB	    83#	   540	  2348	  2702	  2962	  2992
LDCHAR	   774	   817	   896	  1048	  2627#	  2627	  2766
LDTM	  3606	  3610#
LEAVE	   338	  1093#
LEAVN	  1095	  1098#
LENERR	  3682#
LF	    76#	    87	   164	   195	   199	   213	   296	   345	   410	   516	   521	   550	   560	   596
	  1094	  1104	  1108	  1120	  1133	  1138	  1188	  1213	  1239	  1244	  1582	  1677	  1685	  1702
	  1706	  2106	  2161	  2299	  2340	  2480	  2660	  2665	  2693	  2721	  2854	  3027
LINE	   722#	   722	  2099	  2100	  2484
LINFND	  2676	  2682#
LOAD8A	  3755#	  3758                                                                                                     SEQ 0149
LOADNX	  3988#	  3992
LOADPG	  3636	  3773	  3936	  3982#
LOADPT	  3985	  3990#
LOADWD	  3984#	  3988
LOKRDI	   637	   647#
LOOKFG	  2981#
LOOKFI	   569	   717	   951	  2950#
LOWCMD	  3603	  3610	  3689#	  3766	  3767	  3899	  3968
LR	  3855#	  3964	  3965	  3966	  3968
LSTADR	  1249#	  1249	  1270	  1280	  1281	  1282	  1286	  1294	  1295	  1296	  1304	  1316	  1327	  1404
	  1409	  1412	  1413	  1415	  1416	  1417
LSTCNT	  1250#	  1250	  1265	  1305	  1396	  1400	  1544
LSTSW	   270#	   270	   371	   965	  1318	  1864
MAGBFL	  2318#	  2320
MAGBUF	   954	  1145	  1259	  2304#
MAGDEV	   163	   172#	   215	   230	   237	   942	  1079	  1088	  1758
MAGDIR	  1268	  1431	  1770#	  1770	  1842
MAGDRE	   277#	   277	  1804
MAGFLS	   164#	   167
MAGINT	   165	   170	   171#	   223	   224	  1762	  1805
MAKE	   331	   504#
MAKNOI	   524	   594#
MCADR	  2213#	  2230
MCCODE	  3702#
MCDATA	  2226#	  2228
MCERR	  2236	  2240	  2246	  2257	  2265	  2274	  2278	  2287	  2289	  2291#	  2296	  2298
MCERR1	  2238	  2295#
MCERRC	  2297#	  2300
MCNVER	     3#	     9	    50	   133
MCSTRT	  3701#	  3837
MEMPAR	  3655#	  3660	  3771
MKCLOS	   980	   983#
MKDIR	   655	   661	   667	   701#
MKEND	   961	   988#
MKFILN	   530	   534#
MKIND	   519	   528#	   533	   549	   559
MKINDD	   517	   522	   552	   562#
MKPPN	   537	   540#
MKRDI	   590	   625#
MKTAPE	   960#	   986
MKTAPW	   979#	   982
MKTERM	   541	   555#
MKWRIT	   978	   981#
MPADR	  3693#	  3799	  3803	  3808	  3815	  3826	  3832	  3836
MPCONT	  3700#	  3829	  3839
MPCTL	  3694#	  3797	  3801	  3805	  3810	  3817	  3828	  3830	  3834	  3838
MPERR	  3654#	  3660	  3771
MPHALT	  3699#
NAMTAB	   572	   615	  3105#
NEWDAT	  1676	  1714	  1751#	  1751
NEWRDI	   653	   672#
NEWVER	  1675	  1697#	  1697	  1701	  1712	  1713
NEXT	  1396#	  1414	  1443	  1539                                                                                     SEQ 0150
NEXTA	  1390#	  1547	  2581
NEXTB	  1391#	  1545
NO1600	   209	   247#
NODEV	  1928	  1937#
NODIR	  1161	  1172#	  1182
NOMAG	   174	   228#
NOMCOD	   673	   998#
NOOP	  3552#
NOOP1	  3553#
NOOPT	  2670	  2678#
NOSWIT	  2653#	  2659
NOTDEN	   204	   242#
NOTFND	   868	   963	  1711	  3006#
NOTMAG	   182	   235#
NOTNUM	  1693	  1726	  2332#	  2332	  2371	  2798	  2803	  2858
NULDEV	  2700	  2739#
NULFIL	   977	   993#
NULMAG	   161	   212#	   214
NUMARG	  1691#	  1705
NUMBER	   342	  1675#
NUMBUF	    97#	  2312	  2317
NUMDAT	  1692	  1724#
NUMFLS	  1702#	  1753
NUMFND	  1703	  1708#
NUMREN	  1715	  1719#
NXM	  3656#	  3660	  3771
ONETIM	   127#	   127	   139
OPENFG	   681	  1149	  1346	  2972#
OPENFI	   565	   608	   713	   947	  2941#
OPI	  3686#
OPTFSH	  1108#	  1111
OPTION	   340	  1103#
OPTRD	  1105	  1109	  1112#
OUTDIG	   794	   797	   802	   804	   820	   823	   826	  1052	  1056	  1060	  2620#	  3043	  3046	  3061
	  3063	  3080	  3082
OUTLCH	  2624#	  2628
OUTLDC	  2621	  2627#
OUTNUM	   776	   780	  2761	  2768	  3041#
OUTWDC	  2635#	  2641
OUTWRD	   456	   783	   788	   849	   887	  2633#	  2775	  2827	  2836	  2848	  3071
P	    69#	   100	   101	   102	   103	   122	   261	  1527	  1902	  1985	  2043	  2495	  2521	  2541
	  2559	  2682	  3601	  3616	  3618	  3633	  3636	  3645	  3736	  3743	  3751	  3761	  3763	  3773
	  3779	  3897	  3909	  3928	  3936	  3962	  3978	  3989
PAGE	   723#	   723	  2091	  2094	  2095	  2486
PARITY	  3549#	  3615	  3619
PDC	  3648#	  3717	  3737	  3757	  3767	  3774	  3778
PDC2	  3649#	  3720	  3721
PDC3	  3650#	  3724	  3725
PERIOD	    85#	   135	   536	   777	   829	   970	  1010	  1323	  1680	  1688	  1691	  1869	  2016	  2086
	  2117	  2131	  2143	  2149	  2171	  2180	  2351	  2512	  2762	  2787	  2799	  2828	  2957	  2988
	  3010	  3021
PERR	  3568#	  3581
PGMST	  3990	  3993#                                                                                                    SEQ 0151
PIP	  3860#	  3959
PLIST	   122	   261	  4036#
PNTDCD	  2443#	  2446
PNTDCO	  2444	  2447#	  2450
PNTDEC	  2096	  2101	  2122	  2137	  2439#
PNTOCT	   134	   137	  1600	  1816	  2418#	  2508	  2530	  2551	  2570	  2604	  2964	  2967	  2994	  2997
PNTOTC	  2423	  2426#	  2430
PNTR	  2219#	  2219	  2225	  2227
PNTSIX	   231	   238	   303	   969	   972	  1009	  1012	  1175	  1322	  1325	  1868	  1871	  1940	  2085
	  2088	  2104	  2116	  2119	  2130	  2133	  2142	  2145	  2148	  2151	  2457#	  2511	  2514	  2944
	  2953	  2956	  2959	  2975	  2984	  2987	  2990	  3009	  3012
PNTSXC	  2460#	  2465
PNTSXX	  2466#
PNTZRO	  2418	  2435#
POS	  1874#	  1910
POSBAK	  1885	  1892#
POSIT	  1169	  1274	  1276	  1390	  1808#	  1808	  1874	  1875	  1883	  1893
POSRWD	  1894	  1908#
POSTAP	  1876	  1882#
PPN	    63#	  1146	  1347	  1930	  1954	  2644	  2991	  2993	  2996
PSHERR	   123	   262	  3015#
QMARK	    82#	  1006
RB	    84#	   548	  2349	  2710	  2968	  2998
RCDSIZ	    96#	   687	   813	  1773	  1776	  2312	  2316	  2318	  2319	  2321	  3639	  3792	  3821	  3823
	  3982
RCERR	  3571#	  3581
RD1	   976	   979	  1368	  1384	  2235	  2239	  2256	  2273	  2288	  2297	  2389	  2518#	  2524	  2782
	  2924	  2928
RD4	  1164	  1184	  1191	  1198	  1202	  1208	  1218	  2538#	  2545
RD4X	  1362	  1376	  2556#	  2563
RDBF4X	  2557	  2562#
RDBUF1	  2519	  2523#
RDBUF4	  2539	  2544#
RDCHAR	   908	  1997	  2022	  2033	  2046	  2065	  2072	  2108	  2397	  2475#	  2499
RDCHRP	  2488	  2493#
RDCHRT	  2483	  2487#
RDCHRX	  2034	  2036	  2037	  2042#
RDDOT	  2017	  2028#
RDDXMC	   695	  2204#
RDEND	  2664#	  2667
RDENDA	  2665#	  2672	  2675	  2681
RDEOF	  2527	  2533#	  2548	  2566
RDEXT	  2033#	  2041
RDF	  3668#	  3791	  3864#	  3968
RDFILN	  2016#	  2026
RDI0	   686	   687	  3584#	  3584
RDIADR	    98#	  3586	  3706
RDIBUF	  3639	  3714	  3792	  3975	  3983	  3995#
RDIDXM	   691	   695#
RDIEND	   686	   687	  3584	  4004#
RDIMC	   698#	   700
RDIWRT	   688#	   690
RDLINE	  2658#	  2661	  2666                                                                                             SEQ 0152
RDNAME	   573	   582	   758	   917	   960	  1995#	  2050
RDNMER	   759	  3002#
RDON	  1996	  2046#
RDONW	   462	  2001	  2048#
RDOPT	  2663	  2670#
RDRH	  3916#	  3937
RDSWIT	   147	  1112	  2644#
RDTM	  3597	  3619#	  3637
RDTYP1	  2055	  2069#
RDTYPE	  2010	  2053#	  2067
READX	  3554#	  3619
RETRY	  3688#
REWD	  3671#
REWIND	   336	  1079#
RHCLR	  3852#	  3902
RHCNO	  3902#	  3914	  3941
RHCTL	  3904	  3949	  3964#
RHDT1	  3904#	  3916	  3942
RHDT2	  3906#	  3918	  3943
RHDT3	  3908#	  3944
RHDT4	  3920#	  3945
RHDT5	  3931#	  3946
RHERR	  3903	  3905	  3907	  3915	  3917	  3919	  3931	  3932	  3954	  3957	  3969#
RHFC	  3906	  3950	  3965#
RHFORW	  3908	  3951	  3966#
RHPNT	  3888	  3939#
RHRDY	  3909	  3928	  3947	  3956#	  3961
RHREAD	  3920	  3953	  3968#
RHST	  3923#	  3940
RHSTAT	  3952	  3956	  3967#
RLINC	  3572#
RSEL	  3692#	  3797	  3799	  3801	  3803	  3805	  3808	  3810	  3815	  3817	  3822	  3824	  3826	  3828
	  3830	  3832	  3834	  3836	  3838
RUNIND	  3651#	  3718	  3722	  3726	  3746
SAVA	   438#	   438	   461
SAVB	  1982	  1990#	  1990
SAVD	  1965#	  1965	  1987
SAVDWD	  2928#	  2933
SAVEXT	  1437#	  1437	  1440
SAVFF	   761#	   761	   900	   957	   984	  1261	  1394
SAVFN	  1436#	  1436	  1439
SAVPNT	  2924#	  2934
SAVREL	   130#	   130	   279	   280
SAVVER	  2749	  2919#
SAVVEX	  2925	  2927	  2929	  2937#
SAVVRF	  2932	  2935#
SCHLST	   144	   145	   146	  1923	  2685	  4026#
SCOLON	    80#	  1593	  2000	  2295	  2784
SELERR	  3679#
SEQERR	  3680#
SETCOM	  2703	  2714#
SETEND	  2692	  2694	  2732#
SETERP	  2706	  2712	  2727#                                                                                            SEQ 0153
SETERR	  2722	  2730	  2733#	  2742
SETPPN	  2699	  2702#
SETSCH	  2688#	  2717
SETSNX	  2692#	  2701	  2711	  2715
SETSRC	  1117	  2685#
SETTMY	  2721#	  2724
SIZ	    67#	  1017	  1152	  1493	  1513	  1529
SKIPCR	   905	   909	   911#
SKIPIN	   904#	   910
SKIPON	   907	   913#
SKIPX	   912	   915#
SLASH	    81#
SNSERR	  3685#
SPACE	    73#	   557	   816	   831	   841	   895	  1007	  1040	  1047	  1065	  1614	  1999	  2024	  2035
	  2054	  2183	  2243	  2357	  2461	  2493	  2635	  2678	  2791	  3035	  3083	  3555#
SPACE1	  3556#	  3615
SPACE2	  3557#
SPACE3	  3558#
SPDX	  3719	  3734#
SPFWDR	  3859#	  3966
SRCH	   339	  1117#
SRTDX	  3712#	  3713
START	   121#	  1099	  4042
STARTA	   153#	   233	   240	  1831
STAT	    59#	   284	   629	   679	   680	   733	   746	   955	  1146	  1148	  1255	  1345	  1918	  2644
	  2650	  3588	  3589	  3594	  3604	  3605	  3613	  3620	  3624	  3626	  3634	  3643	  3717	  3718
	  3721	  3722	  3725	  3726	  3746	  3748	  3769	  3771	  3923	  3924	  3926
STAVL	  3657#	  3660	  3748	  3767	  3774
STDX	  3715	  3717#	  3745	  3768	  3782
STORE	  3670#
STRH	  3869#	  4000
STTM	  3584	  3588#	  3592	  3593	  3612	  3623	  3642	  3972	  3973	  3997
SVTRM	  1964#	  1964	  1986
SWCMD	   356	   361#
SWCMDE	   361	   365#
SWEXIT	   372	   388	   404	   408#
SWGO	   359	   367#
SWGRP	   368	   381#
SWIERR	   433	   435	   441	  2077#
SWINP	   426#	  2003
SWINP1	   445	   458#
SWLIST	   367	   371#
SWPROC	   354#	   409	   556	   602	  1248
SWTYPE	   369	   392#
TAB	    74#	   558	   913	   967	  1196	  1205	  1320	  1866	  2053	  2089	  2185	  2358	  2487	  2679
	  2790
TABADR	  1963#	  1963	  1984
TAPEDC	   179	   206	   220#
TAPEDN	   207	   218#
TAPEI	   158#	  1122
TAPEIN	   343	  1120#
TM	  3866#	  3910	  3929
TMBLK	  3598	  3628#                                                                                                    SEQ 0154
TMC	  3546#	  3615	  3619	  3628
TMC2	  3547#
TMCHN	  3602	  3607	  3609	  3622	  3639#	  3898
TMDEN	   191	   207#
TMDON	  3625	  3634#
TMDTO	  3596	  3611#
TMRDS	  3623#	  3627	  3630
TMS	  3545#	  3588	  3611
TMS2	  3548#
TMSP	  3599	  3615#	  3617
TYPCMD	   395	   416#
TYPCME	   416	   423#
TYPE0	  3678#
TYPGET	  1297#	  1297	  1298	  1301	  1506	  1507	  1509
TYPNBR	   403	   506#	   506	   835	   838	   880	   890	  1232	  1272	  1290	  1300	  1308	  1501	  1508
	  2005	  2071
UNITCK	  3676#
UNITEX	  3677#
UNITNM	  3696#
UNKPNT	  2840	  2843	  2847#
UNLOAD	   337	  1088#
UPDRDI	   663	   668	   674#
VER	    68#	   738	   752	   861	  1357	  1359	  1713	  2758	  2759	  2764	  2801	  2805	  2808	  2811
	  2813	  2817	  2830	  2936
VERDEC	  2809	  2817#
VERE	  2771	  2774#
VERERR	  1331#	  1331	  1371	  1379	  1387
VERIFY	   334	  1227#
VEROUT	  2837	  2849#
VERPNT	  2780#	  2780	  2850	  2890
VERUNK	  2800	  2806	  2839#
VT	    78#	  2481
WAITTM	  3616	  3618	  3633	  3642#	  3644
WCTIN	  2213	  2235#	  2301
WCTWC	  2244	  2249#
WILD	  1398	  1422#	  1422	  1425	  1428
WILDA	  1434	  1456#	  1456	  1466
WILDC	  1433	  1455#	  1455	  1465
WIND	  3565#
WRCHAR	   451	   772	   778	   799	   808	   828	   830	   832	   833	   837	   840	   842	   843	   915
	  1041	  1063	  1066	  1067	  1070	  1071	  1072	  1073	  1166	  1187	  1189	  1197	  1206	  1212
	  1214	  2049	  2595#	  2600	  2624	  2636	  2763	  2829	  3022	  3026	  3028	  3036	  3050	  3068
	  3073	  3084
WRDATE	   785	   898	  3055#
WRDCK	  2259	  2264#
WRDIN	  2216	  2226	  2255#	  2263
WRDIR	   271#	   271	   444	   757	   941	  2048
WRITCR	  3025#
WRITF	   616	   619	   621	  3020#	  3029
WRITFN	  3033#	  3037
WRSIZ1	  1066#	  1074
WRSIZ2	  1044	  1070#
WRSIZE	   899	  1040#                                                                                                    SEQ 0155
WRT2	   689	   693	   699	   763	   847	   884	   894	   924	   934	  1373	  2584#	  2589
WRT4	   981	  2609#	  2614
WRTBF2	   926	  2585	  2588#
WRTBF4	  2610	  2613#
WRTERR	  2591	  2602#	  2617
WRTFNX	  1195	  1201	  3020	  3024	  3032#
WRTLCK	  3577#
WTTM	  3621	  3629	  3633#
ZROVER	  2758	  2772#
.JBFF	    92#	   278	   508	   627	   697	   704	   760	   901	   940	   956	   985	  1260	  1395	  1769
	  1775	  1803	  2158	  2165	  2175	  2204	  2207	  2208	  2218	  2304	  2311	  2314	  2779	  2889
	  2919	  2937
.JBREL	    90#	   129	  2192
.JBSA	    91#	   275	   507	   626	   703	   939

CORE	   281	  2195
DATE	   784	   857                                                                                                     SEQ 0156
EXIT	  1098
GET	   103#	   201	   413	   454	   458	   459	   460	   800	  1014	  1299	  1478	  1479	  1480	  1529
	  1530	  1531	  1532	  1533	  1534	  1602	  1752	  1857	  1858	  1859	  1899	  1900	  1901	  2168
	  2197	  2431	  2432	  2449	  2451	  2452	  2466	  2467	  2580	  2869	  2872	  2889	  2937	  3064
	  3074
GO	   100#	   134	   137	   147	   159	   166	   194	   198	   203	   212	   228	   231	   235	   238
	   242	   247	   272	   287	   289	   298	   303	   307	   347	   349	   355	   357	   383	   385
	   394	   396	   429	   431	   437	   440	   451	   456	   520	   528	   538	   542	   546	   556
	   573	   582	   600	   602	   616	   619	   621	   636	   652	   689	   693	   695	   699	   719
	   735	   749	   758	   763	   772	   776	   778	   780	   783	   785	   788	   794	   797	   799
	   802	   804	   808	   820	   823	   826	   828	   830	   832	   833	   837	   840	   842	   843
	   847	   849	   867	   870	   884	   887	   888	   894	   898	   899	   908	   915	   917	   924
	   926	   934	   954	   960	   962	   969	   972	   976	   979	   981	   989	   993	   998	  1005
	  1009	  1012	  1041	  1052	  1056	  1060	  1063	  1066	  1067	  1070	  1071	  1072	  1073	  1096
	  1106	  1110	  1112	  1117	  1135	  1140	  1144	  1145	  1160	  1164	  1166	  1172	  1175	  1181
	  1184	  1187	  1189	  1191	  1195	  1197	  1198	  1201	  1202	  1206	  1208	  1212	  1214	  1218
	  1241	  1246	  1248	  1258	  1259	  1311	  1314	  1322	  1325	  1334	  1337	  1362	  1364	  1368
	  1373	  1376	  1384	  1386	  1388	  1442	  1459	  1536	  1541	  1549	  1554	  1596	  1600	  1607
	  1619	  1637	  1679	  1684	  1690	  1696	  1698	  1704	  1710	  1729	  1733	  1737	  1739	  1743
	  1774	  1813	  1816	  1820	  1824	  1828	  1868	  1871	  1937	  1940	  1978	  1997	  2010	  2022
	  2033	  2046	  2049	  2065	  2072	  2077	  2082	  2085	  2088	  2096	  2101	  2104	  2108	  2113
	  2116	  2119	  2122	  2127	  2130	  2133	  2137	  2142	  2145	  2148	  2151	  2176	  2178	  2186
	  2199	  2206	  2213	  2216	  2226	  2229	  2235	  2239	  2256	  2273	  2288	  2291	  2297	  2313
	  2366	  2389	  2397	  2506	  2508	  2511	  2514	  2528	  2530	  2549	  2551	  2568	  2570	  2602
	  2604	  2624	  2636	  2655	  2658	  2664	  2673	  2695	  2704	  2708	  2718	  2723	  2727	  2739
	  2749	  2761	  2763	  2768	  2775	  2782	  2786	  2789	  2794	  2797	  2802	  2810	  2812	  2827
	  2829	  2836	  2848	  2853	  2863	  2868	  2873	  2876	  2884	  2924	  2928	  2941	  2944	  2947
	  2950	  2953	  2956	  2959	  2964	  2967	  2972	  2975	  2978	  2981	  2984	  2987	  2990	  2994
	  2997	  3002	  3006	  3009	  3012	  3015	  3020	  3022	  3024	  3026	  3028	  3036	  3043	  3046
	  3050	  3061	  3063	  3068	  3071	  3073	  3080	  3082	  3084
INCHWL	   156	   285
MSTIME	   789	   858
MTBSF.	  1895
MTCHR.	   181
MTDEC.	   177
MTREW.	   953	   988	  1081	  1275	  1764	  1877	  1908
MTSKF.	  1546	  1766	  1806	  1886	  1897
MTUNL.	  1089
OUTCHR	   135	   229	   236	   299	   300	   302	   304	   967	   970	  1006	  1007	  1010	  1320	  1323
	  1866	  1869	  2086	  2089	  2105	  2117	  2131	  2143	  2149	  2427	  2435	  2448	  2462	  2512
	  2954	  2957	  2962	  2965	  2968	  2985	  2988	  2992	  2995	  2998	  3010
OUTSTR	   132	   138	   154	   193	   232	   239	   244	   249	   274	   350	   604	   677	   707	   945
	   973	   991	   995	  1001	  1013	  1114	  1173	  1176	  1326	  1538	  1543	  1551	  1556	  1597
	  1601	  1603	  1608	  1620	  1638	  1720	  1814	  1817	  1821	  1825	  1830	  1872	  1938	  1941
	  2078	  2083	  2093	  2098	  2102	  2114	  2120	  2124	  2128	  2135	  2138	  2146	  2152	  2200
	  2292	  2507	  2509	  2529	  2550	  2569	  2571	  2603	  2720	  2729	  2741	  2942	  2948	  2951
	  2973	  2979	  2982	  3003	  3007	  3016	  3117
PRINT	   106#	   131	   153	   193	   232	   239	   243	   248	   273	   350	   603	   676	   706	   944
	   990	   994	   999	  1013	  1113	  1173	  1176	  1537	  1542	  1550	  1555	  1597	  1601	  1608
	  1620	  1638	  1720	  1814	  1817	  1821	  1825	  1829	  1938	  2078	  2083	  2093	  2098	  2114
	  2120	  2123	  2128	  2134	  2138	  2146	  2200	  2292	  2507	  2509	  2529	  2550	  2569	  2603
	  2719	  2728	  2740	  2942	  2948	  2951	  2973	  2979	  2982	  3003	  3007	  3016
PTITL	     7#	     9                                                                                                     SEQ 0157
PUT	   102#	   124	   125	   197	   263	   264	   354	   426	   427	   428	   447	   792	  1004	  1293
	  1451	  1452	  1453	  1488	  1489	  1490	  1491	  1492	  1493	  1598	  1742	  1838	  1839	  1840
	  2163	  2194	  2419	  2420	  2439	  2440	  2441	  2445	  2457	  2458	  2779	  2866	  2919	  3056
	  3066
RESET	   121	  1093
RTN	   101#	   256	   414	  1015	  1022	  1068	  1481	  1535	  1552	  1557	  1573	  1578	  1585	  1605
	  1761	  1810	  1860	  1903	  1946	  1950	  1953	  1956	  1988	  1992	  1998	  2044	  2047	  2074
	  2169	  2193	  2198	  2231	  2267	  2290	  2323	  2342	  2344	  2347	  2350	  2353	  2356	  2374
	  2386	  2392	  2400	  2409	  2411	  2433	  2436	  2453	  2468	  2496	  2504	  2522	  2534	  2542
	  2560	  2587	  2598	  2612	  2625	  2629	  2638	  2651	  2653	  2668	  2737	  2776	  2892	  2906
	  2916	  2938	  3030	  3038	  3052	  3085
TAPOP.	   104#	   187	   208