*DECK LP1 
*** LP1 - 512 PRINTER DIAGNOSTIC
*** LP1 - EXTERNAL DOCUMENTATION
* 
* 
**
*   LP1 - 512 PRINTER DIAGONSTIC. 
* 
* 
* 
*   AUTHOR - D. LEANE            OCTOBER , 1979 
*            CE. SAGADP 
*            ADELAIDE AUST. 2272110 
* 
*   REVISED - R.V.SCHORNSTEIN    MARCH , 1980 
* 
* 
*   COPYRIGHT CONTROL DATA CORP. 1979 
*   COPYRIGHT CONTROL DATA CORP. 1980 
* 
* 
* 
*** 1.0        OVERVIEW - LP1 
* 
**
* 
*   1.0        OVERVIEW 
*              -------- 
* 
*              *LP1* IS A 512 PRINTER DIAGNOSTIC BASED ON THE PP COMPASS
*              ON LINE DIAGNOSTIC *LP1*. IT IS WRITTEN IN *MALET* LANGU-
*              AGE. IT RUNS ON THE 512 TRAIN PRINTER. IT SUPPORTS TRAIN 
*              ARRAY TYPES, 595-1 (63 CHARACTER ARRAY), 595-2 (48 CHAR- 
*              ACTER *AN* ARRAY), 595-3 (48 CHARACTER *HN* ARRAY), AND
*              595-6 (96 CHARACTER EXTENDED ARRAY). 
*              DIAGNOSTIC *LP1* REPLACES THE PP COMPASS DIAGNOSTIC
*              *LP1* (RUNNING UNDER *KEDIAG/CEDIAG*)
* 
* 
* 
* 
*** 1.1        RESTRICTIONS.
* 
**
* 
*   1.1        RESTRICTIONS.
*              -------------
* 
*   NOTES - 1. RUN LP124 MUST BE ENTERED FIRST IF TRAIN IMAGE 
*              MEMORY HAS NOT BEEN INITIALIZED. 
*           2. ACCESS LEVEL 10 IS REQUIRED FOR MODULES
*               15, 20-23.
*           3. THE MESSAGE -LC*DEC EC*DEC ST*OCT- IS POSTED 
*              BY ALL MODULES TO INDICATE A -WAITING FOR
*              READY NOT BUSY- STATE. THE LOOP (LC) AND ERROR (EC)
*              COUNTS WILL BE INCREMENTED WHERE SCOPE LOOPS ARE 
*              APPROPRIATE. 
*           4. MODULES (04,05,06,07,09,10,14,24) OF LP1 WILL ISOLATE
*              THE FAILING COLUMN NUMBER AND FAILING CHARACTER OF 
*              A PRINT ERROR. 
* 
* 
* 
*   THE PAPER IN THE PRINTER ON WHICH *LP1* IS TO BE EXECUTED SHOULD BE 
*   MANUALLY POSITIONED AFTER A PAGE EJECT. THIS INITIAL POSITIONING IS 
*   NECESSARY FOR THE PRINTOUT TO START ON A FRESH PAGE AND THE PAGE
*   EJECT ASSURES THAT THE PRINTER IS POSITIONED AT A 6/8 LINE COINCI 
*   DENT POINT. THE PRINTER SHOULD BE IN A START MODE AND LOGICALLY 
*   OFF TO THE SYSTEM BEFORE *LP1* CAN BE RUN.
* 
* 
* 
* 
*** 2.0        RUN PARAMETERS.
* 
**
* 
*   2.0        RUN PARAMETERS.
*              ---------------
* 
* 
**  2.1        PARAMETERS.
* 
* 
**
* 
*   2.1        PARAMETERS.
*              -----------
* 
* 
*         P0 - TRAIN ARRAY TYPE.  NUMBERS 1,2,3, AND 6 ARE USED FOR 
*              TRAIN ARRAY TYPES 595-1,595-2,595-3 AND 595-6. 
*              IF P0 CONTAINS ZERO, TRAIN TYPE 1 IS ASSUMED.
* 
*         P1 - STARTING CODE FOR *FULL LINES OF CHARACTERS* SECTION.
*              ZERO VALUE IMPLIES ZERO CHARACTER (EG,60B FOR TRAIN 6).
* 
*         P2 - RANDOM SEED VALUE FOR *RANDOM PRINT* SECTION.
*              IF A ZERO VALUE IS ENTERED, THE REAL TIME CLOCK WILL 
*              BE USED AS THE STARTING SEED.
* 
*         P7 - PRINT LINE COUNT FOR *BURST SPEED TEST* SECTION. 
*              IF A NONZERO VALUE IS ENTERED, BURST SPEED PRINTING
*              CONTINUES UNTIL THAT NUMBER OF LINES HAS BEEN PRINTED. 
*              IF A ZERO VALUE IS ENTERED, 240 LINES ARE PRINTED. 
* 
* 
* 
*   2.2        RUN EXAMPLES.
**
*   2.2        RUN EXAMPLES.
*              -------------
* 
*              RUN CONFIDENCE LEVEL TEST SERIES 00-15.
*                 RUN LP1 
* 
*              RUN FUNCTIONAL LEVEL TEST SERIES 20-47.
*                RUN LP120
* 
*              RUN SELECTED TESTS ONLY. 
*                RUN LP1(07,10,05, ...  ) 
* 
* 
* 
* 
* 
* 
*** 3.0        PROGRAM DESCRIPTION
* 
**
* 
*   3.0        PROGRAM DESCRIPTION
*              -------------------
* 
*   3.1        MODULE DESCRIPTIONS
* 
**
* 
*   3.1        MODULE DESCRIPTIONS
*              -------------------
* 
* 
*         LP1 IS COMPOSED OF THREE GROUPS OF MODULES: 
*                A) CONFIDENCE LEVEL TESTS WHICH TEST THE CAPABILITY OF THE 
*              UNIT TO PERFORM IN A CUSTOMER ENVIRONMENT, YET PROVIDES
*              CONTROLLED PATTERNS WHICH WILL DEMONSTRATE PRINT QUALITY 
*              AND THUS PROVIDE OPPORTUNITY FOR CORRECTIVE ADJUSTMENTS. 
*              NO SCOPING LOOPS ARE PROVIDED AT THIS LEVEL OF TESTING.
*                B) FUNCTIONAL LEVEL TESTS ARE DESIGNED TO TEST A MORE
*              SELECTED AREA OF THE 512 HARDWARE AND PROVIDE FAILURE
*              EXERCISING CAPABILITY TO FACILIATE REPAIRS.
*              SCOPING LOOPS ARE PROVIDED TO ENABLE PROBLEM REPAIR. 
*                C) SPECIAL PURPOSE MODULE 50 WHICH IS USED TO EXERCISE 
*              THE PRINTER AT A HIGH PRINT SPEED. 
* 
* 
* 
*** 3.1.1      CONFIDENCE LEVEL MODULES 
* 
**
* 
*   3.1.1      CONFIDENCE LEVEL MODULES 
*              ------------------------ 
*                     (NO SCOPE LOOPS SUPPORTED)
* 
*          LP100 - TRAIN CHECK
* 
*          LP101 - IMAGE CHECK
* 
*          LP102 - RIPPLE PATTERN LEFT
* 
*          LP103 - RIPPLE PATTERN RIGHT 
* 
*          LP104 - SPACE-ZERO PATTERN 
* 
*          LP105 - M-W PATTERN
* 
*          LP106 - FULL LINES OF CHARACTERS 
* 
*          LP107 - VARIABLE LENGTH LINES
* 
*          LP108 - DEPICT SUBSCANS
* 
*          LP109 - WORST PATTERN
* 
*          LP110 - EXTENDED ARRAY TEST
* 
*          LP111 - BUFFER MEMORY TEST 
* 
*          LP112 - IMAGE MEMORY AND TRAIN CHECK 
* 
*          LP113 - PRINT ZERO IN COLUMN 1 
* 
*          LP114 - RANDOM PRINT 
* 
*          LP115 - PRINT WHILE BUSY 
* 
*** 3.1.2      FUNCTIONAL LEVEL MODULES 
* 
**
* 
*   3.1.2      FUNCTIONAL LEVEL MODULES 
*              ---------------------- 
*                  (SCOPE LOOPS AVAILABLE)
* 
* 
*          LP120 - CONNECT AND STATUS CHECK 
* 
*          LP121 - CHECK TRANSMISSION PATH
* 
*          LP122 - CHECK LEGAL FUNCTIONS
* 
*          LP123 - CHECK ILLEGAL FUNCTIONS
* 
*          LP124 - LOAD TRAIN ARRAY MEMORY
* 
*          LP132 - CHECK RNB INT - PART 1 
* 
*          LP133 - CHECK RNB INT - PART 2 
* 
*          LP134 - CHECK RNB INT - PART 3 
* 
*          LP135 - CHECK EOP INT - PART 1 
* 
*          LP136 - CHECK EOP INT - PART 2 
* 
*          LP137 - CHECK EOP INT - PART 3 
* 
*          LP138 - CHECK ABN EOP INT
* 
*          LP140 - CHECK SUPPRESS SPACE FUNCTION
* 
*          LP141 - CHECK COINCIDENT POINTS AND FORMAT LEVEL 9 
* 
*          LP142 - CHECK PAGE EJECT AND ADVANCE TO LAST LINE FUNCTIONS
* 
*          LP143 - CHECK AUTO PAGE EJECT
* 
*          LP144 - CHECK SINGLE SPACE OPERATION 
* 
*          LP145 - CHECK DOUBLE SPACE OPERATION 
* 
*          LP146 - CHECK POSTPRINT FORMAT SPACING 
* 
*          LP147 - CHECK PREPRINT FORMAT SPACING
* 
* 
*** 3.1.3      SPECIAL MODULES
* 
**
* 
*   3.1.3      SPECIAL MODULES
*              -------------
* 
* 
*          LP150 - BURST SPEED TEST 
* 
* 
* 
*** 3.2        ERROR PROCESSING 
* 
**
* 
*   3.2        ERROR PROCESSING 
*              ---------------- 
* 
*         A SAMPLE ERROR INDICATION FOLLOWS_
* 
* 
*         LP1XX ERROR CODE 0104 AT LINE 0037
* 
*         SELECTED READY-AND-NOT-BUSY INTERRUPT 
*         DURING A PRINT OPERATION. EXPECTED INT. 
* 
*         ACTUAL STATUS = 4003, EXPECTED = 4201 
* 
*         UNEXPECTED STATUS BIT 0001
*         ----------1- BUSY 
*         MISSING STATUS BIT 0007 
*         ----1------- READY-NOT-BUSY INTERRUPT 
* 
*         CH=*OCT, EQ=*OCT, UN=*OCT, LF=*OCT, DC=*OCT 
*         ERRCNT=*OCT, WDCNT=*OCT, WDS XMITTED=*OCT 
*         668X STATUS=*OCT, PRINTER STATUS=*OCT 
*         . . . . . . . . . . . . . . . . . . . . . . 
* 
* 
* 
* 
*** 4.0        LP1 ABBREVIATIONS
* 
**
* 
*   4.0        LP1 ABBREVIATIONS
*              -----------------
*         APPROPRIATE VALUES ARE INSERTED FOR *OCT. 
* 
* 
*   ABBREVIATIONS 
* 
*         ABN         ABNORMAL
*         BFR         BUFFER
*         CALC        CALCULATE 
*         CH          CHANNEL 
*         CHAR        CHARACTER 
*         COINC       COINCIDENT
*         DC          DEVICE CODE 
*         DISPL       DISPLAY 
*         EOP         END OF OPERATION
*         EQ          EQUIPMENT 
*         ERR         ERROR 
*         ERCNT       ERROR COUNT 
*         ERRCNT      ERROR COUNT 
*         FCN         FUNCTION
*         INIT        INITIALIZE
*         INT         INTERRUPT 
*         LC          LOOP COUNT
*         LF          LAST FUNCTION 
*         LP          512 LINE PRINTER
*         LPI         LINES PER INCH
*         MAINT       MAINTENANCE 
*         MSG         MESSAGE 
*         REG         REGULAR 
*         RNB         READY AND NOT BUSY
*         STAT        STATUS
*         UN          UNIT
*         W/          WITH
*         WDCNT       WORD COUNT
*         WDS XMITTED WORDS TRANSMITTED 
* 
* 
* 
* 
*** 5.0        APPLICABLE DOCUMENTS.
* 
**
* 
*   5.0        APPLICABLE DOCUMENTS.
*              ---------------------
* 
*              MALET REFERENCE MANUAL ...  60456020 
*              CONCURRENT MAINTERENCE REF.MAN. ...  60454980
* 
* 
* 
* 
*  *********************************************************
*  *********************************************************
   MODULE LP100 580(22),LOCK
*** LP100 - TRAIN POSITION CHECK
* 
**
* 
*   LP100 - TRAIN POSITION CHECK
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP100* PRINTS ALL 288 TRAIN POSITIONS
*                             IN 48 CHARACTER PRINT ROWS
* 
* 
* 
*   DESCRIPTION - TRAIN CHECK 
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  CLEAR FORMAT SELECTION
*         3.  SELECT 8 LINES PER INCH 
*         4.  IF TRAIN TYPE 6 SELECT EXTENDED ARRAY 
*         5.  PAGE EJECT
*         6.  PRINT TRAIN CHECK HEADING 
*         7.  CONNECT AND CHECK STATUS
*         8.  BUILD TRAIN IMAGE DATA (ALL CHARACTERS UNIQUE)
*         9.  SELECT EXTENDED ARRAY 
*         10. FILL TRAIN IMAGE
*         11. PRINT 48 CHARACTER BUFFER 
*         12. WAIT FOR NOT BUSY STATUS
*         13. GO TO STEP 11 FOR 12 PRINT LINES
*         14. RESTORE TRAIN IMAGE 
*         15. REPEAT FROM STEP 1 IF REPEAT MODULE CONDITION 
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON RESERVE
*         2.  ABORT ON SELECT 
*         3.   ABORT ON PRINT 
*         4.   ABORT ON WAITNB
*         5.   ABORT ON EJECT 
*         6.   ABORT ON FILL
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.   ABORT ON (PRINT) AT LINE *OCT
*         4.   ABORT ON (WAITNB) AT LINE *OCT 
*         5.   ABORT ON (EJECT) AT LINE *OCT
*         6.   ABORT ON (FILL) AT LINE *OCT 
* 
* 
*** LP100 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
*         LP198D - GENERATE TRAIN IMAGE DATA
* 
* 
************************************************************
/---------THIS MODULE PRINTS AN EXACT TRAIN ARRAY 
1  FORMAT LP100 TRAIN CHECK TYPE -*OCT
2  FORMAT LP100 LC*DEC EC*DEC ST*OCT
3  FORMAT LP100 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP100 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP100 ABORT ON (PRINT) AT LINE *OCT 
7  FORMAT LP100 ABORT ON (WAITNB) AT LINE *OCT
11 FORMAT LP100 ABORT ON (EJECT) AT LINE *OCT 
12 FORMAT LP100 ABORT ON (FILL) AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP100
* 
*   CHARACTER CODE FOR TRAIN TYPES 1 THRU 3 
* 
*   OB(1) - OB(6) CHARACTER CODE FOR *TRAIN CHECK*
* 
*   CHARACTER CODE FOR TRAIN TYPE 6 
* 
*   OB(7) - OB(21) CHARACTER CODE FOR *TRAIN CHECK* 
* 
   DATA(OB(1),CON)6351,2131,4560,2330,2523,4260,124,122,101,
  ,111,116,40,103,110,105,103,113 
20 MSG 1 (P0) TO PRINT
21 MSG 1 (P0) TO DISPLAY
22 GOSUB 60 
   B4=4 
   SELECT CLREXT,ABT 74 
   SELECT CLEAR,ABT 74
   SELECT 8LPI,ABT 74 
   WC=6 
   BA=1 
   IF(P0.NE.6) GOTO 23       *IF NOT TRAIN TYPE 6 
   WC=13
   BA=7 
   SELECT EXTENDED,ABT 74 
23 B4=11
   EJECT,ABT 74 
   B4=6 
   PRINT,ABT 74 
   B4=7 
   WAITNB,ABT 74
24 GOSUB 60 
   B0=0 
   B1=0 
25 OB(B0)=B1                 *STORE TRAIN IMAGE CHARACTER 
   GOTO 26 WHILE (B1+1.NE.40)  *SKIP BLANK CODE 
   B1=B1+1
26 GOTO 25 WHILE (B0+1.LT.288D)  *BUILD WHOLE TRAIN IMAGE 
   B4=4 
   SELECT EXTENDED,ABT 74 
   B4=12
   FILL IMAGE ,ABT 74 
   B4=7 
   WAITNB,ABT 74
   B0=0 
   B1=0 
30 WC=60
   B4=6 
   PRINT WC WORDS FROM OB(B0),ABT 74  *PRINT 48 CHAR BFR
   B4=7 
   B0=B0+60                  *BUMP BFR COUNT
   WAITNB,ABT 74
   GOTO 30 WHILE (B1+1.LT.6)  *OUTPUT 6 LINES 
   IF( B1.GT.6) GOTO 31      *IF LINES OUTPUT IS NOT 6
   B0=0 
31 GOTO 30 WHILE (B1+1.LT.18D)  *OUTPUT 6 LINES 
32 CALL 98D                  *GET TRAIN IMAGE 
34 GOSUB 60                  *CONNECT 
   B4=12
   FILL IMAGE,ABT 74
   IF(P0.EQ.6)GOTO 54        *IF TRAIN TYPE 6 
   B4=4 
   SELECT CLREXT,ABT 74 
/---------EXIT SEQUENCE 
54 B6=B6+1                   *INCREMENT LOOP COUNTER
   IF(ES.AND.RM.NE.0) GOTO 21   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 (P0) TO DISPLAY     *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 22        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE         -LP1 MODULE 00 - TRAIN POSITION CHECK 
*  *********************************************************
*  *********************************************************
   MODULE LP101 580(22),LOCK   -LP1 MODULE 01 - IMAGE CHECK 
*** LP101 - IMAGE CHECK 
* 
**
* 
*   LP101 - IMAGE CHECK 
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP101* PRINTS ALL 288 IMAGE
*              CHARACTERS IN 48 CHARACTER PRINT ROWS
* 
* 
* 
*   DESCRIPTION - IMAGE CHECK 
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  CLEAR FORMAT SELECTION
*         3.  SELECT 8 LINES PER INCH 
*         4.  IF TRAIN TYPE 6 SELECT EXTENDED ARRAY 
*         5.  PRINT *IMAGE CHECK* HEADING 
*         6.  WAIT NOT BUSY STATUS
*         7.  LOAD TRAIN IMAGE BUFFER 
*         8.  CONNECT AND STATUS
*         9.  IF TRAIN TYPE 1 THRU 3 PACK TRAIN IMAGE DATA
*         10. SELECT CLEAR EXTENDED IF NOT TRAIN TYPE 6 
*         11. PRINT 48 CHARACTER BUFFER 
*         12. WAIT NOT BUSY STATUS
*         13. GO TO STEP 10 FOR 12 PRINT LINES
*         14. REPEAT FORM STEP 1 IF REPEAT MODULE CONDITION 
* 
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON RESERVE
*         2.  ABORT ON SELECT 
*         3.   ABORT ON PRINT 
*         4.   ABORT ON WAITNB
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.   ABORT ON (PRINT) AT LINE *OCT
*         4.   ABORT ON (WAITNB) AT LINE *OCT 
* 
* 
*** LP101 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
*         LP198D - GENERATE TRAIN IMAGE DATA
* 
* 
* 
************************************************************
/--------- THIS MODULE PRINTS THE IMAGE BUFFER
1  FORMAT LP101 IMAGE CHECK TYPE -*OCT
2  FORMAT LP101 LC*DEC EC*DEC ST*OCT
3  FORMAT LP101 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP101 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP101 ABORT ON (PRINT) AT LINE *OCT 
7  FORMAT LP101 ABORT ON (WAITNB) AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP101
* 
*   CHARACTER CODES FOR TRAIN TYPES 1 THRU 3
* 
*   OB(1) - OB(6) CHARACTER CODE FOR *IMAGE CHECK*
* 
*   CHARACTER CODE FOR TRAIN TYPE 6 
* 
*   OB(7) - OB(21) CHARACTER CODE FOR *IMAGE CHECK* 
* 
   DATA(OB(1),CON)3144,2127,2560,2330,2523,4260,111,115,101,
  ,107,105,40,103,110,105,103,113 
20 MSG 1 (P0) TO PRINT
21 MSG 1 (P0) TO DISPLAY
22 GOSUB 60                  *CONNECT 
   B4=4 
   SELECT CLEAR,ABT 74
   SELECT 8LPI,ABT 74 
   WC=6 
   BA=1 
   IF(P0.NE.6)GOTO 23 
   WC=13
   BA=7 
   SELECT EXTENDED,ABT 74 
23 B4=6 
   PRINT,ABT 74              *PRINT HEADING 
   B4=7 
   WAITNB,ABT 74
   CALL 98D                  *RESTORE IMAGE BFR 
24 GOSUB 60                  *CONNECT 
   IF(P0.EQ.6)GOTO 27 
   B0=0 
   B1=0 
26 OB(B1)=OB(B0) LS 6 OR OB(B0+1) 
   B0=B0+2
   GOTO 26 WHILE(B1+1.LT.220) 
   B4=4 
   SELECT CLREXT,ABT 74 
27 B1=0 
30 B0=0 
32 WC=60
   B2=60
   IF(P0.EQ.6)GOTO 34        *TRAIN TYPE 6
   WC=30
   B2=30
34 B4=6 
   PRINT WC WORDS FROM OB(B0),ABT 74  *PRINT 48 CHAR BFR
   B4=7 
   WAITNB,ABT 74
   B0=B0+B2 
   GOTO 32 WHILE (B1+1.LT.6)
   IF(B1.EQ.6)GOTO 30 
   GOTO 32 WHILE (B1+1.LT.17D)
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 21   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 (P0) TO DISPLAY     *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 22        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 01 - IMAGE CHECK
*  *********************************************************
*  *********************************************************
   MODULE LP102 580(22),LOCK
*** LP102 - RIPPLE PATTERN LEFT 
* 
**
* 
*   LP102 - RIPPLE PATTERN LEFT 
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP102* PRINTS ALL CHARACTERS IN ALL PRINT
*              POSITIONS. 
* 
* 
* 
* 
*   DESCRIPTION - RIPPLE PATTERN LEFT 
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  CLEAR FORMAT SELECTION
*         3.  IF TRAIN TYPE 6 , SELECT EXTENDED ARRAY 
*         4.  SELECT 8 LINES PER INCH 
*         5.  PAGE EJECT
*         6.  PAGE EJECT
*         7.  PRINT COLUMN NUMBERS
*         8.  CONNECT AND CHECK STATUS
*         9.  SELECT ABNORMAL E-O-P INTERRUPT 
*         10. SELECT E-O-P INTERRUPT
*         11. PRINT RIPPLE PATTERN
*         12. SELECT READY-AND-NOT-BUSY INTERRUPT 
*         13. VERIFY STATUS IS READY AND BUSY 
*         14. WAIT NOT BUSY 
*         15. CALCULATE EXPECTED COINCIDENT STATUS
*         16. VERIFY COINCIDENT STATUS AS EXPECTED
*         17. VERIFY E-O-P AND R-N-B INTERRUPT
*         18. SHIFT PATTERN LEFT ONE CHARACTER
*         19. REPEAT FROM STEP 8 UNTIL LAST LINE STATUS OR 88 LINES 
*         20. SELECT 6 LINES PER INCH 
*         21. REPEAT FROM STEP 6 ONCE 
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON RESERVE
*         2.  ABORT ON SELECT 
*         3.  ABORT ON STATUS 
*         4.  ABORT ON PRINT
*         5.  ABORT ON EJECT
*         6.  SELECTED RNBINT AFTER INITIATING A PRINT. 
*             EXPECT READY,BUSY AND NO INTERRUPT. (123) 
*         7.  MISSING COINCIDENT STATUS (125) 
*         8.  UNEXPECTED COINCIDENT STATUS (126)
*         9.  UNEXPECTED STATUS AFTER PRINT WITH END-OF-OPERATION 
*             AND READY-NOT-BUSY INTERRUPTS SELECTED (127)
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (STATUS) AT LINE *OCT
*         4.  ABORT ON (PRINT) AT LINE *OCT 
*         5.  ABORT ON (EJECT) AT LINE *OCT 
*         6.  SELECTED RNBINT AFTER INITIATING A PRINT. 
*             EXPECT READY,BUSY AND NO INTERRUPT. 
*         7.  EXPECTED COINCIDENT STATUS
*         8.  EXPECTED NO COINCIDENT STATUS 
*         9.  EXECUTED PRINT WITH END-OF-OPERATION
*             AND READY-NOT-BUSY INTERRUPTS SELECTED. 
* 
* 
*** LP102 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
*         LP198B - GENERATE RIPPLE PATTERN
*         LP198C - GENERATE COLUMN NUMBERS
* 
* 
**********************************************************************
/---------THIS MODULE PRINTS A RIPPLE PATTERN 
1  FORMAT LP102 RIPPLE PATTERN LEFT 
2  FORMAT LP102 LC*DEC EC*DEC ST*OCT
3  FORMAT LP102 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP102 ABORT ON (SELECT) AT LINE *OCT
5  FORMAT LP102 ABORT ON (STATUS) AT LINE *OCT
6  FORMAT LP102 ABORT ON (PRINT) AT LINE *OCT 
11 FORMAT LP102 ABORT ON (EJECT) AT LINE *OCT 
15 FORMAT LP102 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP102
20 MSG 1 TO PRINT 
22 MSG 1 TO DISPLAY 
   B3=4                      *SET NO. OF LINES/COINC. 
24 GOSUB 60                  *CONNECT 
   B4=4 
   SELECT CLEAR,ABT 74
   IF(P0.NE.6)GOTO 26 
   SELECT EXTENDED,ABT 74 
26 SELECT 8LPI,ABT 74 
   B4=11
   EJECT,ABT 74 
30 CALL 98C                  *GENERATE PAGE HEADING DATA
   GOSUB 60 
   B4=11
   EJECT,ABT 74              *TOP OF FORM 
   B4=6 
   PRINT,ABT 74              *PRINT COLUMN NUMBERS
   CALL 98B                  *GENERATE RIPPLE PATTERN 
   IF(B3.EQ.4)GOTO 31       *IF 8 LPI 
   B2=B2-1                   *6 LPI IS ONE LINE OFF 
31 B0=0 
   IF(B3.NE.4)GOTO 32        *IF 6LPI 
   B2=B2+2
32 GOSUB 60 
   B4=4 
   SELECT AEOPINT,ABT 74
   SELECT EOPINT,ABT 74 
   B4=6 
   PRINT,ABT 74 
   B4=4 
   SELECT RNBINT,ABT 74 
   B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.3717.NE.103)ERROR 15/123,GOSUB 71 
   B1=0 
34 B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.2.EQ.0)GOTO 35  *IF NOT BUSY
   DELAY 100 MSEC 
   GOTO 34 WHILE (B1+1.LE.20)   *WAIT FOR NOT BUSY
   ERROR 15/100 GOSUB 71        *IF STILL BUSY
35 B2=B2+1
   IF(B2.LT.B3)GOTO 36       *IF NO COINCIDENT EXPECTED 
   IF(SB(1).AND.4000.NE.0)GOTO 40  *IF COINCIDENT STATUS
   ERROR 15/125,GOSUB 71     *MISSING COINCIDENT STATUS 
   GOTO 37
36 IF(SB(1).AND.4000.EQ.0)GOTO 42  *IF NO COINCIDENT STATUS 
   ERROR 15/126,GOSUB 71     *UNEXPECTED COINCIDENT STATUS
37 B2=0                      *GET IN SYNC WITH PRINTER
   GOTO 44
40 B2=0                      *GET IN SYNC WITH PRINTER
42 IF(SB(1).AND.3717.NE.601)ERROR 15/127,GOSUB 71  *NO INT
44 IF(SB(1).AND.20.NE.0)GOTO 50  *END IF LAST LINE STATUS 
   B4=OB(0) 
   SHIFT OB(1) LEFT FOR B4
   IF(P0.NE.6)GOTO 46 
   SHIFT OB(1) LEFT FOR B4
46 GOTO 32 WHILE (B0+1.LT.130)
50 IF(B3.NE.4)GOTO 54 
   B3=3                      *SET NO. OF LINES/COINC. 
   B4=4 
   SELECT 6LPI,ABT 74 
   GOTO 30
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 22   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 02 - RIPPLE PATTERN LEFT
*  *********************************************************
*  *********************************************************
   MODULE LP103 580(22),LOCK
*** LP103 - RIPPLE PATTERN RIGHT
* 
**
* 
*   LP103 - RIPPLE PATTERN RIGHT
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP103* PRINTS ALL CHARACTERS IN ALL PRINT
*              POSITIONS. 
* 
* 
* 
* 
*   DESCRIPTION - RIPPLE PATTERN RIGHT
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  CLEAR FORMAT SELECTION
*         3.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         4.  SELECT 8 LINES PER INCH 
*         5.  PAGE EJECT
*         6.  PAGE EJECT
*         7.  PRINT COLUMN NUMBERS
*         8.  CONNECT AND CHECK STATUS
*         9.  SELECT ABNORMAL E-O-P INTERRUPT 
*         10. SELECT E-O-P INTERRUPT
*         11. PRINT RIPPLE PATTERN
*         12. SELECT READY-AND-NOT-BUSY INTERRUPT 
*         13. VERIFY STATUS IS READY AND BUSY 
*         14. WAIT NOT BUSY 
*         15. CALCULATE EXPECTED COINCIDENT STATUS
*         16. VERIFY COINCIDENT STATUS AS EXPECTED
*         17. VERIFY E-O-P AND R-N-B INTERRUPT
*         18. SHIFT PATTERN RIGHT ONE CHARACTER 
*         19. REPEAT FROM STEP 8 UNTIL LAST LINE STATUS OR 88 LINES 
*         20. SELECT 6 LINES PER INCH 
*         21. REPEAT FROM STEP 6 ONCE 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON RESERVE
*         2.  ABORT ON SELECT 
*         3.  ABORT ON STATUS 
*         4.  ABORT ON PRINT
*         5.  ABORT ON EJECT
*         6.  SELECTED RNBINT AFTER INITIATING A PRINT. 
*             EXPECT READY,BUSY AND NO INTERRUPT. (123) 
*         7.  MISSING COINCIDENT STATUS (125) 
*         8.  UNEXPECTED COINCIDENT STATUS (126)
*         9.  UNEXPECTED STATUS AFTER PRINT WITH END-OF-OPERATION 
*             AND READY-NOT-BUSY INTERRUPTS SELECTED (127)
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (STATUS) AT LINE *OCT
*         4.  ABORT ON (PRINT) AT LINE *OCT 
*         5.  ABORT ON (EJECT) AT LINE *OCT 
*         6.  SELECTED RNBINT AFTER INITIATING A PRINT. 
*             EXPECT READY,BUSY AND NO INTERRUPT. 
*         7.  EXPECTED COINCIDENT STATUS
*         8.  EXPECTED NO COINCIDENT STATUS 
*         9.  EXECUTED PRINT WITH END-OF-OPERATION
*             AND READY-NOT-BUSY INTERRUPTS SELECTED. 
* 
*** LP103 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
*         LP198B - GENERATE RIPPLE PATTERN
*         LP198C - GENERATE COLUMN NUMBERS
* 
* 
**********************************************************************
/---------THIS MODULE PRINTS A RIPPLE PATTERN 
1  FORMAT LP103 RIPPLE PATTERN RIGHT
2  FORMAT LP103 LC*DEC EC*DEC ST*OCT
3  FORMAT LP103 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP103 ABORT ON (SELECT) AT LINE *OCT
5  FORMAT LP103 ABORT ON (STATUS) AT LINE *OCT
6  FORMAT LP103 ABORT ON (PRINT) AT LINE *OCT 
11 FORMAT LP103 ABORT ON (EJECT) AT LINE *OCT 
15 FORMAT LP103 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP103
20 MSG 1 TO PRINT 
22 MSG 1 TO DISPLAY 
   B3=4                      *SET NO. OF LINES/COINC. 
24 GOSUB 60                  *CONNECT 
   B4=4 
   SELECT CLEAR,ABT 74
   IF(P0.NE.6)GOTO 26 
   SELECT EXTENDED,ABT 74 
26 SELECT 8LPI,ABT 74 
   B4=11
   EJECT,ABT 74 
30 CALL 98C                  *GENERATE PAGE HEADING DATA
   GOSUB 60 
   B4=11
   EJECT,ABT 74              *TOP OF FORM 
   B4=6 
   PRINT,ABT 74              *PRINT COLUMN NUMBERS
   CALL 98B                  *GENERATE RIPPLE PATTERN 
   IF(B3.EQ.4)GOTO 31        *IF 8 LPI
   B2=B2-1                   *6 LPI IS ONE LINE OFF 
31 B0=0 
   IF(B3.NE.4)GOTO 32        *IF 6LPI 
   B2=B2+2
32 GOSUB 60 
   B4=4 
   SELECT AEOPINT,ABT 74
   SELECT EOPINT,ABT 74 
   B4=6 
   PRINT,ABT 74 
   B4=4 
   SELECT RNBINT,ABT 74 
   B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.3717.NE.103)ERROR 15/123,GOSUB 71 
   B1=0 
34 B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.2.EQ.0)GOTO 35  *IF NOT BUSY
   DELAY 100 MSEC 
   GOTO 34 WHILE (B1+1.LE.20)   *WAIT FOR NOT BUSY
   ERROR 15/100 GOSUB 71        *IF STILL BUSY
35 B2=B2+1
   IF(B2.LT.B3)GOTO 36       *IF NO COINCIDENT EXPECTED 
   IF(SB(1).AND.4000.NE.0)GOTO 40  *IF COINCIDENT STATUS
   ERROR 15/125,GOSUB 71     *MISSING COINCIDENT STATUS 
   GOTO 37
36 IF(SB(1).AND.4000.EQ.0)GOTO 42  *IF NO COINCIDENT STATUS 
   ERROR 15/126,GOSUB 71     *UNEXPECTED COINCIDENT STATUS
37 B2=0                      *GET IN SYNC WITH PRINTER
   GOTO 42
40 B2=0                      *GET IN SYNC WITH PRINTER
*             IF NO INTERRUPT STATUS
41 IF(SB(1).AND.3717.NE.601)ERROR 15/127,GOSUB 71 
42 IF(SB(1).AND.20.NE.0)GOTO 50  *END IF LAST LINE STATUS 
   B1=OB(0)                  *INIT LOOP COUNTER FOR SHIFT 
   IB(0)=OB(0)               *SAVE PATTERN WORD COUNT 
   IF(P0.EQ.6)GOTO 44 
   OB(0)=OB(B1) AND 77       *PUT LAST CHAR BEFORE FIRST
43 OB(B1)=OB(B1) RS 6        *SHIFT RIGHT 
   B1=B1-1
   B4=OB(B1) AND 77 
   B4=B4 LS 6 
   OB(B1+1)=OB(B1+1)+B4 
   GOTO 43 WHILE (B1+0.GT.0)  *LOOP 
   GOTO 46
44 OB(0)=OB(B1)              *PUT LAST CHAR BEFORE FIRST
45 B1=B1-1
   OB(B1+1)=OB(B1)           *SHIFT RIGHT 
   GOTO 45 WHILE (B1+0.GT.0)  *LOOP 
46 OB(0)=IB(0)               *RESTORE PATTERN WORD COUNT
   GOTO 32 WHILE (B0+1.LT.130)
50 IF(B3.NE.4)GOTO 54 
   B3=3                      *SET NO. OF LINES/COINC. 
   B4=4 
   SELECT 6LPI,ABT 74 
   GOTO 30
* 
*----------EXIT SEQUENCE
* 
54 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 22   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
* 
*---------CONNECT SUBROUTINE
* 
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
* 
*---------ERROR SUBROUTINE
* 
71 B7=B7+1                   *INCREMENT COUNTER 
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
* 
*---------ABORT ERROR PROCESSOR 
* 
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 03 - RIPPLE PATTERN RIGHT 
*  *********************************************************
*  *********************************************************
   MODULE LP104 580(22),LOCK
*** LP104 - SPACE,ZERO PATTERN
* 
**
* 
*   LP104 - SPACE,ZERO PATTERN
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP104* PRINTS AN ALTERNATING SPACE-ZERO PATTERN. 
* 
* 
*   DESCRIPTION - SPACE-ZERO PATTERN
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  CLEAR FORMAT SELECTION
*         3.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         4.  SELECT 8 LINES PER INCH 
*         5.  PAGE EJECT
*         6.  PRINT COLUMN NUMBERS
*         7.  CONNECT AND CHECK STATUS
*         8.  PRINT SPACE-ZERO PATTERN
*         9.  WAIT NOT BUSY 
*         10. VERIFY NO ERROR STATUS
*         11. AFTER 44 LINES SELECT 6 LINES PER INCH
*             AT THE NEXT COINCIDENT POINT. 
*               NOTE
*                 MORE THAN 44 LINES MAY BE PRINTED BEFORE
*                 6/8 LINE COINCIDENTS IS ENCOUNTERED.
*         12. REPEAT FROM STEP 8 UNTIL LAST LINE STATUS OR 88 LINES 
*         13. REPEAT FROM STEP 4 ONCE WITH ZERO-SPACE PATTERN 
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON RESERVE
*         2.  ABORT ON SELECT 
*         3.  ABORT ON PRINT
*         4.  ABORT ON EJECT
*         5.  ABORT ON WAITNB 
*         6.  UNEXPECTED NOT (READY AND NOT BUSY) 
*         7.  ABORT ON READ 
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (PRINT) AT LINE *OCT 
*         4.  ABORT ON (EJECT) AT LINE *OCT 
*         5.  ABORT ON (WAITNB) AT LINE *OCT
*         6.  STATUS IS NOT(READY AND NOT BUSY) 
*         7.  ABORT ON (READ) AT LINE *OCT
* 
*** LP104 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B2 - IB COLUMN COUNTER
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - LOOP COUNTER 
*         B7 - ERROR COUNT
*         B8 - OB WORD COUNTER
*         B9 - WT AFTER PRINT 
*         B10- WT AFTER READ
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
*         LP198C - GENERATE COLUMN NUMBERS
* 
* 
**********************************************************************
/---------THIS MODULE PRINTS A SPACE-0 PATTERN
1  FORMAT LP104 SPACE-0 PATTERN 
2  FORMAT LP104 LC*DEC EC*DEC ST*OCT
3  FORMAT LP104 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP104 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP104 ABORT ON (PRINT) AT LINE *OCT 
7  FORMAT LP104 ABORT ON (WAITNB) AT LINE *OCT
11 FORMAT LP104 ABORT ON (EJECT) AT LINE *OCT 
14 FORMAT LP104 ABORT ON (READ) AT LINE *OCT
15 FORMAT LP104 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP104
20 MSG 1 TO PRINT 
22 MSG 1 TO DISPLAY 
   B3=0 
