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