24 GOSUB 60                  *CONNECT 
   B4=4 
   SELECT CLEAR,ABT 74
   IF(P0.NE.6)GOTO 26 
   SELECT EXTENDED,ABT 74 
26 SELECT 8LPI,ABT 74 
   CALL 98C                  *GENERATE PAGE HEADINGS
   GOSUB 60 
   B4=11
   EJECT,ABT 74              *TOP OF FORM 
   B4=6 
   PRINT,ABT 74              *PRINT COLUMN NUMBERS
   GOSUB 61 
   B0=0                      *INIT LINE COUNTER 
   IF( P0 .EQ. 6 ) GOTO 32   *IF TRAIN TYPE 6 
   WC=104                      *WC FOR TRAIN TYPES 1,2,3
   IF(B3.NE.0) GOTO 30       *IF SECOND PASS
   DUP 6000 TO OB FOR 104    *FIRST PASS = SPACE-0
   GOTO 36
30 DUP 60 TO OB FOR 104      *SECOND PASS = 0-SPACE 
   GOTO 36
32 WC=210 
   IF(B3.NE.0)GOTO 34        *GENERATE PATTERN(TRAIN 6) 
   DUP 0040/0060 TO OB FOR 210       *FIRST PASS = SPACE-0
   GOTO 36
34 DUP 0060/0040 TO OB FOR 210       *FIRST PASS = 0-SPACE
36 BA=0 
40 B4=6 
   PRINT WC WORDS FROM OB(0),ABT 74  *PRINT LINE
   B4=7 
   WAITNB,ABT 74
   IF(SB(1).AND.3717.NE.1)ERROR 15/100,GOSUB 71 
   B0=B0+1
   B4=4 
   IF(B0.GT.88D)GOTO 42      *STOP AFTER 88 LINES 
   IF(SB(1).AND.20.NE.0)GOTO 42  *OR END OF PAGE
   IF(B0.LT.44D) GOTO 40     *IF .LT. HALF PAGE 
   IF(SB(1).AND.4000.EQ.0) GOTO 40  *IF NOT 6/8 COINCIDENTS 
   IF(B3.AND.1.NE.0) GOTO 40
   B3=B3+1
   SELECT 6LPI,ABT 74 
   GOTO 40
42 GOTO 26 WHILE (B3+1.LT.4)  *PRINT 2 PAGES
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 22   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   IF(SB(1).AND.2000.EQ.0) GOTO 73   *IF NO PRINT ERROR 
   WC = 210 
   BA = 0 
   B4 = 14
   B9 = WT
   READ, ABT 74                      *READ ERROR MEMORY 
   B10 = WT 
73 CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 04 - SPACE,ZERO PATTERN 
*  *********************************************************
*  *********************************************************
   MODULE LP105 580(22),LOCK   -LP1 MODULE 05 - M-W PATTERN 
*** LP105 - M-W PATTERN 
* 
**
* 
*   LP105 - M-W PATTERN 
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP105* PRINTS AN ALTERNATING M-W PATTERN.
* 
* 
*   DESCRIPTION - M-W PATTERN 
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  CLEAR FORMAT SELECTION
*         3.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         4.  SELECT 8 LINES PER INCH 
*         5.  PAGE EJECT
*         6.  PRINT COLUMN NUMBERS
*         7.  CONNECT AND CHECK STATUS
*         8.  PRINT M-W PATTERN 
*         9.  WAIT NOT BUSY 
*         9.  VERIFY NO ERROR STATUS
*         10. AFTER 44 LINES SELECT 6 LINES PER INCH
*             AT THE NEXT COINCIDENT POINT. 
*               NOTE
*                 MORE THAN 44 LINES MAY BE PRINTED BEFORE
*                 6/8 LINE COINCIDENTS IS ENCOUNTERED.
*         11. REPEAT FROM STEP 8 UNTIL LAST LINE STATUS OR 88 LINES 
*         12. REPEAT FROM STEP 4 ONCE WITH W-M PATTERN
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON RESERVE
*         2.  ABORT ON SELECT 
*         3.  ABORT ON PRINT
*         4.  ABORT ON EJECT
*         5.  ABORT ON WAITNB 
*         6.  UNEXPECTED NOT (READY AND NOT BUSY) 
*         7.  ABORT ON READ 
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (PRINT) AT LINE *OCT 
*         4.  ABORT ON (EJECT) AT LINE *OCT 
*         5.  ABORT ON (WAITNB) AT LINE *OCT
*         6.  STATUS IS NOT(READY AND NOT BUSY) 
*         7.  ABORT ON (READ) AT LINE *OCT
* 
*** LP105 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B2 - IB COLUMN COUNTER
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - LOOP COUNTER 
*         B7 - ERROR COUNT
*         B8 - OB WORD COUNTER
*         B9 - WT AFTER PRINT 
*         B10- WT AFTER READ
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
*         LP198C - GENERATE COLUMN NUMBERS
* 
* 
**********************************************************************
/---------THIS MODULE PRINTS A M-W PATTERN
1  FORMAT LP105 M-W PATTERN 
2  FORMAT LP105 LC*DEC EC*DEC ST*OCT
3  FORMAT LP105 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP105 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP105 ABORT ON (PRINT) AT LINE *OCT 
7  FORMAT LP105 ABORT ON (WAITNB) AT LINE *OCT
11 FORMAT LP105 ABORT ON (EJECT) AT LINE *OCT 
14 FORMAT LP105 ABORT ON (READ) AT LINE *OCT
15 FORMAT LP105 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP105
20 MSG 1 TO PRINT 
22 MSG 1 TO DISPLAY 
   B3=0 
24 GOSUB 60                  *CONNECT 
   B4=4 
   SELECT CLEAR,ABT 74
   IF(P0.NE.6)GOTO 26 
   SELECT EXTENDED,ABT 74 
26 SELECT 8LPI,ABT 74 
   CALL 98C                  *GENERATE PAGE HEADINGS
   GOSUB 60 
   B4=11
   EJECT,ABT 74              *TOP OF FORM 
   B4=6 
   PRINT,ABT 74              *PRINT COLUMN NUMBERS
   GOSUB 61 
   B0=0                      *INIT LINE COUNTER 
   IF(P0.EQ.6) GOTO 32       *IF TRAIN TYPE 6 
   WC=104                     *WC FOR TRAIN TYPE 1,2,3
   IF (B3.NE.0) GOTO 30      *IF SECOND PASS
   DUP 4466 TO OB FOR 104    *FIRST PASS = M-W
   GOTO 36
30 DUP 6644 TO OB FOR 104    *SECOND PASS = W-M 
   GOTO 36
32 WC=210 
   IF(B3.NE.0)GOTO 34        *GENERATE PATTERN(TRAIN 6) 
   DUP 0115/0127 TO OB FOR 210       *FIRST PASS = M-W
   GOTO 36
34 DUP 0127/0115 TO OB FOR 210       *FIRST PASS = W-M
36 BA=0 
40 B4=6 
   PRINT WC WORDS FROM OB(0),ABT 74  *PRINT LINE
   B4=7 
   WAITNB,ABT 74
   IF(SB(1).AND.3717.NE.1)ERROR 15/100,GOSUB 71 
   B0=B0+1
   B4=4 
   IF(B0.GT.88D)GOTO 42      *STOP AFTER 88 LINES 
   IF(SB(1).AND.20.NE.0)GOTO 42  *OR END OF PAGE
   IF(B0.LT.44D) GOTO 40     *IF .LT. HALF PAGE 
   IF(SB(1).AND.4000.EQ.0) GOTO 40  *IF NOT 6/8 COINCIDENT
   IF(B3.AND.1.NE.0) GOTO 40
   B3=B3+1
   SELECT 6LPI,ABT 74 
   GOTO 40
42 GOTO 26 WHILE (B3+1.LT.4)  *PRINT 2 PAGES
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 22   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   IF(SB(1).AND.2000.EQ.0) GOTO 73   *IF NO PRINT ERROR 
   WC = 210 
   BA = 0 
   B4 = 14
   B9 = WT
   READ, ABT 74                      *READ ERROR MEMORY 
   B10 = WT 
73 CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 05 - M-W PATTERN
*  *********************************************************
*  *********************************************************
   MODULE LP106 580(22),LOCK
*** LP106 - FULL LINES OF CHARACTERS
* 
**
* 
*   LP106 - FULL LINES OF CHARACTERS
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP106* PRINTS FULL LINES OF A REPEATING CHARACTER
*               STARTING WITH THE CHARACTER CODE CONTAINED IN PARAMETER 
*               P1 . TWENTY LINES ARE PRINTED BEFORE INCREMENTING THE 
*              CHARACTER CODE.
* 
* 
*   DESCRIPTION - FULL LINES OF CHARACTERS
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  CLEAR FORMAT SELECTION
*         3.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         4.  PAGE EJECT
*         5.  PRINT COLUMN NUMBERS
*         6.  CONNECT AND CHECK STATUS
*         7.  GENERATE PRINT LINE OF CHARACTER
*         8.  PRINT LINE OF CHARACTERS
*         9.  WAIT NOT BUSY 
*         9.  VERIFY NO ERROR STATUS
*         10. REPEAT FROM STEP 8 UNTIL LAST LINE STATUS OR 20 LINES 
*         11. REPEAT FROM STEP 7 4 TIMES, INCREMENTING CHARACTER CODE 
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON RESERVE
*         2.  ABORT ON SELECT 
*         3.  ABORT ON PRINT
*         4.  ABORT ON EJECT
*         5.  ABORT ON WAITNB 
*         6.  UNEXPECTED NOT (READY AND NOT BUSY) 
*         7.  ABORT ON READ 
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (PRINT) AT LINE *OCT 
*         4.  ABORT ON (EJECT) AT LINE *OCT 
*         5.  ABORT ON (WAITNB) AT LINE *OCT
*         6.  STATUS IS NOT(READY AND NOT BUSY) 
*         7.  ABORT ON (READ) AT LINE *OCT
* 
*** LP106 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B2 - IB COLUMN COUNTER
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - LOOP COUNTER 
*         B7 - ERROR COUNT
*         B8 - OB WORD COUNTER
*         B9 - WT AFTER PRINT 
*         B10- WT AFTER READ
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
*         LP198C - GENERATE COLUMN NUMBERS
* 
* 
**********************************************************************
/---------PRINT FULL LINES OF CHARACTERS(START IS P1) 
1  FORMAT LP106 FULL LINES OF CHARACTERS
2  FORMAT LP106 LC*DEC EC*DEC ST*OCT
3  FORMAT LP106 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP106 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP106 ABORT ON (PRINT) AT LINE *OCT 
7  FORMAT LP106 ABORT ON (WAITNB) AT LINE *OCT
11 FORMAT LP106 ABORT ON (EJECT) AT LINE *OCT 
14 FORMAT LP106 ABORT ON (READ) AT LINE *OCT
15 FORMAT LP106 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP106
20 MSG 1 TO PRINT 
   B3=P1                     *SAVE STARTING CHARACTER 
   IF(P0.NE.6)GOTO 22        *IF NOT TRAIN 6
   IF(B3.NE.0)GOTO 22        *IF CHAR CODE NOT 0
   B3=60                     *DEFAULT CODE FOR ZERO 
22 MSG 1 TO DISPLAY 
24 GOSUB 60                  *CONNECT 
   B4=4 
   SELECT CLEAR,ABT 74
   IF(P0.NE.6)GOTO 26 
   SELECT EXTENDED,ABT 74 
26 CALL 98C                  *GENERATE PAGE HEADINGS
   GOSUB 60 
   B4=11
   EJECT,ABT 74              *TOP OF FORM 
   B4=6 
   PRINT,ABT 74              *PRINT COLUMN NUMBERS
   GOSUB 61 
   B1=0                      *INIT GROUP COUNT
30 B0=0                      *INIT LINE COUNTER 
   B4=B3+B1                  *FORM NEXT CHARACTER 
   IF(P0.EQ.6)GOTO 32 
   B4=B4 AND 77 
   B4=B4 LS 6 + B4      *PRINT DATA (TRAINS 1,2,3)
   DUP B4 TO OB FOR 104      *MAKE LINE 
   WC=104 
   GOTO 34
32 DUP B4 TO OB FOR 210      *GENERATE PRINT DATA(TRAIN 6)
   WC=210 
34 BA=0 
36 B4=6 
   PRINT WC WORDS FROM OB(0),ABT 74  *PRINT LINE OF CHAR
   B4=7 
   WAITNB,ABT 74
   IF(SB(1).AND.3717.NE.1)ERROR 15/100,GOSUB 71 
   IF(SB(1).AND.20.NE.0)GOTO 40  *EXIT IF END OF PAGE 
   GOTO 36 WHILE (B0+1.LT.20D)  *LOOP FOR 20 LINES
   GOTO 30 WHILE (B1+1.LT.4)  *LOOP FOR 4 GROUPS MAX
40 B3=B3+B1 
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 22   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   IF(SB(1).AND.2000.EQ.0) GOTO 73   *IF NO PRINT ERROR 
   WC = 210 
   BA = 0 
   B4 = 14
   B9 = WT
   READ, ABT 74                      *READ ERROR MEMORY 
   B10 = WT 
73 CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 06 - FULL LINES OF CHARACTERS 
*  *********************************************************
*  *********************************************************
   MODULE LP107 580(22),LOCK
*** LP107 - VARIABLE LENGTH LINES 
* 
**
* 
*   LP107 - VARIABLE LENGTH LINES 
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP107* PRINTS LINES VARYING IN LENGTH
*              FROM 2 TO 152 CHARACTERS.
* 
* 
*   DESCRIPTION - PRINT VARIABLE LENGTH LINES 
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  CLEAR FORMAT SELECTION
*         3.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         4.  PAGE EJECT
*         5.  PRINT COLUMN NUMBERS
*         6.  CONNECT AND CHECK STATUS
*         7.  GENERATE PRINT LINE 
*         8.  SELECT 6 LINES PER INCH 
*         9.  PRINT LINE OF CHARACTERS
*         10. WAIT NOT BUSY 
*         11. VERIFY NO ERROR STATUS
*         12. REPEAT FROM STEP 9, INCREASING LENGTH OF PRINT LINE 
*             UNTIL 152 CHARACTERS LONG.
*         13. SELECT 8 LINES PER INCH 
*         14. REPEAT FROM STEP 9, DECREASING LENGTH OF PRINT LINE 
*             UNTIL 2 CHARACTERS LONG.
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON RESERVE
*         2.  ABORT ON SELECT 
*         3.  ABORT ON PRINT
*         4.  ABORT ON EJECT
*         5.  ABORT ON WAITNB 
*         6.  UNEXPECTED NOT (READY AND NOT BUSY) 
*         7.  ABORT ON READ 
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (PRINT) AT LINE *OCT 
*         4.  ABORT ON (EJECT) AT LINE *OCT 
*         5.  ABORT ON (WAITNB) AT LINE *OCT
*         6.  STATUS IS NOT(READY AND NOT BUSY) 
*         7.  ABORT ON (READ) AT LINE *OCT
* 
*** LP107 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B2 - IB COLUMN COUNTER
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - LOOP COUNTER 
*         B7 - ERROR COUNT
*         B8 - OB WORD COUNTER
*         B9 - WT AFTER PRINT 
*         B10- WT AFTER READ
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
*         LP198B - GENERATE RIPPLE PATTERN
*         LP198C - GENERATE COLUMN NUMBERS
* 
* 
**********************************************************************
/---------THIS MODULE PRINTS VARIABLE LENGTH LINES
1  FORMAT LP107 VARIABLE LENGTH LINES 
2  FORMAT LP107 LC*DEC EC*DEC ST*OCT
3  FORMAT LP107 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP107 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP107 ABORT ON (PRINT) AT LINE *OCT 
7  FORMAT LP107 ABORT ON (WAITNB) AT LINE *OCT
11 FORMAT LP107 ABORT ON (EJECT) AT LINE *OCT 
14 FORMAT LP107 ABORT ON (READ) AT LINE *OCT
15 FORMAT LP107 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP107
20 MSG 1 TO PRINT 
22 MSG 1 TO DISPLAY 
24 GOSUB 60                  *CONNECT 
   B4=4 
   SELECT CLEAR,ABT 74
   IF(P0.NE.6)GOTO 26 
   SELECT EXTENDED,ABT 74 
26 CALL 98C                  *GENERATE PAGE HEADINGS
   GOSUB 60 
   B4=11
   EJECT,ABT 74              *TOP OF FORM 
   B4=6 
   PRINT,ABT 74              *PRINT COLUMN NUMBERS
   CALL 98B                  *GENERATE PRINT LINE(RIPPLE) 
   GOSUB 60 
   B4=4 
   SELECT 6LPI,ABT 74 
   BA=1 
   B0=0                      *INIT LENGTH CHANGE SWITCH 
   B1=1                      *INIT WORD COUNT 
34 WC=B1
   IF(P0.NE.6)GOTO 36 
   WC=WC LS 1 
36 B4=6 
   PRINT,ABT 74 
   B4=7 
   WAITNB,ABT 74
   IF(SB(1).AND.3717.NE.1)ERROR 15/100,GOSUB 71 
   IF(B0.NE.0)GOTO 42        *IF DECREASING 
   GOTO 34 WHILE (B1+1.LT.75D)  *INCREASE BY 2 FOR 74 LINES 
   IF(SB(1).AND.4000.EQ.0)GOTO 34  *WAIT FOR COINCIDENCE
   B4=4 
   SELECT 8LPI,ABT 74 
   B0=1                      *FLAG DECREASING LENGTH
42 GOTO 34 WHILE (B1-1.GT.0)  *LOOP TO 1 WORD LENGTH
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 22   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSGAE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   IF(SB(1).AND.2000.EQ.0) GOTO 73   *IF NO PRINT ERROR 
   WC = 210 
   BA = 0 
   B4 = 14
   B9 = WT
   READ, ABT 74                      *READ ERROR MEMORY 
   B10 = WT 
73 CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 07 - VARIABLE LENGTH LINES
*  *********************************************************
*  *********************************************************
   MODULE LP108 580(22),LOCK
*** LP108 - DEPICT SUBSCANS 
* 
**
* 
*   LP108 - DEPICT SUBSCANS 
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP108* PRINTS LINES INDICATING WHICH TRAIN 
*              CHARACTERS CAN BE PRINTED DURING A SINGLE SUBSCAN
* 
* 
*   DESCRIPTION - DEPICT SUBSCANS 
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  CLEAR FORMAT SELECTIONS 
*         3.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         4.  PAGE EJECT
*         5.  PRINT COLUMN NUMBERS
*         6.  BUILD TRAIN IMAGE DATA (ALL CHARACTERS UNIQUE)
*         7.  SELECT EXTENDED ARRAY 
*         8.  FILL TRAIN IMAGE
*         9.  CALCULATE PRINT LINE FOR NEXT SUBSCAN 
*         10. WAIT FOR NOT BUSY STATUS
*         11. GO TO STEP 15 IF END OF PAGE STATUS AND NOT REPEAT MODULE 
*         12. PRINT SUBSCAN LINE
*         13. REPEAT FROM STEP 9 FOR 3 HAMMER LOCATIONS 
*         14. REPEAT FROM STEP 9 FOR ALL 288 TRAIN POSITIONS
*         15. RESTORE TRAIN IMAGE 
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON RESERVE
*         2.  ABORT ON SELECT 
*         3.  ABORT ON PRINT
*         4.  ABORT ON EJECT
*         5.  ABORT ON WAITNB 
*         6.  ABORT ON FILL 
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (PRINT) AT LINE *OCT 
*         4.  ABORT ON (EJECT) AT LINE *OCT 
*         5.  ABORT ON (WAITNB) AT LINE *OCT
*         6.  ABORT ON (FILL) AT LINE *OCT
* 
*** LP108 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
*         LP198C - GENERATE COLUMN NUMBERS
*         LP198D - GENERATE TRAIN IMAGE DATA
* 
* 
**********************************************************************
/---------THIS MODULE DEPICTS SUBSCANS
1  FORMAT LP108 DEPICT SUBSCANS 
2  FORMAT LP108 LC*DEC EC*DEC ST*OCT
3  FORMAT LP108 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP108 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP108 ABORT ON (PRINT) AT LINE *OCT 
7  FORMAT LP108 ABORT ON (WAITNB) AT LINE *OCT
11 FORMAT LP108 ABORT ON (EJECT) AT LINE *OCT 
12 FORMAT LP108 ABORT ON (FILL) AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP108
20 MSG 1 TO PRINT 
   B3=0                      *SET STARTING TRAIN ADDRESS
22 MSG 1 TO DISPLAY 
24 GOSUB 60                  *CONNECT 
   B4=4 
   SELECT CLEAR,ABT 74
   IF(P0.NE.6)GOTO 26 
   SELECT EXTENDED,ABT 74 
26 CALL 98C                  *GENERATE PAGE HEADINGS
   GOSUB 60 
   B4=11
   EJECT,ABT 74              *TOP OF FORM 
   B4=6 
   PRINT,ABT 74              *PRINT COLUMN NUMBERS
   GOSUB 61 
   B0=0 
   B1=0 
34 OB(B0)=B1                 *STORE TRAIN IMAGE CHARACTER 
   GOTO 36 WHILE (B1+1.NE.40) 
   B1=B1+1                   *SKIP BLANK CODE 
36 GOTO 34 WHILE (B0+1.LT.288D)  *BUILD WHOLE TRAIN IMAGE 
   B4=4 
   SELECT EXTENDED,ABT 74 
   B4=12
   FILL IMAGE,ABT 74
40 B0=0                      *RESET COLUMN START
42 DUP 40 TO OB FOR 136D     *BLANK PRINT LINE
   B4=B0                     *SET COLUMN POINTER
   B1=B3+B0                  *CALC STARTING CHARACTER 
44 IF(B1.LT.288D)GOTO 50     *WATCH FOR WRAP-AROUND 
   B1=B1-288D 
50 OB(B4)=B1                 *STORE IN PRINT LINE 
   IF(B1.LT.40)GOTO 52
   OB(B4)=OB(B4)+1           *SKIP OVER SPACE CODE
52 B1=B1+2                   *CALC NEXT CHARACTER 
   GOTO 44 WHILE (B4+3.LT.136D)  *LOOP TILL LINE FILLED 
   B4=7 
   WAITNB,ABT 74
   IF(SB(1).AND.20.NE.0)GOTO 54  *EXIT AT END OF PAGE 
   B4=6 
   PRINT 210 WORDS FROM OB(0),ABT 74  *PRINT NEXT LINE
   GOTO 42 WHILE(B0+1.LT.3)  *SHIFT RIGHT 1 HAMMER
   GOTO 40 WHILE(B3+1.LT.288D)  *NEXT CHAR FOR FIRST HAMMER 
   B3=B3-288D 
   GOTO 40                   *LOOP TILL END OF PAGE 
/---------EXIT SEQUENCE 
54 CALL 98D                  *RESTORE TRAIN IMAGE 
   GOSUB 60 
   B4=12
   FILL IMAGE,ABT 74
   IF(P0.EQ.6)GOTO 55 
   B4=4 
   SELECT CLREXT,ABT 74 
55 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 22   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 08 - DEPICT SUBSCANS
*  *********************************************************
*  *********************************************************
   MODULE LP109 580(22),LOCK
*** LP109 - WORST PATTERN 
* 
**
* 
*   LP109 - WORST PATTERN 
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP109* PRINTS LINES THAT FIRE ALL ODD HAMMERS
*              ON PRINT SCAN 1 AND ALL EVEN HAMMERS ON PRINT SCAN 48. 
* 
* 
*   DESCRIPTION - WORST PATTERN 
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  CLEAR FORMAT SELECTIONS 
*         3.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         4.  PAGE EJECT
*         5.  PRINT COLUMN NUMBERS
*         6.  BUILD TRAIN IMAGE DATA (ALL CHARACTERS UNIQUE)
*         7.  SELECT EXTENDED ARRAY 
*         8.  FILL TRAIN IMAGE
*         9.  CALCULATE PRINT LINE
*         10. PRINT SUBSCAN LINE
*         11. WAIT NOT BUSY 
*         12. VERIFY NO ERROR STATUS
*         13. REPEAT FROM STEP 10 UNTIL END OF PAGE STATUS
*             OR 88 LINES HAVE BEEN PRINTED 
*         14. RESTORE TRAIN IMAGE 
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON RESERVE
*         2.  ABORT ON SELECT 
*         3.  ABORT ON PRINT
*         4.  ABORT ON EJECT
*         5.  ABORT ON WAITNB 
*         6.  ABORT ON FILL 
*         7.  UNEXPECTED NOT (READY AND NOT BUSY) 
*         8.  ABORT ON READ 
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (PRINT) AT LINE *OCT 
*         4.  ABORT ON (EJECT) AT LINE *OCT 
*         5.  ABORT ON (WAITNB) AT LINE *OCT
*         6.  ABORT ON (FILL) AT LINE *OCT
*         7.  STATUS IS NOT(READY AND NOT BUSY) 
*         8.  ABORT ON (READ) AT LINE *OCT
* 
*** LP109 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B2 - IB COLUMN COUNTER
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - LOOP COUNTER 
*         B7 - ERROR COUNT
*         B8 - OB WORD COUNTER
*         B9 - WT AFTER PRINT 
*         B10- WT AFTER READ
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
*         LP198C - GENERATE COLUMN NUMBERS
*         LP198D - GENERATE TRAIN IMAGE DATA
* 
* 
**********************************************************************
/---------THIS MODULE PRINTS A WORST PATTERN
1  FORMAT LP109 WORST PATTERN 
2  FORMAT LP109 LC*DEC EC*DEC ST*OCT
3  FORMAT LP109 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP109 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP109 ABORT ON (PRINT) AT LINE *OCT 
7  FORMAT LP109 ABORT ON (WAITNB) AT LINE *OCT
11 FORMAT LP109 ABORT ON (EJECT) AT LINE *OCT 
12 FORMAT LP109 ABORT ON (FILL) AT LINE *OCT
14 FORMAT LP109 ABORT ON (READ) AT LINE *OCT
15 FORMAT LP109 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP109
   DATA(OB(0),CON)0,2,4,6,10,11,13,15,17  *CHAR SEQUENCE
20 MSG 1 TO PRINT 
   COPY OB TO IB FOR 11      *SAVE PRINT SEQUENCE 
22 MSG 1 TO DISPLAY 
24 GOSUB 60                  *CONNECT 
   B4=4 
   SELECT CLEAR,ABT 74
   IF(P0.NE.6)GOTO 26 
   SELECT EXTENDED,ABT 74 
26 CALL 98C                  *GENERATE PAGE HEADINGS
   GOSUB 60 
   B4=11
   EJECT,ABT 74              *TOP OF FORM 
   B4=6 
   PRINT,ABT 74              *PRINT COLUMN NUMBERS
   GOSUB 61 
   B0=0 
   B1=0 
34 OB(B0)=B1                 *STORE TRAIN IMAGE CHARACTER 
   GOTO 36 WHILE (B1+1.NE.40) 
   B1=41                     *SKIP BLANK CODE 
36 GOTO 34 WHILE (B0+1.LT.288D)  *BUILD WHOLE TRAIN IMAGE 
   B4=4 
   SELECT EXTENDED,ABT 74 
   B4=12
   FILL IMAGE,ABT 74
40 B1=0                      *INIT PRINT CODE INDEX 
   B2=0 
   B0=0                      *INIT BUFFER LOCATION
42 B3=IB(B1)+B2              *CALC TRAIN CHARACTER TO PRINT 
   OB(B0)=B3                 *ODD COLUMN - SCAN 1 
   IF(B3.LT.40)GOTO 44
   OB(B0)=OB(B0)+1           *SKIP OVER BLANK CODE
44 OB(B0+1)=B3+49D           *EVEN COLUMN- SCAN 48D 
   GOTO 46 WHILE (B1+1.LT.11) 
   B1=0 
   B2=B2+20 
46 GOTO 42 WHILE (B0+2.LT.136D)  *FILL LINE 
   B0=0 
50 B4=6 
   PRINT 136D WORDS FROM OB,ABT 74
   B4=7 
   WAITNB,ABT 74
   IF(SB(1).AND.3717.NE.1)ERROR 15/100,GOSUB 71 
   IF(SB(1).AND.20.NE.0)GOTO 54  *EXIT AT END OF PAGE 
   GOTO 50 WHILE(B0+1.LT.88D)  *OR AFTER 88 LINES 
/---------EXIT SEQUENCE 
54 CALL 98D                  *RESTORE TRAIN IMAGE 
   GOSUB 60 
   B4=4 
   SELECT EXTENDED,ABT 74 
   B4=12
   FILL IMAGE,ABT 74
   IF(P0.EQ.6)GOTO 55 
   B4=4 
   SELECT CLREXT,ABT 74 
55 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 22   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   IF(SB(1).AND.2000.EQ.0) GOTO 73   *IF NO PRINT ERROR 
   WC = 210 
   BA = 0 
   B4 = 14
   B9 = WT
   READ, ABT 74                      *READ ERROR MEMORY 
   B10 = WT 
73 CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 09 - WORST PATTERN
*  *********************************************************
*  *********************************************************
   MODULE LP110 580(22),LOCK
*** LP110 - EXTENDED ARRAY TEST 
* 
**
* 
*   LP110 - EXTENDED ARRAY TEST 
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP110* TESTS EXTENDED ARRAY FUNCTIONING BY 
*              PRINTING THE TRAIN IMAGE IN NORMAL AND REVERSED ORDER. 
*              THIS SECTION DOES NOT EXECUTE IF TRAIN TYPE 6. 
* 
* 
*   DESCRIPTION - EXTENDED ARRAY TEST 
* 
*      (LP110)
*         1.  CONNECT AND CHECK STATUS
*         2.  CLEAR FORMAT SELECTIONS 
*         3.  EXIT IF TRAIN TYPE 6
*         4.  PAGE EJECT
*         5.  PRINT COLUMN NUMBERS
*      (LP110A) 
*         6.  BUILD PACKED TRAIN IMAGE DATA 
*         7.  PRINT TRAIN IMAGE 
*         8.  REVERSE CHARACTERS IN PRINT BUFFER
*         9.  WAIT NOT BUSY 
*         10. VERIFY NO ERROR STATUS
*         11. REPEAT FROM STEP 7 FOR 4 PRINT LINES
*      (LP110B) 
*         12. PRINT *EXTENDED ARRAY*
*         13. BUILD UNPACKED TRAIN IMAGE DATA 
*         14. IF FIRST PASS, SET UPPER 3 BITS OF EACH WORD
*         15. IF SECOND PASS, SHIFT EACH WORD LEFT 3 BITS 
*         16. SELECT EXTENDED ARRAY 
*         17. FILL TRAIN IMAGE
*         18. PRINT TRAIN IMAGE 
*         19. REVERSE CHARACTERS IN PRINT BUFFER
*         20. WAIT NOT BUSY 
*         21. VERIFY NO ERROR STATUS
*         22. REPEAT FROM STEP 18 FOR 16 PRINT LINES
*         23. BUILD UNPACKED TRAIN IMAGE DATA 
*         24. CLEAR EXTENDED ARRAY
*         25. FILL TRAIN IMAGE WITH STANDARD DATA 
*      (LP110C) 
*         26. CLEAR EXTENDED ARRAY
*         27. PRINT *CLEAR EXTENDED ARRAY*
*         28. REPEAT FROM STEP 6 FOR 2 PASSES 
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON RESERVE
*         2.  ABORT ON SELECT 
*         3.  ABORT ON PRINT
*         4.  ABORT ON WAITNB 
*         5.  ABORT ON EJECT
*         6.  ABORT ON FILL 
*         5.  UNEXPECTED NOT(READY AND NOT BUSY)
*         8.  ABORT ON READ 
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (PRINT) AT LINE *OCT 
*         4.  ABORT ON (WAITNB) AT LINE *OCT
*         5.  ABORT ON (EJECT) AT LINE *OCT 
*         6.  ABORT ON (FILL) AT LINE *OCT
*         5.  STATUS IS NOT(READY AND NOT BUSY) 
*         8.  ABORT ON (READ) AT LINE *OCT
* 
*** LP110 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B2 - IB COLUMN COUNTER
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - LOOP COUNTER 
*         B7 - ERROR COUNT
*         B8 - OB WORD COUNTER
*         B9 - WT AFTER PRINT 
*         B10- WT AFTER READ
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
*         LP198C - GENERATE COLUMN NUMBERS
*         LP198D - GENERATE TRAIN IMAGE DATA
* 
* 
**********************************************************************
/---------EXTENDED ARRAY TEST 
1  FORMAT LP110 EXTENDED ARRAY TEST (PART 1 OF 4) 
2  FORMAT LP110 LC*DEC EC*DEC ST*OCT
3  FORMAT LP110 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP110 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP110 ABORT ON (PRINT) AT LINE *OCT 
11 FORMAT LP110 ABORT ON (EJECT) AT LINE *OCT 
14 FORMAT LP110 DOES NOT RUN ON TRAIN 6 
17 FORMAT *DEC ERROR(S) IN LP110
20 MSG 1 TO PRINT 
   IF(P0.NE.6)GOTO 21        *IF NOT TRAIN 6
   MSG 14 TO DISPLAY,PRINT
   EXIT 
21 B3=0                      *SET STARTING TRAIN ADDRESS
22 MSG 1 TO DISPLAY 
24 GOSUB 60                  *CONNECT 
   B4=4 
   SELECT CLEAR,ABT 74
26 CALL 98C                  *GENERATE PAGE HEADINGS
   GOSUB 60 
   B4=11
   EJECT,ABT 74              *TOP OF FORM 
   B4=6 
   PRINT,ABT 74              *PRINT COLUMN NUMBERS
   GOSUB 61 
/---------EXIT SEQUENCE 
   EXIT TO 10A               *CONTINUE IN MODULE LP110A 
* 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 10 EXTENDED ARRAY TEST
*  *********************************************************
*  *********************************************************
   MODULE LP110A 580(22),LOCK 
* 
/---------EXTENDED ARRAY TEST 
1  FORMAT LP110A EXTENDED ARRAY TEST (PART 2 OF 4)
2  FORMAT LP110A LC*DEC EC*DEC ST*OCT 
3  FORMAT LP110A ABORT ON (RES) AT LINE *OCT
6  FORMAT LP110A ABORT ON (PRINT) AT LINE *OCT
7  FORMAT LP110A ABORT ON (WAITNB) AT LINE *OCT 
14 FORMAT LP110A ABORT ON (READ) AT LINE *OCT 
15 FORMAT LP110A ERROR CODE *OCT AT LINE *OCT 
17 FORMAT *DEC ERROR(S) IN LP110A 
20 B3=B3.AND.7700            *INITIALIZE LOOP COUNTER 
   IF(B3.AND.7700.EQ.0)MSG 1 TO PRINT  *IF 1ST PASS SET RUN MSG 
   MSG 1 TO DISPLAY 
   CALL 98D                  *GET TRAIN ARRAY IMAGE 
   GOSUB 60                  *CONNECT 
   B0=0                      *PACK TRAIN DATA FOR PRINT 
   B1=0 
24 OB(B1)=OB(B0) LS 6 OR OB(B0+1) 
   B0=B0+2
   GOTO 24 WHILE(B1+1.LT.104) 
26 BA=0 
   WC=104 
   B4=6 
   PRINT WC WORDS FROM OB(0),ABT 74 
   B0=103                    *REVERSE BUFFER
   B1=0 
30 B2=OB(B0) RS 6 
   BA=OB(B0) LS 6 AND 7700
   B4=B2+BA 
   B2=OB(B1) RS 6 
   BA=OB(B1) LS 6 AND 7700
   OB(B0)=B2+BA 
   OB(B1)=B4
   B0=B0-1
   GOTO 30 WHILE (B1+1.LT.42) 
   B4=7 
   WAITNB,ABT 74
   IF(SB(1).AND.3717.NE.1)ERROR 15/100,GOSUB 71 
   B3=B3+1                   *LOOP 4 TIMES
   IF(B3.AND.77.LT.4)GOTO 26
   EXIT TO 10B               *CONTINUE IN MODULE LP110B 
* 
56 MSG 17(B7) TO DAYFILE
   EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63   *CHECK STATUS
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   MSG EM (EC,EA) TO LINE 1  *POST MESSGAGE 
   B5=3 
   IF(SB(1).AND.2000.EQ.0) GOTO 73   *IF NO PRINT ERROR 
   WC = 210 
   BA = 0 
   B4 = 14
   B9 = WT
   READ, ABT 74                      *READ ERROR MEMORY 
   B10 = WT 
73 CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 10A - EXTENDED ARRAY TEST(A)
*  *********************************************************
*  *********************************************************
   MODULE LP110B 580(22),LOCK 
* 
/---------EXTENDED ARRAY TEST 
1  FORMAT LP110B EXTENDED ARRAY TEST (PART 3 OF 4)
2  FORMAT LP110B LC*DEC EC*DEC ST*OCT 
3  FORMAT LP110B ABORT ON (RES) AT LINE *OCT
4  FORMAT LP110B ABORT ON (SELECT) AT LINE *OCT 
6  FORMAT LP110B ABORT ON (PRINT) AT LINE *OCT
7  FORMAT LP110B ABORT ON (WAITNB) AT LINE *OCT 
12 FORMAT LP110B ABORT ON (FILL) AT LINE *OCT 
14 FORMAT LP110B ABORT ON (READ) AT LINE *OCT 
15 FORMAT LP110B ERROR CODE *OCT AT LINE *OCT 
17 FORMAT *DEC ERROR(S) IN LP110B 
*         *EXTENDED ARRAY*
   DATA(OB(0),CON)2567,6325,4524,2524,6021,5151,2170
20 IF(B3.AND.7700.EQ.0)MSG 1 TO PRINT  *IF 1ST PASS SET RUN MSG 
   MSG 1 TO DISPLAY 
   GOSUB 60                  *RECONNECT 
   B4=6 
   PRINT 7 WORDS FROM OB,ABT 74  *PRINT *EXTENDED ARRAY*
   CALL 98D                  *GET TRAIN IMAGE 
   B0=0 
24 IF(B3.AND.7700.NE.0)GOTO 26
   OB(B0)=OB(B0).OR.7000     *FIRST PASS SET UPPER 3 BITS 
   GOTO 30
26 OB(B0)=OB(B0) LS 3        *SECOND PASS LEFT SHIFT 3 BITS 
30 IF(OB(B0).AND.777.NE.40)GOTO 32
   OB(B0)=OB(B0)+101
32 GOTO 24 WHILE (B0+1.LT.600)
   GOSUB 60 
   B4=4 
   SELECT EXTENDED,ABT 74 
   B4=12
   FILL IMAGE,ABT 74
   B3=B3 AND 7700 
34 B4=6 
   PRINT 210 WORDS FROM OB,ABT 74  *PRINT TRAIN IMAGE 
   B0=0 
   B1=207                    *REVERSE BUFFER
36 B2=OB(B1)
   OB(B1)=OB(B0)
   OB(B0)=B2
   B1=B1-1
   GOTO 36 WHILE (B0+1.LT.104)
   B4=7 
   WAITNB,ABT 74
   IF(SB(1).AND.3717.NE.1)ERROR 15/100,GOSUB 71 
   B3=B3+1
   IF(B3.AND.77.LT.16D)GOTO 34  *LOOP FOR 16 LINES
   CALL 98D                  *GET TRAIN IMAGE 
   GOSUB 60 
   B4=4 
   SELECT CLREXT,ABT 74 
   B4=12
   FILL IMAGE,ABT 74         *RESTORE TRAIN IMAGE 
   EXIT TO 10C               *CONTINUE IN MODULE LP110C 
56 MSG 17(B7) TO DAYFILE
   EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   IF(SB(1).AND.2000.EQ.0) GOTO 73   *IF NO PRINT ERROR 
   WC = 210 
   BA = 0 
   B4 = 14
   B9 = WT
   READ, ABT 74                      *READ ERROR MEMORY 
   B10 = WT 
73 CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 10B - EXTEDNED ARRAY TEST(B)
*  *********************************************************
*  *********************************************************
   MODULE LP110C 580(22),LOCK 
* 
/---------EXTENDED ARRAY TEST 
1  FORMAT LP110C EXTENDED ARRAY TEST (PART 4 OF 4)
2  FORMAT LP110C LC*DEC EC*DEC ST*OCT 
3  FORMAT LP110C ABORT ON (RES) AT LINE *OCT
4  FORMAT LP110C ABORT ON (SELECT) AT LINE *OCT 
6  FORMAT LP110C ABORT ON (PRINT) AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP110C 
*         *CLEAR EXTENDED ARRAY*
   DATA(OB(0),CON)2343,2521,5160,2567,6325,4524,2524,6021,
  ,5151,2170
20 IF(B3.AND.7700.EQ.0)MSG 1 TO PRINT  *IF 1ST PASS SET RUN MSG 
   MSG 1 TO DISPLAY 
   GOSUB 60                  *RECONNENT 
24 B4=4 
   SELECT CLREXT,ABT 74 
   B4=6                      *PRINT *CLEAR EXTENDED ARRAY*
   PRINT 12 WORDS FROM OB,ABT 74
   IF(B3.AND.7700.NE.0)GOTO 54  *CHECK IF DONE
   B3=B3+100
   EXIT TO 10A               *LOOP FOR SECOND PASS
54 IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 10C - EXTENDED ARRAY(C) 
*  *********************************************************
*  *********************************************************
   MODULE LP111 580(22),LOCK
*** LP111 - BUFFER MEMORY TEST
* 
**
* 
*   LP111 - BUFFER MEMORY TEST
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP111* TESTS BUFFER MEMORY BY STORING A PARITY 
*              SENSITIVE PATTERN IN TWO LOCATIONS OF IMAGE
*              MEMORY AND PRINTING LINES OF THOSE CHARACTERS. 
*              MEMORY LOATIONS USED ARE ADVANCED WHEN REPEAT
*              MODULE IS SELECTED.
* 
* 
*   DESCRIPTION - BUFFER MEMORY TEST
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  CLEAR FORMAT SELECTIONS 
*         3.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         4.  PAGE EJECT
*         5.  PRINT COLUMN NUMBERS
*         6.  BUILD TRAIN IMAGE DATA
*         7.  MODIFY 2 LOCATIONS (2525 AND 5252)
*         8.  FILL TRAIN IMAGE
*         9.  SELECT EXTENDED ARRAY 
*         10. GENERATE PRINT LINE (ODD LINES 2525,EVEN 5252)
*         11. WAIT FOR NOT BUSY STATUS
*         12. PRINT LINE
*         13. VERIFY NO PRINT ERROR STATUS
*         14. REPEAT FROM STEP 10 FOR 64 PRINT LINES
*         15. RESTORE TRAIN IMAGE 
*         16. INCREMENT TRAIN LOCATION TO MODIFY FOR REPEAT MODULE
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON RESERVE
*         2.  ABORT ON SELECT 
*         3.  ABORT ON STATUS 
*         4.  ABORT ON PRINT
*         5.  ABORT ON WAITNB 
*         6.  ABORT ON EJECT
*         7.  ABORT ON FILL 
*         8.  STATUS ERROR AFTER PRINT (124)
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (STATUS) AT LINE *OCT
*         4.  ABORT ON (PRINT) AT LINE *OCT 
*         5.  ABORT ON (WAITNB) AT LINE *OCT
*         6.  ABORT ON (EJECT) AT LINE *OCT 
*         7.  ABORT ON (FILL) AT LINE *OCT
*         8.  EXPECTED READY AND BUSY AFTER PRINT.
* 
*** LP111 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
*         LP198C - GENERATE COLUMN NUMBERS
*         LP198D - GENERATE TRAIN IMAGE DATA
* 
* 
**********************************************************************
/---------THIS MODULE CHECKS BUFFER MEMORY
1  FORMAT LP111 BUFFER MEMORY CHECK 
2  FORMAT LP111 LC*DEC EC*DEC ST*OCT
3  FORMAT LP111 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP111 ABORT ON (SELECT) AT LINE *OCT
5  FORMAT LP111 ABORT ON (STATUS) AT LINE *OCT
6  FORMAT LP111 ABORT ON (PRINT) AT LINE *OCT 
7  FORMAT LP111 ABORT ON (WAITNB) AT LINE *OCT
11 FORMAT LP111 ABORT ON (EJECT) AT LINE *OCT 
12 FORMAT LP111 ABORT ON (FILL) AT LINE *OCT
15 FORMAT LP111 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP111
20 MSG 1 TO PRINT 
   B3=0                      *SET STARTING TRAIN ADDRESS
22 MSG 1 TO DISPLAY 
24 GOSUB 60                  *CONNECT 
   B4=4 
   SELECT CLEAR,ABT 74
   IF(P0.NE.6)GOTO 26 
   SELECT EXTENDED,ABT 74 
26 CALL 98C                  *GENERATE PAGE HEADINGS
   GOSUB 60 
   B4=11
   EJECT,ABT 74              *TOP OF FORM 
   B4=6 
   PRINT,ABT 74              *PRINT COLUMN NUMBERS
   CALL 98D                  *GET TRAIN IMAGE 
   GOSUB 60 
   OB(B3)=2525               *MODIFY TWO LOCATIONS
   OB(B3+1)=5252
   B4=12
   FILL IMAGE,ABT 74         *AND SEND TO PRINTER 
   B4=4 
   SELECT EXTENDED,ABT 74 
   B0=0                      *INIT LINE COUNTER 
30 B1=0                      *GENERATE PRINT PATTERN
   B2=2525
   IF(B0.AND.1.NE.0)GOTO 32 
   B2=5252
32 OB(B1)=B2
   OB(B1+1)=B2 XOR 7777 
   GOTO 32 WHILE (B1+2.LT.210)
   B4=7 
   WAITNB,ABT 74
   B4=6 
   PRINT 210 WORDS FROM OB,ABT 74  *PRINT 2525 PATTERN
   B4=5 
   STATUS,ABT,74
   IF(SB(1).AND.3717.NE.103)ERROR 15/124,GOSUB 71 
34 GOTO 30 WHILE (B0+1.LT.64D)  *LOOP FOR 64 LINES
   B4=4 
   IF(P0.EQ.6)GOTO 36 
   SELECT CLREXT,ABT 74 
   GOTO 40
36 SELECT EXTENDED,ABT 74 
40 CALL 98D                  *RESTORE TRAIN IMAGE 
   GOSUB 60 
   B4=12
   FILL IMAGE,ABT 74
   GOTO 54 WHILE(B3+1.NE.136D)  *COUNT FOR REPEAT MODULE
   B3=0                      *RESET TRAIN ADDRESS 
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 22   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                        *INCREMENT COUNTER
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 11 - BUFFER MEMORY TEST 
*  *********************************************************
*  *********************************************************
   MODULE LP112 580(22),LOCK
*** LP112 - IMAGE MEMORY AND TRAIN CHECK
* 
**
* 
*   LP112 - IMAGE MEMORY AND TRAIN CHECK
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP112* CHECKS FOR ERRORS IN IMAGE MEMORY BY
*              PRINTING ALL TRAIN CHARACTERS USING A PARITY 
*              SENSITIVE PATTERN IN IMAGE MEMORY. 
* 
* 
*   DESCRIPTION - IMAGE MEMORY AND TRAIN CHECK
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  CLEAR FORMAT SELECTIONS 
*         3.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         4.  PAGE EJECT
*         5.  PRINT COLUMN NUMBERS
*         6.  SELECT EXTENDED ARRAY 
*         7.  BUILD TRAIN IMAGE DATA
*         8.  FILL TRAIN IMAGE
*         9.  GENERATE PRINT LINE WITH PARITY PATTERN 
*         10. PRINT LINE
*         11. REPEAT FROM STEP 6 FOR ALL OF IMAGE MEMORY
*             (288 TIMES) 
*         12. IF NOT TRAIN 6 CLEAR EXTENDED ARRAY 
*         13. RESTORE TRAIN IMAGE 
*         14. PRINT COLUMN NUMBERS
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON RESERVE
*         2.  ABORT ON SELECT 
*         3.  ABORT ON PRINT
*         4.  ABORT ON EJECT
*         5.  ABORT ON FILL 
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (PRINT) AT LINE *OCT 
*         4.  ABORT ON (EJECT) AT LINE *OCT 
*         5.  ABORT ON (FILL) AT LINE *OCT
* 
*** LP112 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197Z - ERROR PROCESSOR
*         LP198C - GENERATE COLUMN NUMBERS
*         LP198D - GENERATE TRAIN IMAGE DATA
* 
* 
**********************************************************************
/---------IMAGE MEMORY AND TRAIN CHECK
1  FORMAT LP112 IMAGE MEMORY AND TRAIN CHECK
2  FORMAT LP112 LC*DEC EC*DEC ST*OCT
3  FORMAT LP112 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP112 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP112 ABORT ON (PRINT) AT LINE *OCT 
11 FORMAT LP112 ABORT ON (EJECT) AT LINE *OCT 
12 FORMAT LP112 ABORT ON (FILL) AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP112
*  PARITY PATTERN 
   DATA(OB,CON)001,776,002,775,004,773,010,767,020,757,050, 
  ,737,100,677,200,577,400,377,774,003,771,006,763,014,747, 
  ,030,717,060,637,140,477,300,177,600,007,770,017,760,037, 
  ,740,077,700,707,070,603,174,401,376
20 MSG 1 TO PRINT 
   COPY OB TO IB FOR 60      *SAVE PARITY PATTERN 
22 MSG 1 TO DISPLAY 
24 GOSUB 60                  *CONNECT 
   B4=4 
   SELECT CLEAR,ABT 74
   IF(P0.NE.6)GOTO 26 
   SELECT EXTENDED,ABT 74 
26 CALL 98C                  *GENERATE PAGE HEADINGS
   GOSUB 60 
   B4=11
   EJECT,ABT 74              *TOP OF FORM 
   B4=6 
   PRINT,ABT 74              *PRINT COLUMN NUMBERS
   GOSUB 61 
   B1=0 
40 B4=4 
   SELECT EXTENDED,ABT 74 
   B4=0                      *GENERATE 0000-7777 PATTERN
   IF(B1.AND.1.EQ.0)GOTO 42 
   B4=7777
42 B3 = B4 XOR 7777B
   DUP B4/B3 TO OB FOR 300
   B4=0 
   B3=0 
   B2=B1
44 OB(B2)=IB(B4)             *ADD PARITY PATTERN
   GOTO 46 WHILE(B2+1.LT.288D)
   B2=0 
46 GOTO 44 WHILE(B4+1.LT.60)
   B4=12
   FILL IMAGE,ABT 74         *FILL IMAGE WITH PARITY PATTERN
   DUP 40 TO OB FOR 210      *BACKGROUND PRINT LINE W/ BLANK
   B4=0 
   B2=B1
47 IF(B2.LT.210)GOTO 50      *ADD PARITY PATTERN
   B2=B2-210
   GOTO 47
50 OB(B2)=IB(B4)
   B2=B2+1
   GOTO 47 WHILE(B4+1.LT.60)
   B4=6 
   PRINT 210 WORDS FROM OB,ABT 74  *PRINT PARITY PATTERN
   GOTO 40 WHILE (B1+1.LT.287D)  *LOOP FOR ALL TRAIN MEMORY 
   IF(P0.EQ.6)GOTO 52 
   B4=4 
   SELECT CLREXT,ABT 74 
52 CALL 98D                  *RESTORE TRAIN IMAGE 
   GOSUB 60 
   B4=12
   FILL IMAGE,ABT 74
   CALL 98C                  *GENERATE COLUMN NUMBERS 
   GOSUB 60 
   B4=6 
   PRINT,ABT 74 
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 22   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 12 - IMAGE MEMORY AND TRAIN CHECK 
*  *********************************************************
*  *********************************************************
   MODULE LP113 580(22),LOCK
*** LP113 - PRINT ZERO IN COL 1 
* 
**
* 
*   LP113 - PRINT ZERO IN COL 1 
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP113* AIDS MAINTENANCE BY PRINTING LINES
*              OF BLANKS WITH A ZERO IN COLUMN 1. 
* 
* 
*   DESCRIPTION - PRINT ZERO IN COLUMN 1
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  CLEAR FORMAT SELECTIONS 
*         3.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         4.  PAGE EJECT
*         5.  PRINT COLUMN NUMBERS
*         6.  GENERATE PRINT LINE WITH ZERO IN COLUMN 1 
*         7.  PRINT LINE
*         8.  REPEAT STEP 7 UNTIL END OF PAGE STATUS
*         9.  REPEAT FROM STEP 7 IF REPEAT CONDITIONS 
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON RESERVE
*         2.  ABORT ON SELECT 
*         3.  ABORT ON PRINT
*         4.  ABORT ON WAITNB 
*         5.  ABORT ON EJECT
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (PRINT) AT LINE *OCT 
*         4.  ABORT ON (WAITNB) AT LINE *OCT
*         5.  ABORT ON (EJECT) AT LINE *OCT 
* 
*** LP113 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197Z - ERROR PROCESSOR
*         LP198C - GENERATE COLUMN NUMBERS
* 
* 
**********************************************************************
/---------PRINT ZERO IN COLUMN 1
1  FORMAT LP113 PRINT ZERO IN COLUMN 1
2  FORMAT LP113 LC*DEC EC*DEC ST*OCT
3  FORMAT LP113 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP113 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP113 ABORT ON (PRINT) AT LINE *OCT 
7  FORMAT LP113 ABORT ON (WAITNB) AT LINE *OCT
11 FORMAT LP113 ABORT ON (EJECT) AT LINE *OCT 
17 FORMAT *DEC ERROR(S) IN LP113
20 MSG 1 TO PRINT 
22 MSG 1 TO DISPLAY 
24 GOSUB 60                  *CONNECT 
   B4=4 
   SELECT CLEAR,ABT 74
   IF(P0.NE.6)GOTO 26 
   SELECT EXTENDED,ABT 74 
26 CALL 98C                  *GENERATE PAGE HEADINGS
   GOSUB 60 
   B4=11
   EJECT,ABT 74              *TOP OF FORM 
   B4=6 
   PRINT,ABT 74              *PRINT COLUMN NUMBERS
   GOSUB 61 
   IF(P0.EQ.6)GOTO 27 
   DUP 6060 TO OB FOR 104    *BLANK LINE
   OB(0)=60                  *ZERO IN COLUMN 1
   WC=104 
   GOTO 30
27 DUP 40 TO OB FOR 210      *BLANK LINE
   OB(0)=60                  *ZERO IN COLUMN 1
   WC=210 
30 BA=0 
   B4=6 
32 PRINT WC WORDS FROM OB(0),ABT 74 
   B4=7 
   WAITNB,ABT 74
   IF(SB(1).AND.20.EQ.0)GOTO 32  *PRINT TILL END OF PAGE
   IF(ES.AND.RC.EQ.0) GOTO 54 
   B6=B6+1
   GOSUB 60                  *RELEASE AND RECONNECT 
   GOTO 32
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 22    *REPEAT MODULE 
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 13 - PRINT ZERO IN COL 1
*  *********************************************************
*  *********************************************************
   MODULE LP114 580(22),LOCK   -LP1 MODULE 14 - RANDOM PRINT
*** LP114 - RANDOM PRINT
* 
**
* 
*   LP114 - RANDOM PRINT
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP114* PRINTS A PAGE OF RANDOM CHARACTERS
*              WITH RANDOM AREAS OF BLANKS
* 
* 
*   DESCRIPTION - RANDOM PRINT
* 
*       (LP114) 
*         1.  CONNECT AND CHECK STATUS
*         2.  CLEAR FORMAT SELECTIONS 
*         3.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         4.  PAGE EJECT
*         5.  PRINT COLUMN NUMBERS
*         6.  GET PARAMETER 2 AS RANDOM SEED
*         7.  IF P2 IS ZERO, SET SEED EQUAL TO REAL TIME CLOCK
*         8.  PRINT LINE WITH OCTAL SEED USED 
*         9.  GENERATE RANDOM PRINT DATA
*         10. CHANGE ILLEGAL CHARACTERS TO BLANK CODE 
*       (LP114A FOR TRAINS 1,2,3 -LP114B FOR TRAIN 6) 
*         11. MOVE SHIFTED PATTERN TO PRINT BUFFER
*         12. IF LINE 5 THROUGH 71 GENERATE RANDOM BLANK AREAS
*         13. CONNECT AND CHECK STATUS
*         14. PRINT LINE
*         15. WAIT NOT BUSY 
*         16. REPEAT FROM STEP 13 IF REPEAT CONDITIONS
*         17. REPEAT FROM STEP 11 UNTIL END OF PAGE STATUS OR 88 LINES
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON RESERVE
*         2.  ABORT ON SELECT 
*         3.  ABORT ON PRINT
*         4.  ABORT ON EJECT
*         6.  UNEXPECTED NOT (READY AND NOT BUSY) 
*         7.  ABORT ON READ 
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (PRINT) AT LINE *OCT 
*         4.  ABORT ON (EJECT) AT LINE *OCT 
*         6.  STATUS IS NOT (READY AND NOT BUSY)
*         7.  ABORT ON (READ) AT LINE *OCT
* 
*** LP114 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B2 - IB COLUMN COUNTER
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - LOOP COUNTER 
*         B7 - ERROR COUNT
*         B8 - OB WORD COUNTER
*         B9 - WT AFTER PRINT 
*         B10- WT AFTER READ
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
*         LP198C - GENERATE COLUMN NUMBERS
* 
* 
**********************************************************************
/---------RANDOM PRINT
1  FORMAT LP114 RANDOM PRINT
2  FORMAT LP114 LC*DEC EC*DEC ST*OCT
3  FORMAT LP114 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP114 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP114 ABORT ON (PRINT) AT LINE *OCT 
11 FORMAT LP114 ABORT ON (EJECT) AT LINE *OCT 
17 FORMAT *DEC ERROR(S) IN LP114
*         *RANDOM SEED = *
   DATA(OB(0),CON)5121,4524,4644,6062,2525,2460,1360
   DATA(OB(7),CON)122,101,116,104,117,115,40,123,105,105, 
  ,104,40,75,40 
*         *ILLEGAL CHARACTERS FOR TRAIN 2 
   DATA(OB(100),CON)1212,1515,1616,1717,3232,3535,3737, 
  ,5252,5555,5656,5757,7272,7575,7676,7777
20 MSG 1 TO PRINT 
   COPY OB(0) TO IB(0) FOR 117  *SAVE PRESET DATA 
22 MSG 1 TO DISPLAY 
24 GOSUB 60                  *CONNECT 
   B4=4 
   SELECT CLEAR,ABT 74
   IF(P0.NE.6)GOTO 26 
   SELECT EXTENDED,ABT 74 
26 CALL 98C                  *GENERATE PAGE HEADINGS
   GOSUB 60 
   B4=11
   EJECT,ABT 74              *TOP OF FORM 
   B4=6 
   PRINT,ABT 74              *PRINT COLUMN NUMBERS
   GOSUB 61 
   B0=P2                     *GET SEED
   IF(B0.NE.0)GOTO 30 
   B0=RT                     *ZERO MEANS USE CLOCK
30 COPY IB(0) TO OB(0) FOR 117  *RESTORE PRESET DATA
   IF(P0.EQ.6)GOTO 40        *IF TRAIN 6
   OB(7)=B0 RS 3 AND 0700    *PRINT SEED USED(TRAINS 1,2,3) 
   B1=B0 RS 6 AND 7 
   OB(7)=OB(7)+B1 
   OB(10)=B0 LS 3 AND 0700
   OB(10)=B0 AND 7 + OB(10) 
   B4=6 
   PRINT 11 WORDS FROM OB(0),ABT 74 
   RANDOM TO IB FOR 104,START B0  *GENERATE RANDOM PATTERN
   IF(P0.LT.2)GOTO 37        *IF TRAIN 1
   IF(P0.EQ.2)GOTO 32        *IF TRAIN 2
   OB(102)=1414              *FIX ILLEGALS FOR TRAIN 3
32 B1=0                      *CLEAR BUFFER INDEX
33 B2=0                      *CLEAR ILLEGALS INDEX
34 B3=IB(B1) XOR OB(B2+100) 
   IF(B3.AND.7700.NE.0)GOTO 35  *IF UPPER CHARACTER OK
   IB(B1)=IB(B1) AND 77 + 6000  *BLANK ILLEGAL CHARACTER
35 IF(B3.AND.77.NE.0) GOTO 36   *IF LOWER CHARACTER OK
   IB(B1)=IB(B1) AND 7700 + 60  *BLANK ILLEGAL CHARACTER
36 GOTO 34 WHILE (B2+1.LT.17)   *LOOP FOR ALL ILLEGALS
   GOTO 33 WHILE (B1+1.LT.104)  *LOOP FOR WHOLE LINE
37 EXIT TO 14A               *CONTINUE IN MODULE LP114A 
* 
/ 
40 B1=B0                     *PRINT SEED USED (TRAIN 6) 
   B2=0 
41 B1=B1 LS 3 
   OB(B2+25)=B1 AND 7 + 60
   GOTO 41 WHILE (B2+1.LT.4)
   B4=4 
   SELECT EXTENDED,ABT 74 
   B4=6 
   PRINT 22 WORDS FROM OB(7),ABT 74 
   RANDOM TO IB FOR 210,START B0  *GENERATE RANDOM PATTERN
   B1=0 
43 IB(B1)=IB(B1) AND 177     *FORCE CHARACTERS IN RANGE 
   IF(IB(B1).LE.37)GOTO 44   *IF ILLEGAL CHARACTER
   IF(IB(B1).NE.177)GOTO 45  *IF LEGAL CHARACTER
44 IB(B1)=40                 *BLANK ILLEGAL CHARACTERS
45 GOTO 43 WHILE (B1+1.LT.210)  *LOOP FOR WHOLE LINE
46 EXIT TO 14B               *CONTINUE IN MODULE LP114B 
* 
/---------EXIT SEQUENCE 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 14 - RANDOM PRINT 
*  *********************************************************
*  *********************************************************
   MODULE LP114A 580(22),LOCK 
* 
/---------RANDOM PRINT (TRAINS 1-3) 
1  FORMAT LP114A RANDOM PRINT (TRAINS 1-3)
2  FORMAT LP114A LC*DEC EC*DEC ST*OCT 
3  FORMAT LP114A ABORT ON (RES) AT LINE *OCT
6  FORMAT LP114A ABORT ON (PRINT) AT LINE *OCT
7  FORMAT LP114A ABORT ON (WAITNB) AT LINE *OCT 
14 FORMAT LP114A ABORT ON (READ) AT LINE *OCT 
15 FORMAT LP114A ERROR CODE *OCT AT LINE *OCT 
17 FORMAT *DEC ERROR(S) IN LP114A 
20 MSG 1 TO PRINT,DISPLAY 
   B0=0                      *CLEAR LINE COUNTER
24 B1=B0 RS 1                *MOVE SHIFTED PATTERN TO OB
   IF(B0.AND.1.NE.0)GOTO 30  *IF ODD SHIFT
   B2=0                      *EVEN SHIFT
26 OB(B2)=IB(B1)             *MOVE BY WORDS 
   GOTO 27 WHILE (B1+1.LT.104)
   B1=0 
27 GOTO 26 WHILE (B2+1.LT.104)
   GOTO 36                   *GO GENERATE BLANK AREAS 
30 IB(104)=IB(0)             *ADD FIRST CHARACTER AFTER LAST
   B2=0                      *ODD SHIFT 
31 OB(B2)=IB(B1) AND 77 LS 6  *SET UPPER CHARACTER
   B3=IB(B1+1) RS 6 AND 77
   OB(B2)=OB(B2)+B3          *SET LOWER CHARACTER 
   GOTO 32 WHILE (B1+1.LT.104)
   B1=0 
32 GOTO 31 WHILE (B2+1.LT.104)
36 IF(B0.LE.4)GOTO 46        *IF LINE 0-4 
   IF(B0.GE.110)GOTO 46      *IF LINE 110+
/---------GENERATE RANDOM BLANK AREAS 
   B1=B0 AND 1               *INIT BLANK SWITCH 
   B2=0                      *INIT CHARACTER POINTER
40 B1=B1+1 AND 1             *FLIP BLANK SWITCH 
   B3=B2 RS 1                *GET NEXT CHARACTER AS 
   B4=OB(B3)                 *LENGTH OF NEXT BLOCK
   IF(B2.AND.1.NE.0)GOTO 41 
   B4=B4 RS 6 
41 B4=B4 AND 37 
   IF(B1.NE.0)GOTO 42        *IF STORING BLANKS 
   B2=B2+B4                  *UPDATE CHARACTER POINTER
   GOTO 45                   *GO CHECK FOR END OF LINE
42 B3=B2 RS 1 
   IF(B2.AND.1.NE.0)GOTO 43  *IF LOWER NEXT 
   OB(B3)=OB(B3) AND 77 + 6000  *BLANK UPPER CHARACTER
   GOTO 44
43 OB(B3)=OB(B3) AND 7700 + 60  *BLANK UPPER CHARACTER
44 B2=B2+1
   IF(B2.GE.210)GOTO 46      *IF END OF LINE
   GOTO 42 WHILE (B4-1.NE.0)  *LOOP FOR BLANK COUNT 
45 IF(B2.LT.210)GOTO 40      *LOOP TILL END OF LINE 
46 GOSUB 60 
   B4=6 
   PRINT 104 WORDS FROM OB(0),ABT 74
   B4=7 
   WAITNB,ABT 74
   IF(SB(1).AND.3717.NE.1)ERROR 15/100,GOSUB 71 
50 B6=B6+1
   IF(ES.AND.RC.NE.0) GOTO 46    *REPEAT CONDITION
   IF(SB(1).AND.20.NE.0)GOTO 54  *IF END OF PAGE
   GOTO 24 WHILE (B0+1.LT.88D)  *LOOP FOR 88 LINES
/---------EXIT SEQUENCE 
54 IF(B7.EQ.0)GOTO 57        *IF NO ERRORS
56 MSG 17(B7) TO DAYFILE
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   IF(SB(1).AND.2000.EQ.0) GOTO 73   *IF NO PRINT ERROR 
   WC = 210 
   BA = 0 
   B4 = 14
   B9 = WT
   READ, ABT 74                      *READ ERROR MEMORY 
   B10 = WT 
73 CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 14A - RANDOM PRINT
*  *********************************************************
*  *********************************************************
   MODULE LP114B 580(22),LOCK 
* 
/---------RANDOM PRINT (TRAIN 6)
1  FORMAT LP114B RANDOM PRINT (TRAIN 6) 
2  FORMAT LP114B LC*DEC EC*DEC ST*OCT 
3  FORMAT LP114B ABORT ON (RES) AT LINE *OCT
6  FORMAT LP114B ABORT ON (PRINT) AT LINE *OCT
7  FORMAT LP114B ABORT ON (WAITNB) AT LINE *OCT 
14 FORMAT LP114B ABORT ON (READ) AT LINE *OCT 
15 FORMAT LP114B ERROR CODE *OCT AT LINE *OCT 
17 FORMAT *DEC ERROR(S) IN LP114B 
20 MSG 1 TO PRINT,DISPLAY 
   B0=0                      *CLEAR LINE COUNTER
24 B1=B0                     *MOVE SHIFTED PATTERN TO OB
   B2=0 
26 OB(B2)=IB(B1)             *MOVE BY WORDS 
   GOTO 30 WHILE (B1+1.LT.210)
   B1=0 
30 GOTO 26 WHILE (B2+1.LT.210)
   IF(B0.LE.4)GOTO 46        *IF LINE 0-4 
   IF(B0.GE.110)GOTO 46      *IF LINE 110+
/---------GENERATE RANDOM BLANK AREAS 
   B1=B0 AND 1               *INIT BLANK SWITCH 
   B2=0                      *INIT CHARACTER POINTER
40 B1=B1+1 AND 1             *FLIP BLANK SWITCH 
   B4=OB(B2) AND 174 RS 2    *GET LENGTH OF NEXT BLOCK
   IF(B1.NE.0)GOTO 42        *IF STORING BLANKS 
   B2=B2+B4                  *UPDATE CHARACTER POINTER
   GOTO 45                   *GO CHECK FOR END OF LINE
42 OB(B2)=40                 *STORE A BLANK 
   B2=B2+1
   IF(B2.GE.210)GOTO 46      *IF END OF LINE
   GOTO 42 WHILE (B4-1.NE.0)  *LOOP FOR BLANK COUNT 
45 IF(B2.LT.210)GOTO 40      *LOOP TILL END OF LINE 
46 GOSUB 60 
   B4=6 
   PRINT 210 WORDS FROM OB(0),ABT 74
   B4=7 
   WAITNB,ABT 74
   IF(SB(1).AND.3717.NE.1)ERROR 15/100,GOSUB 71 
50 B6=B6+1
   IF(ES.AND.RC.NE.0) GOTO 46    *REPEAT CONDITION
   IF(SB(1).AND.20.NE.0)GOTO 54  *IF END OF PAGE
   GOTO 24 WHILE (B0+1.LT.88D)  *LOOP FOR 88 LINES
/---------EXIT SEQUENCE 
54 IF(B7.EQ.0)GOTO 57        *IF NO ERRORS
56 MSG 17(B7) TO DAYFILE
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   IF(SB(1).AND.2000.EQ.0) GOTO 73   *IF NO PRINT ERROR 
   WC = 210 
   BA = 0 
   B4 = 14
   B9 = WT
   READ, ABT 74                      *READ ERROR MEMORY 
   B10 = WT 
73 CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 14B - RANDOM PRINT TRAIN TYPE -6
*  *********************************************************
*  *********************************************************
   MODULE LP115 3000(22),LOCK 
*** LP115 - PRINT WHILE BUSY
* 
**
* 
*   LP115 - PRINT WHILE BUSY
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP115* PRINTS LINES WHILE THE PRINTER IS BUSY
*              EXECUTING A TOP OF FORM. 
* 
* 
*  DESCRIPTION-PRINT WHILE BUSY(MUST HAVE AL.GE.10) 
* 
*         1.  GENERATE PRINT LINE (COLUMN NUMBERS)
*         2.  CONNECT AND CHECK STATUS
*         3.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         4.  CLEAR FORMAT SELECTIONS 
*         5.  PAGE EJECT
*         6.  PRINT COLUMN NUMBERS
*         7.  WAIT FOR NOT BUSY STATUS
*         8.  PRINT COLUMN NUMBERS
*         9.  WAIT FOR NOT BUSY STATUS
*         10. REPEAT FROM STEP 5 THREE TIMES
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON CONN 
*         2.  ABORT ON FUNC 
*         3.  ABORT ON OUT. 
*         4.  ABORT ON STATUS 
*         5.  ACCESS LEVEL .LT. 10
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (CON) AT LINE *OCT 
*         2.  ABORT ON (FUNC) AT LINE *OCT
*         3.  ABORT ON (OUT) AT LINE *OCT 
*         4.  ABORT ON (STATUS) AT LINE *OCT
*         5.  LP115 NOT EXECUTED - AL=*OCT , NEEDS AL.GE.10 
* 
*** LP115 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP196Z - ERROR PROCESSOR
* 
* 
**********************************************************************
/---------PRINT WHILE BUSY
1  FORMAT LP115 PRINT WHILE BUSY
2  FORMAT LP115 LC*DEC EC*DEC ST*OCT
3  FORMAT LP115 ABORT ON (CON) AT LINE *OCT 
4  FORMAT LP115 ABORT ON (FUNC) AT LINE *OCT
5  FORMAT LP115 ABORT ON (STATUS) AT LINE *OCT
6  FORMAT LP115 ABORT ON (OUT) AT LINE *OCT 
10 FORMAT LP115 NOT EXECUTED - AL=*OCT ,NEEDS AL.GE.10
17 FORMAT *DEC ERROR(S) IN LP115
*         DIGITS
*         TRAINS 1-3
   DATA(OB(1),CON)102,304,506,710,1100,102,304,506,710,1100 
*         TRAIN 6 
   DATA(OB(13),CON)61,62,63,64,65,66,67,70,71,60
20 MSG 1 TO PRINT 
   IF(AL.LT.10)GOTO 76       *IF AL ERROR 
   B0=24                     *GENERATE PRINT LINE 
   B1=13
   BA=1 
   WC=104 
   B2=0 
   IF(P0.NE.6)GOTO 21        *IF NOT TRAIN 6
   COPY OB(13) TO OB(1) FOR 12
   B0=12
   WC=210 
21 COPY OB(1) TO OB(B1) FOR 12
   B1=B1+12 
   GOTO 21 WHILE (B2+B0.LT.210) 
22 MSG 1 TO DISPLAY 
24 GOSUB 60                  *CONNECT 
   B4=4 
   IF(P0.NE.6)GOTO 26        *IF NOT TRAIN 6
   FUNC 13,ABT 74            *SELECT EXTENDED 
26 FUNC 30,ABT 74            *CLEAR FORMAT SELECTION
   B0=0                      *CLEAR LOOP COUNTER
30 B4=4 
   FUNC 4,ABT 74             *TOP OF FORM 
   B4=6 
   OUT,ABT 74                *PRINT 
32 GOSUB 61 
   B4=6 
   OUT,ABT 74                *PRINT AGAIN 
34 GOSUB 61 
   GOTO 30 WHILE (B0+1.LT.3)  *LOOP 3 TIMES 
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 22   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 GOTO 77
/---------CONNECT SUBROUTINE ****************************** 
60 B4=3 
   CONN,ABT 74               *CONNECT 
61 B4=5 
   STATUS 1 WORDS TO SB(1),ABT 74  *GET STATUS
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 64  *CHECK STATUS 
   REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
64 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 96Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
76 MSG 10(AL) TO PRINT , DISPLAY
77 END 20 
COMPILE                    -LP1 15 - PRINT WHILE BUSY 
*  *********************************************************
*  *********************************************************
   MODULE LP120 3000(22),LOCK 
*** LP120 - CONNECT AND STATUS
* 
**
* 
*   LP120 - CONNECT AND STATUS
*            -------------------
* 
* 
*   OVERVIEW - MODULE *LP120* CHECKS THE ABILITY OF THE PRINTER TO
*              CONNECT AND REPLY READY NOT BUSY STATUS. THE STATUS
*              IS CHECKED FOR COMPARE FAULT, PAPER FAULT, MEMORY BUSY 
*              AND PRINT ERROR. 
* 
* 
*  DESCRIPTION-CHECH CONNECT AND STATUS(MUST HAVE AL.GE.10) 
* 
*         1.  CONNECT 
*         2.  GET STATUS
*         3.  VERIFY READY-AND-NOT-BUSY 
*         4.  REPEAT FROM STEP 1. IF REPEAT CONDITION SET.
* 
* 
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON (CONN) 
*         2.  ABORT ON (STATUS) 
*         3.  UNEXPECTED NOT READY AND NOT BUSY(100)
*         4.  ACCESS LEVEL .LT. 10
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (CONN) AT LINE *OCT
*         2.  ABORT ON (STATUS) AT LINE *OCT
*         3.  STATUS IS NOT (READY AND NOT BUSY)
*         4.  LP120 NOT EXECUTED - AL=*OCT , NEEDS AL.GE.10 
* 
*** LP120 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP196A - ERROR PROCESSOR
*         LP196Z - ERROR PROCESSOR
* 
* 
*  *********************************************************
* 
/---------THIS MODULE CHECKS THE ABILITY OF THE PRINTER TO CONNECT
/---------AND REPLY READY NOT BUSY STATUS.
1  FORMAT LP120 CONNECT AND STATUS CHECK
2  FORMAT LP120 LC*DEC EC*DEC ST*OCT
3  FORMAT LP120 ABORT ON (CONN) AT LINE *OCT
5  FORMAT LP120 ABORT ON (STATUS) AT LINE *OCT
10 FORMAT LP120 NOT EXECUTED - AL=*OCT ,NEEDS AL.GE.10
15 FORMAT LP120 ERROR CODE *OCT, AT LINE *OCT 
17 FORMAT *DEC ERROR(S) IN LP120
20 MSG 1 TO PRINT 
22 MSG 1 TO DISPLAY 
   IF(AL.LT.10)GOTO 76       *IF AL ERROR 
24 B4=3 
   CONN,ABT 74               *CONNECT 
26 B4=5 
   STATUS 1 WORDS TO SB(1),ABT 74 
   IF(SB(1).AND.3717.NE.1)ERROR 15/100,GOSUB 71  *STAT ERR
30 IF(ES.AND.SL.EQ.0)GOTO 32
31 B6=B6+1
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *POST SCOPE LOOP MESSAGE
   GOTO 24
32 IF(ES.AND.RC.NE.0)GOTO 31  *REPEAT CONDITIONS
/---------EXIT SEQUENCE 
54 IF(ES.AND.RM NE 0)GOTO 31  *IF REPEAT MODULE 
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   IF(ES.AND.SL.NE.0)GOTO 72   *IF SCOPE LOOP 
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 96A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   CONN,ABT 74               *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
   IF(ES.AND.SL.EQ.0)GOTO 75  *IF NOT SCOPE LOOP
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *YES=POST DISPLAY MESSAGE 
   GOTO 24                   *RESTART 
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 96Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
76 MSG 10(AL) TO PRINT , DISPLAY
   END 20 
COMPILE                    -LP1 20 - CONNECT AND STATUS 
*  *********************************************************
*  *********************************************************
   MODULE LP121 3000(22),LOCK 
*** LP121 - CHECK TRANMISSION PATH
* 
**
* 
*   LP121 - CHECK TRANMISSION PATH
*            -------------------
* 
* 
*   OVERVIEW - MODULE *LP121* CHECKS THE TRANSMISSION PATH TO THE 6681
*              CONTROLLER. A SET OF PARITY SENSITIVE WORDS ARE TRANS- 
*              MITTED AS ILLEGAL FUNCTIONS AND THE CONTROLLER STATUS IS 
*              CHECKED FOR ABSENCE OF PARITY ERRORS DURING TRANSMISSION.
* 
* 
*  DESCRIPTION-CHECK TRANSMISSION PATH(MUST HAVE AL.GE.10)
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  ISSUE PARITY SENSITIVE WORD AS FUNCTION 
*         3.  ERROR IF FUNCTION NOT REJECTED
*         4.  VERIFY INTERNAL REJECT STATUS (6681)
*         5.  REPEAT FROM STEP 1 IF REPEAT CONDITION
*         6.  REPEAT FROM STEP 1 TILL ALL WORDS ISSUED
* 
* 
*   ERRORS DETECTED 
*         1.  ABORT ON (CONN) 
*         2.  ABORT ON (FUNC) 
*         3.  ABORT ON (STATUS) 
*         4.  6681 STATUS ERROR (300) 
*         5.  NO ABORT FROM ILLEGAL FUNCTION (400)
*         6.  ACCESS LEVEL .LT. 10
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (CONN) AT LINE *OCT
*         2.  ABORT ON (FUNC) AT LINE *OCT
*         3.  ABORT ON (STATUS) AT LINE *OCT
*         4.  6681 STATUS ERROR.
*         5.  NO ABORT FROM ILLEGAL FUNCTION. 
*         6.  LP121 NOT EXECUTED - AL=*OCT , NEEDS AL.GE.10 
* 
*** LP121 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP196A - ERROR PROCESSOR
*         LP196Z - ERROR PROCESSOR
* 
* 
*  *********************************************************
* 
/---------CHECK THE TRANSMISSION PATH TO THE 6681 
/---------CONTROLLER FOR PARITY ERRORS. 
1  FORMAT LP121 6681 TRANSMISSION PARITY CHECK
2  FORMAT LP121 LC*DEC EC*DEC ST*OCT
3  FORMAT LP121 ABORT ON (CONN) AT LINE *OCT
4  FORMAT LP121 ABORT ON (FUNC) AT LINE *OCT
5  FORMAT LP121 ABORT ON (STATUS) AT LINE *OCT
10 FORMAT LP121 NOT EXECUTED - AL=*OCT ,NEEDS AL.GE.10
15 FORMAT LP121 ERROR CODE *OCT, AT LINE *OCT 
17 FORMAT *DEC ERROR(S) IN LP121
* 
*   PARITY SENSITIVE DATA WORDS TRANSMITTED ONE AT A TIME.
*   B1 USED AS AN INDEX.
* 
   DATA(OB(1),CON)6662,6626,6266,2666,5514,5145,1455,4551,
  ,7770,7707,7077,0777,6530,5306,3065,0653,1111,2222,3333,
  ,4444 
20 MSG 1 TO PRINT 
22 MSG 1 TO DISPLAY 
   IF(AL.LT.10)GOTO 76       *IF AL ERROR 
   B1=1                      *INITIALIZE INDEX
24 GOSUB 60                  *CONNECT 
25 B4=4 
   FUNC OB(B1),ABT 26        *ISSUE FUNCTION
   ERROR 15/400,GOSUB 71     *ERROR IF NO ABORT 
26 B4=5 
   STATUS8 TO SB(0),ABT 74   *GET 6681 STATUS 
   IF(SB(0).AND.7.NE.1)ERROR 15/300,GOSUB 71  *IF ERROR 
30 IF(ES.AND.SL EQ 0)GOTO 32  *IF NOT SCOPE LOOP
31 B6=B6+1
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *POST SCOPE LOOP MESSAGE
   GOTO 24
32 IF(ES.AND.RC NE 0)GOTO 31  *REPEAT IF IN SCOPE LOOP
   GOTO 24 WHILE (B1+1 LT 25) 
/---------EXIT SEQUENCE 
54 IF(ES.AND.RM EQ 0)GOTO 55  *IF NOT REPEAT MODULE 
   B1=1 
   GOTO 31
55 IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE ****************************** 
60 B4=3 
   CONN,ABT 74               *CONNECT 
61 B4=5 
   STATUS 1 WORDS TO SB(1),ABT 74  *GET STATUS
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 64  *CHECK STATUS 
   IF(ES.AND.SL.NE.0)GOTO 60  *IF SCOPE LOOP
   REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
64 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   IF(ES.AND.SL NE 0)GOTO 72  *IF NOT SCOPE LOOP
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 96A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   CONN,ABT 74               *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
   IF(ES.AND.SL.EQ.0)GOTO 75  *IF NOT SCOPE LOOP
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *YES=POST DISPLAY MESSAGE 
   GOTO 24                   *RESTART 
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 96Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
76 MSG 10(AL) TO PRINT , DISPLAY
   END 20 
COMPILE                    -LP1 21 - CHECK TRANMISSION PATH 
*  *********************************************************
*  *********************************************************
   MODULE LP122 3000(22),LOCK 
*** LP122 - CHECK LEGAL FUNCTIONS 
* 
**
* 
*   LP122 - CHECK LEGAL FUNCTIONS 
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP122* CHECKS THE ABILITY OF THE PRINTER TO
*               ACCEPT AND EXECUTE ALL LEGAL FUNCTIONS EXCEPT 
*               *FILL IMAGE MEMORY* (12), WHICH CAN BE TESTED 
*               WITH MODULES 12 OR 24 . THE FUNCTION
*              CODES ARE CONTAINED IN THE OUTPUT BUFFER AND ARE ISSUED
*              ONE AT A TIME USING AN INDEX.
* 
* 
*  DESCRIPTION-CHECK LEGAL FUNCTIONS(MUST HAVE AL.GE.10)
* 
*         1.  SET NUMBER OF FUNCTIONS TO BE ISSUED
*         2.  CONNECT AND CHECK STATUS
*         3.  ISSUE FUNCTION
*         4.  REPEAT FROM STEP 2 IF REPEAT CONDITION
*         5.  REPEAT FROM STEP 2 FOR ALL LEGAL FUNCTIONS
* 
*               NOTE
*                 IF AN ERROR IS DETECTED THE FAILING FUNCTION IS 
*                 CONTAINED IN THE *LF* FIELD OF THE COMMON 
*                 MESSAGE FORMAT. 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON (CONN) 
*         2.  ABORT ON (FUNC) 
*         3.  ABORT ON (STATUS) 
*         4.  ACCESS LEVEL .LT. 10
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (CONN) AT LINE *OCT
*         2.  ABORT ON (FUNC) AT LINE *OCT
*         3.  ABORT ON (STATUS) AT LINE *OCT
*         4.  LP122 NOT EXECUTED - AL=*OCT , NEEDS AL.GE.10 
* 
* 
*** LP122 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP196Z - ERROR PROCESSOR
* 
* 
*  *********************************************************
* 
/---------THIS MODULE CHECKS THE ABILITY OF THE PRINTER 
/---------TO ACCEPT AND EXECUTE LEGAL FUNCTION CODES. 
1  FORMAT LP122 LEGAL FUNCTION CHECK
2  FORMAT LP122 LC*DEC EC*DEC ST*OCT
3  FORMAT LP122 ABORT ON (CONN) AT LINE *OCT
4  FORMAT LP122 ABORT ON (FUNC) AT LINE *OCT
5  FORMAT LP122 ABORT ON (STATUS) AT LINE *OCT
10 FORMAT LP122 NOT EXECUTED - AL=*OCT ,NEEDS AL.GE.10
17 FORMAT *DEC ERROR(S) IN LP122
* 
*   LEGAL FUNCTIONS ISSUED USING B1 AS INDEX. 
* 
* 
   DATA(OB(1),CON)0,1,2,3,4,5,6,7,10,11,13,14,20,21,22,23,
  ,24,25,26,30,31,32,33,34,35,36,37,40,41,42,43,44,50,51,52,
  ,53,54,55,56,57,60,61,62,63,64,30 
20 MSG 1 TO PRINT 
22 MSG 1 TO DISPLAY 
   IF(AL.LT.10)GOTO 76       *IF AL ERROR 
   B1=1                      *INITIALIZE INDEX B1 
24 GOSUB 60                  *CONNECT 
25 B4=4 
   FUNC OB(B1),ABT 74        *ISSUE FUNCTION
   IF(ES.AND.SL.EQ.0)GOTO 32
30 B6=B6+1
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *POST SCOPE LOOP MESSAGE
   GOTO 24
32 IF(ES.AND.RC NE 0)GOTO 30  *REPEAT CONDITION LOOP
   GOTO 24 WHILE (B1+1 LE 56) 
/---------EXIT SEQUENCE 
54 IF(ES.AND.RM EQ 0)GOTO 55  *IF NOT REPEAT MODULE 
   B1=1 
   GOTO 30
55 IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE ****************************** 
60 B4=3 
   CONN,ABT 74               *CONNECT 
61 B4=5 
   STATUS 1 WORDS TO SB(1),ABT 74  *GET STATUS
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 64  *CHECK STATUS 
   IF(ES.AND.SL.NE.0)GOTO 60  *IF SCOPE LOOP
   REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
64 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
   IF(ES.AND.SL.EQ.0)GOTO 75  *IF NOT SCOPE LOOP
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *YES=POST DISPLAY MESSAGE 
   GOTO 24                   *RESTART 
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 96Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
76 MSG 10(AL) TO PRINT , DISPLAY
   END 20 
COMPILE                    -LP1 22 - CHECK LEGAL FUNCTIONS
*  *********************************************************
*  *********************************************************
   MODULE LP123 3000(22),LOCK 
*** LP123 - CHECK ILLEGAL FUNCTION
* 
**
* 
*   LP123 - CHECK ILLEGAL FUNCTION
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP123* CHECKS THE ABILITY OF PRINTER TO REJECT 
*              ALL ILLEGAL FUNCTIONS. THE FUNCTION CODES ARE CONTAINED
*              IN THE OUTPUT BUFFER AND ARE ISSUED ONE AT A TIME USING
*              AN INDEX. THE FIRST FUNCTION THAT IS ISSUED IS A SINGLE
*              SPACE AND IS NORMALLY LEGAL BUT IN THIS CASE IT IS 
*              EXPECTED TO BE REJECTED HERE AS IT IS ISSUED WHILE THE 
*              PRINTER IS BUSY DOING A PAGE EJECT.
* 
* 
*  DESCRIPTION-CHECK ILLEGAL FUNCTIONS(MUST HAVE AL.GE.10)
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  PAGE EJECT (IF FIRST FUNCTION)
*         3.  ISSUE FUNCTION
*         4.  ERROR IF NO ABORT 
*         5.  REPEAT FROM STEP 1 IF REPEAT CONDITION
*         6.  REPEAT FROM STEP 1 FOR ALL FUNCTIONS
* 
*               NOTE
*                 IF AN ERROR IS DETECTED THE FAILING FUNCTION IS 
*                 CONTAINED IN THE *LF* FIELD OF THE COMMON 
*                 MESSAGE FORMAT. 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON (CONN) 
*         2.  ABORT ON (FUNC) 
*         3.  ABORT ON (STATUS) 
*         4.  NO ABORT FROM ILLEGAL FUNCTION (400)
*         5.  ACCESS LEVEL .LT. 10
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (CONN) AT LINE *OCT
*         2.  ABORT ON (FUNC) AT LINE *OCT
*         3.  ABORT ON (STATUS) AT LINE *OCT
*         4.  NO ABORT FROM ILLEGAL FUNCTION. 
*         5.  LP123 NOT EXECUTED - AL=*OCT , NEEDS AL.GE.10 
* 
* 
*** LP123 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP196A - ERROR PROCESSOR
*         LP196Z - ERROR PROCESSOR
* 
* 
*  *********************************************************
* 
/---------THIS MODULE CHECKS THE ABILITY OF THE PRINTER TO
/---------REJECT ILLEGAL FUNCTIONS
1  FORMAT LP123 ILLEGAL FUNCTION REJECT CHECK 
2  FORMAT LP123 LC*DEC EC*DEC ST*OCT
3  FORMAT LP123 ABORT ON (CONN) AT LINE *OCT
4  FORMAT LP123 ABORT ON (FUNC) AT LINE *OCT
5  FORMAT LP123 ABORT ON (STATUS) AT LINE *OCT
10 FORMAT LP123 NOT EXECUTED - AL=*OCT ,NEEDS AL.GE.10
15 FORMAT LP123 ERROR CODE *OCT, AT LINE *OCT 
17 FORMAT *DEC ERROR(S) IN LP123
* 
*   ILLEGAL FUNCTIONS ISSUED USING B1 AS INDEX. THE FIRST FUNCTION IS 
*   ILLEGAL ONLY WHEN ISSUED WHILE THE PRINTER IS BUSY (IN THIS CASE
*   DOING A PAGE EJECT) 
* 
   DATA(OB(1),CON)1,15,27,45,46,47,67,70,71,72,73,74,75,76, 
  ,77,16,17,65,66 
20 MSG 1 TO PRINT 
   B2=22
22 MSG 1 TO DISPLAY 
   IF(AL.LT.10)GOTO 76       *IF AL ERROR 
   B1=1                      *INITIALIZE INDEX B1 
24 GOSUB 60                  *CONNECT 
25 IF(B1.NE.1)GOTO 26 
   B4=4                      *PAGE EJECT BEFORE 
   FUNC 4,ABT 74             *FIRST FCN ONLY
26 B4=4 
   FUNC OB(B1),ABT 30 
   ERROR 15/400,GOSUB 71     *ERROR IF NO ABORT 
30 IF(ES.AND.SL.EQ.0)GOTO 32
31 B6=B6+1             *SCOPE LOOP /REPEAT CONDITION
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *POST SCOPE LOOP MESSAGE
   GOTO 24
32 IF(ES.AND.RC.NE.0)GOTO 31   *REPEAT CONDITION
   GOTO 24 WHILE(B1+1.LT.B2)  *LOOP THRU FCN LIST 
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0)GOTO 22   *REPEAT MODULE 
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE ****************************** 
60 B4=3 
   CONN,ABT 74               *CONNECT 
61 B4=5 
   STATUS 1 WORDS TO SB(1),ABT 74  *GET STATUS
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 64  *CHECK STATUS 
   IF(ES.AND.SL.NE.0)GOTO 60  *IF SCOPE LOOP
   REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
64 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   IF(ES.AND.SL NE 0)GOTO 72  *IF NOT SCOPE LOOP
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 96A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   CONN,ABT 74               *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
   IF(ES.AND.SL.EQ.0)GOTO 75  *IF NOT SCOPE LOOP
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *YES=POST DISPLAY MESSAGE 
   GOTO 24                   *RESTART 
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 96Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
76 MSG 10(AL) TO PRINT , DISPLAY
   END 20 
COMPILE                    -LP1 23 - CHECK ILLEGAL FUNCTION 
*  *********************************************************
*  *********************************************************
   MODULE LP124 580(22),LOCK
*** LP124 - LOAD TRAIN ARRAY MEMORY 
*            -------------------
**
* 
* 
* 
*   OVERVIEW - MODULE *LP124* LOADS THE APPROPRIATE DATA IN THE TRAIN 
*              ARRAY MEMORY. THE PARAMETER REGISTER P0 CONTAINS THE 
*             TRAIN TYPE CODE. LEGAL TRAIN TYPES ARE 1,2,3,6. IF
*              PARAMETER REGISTER P0 IS NOT SET IT CONTAINS A ZERO AND
*              THE TRAIN TYPE DEFAULTS TO TYPE 1. THE TRAIN ARRAY DATA
*              IS GENERATED IN SUBMODULE LP198D OR LP198E.
* 
* 
* 
* 
*   DESCRIPTION - LOAD TRAIN ARRAY MEMORY 
* 
*         1.  CHECK FOR LEGAL TRAIN TYPE
*         2.  POST DEFAULT SELECTION MESSAGE IF P0=0. 
*         3.  CONNECT AND CHECK STATUS
*         4.  FILL TRAIN IMAGE
*         5.  CHECK STATUS FOR READY NOT BUSY 
*         6.  REPEAT FROM STEP 3 IF REPEAT CONDITION
*         7.  GENERATE RIPPLE PATTERN DATA
*         8.  PRINT 
*         9.  WAIT FOR NOT BUSY 
*        10.  CHECK STATUS FOR READY-AND-NOT-BUSY 
*        11.  REPEAT FROM STEP 8 IF REPEAT CONDITION
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON (RES)
*         2.  ABORT ON (SELECT) 
*         3.  ABORT ON (STATUS) 
*         4.  ABORT ON (FILL) 
*         5.  ABORT ON (PRINT)
*         6.  ABORT ON (WAITNB) 
*         7.  STATUS NOT READY AND NOT BUSY(100)
*         8.  NOT (READY AND NOT BUSY) AFTER
*             FILLING TRAIN IMAGE (122) 
*         9.  ILLEGAL TRAIN ARRAY TYPE
*        10.  ABORT ON (READ) 
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (STATUS) AT LINE *OCT
*         4.  ABORT ON (FILL) AT LINE *OCT
*         5.  ABORT ON (PRINT) AT LINE *OCT 
*         6.  ABORT ON (WAITNB) AT LINE *OCT
*         7.  STATUS IS NOT (READY AND NOT BUSY)
*         8.  FILLED TRAIN IMAGE.EXPECTED READY-AND-NOT BUSY. 
*         9.  TRAIN TYPE ERROR, SHOULD BE 1,2,3,6, IS *OCT
*        10.  ABORT ON (READ) AT LINE *OCT
* 
*** LP124 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B2 - IB COLUMN COUNTER
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
*         B8 - OB WORD COUNTER
*         B9 - WT AFTER PRINT 
*         B10- WT AFTER READ
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
*         LP198B - GENERATE RIPPLE PATTERN DATA 
*         LP198D - GENERATE TRAIN IMAGE DATA
* 
* 
*  *********************************************************
* 
/--------CHECK THE PARAMETER REGISTER P0 TO 
/--------CONTAIN PROPER TRAIN TYPE. IF THE REGISTER CONTAINS
/--------0 OR 1 TRAIN TYPE 1 IS LOADED. 
/--------SUBMODULES GENERATE THE IMAGE MEMORY DATA. 
1  FORMAT LP124 LOAD TRAIN TYPE *OCT
2  FORMAT LP124 LC*DEC EC*DEC ST*OCT
3  FORMAT LP124 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP124 ABORT ON (SELECT) AT LINE *OCT
5  FORMAT LP124 ABORT ON (STATUS) AT LINE *OCT
6  FORMAT LP124 ABORT ON (PRINT) AT LINE *OCT 
7  FORMAT LP124 ABORT ON (WAITNB) AT LINE *OCT
12 FORMAT LP124 ABORT ON (FILL) AT LINE *OCT
13 FORMAT LP124 TRAIN TYPE ERROR, SHOULD BE 1,2,3,6 IS *OCT 
14 FORMAT LP124 PARAMETER P0 NOT SET, TRAIN TYPE 1 ASSUMED
15 FORMAT LP124 ERROR CODE *OCT AT LINE *OCT
16 FORMAT LP124 ABORT ON (READ) AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP124
20 MSG 1 (P0) TO PRINT
   IF(P0.GT.6)GOTO 44 
   IF(P0.NE.0)GOTO 21 
   MSG 14 TO LINE 1          *DEFAULT SELECTION MSG 
21 MSG 1(P0) TO DISPLAY 
22 CALL 98D                  *GENERATE TRAIN IMAGE
24 GOSUB 60                  *CONNECT 
   IF(P0.NE.6) GOTO 25       *IF NOT EXTENDED ARRAY 
   B4=4 
   SELECT EXTENDED,ABT 74 
25 B4=12
   FILL IMAGE,ABT 74         *LOAD TRAIN IMAGE
   B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.3717.NE.1)ERROR 15/122,GOSUB 71 
26 IF(ES.AND.SL.EQ.0)GOTO 30
27 B6=B6+1
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *POST SCOPE LOOP MESSAGE
   GOTO 24
30 IF(ES.AND.RC.NE.0) GOTO 27   *REPEAT CONDITION 
   B4=4 
   IF(P0.EQ.6)GOTO 32        *IF TRAIN TYPE 6 
   SELECT CLREXT,ABT 74      *CLEAR EXTENDED ARRAY
   GOTO 34
32 SELECT EXTENDED,ABT 74 
34 CALL 98B                  *GENERATE RIPPLE PATTERN DATA
36 GOSUB 60 
   B4=6 
   PRINT,ABT 74 
   B4=7 
   WAITNB,ABT 74
   IF(SB(1).AND.3717.NE.1)ERROR 15/100,GOSUB 71 
   IF(ES.AND.SL.EQ.0) GOTO 40    *SCOPE LOOP
37 B6=B6+1
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   GOTO 36
40 IF(ES.AND.RC.NE.0) GOTO 37 
   GOTO 54
/---------HALT...TRAIN PARAM (P0) ERROR 
44 MSG 13(P0) TO LINE 0 
   B7=B7+1
   PICTURE
   HALT 
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 22 
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
   IF(ES.AND.SL.NE.0)GOTO 60  *IF SCOPE LOOP
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   IF(ES.AND.SL NE 0)GOTO 72  *IF SCOPE LOOP
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   IF(SB(1).AND.2000.EQ.0) GOTO 73   *IF NO PRINT ERROR 
   WC = 210 
   BA = 0 
   B4 = 16
   B9 = WT
   READ, ABT 74                      *READ ERROR MEMORY 
   B10 = WT 
73 CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
   IF(ES.AND.SL.EQ.0)GOTO 75  *IF NOT SCOPE LOOP
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *YES=POST DISPLAY MESSAGE 
   GOTO 24                   *RESTART 
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 (P0) TO DISPLAY     *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 24 - LOAD TRAIN ARRAY MEMORY
*  *********************************************************
*  *********************************************************
   MODULE LP132 580(22),LOCK
*** LP132 - CHECK RNB INT - PART 1
* 
**
* 
*   LP132 - CHECK RNB INT - PART 1
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP132* CHECKS THE READY AND NOT BUSY INTERRUPT 
*              IT CHECKS THE INTERRUPT TO BE SELECTED AND CLEARED.
* 
* 
*   DESCRIPTION - CHECK RNB INT - PART 1
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  SELECT RNB INT
*         3.  VERIFY RNB INTERRUPT STATUS 
*         4.  CLEAR RNB INT 
*         5.  VERIFY NO RNB INTERRUPT STATUS
*         6.  REPEAT FROM STEP 1 FOR REPEAT CONDITIONS
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON (RES)
*         2.  ABORT ON (SELECT) 
*         3.  ABORT ON (STATUS) 
*         4.  NO READY-AND-NOT-BUSY INTERRUPT 
*             IN STATIC STATE (101) 
*         5.  READY-AND-NOT-BUSY INTERRUPT FAILED TO CLEAR
*             IN STATIC STATE (102) 
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (STATUS) AT LINE *OCT
*         4.  SELECTED READY-AND-NOT-BUSY INTERRUPT 
*             IN STATIC STATE 
*         5.  CLEARED READY-AND-NOT-BUSY INTERRUPT
*             IN STATIC STATE 
* 
*** LP132 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
* 
* 
*  *********************************************************
* 
/--------CHECK READY-AND-NOT-BUSY INTERRUPT  I
1  FORMAT LP132 READY-AND-NOT-BUSY INTERRUPT PART 1 
2  FORMAT LP132 LC*DEC EC*DEC ST*OCT
3  FORMAT LP132 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP132 ABORT ON (SELECT) AT LINE *OCT
5  FORMAT LP132 ABORT ON (STATUS) AT LINE *OCT
15 FORMAT LP132 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP132
20 MSG 1 TO PRINT 
22 MSG 1 TO DISPLAY 
24 GOSUB 60                  *CONNECT 
25 B4=4 
   SELECT RNBINT,ABT 74 
   B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.3717.NE.201)ERROR 15/101,GOSUB 71 
26 B4=4 
   SELECT CLRRNB,ABT 74 
   B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.3717.NE.1)ERROR 15/102,GOSUB 71 
30 IF(ES.AND.SL.EQ.0)GOTO 32
31 B6=B6+1
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *POST SCOPE LOOP MESSAGE
   GOTO 24
32 IF(ES.AND.RC.NE.0)GOTO 31
/---------EXIT SEQUENCE 
54 IF(ES.AND.RM NE 0)GOTO 31  *IF REPEAT MODULE 
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
   IF(ES.AND.SL.NE.0)GOTO 60  *IF SCOPE LOOP
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   IF(ES.AND.SL NE 0)GOTO 72  *IF SCOPE LOOP
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
   IF(ES.AND.SL.EQ.0)GOTO 75  *IF NOT SCOPE LOOP
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *YES=POST DISPLAY MESSAGE 
   GOTO 24                   *RESTART 
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 32 - CHECK RNB INT - PART 1 
*  *********************************************************
*  *********************************************************
   MODULE LP133 580(22),LOCK
*** LP133 - CHECK RNB INT - PART 2
* 
**
* 
*   LP133 - CHECK RNB INT - PART 2
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP133* CHECKS THE READY AND NOT BUSY INTERRUPT 
*              IT CHECKS THE INTERRUPT TO BE SELECTED AND CLEARED 
*              BY A RELEASE AND RECONNECT.
* 
* 
*   DESCRIPTION - CHECK RNB INT - PART 2
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  SELECT RNB INT
*         3.  VERIFY RNB INTERRUPT STATUS 
*         4.  RELEASE 
*         5.  RECONNECT 
*         6.  VERIFY NO RNB INTERRUPT STATUS
*         7.  REPEAT FROM STEP 1 IF REPEAT CONDITIONS 
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON (RES)
*         2.  ABORT ON (SELECT) 
*         3.  ABORT ON (STATUS) 
*         4.  NO READY-AND-NOT-BUSY INTERRUPT 
*             IN STATIC STATE (101) 
*         5.  READY-AND-NOT-BUSY INTERRUPT FAILED TO CLEAR
*             BY RECONNECTING (103) 
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (STATUS) AT LINE *OCT
*         4.  SELECTED READY-AND-NOT-BUSY INTERRUPT 
*             IN STATIC STATE 
*         5.  CLEARED READY-AND-NOT-BUSY INTERRUPT
*             BY RECONNECTING 
* 
*** LP133 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
* 
* 
*  *********************************************************
* 
/--------CHECK READY-AND-NOT-BUSY INTERRUPT  II 
1  FORMAT LP133 READY-AND-NOT-BUSY INTERRUPT PART 2 
2  FORMAT LP133 LC*DEC EC*DEC ST*OCT
3  FORMAT LP133 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP133 ABORT ON (SELECT) AT LINE *OCT
5  FORMAT LP133 ABORT ON (STATUS) AT LINE *OCT
15 FORMAT LP133 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP133
20 MSG 1 TO PRINT 
22 MSG 1 TO DISPLAY 
24 GOSUB 60                  *CONNECT 
   B4=4 
   SELECT RNBINT,ABT 74 
   B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.3717.NE.201)ERROR 15/101,GOSUB 71 
26 GOSUB 61                  *CLEAR INT BY RELEASE
   IF(SB(1).AND.3717.NE.1)ERROR 15/103,GOSUB 71  *IF INT
   IF(ES.AND.RC.EQ.0)GOTO 54  *IF NOT REPEAT CONDITIONS 
34 B6=B6+1
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   GOTO 24
/---------EXIT SEQUENCE 
54 IF(ES.AND.RM NE 0)GOTO 34  *IF REPEAT MODULE 
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 33 - CHECK RNB INT - PART 2 
*  *********************************************************
*  *********************************************************
   MODULE LP134 580(22),LOCK
*** LP134 - CHECK RNB INT - PART 3
* 
**
* 
*   LP134 - CHECK RNB INT - PART 3
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP134* CHECKS THE READY AND NOT BUSY INTERRUPT.
*              IT CHECKS THE INTERRUPT BY INITIATING A PRINT OPERATION, 
*              SELECTING THE INTERRUPT AND EXPECTING IT TO BE PRESENT 
*              WHEN THE PRINT OPERATION IS FINISHED. THE INTERRUPT IS 
*              THEN CLEARED DURING THE NEXT PRINT OPERATION.
* 
* 
*   DESCRIPTION - CHECK RNB INT - PART 3
* 
*         1.  PREPARE DATA FOR PRINTING 
*         2.  CLEAR FORMAT SELECTIONS 
*         3.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         4.  CONNECT AND CHECK STATUS
*         5.  ISSUE LINE FOR PRINTING 
*         6.  SELECT RNB INT WHILE BUSY 
*         7.  WAIT TILL NOT BUSY
*         8.  VERIFY RNB INTERRUPT STATUS 
*         9.  ISSUE LINE FOR PRINTING 
*        10.  CLEAR RNB INT WHILE BUSY
*        11.  VERIFY NO INTERRUPT STATUS
*        12.  WAIT TILL NOT BUSY
*        13.  VERIFY NO INTERRUPT STATUS
*        14.  REPEAT FROM STEP 4 IF REPEAT CONDITIONS 
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON (RES)
*         2.  ABORT ON (SELECT) 
*         3.  ABORT ON (STATUS) 
*         4.  ABORT ON (PRINT)
*         5.  UNEXPECTED NOT READY AND NOT BUSY(100)
*         6.  NO READY-AND-NOT-BUSY INTERRUPT STATUS
*             AFTER A PRINT OPERATION. (104)
*         7.  READY-AND-NOT-BUSY INTERRUPT FAILED TO CLEAR
*             DURING A PRINT OPERATION. (105) 
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (STATUS) AT LINE *OCT
*         4.  ABORT ON (PRINT) AT LINE *OCT 
*         5.  STATUS IS NOT (READY AND NOT BUSY)
*         6.  SELECTED READY-AND-NOT-BUSY INTERRUPT 
*             DURING A PRINT OPERATION. EXPECTED INT. 
*         7.  CLEARED READY-AND-NOT-BUSY INTERRUPT
*             DURING A PRINT OPERATION. EXPECTED NO INT.
* 
*** LP134 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
* 
* 
*  *********************************************************
* 
/--------CHECK READY-AND-NOT-BUSY INTERRUPT III 
1  FORMAT LP134 READY-AND-NOT-BUSY INTERRUPT PART 3 
2  FORMAT LP134 LC*DEC EC*DEC ST*OCT
3  FORMAT LP134 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP134 ABORT ON (SELECT) AT LINE *OCT
5  FORMAT LP134 ABORT ON (STATUS) AT LINE *OCT
6  FORMAT LP134 ABORT ON (PRINT) AT LINE *OCT 
15 FORMAT LP134 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP134
* 
*   CHARACTER CODE FOR TRAIN TYPE 1 THRU 3
* 
*   OB(1) - OB(6) CHARACTER CODE FOR *RDY BSY INT*
* 
*   CHARACTER CODE FOR TRAIN TYPE 6 
* 
*   OB(7) - OB(21) CHARACTER CODE FOR *RDY BSY INT* 
* 
   DATA(OB(1),CON)5124,7060,2262,7060,3145,6360,122,104,131,
  ,40,102,123,131,40,111,116,124
20 MSG 1 TO PRINT 
22 MSG 1 TO DISPLAY 
23 GOSUB 60 
   B4=4 
   SELECT CLEAR,ABT 74
   WC=6                      *FOR TRAIN TYPE 1 THRU 3 
   BA=1 
   IF(P0.NE.6)GOTO 24 
   WC=13                     *FOR TRAIN TYPE 6
   BA=7 
   SELECT EXTENDED,ABT 74 
24 GOSUB 60                  *CONNECT 
25 B4=6 
   PRINT,ABT 74 
   B4=4 
   SELECT RNBINT,ABT 74      *SELECT INT WHILE PRINTING 
   B1=0 
26 B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.2.EQ.0)GOTO 27  *IF NOT BUSY
   DELAY 100 MSEC 
   GOTO 26 WHILE (B1+1.LE.20)  *WAIT FOR NOT BUSY 
27 IF(SB(1).AND.3717.NE.201)ERROR 15/104,GOSUB 71  *NO INT
32 B4=6 
   PRINT,ABT 74 
   B4=4 
   SELECT CLRRNB,ABT 74      *CLEAR INT WHILE PRINTING
   B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.3717.NE.103)ERROR 15/105,GOSUB 71  *IF INT
   B1=0 
34 B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.2.EQ.0)GOTO 35  *IF NOT BUSY
   DELAY 100 MSEC 
   GOTO 34 WHILE (B1+1.LE.20)   *WAIT FOR NOT BUSY
35 IF(SB(1).AND.3717.NE.1)ERROR 15/100,GOSUB 71  *IF INT
36 IF(ES.AND.SL.EQ.0)GOTO 40
37 B6=B6+1           *SCOPE LOOP/RC 
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *POST SCOPE LOOP MESSAGE
   GOTO 24
40 IF(ES.AND.RC.NE.0)GOTO 37   *REPEAT CONDITION
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 23   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
   IF(ES.AND.SL.NE.0)GOTO 60  *IF SCOPE LOOP
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   IF(ES.AND.SL NE 0)GOTO 72  *IF SCOPE LOOP
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
   IF(ES.AND.SL.EQ.0)GOTO 75  *IF NOT SCOPE LOOP
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *YES=POST DISPLAY MESSAGE 
   GOTO 23                   *RESTART 
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 23        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 34 - CHECK RNB INT - PART 3 
*  *********************************************************
*  *********************************************************
   MODULE LP135 580(22),LOCK
*** LP135 - CHECK EOP INT - PART 1
* 
**
* 
*   LP135 - CHECK EOP INT - PART 1
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP135* CHECKS THE END OF OPERATION INTERRUPT.
*              IT SELECTS THE INTERRUPT, INITIATES A SINGLE SPACE AND 
*              EXPECTS THE INTERRUPT TO BE PRESENT AT THE END OF THE
*              SINGLE SPACE OPERATION. THE INTERRUPT IS THEN CLEARED. 
* 
* 
*   DESCRIPTION - CHECK EOP INT - PART 1
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  SELECT EOP INTERRUPT
*         3.  SINGLE SPACE
*         4.  WAIT FOR NOT BUSY 
*         5.  VERIFY INTERRUPT STATUS 
*         6.  CLEAR EOP INTERRUPT 
*         7.  VERIFY NO INTERRUPT STATUS
*         8.  REPEAT FROM STEP 1 IF REPEAT CONDITION
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON (RES)
*         2.  ABORT ON (SELECT) 
*         3.  ABORT ON (STATUS) 
*         4.  ABORT ON (SPACE)
*         5.  NO E-O-P INTERRUPT
*             AFTER SPACE FUNCTION.(106)
*         6.  E-O-P INTERRUPT FAILED TO CLEAR (107) 
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (STATUS) AT LINE *OCT
*         4.  ABORT ON (SPACE) AT LINE *OCT 
*         5.  SELECTED E-O-P INTERRUPT. NO INTERRUPT
*             AFTER SPACE FUNCTION. 
*         6.  CLEARED E-O-P INTERRUPT. EXPECTED NO
*             INTERRUPT STATUS. 
* 
*** LP135 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
* 
* 
*  *********************************************************
* 
/---------THIS MODULE CHECKS THE END OF OPERATION INTERRUPT 
1  FORMAT LP135 END-OF-OPERATION INTERRUPT PART 1 
2  FORMAT LP135 LC*DEC EC*DEC ST*OCT
3  FORMAT LP135 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP135 ABORT ON (SELECT) AT LINE *OCT
5  FORMAT LP135 ABORT ON (STATUS) AT LINE *OCT
10 FORMAT LP135 ABORT ON (SPACE) AT LINE *OCT 
15 FORMAT LP135 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP135
20 MSG 1 TO PRINT 
22 MSG 1 TO DISPLAY 
24 GOSUB 60                  *CONNECT 
25 B4=4 
   SELECT EOPINT,ABT 74 
   B4=10
   SPACE 1,ABT 74            *INITIATE OPERATION
   B1=0 
26 B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.2.EQ.0)GOTO 27  *IF NOT BUSY
   DELAY 100 MSEC 
   GOTO 26 WHILE (B1+1.LE.20)   *WAIT FOR NOT BUSY
   ERROR 15/100 GOSUB 71        *IF STILL BUSY
27 IF(SB(1).AND.3717.NE.401)ERROR 15/106,GOSUB 71  *NO INT
32 B4=4 
   SELECT CLREOP,ABT 74      *CLEAR INTERRUPT 
   B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.3717.NE.1)ERROR 15/107,GOSUB 71  *IF INT
34 IF(ES.AND.SL.EQ.0)GOTO 36
35 B6=B6+1          *SCOPE LOOP /REPEAT CONDITION 
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *POST SCOPE LOOP MESSAGE
   GOTO 24
36 IF(ES.AND.RC.NE.0) GOTO 35   *REPEAT CONDITION 
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 24   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
   IF(ES.AND.SL.NE.0)GOTO 60  *IF SCOPE LOOP
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   IF(ES.AND.SL NE 0)GOTO 72  *IF SCOPE LOOP
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
   IF(ES.AND.SL.EQ.0)GOTO 75  *IF NOT SCOPE LOOP
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *YES=POST DISPLAY MESSAGE 
   GOTO 24                   *RESTART 
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 35 - CHECK EOP INT - PART 1 
*  *********************************************************
*  *********************************************************
   MODULE LP136 580(22),LOCK
*** LP136 - CHECK EOP INT - PART 2
* 
**
* 
*   LP136 - CHECK EOP INT - PART 2
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP136* CHECKS THE END OF OPERATION INTERRUPT.
*              IT CHECKS THE INTERRUPT BY INITIATING A PRINT OPERATION, 
*              SELECTING THE INTERRUPT AND EXPECTING IT TO BE PRESENT 
*              WHEN THE PRINT OPERATION IS FINISHED. THE INTERRUPT IS 
*              THEN CLEARED.
* 
* 
*   DESCRIPTION - CHECK EOP INT - PART 2
* 
*         1.  PREPARE DATA FOR PRINTING 
*         2.  CONNECT AND CHECK STATUS
*         3.  CLEAR FORMAT SELECTIONS 
*         4.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         5.  CONNECT AND CHECK STATUS
*         6.  ISSUE LINE FOR PRINTING 
*         7.  SELECT EOP INTERRUPT
*         8.  WAIT FOR NOT BUSY 
*         9.  VERIFY INTERRUPT STATUS 
*        10.  CLEAR EOP INTERRUPT 
*        11.  VERIFY NO INTERRUPT STATUS
*        12.  REPEAT FROM STEP 5 IF REPEAT CONDITION
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON (RES)
*         2.  ABORT ON (SELECT) 
*         3.  ABORT ON (STATUS) 
*         4.  ABORT ON (PRINT)
*         5.  E-O-P INTERRUPT FAILED TO CLEAR (107) 
*         6.  NO END-OF-OPERATION INTERRUPT 
*             STATUS AFTER PRINT (110)
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (STATUS) AT LINE *OCT
*         4.  ABORT ON (PRINT) AT LINE *OCT 
*         5.  CLEARED E-O-P INTERRUPT. EXPECTED NO
*             INTERRUPT STATUS. 
*         6.  SELECTED END-OF-OPERATION INTERRUPT.
*             EXPECTED INTERRUPT AFTER PRINT. 
* 
*** LP136 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
* 
* 
*  *********************************************************
* 
/---------THIS MODULE CHECKS THE END OF OPERATION INTERRUPT 
1  FORMAT LP136 END-OF-OPERATION INTERRUPT PART 2 
2  FORMAT LP136 LC*DEC EC*DEC ST*OCT
3  FORMAT LP136 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP136 ABORT ON (SELECT) AT LINE *OCT
5  FORMAT LP136 ABORT ON (STATUS) AT LINE *OCT
6  FORMAT LP136 ABORT ON (PRINT) AT LINE *OCT 
15 FORMAT LP136 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP136
* 
*   CHARACTER CODE FOR TRAIN TYPE 1 THRU 3
* 
*   OB(1) - OB(6) CHARACTER CODE FOR *END OPER INT* 
* 
*   CHARACTER CODE FOR TRAIN TYPE 6 
* 
*   OB(7) - OB(22) CHARACTER CODE FOR *END OPER INT*
* 
   DATA(OB(1),CON)2545,2460,4647,2551,6031,4563,105,116,104,
  ,40,117,120,105,122,40,111,116,124
20 MSG 1 TO PRINT 
22 MSG 1 TO DISPLAY 
23 GOSUB 60 
   B4=4 
   SELECT CLEAR,ABT 74
   WC=6                      *FOR TRAIN TYPE 1 THRU 3 
   BA=1 
   IF(P0.NE.6)GOTO 24 
   WC=14                     *FOR TRAIN TYPE 6
   BA=7 
   SELECT EXTENDED,ABT 74 
24 GOSUB 60                  *CONNECT 
   B4=6 
   PRINT,ABT 74 
   B4=4 
   SELECT EOPINT,ABT 74 
   B1=0 
25 B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.2.EQ.0)GOTO 26  *IF NOT BUSY
   DELAY 100 MSEC 
   GOTO 25 WHILE (B1+1.LE.20)  *WAIT FOR NOT BUSY 
26 IF(SB(1).AND.3717.NE.401)ERROR 15/110,GOSUB 71  *NO INT
32 B4=4 
   SELECT CLREOP,ABT 74 
   B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.3717.NE.1)ERROR 15/107,GOSUB 71  *IF INT
34 IF(ES.AND.SL.EQ.0)GOTO 36
35 B6=B6+1             *SCOPE LOOP /REPEAT CONDITION
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *POST SCOPE LOOP MESSAGE
   GOTO 24
36 IF(ES.AND.RC.NE.0)GOTO 35   *REPEAT CONDITION
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 23   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
   IF(ES.AND.SL.NE.0)GOTO 60  *IF SCOPE LOOP
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   IF(ES.AND.SL NE 0)GOTO 72  *IF SCOPE LOOP
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
   IF(ES.AND.SL.EQ.0)GOTO 75  *IF NOT SCOPE LOOP
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *YES=POST DISPLAY MESSAGE 
   GOTO 23                   *RESTART 
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 23        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 36 - CHECK EOP INT - PART 2 
*  *********************************************************
*  *********************************************************
   MODULE LP137 580(22),LOCK
*** LP137 -CHECK EOP INT - PART 3 
* 
**
* 
*   LP137 -CHECK EOP INT - PART 3 
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP137* CHECKS THE END OF OPERATION INTERRUPT.
*              IT CHECKS THE INTERRUPT BY INITIATING A PRINT OPERATION, 
*              SELECTING THE INTERRUPT AND EXPECTING IT TO BE PRESENT 
*              WHEN THE PRINT OPERATION IS FINISHED. THE INTERRUPT IS 
*              THEN CLEARED BY RESELECTION. 
* 
* 
*   DESCRIPTION - CHECK EOP INT - PART 3
* 
*         1.  PREPARE DATA FOR PRINTING 
*         2.  CLEAR FORMAT SELECTIONS 
*         3.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         4.  CONNECT AND CHECK STATUS
*         5.  ISSUE LINE FOR PRINTING 
*         6.  SELECT EOP INTERRUPT
*         7.  WAIT FOR NOT BUSY 
*         8.  VERIFY INTERRUPT STATUS 
*         9.  SELECT EOP INTERRUPT
*        10.  VERIFY NO INTERRUPT STATUS
*        11.  ISSUE LINE FOR PRINTING 
*        12.  CLEAR EOP INTERRUPT 
*        13.  WAIT FOR NOT BUSY 
*        14.  VERIFY NO INTERRUPT STATUS
*        15.  REPEAT FROM STEP 4 IF REPEAT CONDITION
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON (RES)
*         2.  ABORT ON (SELECT) 
*         3.  ABORT ON (STATUS) 
*         4.  ABORT ON (PRINT)
*         5.  NO END-OF-OPERATION INTERRUPT 
*             STATUS AFTER PRINT (110)
*         6.  END-OF-OPERATION INTERRUPT FAILED TO CLEAR BY 
*             RE-SELECTING.  (111)
*         7.  END-OF-OPERATION INTERRUPT FAILED TO CLEAR WHILE
*             WHILE BUSY.  (112)
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (STATUS) AT LINE *OCT
*         4.  ABORT ON (PRINT) AT LINE *OCT 
*         5.  SELECTED END-OF-OPERATION INTERRUPT.
*             EXPECTED INTERRUPT AFTER PRINT. 
*         6.  CLEARED END-OF-OPERATION INTERRUPT BY 
*             RE-SELECTING.  EXPECTED NO INTERRUPT. 
*         7.  CLEARED END-OF-OPERATION INTERRUPT
*             WHILE BUSY.  EXPECTED NO INTERRUPT. 
* 
*** LP137 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
* 
* 
*  *********************************************************
* 
/---------THIS MODULE CHECKS THE END OF OPERATION INTERRUPT 
1  FORMAT LP137 END-OF-OPERATION INTERRUPT PART 3 
2  FORMAT LP137 LC*DEC EC*DEC ST*OCT
3  FORMAT LP137 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP137 ABORT ON (SELECT) AT LINE *OCT
5  FORMAT LP137 ABORT ON (STATUS) AT LINE *OCT
6  FORMAT LP137 ABORT ON (PRINT) AT LINE *OCT 
15 FORMAT LP137 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP137
* 
*   CHARACTER CODE FOR TRAIN TYPE 1 THRU 3
* 
*   OB(1) - OB(6) CHARACTER CODE FOR *END OPER INT* 
* 
*   CHARACTER CODE FOR TRAIN TYPE 6 
* 
*   OB(7) - OB(22) CHARACTER CODE FOR *END OPER INT*
* 
   DATA(OB(1),CON)2545,2460,4647,2551,6031,4563,105,116,104,
  ,40,117,120,105,122,40,111,116,124
20 MSG 1 TO PRINT 
22 MSG 1 TO DISPLAY 
23 GOSUB 60 
   B4=4 
   SELECT CLEAR,ABT 74
   WC=6                      *FOR TRAIN TYPE 1 THRU 3 
   BA=1 
   IF(P0.NE.6)GOTO 24 
   WC=14                     *FOR TRAIN TYPE 6
   BA=7 
   SELECT EXTENDED,ABT 74 
24 GOSUB 60                  *CONNECT 
   B4=6 
   PRINT,ABT 74 
   B4=4 
   SELECT EOPINT,ABT 74 
   B1=0 
25 B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.2.EQ.0)GOTO 26  *IF NOT BUSY
   DELAY 100 MSEC 
   GOTO 25 WHILE (B1+1.LE.20)  *WAIT FOR NOT BUSY 
26 IF(SB(1).AND.3717.NE.401)ERROR 15/110,GOSUB 71  *NO INT
   B4=4 
   SELECT EOPINT,ABT 74      *CLEAR BY RESELECTING
   B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.3717.NE.1)ERROR 15/111,GOSUB 71  *IF INT
34 B4=6 
   PRINT,ABT 74 
   B4=4 
   SELECT CLREOP,ABT 74      *CLEAR WHILE BUSY
   B1=0 
35 B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.2.EQ.0)GOTO 36  *IF NOT BUSY
   DELAY 100 MSEC 
   GOTO 35 WHILE (B1+1.LE.20)  *WAIT FOR NOT BUSY 
36 IF(SB(1).AND.3717.NE.1)ERROR 15/112,GOSUB 71  *IF INT
   IF(ES.AND.SL.EQ.0)GOTO 40
37 B6=B6+1             *SCOPE LOOP /REPEAT CONDITION
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *POST SCOPE LOOP MESSAGE
   GOTO 24
40 IF(ES.AND.RC.NE.0)GOTO 37   *REPEAT CONDITION
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 23   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
   IF(ES.AND.SL.NE.0)GOTO 60  *IF SCOPE LOOP
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   IF(ES.AND.SL NE 0)GOTO 72  *IF SCOPE LOOP
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
   IF(ES.AND.SL.EQ.0)GOTO 75  *IF NOT SCOPE LOOP
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *YES=POST DISPLAY MESSAGE 
   GOTO 23                   *RESTART 
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 23        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 37 -CHECK EOP INT - PART 3
*  *********************************************************
*  *********************************************************
   MODULE LP138 580(22),LOCK
*** LP138 - CHECK ABN EOP INT PART 1
* 
**
* 
*   LP138 - CHECK ABN EOP INT PART 1
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP138* CHECKS THE ABNORMAL END OF OPERATION
*              INTERRUPT. PART 1 RUNS ON PRINTERS WITH TRAIN TYPE 2, 3
*              OR 6 ONLY. IT CHECKS THE INTERRUPT BY SELECTING IT,
*              ALONG WITH THE END OF OPERATION INTERRUPT, PRINTING A
*              LINE WITH BAD CHARACTERS CODES IN IT, AND CHECKING FOR 
*              THE INTERRUPTS TO BE PRESENT AT THE END OF THE PRINTING
*              OPERATION. IT ALSO CHECKS THE PRINTER TO DETECT BAD
*              CHARACTER CODES. THE INTERRUPTS ARE THEN CLEARED.
* 
*              PART 2 IS RUN ON PRINTERS WITH ALL TRAIN TYPES.
*              IT CHECKS THE INTERRUPT BY SELECTING IT, 
*              ALONG WITH THE END OF OPERATION INTERRUPT, PRINTING A
*              LINE WITH NO BAD CHARACTERS CODES IN IT, AND CHECKING
*              FOR THE ABN EOP INTERRUPT TO BE ABSENT AND THE EOP 
*              INTERRUPT TO BE PRESENT AT THE END OF THE PRINTING 
*              OPERATION. THE INTERRUPTS ARE THEN CLEARED.
* 
* 
*   DESCRIPTION - CHECK ABN EOP INT - PART 1 (LP138)
* 
*         1.  CLEAR FORMAT SELECTIONS 
*         2.  EXIT TO PART 2 (LP138A) IF TRAIN TYPE NOT 2,3 OR 6
*         3.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         4.  CONNECT AND CHECK STATUS
*         5.  SELECT ABN EOP INTERRUPT
*         6.  SINGLE SPACE
*         7.  WAIT FOR NOT BUSY 
*         8.  VERIFY NO INTERRUPT 
*         9.  SELECT EOP INTERRUPT
*        10.  PRINT A LINE WITH BAD CHARACTER CODES 
*        11.  WAIT FOR NOT BUSY 
*        12.  VERIFY ABNORMAL EOP INTERRUPT,
*             EOP INTERRUPT, PRINT ERROR AND COMPARE
*             FAULT STATUS
*        13.  CLEAR ABN EOP INTERRUPT 
*        14.  VERIFY NO ABN EOP INTERRUPT STATUS
*        15.  CLEAR EOP INTERRUPT 
*        16.  VERIFY NO EOP INTERRUPT STATUS
*        17.  REPEAT FROM STEP 4 IF REPEAT CONDITION
* 
* 
*   DESCRIPTION - CHECK ABN EOP INT - PART 2 (LP138A) 
* 
*         1.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         2.  CONNECT AND CHECK STATUS
*         3.  SELECT ABN EOP INTERRUPT
*         4.  SELECT EOP INTERRUPT
*         5.  PRINT A LINE WITH NO BAD CHARACTER CODES
*         6.  WAIT NOT BUSY 
*         7.  VERIFY NO ABN EOP INTERRUPT,
*             EOP INTERRUPT AND NO PRINT ERROR OR COMPARE 
*             FAULT STATUS
*         8.  CLEAR ABN EOP INTERRUPT 
*         9.  CLEAR EOP INTERRUPT 
*        10.  VERIFY NO INTERRUPT STATUS
*        11.  REPEAT FROM STEP 2 IF REPEAT CONDITIONS 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON (RES)
*         2.  ABORT ON (SELECT) 
*         3.  ABORT ON (STATUS) 
*         4.  ABORT ON (SPACE)
*         5.  ABORT ON (PRINT)
*         6.  ABNORMAL-END-OF-OPERATION INTERRUPT 
*             OCCURS AFTER SPACE OPERATION (113)
*         7.  NO ABNORMAL-END-OF-OPERATION INTERRUPT AFTER
*             PRINT WITH A LINE WITH BAD CHARACTER CODE (114) 
*         8.  ABNORMAL-END-OF-OPERATION FAILED TO CLEAR (115) 
*         9.  END-OF-OPERATION INTERRUPT FAILED TO CLEAR (116)
*        10.  ABNORMAL-END-OF-OPERATION INTERRUPT OCCURED AFTER 
*             PRINTING A LINE WITH ALL GOOD CODES (117) 
*        11.  ABNORMAL-END-OF-OPERATION INTERRUPT OR
*             END-OF-OPERATION INTERRUPT FAILED TO CLEAR (120)
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (STATUS) AT LINE *OCT
*         4.  ABORT ON (SPACE) AT LINE *OCT 
*         5.  ABORT ON (PRINT) AT LINE *OCT 
*         6.  SELECTED ABNORMAL-END-OF-OPERATION INTERRUPT. 
*             EXPECTED NO INTERRUPT AFTER SPACE OPERATION.
*         7.  SELECTED ABNORMAL-END-OF-OPERATION INTERRUPT; 
*             PRINTED A LINE WITH BAD CODE.  EXPECTED 
*             ABNORMAL-END-OF-OPERATION INTERRUPT.
*         8.  CLEARED ABNORMAL-END-OF-OPERATION INTERRUPT.
*             EXPECTED NO INTERRUPT.
*         9.  CLEARED END-OF-OPERATION INTERRUPT.  EXPECTED 
*             NO INTERRUPT WITH PRINT ERROR.
*        10.  SELECTED ABNORMAL-END-OF-OPERATION INTERRUPT; 
*             PRINTED A LINE WITH ALL GOOD CODES.  EXPECTED 
*             NO INTERRUPT STATUS.
*        11.  CLEARED ABNORMAL-END-OF-OPERATION INTERRUPT AND 
*             END-OF-OPERATION INTERRUPT. EXPECTED NO INTERRUPT 
* 
* 
*** LP138 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
* 
*  *********************************************************
* 
/--------CHECK ABNORMAL EOP INTERRUPT  I
/--------MODULE RUNS ONLY ON TRAIN TYPES 2,3,6. 
1  FORMAT LP138 ABNORMAL-E-O-P INTERRUPT PART 1 
2  FORMAT LP138 LC*DEC EC*DEC ST*OCT
3  FORMAT LP138 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP138 ABORT ON (SELECT) AT LINE *OCT
5  FORMAT LP138 ABORT ON (STATUS) AT LINE *OCT
6  FORMAT LP138 ABORT ON (PRINT) AT LINE *OCT 
10 FORMAT LP138 ABORT ON (SPACE) AT LINE *OCT 
15 FORMAT LP138 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP138
* 
*   CHARACTER CODE FOR TRAIN TYPE 1 THRU 3
* 
*   OB(1) - OB(7) CHARACTER CODE FOR *ABN EOP INT*
*                 LAST WORD CONTAINS ILLEGAL CODE 
* 
*   CHARACTER CODE FOR TRAIN TYPE 6 
* 
*   OB(10) - OB(24) CHARACTER CODE FOR *ABN EOP INT*
*                   LAST TWO WORDS CONTAIN ILLEGAL CODE 
* 
   DATA(OB(1),CON)2122,4560,2545,2460,3145,6360,1214,101
  ,102,116,40,105,116,104,40,111,116,124,30,117,
20 MSG 1 TO PRINT 
22 MSG 1 TO DISPLAY 
23 GOSUB 60 
   B4=4 
   SELECT CLEAR,ABT 74
   IF(P0.AND.2.EQ.0)GOTO 54 
   WC=7                      *FOR TRAIN TYPE 2 AND 3
   BA=1 
   IF(P0.NE.6)GOTO 24 
   WC=15                     *FOR TRAIN TYPE 6
   BA=10
   GOSUB 60 
   B4=4 
   SELECT EXTENDED,ABT 74 
24 GOSUB 60                  *CONNECT 
   B4=4 
   SELECT AEOPINT,ABT 74     *SPACE WITH ABNORMAL 
   B4=10                     *EOP SELECTED
   SPACE 1,ABT 74 
   B1=0 
25 B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.2.EQ.0)GOTO 26  *IF NOT BUSY
   DELAY 100 MSEC 
   GOTO 25 WHILE (B1+1.LE.20)  *WAIT FOR NOT BUSY 
26 IF(SB(1).AND.3717.NE.1)ERROR 15/113,GOSUB 71  *IF INT. 
   B4=4 
   SELECT EOPINT,ABT 74 
32 B4=6 
   PRINT,ABT 74              *PRINT LINE W/ BAD CODES 
   B1=0 
33 B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.2.EQ.0)GOTO 34  *IF NOT BUSY
   DELAY 100 MSEC 
   GOTO 33 WHILE (B1+1.LE.20)   *WAIT FOR NOT BUSY
   ERROR 15/100 GOSUB 71        *IF STILL BUSY
34 IF(SB(1).AND.3717.NE.3405)ERROR 15/114,GOSUB 71
40 B4=4 
   SELECT CLRAEOP,ABT 74     *CLEAR ABNORMAL EOP INTERRUPT
   B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.3717.NE.2405)ERROR 15/115,GOSUB 71  *IF INT 
46 B4=4 
   SELECT CLREOP,ABT 74      *CLEAR EOP INTERRUPT 
   B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.3717.NE.2005)ERROR 15/116,GOSUB 71  *IF INT 
50 IF(ES.AND.SL.EQ.0)GOTO 52
51 B6=B6+1             *SCOPE LOOP /REPEAT CONDITION
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   GOTO 24
52 IF(ES.AND.RC.NE.0)GOTO 51   *REPEAT CONDITION
/---------EXIT SEQUENCE 
54 EXIT TO 38A               *GO DO PART 2
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
   IF(ES.AND.SL.NE.0)GOTO 60  *IF SCOPE LOOP
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   IF(ES.AND.SL NE 0)GOTO 72  *IF SCOPE LOOP
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
   IF(ES.AND.SL.EQ.0)GOTO 75  *IF NOT SCOPE LOOP
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   GOTO 23
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 23        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 38 - CHECK ABN EOP INT PART 1 
*  ******************************************************** 
*  ******************************************************** 
   MODULE LP138A 580(22),LOCK 
* 
/---------CHECK ABNORMAL EOP INTERRUPT  II
1  FORMAT LP138A ABNORMAL-E-O-P INTERRUPT PART 2
2  FORMAT LP138A LC*DEC EC*DEC ST*OCT 
3  FORMAT LP138A ABORT ON (RES) AT LINE *OCT
4  FORMAT LP138A ABORT ON (SELECT) AT LINE *OCT 
5  FORMAT LP138A ABORT ON (STATUS) AT LINE *OCT 
6  FORMAT LP138A ABORT ON (PRINT) AT LINE *OCT
15 FORMAT LP138A ERROR CODE *OCT AT LINE *OCT 
17 FORMAT *DEC ERROR(S) IN LP138A 
* 
*   CHARACTER CODE FOR TRAIN TYPE 1 
* 
*   OB(1) - OB(7) CHARACTER CODE FOR *ABN EOP INT*
*                 LAST WORD CONTAINS BLANK CODE 
* 
*   CHARACTER CODE FOR TRAIN TYPE 6 
* 
*   OB(10) - OB(24) CHARACTER CODE FOR *ABN EOP INT*
*                   LAST TWO WORDS CONTAIN BLANK CODE 
* 
   DATA(OB(1),CON)2122,4560,2545,2460,3145,6360,6060,101
  ,102,116,40,105,116,104,40,111,116,124,40,40
20 MSG 1 TO PRINT 
   WC=7                      *FOR TRAIN TYPE 1
   BA=1 
   IF(P0.NE.6)GOTO 22 
   WC=15                     *FOR TRAIN TYPE 6
   BA=10
   GOSUB 60 
   B4=4 
   SELECT EXTENDED,ABT 74 
22 MSG 1 TO DISPLAY 
24 GOSUB 60                  *CONNECT 
   B4=4 
   SELECT AEOPINT,ABT 74     *SELECT ABN EOP INT
   SELECT EOPINT,ABT 74      *SELECT EOP INT
26 B4=6 
   PRINT,ABT 74              *PRINT A LINE WITH GOOD CODES
   B1=0 
27 B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.2.EQ.0)GOTO 30  *IF NOT BUSY
   DELAY 100 MSEC 
   GOTO 27 WHILE (B1+1.LE.20)  *WAIT FOR NOT BUSY 
30 IF(SB(1).AND.3717.NE.401)ERROR 15/117,GOSUB 71  *IF ABN
34 B4=4 
   SELECT CLRAEOP,ABT 74     *CLEAR ABN EOP INT 
   SELECT CLREOP,ABT 74      *CLEAR EOP INT 
   B4=5 
   STATUS,ABT 74
   IF(SB(1).AND.3717.NE.1)ERROR 15/120,GOSUB 71  *IF INT
36 IF(ES.AND.SL.EQ.0)GOTO 40
37 B6=B6+1             *SCOPE LOOP /REPEAT CONDITION
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *POST SCOPE LOOP MESSAGE
   GOTO 24
40 IF(ES.AND.RC.NE.0) GOTO 37   *REPEAT CONDITION 
/---------EXIT SEQUENCE 
54 IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
   IF(ES.AND.SL.NE.0)GOTO 60  *IF SCOPE LOOP
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   IF(ES.AND.SL NE 0)GOTO 72  *IF SCOPE LOOP
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
   IF(ES.AND.SL.EQ.0)GOTO 75  *IF NOT SCOPE LOOP
   MSG 2(B6,B7,SB(1)) TO DISPLAY  *YES=POST DISPLAY MESSAGE 
   GOTO 24                   *RESTART 
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 38A - ABNOR. EOP INT PART 2 
*  *********************************************************
*  *********************************************************
   MODULE LP140 580(22),LOCK
*** LP140 - CHECK SUPPRESS SPACE FUNCTION 
* 
**
* 
*   LP140 - CHECK SUPPRESS SPACE FUNCTION 
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP140* TESTS THE SUPPRESS SPACE FUNCTION 
*              BY PRINTING *SUPPRESS SPACE* IN SEVEN PARTS ON 
*              THE SAME LINE. 
* 
* 
*   DESCRIPTION - CHECK SUPPRESS SPACE
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  CLEAR FORMAT SELECTION
*         3.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         4.  PAGE EJECT
*         5.  SELECT SUPPRESS SPACE 
*         6.  MOVE 2 CHARACTERS OF MESSAGE TO PRINT BUFFER
*         7.  PRINT THE LINE
*         8.  WAIT NOT BUSY 
*         9.  VERIFY NO ERROR STATUS
*        10.  REPEAT FROM STEP 5 SEVEN TIMES
*        11.  SINGLE SPACE
*        12.  REPEAT FROM STEP 5 IF REPEAT CONDITION
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON (RES)
*         2.  ABORT ON (SELECT) 
*         3.  ABORT ON (PRINT)
*         4.  ABORT ON (WAITNB) 
*         5.  ABORT ON (SPACE)
*         6.  ABORT ON (EJECT)
*         7.  UNEXPECTED NOT READY-AND-NOT-BUSY (100) 
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (PRINT) AT LINE *OCT 
*         4.  ABORT ON (WAITNB) AT LINE *OCT
*         5.  ABORT ON (SPACE) AT LINE *OCT 
*         6.  ABORT ON (EJECT) AT LINE *OCT 
*         7.  STATUS IS NOT (READY AND NOT BUSY)
* 
*** LP140 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
* 
* 
**********************************************************************
* 
/---------THIS MODULE CHECKS THE SUPPRESS SPACE FUNCTION
1  FORMAT LP140 SUPPRESS SPACE CHECK
2  FORMAT LP140 LC*DEC EC*DEC ST*OCT
3  FORMAT LP140 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP140 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP140 ABORT ON (PRINT) AT LINE *OCT 
7  FORMAT LP140 ABORT ON (WAITNB) AT LINE *OCT
10 FORMAT LP140 ABORT ON (SPACE) AT LINE *OCT 
11 FORMAT LP140 ABORT ON (EJECT) AT LINE *OCT 
15 FORMAT LP140 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP140
* 
*   CHARACTER CODE FOR TRAIN TYPE 1 THRU 3
* 
*         *SUPPRESS SPACE*
   DATA(OB(200),CON)6264,4747,5125,6262,6023,3025,2342
* 
*   CHARACTER CODE FOR TRAIN TYPE 6 
* 
*         *SUPPRESS SPACE*
   DATA(OB(270),CON)123,125,120,120,122,105,123,123,40, 
  ,103,110,105,103,113
* 
20 MSG 1 TO PRINT 
   GOSUB 60 
   B4=4 
   SELECT CLEAR,ABT 74
   BA=1 
   IF(P0.NE.6)GOTO 22 
   SELECT EXTENDED,ABT 74 
22 MSG 1 TO DISPLAY 
24 GOSUB 60                  *CONNECT 
   B4=11
   EJECT,ABT 74              *TOP OF FORM 
   GOSUB 61 
25 IF(P0.EQ.6)GOTO 30        *IF TRAIN 6
   WC=70
   DUP 6060 TO OB(1) FOR 70  *BLANK PRINT LINE
   B0=0 
26 B4=4 
   SELECT SUPPRESS,ABT 74 
   OB(B0+3)=OB(B0+200)       *ADD 2 CHARACTERS TO PRINT LINE
   OB(B0+45)=OB(B0+200) 
   B4=6 
   PRINT,ABT 74 
   B4=7 
   WAITNB,ABT 74
   IF(SB(1).AND.3717.NE.1)ERROR 15/100,GOSUB 71 
   GOTO 26 WHILE (B0+1.LT.7)  *PRINT IN 7 PARTS 
   GOTO 46
30 WC=160 
   DUP 40 TO OB(1) FOR 160   *BLANK PRINT LINE
   B0=0 
32 B4=4 
   SELECT SUPPRESS,ABT 74 
   OB(B0+5)=OB(B0+270)       *ADD 2 CHARACTERS TO PRINT LINE
   OB(B0+111)=OB(B0+270)
   OB(B0+6)=OB(B0+271)
   OB(B0+112)=OB(B0+271)
   B4=6 
   PRINT,ABT 74 
   B4=7 
   WAITNB,ABT 74
   IF(SB(1).AND.3717.NE.1)ERROR 15/100,GOSUB 71 
   GOTO 32 WHILE (B0+2.LT.14D)  *PRINT IN 7 PARTS 
46 B4=10
   SPACE 1,ABT 74            *SINGLE SPACE
50 IF(ES.AND.RC.EQ.0)GOTO 54   *IF NOT REPEAT CONDITION 
   B6=B6+1
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   GOTO 25
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0)GOTO 24   *REPEAT MODULE 
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 40 - CHECK SUPPRESS SPACE FUNCTION
*  *********************************************************
*  *********************************************************
   MODULE LP141 580(22),LOCK
*** LP141 - CHECK COINCIDENT AND LVL 9
* 
**
* 
*   LP141 - CHECK COINCIDENT AND LVL 9
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP141* CHECKS THE ABILITY OF THE PRINTER TO
*              DETECT 6/8 LINE COINCIDENT POINTS AND FORMAT LEVEL 9.
* 
* 
*   DESCRIPTION - CHECK COINCIDENT POINTS AND FORMAT LEVEL 9
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  PAGE EJECT
*         3.  CLEAR FORMAT SELECTION
*         4.  IF TRAIN TYPE 6 SELECT EXTENDED ARRAY 
*         5.  SELECT 6 LINES PER INCH 
*         6.  IF NOT 6/8 LINE COINCIDENT OR FORMAT
*             LEVEL 9 PRINT *NOT COINCIDENT*
*         7.  IF FORMAT LEVEL 9 DETECTED PRINT *FORMAT LEVEL 9* 
*         8.  IF 6/8 LINE COINCIDENCE, SWITCH LINES PER INCH
*             DENSITY AND PRINT *COINCIDENT*
*         9.  WAIT NOT BUSY 
*        10.  GO TO STEP 5 IF NOT END OF PAGE OR 120 (OCTAL) LINES PRINT
*        11.  ERROR IF NO FORMAT LEVEL 9 ENCOUNTERED PRINT
*        12.  REPEAT FROM STEP 1 IF REPEAT CONDITIONS 
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON (RES)
*         2.  ABORT ON (SELECT) 
*         3.  ABORT ON (EJECT)
*         4.  ABORT ON (PRINT)
*         5.  NO LEVEL 9 STATUS AFTER FULL PAGE (200) 
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (EJECT) AT LINE *OCT 
*         4.  ABORT ON (PRINT) AT LINE *OCT 
*         5.  NO LEVEL 9 STATUS OBSERVED. 
* 
*** LP141 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
* 
* 
*  *********************************************************
* 
/--------CHECK FORMAT SPACING ON FORMAT TAPE
1  FORMAT LP141 COINCIDENT AND FORMAT STATUS
2  FORMAT LP141 LC*DEC EC*DEC ST*OCT
3  FORMAT LP141 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP141 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP141 ABORT ON (PRINT) AT LINE *OCT 
11 FORMAT LP141 ABORT ON (EJECT) AT LINE *OCT 
15 FORMAT LP141 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP141
* 
* 
*   CHARACTER CODE FOR TRAIN TYPE 1 THRU 3
* 
*         *FORMAT LEVEL 9*
   DATA(OB(317),CON)7,2646,5144,2163,6043,2565,2543,6011
*         *NOT COINCIDENT*
   DATA(OB(336),CON)7,4546,6360,2346,3145,2331,2425,4563
*         *COINCIDENT*
   DATA(OB(355),CON)5,2346,3145,2331,2425,4563
* 
*   CHARACTER CODE FOR TRAIN TYPE 6 
* 
*         *FORMAT LEVEL 9*
   DATA(OB(407),CON)16,106,117,122,115,101,124,40,114,105,
  ,126,105,114,40,71
*         *NOT COINCIDENT*
   DATA(OB(426),CON)16,116,117,124,40,103,117,111,116,103,
  ,111,104,105,116,124
*         *COINCIDENT*
   DATA(OB(445),CON)12,103,117,111,116,103,111,104,105,116, 
  ,124
* 
* 
20 MSG 1 TO PRINT 
   GOSUB 60 
   B4=11
   EJECT,ABT 74 
   B4=4 
   SELECT CLEAR,ABT 74       *INITIALIZE FORMAT SELECTION 
   IF(P0.NE.6)GOTO 22 
   B4=4 
   SELECT EXTENDED,ABT 74 
   COPY OB(407) TO OB(317) FOR 70 
22 MSG 1 TO DISPLAY 
24 GOSUB 60                  *CONNECT 
   B0=0                      *INIT LPI SWITCH 
   B4=4 
   SELECT 6LPI,ABT 74 
   B1=0 
   B2=0 
32 IF(SB(1).AND.4040.EQ.0)GOTO 34 
   IF(SB(1).AND.4000.NE.0)GOTO 36 
   B2=1                      *FLAG LEVEL 9 DETECTED 
   B4=6                      *PRINT*FORMAT LEVEL 9* 
   PRINT OB(317) WORDS FROM OB(320),ABT 74
   GOTO 44
34 B4=6                      *PRINT*NOT COINCIDENT* 
   PRINT OB(336) WORDS FROM OB(337),ABT 74
   GOTO 44
36 B4=4                      *SWITCH LPI
   IF(B0.AND.1.EQ.0)GOTO 40 
   SELECT 6LPI,ABT 74 
   GOTO 42
40 SELECT 8LPI,ABT 74 
42 B0=B0+1
   B4=6                      *PRINT*COINCIDENT* 
   PRINT OB(355) WORDS FROM OB(356),ABT 74
44 GOSUB 61 
   IF(B1.LT.20)GOTO 45
   IF(SB(1).AND.20.NE.0)GOTO 46  *IF END OF PAGE
45 GOTO 32 WHILE (B1+1.LT.120)  *OR 120 LINES 
46 IF(B2.EQ.0)ERROR 15/200,GOSUB 71  *NO LEVEL 9 SEEN 
50 B6=B6+1
   IF(ES.AND.RC.NE.0)GOTO 22   *REPEAT CONDITION
/---------EXIT SEQUENCE 
54 IF(ES.AND.RM NE 0)GOTO 22  *IF REPEAT MODULE 
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 41 - CHECK COINCIDENT AND LVL 9 
*  *********************************************************
*  *********************************************************
   MODULE LP142 580(22),LOCK   -LP1 MODULE 42 - CHK PAGE EJECT AND ADV. LAST LIN
*** LP142 - CHK PAGE EJECT AND ADV. LAST LINE 
* 
**
* 
*   LP142 - CHK PAGE EJECT AND ADV. LAST LINE 
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP142* CHECKS THE PAGE EJECT AND THE ADVANCE TO
*              LAST LINE OF FORM OPERATION. 
* 
* 
* 
*   DESCRIPTION - CHECK PAGE EJECT AND ADVANCE TO LAST LINE FUNCTIONS 
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         3.  CLEAR FORMAT SELECTIONS 
*         4.  PAGE EJECT
*         5.  PRINT *TOP OF FORM* 
*         6.  REPEAT STEPS 4 AND 5
*         7.  ADVANCE TO LAST LINE
*         8.  WAIT NOT BUSY 
*         9.  VERIFY LAST LINE STATUS 
*        10.  REPEAT FROM STEP 7 IF REPEAT CONDITIONS 
*        11.  PRINT *LAST LINE* 
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON (RES)
*         2.  ABORT ON (SELECT) 
*         3.  ABORT ON (PRINT)
*         4.  ABORT ON (WAITNB) 
*         5.  ABORT ON (EJECT)
*         6.  NO LAST LINE STATUS AFTER SELECTING 
*             SPACE TO LAST LINE OF FORM (121)
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (PRINT) AT LINE *OCT 
*         4.  ABORT ON (WAITNB) AT LINE *OCT
*         5.  ABORT ON (EJECT) AT LINE *OCT 
*         6.  SELECT SPACE ON LAST LINE OF FORM. EXPECTED 
*             LAST-LINE STATUS. 
* 
*** LP142 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
* 
* 
*  *********************************************************
* 
/---------CHECK THE PAGE EJECT AND ADVANCE TO LAST
/---------LINE FUNCTIONS. 
1  FORMAT LP142 PAGE EJECT/ADVANCE TO LAST LINE 
2  FORMAT LP142 LC*DEC EC*DEC ST*OCT
3  FORMAT LP142 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP142 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP142 ABORT ON (PRINT) AT LINE *OCT 
7  FORMAT LP142 ABORT ON (WAITNB) AT LINE *OCT
11 FORMAT LP142 ABORT ON (EJECT) AT LINE *OCT 
15 FORMAT LP142 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP142
* 
*   CHARACTER CODES FOR TRAIN TYPE 1 THRU 3 
* 
*         *TOP OF FORM *
   DATA(OB,CON)6,6346,4760,4626,6026,4651,4460
*         *LAST LINE *
   DATA(OB(14),CON)5,4321,6263,6043,3145,2560 
* 
*   CHARACTER CODES FOR TRAIN TYPE 6
* 
*         *TOP OF FORM* 
   DATA(OB(100),CON)13,124,117,120,40,117,106,40,106,117
  ,122,115
*         *LAST LINE* 
   DATA(OB(114),CON)11,114,101,123,124,40,114,111,116,105 
* 
20 MSG 1 TO PRINT 
   IF(P0.NE.6)GOTO 22        *IF TRAIN TYPE 6 
   COPY OB(100) TO OB FOR 30  *FIX PRINT DATA 
   GOSUB 60 
   B4=4 
   SELECT EXTENDED,ABT 74 
22 MSG 1 TO DISPLAY 
   B1=0 
24 GOSUB 60                  *CONNECT 
   B4=4 
   SELECT CLEAR,ABT 74       *CLEAR FORMAT SELECTIONS 
26 B4=11
   EJECT,ABT 74 
   GOSUB 61 
   B4=6 
   PRINT OB(0) WORDS FROM OB(1),ABT 74  *TOP OF FORM* 
   GOSUB 61 
   GOTO 26 WHILE (B1+1.LT.2)  *TWICE* 
30 B4=4 
   SELECT LASTLINE,ABT 74 
   GOSUB 61 
   B4=7 
   WAITNB,ABT 74
   IF(SB(1).AND.3737.NE.21)ERROR 15/121,GOSUB 71
34 IF(ES.AND.RC.EQ.0)GOTO 36   *NOT REPEAT CONDITION
   B6=B6+1
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   GOTO 30                   *REPEAT CONDITION
36 B4=6 
   PRINT OB(14) WORDS FROM OB(15),ABT 74  *LAST LINE* 
   GOSUB 61 
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0)GOTO 22   *REPEAT MODULE 
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 42 - CHK PAGE EJECT AND ADV. LAST LINE
*  *********************************************************
*  *********************************************************
   MODULE LP143 580(22),LOCK
*** LP143 - CHECK AUTO PAGE EJECT 
* 
**
* 
*   LP143 - CHECK AUTO PAGE EJECT 
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP143* CHECKS THE AUTO PAGE EJECT. 
* 
* 
* 
*   DESCRIPTION - CHECK AUTO PAGE EJECT 
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         3.  SELECT AUTO PAGE EJECT
*         4.  ADVANCE TO LAST LINE
*         5.  PRINT *LAST LINE* 
*         6.  PRINT *AUTO TOP OF FORM*
*         7.  CLEAR FORMAT SELECTIONS 
*         8.  ADVANCE TO LAST LINE
*         9.  PRINT *LAST LINE* 
*        10.  PRINT *LAST LINE PLUS 1*
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON (RES)
*         2.  ABORT ON (SELECT) 
*         3.  ABORT ON (PRINT)
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (PRINT) AT LINE *OCT 
* 
*** LP143 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197Z - ERROR PROCESSOR
* 
* 
*  *********************************************************
* 
/---------THIS MODULE CHECKS THE AUTO PAGE EJECT FUNCTIONS. 
1  FORMAT LP143 AUTO PAGE EJECT 
2  FORMAT LP143 LC*DEC EC*DEC ST*OCT
3  FORMAT LP143 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP143 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP143 ABORT ON (PRINT) AT LINE *OCT 
17 FORMAT *DEC ERROR(S) IN LP143
* 
*   CHARACTER CODES FOR TRAIN TYPE 1 THRU 3 
* 
*         *AUTO TOP OF FORM 
   DATA(OB,CON)10,2164,6346,6063,4647,6046,2660,2646,5144 
*         *LAST LINE PLUS 1*
   DATA(OB(21),CON)5,10,4321,6263,6043,3145,2560,4743,
  ,6462,6001
* 
*   CHARACTER CODES FOR TRAIN TYPE 6
* 
*         *AUTO TOP OF FORM*
   DATA(OB(100),CON)20,101,125,124,117,40,124,117,120,40, 
  ,117,106,40,106,117,122,115 
*         *LAST LINE PLUS 1*
   DATA(OB(121),CON)11,20,114,101,123,124,40,114,111,116
  ,105,40,120,114,125,123,40,61 
* 
20 MSG 1 TO PRINT 
   IF(P0.NE.6)GOTO 22        *IF TRAIN TYPE 6 
   COPY OB(100) TO OB FOR 50  *FIX PRINT DATA 
   GOSUB 60 
   B4=4 
   SELECT EXTENDED,ABT 74 
22 MSG 1 TO DISPLAY 
24 GOSUB 60                  *CONNECT 
   B4=4 
   SELECT AUTO,ABT 74        *AUTO EJECT
   SELECT LASTLINE,ABT 74    *MOVE TO LAST LINE 
   GOSUB 61 
   B4=6                      *PRINT *LAST LINE* 
   PRINT OB(21) WORDS FROM OB(23),ABT 74
   GOSUB 61 
   B4=6 
   PRINT OB WORDS FROM OB(1),ABT 74  *AUTO TOP OF FORM* 
   GOSUB 61 
   B4=4 
   SELECT CLEAR,ABT 74       *CLEAR AUTO EJECT
   SELECT LASTLINE,ABT 74    *MOVE TO LAST LINE 
   GOSUB 61 
   B4=6                      *PRINT *LAST LINE* 
   PRINT OB(21) WORDS FROM OB(23),ABT 74
   GOSUB 61 
   B4=6                      *PRINT *LAST LINE PLUS 1*
   PRINT OB(22) WORDS FROM OB(23),ABT 74
   GOSUB 61 
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 22   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE        *TERMINATION MESSAGE
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 43 - CHECK AUTO PAGE EJECT
*  *********************************************************
*  *********************************************************
   MODULE LP144 580(22),LOCK
*** LP144 - CHECK SINGLE SPACE
* 
**
* 
*   LP144 - CHECK SINGLE SPACE
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP144* CHECKS THE SINGLE SPACE OPERATIONS AT 
*              BOTH 6 LPI AND 8 LPI.
* 
* 
*   DESCRIPTION - CHECK SINGLE SPACE OPERATION
* 
*         1.  PREPARE PRINT LINE
*         2.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         3.  CONNECT AND CHECK STATUS
*         4.  PAGE EJECT
*         5.  PRINT *TOP OF FORM* 
*         6.  SELECT 8 LPI
*         7.  SINGLE SPACE
*         8.  SUPPRESS SPACE
*         9.  PRINT *SINGLE SPACE*
*         10. REPEAT 34 (OCTAL) TIMES FROM STEP 7 
*         11. SINGLE SPACE TWICE
*         12. SELECT 6 LPI
*         13. SINGLE SPACE
*         14. SUPPRESS SPACE
*         15. PRINT *SINGLE SPACE*
*         16. REPEAT 34 (OCTAL) TIMES FROM STEP 13
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON (RES)
*         2.  ABORT ON (SELECT) 
*         3.  ABORT ON (PRINT)
*         4.  ABORT ON (SPACE)
*         5.  ABORT ON (EJECT)
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (PRINT) AT LINE *OCT 
*         4.  ABORT ON (SPACE) AT LINE *OCT 
*         5.  ABORT ON (EJECT) AT LINE *OCT 
* 
*** LP144 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197Z - ERROR PROCESSOR
* 
* 
*  *********************************************************
* 
/---------THIS MODULE CHECKS THE SINGLE SPACE FUNCTIONS 
1  FORMAT LP144 SINGLE SPACE
2  FORMAT LP144 LC*DEC EC*DEC ST*OCT
3  FORMAT LP144 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP144 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP144 ABORT ON (PRINT) AT LINE *OCT 
11 FORMAT LP144 ABORT ON (EJECT) AT LINE *OCT 
10 FORMAT LP144 ABORT ON (SPACE) AT LINE *OCT 
17 FORMAT *DEC ERROR(S) IN LP144
* 
*   CHARACTER CODE FOR TRAIN TYPE 1 THRU 3
* 
*   OB(1) - OB(6) CHARACTER CODE FOR *TOP OF FORM*
*   OB(7) - OB(14) CHARACTER CODE FOR *SINGLE SPACE*
* 
*   CHARACTER CODE FOR TRAIN TYPE 6 
* 
*   OB(15) - OB(27) CHARACTER CODE FOR *TOP OF FORM*
*   OB(30) - OB(43) CHARACTER CODE FOR *SINGLE SPACE* 
* 
   DATA(OB(1),CON)6346,4760,4626,6026,4651,4460,6231,4527,
  ,4325,6062,4721,2325,124,117,120,40,117,106,40,106,117, 
  ,122,115,123,111,116,107,114,105,40,123,120,101,103,105 
20 MSG 1 TO PRINT 
   WC=6                      *FOR TRAIN TYPE 1 THRU 3 
   BA=7 
   IF(P0.NE.6)GOTO 22 
   WC=14                     *FOR TRAIN TYPE 6
   BA=30
   GOSUB 60 
   B4=4 
   SELECT EXTENDED,ABT 74 
22 MSG 1 TO DISPLAY 
   B1=0                      *INITIALIZE
24 GOSUB 60                  *CONNECT 
   B4=11
   EJECT,ABT 74              *PAGE EJECT
   GOSUB 61 
   B4=6 
   IF(P0.EQ.6)GOTO 26        *PRINT *TOP OF FORM* 
   PRINT 6 WORDS FROM OB(1),ABT 74   *FOR TRAIN TYPE 1 - 3
   GOTO 30
26 PRINT 13 WORDS FROM OB(15),ABT 74   *FOR TRAIN TYPE 6
30 GOSUB 61 
   B4=4 
   SELECT 8LPI,ABT 74        *SELECT 8 LPI
32 B4=10
   SPACE 1,ABT 74            *SINGLE SPACE
   GOSUB 61 
   B4=4 
   SELECT SUPPRESS,ABT 74    *SUPPRESS SPACE
   B4=6 
   PRINT,ABT 74              *PRINT *SINGLE SPACE*
   GOSUB 61 
   GOTO 32 WHILE (B1+1.LT.34)  *33 OCTAL TIMES
   B4=10
   SPACE 1,ABT 74            *SINGLE SPACE
   GOSUB 61 
   B4=10
   SPACE 1,ABT 74            *SINGLE SPACE
   GOSUB 61 
   B4=4 
   SELECT 6LPI,ABT 74        *SELECT 6 LPI
34 B4=10
   SPACE 1,ABT 74 
   GOSUB 61 
   B4=4 
   SELECT SUPPRESS,ABT 74    *SUPPRESS SPACE
   B4=6 
   PRINT,ABT 74              *PRINT *SINGLE SPACE*
   GOSUB 61 
   GOTO 34 WHILE (B1+1.LT.70)  *34 OCTAL TIMES
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 22   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 44 - CHECK SINGLE SPACE 
*  *********************************************************
*  *********************************************************
   MODULE LP145 580(22),LOCK
*** LP145 - CHECK DOUBLE SPACE
* 
**
* 
*   LP145 - CHECK DOUBLE SPACE
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP145* CHECKS THE DOUBLE SPACE OPERATIONS AT 
*              BOTH 6 LPI AND 8 LPI.
* 
* 
*   DESCRIPTION - CHECK DOUBLE SPACE OPERATION
* 
*         1.  PREPARE PRINT LINE
*         2.  IF TRAIN TYPE 6, SELECT EXTENDED ARRAY
*         3.  CONNECT AND CHECK STATUS
*         4.  PAGE EJECT
*         5.  PRINT *TOP OF FORM* 
*         6.  SELECT 8 LPI
*         7.  DOUBLE SPACE
*         8.  SUPPRESS SPACE
*         9.  PRINT *DOUBLE SPACE*
*         10. REPEAT 16 (OCTAL) TIMES FROM STEP 7 
*         11. DOUBLE SPACE TWICE
*         12. SELECT 6 LPI
*         13. DOUBLE SPACE
*         14. SUPPRESS SPACE
*         15. PRINT *DOUBLE SPACE*
*         16. REPEAT 16 (OCTAL) TIMES FROM STEP 13
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON (RES)
*         2.  ABORT ON (SELECT) 
*         3.  ABORT ON (PRINT)
*         4.  ABORT ON (SPACE)
*         5.  ABORT ON (EJECT)
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (PRINT) AT LINE *OCT 
*         4.  ABORT ON (SPACE) AT LINE *OCT 
*         5.  ABORT ON (EJECT) AT LINE *OCT 
* 
*** LP145 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197Z - ERROR PROCESSOR
* 
* 
*  *********************************************************
* 
/---------THIS MODULE CHECKS THE DOUBLE SPACE FUNCTIONS 
1  FORMAT LP145 DOUBLE SPACE
2  FORMAT LP145 LC*DEC EC*DEC ST*OCT
3  FORMAT LP145 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP145 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP145 ABORT ON (PRINT) AT LINE *OCT 
11 FORMAT LP145 ABORT ON (EJECT) AT LINE *OCT 
10 FORMAT LP145 ABORT ON (SPACE) AT LINE *OCT 
17 FORMAT *DEC ERROR(S) IN LP145
* 
*   CHARACTER CODE FOR TRAIN TYPE 1 THRU 3
* 
*   OB(1) - OB(6) CHARACTER CODE FOR *TOP OF FORM*
*   OB(7) - OB(14) CHARACTER CODE FOR *DOUBLE SPACE*
* 
*   CHARACTER CODE FOR TRAIN TYPE 6 
* 
*   OB(15) - OB(27) CHARACTER CODE FOR *TOP OF FORM*
*   OB(30) - OB(43) CHARACTER CODE FOR *DOUBLE SPACE* 
* 
   DATA(OB(1),CON)6346,4760,4626,6026,4651,4460,2446,6422,
  ,4325,6062,4721,2325,124,117,120,40,117,106,40,106,117, 
  ,122,115,104,117,125,102,114,105,40,123,120,101,103,105 
20 MSG 1 TO PRINT 
   WC=6                      *FOR TRAIN TYPE 1 THRU 3 
   BA=7 
   IF(P0.NE.6)GOTO 22 
   WC=14                     *FOR TRAIN TYPE 6
   BA=30
   GOSUB 60 
   B4=4 
   SELECT EXTENDED,ABT 74 
22 MSG 1 TO DISPLAY 
   B1=0                      *INITIALIZE
24 GOSUB 60                  *CONNECT 
   B4=11
   EJECT,ABT 74              *PAGE EJECT
   GOSUB 61 
   B4=6 
   IF(P0.EQ.6)GOTO 26        *PRINT *TOP OF FORM* 
   PRINT 6 WORDS FROM OB(1),ABT 74   *FOR TRAIN TYPE 1 - 5
   GOTO 30
26 PRINT 13 WORDS FROM OB(15),ABT 74   *FOR TRAIN TYPE 6
30 GOSUB 61 
   B4=4 
   SELECT 8LPI,ABT 74        *SELECT 8 LPI
32 B4=10
   SPACE 2,ABT 74            *DOUBLE SPACE
   GOSUB 61 
   B4=4 
   SELECT SUPPRESS,ABT 74    *SUPPRESS SPACE
   B4=6 
   PRINT,ABT 74              *PRINT *DOUBLE SPACE*
   GOSUB 61 
   GOTO 32 WHILE (B1+1.LT.16)  *15 OCTAL TIMES
   B4=10
   SPACE 2,ABT 74            *DOUBLE SPACE
   GOSUB 61 
   B4=10
   SPACE 2,ABT 74            *DOUBLE SPACE
   GOSUB 61 
   B4=4 
   SELECT 6LPI,ABT 74        *SELECT 6 LPI
34 B4=10
   SPACE 2,ABT 74 
   GOSUB 61 
   B4=4 
   SELECT SUPPRESS,ABT 74    *SUPPRESS SPACE
   B4=6 
   PRINT,ABT 74              *PRINT *DOUBLE SPACE*
   GOSUB 61 
   GOTO 34 WHILE (B1+1.LT.34)   *16 OCTAL TIMES 
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 22   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 45 - CHECK DOUBLE SPACE 
*  *********************************************************
*  *********************************************************
   MODULE LP146 580(22),LOCK
*** LP146 - CHECK POSTPRINT FORMAT SPACING
* 
**
* 
*   LP146 - CHECK POSTPRINT FORMAT SPACING
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP146* CHECKS THE POSTPRINT FORMAT SPACING.
*              EACH LEVEL IS SELECTED TWICE AND EACH TIME A LINE
*              CONTAINING THE FUNCTION NUMBER AND THE FORMAT LEVEL
*              NUMBER IS PRINTED. 
* 
* 
*   DESCRIPTION - CHECK POSTPRINT FORMAT SPACING
* 
*      (LP146 FOR TRAINS 1-3, LP146A FOR TRAIN 6) 
*         1.  CONNECT AND CHECK STATUS
*         2.  CLEAR FORMAT SELECTIONS 
*         3.  PAGE EJECT
*         4.  PRINT *TOP OF FORM* 
*         5.  SELECT 6 LPI IF PASS 1 OR 8 LPI IF PASS 2 
*         6.  SELECT POSTPRINT LEVEL N
*         7.  PRINT LEVEL NUMBER MESSAGE
*         8.  VERIFY NO ERROR STATUS
*             ERROR STATUS IF FORMAT LEVEL 13 OR 14.
*          9. REPEAT FROM STEP 6 IF REPEAT CONDITION
*         10. REPEAT FROM STEP 6 ONCE MORE
*         11. REPEAT FROM STEP 6 FOR LEVELS 1 THROUGH 14(OCTAL) 
*         12. REPEAT FROM STEP 3 FOR 8 LPI. 
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON (RES)
*         2.  ABORT ON (SELECT) 
*         3.  ABORT ON (EJECT)
*         4.  ABORT ON (PRINT)
*         5.  UNEXPECTED NOT READY-AND-NOT-BUSY (100) 
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (EJECT) AT LINE *OCT 
*         4.  ABORT ON (PRINT) AT LINE *OCT 
*         5.  STATUS IS NOT (READY AND NOT BUSY)
* 
* 
*** LP146 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
* 
* 
*  *********************************************************
* 
/---------THIS MODULE CHECKS THE POSTPRINT FORMAT LEVELS
1  FORMAT LP146 POSTPRINT FORMAT LEVELS 
2  FORMAT LP146 LC*DEC EC*DEC ST*OCT
3  FORMAT LP146 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP146 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP146 ABORT ON (PRINT) AT LINE *OCT 
11 FORMAT LP146 ABORT ON (EJECT) AT LINE *OCT 
15 FORMAT LP146 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP146
* 
*   CHARACTER CODES FOR TRAIN TYPES 1 TO 3
* 
*         *FUNCTION.    ,FORMAT LEVEL.   *
   DATA(OB(0),CON)2664,4523,6331,4645,4060,,6073,2646,5144, 
  ,2163,6043,2565,2543,4060,, 
* 
* 
*         *TOP OF FORM *
* 
   DATA(OB(301),CON)6346,4760,4626,6026,4651,4460 
* 
20 MSG 1 TO PRINT 
   IF(P0.NE.6)GOTO 22 
   EXIT TO 46A               *EXTENDED TRAIN=6
22 MSG 1 TO DISPLAY 
   B2=0 
24 GOSUB 60                  *CONNECT 
   OB(5)=301
   OB(16)=1 
   B4=4 
   SELECT CLEAR,ABT 74
   B1=0 
   B0=1 
   B4=11
   EJECT,ABT 74              *TOP OF FORM 
   GOSUB 61 
   B4=4 
   IF(B2.NE.0)GOTO 25        *IF NEXT IS 8 LPI
   SELECT 6LPI,ABT 74 
   GOTO 26
25 SELECT 8LPI,ABT 74 
26 B4=6 
   PRINT 6 WORDS FROM OB(301),ABT 74
   GOSUB 61 
30 B4=4 
   SELECT POSTPRINT B0,ABT 74 
   B4=6 
   PRINT 17 WORDS FROM OB(0),ABT 74 
   GOSUB 60 
   IF(SB(1).AND.3717.NE.1)ERROR 15/100,GOSUB 71 
   IF(ES.AND.SL.EQ.0)GOTO 33  *IF NOT SCOPE LOOP
32 B6=B6+1
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   GOTO 30
33 IF(ES.AND.RC.NE.0)GOTO 32   *REPEAT CONDITION
   GOTO 30 WHILE (B1+1.EQ.1)  *EACH FUNCTION TWICE
   OB(5)=OB(5)+1             *FIX PRINT IMAGE 
   IF(OB(5).AND.7.NE.0)GOTO 34
   OB(5)=OB(5)+70 
34 OB(16)=OB(16)+1
   IF(OB(16).AND.77.NE.12)GOTO 36 
   OB(16)=OB(16)+66 
36 B1=0 
   GOTO 30 WHILE (B0+1.LE.14)  *LOOP FOR ALL FUNCTIONS
   GOTO 24 WHILE (B2+1.EQ.1)  *LOOP FOR BOTH 6,8 LPI
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0)GOTO 22    *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
   IF(ES.AND.SL.NE.0)GOTO 60  *IF SCOPE LOOP
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   IF(ES.AND.SL.NE.0)GOTO 72
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 46 - CHECK POSTPRINT FORMAT SPACING 
*  *********************************************************
*  *********************************************************
   MODULE LP146A 580(22),LOCK 
* 
/---------THIS MODULE CHECKS THE POSTPRINT FORMAT LEVELS
1  FORMAT LP146A POSTPRINT FORMAT LEVELS
2  FORMAT LP146A LC*DEC EC*DEC ST*OCT 
3  FORMAT LP146A ABORT ON (RES) AT LINE *OCT
4  FORMAT LP146A ABORT ON (SELECT) AT LINE *OCT 
6  FORMAT LP146A ABORT ON (PRINT) AT LINE *OCT
11 FORMAT LP146A ABORT ON (EJECT) AT LINE *OCT
15 FORMAT LP146A ERROR CODE *OCT AT LINE *OCT 
17 FORMAT *DEC ERROR(S) IN LP146A 
* 
*   CHARACTER CODES FOR TRAIN TYPE 6
* 
*         *FUNCTION.    ,FORMAT LEVEL.   *
   DATA(OB(0),CON)106,125,116,103,124,111,117,116,55,40,,,
  ,40,54,106,125,116,103,124,111,117,116,55,40,,,40 
* 
* 
*         *TOP OF FORM* 
* 
   DATA(OB(301),CON)124,117,120,40,117,106,40,106,117,
  ,122,115
* 
20 MSG 1 TO PRINT 
   GOSUB 60                  *CONNECT 
   B4=4 
   SELECT EXTENDED,ABT 74 
22 MSG 1 TO DISPLAY 
   B2=0 
24 GOSUB 60                  *CONNECT 
   OB(12)=63
   OB(13)=61
   OB(30)=60
   OB(31)=61
   B4=4 
   SELECT CLEAR,ABT 74
   B1=0 
   B0=1 
   B4=11
   EJECT,ABT 74              *TOP OF FORM 
   GOSUB 61 
   B4=4 
   IF(B2.NE.0)GOTO 25        *IF NEXT IS 8LPI 
   SELECT 6LPI,ABT 74 
   GOTO 26
25 SELECT 8LPI,ABT 74 
26 B4=6 
   PRINT 13 WORDS FROM OB(301),ABT 74 
   GOSUB 61 
30 B4=4 
   SELECT POSTPRINT B0,ABT 74 
   B4=6 
   PRINT 33 WORDS FROM OB(0),ABT 74 
   GOSUB 60 
   IF(SB(1).AND.3717.NE.1)ERROR 15/100,GOSUB 71 
   IF(ES.AND.SL.EQ.0)GOTO 33  *IF NOT SCOPE LOOP
32 B6=B6+1
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   GOTO 30
33 IF(ES.AND.RC.NE.0)GOTO 32   *REPEAT CONDITION
   GOTO 30 WHILE (B1+1.EQ.1)  *EACH FUNCTION TWICE
   OB(13)=OB(13)+1           *FIX PRINT IMAGE 
   IF(OB(13).NE.70)GOTO 34
   OB(13)=60
   OB(12)=OB(12)+1
34 OB(31)=OB(31)+1
   IF(OB(31).NE.72)GOTO 36
   OB(31)=60
   OB(30)=OB(30)+1
36 B1=0 
   GOTO 30 WHILE (B0+1.LE.14)  *LOOP FOR ALL FUNCTIONS
   GOTO 24 WHILE (B2+1.EQ.1)  *LOOP FOR BOTH 6,8 LPI
/---------EXIT SEQUENCE 
54 B6=B6+1
   B2=0 
   IF(ES.AND.RM.NE.0)GOTO 24   *REPEAT MODULE 
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 EXIT 
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
   IF(ES.AND.SL.NE.0)GOTO 60  *IF SCOPE LOOP
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   IF(ES.AND.SL.NE.0)GOTO 72
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
   END 20 
COMPILE                    -LP1 46A - POSTPRT SPACING 
*  *********************************************************
*  *********************************************************
   MODULE LP147 580(22),LOCK
*** LP147 - CHECK PREPRINT SPACING
* 
**
* 
*   LP147 - CHECK PREPRINT SPACING
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP147* CHECKS THE PREPRINT FORMAT SPACING. 
*              EACH LEVEL IS SELECTED TWICE AND EACH TIME A LINE
*              CONTAINING THE FUNCTION NUMBER AND THE FORMAT NUMBER 
*              IS PRINTED.
* 
* 
*   DESCRIPTION - CHECK PREPRINT FORMAT SPACING 
* 
*     (LP147 FOR TRAINS 1-3, LP147A FOR TRAIN 6)
*         1.  CONNECT AND CHECK STATUS
*         2.  CLEAR FORMAT SELECTIONS 
*         3.  PAGE EJECT
*         4.  PRINT *TOP OF FORM* 
*         5.  SELECT 6 LPI IF PASS 1 OR 8 LPI IF PASS 2 
*         6.  SELECT PREPRINT LEVEL N 
*         7.  PRINT LEVEL NUMBER MESSAGE
*         8.  VERIFY NO ERROR STATUS
*          9. REPEAT FROM STEP 6 IF REPEAT CONDITIONS 
*         10. REPEAT FROM STEP 6 ONCE MORE
*         11. REPEAT FROM STEP 6 FOR LEVELS 1 THROUGH 14(OCTAL) 
*         12. REPEAT FROM STEP 3 FOR 8 LPI
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON (RES)
*         2.  ABORT ON (SELECT) 
*         3.  ABORT ON (EJECT)
*         4.  ABORT ON (PRINT)
*         5.  UNEXPECTED NOT READY-AND-NOT-BUSY (100) 
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (EJECT) AT LINE *OCT 
*         4.  ABORT ON (PRINT) AT LINE *OCT 
*         5.  STATUS IS NOT (READY AND NOT BUSY)
* 
* 
*** LP147 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
* 
* 
*  *********************************************************
* 
/---------THIS MODULE CHECKS THE PREPRINT FORMAT LEVELS 
1  FORMAT LP147 PREPRINT FORMAT LEVELS
2  FORMAT LP147 LC*DEC EC*DEC ST*OCT
3  FORMAT LP147 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP147 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP147 ABORT ON (PRINT) AT LINE *OCT 
11 FORMAT LP147 ABORT ON (EJECT) AT LINE *OCT 
15 FORMAT LP147 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP147
* 
*   CHARACTER CODES FOR TRAIN TYPES 1 TO 3
* 
*         *FUNCTION.    ,FORMAT LEVEL.   *
   DATA(OB(0),CON)2664,4523,6331,4645,4060,,6073,2646,5144, 
  ,2163,6043,2565,2543,4060,, 
* 
* 
*         *TOP OF FORM *
* 
   DATA(OB(301),CON)6346,4760,4626,6026,4651,4460 
20 MSG 1 TO PRINT 
   IF(P0.NE.6)GOTO 22 
   EXIT TO 47A
22 MSG 1 TO DISPLAY 
   B2=0 
24 GOSUB 60                  *CONNECT 
   OB(5)=501
   OB(16)=1 
   B4=4 
   SELECT CLEAR,ABT 74
   B1=0 
   B0=1 
   B4=11
   EJECT,ABT 74              *TOP OF FORM 
   GOSUB 61 
   B4=4 
   IF(B2.NE.0)GOTO 25 
   SELECT 6LPI,ABT 74 
   GOTO 26
25 SELECT 8LPI,ABT 74 
26 B4=6 
   PRINT 6 WORDS FROM OB(301),ABT 74
   GOSUB 61 
30 B4=4 
   SELECT PREPRINT B0,ABT 74
   B4=6 
   PRINT 17 WORDS FROM OB(0),ABT 74 
   GOSUB 60 
   IF(SB(1).AND.3717.NE.1)ERROR 15/100,GOSUB 71 
   IF(ES.AND.SL.EQ.0)GOTO 33  *IFNOT SCOPE LOOP 
32 B6=B6+1
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   GOTO 30
33 IF(ES.AND.RC.NE.0)GOTO 32  *REPEAT CONDITION 
   GOTO 30 WHILE (B1+1.EQ.1)  *EACH FUNCTION TWICE
   OB(5)=OB(5)+1             *FIX PRINT IMAGE 
   IF(OB(5).AND.7.NE.0)GOTO 34
   OB(5)=OB(5)+70 
34 OB(16)=OB(16)+1
   IF(OB(16).AND.77.NE.12)GOTO 36 
   OB(16)=OB(16)+66 
36 B1=0 
   GOTO 30 WHILE (B0+1.LE.14)  *LOOP FOR ALL FUNCTIONS
   GOTO 24 WHILE (B2+1.EQ.1)  *LOOP FOR BOTH 6,8 LPI
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0)GOTO 22   *REPEAT MODULE 
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 GOTO 77
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
   IF(ES.AND.SL.NE.0)GOTO 60  *IF SCOPE LOOP
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   IF(ES.AND.SL.NE.0)GOTO 72
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
77 END 20 
COMPILE                    -LP1 47 - CHECK PREPRINT SPACING 
*  *********************************************************
*  *********************************************************
   MODULE LP147A 580(22),LOCK 
* 
* 
/---------THIS MODULE CHECKS THE PREPRINT FORMAT LEVELS 
1  FORMAT LP147A PREPRINT FORMAT LEVELS 
2  FORMAT LP147A LC*DEC EC*DEC ST*OCT 
3  FORMAT LP147A ABORT ON (RES) AT LINE *OCT
4  FORMAT LP147A ABORT ON (SELECT) AT LINE *OCT 
6  FORMAT LP147A ABORT ON (PRINT) AT LINE *OCT
11 FORMAT LP147A ABORT ON (EJECT) AT LINE *OCT
15 FORMAT LP147A ERROR CODE *OCT AT LINE *OCT 
17 FORMAT *DEC ERROR(S) IN LP147A 
* 
*   CHARACTER CODES FOR TRAIN TYPE 6
* 
*         *FUNCTION.    ,FORMAT LEVEL.   *
   DATA(OB(0),CON)106,125,116,103,124,111,117,116,55,40,,,
  ,40,54,106,125,116,103,124,111,117,116,55,40,,,40 
* 
*         *TOP OF FORM* 
* 
   DATA(OB(301),CON)124,117,120,40,117,106,40,106,117,
  ,122,115
* 
20 MSG 1 TO PRINT 
22 MSG 1 TO DISPLAY 
   B2=0 
24 GOSUB 60                  *CONNECT 
   OB(12)=65
   OB(13)=61
   OB(30)=60
   OB(31)=61
   B4=4 
   SELECT CLEAR,ABT 74
   B1=0 
   B0=1 
   B4=11
   EJECT,ABT 74              *TOP OF FORM 
   GOSUB 61 
   B4=4 
   IF(B2.NE.0)GOTO 25        *IF NEXT IS 8 LPI
   SELECT 6LPI,ABT 74 
   GOTO 26
25 SELECT 8LPI,ABT 74 
26 B4=6 
   PRINT 13 WORDS FROM OB(301),ABT 74 
   GOSUB 61 
30 B4=4 
   SELECT PREPRINT B0,ABT 74
   B4=6 
   PRINT 33 WORDS FROM OB(0),ABT 74 
   GOSUB 60 
   IF(SB(1).AND.3717.NE.1)ERROR 15/100,GOSUB 71 
   IF(ES.AND.SL.EQ.0)GOTO 33  *IF NOT SCOPE LOOP
32 B6=B6+1
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   GOTO 30
33 IF(ES.AND.RC.NE.0)GOTO 32   *REPEAT CONDITION
   GOTO 30 WHILE (B1+1.EQ.1)  *EACH FUNCTION TWICE
   OB(13)=OB(13)+1           *FIX PRINT IMAGE 
   IF(OB(13).NE.70)GOTO 34
   OB(13)=60
   OB(12)=OB(12)+1
34 OB(31)=OB(31)+1
   IF(OB(31).NE.72)GOTO 36
   OB(31)=60
   OB(30)=OB(30)+1
36 B1=0 
   GOTO 30 WHILE (B0+1.LE.14)  *LOOP FOR ALL FUNCTIONS
   GOTO 24 WHILE (B2+1.EQ.1)  *LOOP FOR BOTH 6,8 LPI
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0)GOTO 22   *REPEAT MODULE 
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 GOTO 77
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
   IF(ES.AND.SL.NE.0)GOTO 60  *IF SCOPE LOOP
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   IF(ES.AND.SL.NE.0)GOTO 72
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
77 END 20 
COMPILE                    -LP1 47A - PREPRINT SPACING
*  *********************************************************
*  *********************************************************
   MODULE LP150 580(22),LOCK
*** LP150 - BURST SPEED TEST
* 
**
* 
*   LP150 - BURST SPEED TEST
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP150* PRINTS LINES WITH A PSEUDO-TRAIN OF 
*              16 CHARACTERS TO RUN THE PRINTER AT BURST SPEED. 
* 
* 
*   DESCRIPTION - BURST SPEED TEST
* 
*         1.  CONNECT AND CHECK STATUS
*         2.  PAGE EJECT
*         3.  CLEAR FORMAT SELECTIONS 
*         4.  CLEAR EXTENDED ARRAY
*         5.  SELECT AUTO PAGE EJECT
*         6.  FILL TRAIN IMAGE WITH CODES 0 - 17B 
*         7.  BUILD PACKED PRINT BUFFER WITH CODES 0 - 17B
*         8.  CHECK P7 FOR OPERATOR ENTERED LINE COUNT (DEFAULT IS 240) 
*         9.  WAIT FOR NOT BUSY STATUS
*         10. PRINT LINE
*         11. REPEAT FROM STEP 9 FOR PRINT COUNT
*         12. WAIT FOR NOT BUSY STATUS
*         13. RESTORE STANDARD TRAIN IMAGE
* 
* 
*   ERRORS DETECTED 
* 
*         1.  ABORT ON RESERVE
*         2.  ABORT ON SELECT 
*         3.  ABORT ON FILL 
*         4.  ABORT ON PRINT
*         5.  ABORT ON WAITNB 
*         6.  ABORT ON EJECT
*         7.  ABORT ON FILL 
*         7.  UNEXPECTED NOT READY-AND-NOT-BUSY (100) 
* 
* 
*   ERROR MESSAGES ISSUED 
* 
*         1.  ABORT ON (RES) AT LINE *OCT 
*         2.  ABORT ON (SELECT) AT LINE *OCT
*         3.  ABORT ON (FILL) AT LINE *OCT
*         4.  ABORT ON (PRINT) AT LINE *OCT 
*         5.  ABORT ON (WAITNB) AT LINE *OCT
*         6.  ABORT ON (EJECT) AT LINE *OCT 
*         7.  ABORT ON (FILL) AT LINE *OCT
*         7.  STATUS IS NOT (READY AND NOT BUSY)
* 
*** LP150 - INTERNAL DOCUMENTATION
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         B4 - ABORT MESSAGE POINTER
*         B5 - ERROR MESSAGE LINE POINTER 
*         B6 - SCOPE LOOP COUNTER 
*         B7 - ERROR COUNT
* 
*   MODULES CALLED
* 
*         LP197A - ERROR PROCESSOR
*         LP197Z - ERROR PROCESSOR
*         LP198D - GENERATE TRAIN IMAGE DATA
* 
* 
**********************************************************************
/---------BURST SPEED TEST
1  FORMAT LP150 BURST SPEED TEST
2  FORMAT LP150 LC*DEC EC*DEC ST*OCT
3  FORMAT LP150 ABORT ON (RES) AT LINE *OCT 
4  FORMAT LP150 ABORT ON (SELECT) AT LINE *OCT
6  FORMAT LP150 ABORT ON (PRINT) AT LINE *OCT 
7  FORMAT LP150 ABORT ON (WAITNB) AT LINE *OCT
11 FORMAT LP150 ABORT ON (EJECT) AT LINE *OCT 
12 FORMAT LP150 ABORT ON (FILL) AT LINE *OCT
15 FORMAT LP150 ERROR CODE *OCT AT LINE *OCT
17 FORMAT *DEC ERROR(S) IN LP150
20 MSG 1 TO PRINT 
22 MSG 1 TO DISPLAY 
24 GOSUB 60                  *CONNECT 
   B4=11
   EJECT,ABT 74              *TOP OF FORM 
   B4=4 
   SELECT CLEAR,ABT 74       *CLEAR FORMAT SELECTIONS 
   SELECT CLREXT,ABT 74      *CLEAR EXTENDED ARRAY
   SELECT 6LPI,ABT 74        *6 LINES PER INCH
   SELECT AUTO,ABT 74        *AUTO PAGE EJECT 
   B0=0 
   B1=0                      *BUILD 16 CHARACTER
26 OB(B0)=B1                 *TRAIN IMAGE 
   GOTO 27 WHILE (B1+1.LT.20) 
   B1=0 
27 GOTO 26 WHILE (B0+1.LT.288D) 
   B4=12
   FILL IMAGE,ABT 74
   B0=0 
   B1=0001                   *BUILD PACKED PRINT LINE 
31 OB(B0)=B1
   GOTO 32 WHILE (B1+101.LE.1617) 
   B1=0001
32 GOTO 31 WHILE (B0+1.LT.140)
   B0=0                      *CLEAR LINE COUNTER
   B1=P7                     *SET LINE LIMIT
   IF(B1.NE.0)GOTO 34 
   B1=240D                   *DEFAULT 
34 B4=7 
   WAITNB,ABT 74
   IF(SB(1).AND.3717.NE.1)ERROR 15/100,GOSUB 71 
36 B4=6 
   PRINT 104 WORDS FROM OB(0),ABT 74
   GOTO 34 WHILE (B0+1.LT.B1)  *PRINT LINES 
   B4=7 
   WAITNB,ABT 74
   IF(SB(1).AND.3717.NE.1)ERROR 15/100,GOSUB 71 
44 CALL 98D                  *RESTORE TRAIN IMAGE 
   GOSUB 60 
   B4=12
   FILL IMAGE,ABT 74
   B4=11
   EJECT,ABT 74 
/---------EXIT SEQUENCE 
54 B6=B6+1
   IF(ES.AND.RM.NE.0) GOTO 22   *REPEAT MODULE
   IF(B7.EQ.0)GOTO 57 
56 MSG 17(B7) TO DAYFILE     *TERMINATION MESSAGE 
57 GOTO 77
/---------CONNECT SUBROUTINE *******************************
60 B4=3 
   RES,ABT 74                *CONNECT 
   MSG 2(B6,B7,SB(1)) TO DISPLAY
   IF(SB(1).AND.3 EQ 1)GOTO 63  *CHECK STATUS 
61 REL
   DELAY 100 MSEC            *WAIT
   GOTO 60                   *TRY AGAIN 
63 RETURN 
/---------ERROR SUBROUTINE *********************************
71 B7=B7+1                   *INCREMENT COUNTER 
   MSG EM (EC,EA) TO LINE 1  *POST MESSAGE
   B5=3 
   CALL 97A 
   IF(B7.GT.4) GOTO 56      *EXIT IF MANY ERRORS
   B4=3 
   RES,ABT 74                *RECONNECT 
72 RETURN 
/---------ABORT ERROR PROCESSOR ****************************
74 ENDSUB                    *KILL ANY SUBROUTINES
   B7=B7+1                   *COUNT ERRORS
75 MSG B4(EA) TO LINE 0      *ERROR MESSAGE 
   MSG EM TO LINE 1          *PRODUCT OVERLAY MESSAGE 
   B5=3                      *NEXT LINE 
   CALL 97Z                  *PROCESS ABORTS
   MSG 1 TO DISPLAY          *RESTORE RUN MESSAGE 
   IF(B7.LT.2)GOTO 24        *RESTART IF FIRST ERROR
   GOTO 56                   *ELSE ABNORMAL TERMINATE 
77 END 20 
COMPILE                    -LP1 50 - BURST SPEED TEST 
*  *********************************************************
*  *********************************************************
   MODULE LP196A 3000(22),LOCK
*** LP196A - ERROR PROCESSOR
* 
**
* 
*   LP196A - ERROR PROCESSOR
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP196A* IS A UTILITY MODULE CALLED BY
*              PRIMARY LOW-LEVEL MODULES FOR PROCESSING ERRORS. 
* 
* 
*   DESCRIPTION - ERROR PROCESSOR 
* 
*         1.  IF ERROR CODE 110-117 EXIT TO LP196B. 
*         2.  IF ERROR CODE 120-127 EXIT TO LP196C. 
*         3.  IF ERROR CODE 200-207 EXIT TO LP196D. 
*         4.  IF ERROR CODE 300-307 EXIT TO LP196E. 
*         5.  IF ERROR CODE 400-407 EXIT TO LP196F. 
*         6.  POST ERROR MESSAGE TEXT 
*         7.  EXIT TO LP196X
*** LP196A - INTERNAL DOCUMENTATION 
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*    SUBMODULES USED
* 
*         LP196B - ERROR PROCESSOR
*         LP196C - ERROR PROCESSOR
*         LP196D - ERROR PROCESSOR
*         LP196E - ERROR PROCESSOR
*         LP196F - ERROR PROCESSOR
*         LP196G - ERROR PROCESSOR
*         LP196X - ERROR PROCESSOR
* 
* 
**********************************************************************
/---------ERROR CODE PROCESSOR PART 1 
1  FORMAT ILLEGAL ERROR CODE *OCT 
/---------ERROR CODE = 100
10 FORMAT STATUS IS NOT (READY AND NOT BUSY)
/---------ERROR CODE = 101
14 FORMAT SELECTED READY-AND-NOT-BUSY INTERRUPT 
15 FORMAT IN STATIC STATE 
/---------ERROR CODE = 102
20 FORMAT CLEARED READY-AND-NOT-BUSY INTERRUPT
21 FORMAT IN STATIC STATE 
/---------ERROR CODE = 103
24 FORMAT CLEARED READY-AND-NOT-BUSY INTERRUPT
25 FORMAT BY RECONNECTING 
/---------ERROR CODE = 104
30 FORMAT SELECTED READY-AND-NOT-BUSY INTERRUPT 
31 FORMAT DURING A PRINT OPERATION. EXPECTED INT. 
/---------ERROR CODE = 105
34 FORMAT CLEARED READY-AND-NOT-BUSY INTERRUPT
35 FORMAT DURING A PRINT OPERATION. EXPECTED NO INT.
/---------ERROR CODE = 106
40 FORMAT SELECTED E-O-P INTERRUPT. NO INTERRUPT
41 FORMAT AFTER SPACE FUNCTION. 
/---------ERROR CODE = 107
44 FORMAT CLEARED E-O-P INTERRUPT. EXPECTED NO
45 FORMAT INTERRUPT STATUS. 
50 IB(100)=B0                *SAVE REGISTERS
   IB(101)=B1                *SAVE REGISTERS
   IB(102)=B2                *SAVE REGISTERS
   IB(103)=B3                *SAVE REGISTERS
   IB(104)=B4                *SAVE REGISTERS
   IB(105)=B5                *SAVE REGISTERS
   IB(106)=B6                *SAVE REGISTERS
   IB(107)=B7                *SAVE REGISTERS
   IF(EC.LT.100)GOTO 62 
   IF(EC.GT.107)GOTO 61 
   IF(EC.NE.100)GOTO 51 
   B2=10                     *FIRST MSG 
   B3=10                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
51 IF(EC.NE.101)GOTO 52 
   B2=14                     *FIRST MSG 
   B3=15                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=201                    *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
52 IF(EC.NE.102)GOTO 53 
   B2=20                     *FIRST MSG 
   B3=21                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
53 IF(EC.NE.103)GOTO 54 
   B2=24                     *FIRST MSG 
   B3=25                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
54 IF(EC.NE.104)GOTO 55 
   B2=30                     *FIRST MSG 
   B3=31                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=201                    *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
55 IF(EC.NE.105)GOTO 56 
   B2=34                     *FIRST MSG 
   B3=35                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=103                    *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
56 IF(EC.NE.106)GOTO 57 
   B2=40                     *FIRST MSG 
   B3=41                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=401                    *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
57 B2=44                     *FIRST MSG 
   B3=45                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
60 MSG B2 TO LINE B5
   B5=B5+1
   GOTO 60 WHILE (B2+1.LE.B3) 
   B5=B5+1
   RETURN 
61 IF(EC.LT.120)GOTO 66 
   IF(EC.LT.130)GOTO 67 
   IF(EC.LT.200)GOTO 62 
   IF(EC.LT.210)GOTO 70 
   IF(EC.LT.300)GOTO 62 
   IF(EC.LT.310)GOTO 71 
   IF(EC.LT.400)GOTO 62 
   IF(EC.LT.410)GOTO 72 
62 MSG 1 (EC) TO LINE B5     *BAD ERROR CODE
   B5=B5+1
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
66 EXIT TO 96B
67 EXIT TO 96C
70 EXIT TO 96D
71 EXIT TO 96E
72 EXIT TO 96F
77 EXIT TO 96X
   END 50 
COMPILE                    -LP1 96A - ERROR PROCESSOR 
*  *********************************************************
*  *********************************************************
   MODULE LP196B 3000(22),LOCK
*** LP196B - ERROR PROCESSOR
* 
**
* 
*   LP196B - ERROR PROCESSOR
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP196B* IS A UTILITY MODULE CALLED BY
*              MODULE *LP196A* FOR PROCESSING ERRORS. 
* 
* 
*   DESCRIPTION - ERROR PROCESSOR 
* 
*         1.  POST ERROR MESSAGE TEXT 
*         2.  EXIT TO LP196X
*** LP196B - INTERNAL DOCUMENTATION 
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*    SUBMODULES USED
* 
*         LP196X - ERROR PROCESSOR
* 
* 
**********************************************************************
/---------ERROR CODE PROCESSOR PART 2 
/---------ERROR CODE = 110
10 FORMAT SELECTED END-OF-OPERATION INTERRUPT.
11 FORMAT EXPECTED INTERRUPT AFTER PRINT. 
/---------ERROR CODE = 111
14 FORMAT CLEARED END-OF-OPERATION INTERRUPT BY 
15 FORMAT RE-SELECTING.  EXPECTED NO INTERRUPT. 
/---------ERROR CODE = 112
20 FORMAT CLEARED END-OF-OPERATION INTERRUPT
21 FORMAT WHILE BUSY.  EXPECTED NO INTERRUPT. 
/---------ERROR CODE = 113
24 FORMAT SELECTED ABNORMAL-END-OF-OPERATION INTERRUPT. 
25 FORMAT EXPECTED NO INTERRUPT AFTER SPACE OPERATION.
/---------ERROR CODE = 114
30 FORMAT SELECTED ABNORMAL-END-OF-OPERATION INTERRUPT; 
31 FORMAT PRINTED A LINE WITH BAD CODE.  EXPECTED 
32 FORMAT ABNORMAL-END-OF-OPERATION INTERRUPT.
/---------ERROR CODE = 115
34 FORMAT CLEARED ABNORMAL-END-OF-OPERATION INTERRUPT.
35 FORMAT EXPECTED NO INTERRUPT.
/---------ERROR CODE = 116
40 FORMAT CLEARED END-OF-OPERATION INTERRUPT.  EXPECTED 
41 FORMAT NO INTERRUPT WITH PRINT ERROR.
/---------ERROR CODE = 117
44 FORMAT SELECTED ABNORMAL-END-OF-OPERATION INTERRUPT; 
45 FORMAT PRINTED A LINE WITH ALL GOOD CODES.  EXPECTED 
46 FORMAT NO ABNORMAL STATUS. 
/ 
/ 
50 IF(EC.NE.110)GOTO 51 
   B2=10                     *FIRST MSG 
   B3=11                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=401                    *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
51 IF(EC.NE.111)GOTO 52 
   B2=14                     *FIRST MSG 
   B3=15                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
52 IF(EC.NE.112)GOTO 53 
   B2=20                     *FIRST MSG 
   B3=21                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
53 IF(EC.NE.113)GOTO 54 
   B2=24                     *FIRST MSG 
   B3=25                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
54 IF(EC.NE.114)GOTO 55 
   B2=30                     *FIRST MSG 
   B3=32                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=3405                   *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
55 IF(EC.NE.115)GOTO 56 
   B2=34                     *FIRST MSG 
   B3=35                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=2405                   *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
56 IF(EC.NE.116)GOTO 57 
   B2=40                     *FIRST MSG 
   B3=41                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=2005                   *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
57 B2=44                     *FIRST MSG 
   B3=46                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=401                    *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
/MESSAGE DISPLAY SUBROUTINE 
60 MSG B2 TO LINE B5
   B5=B5+1
   GOTO 60 WHILE (B2+1.LE.B3) 
   B5=B5+1
   RETURN 
77 EXIT TO 96X
   END 50 
COMPILE                    -LP1 96B - ERROR PROCESSOR 
*  *********************************************************
*  *********************************************************
   MODULE LP196C 3000(22),LOCK
*** LP196C - ERROR PROCESSOR
* 
**
* 
*   LP196C - ERROR PROCESSOR
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP196C* IS A UTILITY MODULE CALLED BY
*              MODULE *LP196A* FOR PROCESSING ERRORS. 
* 
* 
*   DESCRIPTION - ERROR PROCESSOR 
* 
*         1.  POST ERROR MESSAGE TEXT 
*         2.  EXIT TO LP196X
*** LP196C - INTERNAL DOCUMENTATION 
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*    SUBMODULES USED
* 
*         LP196X - ERROR PROCESSOR
* 
* 
**********************************************************************
/---------ERROR CODE PROCESSOR PART 3 
/---------ERROR CODE = 120
10 FORMAT CLEARED ABNORMAL-END-OF-OPERATION INTERRUPT AND 
11 FORMAT END-OF-OPERATION INTERRUPT. EXPECTED NO INTERRUPT 
/---------ERROR CODE = 121
14 FORMAT SELECTED SPACE TO LAST LINE OF FORM.  EXPECTED
15 FORMAT LAST-LINE STATUS. 
/---------ERROR CODE = 122
20 FORMAT FILLED TRAIN IMAGE.  EXPECTED READY AND NOT BUSY. 
/---------ERROR CODE = 123
24 FORMAT SELECTED RNBINT AFTER INITIATING A PRINT. 
25 FORMAT EXPECT READY,BUSY AND NO INTERRUPT. 
/---------ERROR CODE = 124
30 FORMAT EXPECTED READY AND BUSY AFTER PRINT.
/---------ERROR CODE = 125
34 FORMAT EXPECTED COINCIDENT STATUS
/---------ERROR CODE = 126
40 FORMAT EXPECTED NO COINCIDENT STATUS 
/---------ERROR CODE = 127
44 FORMAT EXECUTED PRINT WITH END-OF-OPERATION
45 FORMAT AND READY-NOT-BUSY INTERRUPTS SELECTED. 
/ 
/ 
50 IF(EC.NE.120)GOTO 51 
   B2=10                     *FIRST MSG 
   B3=11                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
51 IF(EC.NE.121)GOTO 52 
   B2=14                     *FIRST MSG 
   B3=15                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3737                   *MASK
   B0=21                     *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
52 IF(EC.NE.122)GOTO 53 
   B2=20                     *FIRST MSG 
   B3=20                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
53 IF(EC.NE.123)GOTO 54 
   B2=24                     *FIRST MSG 
   B3=25                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=103                    *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
54 IF(EC.NE.124)GOTO 55 
   B2=30                     *FIRST MSG 
   B3=30                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=103                    *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
55 IF(EC.NE.125)GOTO 56 
   B2=34                     *FIRST MSG 
   B3=34                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=4000                   *MASK
   B0=4000                   *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
56 IF(EC.NE.126)GOTO 57 
   B2=40                     *FIRST MSG 
   B3=40                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=4000                   *MASK
   B0=0                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
57 B2=44                     *FIRST MSG 
   B3=45                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=601                    *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
/MESSAGE DISPLAY SUBROUTINE 
60 MSG B2 TO LINE B5
   B5=B5+1
   GOTO 60 WHILE (B2+1.LE.B3) 
   B5=B5+1
   RETURN 
77 EXIT TO 96X
   END 50 
COMPILE                    -LP1 96C - ERROR PROCESSOR 
*  *********************************************************
*  *********************************************************
   MODULE LP196D 3000(22),LOCK
*** LP196D - ERROR PROCESSOR
* 
**
* 
*   LP196D - ERROR PROCESSOR
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP196D* IS A UTILITY MODULE CALLED BY
*              MODULE *LP196A* FOR PROCESSING ERRORS. 
* 
* 
*   DESCRIPTION - ERROR PROCESSOR 
* 
*         1.  POST ERROR MESSAGE TEXT 
*         2.  EXIT TO LP196X
*** LP196D - INTERNAL DOCUMENTATION 
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*    SUBMODULES USED
* 
*         LP196X - ERROR PROCESSOR
* 
* 
**********************************************************************
/---------ERROR CODE PROCESSOR PART 4 
1  FORMAT ILLEGAL ERROR CODE *OCT 
/---------ERROR CODE = 200
10 FORMAT NO LEVEL 9 STATUS OBSERVED. 
/--------- ERROR CODE=201 
/ 
/ 
50 IF(EC.NE.200)GOTO 62 
   B2=10                     *FIRST MSG 
   B3=10                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=40                     *MASK
   B0=40                     *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
60 MSG B2 TO LINE B5
   B5=B5+1
   GOTO 60 WHILE (B2+1.LE.B3) 
   B5=B5+1
   RETURN 
/ 
62 MSG 1 (EC) TO LINE B5     *BAD ERROR CODE
   B5=B5+1
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
77 EXIT TO 96X
   END 50 
COMPILE                    -LP1 96D - ERROR PROCESSOR 
*  *********************************************************
*  *********************************************************
   MODULE LP196E 3000(22),LOCK
*** LP196E - ERROR PROCESSOR
* 
**
* 
*   LP196E - ERROR PROCESSOR
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP196E* IS A UTILITY MODULE CALLED BY
*              MODULE *LP196A* FOR PROCESSING ERRORS. 
* 
* 
*   DESCRIPTION - ERROR PROCESSOR 
* 
*         1.  POST ERROR MESSAGE TEXT 
*         2.  EXIT TO LP196W
*** LP196E - INTERNAL DOCUMENTATION 
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*    SUBMODULES USED
* 
*         LP196W - ERROR PROCESSOR
* 
* 
**********************************************************************
/---------ERROR CODE PROCESSOR PART 5 
1  FORMAT ILLEGAL ERROR CODE *OCT 
/---------ERROR CODE = 300
10 FORMAT 6681 STATUS ERROR.
/---------ERROR CODE = 301
/ 
/ 
50 IF(EC.NE.300)GOTO 62 
   B2=10                     *FIRST MSG 
   B3=10                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=7777                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
/MESSAGE DISPLAY SUBROUTINE 
60 MSG B2 TO LINE B5
   B5=B5+1
   GOTO 60 WHILE (B2+1.LE.B3) 
   B5=B5+1
   RETURN 
/ 
62 MSG 1 (EC) TO LINE B5     *BAD ERROR CODE
   B5=B5+1
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
77 EXIT TO 96W
   END 50 
COMPILE                    -LP1 96E - ERROR PROCESSOR 
*  *********************************************************
*  *********************************************************
   MODULE LP196F 3000(22),LOCK
*** LP196F - ERROR PROCESSOR
* 
**
* 
*   LP196F - ERROR PROCESSOR
*            -------------------
* 
*   OVERVIEW - MODULE *LP196F* IS A UTILITY MODULE CALLED BY
*              MODULE *LP196A* FOR PROCESSING ERRORS. 
* 
* 
*   DESCRIPTION - ERROR PROCESSOR 
* 
*         1.  POST ERROR MESSAGE TEXT 
*         2.  EXIT TO LP196Z
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*    SUBMODULES USED
* 
*         LP196Z - ERROR PROCESSOR
* 
* 
**********************************************************************
/---------ERROR CODE PROCESSOR PART 6 
1  FORMAT ILLEGAL ERROR CODE *OCT 
/---------ERROR CODE = 400
10 FORMAT NO ABORT FROM ILLEGAL FUNCTION. 
/---------ERROR CODE = 401
/ 
/ 
50 IF(EC.NE.400)GOTO 62 
   B2=10                     *FIRST MSG 
   B3=10                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
/MESSAGE DISPLAY SUBROUTINE 
60 MSG B2 TO LINE B5
   B5=B5+1
   GOTO 60 WHILE (B2+1.LE.B3) 
   B5=B5+1
   RETURN 
/ 
62 MSG 1 (EC) TO LINE B5     *BAD ERROR CODE
   B5=B5+1
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
77 EXIT TO 96Z
   END 50 
COMPILE                    -LP1 96F - ERROR PROCESSOR 
*  *********************************************************
*  *********************************************************
   MODULE LP196W 3000(22),LOCK
*** LP196W - 6681 STATUS
* 
**
* 
*   LP196W - 6681 STATUS
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP196W* IS A UTILITY MODULE CALLED 
*              TO PRESENT 6681 STATUS ERRORS. 
* 
* 
*   DESCRIPTION - ERROR PROCESSOR 
* 
*         1.  POST STATUS MESSAGES
*         2.  EXIT TO LP196Z
*** LP196W - INTERNAL DOCUMENTATION 
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*    SUBMODULES USED
* 
*         LP196Z - ERROR PROCESSOR
* 
* 
**********************************************************************
/---------6681 STATUS ERROR PROC(B0=EXP,SB(1)=ACT,B1=MASK)
1  FORMAT UNEXPECTED STATUS BIT *DEC
2  FORMAT MISSING STATUS BIT *DEC 
3  FORMAT ACTUAL 6681 STATUS = *OCT, EXPECTED = *OCT
10 FORMAT -----------1 REJECT 
11 FORMAT ----------1- INTERNAL REJECT
12 FORMAT ---------1-- TRANSMISSION PARITY ERROR
13 FORMAT --------1--- UNUSED 
14 FORMAT -------1---- UNUSED 
15 FORMAT ------1----- UNUSED 
16 FORMAT -----1------ UNUSED 
17 FORMAT ----1------- UNUSED 
20 FORMAT ---1-------- UNUSED 
21 FORMAT --1--------- UNUSED 
22 FORMAT -1---------- UNUSED 
23 FORMAT 1----------- PARITY ERROR ON DATA CHANNEL 
/ 
30 B2=B1 XOR 7777 
   B2=B2 AND SB(0)
   B0=B0 OR B2               *SET DONT CARES IN EXPECT
   MSG 3 (SB(0),B0) TO LINE B5
   B5=B5+1
   B2=0 
   B3=1 
36 IF(B0.AND.B3.NE.0)GOTO 40  *EXPECTED IS SET
   IF(SB(0).AND.B3.EQ.0)GOTO 44  *NO ERROR
   MSG 1 (B2) TO LINE B5     *UNEXPECTED STATUS BIT 
   GOTO 42
40 IF(SB(0).AND.B3.NE.0)GOTO 44 
   MSG 2 (B2) TO LINE B5     *MISSING STATUS BIT
42 B5=B5+1
   B4=B2+10 
   MSG B4 TO LINE B5         *TELL WHICH ONE
   B5=B5+1
44 B3=B3 LS 1 
   GOTO 36 WHILE (B2+1.LT.12D)
   B5=B5+1
77 EXIT TO 96Z
   END 30 
COMPILE                    -LP1 96W - 6681 STATUS 
*  *********************************************************
*  *********************************************************
   MODULE LP196X 3000(22),LOCK
*** LP196X - 512 STATUS 
* 
**
* 
*   LP196X - 512 STATUS 
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP196X* IS A UTILITY MODULE CALLED 
*              TO PRESENT 512 STATUS ERRORS.
* 
* 
*   DESCRIPTION - ERROR PROCESSOR 
* 
*         1.  POST STATUS MESSAGES
*         2.  EXIT TO LP196Z
*** LP196X - INTERNAL DOCUMENTATION 
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*    SUBMODULES USED
* 
*         LP196Z - ERROR PROCESSOR
* 
* 
**********************************************************************
/---------STATUS ERROR PROC(B0=EXP,SB(1)=ACT,B1=MASK) 
1  FORMAT UNEXPECTED STATUS BIT *DEC
2  FORMAT MISSING STATUS BIT *DEC 
3  FORMAT ACTUAL STATUS = *OCT, EXPECTED = *OCT 
10 FORMAT -----------1 READY
11 FORMAT ----------1- BUSY 
12 FORMAT ---------1-- COMPARE FAULT
13 FORMAT --------1--- PAPER FAULT
14 FORMAT -------1---- LAST LINE OF FORM
15 FORMAT ------1----- FORMAT TAPE LEVEL 9
16 FORMAT -----1------ MEMORY BUSY
17 FORMAT ----1------- READY-NOT-BUSY INTERRUPT 
20 FORMAT ---1-------- END-OF-OPERATION INTERRUPT 
21 FORMAT --1--------- ABNORMAL END-OF-OP INTERRUPT 
22 FORMAT -1---------- PRINT ERROR
23 FORMAT 1----------- 6/8 LINE COINCIDENT
/ 
30 B2=B1 XOR 7777 
   B2=B2 AND SB(1)
   B0=B0 OR B2               *SET DONT CARES IN EXPECT
   MSG 3 (SB(1),B0) TO LINE B5
   B5=B5+1
   B2=0 
   B3=1 
36 IF(B0.AND.B3.NE.0)GOTO 40  *EXPECTED IS SET
   IF(SB(1).AND.B3.EQ.0)GOTO 44  *NO ERROR
   MSG 1 (B2) TO LINE B5     *UNEXPECTED STATUS BIT 
   GOTO 42
40 IF(SB(1).AND.B3.NE.0)GOTO 44 
   MSG 2 (B2) TO LINE B5     *MISSING STATUS BIT
42 B5=B5+1
   B4=B2+10 
   MSG B4 TO LINE B5         *TELL WHICH ONE
   B5=B5+1
44 B3=B3 LS 1 
   GOTO 36 WHILE (B2+1.LT.12D)
   B5=B5+1
77 EXIT TO 96Z
   END 30 
COMPILE                    -LP1 96X - 512 STATUS
*  *********************************************************
*  *********************************************************
   MODULE LP196Z 3000(22),LOCK
*** LP196Z - ERROR PROCESSOR
* 
**
* 
*   LP196Z - ERROR PROCESSOR
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP196Z* IS A UTILITY MODULE CALLED 
*              TO PRESENT GENERAL ERROR INFORMATION 
* 
* 
*   DESCRIPTION - ERROR PROCESSOR 
* 
*         1.  POST ERROR INFORMATION
*         2.  RETURN
*** LP196Z - INTERNAL DOCUMENTATION 
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*   MODULES CALLED
* 
*         NONE
* 
* 
**********************************************************************
/ 
/---------       PROCESS ERRORS FOR LOW LEVEL MODULES 
/ 
1  FORMAT CH=*OCT, EQ=*OCT, UN=*OCT, LF=*OCT, DC=*OCT 
3  FORMAT ERRCNT=*OCT, WDCNT=*OCT, WDS XMITTED=*OCT 
5  FORMAT 668X STATUS=*OCT, PRINTER STATUS=*OCT *OCT
17 FORMAT . . . . . . . . . . . . . . . . . . . . . . 
/ 
20 MSG 1 (SB(70),SB(71),SB(72),LF,DC) TO LINE B5
   B5=B5+1
   MSG 3 (B7,WC,WT) TO LINE B5
   B5=B5+1
   MSG 5 (SB(0),SB(1),SB(2)) TO LINE B5 
   B5=B5+1
   MSG 17 TO LINE B5
   PICTURE
   HALT 
   BLANK
   IF(EM.GE.100)GOTO 50      *IF NOT ABORT ERROR
   B0=IB(100)                *RESTORE REGISTERS 
   B1=IB(101)                *RESTORE REGISTERS 
   B2=IB(102)                *RESTORE REGISTERS 
   B3=IB(103)                *RESTORE REGISTERS 
   B4=IB(104)                *RESTORE REGISTERS 
   B6=IB(106)                *RESTORE REGISTERS 
   B7=IB(107)                *RESTORE REGISTERS 
50 EXIT 
   END 20 
COMPILE                    -LP1 96Z - ERROR PROCESSOR 
*  *********************************************************
*  *********************************************************
   MODULE LP197A 580(22),LOCK 
*** LP197A - ERROR PROCESSOR
* 
**
* 
*   LP197A - ERROR PROCESSOR
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP197A* IS A UTILITY MODULE CALLED BY
*              PRIMARY HIGH-LEVEL MODULES FOR PROCESSING ERRORS.
* 
* 
*   DESCRIPTION - ERROR PROCESSOR 
* 
*         1.  IF ERROR CODE 110-117 EXIT TO LP197B. 
*         2.  IF ERROR CODE 120-127 EXIT TO LP197C. 
*         3.  IF ERROR CODE 200-201 EXIT TO LP197D. 
*         4.  IF ERROR CODE 300-307 EXIT TO LP197E. 
*         5.  IF ERROR CODE 400-407 EXIT TO LP197F. 
*         6.  POST ERROR MESSAGE TEXT 
*         7.  EXIT TO LP197X. 
*** LP197A - INTERNAL DOCUMENTATION 
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*   SUBMODULES USED 
* 
*         LP197B - ERROR PROCESSOR
*         LP197C - ERROR PROCESSOR
*         LP197D - ERROR PROCESSOR
*         LP197E - ERROR PROCESSOR
*         LP197F - ERROR PROCESSOR
*         LP197X - ERROR PROCESSOR
* 
* 
**********************************************************************
/---------ERROR CODE PROCESSOR PART 1 
1  FORMAT ILLEGAL ERROR CODE *OCT 
/---------ERROR CODE = 100
10 FORMAT STATUS IS NOT (READY AND NOT BUSY)
/---------ERROR CODE = 101
14 FORMAT SELECTED READY-AND-NOT-BUSY INTERRUPT 
15 FORMAT IN STATIC STATE 
/---------ERROR CODE = 102
20 FORMAT CLEARED READY-AND-NOT-BUSY INTERRUPT
21 FORMAT IN STATIC STATE 
/---------ERROR CODE = 103
24 FORMAT CLEARED READY-AND-NOT-BUSY INTERRUPT
25 FORMAT BY RECONNECTING 
/---------ERROR CODE = 104
30 FORMAT SELECTED READY-AND-NOT-BUSY INTERRUPT 
31 FORMAT DURING A PRINT OPERATION. EXPECTED INT. 
/---------ERROR CODE = 105
34 FORMAT CLEARED READY-AND-NOT-BUSY INTERRUPT
35 FORMAT DURING A PRINT OPERATION. EXPECTED NO INT.
/---------ERROR CODE = 106
40 FORMAT SELECTED E-O-P INTERRUPT. NO INTERRUPT
41 FORMAT AFTER SPACE FUNCTION. 
/---------ERROR CODE = 107
44 FORMAT CLEARED E-O-P INTERRUPT. EXPECTED NO
45 FORMAT INTERRUPT STATUS. 
50 IB(100)=B0                *SAVE REGISTERS
   IB(101)=B1                *SAVE REGISTERS
   IB(102)=B2                *SAVE REGISTERS
   IB(103)=B3                *SAVE REGISTERS
   IB(104)=B4                *SAVE REGISTERS
   IB(105)=B5                *SAVE REGISTERS
   IB(106)=B6                *SAVE REGISTERS
   IB(107)=B7                *SAVE REGISTERS
   IF(EC.LT.100)GOTO 62 
   IF(EC.GT.107)GOTO 61 
   IF(EC.NE.100)GOTO 51 
   B2=10                     *FIRST MSG 
   B3=10                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
51 IF(EC.NE.101)GOTO 52 
   B2=14                     *FIRST MSG 
   B3=15                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=201                    *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
52 IF(EC.NE.102)GOTO 53 
   B2=20                     *FIRST MSG 
   B3=21                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
53 IF(EC.NE.103)GOTO 54 
   B2=24                     *FIRST MSG 
   B3=25                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
54 IF(EC.NE.104)GOTO 55 
   B2=30                     *FIRST MSG 
   B3=31                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=201                    *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
55 IF(EC.NE.105)GOTO 56 
   B2=34                     *FIRST MSG 
   B3=35                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=103                    *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
56 IF(EC.NE.106)GOTO 57 
   B2=40                     *FIRST MSG 
   B3=41                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=401                    *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
57 B2=44                     *FIRST MSG 
   B3=45                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
60 MSG B2 TO LINE B5
   B5=B5+1
   GOTO 60 WHILE (B2+1.LE.B3) 
   B5=B5+1
   RETURN 
61 IF(EC.LT.120)GOTO 66 
   IF(EC.LT.130)GOTO 67 
   IF(EC.LT.200)GOTO 62 
   IF(EC.LT.210)GOTO 70 
   IF(EC.LT.300)GOTO 62 
   IF(EC.LT.310)GOTO 71 
   IF(EC.LT.400)GOTO 62 
   IF(EC.LT.410)GOTO 72 
62 MSG 1 (EC) TO LINE B5     *BAD ERROR CODE
   B5=B5+1
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
66 EXIT TO 97B
67 EXIT TO 97C
70 EXIT TO 97D
71 EXIT TO 97E
72 EXIT TO 97F
77 EXIT TO 97X
   END 50 
COMPILE                    -LP1 97A - ERROR PROCESSOR 
*  *********************************************************
*  *********************************************************
   MODULE LP197B 580(22),LOCK 
*** LP197B - ERROR PROCESSOR
* 
**
* 
*   LP197B - ERROR PROCESSOR
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP197B* IS A UTILITY MODULE CALLED BY
*              MODULE *LP197A* FOR PROCESSING ERRORS. 
* 
* 
*   DESCRIPTION - ERROR PROCESSOR 
* 
*         1.  POST ERROR MESSAGE TEXT 
*         2.  EXIT TO LP197X
*** LP197B - INTERNAL DOCUMENTATION 
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*   SUBMODULES USED 
* 
*         LP197X - ERROR PROCESSOR
* 
* 
**********************************************************************
/---------ERROR CODE PROCESSOR PART 2 
/---------ERROR CODE = 110
10 FORMAT SELECTED END-OF-OPERATION INTERRUPT.
11 FORMAT EXPECTED INTERRUPT AFTER PRINT. 
/---------ERROR CODE = 111
14 FORMAT CLEARED END-OF-OPERATION INTERRUPT BY 
15 FORMAT RE-SELECTING.  EXPECTED NO INTERRUPT. 
/---------ERROR CODE = 112
20 FORMAT CLEARED END-OF-OPERATION INTERRUPT
21 FORMAT WHILE BUSY.  EXPECTED NO INTERRUPT. 
/---------ERROR CODE = 113
24 FORMAT SELECTED ABNORMAL-END-OF-OPERATION INTERRUPT. 
25 FORMAT EXPECTED NO INTERRUPT AFTER SPACE OPERATION.
/---------ERROR CODE = 114
30 FORMAT SELECTED ABNORMAL-END-OF-OPERATION INTERRUPT; 
31 FORMAT PRINTED A LINE WITH BAD CODE.  EXPECTED 
32 FORMAT ABNORMAL-END-OF-OPERATION INTERRUPT.
/---------ERROR CODE = 115
34 FORMAT CLEARED ABNORMAL-END-OF-OPERATION INTERRUPT.
35 FORMAT EXPECTED NO INTERRUPT.
/---------ERROR CODE = 116
40 FORMAT CLEARED END-OF-OPERATION INTERRUPT.  EXPECTED 
41 FORMAT NO INTERRUPT WITH PRINT ERROR.
/---------ERROR CODE = 117
44 FORMAT SELECTED ABNORMAL-END-OF-OPERATION INTERRUPT; 
45 FORMAT PRINTED A LINE WITH ALL GOOD CODES.  EXPECTED 
46 FORMAT NO ABNORMAL STATUS. 
/ 
/ 
50 IF(EC.NE.110)GOTO 51 
   B2=10                     *FIRST MSG 
   B3=11                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=401                    *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
51 IF(EC.NE.111)GOTO 52 
   B2=14                     *FIRST MSG 
   B3=15                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
52 IF(EC.NE.112)GOTO 53 
   B2=20                     *FIRST MSG 
   B3=21                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
53 IF(EC.NE.113)GOTO 54 
   B2=24                     *FIRST MSG 
   B3=25                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
54 IF(EC.NE.114)GOTO 55 
   B2=30                     *FIRST MSG 
   B3=32                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=3405                   *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
55 IF(EC.NE.115)GOTO 56 
   B2=34                     *FIRST MSG 
   B3=35                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=2405                   *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
56 IF(EC.NE.116)GOTO 57 
   B2=40                     *FIRST MSG 
   B3=41                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=2005                   *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
57 B2=44                     *FIRST MSG 
   B3=46                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=401                    *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
/MESSAGE DISPLAY SUBROUTINE 
60 MSG B2 TO LINE B5
   B5=B5+1
   GOTO 60 WHILE (B2+1.LE.B3) 
   B5=B5+1
   RETURN 
77 EXIT TO 97X
   END 50 
COMPILE                    -LP1 97B - ERROR PROCESSOR 
*  *********************************************************
*  *********************************************************
   MODULE LP197C 580(22),LOCK 
*** LP197C - ERROR PROCESSOR
* 
**
* 
*   LP197C - ERROR PROCESSOR
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP197C* IS A UTILITY MODULE CALLED BY
*              MODULE *LP197A* FOR PROCESSING ERRORS. 
* 
* 
*   DESCRIPTION - ERROR PROCESSOR 
* 
*         1.  POST ERROR MESSAGE TEXT 
*         2.  EXIT TO LP197X. 
*** LP197C - INTERNAL DOCUMENTATION 
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*   SUBMODULES USED 
* 
*         LP197X - ERROR PROCESSOR
* 
* 
**********************************************************************
/---------ERROR CODE PROCESSOR PART 3 
/---------ERROR CODE = 120
10 FORMAT CLEARED ABNORMAL-END-OF-OPERATION INTERRUPT AND 
11 FORMAT END-OF-OPERATION INTERRUPT. EXPECTED NO INTERRUPT 
/---------ERROR CODE = 121
14 FORMAT SELECTED SPACE TO LAST LINE OF FORM.  EXPECTED
15 FORMAT LAST-LINE STATUS. 
/---------ERROR CODE = 122
20 FORMAT FILLED TRAIN IMAGE.  EXPECTED READY AND NOT BUSY. 
/---------ERROR CODE = 123
24 FORMAT SELECTED RNBINT AFTER INITIATING A PRINT. 
25 FORMAT EXPECT READY,BUSY AND NO INTERRUPT. 
/---------ERROR CODE = 124
30 FORMAT EXPECTED READY AND BUSY AFTER PRINT.
/---------ERROR CODE = 125
34 FORMAT EXPECTED COINCIDENT STATUS
/---------ERROR CODE = 126
40 FORMAT EXPECTED NO COINCIDENT STATUS 
/---------ERROR CODE = 127
44 FORMAT EXECUTED PRINT WITH END-OF-OPERATION
45 FORMAT AND READY-NOT-BUSY INTERRUPTS SELECTED. 
/ 
/ 
50 IF(EC.NE.120)GOTO 51 
   B2=10                     *FIRST MSG 
   B3=11                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
51 IF(EC.NE.121)GOTO 52 
   B2=14                     *FIRST MSG 
   B3=15                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3737                   *MASK
   B0=21                     *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
52 IF(EC.NE.122)GOTO 53 
   B2=20                     *FIRST MSG 
   B3=20                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
53 IF(EC.NE.123)GOTO 54 
   B2=24                     *FIRST MSG 
   B3=25                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=103                    *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
54 IF(EC.NE.124)GOTO 55 
   B2=30                     *FIRST MSG 
   B3=30                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=103                    *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
55 IF(EC.NE.125)GOTO 56 
   B2=34                     *FIRST MSG 
   B3=34                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=7717                   *MASK
   B0=4601                   *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
56 IF(EC.NE.126)GOTO 57 
   B2=40                     *FIRST MSG 
   B3=40                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=7717                   *MASK
   B0=601                    *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
57 B2=44                     *FIRST MSG 
   B3=45                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=601                    *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
/MESSAGE DISPLAY SUBROUTINE 
60 MSG B2 TO LINE B5
   B5=B5+1
   GOTO 60 WHILE (B2+1.LE.B3) 
   B5=B5+1
   RETURN 
77 EXIT TO 97X
   END 50 
COMPILE                    -LP1 97C - ERROR PROCESSOR 
*  *********************************************************
*  *********************************************************
   MODULE LP197D 580(22),LOCK 
*** LP197D - ERROR PROCESSOR
* 
**
* 
*   LP197D - ERROR PROCESSOR
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP197D* IS A UTILITY MODULE CALLED BY
*              MODULE *LP197A* FOR PROCESSING ERRORS. 
* 
* 
*   DESCRIPTION - ERROR PROCESSOR 
* 
*         1.  POST ERROR MESSAGE TEXT 
*         2.  EXIT TO LP197X
*** LP197D - INTERNAL DOCUMENTATION 
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*   SUBMODULES USED 
* 
*         LP197X - ERROR PROCESSOR
* 
* 
**********************************************************************
/---------ERROR CODE PROCESSOR PART 4 
1  FORMAT ILLEGAL ERROR CODE *OCT 
/---------ERROR CODE = 200
10 FORMAT NO LEVEL 9 STATUS OBSERVED. 
/ 
50 IF(EC.NE.200)GOTO 62 
   B2=10                     *FIRST MSG 
   B3=10                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=40                     *MASK
   B0=40                     *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
/MESSAGE DISPLAY SUBROUTINE 
60 MSG B2 TO LINE B5
   B5=B5+1
   GOTO 60 WHILE (B2+1.LE.B3) 
   B5=B5+1
   RETURN 
/ 
62 MSG 1 (EC) TO LINE B5     *BAD ERROR CODE
   B5=B5+1
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
77 EXIT TO 97X
   END 50 
COMPILE                    -LP1 97D - ERROR PROCESSOR 
*  *********************************************************
*  *********************************************************
   MODULE LP197E 580(22),LOCK 
*** LP197E - ERROR PROCESSOR
* 
**
* 
*   LP197E - ERROR PROCESSOR
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP197E* IS A UTILITY MODULE CALLED BY
*              MODULE *LP197A* FOR PROCESSING ERRORS. 
* 
* 
*   DESCRIPTION - ERROR PROCESSOR 
* 
*         1.  POST ERROR MESSAGE TEXT 
*         2.  EXIT TO LP197W
*** LP197E - INTERNAL DOCUMENTATION 
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*   SUBMODULES USED 
* 
*         LP197W - ERROR PROCESSOR
* 
* 
**********************************************************************
/---------ERROR CODE PROCESSOR PART 5 
1  FORMAT ILLEGAL ERROR CODE *OCT 
/---------ERROR CODE = 300
10 FORMAT 6681 STATUS ERROR.
/---------ERROR CODE = 301
/---------ERROR CODE = 302
/---------ERROR CODE = 303
/---------ERROR CODE = 304
/---------ERROR CODE = 305
/---------ERROR CODE = 306
/---------ERROR CODE = 307
/ 
/ 
50 IF(EC.NE.300)GOTO 62 
   B2=10                     *FIRST MSG 
   B3=10                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=7777                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
/MESSAGE DISPLAY SUBROUTINE 
60 MSG B2 TO LINE B5
   B5=B5+1
   GOTO 60 WHILE (B2+1.LE.B3) 
   B5=B5+1
   RETURN 
/ 
62 MSG 1 (EC) TO LINE B5     *BAD ERROR CODE
   B5=B5+1
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
77 EXIT TO 97W
   END 50 
COMPILE                    -LP1 97E - ERROR PROCESSOR 
*  *********************************************************
*  *********************************************************
   MODULE LP197F 580(22),LOCK 
*** LP197F - ERROR PROCESSOR
* 
**
* 
*   LP197F - ERROR PROCESSOR
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP197F* IS A UTILITY MODULE CALLED BY
*              MODULE *LP197A* FOR PROCESSING ERRORS. 
* 
* 
*   DESCRIPTION - ERROR PROCESSOR 
* 
*         1.  POST ERROR MESSAGE TEXT 
*         2.  EXIT TO LP197Z
*** LP197F - INTERNAL DOCUMENTATION 
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*   SUBMODULES USED 
* 
*         LP197Z - ERROR PROCESSOR
* 
* 
**********************************************************************
/---------ERROR CODE PROCESSOR PART 6 
1  FORMAT ILLEGAL ERROR CODE *OCT 
/---------ERROR CODE = 400
10 FORMAT NO ABORT FROM ILLEGAL FUNCTION. 
/---------ERROR CODE = 401
/---------ERROR CODE = 402
/---------ERROR CODE = 403
/---------ERROR CODE = 404
/---------ERROR CODE = 405
/---------ERROR CODE = 406
/---------ERROR CODE = 407
/ 
/ 
50 IF(EC.NE.400)GOTO 62 
   B2=10                     *FIRST MSG 
   B3=10                     *LAST MSG
   GOSUB 60                  *POST DISPLAY
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
/MESSAGE DISPLAY SUBROUTINE 
60 MSG B2 TO LINE B5
   B5=B5+1
   GOTO 60 WHILE (B2+1.LE.B3) 
   B5=B5+1
   RETURN 
/ 
62 MSG 1 (EC) TO LINE B5     *BAD ERROR CODE
   B5=B5+1
   B1=3717                   *MASK
   B0=1                      *EXPECTED STATUS 
   GOTO 77                   *GO PUT UP STATUS DISPL
77 EXIT TO 97Z
   END 50 
COMPILE                    -LP1 97F - ERROR PROCESSOR 
*  *********************************
*  *********************************
   MODULE LP197W 580(22),LOCK 
*** LP197W - 6681 STATUS ERROR PROCESSOR
* 
**
* 
*   LP197W - 6681 STATUS ERROR PROCESSOR
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP197W* IS A UTILITY MODULE CALLED 
*              TO PRESENT 6681 STATUS ERRORS. 
* 
* 
*   DESCRIPTION - ERROR PROCESSOR 
* 
*         1.  POST STATUS MESSAGES
*         2.  EXIT TO LP197Z
*** LP197W - INTERNAL DOCUMENTATION 
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*    SUBMODULES USED
* 
*         LP197Z - ERROR PROCESSOR
* 
* 
**********************************************************************
/---------6681 STATUS ERROR PROC(B0=EXP,SB(1)=ACT,B1=MASK)
1  FORMAT UNEXPECTED STATUS BIT *DEC
2  FORMAT MISSING STATUS BIT *DEC 
3  FORMAT ACTUAL 6681 STATUS = *OCT, EXPECTED = *OCT
10 FORMAT -----------1 REJECT 
11 FORMAT ----------1- INTERNAL REJECT
12 FORMAT ---------1-- TRANSMISSION PARITY ERROR
13 FORMAT --------1--- UNUSED 
14 FORMAT -------1---- UNUSED 
15 FORMAT ------1----- UNUSED 
16 FORMAT -----1------ UNUSED 
17 FORMAT ----1------- UNUSED 
20 FORMAT ---1-------- UNUSED 
21 FORMAT --1--------- UNUSED 
22 FORMAT -1---------- UNUSED 
23 FORMAT 1----------- PARITY ERROR ON DATA CHANNEL 
/ 
30 B2=B1 XOR 7777 
   B2=B2 AND SB(0)
   B0=B0 OR B2               *SET DONT CARES IN EXPECT
   MSG 3 (SB(0),B0) TO LINE B5
   B5=B5+1
   B2=0 
   B3=1 
36 IF(B0.AND.B3.NE.0)GOTO 40  *EXPECTED IS SET
   IF(SB(0).AND.B3.EQ.0)GOTO 44  *NO ERROR
   MSG 1 (B2) TO LINE B5     *UNEXPECTED STATUS BIT 
   GOTO 42
40 IF(SB(0).AND.B3.NE.0)GOTO 44 
   MSG 2 (B2) TO LINE B5     *MISSING STATUS BIT
42 B5=B5+1
   B4=B2+10 
   MSG B4 TO LINE B5         *TELL WHICH ONE
   B5=B5+1
44 B3=B3 LS 1 
   GOTO 36 WHILE (B2+1.LT.12D)
   B5=B5+1
77 EXIT TO 97Z
   END 30 
COMPILE                    -LP1 97W - 6681 STATUS ERROR PROCESSOR 
*  *********************************************************
*  *********************************************************
   MODULE LP197X 580(22),LOCK 
*** LP197X - 512 STATUS ERROR PROCESSOR 
* 
**
* 
*   LP197X - 512 STATUS ERROR PROCESSOR 
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP197X* IS A UTILITY MODULE CALLED 
*              TO PRESENT 512 STATUS ERRORS.
* 
* 
*   DESCRIPTION - ERROR PROCESSOR 
* 
*         1.  POST STATUS MESSAGES
*         2.  EXIT TO LP197Z
*** LP197X - INTERNAL DOCUMENTATION 
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*    SUBMODULES USED
* 
*         LP197Z - ERROR PROCESSOR
* 
* 
**********************************************************************
/---------STATUS ERROR PROC(B0=EXP,SB(1)=ACT,B1=MASK) 
1  FORMAT UNEXPECTED STATUS BIT *DEC
2  FORMAT MISSING STATUS BIT *DEC 
3  FORMAT ACTUAL STATUS = *OCT, EXPECTED = *OCT 
4  FORMAT FAILING COL = *DEC, CHAR = *OCT 
10 FORMAT -----------1 READY
11 FORMAT ----------1- BUSY 
12 FORMAT ---------1-- COMPARE FAULT
13 FORMAT --------1--- PAPER FAULT
14 FORMAT -------1---- LAST LINE OF FORM
15 FORMAT ------1----- FORMAT TAPE LEVEL 9
16 FORMAT -----1------ MEMORY BUSY
17 FORMAT ----1------- READY-NOT-BUSY INTERRUPT 
20 FORMAT ---1-------- END-OF-OPERATION INTERRUPT 
21 FORMAT --1--------- ABNORMAL END-OF-OP INTERRUPT 
22 FORMAT -1---------- PRINT ERROR
23 FORMAT 1----------- 6/8 LINE COINCIDENT
/ 
30 IF(B10.NE.0) GOTO 31       *IF PRINT ERROR ISOLATE COL AND CHAR
   B9 = WT                           *STORE WORDS TRANS 
   GOTO 35                    *ISOLATE ERROR BUT NOT COL AND CHAR 
31 B2 = 0                            *INIT IB COL COUNTER 
   B8 = 0                            *INIT OB WORD COUNTER
32 IB(B2) = IB(B2)+1                 *CORRECT COL NUMBER
   IF(IB(B2).AND.1.EQ.1) GOTO 33     *IF ODD CHAR 
   B8 = IB(B2).RS.1.-.1              *BUFF WORD OF CHAR 
   OB(300) = OB(B8).AND.77           *EVEN FAILING CHAR 
   GOTO 34
33 B8 = IB(B2).RS.1                  *BUFF WORD OF CHAR 
   OB(300) = OB(B8).RS.6             *ODD FAILING CHAR
34 MSG 4 (IB(B2),OB(300)) TO LINE B5
   B2 = B2+1
   B5 = B5+1
   GOTO 32 WHILE (B10-1.GT.0)        *IF MORE PRINT ERRORS
   B5 = B5+1
35 B2=B1 XOR 7777 
   B2=B2 AND SB(1)
   B0=B0 OR B2               *SET DONT CARES IN EXPECT
   MSG 3 (SB(1),B0) TO LINE B5
   B5=B5+1
   B2=0 
   B3=1 
36 IF(B0.AND.B3.NE.0)GOTO 40  *EXPECTED IS SET
   IF(SB(1).AND.B3.EQ.0)GOTO 44  *NO ERROR
   MSG 1 (B2) TO LINE B5     *UNEXPECTED STATUS BIT 
   GOTO 42
40 IF(SB(1).AND.B3.NE.0)GOTO 44 
   MSG 2 (B2) TO LINE B5     *MISSING STATUS BIT
42 B5=B5+1
   B4=B2+10 
   MSG B4 TO LINE B5         *TELL WHICH ONE
   B5=B5+1
44 B3=B3 LS 1 
   GOTO 36 WHILE (B2+1.LT.12D)
   B5=B5+1
77 EXIT TO 97Z
   END 30 
COMPILE                    -LP1 97X - 512 STATUS ERROR PROCESSOR
*  *********************************************************
*  *********************************************************
   MODULE LP197Z 580(22),LOCK 
*** LP197Z - ERROR PROCESSOR
* 
**
* 
*   LP197Z - ERROR PROCESSOR
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP197Z* IS A UTILITY MODULE CALLED 
*              TO PRESENT GENERAL ERROR INFORMATION 
* 
* 
*   DESCRIPTION - ERROR PROCESSOR 
* 
*         1.  POST ERROR INFORMATION
*         2.  RETURN
*** LP197Z - INTERNAL DOCUMENTATION 
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*   MODULES CALLED
* 
*         NONE
* 
* 
**********************************************************************
/ 
/---------       PROCESS ERRORS FOR HIGH LEVEL MODULES
/ 
1  FORMAT CH=*OCT, EQ=*OCT, UN=*OCT, LF=*OCT, DC=*OCT 
3  FORMAT ERRCNT=*OCT, WC=*OCT, WT=*OCT 
4  FORMAT COLUMN ISOLATION INFO B9=*OCT, B10=*OCT 
5  FORMAT 668X STATUS=*OCT, PRINTER STATUS=*OCT *OCT
17 FORMAT . . . . . . . . . . . . . . . . . . . . . . 
/ 
20 MSG 1 (SB(3),SB(4),SB(5),LF,DC) TO LINE B5 
   B5=B5+1
   MSG 3 (B7,WC,WT) TO LINE B5
   B5=B5+1
   MSG 4 (B9,B10) TO LINE B5
   B5=B5+1
   MSG 5 (SB(0),SB(1),SB(2)) TO LINE B5 
   B5=B5+1
   MSG 17 TO LINE B5
   PICTURE
   HALT 
   BLANK
   IF(EM.GE.100)GOTO 50      *IF NOT ABORT ERROR
   B0=IB(100)                *RESTORE REGISTERS 
   B1=IB(101)                *RESTORE REGISTERS 
   B2=IB(102)                *RESTORE REGISTERS 
   B3=IB(103)                *RESTORE REGISTERS 
   B4=IB(104)                *RESTORE REGISTERS 
   B6=IB(106)                *RESTORE REGISTERS 
   B7=IB(107)                *RESTORE REGISTERS 
50 EXIT 
   END 20 
COMPILE                    -LP1 97Z - ERROR PROCESSOR 
*  *********************************************************
*  *********************************************************
   MODULE LP198B 580(22),LOCK 
*** LP198B - GENERATE RIPPLE DATA 
* 
**
* 
*   LP198B - GENERATE RIPPLE DATA 
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP198B* IS A UTILITY MODULE CALLED BY
*              TEST MODULES TO GENERATE PRINT DATA FOR RIPPLE 
*              PATTERN. 
* 
* 
*   DESCRIPTION - GENERATE RIPPLE PATTERN DATA
* 
*         1.  SAVE REGISTERS
*         2.  PREPARE PRINT LINE FROM CANNED DATA 
*         3.  SET BA AND WC PARAMETERS
*         4.  RESTORE REGISTERS 
*         5.  RETURN
* 
*** LP198B - INTERNAL DOCUMENTATION 
* 
* 
* 
* 
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*   MODULES CALLED
* 
*         NONE
* 
* 
*   ******************************************************************
/---------THIS MODULE GENERATES RIPPLE PATTERN DATA 
/ 
/--------- OB(0)=WORDS IN SHIFT STRING
/ 
/---------TRAINS 1-3
   DATA(OB(1),CON)1,203,405,607,1011,2122,2324,2526,2730, 
  ,3141,4243,4445,4647,5051,6263,6465,6667,7071,3340,5354,
  ,6173,2034,3674,1316,1214,1517,3235,3752,5556,5772,7576,
  ,7777 
/---------TRAIN 6 
   DATA(OB(101),CON)60,61,62,63,64,65,66,67,70,71,72,75,42, 
  ,100,45,133,53,104,102,103,104,105,106,107,110,111,74,56, 
  ,51,134,136,73,55,112,113,114,115,116,117,120,121,122,41, 
  ,44,52,47,77,76,40,57,123,124,125,126,127,130,131,132,135,
  ,54,50,137,43,46
/ 
20 BA=1 
   OB(400)=B0                *SAVE REGISTERS
   OB(401)=B1 
   OB(402)=B2 
   IF(P0.EQ.6)GOTO 30 
   WC=104                    *SET PRINT LENGTH
   B0=40                     *STRING LENGTH FOR TRAIN 3 
   IF(P0.EQ.3)GOTO 22 
   IF(P0.NE.2)GOTO 24 
   OB(30)=1314               *TRAIN 2 
22 B0=30                     *TRAIN 2,3 
24 COPY OB(1) TO OB(B0+1) FOR B0
   B2=B0 LS 1 
   COPY OB(1) TO OB(B2+1) FOR B0
   OB(0)=B0+B2
   GOTO 32
30 COPY OB(101) TO OB(1) FOR 100  *TRAIN TYPE 6 
   COPY OB(101) TO OB(201) FOR 100
   OB(0)=300
   WC=210                    *SET PRINT LENGTH
32 B0=OB(400) 
   B1=OB(401) 
   B2=OB(402) 
   EXIT 
   END 20 
COMPILE                    -LP1 98B - GENERATE RIPPLE DATA
*  *********************************************************
*  *********************************************************
   MODULE LP198C 580(22),LOCK 
*** LP198C - GENERATE COLUMN NUM. DATA
* 
**
* 
*   LP198C - GENERATE COLUMN NUM. DATA
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP198C* IS A UTILITY MODULE CALLED BY
*              TEST MODULES TO GENERATE PRINT DATA FOR COLUMN 
*              NUMBERING. 
* 
* 
*   DESCRIPTION - GENERATE COLUMN NUMBERING DATA
* 
*         1.  PREPARE PRINT LINE FROM CANNED DATA 
*         2.  SET BA AND WC PARAMETERS
*         3.  RETURN
* 
* 
*** LP198C - INTERNAL DOCUMENTATION 
* 
* 
* 
*   REGISTER USAGE
* 
*         B0 - DESTROYED
*         B1 - DESTROYED
*         B2 - SET TO NUMBER OF LINES IN HEADING (1)
*         B3 - NOT CHANGED
*         B4 - NOT CHANGED
*         B5 - NOT CHANGED
*         B6 - NOT CHANGED
*         B7 - NOT CHANGED
* 
*   MODULES CALLED
* 
*         NONE
* 
* 
*    ****************************************************************** 
/---------THIS MODULE GENERATES COLUMN NUMBERING DATA 
/ 
/---------DIGITS 1-0
/ 
/---------TRAINS 1-3
   DATA(OB(1),CON)102,304,506,710,1100
/---------TRAIN 6 
   DATA(OB(13),CON)61,62,63,64,65,66,67,70,71,60
20 B0=5                      *SET SKELETON LENGTH 
   B1=0                      *INIT LOOP COUNTER 
   BA=1                      *SET PRINT PARAMETERS
   WC=104 
   IF(P0.NE.6)GOTO 24 
   B0=12                     *CORRECT FOR TRAIN TYPE 6
   COPY OB(13) TO OB(1) FOR B0
   WC=210 
24 B2=B0+1                   *FILL LINE 
30 COPY OB(1) TO OB(B2) FOR B0
   B2=B2+B0 
   GOTO 30 WHILE (B1+12.LT.210) 
   B2=1                      *SET NO. OF LINES IN PRINT**** 
* 
**
* 
   EXIT 
   END 20 
COMPILE                    -LP1 98C - GENERATE COLUMN NUM. DATA 
*  *********************************************************
*  *********************************************************
   MODULE LP198D 580(22),LOCK 
*** LP198D - GENERATE TRAIN IMAGE 
* 
**
* 
*   LP198D - GENERATE TRAIN IMAGE 
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP198D* IS A UTILITY MODULE CALLED BY
*              TEST MODULES TO GENERATE TRAIN IMAGE DATA. 
*              *LP198D* HANDLES TRAIN TYPES 1,2 AND 3. *LP198E* IS
*              EXECUTED FOR TRAIN TYPE 6. 
* 
* 
*   DESCRIPTION - GENERATE TRAIN IMAGE DATA 
* 
*         1.  IF TRAIN TYPE IS 6 , EXIT TO MODULE LP198E. 
*         2.  PREPARE TRAIN IMAGE DATA FROM CANNED DATA.
*         3.  RETURN
* 
* 
*** LP198D - INTERNAL DOCUMENTATION 
* 
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*  SUBMODULES USED
* 
*         LP198E - GENERATE TRAIN IMAGE DATA
* 
* 
*   ******************************************************************
/---------CONSTRUCT TRAIN IMAGE DATA FOR TRAIN 1,2,3. 
/---------MODULE LP198E IS ENTERED FOR TRAIN 6. 
1  FORMAT LP198D GENERATING TRAIN DATA
2  FORMAT LP198D ILLEGAL TRAIN TYPE *OCT
3  FORMAT LP198D RUN LP1(24) TO RELOAD TRAIN IMAGE. 
* 
*   LOAD DATA FOR TRAIN ARRAY TYPE 595-1,63 CHARACTER ARRAY.
* 
   DATA(OB(0),CON) 0,1,2,3,4,5,6,7,22,71,73,61,10,11,21,23, 
  ,74,27,30,34,51,31,26,43,44,45,46,47,17,16,36,72,24,64,62,
  ,63,65,66,67,70,20,40,33,25,41,42,50,54,0,1,2,3,4,5,6,7,
  ,53,75,14,13,10,11,21,23,22,71,73,61,51,31,26,43,44,45,46,
  ,47,74,27,30,34,24,64,62,63,55,56,77,52,20,40,33,25,65,66,
  ,67,70,0,1,2,3,4,5,6,7,41,42,50,54,10,11,21,23,15,35,32,
  ,57,51,31,26,43,44,45,46,47,22,71,73,61,24,64,62,63,74,27,
  ,30,34,20,40,33,25,12,37,76,13,0,1,2,3,4,5,6,7,65,66,67,
  ,70,10,11,21,23,41,42,50,54,51,31,26,43,44,45,46,47,17,16,
  ,36,72,24,64,62,63,22,71,73,61,20,40,33,25,74,27,30,34,0, 
  ,1,2,3,4,5,6,7,53,75,14,13,10,11,21,23,65,66,67,70,51,31, 
  ,26,43,44,45,46,47,41,42,50,54,24,64,62,63,55,56,77,52,20,
  ,40,33,25,22,71,73,61,0,1,2,3,4,5,6,7,74,27,30,34,10,11,
  ,21,23,15,35,32,57,51,31,26,43,44,45,46,47,65,66,67,70,24,
  ,64,62,63,41,42,50,54,20,40,33,25,12,37,76,13 
* 
*   LOAD DATA FOR TRAIN ARRAY TYPE 596-2, 48 CHARACTER *AN* 
*   ARRAY.
* 
   DATA(OB(440),CON)0,1,2,3,4,5,6,7,10,11,27,30,36,40,33, 
  ,25,21,22,23,24,51,31,26,43,44,45,46,47,41,42,50,54,61,62,
  ,63,64,65,66,67,70,53,20,73,71,37,13,14,74
* 
*   LOAD DATA FOR TRAIN TYPE 595-3, 48 CHARACTER *HN* ARRAY 
* 
   DATA(OB(520),CON)20,40,33,25,53,36,73,71,74,13,16,34 
20 MSG 1 TO DISPLAY 
   IF(P0.LE.1)GOTO 30 
   IF(P0.EQ.2)GOTO 24 
   IF(P0.EQ.3)GOTO 22 
   IF(P0.EQ.4)GOTO 40 
   IF(P0.EQ.5)GOTO 40 
   IF(P0.GT.6)GOTO 40 
   EXIT TO 98E               *TRAIN 6 
22 COPY OB(520) TO OB(415) FOR 4
   COPY OB(524) TO OB(450) FOR 10 
24 COPY OB(440) TO OB FOR 60   *TRAIN 2 
   COPY OB TO OB(60) FOR 60 
   COPY OB TO OB(140) FOR 140 
   COPY OB TO OB(300) FOR 140 
30 EXIT 
40 MSG 2 (P0) TO LINE B5
   B5=B5+1
   MSG 3 TO LINE B5 
   PICTURE
   HALT 
   END 20 
COMPILE                    -LP1 98D - GENERATE TRAIN IMAGE
*  *********************************************************
*  *********************************************************
   MODULE LP198E 580(22),LOCK 
*** LP198E - GENERATE TRAIN IMAGE - 6 
* 
**
* 
*   LP198E - GENERATE TRAIN IMAGE - 6 
*            -------------------
* 
* 
* 
*   OVERVIEW - MODULE *LP198E* IS A UTILITY MODULE CALLED BY
*              MODULE *LP198D* TO GENERATE TRAIN IMAGE DATA 
*              FOR TRAIN TYPE 6.
* 
* 
*   DESCRIPTION - GENERATE TRAIN IMAGE DATA 
* 
*         1.  PREPARE TRAIN IMAGE DATA FROM CANNED DATA.
*         2.  RETURN
* 
* 
*** LP198E - INTERNAL DOCUMENTATION 
* 
* 
*   REGISTER USAGE
* 
*         REGISTERS ARE NOT DISTURBED 
* 
*   MODULES CALLED
* 
*         NONE
* 
* 
*   ******************************************************************
/---------CONSTRUCT TRAIN IMAGE FOR TRAIN 6.
1  FORMAT LP198E GENERATING TRAIN DATA
* 
*   LOAD DATA FOR TRAIN ARRAY TYPE 596-6 96 CHARACTER 
*    EXTENDED ARRAY.
* 
   DATA(OB(0),CON)60,61,62,63,64,65,66,67,70,71,142,143,145,
  ,163,164,141,144,146,165,166,147,150,151,152,153,154,155, 
  ,156,157,160,167,162,161,170,171,172,74,76,133,135,56,174,
  ,173,175,41,136,137,176,45,60,43,100,72,73,47,77,134,140, 
  ,121,125,112,101,113,105,102,127,107,110,104,103,123,124, 
  ,120,116,106,114,115,111,117,122,126,132,130,131,50,57,52,
  ,51,53,55,56,54,44,75,42,46 
20 MSG 1 TO DISPLAY 
   COPY OB(0) TO OB(140) FOR 140
   COPY OB(0) TO OB(300) FOR 140
   EXIT 
   END 20 
COMPILE                    -LP1 98E - GENERATE TRAIN IMAGE - 6
    MODULE LP199 580(22),LOCK 
*** LP199 - EXTERNAL DOCUMENTATION
**
* 
*   LP199 - EXTERNAL DOCUMENTATION
*            -------------------
* 
*              DESCRIPTION - LP199 PROVIDES A DESCRIPTION OF THE
*                             PARAMETERS FOR VIEWING AT THE K/L DISPLAY.
*                             THESE HAVE BEEN PREVIOUSLY DESCRIBED IN 
*                             THE EXTERNAL DOCUMENTATION. 
* 
* 
* 
01 FORMAT COPYRIGHT CONTROL DATA CORPORATION , 1980 
* 
/ 
/                      - OVERVIEW-
/ 
/  *LP1* IS A 512 PRINTER DIAGNOSTIC BASED ON THE PP COM- 
/  PASS ON LINE DIAGNOSTIC *LP1*. IT IS WRITTEN IN *MALET*
/  LANGUAGE. IT RUNS ON THE 512 LINE PRINTER . IT SUPPORTS
/  THE FOLLOWING TRAIN TYPES, 595-1 (63 CHARACTER ARRAY), 
/  595-2 (48 CHARACTER *AN* ARRAY),595-3 (48 CHARACTER *HN* 
/  ARRAY), AND 595-6 (96 CHARACTER EXTENDED ARRAY)
/  DIAGNOSTIC *LP1* REPLACES THE OLD PP COMPASS DIAGNOSTIC
/  *LP1*. 
/ 
/ 
/                      - PARAMETERS - 
/ 
/ 
/  P0 - TRAIN ARRAY TYPE.  NUMBERS 1,2,3 AND 6 ARE USED 
/       FOR TRAIN ARRAY TYPES 595-1,(63 CHARACTER ARRAY)
/       595-2,(48 CHARACTER *AN* ARRAY) 595-3, (48 CHARAC-
/       TER *HN* ARRAY) AND 595-6, (96 CHARACTER EXTENDED 
/       ARRAY). IF P0 CONTAINS ZERO,TRAIN ARRAY TYPE 1 IS 
/       ASSUMED.
/ 
/  P1 - STARTING CODE FOR *FULL LINES OF CHARACTERS*
/       SECTION. ZERO VALUE IMPLIES ZERO CHARACTER. 
/       (EG, 60B FOR TRAIN 6) 
/ 
/  P2 - RANDOM SEED VALUE FOR *RANDOM PRINT* SECTION. 
/       IF A ZERO VALUE IS ENTERED, THE REAL TIME CLOCK 
/       WILL BE USED AS THE STARTING SEED.
/ 
/  P7 - PRINT CONTROL FLAG FOR *BURST SPEED TEST* SECTION.
/       IF A NONZERO VALUE IS ENTERED, BURST SPEED PRINTING 
/       CONTINUES UNTIL THAT NUMBER OF LINES HAS BEEN 
/       PRINTED. IF A ZERO VALUE IS ENTERED, 240 LINES ARE
/       PRINTED.
/ 
/ 
   EXIT TO 99A
20 END 20 
COMPILE,SOURCE             -LP1 99 - EXTERNAL DOCUMENTATION 
   MODULE LP199A 580(22),LOCK 
*** LP199A - EXTERNAL DOCUMENATION
* 
**
* 
*   LP199A - EXTERNAL DOCUMENATION
*            -------------------
* 
*              DESCRIPTION - LP199A PROVIDES A BRIEF DESCRIPTION OF THE 
*                            MODULES THAT MAKE UP THE LP1 TEST SERIES.
*                            THIS LIST CAN BE VIEWED ON THE K/L DISPLAY 
*                            AND HAS BEEN PREVIOUSLY DESCRIBED IN THE 
*                            EXTERNAL DOCUMENTATION.
* 
/ 
/          MODULE DESCRIPTIONS
/ 
/            CONFIDENCE LEVEL TESTS (NO SCOPE LOOPS)
/ 
/      LP100 - TRAIN CHECK
/      LP101 - IMAGE CHECK
/      LP102 - RIPPLE PATTERN LEFT
/      LP103 - RIPPLE PATTERN RIGHT 
/      LP104 - SPACE-ZERO PATTERN 
/      LP105 - M-W PATTERN
/      LP106 - FULL LINES OF CHARACTERS 
/      LP107 - VARIABLE LENGTH LINES
/      LP108 - DEPICT SUBSCANS
/      LP109 - WORST PATTERN
/      LP110 - EXTENDED ARRAY TEST
/      LP111 - BUFFER MEMORY TEST 
/      LP112 - IMAGE MEMORY AND TRAIN CHECK 
/      LP113 - PRINT ZERO IN COLUMN 1 
/      LP114 - RANDOM PRINT 
/      LP115 - PRINT WHILE BUSY 
/ 
*         FUNCTIONAL LEVEL TESTS(SCOPE LOOPS AS APPROPRIATE 
/ 
/      LP120 - CONNECT AND STATUS CHECK 
/      LP121 - CHECK TRANSMISSION PATH
/      LP122 - CHECK LEGAL FUNCTIONS
/      LP123 - CHECK ILLEGAL FUNCTIONS
/      LP124 - LOAD TRAIN ARRAY MEMORY
/      LP132 - CHECK RNB INT - PART 1 
/      LP133 - CHECK RNB INT - PART 2 
/      LP134 - CHECK RNB INT - PART 3 
/      LP135 - CHECK EOP INT - PART 1 
/      LP136 - CHECK EOP INT - PART 2 
/      LP137 - CHECK EOP INT - PART 3 
/      LP138 - CHECK ABN EOP INT
/      LP140 - CHECK SUPPRESS SPACE FUNCTION
/      LP141 - CHECK COINCIDENT POINTS AND
/                         FORMAT LEVEL 9
/      LP142 - CHECK PAGE EJECT AND ADVANCE TO LAST LINE
/                         FUNCTIONS 
/      LP143 - CHECK AUTO PAGE EJECT
/      LP144 - CHECK SINGLE SPACE OPERATION 
/      LP145 - CHECK DOUBLE SPACE OPERATION 
/      LP146 - CHECK POSTPRINT FORMAT SPACING 
/      LP147 - CHECK PREPRINT FORMAT SPACING
/ 
/            SPECIAL PURPOSE TESTS
/ 
/      LP150 - BURST SPEED TEST 
/ 
20 END 20 
COMPILE,SOURCE                    -LP1 99A - EXTERNAL DOCUMENATION
   MODULE LP199B 580(22),LOCK 
*** LP199B - EXTERNAL DOCUMENTATION 
* 
**
* 
*   LP199B - EXTERNAL DOCUMENTATION 
*            ---------------- 
/             -ABBREVIATIONS- 
/ 
/           ABN         ABNORMAL
/           BFR         BUFFER
/           CALC        CALCULATE 
/           CH          CHANNEL 
/           CHAR        CHARACTER 
/           COINC       COINCIDENT
/           DC          DEVICE CODE 
/           DISPL       DISPLAY 
/           EOP         END OF OPERATION
/           EQ          EQUIPMENT 
/           ERR         ERROR 
/           ERCNT       ERROR COUNT 
/           ERRCNT      ERROR COUNT 
/           FCN         FUNCTION
/           INIT        INITIALIZE
/           INT         INTERRUPT 
/           LC          LOOP COUNT
/           LF          LAST FUNCTION 
/           LP          512 LINE PRINTER
/           LPI         LINES PER INCH
/           MAINT       MAINTENANCE 
/           MSG         MESSAGE 
/           REG         REGULAR 
/           RNB         READY AND NOT BUSY
/           STAT        STATUS
/           UN          UNIT
/           W/          WITH
/           WDCNT       WORD COUNT
/           WDS XMITTED WORDS TRANSMITTED 
20 END 20 
COMPILE,SOURCE                      -LP199B - EXTERNAL DOCUMENTATION
