return to

from Van Snyder, Feb 23, 2012, his file name was FILE011
apparently lent to him by Dick Weaver


########## 360 SIMULATOR FOR 1401, 360 AL                                       
//SIM1401 JOB  'U=ARMK204,T=20,D=683,L=5'                                    *//
/*SETUP DEVICE=2314,ID=ACT562                                                *//
//       EXEC  PGM=IEFBR14,REGION=2K                                            
//DDX       DD DSN=CACTR683.SIM1401,                                            
//             VOL=REF=CACTR683.ACTR,                                           
//             SPACE=(TRK,1),                                                   
//             DISP=(MOD,DELETE)                                                
//        EXEC PGM=IEBUPDTE,PARM=NEW,REGION=40K                                 
//SYSPRINT  DD DUMMY                                                            
//SYSUT2    DD DSN=CACTR683.SIM1401,                                            
//             VOL=REF=CACTR683.ACTR,                                           
//             SPACE=(7200,40,RLSE),                                            
//             DCB=(RECFM=FBS,BLKSIZE=7200,LRECL=80),                           
//             DISP=(NEW,CATLG)                                                 
//SYSIN     DD *                                                                
./        ADD  SEQFLD=765                                                       
./      NUMBER NEW1=10,INCR=10                                                  
* MODIFIED VERSION OF 360D-11.1.019                                             
*        R.WEAVER, IBM-ARMONK NY, JUNE/JULY 1970                                
         SPACE                                                                  
*  L I M I T A T I O N S                                                        
*     1401                                                                      
*        SUPPORTS EXPANDED PRINT EDIT ONLY                                      
*        ONLY THE FIRST 50 CHAR OF CONSOLE MSG'S ARE PRINTED                    
*     JCL                                                                       
*        TAPEN DD'S MUST BE ASSIGNED TO TAPE UNITS, DISK CANNOT BE USED         
         SPACE                                                                  
* PARM FORMAT IS   'ABCDEFGLLLX'                                                
*    WHERE                                                                      
*        A-G  SENSE SWITCHES, N/F                                               
*        LLL  LINES TO PRINT PER PAGE                                           
*        X    PGM LOAD CARD OR TAPE, C/T                                        
         SPACE                                                                  
         SPACE                                                                  
* THE FOLLOWING COMMENT BLOCK APPLIED TO THE ORIGINAL PROGRAM.                  
*********************************************************************** 00000200
*                                                                     * 00000300
*                                                                     * 00000400
*     1 4 0 1   S I M U L A T O R   F O R   S Y S T E M / 3 6 0       * 00000500
*                                                                     * 00000600
*                                                                     * 00000700
*                                                                     * 00000800
*     THIS PROGRAM WILL SIMULATE A 1401 ON A SYSTEM/360.  THE         * 00000900
* SYSTEM/360 MUST HAVE AT LEAST 65K, STANDARD INSTURCTION SET, ONE    * 00001000
* 1052, ONE 2540, AND ONE PRINTER. THE 1401 FEATURES SUPPORTED ARE    * 00001100
* ADVACED PROGRAMMING, SENSE SWITCHES, TAPES, MULTIPLY, DIVIDE,       * 00001200
* 16K CORE, AND ALL STANDARD INSTRUCTIONS EXCEPT SELECT STACKER.      * 00001300
* OPERATOR CONTROL IS THROUGH THE 1052, USING THE FOLLOWING ENTRIES   * 00001400
*                                                                     * 00001500
*                                                                     * 00001600
*          SRS  -  START RESET                                        * 00001700
*          STT  -  START                                              * 00001800
*          LDC  -  LOAD FROM CARDS                                    * 00001900
*          LDT  -  LOAD FROM TAPE                                     * 00002000
*          SSS  -  SET SENSE SWITCHES                                 * 00002100
*          TAS  -  TAPE ASSIGNMENT                                    * 00002200
*          CLR  -  CLEAR ALL 1401 CORE                                * 00002300
*          DIS  -  DISPLAY 1401 CORE ON THE PRINTER                   * 00002400
*          ALT  -  ALTER 1401 CORE                                    * 00002500
*          WTM  -  WRITE TAPE MARK                                    * 00002600
*          RWD  -  REWIND TAPE                                        * 00002700
*          TRM  -  TERMINATE THE SIMULATOR                            * 00002800
*                                                                     * 00002900
*                                                                     * 00003000
*                                                                     * 00003100
* 16K BYTES ARE SET ASIDE FOR SIMULATED CORE, WITH EACH BYTE HAVING   * 00003200
* THE FOLOWING FORMAT.                                                * 00003300
*     360 BIT        1401 BIT                                         * 00003400
*        0            UNUSED                                          * 00003500
*        1           WORD MARK                                        * 00003600
*        2               B                                            * 00003700
*        3               A                                            * 00003800
*        4               8                                            * 00003900
*        5               4                                            * 00004000
*        6               2                                            * 00004100
*        7               1                                            * 00004200
*                                                                     * 00004300
*                                                                     * 00004400
*********************************************************************** 00004500
       EJECT                                                            00004600
         MACRO                                                                  
&L       MSG   &M,&L2                                                           
         LCLC  &A                                                               
&L       BAL   4,WTO                                                            
&A       SETC  'L'''                                                            
         DC    AL2(&A.&L2.-1)                                                   
&L2      DC    C&M                                                              
         MEND                                                                   
         SPACE                                                                  
         PRINT NOGEN                                                    14010461
         START 0                                                        00000100
       USING   SETBS1,15                                                00004700
       USING   SETBS1+4096,14                                           00004800
       USING   SIMCOR,7                                                 00004900
       TITLE  'ADD'                                                     00005000
       USING   A,13                                                     00005100
A      CH      9,=H'7'           DETERMINE INSTRUCTION LENGTH           00005200
       BE      AL7               *                                      00005300
       CH      9,=H'1'           *                                      00005400
       BE      AL1               *                                      00005500
       CH      9,=H'4'           *                                      00005600
       BNE     ILEGLN            *                                      00005700
       LA      6,1(10)           4 CHARACTERS, SET A AND B EQUAL        00005800
       BAL     8,CVAD43          *                                      00005900
       LR      11,5              *                                      00006000
       LR      12,11             *                                      00006100
       B       AL1               *                                      00006200
AL7    LA      6,1(10)           CONVERT ADDRESSES                      00006300
       BAL     8,CVAD43          *                                      00006400
       LR      11,5              *                                      00006500
       LA      6,4(10)           *                                      00006600
       BAL     8,CVAD43          *                                      00006700
       LR      12,5              *                                      00006800
AL1    MVI     POS1,1            SET 1-POSITION INDICATOR               00006900
       MVI     AEND,0            CLEAR A-FIELD ENDED INDICATOR          00007000
       LA      0,1               SET REGISTER FOR FAST SUBTRACTION      00007100
       IC      4,0(10)           GET OP CODE                            00007200
       SRDL    4,1               SAVE LOW ORDER BIT                     00007300
       IC      4,0(11)           GET A-FIELD SIGN                       00007400
       SRL     4,4               *                                      00007500
       SRDL    4,2               *                                      00007600
       IC      4,0(12)           GET B-FIELD SIGN                       00007700
       SRL     4,4               *                                      00007800
       SLDL    4,3               TEST TABLE                             00007900
       N       4,=F'31'          *                                      00008000
       A       4,=A(TBTRCP)      *                                      00008100
       TM      0(4),X'1'         *                                      00008200
       BO      AL1H              COMPLEMENT ADD                         00008300
*                                                                       00008400
*      PERFORM TRUE ADD                                                 00008500
*                                                                       00008600
       MVI     AL1C+1,X'70'      SET TO KEEP SIGN                       00008700
       LA      1,0               CLEAR CARRY                            00008800
AL1A   IC      3,0(12)           GET B-FIELD CHARACTER                  00008900
       LR      6,3               SAVE B-FIELD ZONE                      00009000
       N       3,=F'15'          ISOLATE DIGIT                          00009100
         C     3,=F'11'          Q/ IS DIGIT NUMERIC                    00009200
         BL    *+8               YES                                    00009300
         S     3,=F'8'           NO, ELIMINATE 8 BIT                    00009400
       CH      3,=H'10'          Q/ ZERO                                00009500
       BNE     *+6               NO                                     00009600
       SR      3,3               YES, CLEAR IT                          00009700
       CLI     AEND,1            Q/ IS THERE STILL AN A-FIELD           00009800
       BE      AL1B              NO                                     00009900
       IC      4,0(11)           YES, GET DIGIT                         00010000
       LR      5,4               *                                      00010100
       N       4,=F'15'          *                                      00010200
         C     4,=F'11'          Q/ IS DIGIT NUMERIC                    00010300
         BL    *+8               YES                                    00010400
         S     4,=F'8'           NO, ELIMINATE 8 BIT                    00010500
       CH      4,=H'10'          Q/ ZERO                                00010600
       BNE     *+6               NO                                     00010700
       SR      4,4               YES, CLEAR IT                          00010800
       AR      3,4               ADD A TO B                             00010900
AL1B   AR      3,1               ADD CARRY                              00011000
       LA      1,0               CLEAR CARRY                            00011100
       CH      3,=H'9'           Q/ IS RESULT GREATER THAN 9            00011200
       BNH     AL1C              NO, OK                                 00011300
       SH      3,=H'10'          YES, SUBTRACT 10                       00011400
       LA      1,1               SET CARRY                              00011500
AL1C   NI      0(12),X'00'       STORE RESULT DIGIT                     00011600
       STC     3,AL1D+1          *                                      00011700
       TM      AL1D+1,X'0F'      Q/ IS RESULT ZERO                      00011800
       BC      5,AL1D            NO                                     00011900
       OI      AL1D+1,X'0A'      YES, SET 8-2 BITS                      00012000
AL1D   OI      0(12),0           *                                      00012100
       MVI     AL1C+1,X'40'      SET TO ELIMINATE ZONES                 00012200
       CLI     AEND,1            Q/ HAS A-FIELD ALREADY ENDED           00012300
        BE      AL1E             YES                                    00012400
       SR      11,0              DECREMENT A-FIELD ADDRESS              00012500
       TM      1(11),X'40'       Q/ END OF A-FIELD                      00012600
       BZ      AL1E              NO                                     00012700
       MVI     AEND,1            YES, SET A-FIELD ENDED INDICATOR       00012800
AL1E   SR      12,0              DECREMENT B-FIELD ADDRESS              00012900
       TM      1(12),X'40'       Q/ END OF B-FIELD                      00013000
       BO      AL1F              YES                                    00013100
       MVI     POS1,0            NO, TURN OFF 1-POSITION INDICATOR      00013200
       CLI     AEND,1            Q/ A-FIELD ENDED                       00013300
       BNE     AL1A              NO                                     00013400
       SR      5,5               YES, CLEAR A-FIELD CHARACTER           00013500
       B       AL1A              ADD NEXT POSITION                      00013600
AL1F   CLI     POS1,1            Q/ WAS THIS A 1-POSITION FIELD         00013700
         BE    AL1G1             YES, DONE                              00013800
       N       5,=F'48'          NO, ADD HIGH ORDER ZONES               00013900
       N       6,=F'48'          *                                      00014000
       AR      5,6               *                                      00014100
       SLL     1,4               ADD CARRY                              00014200
       AR      5,1               *                                      00014300
       STC     5,AL1G+1          STORE NEW ZONE                         00014400
       NI      AL1G+1,X'30'      *                                      00014500
AL1G   OI      1(12),0           *                                      00014600
AL1G1    LTR   1,1               Q/ WAS THERE A CARRY                   00014700
       BC      8,NXTOP           NO                                     00014800
       MVI     OVRFLO,1          YES, SET OVERFLOW INDICATOR            00014900
       B       NXTOP                                                    00015000
*                                                                       00015100
*      PERFORM COMPLEMENT ADDITION                                      00015200
*                                                                       00015300
AL1H   LA      1,1               SET CARRY                              00015400
       ST      12,SAVB           SAVE B-FIELD UNITS ADDRESS             00015500
       MVI     AL1L+1,X'70'      SET TO KEEP B-FIELD SIGN               00015600
       IC      3,0(12)           GET B-FIELD SIGN                       00015700
       N       3,=F'48'          *                                      00015800
       CH      3,=H'32'          Q/ IS IT MINUS                         00015900
       BE      AL1I              YES                                    00016000
       OI      0(12),X'30'       NO, PUT PLUS SIGN IN STANDARD FORM     00016100
AL1I   IC      2,0(12)           GET B-FIELD DIGIT                      00016200
       N       2,=F'15'          *                                      00016300
         C     2,=F'11'          Q/ IS DIGIT NUMERIC                    00016400
         BL    *+8               YES                                    00016500
         S     2,=F'8'           NO, ELIMINATE 8 BIT                    00016600
       CH      2,=H'10'          Q/ ZERO                                00016700
       BNE     *+6               NO                                     00016800
       SR      2,2               YES, CLEAR IT                          00016900
       LA      3,9               SET COMPLEMENT                         00017000
       CLI     AEND,1            Q/ HAS A-FIELD PREVIOUSLY ENDED        00017100
       BE      AL1J              YES                                    00017200
       IC      4,0(11)           NO, GET A-FIELD DIGIT                  00017300
       N       4,=F'15'          *                                      00017400
         C     4,=F'11'          Q/ IS DIGIT NUMERIC                    00017500
         BL    *+8               YES                                    00017600
         S     4,=F'8'           NO, ELIMINATE 8 BIT                    00017700
       CH      4,=H'10'          Q/ ZERO                                00017800
       BNE     *+6               NO                                     00017900
       SR      4,4               YES, CLEAR IT                          00018000
       SR      3,4               COMPLEMENT A-FIELD DIGIT               00018100
AL1J   AR      2,3               ADD COMPLEMENT TO B-FIELD DIGIT        00018200
       AR      2,1               ADD CARRY                              00018300
       LA      1,0               CLEAR CARRY                            00018400
       CH      2,=H'9'           Q/ RESULT GREATER THAN 9               00018500
       BNH     AL1K              NO, OK                                 00018600
       SH      2,=H'10'          YES, SUBTRACT 10                       00018700
       LA      1,1               SET CARRY                              00018800
AL1K   STC     2,AL1M+1          STORE RESULT DIGIT                     00018900
AL1L   NI      0(12),0           *                                      00019000
       TM      AL1M+1,X'0F'      Q/ IS RESULT ZERO                      00019100
       BC      5,AL1M            NO                                     00019200
       OI      AL1M+1,X'0A'      YES, SET 8-2 BITS                      00019300
AL1M   OI      0(12),0           *                                      00019400
       MVI     AL1L+1,X'40'      SET TO ELIMINATE B-FIELD ZONES         00019500
       CLI     AEND,1            Q/ HAS A-FIELD ALREADY ENDED           00019600
       BE      AL1N              YES                                    00019700
       SR      11,0              NO, DECREMENT A-FIELD ADDRESS          00019800
       TM      1(11),X'40'       Q/ IS THIS THE END OF THE A-FIELD      00019900
       BZ      AL1N              NO                                     00020000
       MVI     AEND,1            YES, SET A-FIELD ENDED INDICATOR       00020100
AL1N   SR      12,0              DECREMENT B-FIELD ADDRESS              00020200
       TM      1(12),X'40'       Q/ IS THIS THE END OF THE B-FIELD      00020300
       BO      AL1O              YES                                    00020400
       MVI     POS1,0            NO, CLEAR 1-POSITION INDICATOR         00020500
       B       AL1I                                                     00020600
AL1O   LTR     1,1               Q/ CARRY                               00020700
       BC      6,NXTOP           YES, DONE                              00020800
*                                                                       00020900
*      PERFORM RECOMPLEMENT CYCLE                                       00021000
*                                                                       00021100
       LA      1,1               SET CARRY                              00021200
       L       12,SAVB           RESTORE B-FIELD UNITS ADDRESS          00021300
       IC      2,0(12)           GET B-FIELD SIGN                       00021400
       N       2,=F'48'          *                                      00021500
       NI      0(12),X'CF'       SET SIGN TO MINUS                      00021600
       OI      0(12),X'20'       *                                      00021700
       CH      2,=H'32'          Q/ WAS THE B-FIELD SIGN MINUS          00021800
       BNE     AL1P              NO, LEAVE IT MINUS                     00021900
       OI      0(12),X'30'       YES, SET IT PLUS                       00022000
AL1P   IC      3,0(12)           GET B-FIELD DIGIT                      00022100
       N       3,=F'15'          *                                      00022200
       CH      3,=H'10'          Q/ ZERO                                00022300
       BNE     *+6               NO                                     00022400
       SR      3,3               YES, CLEAR IT                          00022500
       LA      4,9               SET COMPLEMENT                         00022600
       SR      4,3               COMPLEMENT THE DIGIT                   00022700
       AR      4,1               ADD CARRY                              00022800
       LA      1,0               CLEAR CARRY                            00022900
       CH      4,=H'9'           Q/ IS THE RESULT GREATER THAN 9        00023000
       BNH     AL1Q              NO, OK                                 00023100
       SH      4,=H'10'          YES, SUBTRACT 10                       00023200
       LA      1,1               SET CARRY                              00023300
AL1Q   STC     4,AL1R+1          STORE RESULT                           00023400
       NI      0(12),X'70'       *                                      00023500
       TM      AL1R+1,X'0F'      Q/ IS RESULT ZERO                      00023600
       BC      5,AL1R            NO                                     00023700
       OI      AL1R+1,X'0A'      YES, SET 8-2 BITS                      00023800
AL1R   OI      0(12),0           *                                      00023900
       SR      12,0              DECREMENT B-FIELD ADDRESS              00024000
       TM      1(12),X'40'       Q/ IS THIS THE END OF THE B-FIELD      00024100
       BZ      AL1P              NO                                     00024200
       B       NXTOP             YES                                    00024300
TBTRCP DC      X'01000100000101000100010000010100'                      00024400
       DC      X'00010001010000010100010000010100'                      00024500
POS1   DC      X'0'                                                     00283500
SAVB   DS      F                                                        00283700
       TITLE  'ZERO AND ADD'                                            00024600
       USING   ZA,13                                                    00024700
ZA     CH      9,=H'1'                                                  00024800
       BE      ZAL1                                                     00024900
       CH      9,=H'7'                                                  00025000
       BE      ZAL7                                                     00025100
       CH      9,=H'4'                                                  00025200
       BNE     ILEGLN                                                   00025300
ZAL7   LA      6,1(10)                                                  00025400
       BAL     8,CVAD43                                                 00025500
       LR      11,5                                                     00025600
       LR      12,5                                                     00025700
       CH      9,=H'4'                                                  00025800
       BE      ZAL1                                                     00025900
       LA      6,4(10)                                                  00026000
       BAL     8,CVAD43                                                 00026100
       LR      12,5                                                     00026200
ZAL1   LR      6,12                                                     00026300
       LR      5,11                                                     00026400
       LA      0,1                                                      00026500
       IC      3,0(11)           SAVE LOW CHARACTER OF A-FIELD          00026600
       STC     3,TEMP1           *                                      00026700
ZAL1A  MVN     0(1,6),0(5)       MOVE NUMERIC                           00026800
       NI      0(6),X'4F'        ELIMINATE ZONE                         00026900
       SR      5,0                                                      00027000
       SR      6,0                                                      00027100
       TM      1(5),X'40'        Q/ END OF A-FIELD                      00027200
       BO      ZAL1E             YES                                    00027300
       TM      1(6),X'40'        NO, END OF B-FIELD                     00027400
       BZ      ZAL1A             NO, MOVE NEXT DIGIT                    00027500
ZAL1C  OI      0(12),X'20'       SET B-FIELD SIGN MINUS                 00027600
       NI      TEMP1,X'30'       Q/ IS A-FIELD MINUS                    00027700
       CLI     TEMP1,X'20'       *                                      00027800
       BE      ZAL1D             YES                                    00027900
       OI      0(12),X'30'       NO, SET B-FIELD SIGN PLUS              00028000
ZAL1D  LR      11,5              SET A-ADDRESS                          00028100
       LR      12,6              SET B-ADDRESS                          00028200
       B       NXTOP                                                    00028300
ZAL1E  TM      1(6),X'40'        ZERO B-FIELD BEYOND RANGE OF A-FIELD   00028400
       BO      ZAL1C             *                                      00028500
       NI      0(6),X'40'        *                                      00028600
       OI      0(6),X'0A'                                               00028700
       SR      6,0                                                      00028800
       B       ZAL1E             *                                      00028900
       TITLE  'ZERO AND SUBTRACT'                                       00029000
       USING   ZS,13                                                    00029100
ZS     CH      9,=H'7'                                                  00029200
       BE      ZS1                                                      00029300
         CH    9,=H'1'                                                  00029400
         BE    ZSL4                                                     00029500
       CH      9,=H'4'                                                  00029600
       BNE     ILEGLN                                                   00029700
ZS1    LA      6,1(10)                                                  00029800
       BAL     8,CVAD43                                                 00029900
       LR      11,5                                                     00030000
       LR      12,11                                                    00030100
       CH      9,=H'4'                                                  00030200
       BE      ZSL4                                                     00030300
       LA      6,4(10)                                                  00030400
       BAL     8,CVAD43                                                 00030500
       LR      12,5                                                     00030600
ZSL4   LR      5,11                                                     00030700
       LR      6,12                                                     00030800
       LA      0,1               SET ONE IN REG 0 FOR SUBTRACTING       00030900
       IC      3,0(11)           SAVE LOW CHARACTER OF A-FIELD          00031000
       STC     3,TEMP1           *                                      00031100
ZSL4A  MVN     0(1,6),0(5)       MOVE NUMERIC                           00031200
       NI      0(6),X'4F'        ELIMINATE ZONE                         00031300
       SR      5,0               DECREMENT A-ADDRESS                    00031400
       TM      1(5),X'40'                                               00031500
       BO      ZSL4F                                                    00031600
       SR      6,0               DECREMENT B-ADDRESS                    00031700
       TM      1(6),X'40'                                               00031800
       BZ      ZSL4A                                                    00031900
ZSL4C  OI      0(12),X'20'       SET B-FIELD SIGN MINUS                 00032000
       NI      TEMP1,X'30'       Q/ WAS A-FIELD MINUS                   00032100
       CLI     TEMP1,X'20'       *                                      00032200
       BNE     ZSL4D             LEAVE IT MINUS IF IT WAS PLUS          00032300
       OI      0(12),X'30'       MAKE B-FIELD PLUS                      00032400
ZSL4D  LR      11,5                                                     00032500
       LR      12,6                                                     00032600
       B       NXTOP                                                    00032700
ZSL4E  NI      0(6),X'40'                                               00032800
       OI      0(6),X'0A'                                               00032900
ZSL4F  SR      6,0                                                      00033000
       TM      1(6),X'40'                                               00033100
       BO      ZSL4C                                                    00033200
       B       ZSL4E                                                    00033300
       TITLE  'BRANCH, CONDITIONAL BRANCH, AND BRANCH ON CHARACTER'     00033400
       USING   B,13                                                     00033500
B      CH      9,=H'4'                                                  00033600
       BE      BL5BCH            UNCONDITIONAL BRANCH                   00033700
       CH      9,=H'8'                                                  00033800
       BE      BCE8                                                     00033900
       CH      9,=H'1'                                                  00034000
       BE      BCE1A                                                    00034100
       CH      9,=H'5'                                                  00034200
       BH      BL5BCH                                                   00034300
       BL      ILEGLN                                                   00034400
         IC    3,4(10)           GET D CHARACTER                        00034500
         N     3,=F'63'          *                                      00034600
         SLL   3,2               MULTIPLY BY 4                          00034700
         L     4,DCHARTBL(3)     GET ADDRESS OF CONDITIONAL BRANCH RTN  00034800
         BR    4                 GO TO ROUTINE OF NXTOP                 00034900
BL5A   TM      SENSEA,1          Q/ IS SENSE SWITCH A ON                00035000
       BZ      NXTOP             NO, CANNOT BRANCH                      00035100
       TM      CRDEOF,1          YES, IS READER EMPTY                   00035200
       BO      BL5BCH            YES, BRANCH                            00035300
       B       NXTOP             NO                                     00035400
BL5B   CLI     SENSEB,1                                                 00035500
       B       BL5CKB                                                   00035600
BL5C   CLI     SENSEC,1                                                 00035700
       B       BL5CKB                                                   00035800
BL5D   CLI     SENSED,1                                                 00035900
       B       BL5CKB                                                   00036000
BL5E   CLI     SENSEE,1                                                 00036100
       B       BL5CKB                                                   00036200
BL5F   CLI     SENSEF,1                                                 00036300
       B       BL5CKB                                                   00036400
BL5G   CLI     SENSEG,1                                                 00036500
       B       BL5CKB                                                   00036600
BL5K   CLI     TPEOF,1                                                  00036700
       MVI     TPEOF,0                                                  00036800
       B       BL5CKB                                                   00036900
BL5L   CLI     TPERR,1                                                  00037000
       B       BL5CKB                                                   00037100
BL5S   CLI     CPR,0                                                    00037200
       B       BL5CKB                                                   00037300
BL5T   CLI     CPR,1                                                    00037400
       B       BL5CKB                                                   00037500
BL5U   CLI     CPR,2                                                    00037600
       B       BL5CKB                                                   00037700
BL51   CLI     CPR,0                                                    00037800
       BE      NXTOP                                                    00037900
       B       BL5BCH                                                   00038000
BL5Z   CLI     OVRFLO,1                                                 00038100
       MVI     OVRFLO,0                                                 00038200
       B       BL5CKB                                                   00038300
BL52   CLI     PRTP12,1                                                 00038400
       B       BL5CKB                                                   00038500
BL5RER CLI     RDRERR,1                                                 00038600
       MVI     RDRERR,0                                                 00038700
       B       BL5CKB                                                   00038800
BL5PER CLI     PCHERR,1                                                 00038900
       MVI     PCHERR,0                                                 00039000
BL5P     B     NXTOP                                                    00039100
BL53   CLI     PRTERR,1          Q/ PRINT ERROR                         00039200
       MVI     PRTERR,0          CLEAR ERROR INDICATOR                  00039300
       B       BL5CKB            CHECK CONDITION CODE                   00039400
BL5CKB BNE     NXTOP                                                    00039500
BL5BCH LA      6,1(10)                                                  00039600
       B       SETBCH            SET CONDITIONS FOR BRANCH              00039700
BCE8     CLI   4(10),0           Q/ IS FIFTH CHARACTER A BLANK          00039800
         BE    BL5BCH            YES, BRANCH                            00039900
         LA    6,4(10)           NO, TREAT AS BCE                       00040000
       BAL     8,CVAD43                                                 00040100
       LR      12,5                                                     00040200
       LA      6,1(10)                                                  00040300
       BAL     8,CVAD43                                                 00040400
       LR      11,5                                                     00040500
         MVC   DCHAR,7(10)                                              00040600
BCE1A  MVC     TEMP1(1),0(12)                                           00040700
       NI      TEMP1,X'BF'                                              00040800
         CLC   TEMP1,DCHAR       COMPARE D CHARACTER TO CORE LOCATION   00040900
       BNE     BCE1B                                                    00041000
       LR      12,10                                                    00041100
       AR      12,9                                                     00041200
       ST      10,LSTBCH         STORE LOCATION COUNTER BEFORE BRANCH   00041300
       LR      10,11                                                    00041400
       LA      9,0                                                      00041500
       B       NXTOP                                                    00041600
BCE1B  SH      12,=H'1'                                                 00041700
       B       NXTOP                                                    00041800
DCHARTBL DC    A(BL5BCH),11A(NXTOP),A(BL52),4A(NXTOP),A(BL51,BL5S)      00041900
         DC    A(BL5T,BL5U),4A(NXTOP),A(BL5Z,BL53),7A(NXTOP)            00042000
         DC    A(BL5K,BL5L),3A(NXTOP),A(BL5P,NXTOP,BL5P,BL5PER)         00042100
         DC    6A(NXTOP),A(BL5A,BL5B,BL5C,BL5D,BL5E,BL5F,BL5G)          00042200
         DC    2A(NXTOP),A(BL5RER),5A(NXTOP)                            00042300
       TITLE  'BRANCH ON WORD MARK / ZONE'                              00042400
       USING   BWZ,13                                                   00042500
BWZ    CH      9,=H'1'                                                  00042600
       BE      BWZL1                                                    00042700
       CH      9,=H'8'                                                  00042800
       BNE     ILEGLN                                                   00042900
       LA      6,1(10)                                                  00043000
       BAL     8,CVAD43                                                 00043100
       LR      11,5                                                     00043200
       LA      6,4(10)                                                  00043300
       BAL     8,CVAD43                                                 00043400
       LR      12,5                                                     00043500
       MVC     DCHAR(1),7(10)                                           00043600
BWZL1  SH      12,=H'1'                                                 00043700
       CLI     DCHAR,X'01'                                              00043800
       BE      BWZW                                                     00043900
       CLI     DCHAR,X'02'                                              00044000
       BE      BWZ0                                                     00044100
       CLI     DCHAR,X'32'                                              00044200
       BE      BWZBA                                                    00044300
       CLI     DCHAR,X'22'                                              00044400
       BE      BWZB                                                     00044500
       CLI     DCHAR,X'12'                                              00044600
       BE      BWZA                                                     00044700
       CLI     DCHAR,X'03'                                              00044800
       BE      BWZW0                                                    00044900
       CLI     DCHAR,X'33'                                              00045000
       BE      BWZWBA                                                   00045100
       CLI     DCHAR,X'23'                                              00045200
       BE      BWZWB                                                    00045300
       CLI     DCHAR,X'13'                                              00045400
       BE      BWZWA                                                    00045500
       B       ILEGOP                                                   00045600
BWZW   TM      1(12),X'40'                                              00045700
       BO      BWZBCH                                                   00045800
       B       NXTOP                                                    00045900
BWZ0   TM      1(12),X'30'                                              00046000
       BZ      BWZBCH                                                   00046100
       B       NXTOP                                                    00046200
BWZBA  TM      1(12),X'30'                                              00046300
       BO      BWZBCH                                                   00046400
       B       NXTOP                                                    00046500
BWZB   TM      1(12),X'20'                                              00046600
       BZ      NXTOP                                                    00046700
       TM      1(12),X'10'                                              00046800
       BO      NXTOP                                                    00046900
       B       BWZBCH                                                   00047000
BWZA   TM      1(12),X'20'                                              00047100
       BO      NXTOP                                                    00047200
       TM      1(12),X'10'                                              00047300
       BO      BWZBCH                                                   00047400
       B       NXTOP                                                    00047500
BWZW0  TM      1(12),X'40'                                              00047600
       BO      BWZBCH                                                   00047700
       B       BWZ0                                                     00047800
BWZWBA TM      1(12),X'40'                                              00047900
       BO      BWZBCH                                                   00048000
       B       BWZBA                                                    00048100
BWZWB  TM      1(12),X'40'                                              00048200
       BO      BWZBCH                                                   00048300
       B       BWZB                                                     00048400
BWZWA  TM      1(12),X'40'                                              00048500
       BO      BWZBCH                                                   00048600
       B       BWZA                                                     00048700
BWZBCH ST      10,LSTBCH         STORE LOCATION COUNTER BEFORE BRANCH   00048800
       LR      12,10             SET B-REG                              00048900
       AR      12,9              *                                      00049000
       LR      10,11             SET LOCATION COUNTER FOR BRANCH        00049100
       LA      9,0               *                                      00049200
       B       NXTOP                                                    00049300
       TITLE  'COMPARE'                                                 00049400
       USING   C,13                                                     00049500
C        CH    9,=H'1'                                                  00049600
         BE    CL1                                                      00049700
         CH    9,=H'4'                                                  00049800
         BE    CL4                                                      00049900
         CH    9,=H'7'                                                  00050000
       BNE     ILEGLN                                                   00050100
       LA      6,4(10)                                                  00050200
       BAL     8,CVAD43                                                 00050300
       LR      12,5                                                     00050400
         MVI   TCPR,0            INITALIZE COMPARE RESULT TO EQUAL      14015045
*                                 (1401 RESETS WHEN B-ADDR LOADED)      14015046
CL4      LA    6,1(10)           CONVERT A-ADDR TO 360 FORMAT           00050500
         BAL   8,CVAD43          *                                      00050600
         LR    11,5              *                                      00050700
         CH    9,=H'4'           Q/ IS INSTRUCTION 4 CHARACTERS         00050800
         BNE   CL1               NO                                     00050900
         LR    12,11             YES, FORS                              00051000
         LR    12,11             YES, FORCE B/ADDR = A/ADDR             00051100
CL1      LA    4,0                                                      14015130
       LA      0,1                                                      00051400
C1     SR      11,0                                                     00051500
       SR      12,0                                                     00051600
       TM      1(12),X'40'                                              00051700
       BO      C2                                                       00051800
       TM      1(11),X'40'                                              00051900
       BO      C5                LONG B-FIELD                           00052000
       LA      4,1(4)                                                   00052100
       B       C1                                                       00052200
C2     LR      5,11                                                     00052300
       LR      6,12                                                     00052400
       LA      4,1(4)                                                   00052500
C3     MVC     TCR(1),1(6)                                              00052600
       MVC     TCR+1(1),1(5)                                            00052700
       TR      TCR(2),CPRTBL     CONVERT DIGITS TO SORT SEQUENCE        00052800
       CLC     TCR(1),TCR+1                                             00052900
       BH      C5                                                       00053000
       BL      C6                                                       00053100
       LA      5,1(5)                                                   00053200
       LA      6,1(6)                                                   00053300
       BCT     4,C3                                                     00053400
C4       CH    9,=H'1'                                                  00053500
         BNE   C4A                                                      00053600
         CLI   TCPR,0                                                   00053700
         BE    NXTOP                                                    00053800
C4A      MVC   CPR,TCPR                                                 00053900
       B       NXTOP                                                    00054000
C5     MVI     TCPR,2            SET HIGH                               00054100
       B       C4                                                       00054200
C6     MVI     TCPR,1            SET LOW                                00054300
       B       C4                                                       00054400
TCPR   DC      X'00'                                                    00054500
TCR    DS      CL2                                                      00054600
CPRTBL DC      HL1'0,55,56,57,58,59,60,61,62,63,54,20,21,22,23,24'      00054700
       DC      HL1'19,13,46,47,48,49,50,51,52,53,45,14,15,16,17,18'     00054800
       DC      HL1'12,36,37,38,39,40,41,42,43,44,35,7,8,9,10,11'        00054900
       DC      HL1'6,26,27,28,29,30,31,32,33,34,25,1,2,3,4,5'           00055000
       DC      HL1'0,55,56,57,58,59,60,61,62,63,54,20,21,22,23,24'      00055100
       DC      HL1'19,13,46,47,48,49,50,51,52,53,45,14,15,16,17,18'     00055200
       DC      HL1'12,36,37,38,39,40,41,42,43,44,35,7,8,9,10,11'        00055300
       DC      HL1'6,26,27,28,29,30,31,32,33,34,25,1,2,3,4,5'           00055400
       TITLE  'HALT'                                                    00055500
       USING   H,13                                                     00055600
H      CH      9,=H'1'                                                  00055700
       BE      H1                                                       00055800
       CH      9,=H'4'                                                  00055900
       BE      H1                                                       00056000
       CH      9,=H'7'                                                  00056100
       BNE     ILEGLN                                                   00056200
H1       LR    5,10              CONVERT I ADDRESS                      00056300
         BAL   8,H5                     *                               00056400
         MVC   I003+12(6),HLTADARA   MOVE I ADDR TO OUTPUT                 06140
         MVC   I003+21(6),=CL6' '                                          06150
         MVC   I003+30(6),=CL6' '                                          06155
         CH    9,=H'7'                  Q/ IS THERE A B ADDRESS         00056700
         BL    H2                       NO                              00056800
         LA    6,1(10)           CONVERT 1401 ADDRESS                   00056900
         BAL   8,CVAD43          *                                      00057000
         BAL   8,H5                     *                               00057100
         MVC   I003+21(6),HLTADARA   MOVE A ADDR TO OUTPUT                 06210
         LA    6,4(10)           CONVERT 1401 B ADDRESS                 00057300
         BAL   8,CVAD43          *                                      00057400
         BAL   8,H5                     *                               00057500
         MVC   I003+30(6),HLTADARA   MOVE B ARRR YO OUTPUT                      
         MSG   'I003 HALT  I      , A      , B      ',I003                      
         AIF   ('&CONSOLE' EQ 'Y').HWTO2                                        
H2       B     TERMINAT                                                         
.HWTO2   ANOP                                                                   
       CH      9,=H'4'                                                  00057900
       BNE     H3                                                       00058000
       LA      6,1(10)                                                  00058100
       BAL     8,CVAD43                                                 00058200
       ST      5,ADR360                                                 00058300
H3       MVC   RETURN,=A(H4)       SET TO CONTINUE AFTER RESTART        00058400
         B     WTORTN                                                   00058500
H4     CH      9,=H'4'           Q/ BRANCH                              00058600
       BNE     NXTOP                                                    00058700
         LR    12,10                                                    00058800
         AR    12,9                                                     00058900
       L       10,ADR360                                                00059000
       LA      9,0                                                      00059100
       B       NXTOP                                                    00059200
H5       SR    5,7               GET 1401 ADDRESS                       00059300
         CVD   5,PAKT            CONVERT TO DECIMAL                     00059400
         UNPK  HLTADARA(6),PAKT+5(3)    UNPACK 1401 ADDRESS             00059500
         OI    HLTADARA+5,X'F0'         MAKE SIGN NUMERIC               00059600
         LA    1,HLTADARA               BLANK LEADING ZEROS             00059700
H6       CLI   0(1),C'0'         *                                      00059800
         BCR   6,8                      *                               00059900
         MVI   0(1),X'40'               *                               00060000
         LA    1,1(1)                   *                               00060100
         B     H6                *                                      00060200
HLTADARA DC    CL6' '                                                   00060300
       TITLE  'CLEAR STORAGE'                                           00060400
       USING   CS,13                                                    00060500
CS     CH      9,=H'1'                                                  00060600
       BE      CSL1                                                     00060700
       CH      9,=H'4'                                                  00060800
       BE      CSL4                                                     00060900
       CH      9,=H'7'                                                  00061000
       BL      ILEGLN                                                   00061100
       MVC     HLDBCH(3),1(10)                                          00061200
       LA      6,4(10)                                                  00061300
       B       CSCOM                                                    00061400
CSL4   LA      6,1(10)                                                  00061500
CSCOM  BAL     8,CVAD43                                                 00061600
       LR      12,5                                                     00061700
CSL1   LR      3,12                                                     00061800
       SR      3,7               SUBTRACT SIMULATED CORE BASE LOCATION  00061900
       LA      2,0                                                      00062000
       D       2,=F'100'                                                00062100
       SR      12,2                                                     00062200
       STC     2,CSL1A+1                                                00062300
CSL1A  XC      0(0,12),0(12)     CLEAR CORE BLOCK                       00062400
       CR      12,7              Q/ DID B-REG GO TO 0                   00062500
       BNE     CS2               NO                                     00062600
         L     12,=F'15999'                                             00062700
         AR    12,7                                                     00062800
       B       CS3               *                                      00062900
CS2    SH      12,=H'1'          SUBTRACT 1 FROM B-REG                  00063000
CS3    CH      9,=H'7'           Q/ IS THERE A BRANCH                   00063100
       BL      NXTOP                                                    00063200
       LA      6,HLDBCH                                                 00063300
         B     SETBCH                                                   00063400
HLDBCH DS      CL3                                                      00063500
       TITLE  'SET WORD MARK'                                           00063600
       USING   SW,13                                                    00063700
SW     CH      9,=H'6'                                                  00063800
       BNL     SWL7                                                     00063900
       CH      9,=H'4'                                                  00064000
       BE      SWL4                                                     00064100
       CH      9,=H'1'                                                  00064200
       BE      SWL1                                                     00064300
       B       ILEGLN                                                   00064400
SWL4   LA      6,1(10)                                                  00064500
       BAL     8,CVAD43                                                 00064600
       LR      11,5                                                     00064700
       OI      0(11),X'40'                                              00064800
       SH      11,=H'1'                                                 00064900
       LR      12,11                                                    00065000
       B       NXTOP                                                    00065100
SWL7   LA      6,1(10)                                                  00065200
       BAL     8,CVAD43                                                 00065300
       LR      11,5                                                     00065400
       LA      6,4(10)                                                  00065500
       BAL     8,CVAD43                                                 00065600
       LR      12,5                                                     00065700
SWL1   OI      0(11),X'40'                                              00065800
       OI      0(12),X'40'                                              00065900
       SH      11,=H'1'                                                 00066000
       SH      12,=H'1'                                                 00066100
       CH      9,=H'7'                                                  00066200
       BNH     NXTOP                                                    00066300
       LA      9,7                                                      00066400
       B       NXTOP                                                    00066500
       TITLE  'CLEAR WORD MARK'                                         00066600
       USING   CW,13                                                    00066700
CW     CH      9,=H'6'                                                  00066800
       BNL     CWL7                                                     00066900
       CH      9,=H'4'                                                  00067000
       BE      CWL4                                                     00067100
       CH      9,=H'1'                                                  00067200
       BE      CWL1                                                     00067300
       B       ILEGLN                                                   00067400
CWL4   LA      6,1(10)                                                  00067500
       BAL     8,CVAD43                                                 00067600
       LR      11,5                                                     00067700
       NI      0(11),X'BF'                                              00067800
       SH      11,=H'1'                                                 00067900
       LR      12,11                                                    00068000
       B       NXTOP                                                    00068100
CWL7   LA      6,1(10)                                                  00068200
       BAL     8,CVAD43                                                 00068300
       LR      11,5                                                     00068400
       LA      6,4(10)                                                  00068500
       BAL     8,CVAD43                                                 00068600
       LR      12,5                                                     00068700
CWL1   NI      0(11),X'BF'                                              00068800
       NI      0(12),X'BF'                                              00068900
       SH      11,=H'1'                                                 00069000
       SH      12,=H'1'                                                 00069100
       B       NXTOP                                                    00069200
       TITLE  'MOVE CHARACTERS TO A WORD MARK'                          00069300
       USING   MCW,13                                                   00069400
MCW    CH      9,=H'7'                                                  00069500
       BE      MCWL7                                                    00069600
       CH      9,=H'4'                                                  00069700
       BE      MCWL4                                                    00069800
       CH      9,=H'1'                                                  00069900
       BE      MCWL1                                                    00070000
       CH      9,=H'8'                                                  00070100
       BE      MCW8                                                     00070200
       B       ILEGLN                                                   00070300
MCWL7  LA      6,4(10)                                                  00070400
       BAL     8,CVAD43                                                 00070500
       LR      12,5                                                     00070600
MCWL4  LA      6,1(10)                                                  00070700
       BAL     8,CVAD43                                                 00070800
       LR      11,5                                                     00070900
MCWL1  LA      0,1                                                      00071000
MCWL1B MVC     MCWL1A+1(1),0(11)                                        00071100
       NI      MCWL1A+1,X'3F'                                           00071200
       NI      0(12),X'40'                                              00071300
MCWL1A OI      0(12),0                                                  00071400
       SR      11,0                                                     00071500
       SR      12,0                                                     00071600
       TM      1(11),X'40'                                              00071700
       BO      NXTOP                                                    00071800
       TM      1(12),X'40'                                              00071900
       BZ      MCWL1B                                                   00072000
       B       NXTOP                                                    00072100
MCW8   MVC     DCHAR(1),7(10)                                           00072200
       CLI     DCHAR,X'29'                                              00072300
       BE      RT                                                       00072400
       CLI     DCHAR,X'16'                                              00072500
         BE    CHKCON                                                           
       CLI     DCHAR,X'31'                                              00072700
       BE      MBD                                                      00072800
       CLI     DCHAR,X'32'                                              00072900
       BE      MBD                                                      00073000
       B       ILEGOP                                                   00073100
CHKCON   CLI   2(10),X'13'   CHECK FOR T IN                                     
         BE    CONSOLE       M%T0XXXW INST                                      
         B     WT                                                               
*                                                                       00073200
*      READ TAPE WITHOUT WORD MARKS                                     00073300
*                                                                       00073400
          AIF  ('&TAPE' EQ 'N').NOTRD                                           
RT     LA      6,4(10)           CONVERT CORE LOCATION FOR TAPE READ    00073500
       BAL     8,CVAD43          *                                      00073600
       LR      12,5              *                                      00073700
       BAL     8,FNDRIV          GET DEVICE ADDRESS                     00073800
       MVI     RTCCW,X'A3'       SET PARITY IN MODE SET COMMAND         00073900
       MVI     BCDTAP,1          *                                      00074000
       TM      2(10),X'14'       *                                      00074100
       BO      RT1               *                                      00074200
       MVI     RTCCW,X'B3'       *                                      00074300
       MVI     BCDTAP,0          SET BINARY                             00074400
RT1      ST    3,TMDCB                                                  00074500
         MVC   TPCCW,=A(RTCCW)                                          00074600
         STM   13,15,MACREGSV  SAVE MACRO REGS                          00074700
         LA    6,MACREGSV      SAVE ADDRESS TO XR                       00074800
         LA    13,SAVEAREA     GIVE OS OUR SAVE AREA                    00074900
         EXCP  TMIOB                                                    00075000
         LM    14,15,4(6)      RESTORE REG 14 AND 15                    00075100
         WAIT  1,ECB=TMECB     WAIT FOR I/O                             00075200
         LM    13,15,0(6)      RESTORE MACRO REGISTERS                  00075300
         BAL   8,TPTEST                                                 00075400
       BAL     8,FNDLNG          FIND LENGTH OF B-FIELD                 00075500
       LR      3,6               *                                      00075600
         L     1,TAPEAREA        SET SENDING ADDRESS                    00075700
       LH      5,SAVCSW+6        FIND NUMBER OF BYTES READ              00075800
       LH      4,=H'25000'       *                                      00075900
       SR      4,5               *                                      00076000
       CR      3,4               USE SMALLER FIELD                      00076100
       BNH     RT3               *                                      00076200
       LR      3,4               *                                      00076300
RT3    CH      3,=H'256'         Q/ MORE THAN 256 BYTES                 00076400
       BNH     RT4               NO                                     00076500
       NC      0(256,12),WM256   YES, MOVE 256 BYTES                    00076600
       CLI     BCDTAP,1          *                                      00076700
       BNE     RT3A              *                                      00076800
       TR      0(256,1),TR4IBC   *                                      00076900
RT3A   OC      0(256,12),0(1)    *                                      00077000
       LA      1,256(1)          *                                      00077100
       LA      12,256(12)        *                                      00077200
       SH      3,=H'256'         *                                      00077300
       B       RT3               *                                      00077400
RT4    SH      3,=H'1'           MOVE REMAINING BYTES                   00077500
       STC     3,RT5+1           *                                      00077600
       STC     3,RT6+1           *                                      00077700
       STC     3,RT7+1           *                                      00077800
RT5    NC      0(0,12),WM256     *                                      00077900
       CLI     BCDTAP,1          *                                      00078000
       BNE     RT7               *                                      00078100
RT6    TR      0(0,1),TR4IBC     *                                      00078200
RT7    OC      0(0,12),0(1)      *                                      00078300
       AR      12,3              SET GROUP MARK AFTER DATA              00078400
       NI      1(12),X'40'       *                                      00078500
       OI      1(12),X'3F'       *                                      00078600
       LA      12,2(12)          SET B-ADDRESS                          00078700
       B       NXTOP             END OF TAPE READ INSTRUCTION           00078800
*                                                                       00078900
*      WRITE TAPE WITHOUT WORD MARKS                                    00079000
*                                                                       00079100
WT     LA      6,4(10)                                                  00079200
       BAL     8,CVAD43                                                 00079300
       LR      12,5                                                     00079400
       BAL     8,FNDLNG                                                 00079500
       STH     6,WTCCW2+6        STORE LENGTH IN CCW                    00079600
       LR      4,12                                                     00079700
       AR      12,6              SET B-ADDRESS                          00079800
       LA      12,1(12)          *                                      00079900
         L     3,TAPEAREA                                               00080000
       MVI     WTCCW1,X'A3'      SET BCD MODE                           00080100
       MVI     BCDTAP,1          *                                      00080200
       CLI     2(10),X'14'       Q/ IS INSTRUCTION BCD                  00080300
       BE      WT1               YES                                    00080400
       MVI     WTCCW1,X'B3'      NO, SET BINARY MODE                    00080500
       MVI     BCDTAP,0          *                                      00080600
WT1    CH      6,=H'256'                                                00080700
       BNH     WT2                                                      00080800
       MVC     0(256,3),0(4)                                            00080900
       CLI     BCDTAP,1          Q/ BCD                                 00081000
       BNE     WT1A              NO                                     00081100
       TR      0(256,3),TRI4BC   YES, CHANGE X'00' TO X'10' FOR TAPE    00081200
WT1A   LA      3,256(3)          UP REG 3 BY 256                        00081300
       LA      4,256(4)                                                 00081400
       SH      6,=H'256'                                                00081500
       B       WT1                                                      00081600
WT2    STC     6,WT3+1                                                  00081700
       STC     6,WT4+1                                                  00081800
WT3    MVC     0(0,3),0(4)                                              00081900
       CLI     BCDTAP,1          Q/ BCD                                 00082000
       BNE     WT4A              NO                                     00082100
WT4    TR      0(0,3),TRI4BC     YES, CHANGE X'00' TO X'10' FOR TAPE    00082200
WT4A   BAL     8,FNDRIV          GET DEVICE ADDRESS                     00082300
         ST    3,TMDCB                                                  00082400
         MVC   TPCCW,=A(WTCCW1)                                         00082500
         STM   13,15,MACREGSV  SAVE MACRO REGS                          00082600
         LA    6,MACREGSV      SAVE ADDRESS TO XR                       00082700
         LA    13,SAVEAREA     GIVE OS OUR SAVE AREA                    00082800
         EXCP  TMIOB                                                    00082900
         LM    14,15,4(6)      RESTORE REG 14 AND 15                    00083000
         WAIT  1,ECB=TMECB     WAIT FOR I/O                             00083100
         LM    13,15,0(6)      RESTORE MACRO REGISTERS                  00083200
         BAL   8,TPTEST                                                 00083300
       B       NXTOP                                                    00083400
.NOTRD   ANOP                                                                   
         AIF   ('&TAPE' EQ 'Y').RTOK                                            
RT       B     ILEGOP                                                           
WT       B     ILEGOP                                                           
.RTOK    ANOP                                                                   
         SPACE                                                                  
         AIF   ('&MB' EQ 'N').NOMB                                              
MBD    LA      6,1(10)                                                  00083500
       BAL     8,CVAD43                                                 00083600
       LR      11,5                                                     00083700
       LA      6,4(10)                                                  00083800
       BAL     8,CVAD43                                                 00083900
       LR      12,5                                                     00084000
       LA      0,1                                                      00084100
       LR      6,12                                                     00084200
       SH      6,=H'100'                                                00084300
       CLI     DCHAR,X'32'                                              00084400
       BE      MBC                                                      00084500
       LR      6,11                                                     00084600
       SH      6,=H'100'                                                00084700
MBD1   IC      3,0(11)                                                  00084800
       STC     3,MBD2+1                                                 00084900
       NI      MBD2+1,X'BF'                                             00085000
       NI      0(12),X'40'                                              00085100
MBD2   OI      0(12),0                                                  00085200
       SR      12,0                                                     00085300
       IC      3,0(6)                                                   00085400
       STC     3,MBD3+1                                                 00085500
       NI      MBD3+1,X'BF'                                             00085600
       NI      0(12),X'40'                                              00085700
MBD3   OI      0(12),0                                                  00085800
       SR      12,0                                                     00085900
       SR      11,0                                                     00086000
       SR      6,0                                                      00086100
       TM      1(6),X'40'                                               00086200
       BC      8,MBD1                                                   00086300
       B       NXTOP                                                    00086400
MBC    IC      3,0(11)                                                  00086500
       STC     3,MBC1+1                                                 00086600
       NI      MBC1+1,X'BF'                                             00086700
       NI      0(12),X'40'                                              00086800
MBC1   OI      0(12),0                                                  00086900
       SR      11,0                                                     00087000
       IC      3,0(11)                                                  00087100
       STC     3,MBC2+1                                                 00087200
       NI      MBC2+1,X'BF'                                             00087300
       NI      0(6),X'40'                                               00087400
MBC2   OI      0(6),0                                                   00087500
       SR      12,0                                                     00087600
       SR      11,0                                                     00087700
       SR      6,0                                                      00087800
       TM      1(6),X'40'                                               00087900
       BO      NXTOP                                                    00088000
       TM      1(12),X'40'                                              00088100
       BZ      MBC                                                      00088200
       B       NXTOP                                                    00088300
.NOMB    AIF   ('&MB' EQ 'Y').YESMB                                             
MBD      B     ILEGOP                                                           
.YESMB   ANOP                                                                   
         SPACE                                                                  
CONSOLE  CH    9,=H'8'                                                          
         BNE   ILEGLN                                                           
         LA    6,4(10)                                                          
         BAL   8,CVAD43      CONVERT B ADDR                                     
         LR    12,5                                                             
         TRT   0(50,5),TRGPWM                                              09630
         BC    6,CONSOLE1                                                       
         L     1,=F'49'                                                    09650
         B     CLRMSG                                                           
CONSOLE1 SR    1,5                                                              
CLRMSG   MVI   CON,C' '            BLANK MSG AREA                          09680
         MVC   CON+1(49),CON                                               09690
         EX    1,MV                                                        09600
         EX    1,TRAN                                                      09610
         MSG   '                                                  ',CON    09740
         B     NXTOP                                                            
TRAN     TR    CON(0),TRIE                                                 09800
MV       MVC   CON(0),0(12)                                                09810
       TITLE  'MOVE CHARACTERS AND SUPPRESS LEADING ZEROS'              00088400
       USING   MCS,13                                                   00088500
MCS    CH      9,=H'1'                                                  00088600
       BE      MCSL1                                                    00088700
       CH      9,=H'7'                                                  00088800
         BE    MCSL7                                                    00088900
         CH    9,=H'4'                                                  00089000
         BNE   ILEGLN                                                   00089100
         LA    6,1(10)                                                  00089200
         BAL   8,CVAD43                                                 00089300
         LR    11,5                                                     00089400
         LR    12,5                                                     00089500
         B     MCSL1                                                    00089600
MCSL7    LA    6,1(10)                                                  00089700
       BAL     8,CVAD43                                                 00089800
       LR      11,5                                                     00089900
       LA      6,4(10)                                                  00090000
       BAL     8,CVAD43                                                 00090100
       LR      12,5                                                     00090200
MCSL1  LA      0,1                                                      00090300
       MVI     SUPRES,1                                                 00090400
       IC      3,0(11)           MOVE ONLY DIGIT OF FIRST CHARACTER     00090500
       STC     3,0(12)           *                                      00090600
       NI      0(12),X'0F'       *                                      00090700
       STC     3,TEMP1           SAVE A-CHARACTER                       00090800
       OI      0(12),X'40'       SET WORD MARK TO STOP REVERSE SCAN     00090900
       B       MCSL1B                                                   00091000
MCSL1A IC      3,0(11)           MOVE CHARACTER                         00091100
       STC     3,0(12)           *                                      00091200
       STC     3,TEMP1           SAVE A-CHARACTER                       00091300
       NI      0(12),X'3F'       *                                      00091400
MCSL1B SR      11,0                                                     00091500
        SR     12,0                                                     00091600
       TM      TEMP1,X'40'       Q/ END OF A-FIELD                      00091700
       BZ      MCSL1A            NO                                     00091800
       LA      12,1(12)          YES                                    00091900
MCSL1C MVC     TEMP1(1),0(12)                                           00092000
       NI      TEMP1,X'3F'                                              00092100
       CLI     SUPRES,1          Q/ IS ZERO SUPPRESSION ON              00092200
       BE      MCSL1G            YES                                    00092300
       CLI     TEMP1,X'0A'       NO, IS IT SIGNIFICANT DIGIT,BLANK 0    00092400
       BNH     MCSL1E            YES                                    00092500
       CLI     TEMP1,X'1B'       Q/ COMMA                               00092600
       BE      MCSL1E            YES                                    00092700
       CLI     TEMP1,X'20'       Q/ HYPHEN                              00092800
       BE      MCSL1E            YES                                    00092900
         MVI   SUPRES,1        TURN ON ZERO SUPRESSION                  00093000
MCSL1E TM      0(12),X'40'       Q/ LAST DIGIT                          00093100
       BO      MCSL1F            YES                                    00093200
       LA      12,1(12)          NO, PROCESS NEXT DIGIT                 00093300
       B       MCSL1C            *                                      00093400
MCSL1F NI      0(12),X'BF'       CLEAR WORD MARK                        00093500
       LA      12,1(12)          SET B-ADDRESS                          00093600
       B       NXTOP             GET NEXT INSTRUCTION                   00093700
MCSL1G CLI     0(12),X'09'       Q/ SIGNIFICANT DIGIT                   00093800
       BH      MCSL1H            *                                      00093900
       CLI     0(12),X'00'       *                                      00094000
       BE      MCSL1H            *                                      00094100
       MVI     SUPRES,0          YES, TURN OFF ZERO SUPPRESSION         00094200
       B       MCSL1E            *                                      00094300
MCSL1H CLI     TEMP1,X'00'       Q/ BLANK                               00094400
       BE      MCSL1I            BLANK                                  00094500
       CLI     TEMP1,X'0A'       Q/ ZERO                                00094600
       BE      MCSL1I            ZERO                                   00094700
       CLI     TEMP1,X'1B'       Q/ COMMA                               00094800
       BNE     MCSL1E            NO                                     00094900
MCSL1I NI      0(12),X'40'                                              00095000
       B       MCSL1E                                                   00095100
       TITLE  'MOVE NUMERIC'                                            00095200
       USING   MN,13                                                    00095300
MN     CH      9,=H'1'                                                  00095400
       BE      MNL1                                                     00095500
         CH    9,=H'4'                                                  00095600
         BE    MNL4                                                     00095700
       CH      9,=H'7'                                                  00095800
       BNE     ILEGLN                                                   00095900
       LA      6,4(10)                                                  00096000
       BAL     8,CVAD43                                                 00096100
       LR      12,5                                                     00096200
MNL4     LA    6,1(10)                                                  00096300
         BAL   8,CVAD43                                                 00096400
         LR    11,5                                                     00096500
         CH    9,=H'4'                                                  00096600
         BNE   MNL1                                                     00096700
         LR    12,11             4 CHARACTERS, SET B ADR = A ADR        00096800
MNL1   MVN     0(1,12),0(11)     MOVE NUMERIC                           00096900
       SH      11,=H'1'                                                 00097000
       SH      12,=H'1'                                                 00097100
       B       NXTOP                                                    00097200
       TITLE  'MOVE ZONE'                                               00097300
       USING   MZ,13                                                    00097400
MZ     CH      9,=H'1'                                                  00097500
       BE      MZL1                                                     00097600
       CH      9,=H'7'                                                  00097700
       BNE     ILEGLN                                                   00097800
       LA      6,1(10)                                                  00097900
       BAL     8,CVAD43                                                 00098000
       LR      11,5                                                     00098100
       LA      6,4(10)                                                  00098200
       BAL     8,CVAD43                                                 00098300
       LR      12,5                                                     00098400
MZL1   IC      3,0(11)                                                  00098500
       STC     3,MZL1A+1                                                00098600
       NI      0(12),X'CF'                                              00098700
       NI      MZL1A+1,X'30'                                            00098800
MZL1A  OI      0(12),0                                                  00098900
       SH      11,=H'1'                                                 00099000
       SH      12,=H'1'                                                 00099100
       B       NXTOP                                                    00099200
       TITLE  'LOAD CHARACTERS TO AN A-FIELD WORD MARK'                 00099300
       USING   LCA,13                                                   00099400
LCA    CH      9,=H'7'                                                  00099500
       BE      LCAL7                                                    00099600
       CH      9,=H'4'                                                  00099700
       BE      LCAL4                                                    00099800
       CH      9,=H'1'                                                  00099900
       BE      LCAL1                                                    00100000
       CH      9,=H'8'                                                  00100100
       BE      LCA8                                                     00100200
       B       ILEGLN                                                   00100300
LCAL7  LA      6,4(10)                                                  00100400
       BAL     8,CVAD43                                                 00100500
       LR      12,5                                                     00100600
LCAL4  LA      6,1(10)                                                  00100700
       BAL     8,CVAD43                                                 00100800
       LR      11,5                                                     00100900
LCAL1  LA      0,1                                                      00101000
LCAL1A IC      3,0(11)                                                  00101100
       STC     3,0(12)                                                  00101200
       SR      11,0                                                     00101300
       SR      12,0                                                     00101400
       TM      1(11),X'40'                                              00101500
       BZ      LCAL1A                                                   00101600
       B       NXTOP                                                    00101700
LCA8   CLI     7(10),X'29'                                              00101800
       BE      RTW                                                      00101900
       CLI     7(10),X'16'                                              00102000
       BE      WTW                                                      00102100
       B       ILEGOP                                                   00102200
*                                                                       00102300
*      READ TAPE WITH WORD MARKS                                        00102400
*                                                                       00102500
          AIF  ('&TAPE' EQ 'N').NOTWT                                           
RTW    LA      6,4(10)                                                  00102600
       BAL     8,CVAD43                                                 00102700
       LR      12,5                                                     00102800
       BAL     8,FNDRIV                                                 00102900
       MVI     RTCCW,X'A3'       LOAD MODE SET COMMAND                  00103000
         ST    3,TMDCB                                                  00103100
         MVC   TPCCW,=A(RTCCW)                                          00103200
         STM   13,15,MACREGSV  SAVE MACRO REGS                          00103300
         LA    6,MACREGSV      SAVE ADDRESS TO XR                       00103400
         LA    13,SAVEAREA     GIVE OS OUR SAVE AREA                    00103500
         EXCP  TMIOB                                                    00103600
         LM    14,15,4(6)      RESTORE REG 14 AND 15                    00103700
         WAIT  1,ECB=TMECB     WAIT FOR I/O                             00103800
         LM    13,15,0(6)      RESTORE MACRO REGISTERS                  00103900
         BAL   8,TPTEST                                                 00104000
       LH      3,SAVCSW+6        FIND NUMBER OF BYTES READ              00104100
       LH      4,=H'25000'       *                                      00104200
       SR      4,3                                                      00104300
         L     1,TAPEAREA        SET SENDING ADDRESS                    00104400
RTW1   CLI     0(12),X'7F'       Q/ GP MK - WD MK IN CORE               00104500
       BE      RTW3              YES                                    00104600
       CLI     0(1),X'1D'        Q/ WORD SEPARATOR                      00104700
       BNE     RTW2              NO                                     00104800
       LA      1,1(1)            YES                                    00104900
       IC      3,0(1)                                                   00105000
       STC     3,0(12)                                                  00105100
       TR      0(1,12),TR4IBC                                           00105200
       OI      0(12),X'40'                                              00105300
       SH      4,=H'1'                                                  00105400
       B       RTW2A                                                    00105500
RTW2   IC      3,0(1)                                                   00105600
       STC     3,0(12)                                                  00105700
       TR      0(1,12),TR4IBC                                           00105800
RTW2A  LA      1,1(1)                                                   00105900
       LA      12,1(12)                                                 00106000
       BCT     4,RTW1                                                   00106100
       CLI     0(12),X'7F'       RECORD MOVED, IS GROUP MARK NEXT CHAR  00106200
       BE      RTW3              YES, LEAVE IT ALONE                    00106300
       MVI     0(12),X'3F'       NO, MOVE IN A GROUP MARK               00106400
RTW3   LA      12,1(12)          SET B-ADDRESS                          00106500
       B       NXTOP                                                    00106600
*                                                                       00106700
*      WRITE TAPE WITH WORD MARKS                                       00106800
*                                                                       00106900
WTW    LA      6,4(10)                                                  00107000
       BAL     8,CVAD43                                                 00107100
       LR      12,5                                                     00107200
         L     1,TAPEAREA                                               00107300
       LR      2,12                                                     00107400
WTW1   TM      0(2),X'7F'        Q/ GROUP MARK WORD MARK                00107500
       BO      WTW3              YES, FIELD DONE                        00107600
       TM      0(2),X'40'        Q/ WORD MARK                           00107700
       BZ      WTW2              NO                                     00107800
       MVI     0(1),X'1D'        YES, INSERT WORD SEPARATOR             00107900
       LA      1,1(1)            *                                      00108000
WTW2   MVC     0(1,1),0(2)                                              00108100
       TR      0(1,1),TRI4BC                                            00108200
       LA      1,1(1)                                                   00108300
       LA      2,1(2)                                                   00108400
       B       WTW1                                                     00108500
WTW3     S     1,TAPEAREA                                               00108600
       STH     1,WTCCW2+6                                               00108700
       MVI     WTCCW1,X'A3'                                             00108800
       BAL     8,FNDRIV                                                 00108900
         ST    3,TMDCB                                                  00109000
         MVC   TPCCW,=A(WTCCW1)                                         00109100
         STM   13,15,MACREGSV  SAVE MACRO REGS                          00109200
         LA    6,MACREGSV      SAVE ADDRESS TO XR                       00109300
         LA    13,SAVEAREA     GIVE OS OUR SAVE AREA                    00109400
         EXCP  TMIOB                                                    00109500
         LM    14,15,4(6)      RESTORE REG 14 AND 15                    00109600
         WAIT  1,ECB=TMECB     WAIT FOR I/O                             00109700
         LM    13,15,0(6)      RESTORE MACRO REGISTERS                  00109800
         BAL   8,TPTEST                                                 00109900
       LA      12,1(2)                                                  00110000
       B       NXTOP                                                    00110100
.NOTWT   ANOP                                                                   
         AIF   ('&TAPE' EQ 'Y').WTOK                                            
RTW      B     ILEGOP                                                           
WTW      B     ILEGOP                                                           
.WTOK    ANOP                                                                   
       TITLE   'MOVE CHARACTERS AND EDIT'                               00110200
       USING   MCE,13                                                   00110300
MCE    CH      9,=H'7'           Q/ IS LENGTH CORRECT                   00110400
       BNE     ILEGLN            NO                                     00110500
       LA      6,1(10)           YES, CONVERT ADDRESSES                 00110600
       BAL     8,CVAD43          *                                      00110700
       LR      11,5              *                                      00110800
       LA      6,4(10)           *                                      00110900
       BAL     8,CVAD43          *                                      00111000
       LR      12,5              *                                      00111100
       LA      0,1                                                      00111200
       MVI     AEND,0            CLEAR A-FIELD END INDICATOR            00111300
       MVI     BODY,0            CLEAR BODY TRIGGER                     00111400
       MVI     SUPRES,0          CLEAR ZERO SUPPRESSION INDICATOR       00111500
         MVI   FLOAT,0        CLEAR FLOATING DOLLAR SIGN INDICATOR      00111600
         MVI   SIGDIG,0       CLEAR SIGNIFICANT DIGIT IND               00111700
         MVI   ASTER,0        CLEAR ASTERISK PROTECTION IND             00111800
         MVI   AMINUS,0       CLEAR A-FIELD MINUS INDICATOR             00111900
         MVI   DECIMAL,0       DECIMAL POINT INDICATOR                  00112000
         MVI   FIRSTDOL,0          CLEAR $  INFIRST CHAR INDICATOR      00112100
         MVI   SIGNDOL,0           CLEAR DOLLAR SIGN INDICATOR          00112200
         IC    2,0(11)        Q/ A-FIELD MINUS                          00112300
         N     2,=F'48'                                                 00112400
         CH    2,=H'32'                                                 00112500
         BNE   MCE1           NO                                        00112600
         MVI   AMINUS,1       YES,SET A-FIELD MINUS INDICATOR           00112700
MCE1   IC      1,0(12)           SAVE B-FIELD CHARACTER                 00112800
       STC     1,TEMP1           *                                      00112900
       NI      0(12),X'3F'       CLEAR WORD MARK                        00113000
         CLI   0(12),X'3B'     Q/ DECIMAL POINT                         00113100
         BNE   MCE1A           NO                                       00113200
         MVI   DECIMAL,1       YES,SET DECIMAL INDICATOR                00113300
           ST  12,DECADD       STORE ADDRESS OF DECIMAL POINT           00113400
MCE1A    CLI   0(12),X'00'     Q/ BLANK                                 00113500
       BE      MCE6              YES                                    00113600
       CLI     0(12),X'0A'       Q/ ZERO                                00113700
       BE      MCE6              YES                                    00113800
       CLI     0(12),X'30'       Q/ AMPERSAND                           00113900
       BE      MCE3              YES                                    00114000
       CLI     BODY,1            Q/ BODY TRIGGER ON                     00114100
       BE      MCE3A             YES                                    00114200
       CLI     0(12),X'1B'       Q/ COMMA                               00114300
       BE      MCE3              YES                                    00114400
       CLI     0(12),X'33'       Q/ C                                   00114500
       BE      MCE2              YES                                    00114600
       CLI     0(12),X'29'       Q/ R                                   00114700
       BE      MCE2              YES                                    00114800
       CLI     0(12),X'20'       Q/ -                                   00114900
       BNE     MCE3A             NO                                     00115000
MCE2     CLI   AMINUS,1       Q/ A-FIELD MINUS                          00115100
       BE      MCE3A             YES                                    00115200
MCE3   MVI     0(12),X'00'       MOVE BLANK TO B-FIELD                  00115300
         SR    12,0            DECREMENT B-FIELD                        00115400
         B     MCE5                                                     00115500
MCE3A    CLI   0(12),X'2C'     Q/ *                                     00115600
         BNE   MCE3B           NO                                       00115700
         CLI   BODY,1          Q/ BODY TRIGGER ON                       00115800
         BNE   MCE3B           NO                                       00115900
         MVI   ASTER,1         SET ASTERISK PRORECTION INDICATOR        00116000
         B     MCE6                                                     00116100
MCE3B    CLI   0(12),X'2B'     Q/ DOLLAR SIGN                           00116200
         BNE   MCE5C           NO                                       14021910
         MVI   SIGNDOL,1           SET DOLLAR SIGN INDICATOR            14022020
         ST    12,DOLSIGN          STORE ADDRESS OF DOLLAR SIGN         00117500
         TM    1(12),X'40'         Q/ FLOATING DOLLAR SIGN              00117600
         BZ    MCE5A                                                    00117700
         MVI   FLOAT,1                                                  00117800
         MVC   0(1,12),0(11)                                            00117900
         B     MCE4A                                                    00118000
MCE6   CLI     AEND,1            Q/ HAS A-FIELD ALREADY ENDED           00118100
       BE      MCE3              YES                                    00118200
       MVC     0(1,12),0(11)     MOVE CHARACTER                         00118300
       NI      0(12),X'3F'       *                                      00118400
         CLI   0(12),X'00'         BLANK                                00118500
         BE    MCE6A               YES                                  00118600
         CLI   0(12),X'09'         DIGIT                                00118700
         BH    MCE6A               NO                                   00118800
         MVI   SIGDIG,1            YES SET SIG DIGIT INDICATOR          00118900
MCE6A    CLI   BODY,1              Q/ BODY TRIGGER ON                   00119000
       CLI     BODY,1            Q/ IS BODY TRIGGER ON                  00119100
       BE      MCE7              YES                                    00119200
       MVI     BODY,1            NO                                     00119300
         ST    12,LASTDIG     STORE ADDRESS OF LOW ORDER DIGIT          00119400
       NI      0(12),X'0F'       REMOVE ZONE                            00119500
MCE7   TM      TEMP1,X'0A'       Q/ IS DIGIT ZERO                       00119600
         BC    12,MCE4A        NO                                       00119700
       TM      TEMP1,X'35'                                              00119800
         BC    5,MCE4A         NO                                       00119900
       OI      0(12),X'40'       YES, SET ZERO SUPPRESSION WORD MARK    00120000
         ST    12,ZEROSUP      STORE ZERO SUPPRESSION ADDRESS           00120100
       MVI     SUPRES,1          SET ZERO SUPPRESSION INDICATOR         00120200
         B     MCE4A              INDICATOR                             00120300
         SPACE                                                                  
MCE5C    SR    12,0            DECREMENT B-FIELD                                
         B     MCE5                                                             
MCE4A  SR      11,0                                                             
MCE5A    SR    12,0                                                             
       TM      1(11),X'40'       Q/ END OF A-FIELD                              
       BZ      MCE5              NO                                             
       MVI     AEND,1            YES, SET A-FIELD ENDED INDICATOR               
MCE5   TM      TEMP1,X'40'       Q/ END OF B-FIELD                              
       BZ      MCE1              NO                                             
*  E N D    O F    1 S T    F O R W A R D    S C A N                            
         SPACE                                                                  
         CLI   SUPRES,1       Q/ WAS THERE ZERO SUPPRESSION             14022320
       BNE     NXTOP             NO, GET NEXT INSTRUCTION               00120500
         MVI   FIRST,1        SET FIRST CHARACTER OF SCAN INDICATOR     00120600
       LA      12,1(12)                                                 00120700
         CLI   0(12),X'2B'         DOLLAR SIGN                          00120800
         BNE   MCE8A                                                    00120900
         MVI   FIRSTDOL,1          YES                                  00121000
MCE8A    MVC   TEMP1(1),0(12)      SAVE CHARACTER                       00121100
       NI      0(12),X'3F'       CLEAR WORD MARK                        00121200
       CLI     0(12),X'00'       Q/ BLANK                               00121300
       BE      MCE9              YES                                    00121400
       CLI     0(12),X'0A'       Q/ ZERO                                00121500
       BE      MCE11             YES                                    00121600
       CLI     0(12),X'09'       Q/ SIGNIFICANT DIGIT                   00121700
       BH      MCE9              NO                                     00121800
       MVI     SUPRES,0          TURN OFF ZERO SUPPRESSION              00121900
         MVI   SIGDIG,1        SET SIGNIFICANT DIGIT INDICATOR          00122000
       B       MCE10                                                    00122100
MCE9   CLI     0(12),X'1B'       Q/ COMMA                               00122200
       BE      MCE11             YES                                    00122300
         CLI   0(12),X'20'     Q/ -                                     00122400
         BNE   MCE10C          NO                                       14022530
         CLI   FIRST,1         Q/ FIRST CHARACTER IN STRING             14022535
         BNE   MCE10           NO                                       14022540
         CLI   AMINUS,1        Q/ A-FIELD MINUS                         14022550
         BE    MCE10                                                    14022560
         MVI   0(12),X'00'     NO,BLANK MINUS SIGN                      14022565
         B     MCE10                                                    14022570
         SPACE                                                          14022575
MCE10C   CLC   0(2,12),=X'3329'  Q/ CR SYMBOL                           14022580
         BNE   MCE10           NO                                       14022585
         CLI   SUPRES,1       Q/ ZERO SUPPRESSION ON                    14022590
         BNE   MCE10          NO                                        14022595
         CLI   FIRST,1        Q/ 1ST CHARACTER IN STRING                14022600
         BE    MCE14          YES                                       14022605
         MVC   0(2,12),=C'  ' NO,BLANK CR                               14022610
         B     MCE10                                                    14022615
MCE14    CLI   AMINUS,1       Q/ A-FIELD MINUS                          14022620
         BE    MCE10A         YES                                       14022625
         MVC   0(2,12),=C'  ' NO,BLANK CR                               14022630
         B     MCE10                                                    14022640
MCE10A   LA    12,1(12)                                                 14022644
         B     MCE10                                                    14022645
         SPACE                                                          14022650
MCE11  CLI     SUPRES,1          Q/ ZERO SUPPRESSION ON                 00124100
       BNE     MCE10             NO                                     00124200
       MVI     0(12),X'00'       YES, BLANK CHARACTER                   00124300
         CLI   FIRST,1        Q/ FIRST CHARACTER IN STRING              00124400
         BE    MCE12          YES                                       00124500
         CLI   ASTER,1        Q/ ASTERISK PROTECTION ON                 00124600
         BNE   MCE10          NO                                        00124700
         MVI   0(12),X'2C'    YES, INSERT ASTERISK                      00124800
       B       MCE10                                                    00124900
MCE12    CLI   AMINUS,1       Q/ A-FIELD MINUS                          00125000
         BE    MCE10          YES                                       00125100
         MVI   0(12),X'00'     NO,BLANK CHARACTER                       00125200
         SPACE                                                          14022810
MCE10  LA      12,1(12)                                                 14022880
         MVI   FIRST,0        TURN OFF FIRST TIME INDICATOR             14022890
         TM    TEMP1,X'40'     Q/ W/RD MARK                             14022900
         BNO   MCE8A             NO, PROCESS NEXT DIGIT                 14022910
*  E N D    O F    R E V E R S E    S C A N                             14022920
         SPACE                                                          14022930
FLDOL    CLI   FLOAT,1        Q/ FLOATING DOLLAR SIGN                   00126600
         BNE   DECON          NO, GO TO DECIMAL CONTR                   00126700
DOLLAR   CLI   0(12),X'00'    Q/ BLANK                                  00126800
         BNE   MOVDOL          NO,GO TO NEXT POSITION IN B-FIELD        00126900
         MVI   0(12),X'2B'    MOVE DOLLAR SIGN INTO B-FIELD             00127000
         B     DECON                                                    00127100
MOVDOL   SR    12,0           DECREMENT B-FIELD                         00127200
         B     DOLLAR                                                   00127300
DECON    CLI   DECIMAL,1       IS DECIMAL CONTROL NEEDED                00127400
         BNE   NXTOP           NO                                       00127500
         CLI   SIGDIG,1        Q/ SIGNIFICANT DIGIT                     00127600
         BE    NXTOP              YES                                   14023050
         L     5,LASTDIG                                                14023120
         CLC   DECADD,ZEROSUP                                           00128500
         BH    MCE16A                                                   00128600
         L     4,DECADD                                                 00128700
         B     MCE16B                                                   00128800
MCE16A   L     4,ZEROSUP                                                00128900
MCE16B   SR    5,4                                                      00129000
         AH    5,=H'1'                                                  00129100
MCE16D   MVC   0(1,4),=X'00'                                            00129200
         AR    4,0                                                      00129300
         BCT   5,MCE16D                                                 00129400
         TM    1(12),X'40'         Q/ FLOATING DOLLAR SIGN              00129500
         CLI   SIGNDOL,1           Q/  DOLLAR SIGN                      00129600
         BNE   NXTOP               NO                                   00129700
         CLI   FIRSTDOL,1          Q/ DOLLAR SIGN OK                    00129800
         BE    NXTOP                                                    00129900
         L     3,DOLSIGN           NO                                   00130000
         MVI   0(3),X'00'          BLANK DOLLAR SIGN                    00130100
         B     NXTOP                                                    00130200
ZEROSUP  DS    F               ZERO SUPPRESSION ADDRESS                 00130300
DECADD   DS    F               DECIMAL POINT ADDRESS                    00130400
DECIMAL  DC    X'00'           DECIMAL INDICATOR                        00130500
FLOAT    DC    X'00'          FLOATING DOLLAR SIGN INDICATOR            00130600
FIRST    DC    X'00'          FIRST CHARACTER OF SCAN INDICATOR         00130700
AMINUS   DC    X'00'          A-FIELD MINUS INDICATOR                   00130800
BODY     DC    X'00'           BODY TRIGGER                             00130900
ASTER    DC    X'00'          ASTERISK PROTECTION INDICATOR             00131000
SIGDIG   DC    X'00'           SIGNIFICANT DIGIT INDICATOR              00131100
FIRSTDOL DC    X'00'                                                    00131200
DOLSIGN  DS    F                                                        00131300
LASTDIG  DS    F              ADDRESS OF LOW ORDER DIGIT                00131400
SIGNDOL  DC    X'00'                                                    00131500
       TITLE  'READ A CARD'                                             00131600
       USING   R,13                                                     00131700
R      CH      9,=H'1'                                                  00131800
       BE      RL1                                                      00131900
       CH      9,=H'4'                                                  00132000
       BE      RL4                                                      00132100
       B       ILEGLN                                                   00132200
RL1    BAL     8,READ                                                   00132300
       B       NXTOP                                                    00132400
RL4    MVC     ADR140(3),1(10)                                          00132500
       BAL     8,READ                                                   00132600
       LA      6,ADR140          GET BRANCH ADDRESS                     00132700
       B       SETBCH            SET CONDITIONS FOR BRANCH              00132800
       TITLE  'PUNCH A CARD'                                            00132900
       USING   P,13                                                     00133000
P      CH      9,=H'1'                                                  00133100
       BE      PL1                                                      00133200
       CH      9,=H'4'                                                  00133300
       BNE     ILEGLN                                                   00133400
       BAL     8,PUNCH                                                  00133500
       LA      6,1(10)           REFERENCE BRANCH ADDRESS               00133600
       B       SETBCH            SET CONDITIONS FOR BRANCH              00133700
PL1    BAL     8,PUNCH                                                  00133800
       B       NXTOP                                                    00133900
       TITLE  'READ AND PUNCH'                                          00134000
       USING   RP,13                                                    00134100
RP     CH      9,=H'1'                                                  00134200
       BE      RPL1                                                     00134300
       CH      9,=H'4'                                                  00134400
       BNE     ILEGLN                                                   00134500
       MVC     ADR140(3),1(10)   SAVE BRANCH ADDRESS                    00134600
       BAL     8,READ                                                   00134700
       BAL     8,PUNCH                                                  00134800
       LA      6,ADR140          REFERENCE BRANCH ADDRESS               00134900
       B       SETBCH            SET CONDITIONS FOR BRANCH              00135000
RPL1   BAL     8,READ                                                   00135100
       BAL     8,PUNCH                                                  00135200
       B       NXTOP                                                    00135300
       TITLE  'PRINT A LINE'                                            00135400
       USING   W,13                                                     00135500
W      CH      9,=H'1'                                                  00135600
       BE      WL1                                                      00135700
       CH      9,=H'2'                                                  00135800
       BE      WM                                                       00135900
       CH      9,=H'5'                                                  00136000
       BE      WM                                                       00136100
       CH      9,=H'4'                                                  00136200
       BNE     ILEGLN                                                   00136300
WL4    BAL     8,WRITE                                                  00136400
       LA      6,1(10)           REFERENCE BRANCH ADDRESS               00136500
       B       SETBCH            SET CONDITIONS FOR BRANCH              00136600
WL1    BAL     8,WRITE                                                  00136700
       B       NXTOP                                                    00136800
WM     MVC     DCHAR(1),1(10)                                           00136900
       CH      9,=H'2'                                                  00137000
       BE      WML2                                                     00137100
       MVC     DCHAR(1),4(10)                                           00137200
WML2     CLI   DCHAR,X'3C'         Q. PRINT WM                          00137500
       BE      WML20A                                                   00137600
       CLI     DCHAR,X'12'         Q. SPACE SUPPRESS                    00137700
       BNE     ILEGOP                                                   00137800
         MVI   PRNTBUFF,X'01'                                                   
       CH      9,=H'5'                                                  00137900
       BE      WL4                                                      00138000
       B       WL1                                                      00138100
WML20A   MVC   PRNTBUFF+1(132),SIMCOR+201    MOVE WORD MARKS TO PRINT   00138200
         TR    PRNTBUFF+1(132),TRWDMK        *                          00138300
         BAL   8,WRITEC                                                    14770
       CH      9,=H'2'                                                  00139100
       BE      NXTOP                                                    00139200
       LA      6,1(10)                                                  00139300
       B       SETBCH            SET CONDITIONS FOR BRANCH              00139400
       TITLE  'READ AND PRINT'                                          00139500
       USING   WR,13                                                    00139600
WR     CH      9,=H'1'                                                  00139700
       BE      WRL1                                                     00139800
       CH      9,=H'4'                                                  00139900
       BNE     ILEGLN                                                   00140000
       MVC     ADR140(3),1(10)   SAVE BRANCH ADDRESS                    00140100
       BAL     8,WRITE                                                  00140200
       BAL     8,READ                                                   00140300
       LA      6,ADR140          REFERENCE BRANCH ADDRESS               00140400
       B       SETBCH            SET CONDITIONS FOR BRANCH              00140500
WRL1   BAL     8,WRITE                                                  00140600
       BAL     8,READ                                                   00140700
       B       NXTOP                                                    00140800
       TITLE  'PRINT AND PUNCH'                                         00140900
       USING   WP,13                                                    00141000
WP     CH      9,=H'1'                                                  00141100
       BE      WPL1                                                     00141200
       CH      9,=H'4'                                                  00141300
       BNE     ILEGLN                                                   00141400
       BAL     8,WRITE                                                  00141500
       BAL     8,PUNCH                                                  00141600
       LA      6,1(10)           REFERENCE BRANCH ADDRESS               00141700
       B       SETBCH            SET CONDITIONS FOR BRANCH              00141800
WPL1   BAL     8,WRITE                                                  00141900
       BAL     8,PUNCH                                                  00142000
       B       NXTOP                                                    00142100
       TITLE  'WRITE,READ, AND PUNCH'                                   00142200
       USING   WRP,13                                                   00142300
WRP    CH      9,=H'1'                                                  00142400
       BE      WRPL1                                                    00142500
       CH      9,=H'4'                                                  00142600
       BNE     ILEGLN                                                   00142700
       MVC     ADR140(3),1(10)   SAVE BRANCH ADDRESS                    00142800
       BAL     8,WRITE                                                  00142900
       BAL     8,READ                                                   00143000
       BAL     8,PUNCH                                                  00143100
       LA      6,ADR140          REFERENCE BRANCH ADDRESS               00143200
       B       SETBCH            SET CONDITIONS FOR BRANCH              00143300
WRPL1  BAL     8,WRITE                                                  00143400
       BAL     8,READ                                                   00143500
       BAL     8,PUNCH                                                  00143600
       B       NXTOP                                                    00143700
       TITLE  'SELECT STACKER'                                          00143800
       USING   SS,13                                                    00143900
SS     CH      9,=H'2'                                                  00144000
       BE      NXTOP                                                    00144100
       CH      9,=H'5'                                                  00144200
       BNE     ILEGLN                                                   00144300
       LA      6,1(10)                                                  00144400
         B     SETBCH                                                   00144500
       TITLE  'CONTROL CARRIAGE'                                        00144600
       USING   CC,13                                                    00144700
CC     MVC     DCHAR(1),1(10)                                           00144800
       CH      9,=H'2'                                                  00144900
       BE      CCL2                                                     00145000
       CH      9,=H'5'                                                  00145100
       BNE     ILEGLN                                                   00145200
       MVC     DCHAR(1),4(10)                                           00145300
CCL2   TM      DCHAR,X'30'                                              00145400
       BZ      CCIMSK                                                   00145500
       BO      CCAFSK                                                   00145600
       TM      DCHAR,X'20'                                              00145700
       BO      CCIMSP                                                   00145800
       IC      3,DCHAR                                                  00145900
       N       3,=F'3'                                                  00146000
       SLL     3,3                                                      00146100
       O       3,=F'1'                                                  00146200
         STC   3,PRNTBUFF                                               00146300
       B       CCDONE                                                   00146400
CCIMSP IC      3,DCHAR                                                  00146500
       N       3,=F'3'                                                  00146600
       SLL     3,3                                                      00146700
         STC   3,PRNTBUFF                                               00146800
         OI    PRNTBUFF,X'03'                                           00146900
       B       CCNOW                                                    00147000
CCAFSK IC      3,DCHAR                                                  00147100
       N       3,=F'15'                                                 00147200
       TM      DCHAR,X'0F'                                              00147300
       BM      CC1                                                      00147400
       LA      3,10                                                     00147500
CC1    SLL     3,3                                                      00147600
         STC   3,PRNTBUFF                                               00147700
         OI    PRNTBUFF,X'81'                                           00147800
       B       CCDONE                                                   00147900
CCIMSK IC      3,DCHAR                                                  00148000
       TM      DCHAR,X'0F'                                              00148100
       BM      CC2                                                      00148200
       LA      3,10                                                     00148300
CC2    N       3,=F'15'                                                 00148400
       SLL     3,3                                                      00148500
       O       3,=F'131'                                                00148600
         STC   3,PRNTBUFF                                               00148700
CCNOW    BAL   8,WRITEC                                                    15810
CCDONE CH      9,=H'2'                                                  00149500
       BE      NXTOP                                                    00149600
       LA      6,1(10)                                                  00149700
         B     SETBCH                                                   00149800
       TITLE   'MULTIPLY'                                               00154500
       USING   M,13                                                     00154600
M      CH      9,=H'7'                                                  00154700
       BNE     ILEGLN                                                   00154800
       LA      6,1(10)                                                  00154900
       BAL     8,CVAD43                                                 00155000
       LR      11,5                                                     00155100
       LA      6,4(10)                                                  00155200
       BAL     8,CVAD43                                                 00155300
       LR      12,5                                                     00155400
       ST      12,MPYSAV         SAVE UNITS ADDRESS OF PRODUCT          00155500
       LR      5,11              INTIALIZE PRODUCT AREA                 00155600
       LR      6,12              *                                      00155700
M1     MVI     0(6),X'0A'        *                                      00155800
       TM      0(5),X'40'        *                                      00155900
       BO      M2                *                                      00156000
       SH      5,=H'1'           *                                      00156100
       SH      6,=H'1'           *                                      00156200
       B       M1                *                                      00156300
M2     SH      6,=H'2'           *                                      00156400
       MVI     1(6),X'0A'        *                                      00156500
       LA      1,0               COMPARE SIGNS                          00156600
       LA      2,0               *                                      00156700
       TM      0(6),X'20'        *                                      00156800
       BZ      M3                *                                      00156900
       TM      0(6),X'10'        *                                      00157000
       BO      M3                *                                      00157100
       LA      1,1               *                                      00157200
M3     TM      0(11),X'20'       *                                      00157300
       BZ      M4                *                                      00157400
       TM      0(11),X'10'       *                                      00157500
       BO      M4                *                                      00157600
       LA      2,1               *                                      00157700
M4     MVI     MINPRD,0                                                 00157800
       CR      1,2                                                      00157900
       BE      M5                SIGNS EQUAL                            00158000
       MVI     MINPRD,1          SIGNS UNEQUAL                          00158100
M5     IC      1,0(6)                                                   00158200
       N       1,=F'15'                                                 00158300
       CH      1,=H'10'          Q/ ZERO                                00158400
       BNE     *+6               NO                                     00158500
       SR      1,1               YES, CLEAR                             00158600
M6     LA      0,0                                                      00158700
       LTR     1,1               Q/ IS MULTIPLICAND DIGIT ZERO          00158800
       BZ      M9                                                       00158900
       LR      5,12              SET REGISTERS FOR ADD                  00159000
       LR      4,11                                                     00159100
       LR      8,12              LOAD PRODUCT POINTER                   00159200
M7     IC      2,0(4)                                                   00159300
       N       2,=F'15'                                                 00159400
       CH      2,=H'10'          Q/ ZERO                                00159500
       BNE     *+6               NO                                     00159600
       SR      2,2               YES, CLEAR                             00159700
       IC      3,0(5)                                                   00159800
       N       3,=F'15'                                                 00159900
       CH      3,=H'10'          Q/ ZERO                                00160000
       BNE     *+6               NO                                     00160100
       SR      3,3               YES, CLEAR IT                          00160200
       AR      3,2                                                      00160300
       AR      3,0                                                      00160400
       LA      0,0                                                      00160500
       CH      3,=H'9'                                                  00160600
       BNH     M8                                                       00160700
       SH      3,=H'10'                                                 00160800
       LA      0,1                                                      00160900
M8     STC     3,0(8)            STORE RESULT                           00161000
       CLI     0(8),X'00'        Q/ RESULT ZERO                         00161100
       BNE     *+8               NO                                     00161200
       MVI     0(8),X'0A'        YES, SET 8-2 BITS                      00161300
       SH      4,=H'1'                                                  00161400
       SH      5,=H'1'                                                  00161500
       SH      8,=H'1'                                                  00161600
       TM      1(4),X'40'                                               00161700
       BZ      M7                                                       00161800
       IC      3,0(5)            ADD CARRY TO NEXT PRODUCT DIGIT        00161900
       CH      3,=H'10'          Q/ ZERO                                00162000
       BNE     *+6               NO                                     00162100
       SR      3,3               YES, CLEAR                             00162200
       AR      3,0                                                      00162300
       STC     3,0(8)            *                                      00162400
       CLI     0(8),X'00'        Q/ RESULT ZERO                         00162500
       BNE     *+8               NO                                     00162600
       MVI     0(8),X'0A'        YES, SET 8-2 BITS                      00162700
       SH      1,=H'1'                                                  00162800
       BC      6,M6              COUNT NOT ZERO, ADD NEXT DIGIT         00162900
M9     SH      6,=H'1'                                                  00163000
       NI      1(6),X'40'        CLEAR LAST USED MULTIPLICAND DIGIT     00163100
       OI      1(6),X'0A'        *                                      00163200
       TM      1(6),X'40'                                               00163300
       BO      M10                                                      00163400
       SH      12,=H'1'                                                 00163500
       B       M5                                                       00163600
M10    LR      11,4                                                     00163700
       L       12,MPYSAV         RELOAD UNITS ADDRESS OF PRODUCT        00163800
       OI      0(12),X'20'                                              00163900
       CLI     MINPRD,1                                                 00164000
       BE      M11                                                      00164100
       OI      0(12),X'30'                                              00164200
M11    LR      12,6                                                     00164300
       B       NXTOP                                                    00164400
MINPRD DS      C                                                        00164500
MPYSAV DS      F                                                        00164600
       TITLE   'DIVIDE'                                                 00164700
       USING   D,13                                                     00164800
D      CH      9,=H'7'           Q/ IS LENGTH ( BYTES                   00164900
       BNE     ILEGLN            NO                                     00165000
       LA      6,1(10)           YES, CONVERT ADDRESSES                 00165100
       BAL     8,CVAD43          *                                      00165200
       LR      11,5              *                                      00165300
       LA      6,4(10)           *                                      00165400
       BAL     8,CVAD43          *                                      00165500
       LR      12,5              *                                      00165600
       LA      0,1               SET REG TO 1 FOR + OR - 1              00165700
       LR      1,11              SCAN DIVISOR FOR LENGTH AND IS IT ZERO 00165800
       MVI     TEMP1,0           *                                      00165900
         MVI   TEMP2,0           *                                      00166000
D1       MVN   TEMP2,0(1)        *                                      00166100
         CLI   TEMP2,X'0A'       *                                      00166200
         BE    D1A               *                                      00166300
         CLI   TEMP2,X'00'       *                                      00166400
       BE      D1A               *                                      00166500
       MVI     TEMP1,1           *                                      00166600
D1A    SR      1,0               *                                      00166700
       TM      1(1),X'40'        *                                      00166800
       BZ      D1                *                                      00166900
       CLI     TEMP1,0           Q/ IS DIVISOR ZERO                     00167000
       BNE     D2                NO, OK                                 00167100
       MVI     OVRFLO,1          YES, SET OVERFLOW INDICATOR            00167200
       B       NXTOP                                                    00167300
D2     LR      6,12              FIND HIGH ORDER QUOTIENT LOCATION      00167400
       AR      6,1               *                                      00167500
       SR      6,11              *                                      00167600
       SR      6,0               *                                      00167700
D3     MVI     TEMP1,0           PREPARE TO COMPARE DIVISOR + DVDND     00167800
       LR      1,11                                                     00167900
       LR      2,12                                                     00168000
D4     IC      3,0(1)            GET DIGITS                             00168100
       IC      4,0(2)            *                                      00168200
       N       3,=F'15'          *                                      00168300
       N       4,=F'15'          *                                      00168400
       CH      3,=H'10'          Q/ ZERO                                00168500
       BNE     *+6               NO                                     00168600
       SR      3,3               YES, CLEAR IT                          00168700
       CH      4,=H'10'          Q/ ZERO                                00168800
       BNE     *+6               NO                                     00168900
       SR      4,4               YES, CLEAR                             00169000
       CR      3,4               COMPARE                                00169100
       BE      D5                EQUAL, DO NOT CHANGE INDICATOR         00169200
       BH      D4A               A-DIGIT GREATER                        00169300
       MVI     TEMP1,0           A-DIGIT LESS                           00169400
       B       D5                *                                      00169500
D4A    MVI     TEMP1,1           SET A GREATER THAN B                   00169600
D5     SR      1,0               DECREMENT FIELD POINTERS               00169700
       SR      2,0               *                                      00169800
       TM      1(1),X'40'        Q/ END OF A-FIELD                      00169900
       BZ      D4                NO                                     00170000
       TM      0(2),X'0A'        TEST 1 MORE DIVIDEND DIGIT             00170100
       BO      D6                ZERO                                   00170200
       TM      0(2),X'0F'        Q/ BLANK                               00170300
       BZ      D6                YES, TREAT SAME AS ZERO                00170400
       MVI     TEMP1,0           1, DIVIDEND GREATER THAN DIVISOR       00170500
D6     CLI     TEMP1,1           Q/ IS DIVISOR TOO LARGE                00170600
       BE      D10               YES                                    00170700
       LR      1,11              SET REGISTERS FOR COMPLEMENT ADD       00170800
       LR      2,12              *                                      00170900
       LA      8,1               SET CARRY                              00171000
D7     IC      5,0(2)            GET B-FIELD DIGIT                      00171100
       N       5,=F'15'          *                                      00171200
       CH      5,=H'10'          Q/ ZERO                                00171300
       BNE     *+6               NO                                     00171400
       SR      5,5               YES, CLEAR                             00171500
       LA      4,9               GET COMPLEMENT OF A-FIELD DIGIT        00171600
       IC      3,0(1)            *                                      00171700
       N       3,=F'15'          *                                      00171800
       CH      3,=H'10'          Q/ ZERO                                00171900
       BNE     *+6               NO                                     00172000
       SR      3,3               YES, CLEAR IT                          00172100
       SR      4,3               *                                      00172200
       AR      5,4               ADD TO B-FIELD DIGIT                   00172300
       AR      5,8               ADD CARRY                              00172400
       LA      8,0               CLEAR CARRY                            00172500
       CH      5,=H'9'           Q/ RESULT GREATER THAN 9               00172600
       BNH     D8                NO                                     00172700
       SH      5,=H'10'          YES, SUBTRACT 10 FROM RESULT           00172800
       LA      8,1               SET CARRY                              00172900
D8     STC     5,D9+1            STORE RESULT                           00173000
       NI      0(2),X'F0'        *                                      00173100
       CLI     D9+1,X'00'        Q/ RESULT ZERO                         00173200
       BNE     D9                NO                                     00173300
       OI      D9+1,X'0A'        YES, SET 8-2 BITS                      00173400
D9     OI      0(2),0            *                                      00173500
       SR      2,0               DECREMENT A- AND B-ADDRESSES           00173600
       SR      1,0               *                                      00173700
       TM      1(1),X'40'        Q/ END OF A-FIELD                      00173800
       BZ      D7                NO, PROCESS NEXT DIGIT                 00173900
       IC      3,0(2)            YES, ADD 1 MORE DIVIDEND DIGIT         00174000
       N       3,=F'15'          *                                      00174100
       CH      3,=H'10'          Q/ ZERO                                00174200
       BNE     *+6               NO                                     00174300
       SR      3,3               YES, CLEAR IT                          00174400
       LA      3,9(3)            *                                      00174500
       AR      3,8               *                                      00174600
       CH      3,=H'9'           Q/ RESULT GREATER THAN 9               00174700
       BNH     D9A               NO                                     00174800
       SH      3,=H'10'          YES, SUBTRACT 10                       00174900
D9A    STC     3,0(2)            STORE RESULT                           00175000
       CLI     0(2),X'00'        Q/ RESULT ZERO                         00175100
       BNE     *+8               NO                                     00175200
       MVI     0(2),X'0A'        YES, SET 8-2 BITS                      00175300
       IC      3,0(6)            ADD 1 TO QUOTIENT DIGIT                00175400
       N       3,=F'15'          *                                      00175500
       CH      3,=H'10'          Q/ ZERO                                00175600
       BNE     *+6               NO                                     00175700
       SR      3,3               YES, CLEAR IT                          00175800
       AR      3,0               *                                      00175900
       STC     3,TEMP1           STORE RESULT                           00176000
       MVN     0(1,6),TEMP1      *                                      00176100
       B       D3                                                       00176200
D10    TM      0(12),X'30'       Q/ ZONE BITS                           00176300
       BC      5,D11             YES, DIVIDE DONE                       00176400
       AR      6,0               NO, UP REFERENCE TO NEXT DIGIT         00176500
       AR      12,0              *                                      00176600
       B       D3                                                       00176700
D11    IC      2,0(11)           COMPARE DIVISOR AND DIVIDEND SIGNS     00176800
       IC      3,0(12)           *                                      00176900
       N       2,=F'48'          *                                      00177000
       N       3,=F'48'          *                                      00177100
       SRDL    2,4               *                                      00177200
       LA      4,SINTBL          *                                      00177300
       IC      2,0(4,2)          *                                      00177400
       IC        3,0(4,3)          *                                    00177500
       OI      0(6),X'30'        SET QUOTIENT PLUS                      00177600
       CR      2,3               Q/ ARE SIGNS EQUAL                     00177700
       BE      D12               YES, LEAVE QUOTIENT PLUS               00177800
       NI      0(6),X'EF'        UNEQUAL, SET QUOTIENT MINUS            00177900
D12    LR      11,1              SET A- AND B-ADDRESSES                 00178000
       SR      11,0              *                                      00178100
       LR      12,6              *                                      00178200
       B       NXTOP                                                    00178300
SINTBL DC      X'00000100'                                              00178400
       TITLE  'MODIFY ADDRESS'                                          00178500
       USING   MA,13                                                    00178600
MA     CH      9,=H'7'                                                  00178700
       BE      MA1                                                      00178800
       CH      9,=H'1'                                                  00178900
       BE      MAL4                                                     00179000
       CH      9,=H'4'                                                  00179100
       BNE     ILEGLN                                                   00179200
MA1    LA      6,1(10)                                                  00179300
       BAL     8,CVAD43                                                 00179400
       LR      11,5                                                     00179500
       LR      12,11                                                    00179600
       CH      9,=H'4'                                                  00179700
       BE      MAL4                                                     00179800
       LA      6,4(10)                                                  00179900
       BAL     8,CVAD43                                                 00180000
       LR      12,5                                                     00180100
MAL4   SH      11,=H'3'                                                 00180200
       SH      12,=H'3'                                                 00180300
       LA      0,15              UNITS                                  00180400
       LA      1,0               *                                      00180500
       IC      2,3(11)           *                                      00180600
       IC      3,3(12)           *                                      00180700
       NR      2,0               *                                      00180800
       NR      3,0               *                                      00180900
       CH      2,=H'10'                                                 00181000
       BNE     *+6                                                      00181100
       SR      2,2                                                      00181200
       CH      3,=H'10'                                                 00181300
       BNE     *+6                                                      00181400
       SR      3,3                                                      00181500
       AR      3,2               *                                      00181600
       CH      3,=H'9'           *                                      00181700
       BNH     MAL4A             *                                      00181800
       SH      3,=H'10'          *                                      00181900
       LA      1,1               *                                      00182000
MAL4A  STC     3,MAL4B+1         *                                      00182100
       NI      3(12),X'70'       *                                      00182200
       TM      MAL4B+1,X'0F'                                            00182300
       BC      5,MAL4B                                                  00182400
       OI      MAL4B+1,X'0A'                                            00182500
MAL4B  OI      3(12),0           *                                      00182600
       IC      2,2(11)           TENS                                   00182700
       IC      3,2(12)           *                                      00182800
       NR      2,0               *                                      00182900
       NR      3,0               $                                      00183000
       CH      2,=H'10'                                                 00183100
       BNE     *+6                                                      00183200
       SR      2,2                                                      00183300
       CH      3,=H'10'                                                 00183400
       BNE     *+6                                                      00183500
       SR      3,3                                                      00183600
       AR      3,2               *                                      00183700
       AR      3,1               *                                      00183800
       LA      1,0               *                                      00183900
       CH      3,=H'9'           *                                      00184000
       BNH     MAL4C             *                                      00184100
       SH      3,=H'10'          *                                      00184200
       LA      1,1               *                                      00184300
MAL4C  STC     3,MAL4D+1         *                                      00184400
         NI    2(12),X'70'       SAVE B FLD INDEX AND WORD MARK BITS    00184500
       TM      MAL4D+1,X'0F'                                            00184600
       BC      5,MAL4D                                                  00184700
       OI      MAL4D+1,X'0A'                                            00184800
MAL4D  OI      2(12),0           *                                      00184900
       IC      2,1(11)           HUNDREDS                               00185000
       IC      3,1(12)           *                                      00185100
       NR      2,0               *                                      00185200
       NR      3,0               *                                      00185300
       CH      2,=H'10'                                                 00185400
       BNE     *+6                                                      00185500
       SR      2,2                                                      00185600
       CH      3,=H'10'                                                 00185700
       BNE     *+6                                                      00185800
       SR      3,3                                                      00185900
       AR      3,2               *                                      00186000
       AR      3,1               *                                      00186100
       LA      1,0               *                                      00186200
       CH      3,=H'9'           *                                      00186300
       BNH     MAL4E             *                                      00186400
       SH      3,=H'10'          *                                      00186500
       LA      1,16              *                                      00186600
MAL4E  STC     3,MAL4F+1         *                                      00186700
       NI      1(12),X'70'       *                                      00186800
       TM      MAL4F+1,X'0F'                                            00186900
       BC      5,MAL4F                                                  00187000
       OI      MAL4F+1,X'0A'                                            00187100
MAL4F  OI      1(12),0           *                                      00187200
       LA      0,48              THOUSANDS                              00187300
       IC      2,1(11)           *                                      00187400
       IC      3,1(12)           *                                      00187500
       NR      2,0               *                                      00187600
       NR      3,0               *                                      00187700
       AR      3,2               *                                      00187800
       AR      3,1               *                                      00187900
       LA      1,0               *                                      00188000
       CH      3,=H'48'          *                                      00188100
       BNH     MAL4G             *                                      00188200
       SH      3,=H'64'          *                                      00188300
       LA      1,16              *                                      00188400
MAL4G  STC     3,MAL4H+1         *                                      00188500
       NI      1(12),X'4F'       *                                      00188600
MAL4H  OI      1(12),0           *                                      00188700
       IC      2,3(11)           FOUR THOUSANDS                         00188800
       IC      3,3(12)           *                                      00188900
       NR      2,0               *                                      00189000
       NR      3,0               *                                      00189100
       AR      3,2               *                                      00189200
       AR      3,1               *                                      00189300
       CH      3,=H'48'          *                                      00189400
       BNH     MAL4I             *                                      00189500
       SH      3,=H'64'          *                                      00189600
MAL4I  STC     3,MAL4J+1         *                                      00189700
       NI      3(12),X'4F'       *                                      00189800
MAL4J  OI      3(12),0           *                                      00189900
       B       NXTOP                                                    00190000
       TITLE  'STORE A-ADDRESS REGISTER'                                00190100
       USING   SAR,13                                                   00190200
SAR    CH      9,=H'4'                                                  00190300
       BNE     ILEGLN                                                   00190400
       LR      12,11                                                    00190500
       LA      6,1(10)                                                  00190600
       BAL     8,CVAD43                                                 00190700
       LR      11,5                                                     00190800
       ST      12,ADR360                                                00190900
       BAL     8,CVAD34                                                 00191000
       SH      11,=H'3'                                                 00191100
       NC      1(3,11),=X'404040'                                       00191200
       OC      1(3,11),ADR140                                           00191300
       B       NXTOP                                                    00191400
       TITLE  'STORE B-ADDRESS REGISTER'                                00191500
       USING   SBR,13                                                   00191600
SBR    CH      9,=H'4'                                                  00191700
       BE      SBRL4                                                    00191800
         CH    9,=H'1'                                                  00191900
         BE    SBRL1                                                    00192000
       CH      9,=H'7'                                                  00192100
       BNE     ILEGLN                                                   00192200
       LA      6,4(10)                                                  00192300
       BAL     8,CVAD43                                                 00192400
       LR      12,5                                                     00192500
SBRL4  LA      6,1(10)                                                  00192600
       BAL     8,CVAD43                                                 00192700
       LR      11,5                                                     00192800
       ST      12,ADR360                                                00192900
       BAL     8,CVAD34                                                 00193000
SBRL1    SH    11,=H'3'                                                 00193100
       NC      1(3,11),=X'404040'                                       00193200
       OC      1(3,11),ADR140                                           00193300
       B       NXTOP                                                    00193400
       TITLE  'MOVE CHARACTERS TO RCD MARK OR GROUP MARK - WORD MARK'   00193500
       USING   MCM,13                                                   00193600
MCM    CH      9,=H'1'                                                  00193700
       BE      MCML1                                                    00193800
       CH      9,=H'7'                                                  00193900
       BNE     ILEGLN                                                   00194000
       LA      6,1(10)                                                  00194100
       BAL     8,CVAD43                                                 00194200
       LR      11,5                                                     00194300
       LA      6,4(10)                                                  00194400
       BAL     8,CVAD43                                                 00194500
       LR      12,5                                                     00194600
MCML1    NI    MCMSW+1,X'0F'                                            00194700
         LR    6,11                A-FIELD PTR                          00194800
MCMSCAN  TRT   0(256,6),TRTGMWRM   SCAN FOR GMWM - RM - RMWM            00194900
         BNZ   MCMHIT                                                   00195000
         LA    6,256(6)                                                 00195100
         B     MCMSCAN                                                  00195200
MCMHIT   SR    1,11                COMPUTE RECORD LENGTH                00195300
         LA    1,1(1)              BUMP FOR TERM CHAR                   00195400
         CH    1,=H'256'           TOTAL LENGTH GT 256                  00195500
         BNH   MCMDECR             NO                                   00195600
         OI    MCMSW+1,X'F0'       YES - SET SW FOR MULTIPLE MOVES      00195700
         LR    3,1                                                      00195800
MCM256   LA    1,256                                                    00195900
MCMDECR  BCTR  1,0                 DECREMENT FOR EX INSTRUCTIONS        00196000
         EX    1,MCMCHMOV          MOVE RECORD TO WORK AREA             00196100
         EX    1,MCMCHCLR          CLEAR RECEIVING AREA EXCEPT WM       00196200
         EX    1,MCMWMCLR          ELIMINATE WORD MARKS IN WORK AREA    00196300
         EX    1,MCMCHORC          OR DATA BITS (BA8421) INTO REC AREA  00196400
         LA    1,1(1)                                                   00196500
         AR    11,1                                                     00196600
         AR    12,1                                                     00196700
MCMSW    NOP   MCMBUMP             SW SET IF RECORD GT 256 BYTES        00196800
         B     NXTOP               TO NEXT 1401 INSTRUCTION             00196900
MCMBUMP  SR    3,1                 COMPUTE BYTES REMAINING              00197000
         CH    3,=H'256'           Q / BYTES REMAINING GT 256           00197100
         BH    MCM256              YES                                  00197200
         LR    1,3                                                      00197300
         NI    MCMSW+1,X'0F'       TURN OFF SWITCH                      00197400
         B     MCMDECR             MOVE REMAINING BYTES                 00197500
*                                                                       00197600
MCMCHCLR NC    0(0,12),WM256                                            00197700
MCMCHMOV MVC   WORK256(0),0(11)                                         00197800
MCMWMCLR NC    WORK256(0),STRIPWM                                       00197900
MCMCHORC OC    0(0,12),WORK256                                          00198000
*                                                                       00198100
WORK256  DC    CL256' '                                                 00198200
TRTGMWRM DC    26X'00'             MCM SCAN TABLE                       00198300
         DC    X'1A'               RECORD MARK - A8 2                   00198400
         DC    63X'00'                                                  00198500
         DC    X'5A'               RECORD MARK WORD MARK - M A8 2       00198600
         DC    36X'00'                                    W             00198700
         DC    X'7F'               GROUP MARK WORD MARK - MBA8421       00198800
         DC    128X'00'                                                 00198900
STRIPWM  DC    256X'3F'                                                 00199000
       TITLE  'BRANCH IF BIT EQUAL'                                     00199100
       USING   BBE,13                                                   00199200
BBE    CH      9,=H'1'                                                  00199300
       BE      BBEL1                                                    00199400
       CH      9,=H'8'                                                  00199500
       BNE     ILEGLN                                                   00199600
         LA    6,1(10)                                                  00199700
         BAL   8,CVAD43                                                 00199800
         LR    11,5                                                     00199900
       LA      6,4(10)                                                  00200000
       BAL     8,CVAD43                                                 00200100
       LR      12,5                                                     00200200
       MVC     DCHAR(1),7(10)                                           00200300
       NI      DCHAR,X'BF'                                              00200400
BBEL1  SH      12,=H'1'                                                 00200500
       MVC     TEMP1,DCHAR                                              00200600
       NC      TEMP1(1),1(12)                                           00200700
       BZ      NXTOP                                                    00200800
         LR    10,11                                                    00200900
       LA      9,0                                                      00201000
       B       NXTOP                                                    00201100
         PRINT ON                                                               
         TITLE 'I N I T A L I Z E'                                              
BEGIN    SAVE  (14,12)          SAVE CONTROL PROGRAMS REGISTERS         00201300
         BALR  15,0              LOAD BASE REGISTERS                    00201400
SETBS1   L     14,BASE2          *                                      00201500
         ST    13,SAVEAREA+4     SAVE CONTROL PROGRAMS REGISTER 13      00201600
         LR    5,1                 SAVE PARM ADDRESS                            
         STM   13,15,MACREGSV  SAVE MACRO REGS                                  
         LA    6,MACREGSV      SAVE ADDRESS TO XR                               
         LA    13,SAVEAREA     GIVE OS OUR SAVE AREA                            
         SPACE                                                                  
          AIF  ('&TAPE' EQ 'Y').YESTO                                           
         OPEN  (PRNTDCB,(OUTPUT),CARD,,PUNCHR,(OUTPUT),                X        
               SYSPDCB,(OUTPUT))                                                
.YESTO   ANOP                                                                   
          AIF  ('&TAPE' EQ 'N').NOTO                                            
         OPEN  (PRNTDCB,(OUTPUT),CARD,,PUNCHR,(OUTPUT),                X        
               TAPEDCB0,,TAPEDCB1,,TAPEDCB2,,TAPEDCB3,,TAPEDCB4,,      X        
               TAPEDCB5,,                                              X        
               SYSPDCB,(OUTPUT))                                                
.NOTO    ANOP                                                                   
         LM    13,15,0(6)                                                       
         SPACE                                                                  
         EXTRACT TIOTADDR,FIELDS=TIOT                                           
         LM    13,15,0(6)                                                       
         L     3,TIOTADDR                                                       
         USING TIOT,3                                                           
         MVC   SYSPBUFF+1(8),TIOCNJOB                                           
         MVC   SYSPBUFF+10(8),TIOCSTP                                           
         SPACE                                                                  
         GETMAIN  R,LV=16020     GET CORE FOR 1401 SIMULATED CORE               
         LM    13,15,0(6)      RESTORE MACRO REGISTERS                          
         LR    7,1               *                                              
         A     1,=F'15999'       STORE UPPER LIMIT OF 1401 CORE                 
         ST    1,SIMLIMIT        *                                              
CLR      LA    2,SIMCOR                                                         
         LA    3,64                                                             
CLR1     XC    0(250,2),0(2)                                                    
         LA    2,250(2)                                                         
       BCT     3,CLR1                                                           
       L       1,=F'16010'                                                      
         AR    1,7                                                              
       MVI     0(1),X'7F'                                                       
          AIF  ('&TAPE' EQ 'N').NOTA                                            
         LA    1,100           CLEAR                                            
         L     2,TAPEAREA        TAPE                                           
CLEAR    XC    0(256,2),0(2)   AREA                                             
         LA    2,256(2)                                                         
         BCT   1,CLEAR                                                          
.NOTA    ANOP                                                                   
         SPACE                                                                  
         MVI   PRNTBUFF,X'8B'      RESTORE PRINT FORM IMMEDIATELY               
         BAL   8,WRITEC             *                                           
         BAL   8,READF        READ FIRST CD OR SET EOF CARD                     
         TITLE 'N O   C O N S O L E    C O M M A N D    S U P P O R T'          
         AIF   ('&CONSOLE' EQ 'Y').YESCNSL                                      
         AIF   ('&TAPE' EQ 'N').QTL                                             
         CLI   PARM+10,C'T'                                                     
         BE    TPLOAD                                                           
.QTL     ANOP                                                                   
         B     CDLOAD                                                           
WTORTN   B     TERMINAT                                                         
         SPACE                                                                  
.YESCNSL       ANOP                                                             
         TITLE 'C O N S O L E    C O M M A N D    S U P P O R T'                
         AIF   ('&CONSOLE' EQ 'N').NOCONSL                                      
         SPACE                                                                  
WTORTN   XC    RQSTIN,RQSTIN                                            00203400
         MVC   OKWTOR+16(17),SYSPBUFF+1                                         
         STM   13,15,MACREGSV  SAVE MACRO REGS                          00203600
         LA    6,MACREGSV      SAVE ADDRESS TO XR                       00203700
         LA    13,SAVEAREA     GIVE OS OUR SAVE AREA                    00203800
OKWTOR   WTOR  '                  SIM1401 A002 OK',                             
               RQSTIN,50,WTECB                                          00204000
         LM    13,15,0(6)      RESTORE MACRO REGISTERS                  00204100
         MVC   SYSPBUFF+1(50),RQSTIN                                            
         STM   13,15,MACREGSV                                                   
         LA    13,SAVEAREA                                                      
         LA    6,MACREGSV                                                       
         PUT   SYSPDCB,SYSPBUFF                                                 
         LM    13,15,0(6)                                                       
         MVC   SYSPBUFF+27(58),=CL58' '                                         
         SPACE                                                                  
TESTA    STM   13,15,MACREGSV  SAVE MACRO REG                           00204200
         LA    6,MACREGSV      SAVE ADDRESS TO XR                       00204300
         LA    13,SAVEAREA                                              00204400
         WAIT  1,ECB=WTECB     WAIT FOR RESPONSE                        00204500
         LM    13,15,0(6)      RESTORE MACRO REG                        00204600
         XC    WTECB,WTECB     CLEAR ECB                                00204700
         SPACE                                                                  
         TR    RQSTIN,TYPTBL                                               21610
       CLC     RQSTIN(3),=C'SSS'                                        00208600
       BE      SSIN                                                     00208700
       CLC     RQSTIN(3),=C'LDC'                                        00209000
       BE      CDLOAD                                                   00209100
       CLC     RQSTIN(3),=C'SRS'                                        00209400
       BE      STRST                                                    00209500
       CLC     RQSTIN(3),=C'STT'                                        00209600
       BE      START                                                    00209700
       CLC     RQSTIN(3),=C'CLR'                                        00209800
       BE      CLR                                                      00209900
       CLC     RQSTIN(3),=C'DIS'                                        00210000
       BE      DIS                                                      00210100
       CLC     RQSTIN(3),=C'ALT'                                        00210200
       BE      ALT                                                      00210300
         CLC   RQSTIN(3),=C'TRM'                                        00210800
         BE    TERMINAT                                                 00210900
          AIF  ('&TAPE' EQ 'N').NOTCMD                                          
       CLC     RQSTIN(3),=C'LDT'                                        00209200
       BE      TPLOAD                                                   00209300
       CLC     RQSTIN(3),=C'WTM'                                        00210400
       BE      WTMCMD                                                   00210500
       CLC     RQSTIN(3),=C'RWD'                                        00210600
       BE      RWDCMD                                                   00210700
.NOTCMD  ANOP                                                                   
SNDILG   XC    RQSTIN,RQSTIN   ZERO OUT REPLY AREA                      00211000
         MSG   'A004 ILLEGAL ENTRY',A004                                   21790
         B     WTORTN                                                           
         SPACE                                                                  
*      THIS SECTION WILL SIMULATE THE START PUSHBUTTON.  IF THE         00213000
*      OPERATOR COMMAND STT IS FOLLOWED BY AN ADDRESS, THE 1401 PROGRAM 00213100
*      WILL RESUME FROM THAT ADDRESS.  HOWEVER, IF STT IS NOT FOLLOWED  00213200
*      BY ANYTHING, THE 1401 PROGRAM WILL RESUME FROM WHERE IT STOPPED. 00213300
*                                                                       00213400
START  CLI     OKSTT,1                                                  00213500
       BNE     START4                                                   00213600
       LA      5,RQSTIN+3        Q/ IS THERE A START ADDRESS            00213700
       CLI     0(5),0            *                                      00213800
       BNE     START1            YES, START FROM THERE                  00213900
         L     8,RETURN                                                 00214000
         BR    8                                                        00214100
START1 CLI     0(5),0            Q/ END OF MESSAGE                      00214200
       BE      START2            YES                                    00214300
       CLI     0(5),C'0'         NO, IS IT NUMERIC                      00214400
       BL      SNDILG            NO, ERROR                              00214500
       LA      5,1(5)            YES, TRY NEXT BYTE                     00214600
       B       START1            *                                      00214700
START2 S       5,=A(RQSTIN+4)    GET LENGTH - 1                         00214800
       CH      5,=H'4'           Q/ LENGTH GT 5 DIGITS                  00214900
       BH      SNDILG            YES, ERROR                             00215000
       STC     5,TEMP1           CONVERT TO BINARY                      00215100
       MVN     START3+1(1),TEMP1  *                                     00215200
START3 PACK    PAKT,RQSTIN+3(0)   *                                     00215300
       CVB     4,PAKT            *                                      00215400
       CH      4,=H'15999'       Q/ ADDRESS GT 15999                    00215500
       BH      SNDILG            YES, ERROR                             00215600
         AR    4,7               NO, GO THERE                           00215700
       LR      10,4              *                                      00215800
       LA      9,0               *                                      00215900
       B       NXTOP             *                                      00216000
START4   XC    RQSTIN,RQSTIN   ZERO OUT REPLY AREA                      00216100
         MSG   'A006 CANNOT START, NO PGM LOADED',A006                     22180
         B     WTORTN                                                           
*                                                                       00217000
*      THIS SECTION WILL SIMULATE THE START-RESET PUSHBUTTON.           00217100
*                                                                       00217200
STRST  LR      6,10                                                     00217300
       AR      6,9                                                      00217400
       ST      6,ADR360                                                 00217500
       MVI     TPERR,0                                                  00217600
       MVI     TPEOF,0                                                  00217700
       MVI     OVRFLO,0                                                 00217800
       MVI     CPR,0                                                    00217900
         B     WTORTN                                                   00218000
*                                                                       00218100
*      THIS SECTION SIMULATES THE SETTING OF SENSE SWITCHES BY SETTING  00222200
*      INDICATORS IN CORE BASED UPON THE SSS INPUT COMMAND.  THE        00222300
*      ROUTINES THAT SIMULATE THE BSS INSTRUCTIONS WILL TEST THESE      00222400
*      INDICATORS.                                                      00222500
*                                                                       00222600
SSIN   LA      6,RQSTIN+3        REFERENCE FIRST SENSE SWITCH           00222700
       XC      TSSA(7),TSSA      CLEAR TEMPORARY SENSE SWITCHES         00222800
       LA      5,8               SET TO SCAN 8 SETTINGS MAX             00222900
SSIN1  CLI     0(6),0            Q/ DONE                                00223000
       BE      SSEND             YES, MOVE THEM                         00223100
       CLI     0(6),C'A'         Q/ IS THIS SENSE SWITCH LEGAL          00223200
       BL      SNDILG            NO                                             
       CLI     0(6),C'G'                                                00223400
       BH      SNDILG            NO                                             
       IC      4,0(6)            YES                                    00223600
       N       4,=F'7'           SET TEMPORARY SENSE SWITCH             00223700
       LA      2,TSSA-1          *                                      00223800
       AR      2,4               *                                      00223900
       MVI     0(2),1            *                                      00224000
       LA      6,1(6)            REFERENCE NEXT INPUT CHARACTER         00224100
       BCT     5,SSIN1           Q/ ARE THERE TOO MANY INPUT CHARACTERS 00224200
       B       SNDILG            YES                                            
SSEND  MVC     SENSEA(7),TSSA                                           00224400
         B     WTORTN                                                           
TSSA   DS      7C                TEMPORARY SENSE SWITCHES               00224600
*                                                                       00237000
*      THIS SECTION WILL DISPLAY ON THE PRINTER THE HUNDREDS GROUP      00237100
*      OF 1401 CORE REFERENCED IN THE OPERATOR COMMAND DIS .            00237200
*                                                                       00237300
DIS    LA      5,RQSTIN+3                                               00237400
DIS1   CLI     0(5),X'00'                                               00237500
       BE      DIS2                                                     00237600
       CLI     0(5),C'0'                                                00237700
       BL      SNDILG                                                   00237800
       LA      5,1(5)                                                   00237900
       B       DIS1                                                     00238000
DIS2   LR      2,5                                                      00238100
       SH      2,=H'2'                                                  00238200
       CLC     0(2,2),=C'00'                                            00238300
       BNE     SNDILG                                                   00238400
       S       5,=A(RQSTIN+4)                                           00238500
       CH      5,=H'4'                                                  00238600
       BH      SNDILG                                                   00238700
       STC     5,DIS3+1                                                 00238800
         MVC   DSMRKR+1(20),WM256                                       00238900
DIS3     MVC   DSMRKR+9(0),RQSTIN+3  MOVE ADDR FOR PRINTING             00239000
       STC     5,TEMP1                                                  00239100
       MVN     DIS4+1(1),TEMP1                                          00239200
DIS4   PACK    PAKT,RQSTIN+3(0)                                         00239300
       CVB     4,PAKT                                                   00239400
       CH      4,=H'15900'                                              00239500
       BH      SNDILG                                                   00239600
         MVC   PRNTBUFF(133),DSMRKR                                             
         BAL   8,WRITEC                                                         
         AR    4,7                      ADD IN ADDRESS OF 1401 SIMCORE  00239700
         MVC   PRNTBUFF+1(20),WM256                                     00239900
         MVC   PRNTBUFF+21(100),0(4)                                    00240000
         TR    PRNTBUFF+21(100),TRIE    CHANGE PRINT AREA TO EBCDIC     00240100
         MVC   PRNTBUFF+121(11),WM256   *                               00240200
         BAL   8,WRITEC                                                    23040
         MVC   PRNTBUFF+21(100),0(4)    CHANGE WORD MARKS TO EBCDIC IS  00241000
         TR    PRNTBUFF+21(100),TRWDMK  *                               00241100
         BAL   8,WRITEC                                                    23130
         B     WTORTN                                                   00241400
DSMRKR   DC    X'09',20X'40'                                            00241500
       DC      C'0.......09........19........29........39........49.'   00241600
       DC      C'.......59........69........79........89........99'     00241700
       DC      C'            '                                          00241800
*                                                                       00241900
*      THIS SECTION WILL MODIFY THE 1401 CORE LOCATION REFERENCED IN    00242000
*      THE OPERATOR COMMAND ALT .                                       00242100
*                                                                       00242200
ALT    LA      6,RQSTIN+3                                               00242300
ALT1   CLI     0(6),C','                                                00242400
       BE      ALT2                                                     00242500
       CLI     0(6),C'0'                                                00242600
       BL      SNDILG                                                   00242700
       LA      6,1(6)                                                   00242800
       B       ALT1                                                     00242900
ALT2   LR      5,6                                                      00243000
       S       5,=A(RQSTIN+4)                                           00243100
       CH      5,=H'4'                                                  00243200
       BH      SNDILG                                                   00243300
       STC     5,TEMP1                                                  00243400
       MVN     ALT3+1(1),TEMP1                                          00243500
ALT3   PACK    PAKT,RQSTIN+3(0)                                         00243600
       CVB     4,PAKT                                                   00243700
       CH      4,=H'15999'                                              00243800
       BH      SNDILG                                                   00243900
         AR    4,7                                                      00244000
       MVC     0(1,4),1(6)                                              00244100
       TR      0(1,4),TREI                                              00244200
       CLI     2(6),C'M'                                                00244300
         BNE   WTORTN                                                   00244400
       OI      0(4),X'40'                                               00244500
         B     WTORTN                                                   00244600
         SPACE                                                                  
RQSTIN DS      CL50                                                     00211800
WTECB    DC    F'0'                                                     00204900
.NOCONSL ANOP                                                                   
         TITLE 'C O M M O N    C O M M A N D    S U P P O R T'                  
*      THIS SECTION WILL SIMULATE THE 1402 CARD LOAD PUSHBUTTON.        00212000
*                                                                       00212100
CDLOAD XC      SIMCOR+1(80),SIMCOR+1                                    00212200
       BAL     8,READ                                                   00212300
       OI      SIMCOR+1,X'40'                                           00212400
       LA      10,SIMCOR+1                                              00212500
       LA      9,0                                                      00212600
       MVI     OKSTT,1                                                  00212700
       B       NXTOP                                                    00212800
         SPACE                                                                  
* THIS ROUTINE OUTPUTS MESSAGES ON SYSPRINT AND CONSOLE, IF SUPPORTED           
*      CALL SEQUENCE IS                                                         
*        BAL   4,WTO                                                            
*        DC    AL2(L'MSG-1)                                                     
*MSG     DC    'MESSAGE'                                                        
         SPACE                                                                  
*      THIS CAN BE GENERATED BY THE 'MSG' MACRO                                 
*        MSG   'MESSAGE ',MSG                                                   
         SPACE                                                                  
WTO      SR    5,5                                                              
         IC    5,1(4)              PICK UP LENGTH                               
         CH    5,=H'57'                                                         
         BNH   WTOEX                                                            
         LH    5,=H'57'                                                         
WTOEX    EX    5,WTOMVC            MOVE MESSAGE TO SYSPBUFF                     
         AIF   ('&CONSOLE' EQ 'N').WTONO2                                       
         MVC   WTOWTO+15(85),SYSPBUFF+1   MOVE TO WTO                           
         STM   13,15,MACREGSV                                                   
         LA    13,SAVEAREA                                                      
         LA    6,MACREGSV                                                       
         PRINT GEN                                                              
WTOWTO   WTO   '                                                       X        
                                             '                                  
         PRINT NOGEN                                                            
         LM    13,15,0(6)                                                       
.WTONO2  ANOP                                                                   
         STM   13,15,MACREGSV                                                   
         LA    13,SAVEAREA                                                      
         LA    6,MACREGSV                                                       
         PUT   SYSPDCB,SYSPBUFF                                                 
         LM    13,15,0(6)                                                       
         MVC   SYSPBUFF+27(58),=CL58' '                                         
         LA    4,4(5,4)                                                         
         N     4,=X'FFFFFFFE'                                                   
         BR    4                                                                
WTOMVC   MVC   SYSPBUFF+27(0),2(6)                                              
         SPACE                                                                  
*      THIS ROUTINE WILL TERMINATE THE SIMULATOR UPON THE OPERATOR              
*      ENTRY 'TRM'.                                                             
         SPACE                                                                  
TERMINAT LR    1,7                                                              
         STM   14,15,MACREGSV                                              23515
         LA    13,SAVEAREA                                                      
         LA    6,MACREGSV                                                  23525
         FREEMAIN R,LV=16020,A=(1)                                              
         LM    14,15,0(6)                                                  23535
         CLOSE (PRNTDCB,,SYSPDCB,,PUNCHR,,CARD)                                 
         L     13,4(13)                                                         
         RETURN  (14,12)                                                        
       TITLE  'ROUTINE TO BRANCH TO NEXT OPCODE PROCESSING ROUTINE'     00273800
*      BEFORE BRANCHING, SET THE B ADDRESS REGISTER TO THE ADDRESS OF   00250800
*      THE INSTRUCTION AFTER THE BRANCH, THEN SET THE INSTRUCTION       00250900
*      COUNTER TO THE BRANCH ADDRESS, AND BRANCH.                       00251000
*                                                                       00251100
SETBCH BAL     8,CVAD43          CONVERT BRANCH ADDRESS                 00251200
       LR      12,10             LOAD B ADDRESS                         00251300
       AR      12,9              *                                      00251400
       ST      10,LSTBCH         SAVE LAST BRANCHED FROM LOCATION       00251500
       LR      10,5              LOAD BRANCH ADDRESS                    00251600
       LA      9,0               *                                      00251700
         SPACE                                                                  
*     THIS SECTION EXAMINES THE NEXT OPERATION CODE AND, BASED UPON IT, 00274000
*      BRANCHES TO THE PROPER ROUTINE TO PROCESS THE INSTRUCTION.       00274100
*                                                                       00274200
NXTOP  AR      10,9              GET NEW OP CODE LOCATION               00274300
         TM    0(10),X'40'        Q/ IS THERE A WORD MARK               00274400
       BZ      ILEGOP            NO                                     00274500
       LA      1,250(10)                                                00274600
       TRT     1(250,10),TRTB                                           00274700
       LR      9,1                                                      00274800
       SR      9,10                                                     00274900
       IC      2,0(10)           GET OP CODE                            00275000
       N       2,=F'63'          ELIMINATE WORD MARK                    00275100
       SLL     2,2               MULTIPLY BY 4                          00275200
         L     13,BCHTBL(2)      LOAD BASE OF PROCESSING ROUTINE        00275300
       BR      13                BRANCH TO OPCODE PROCESSING ROUTINE    00275400
BCHTBL DC      A(ILEGOP)         0                                      00275500
       DC      A(R)              1   1                                  00275600
       DC      A(W)              2   2                                  00275700
       DC      A(WR)             3   3                                  00275800
       DC      A(P)              4   4                                  00275900
       DC      A(RP)             5   5                                  00276000
       DC      A(WP)             6   6                                  00276100
       DC      A(WRP)            7   7                                  00276200
       DC      A(NXTOP)          10  8                                  00276300
       DC      A(NXTOP)          11  9                                  00276400
       DC      A(ILEGOP)         12  0                                  00276500
       DC      A(MA)             13  =                                  00276600
       DC      A(M)              14  @                                  00276700
       DC      A(ILEGOP)         15                                     00276800
       DC      A(ILEGOP)         16                                     00276900
       DC      A(ILEGOP)         17  TP MK                              00277000
       DC      A(ILEGOP)         20  A BIT                              00277100
       DC      A(CS)             21  /                                  00277200
       DC      A(A)              22  S                                  00277300
       DC      A(ILEGOP)         23  T                                  00277400
         AIF   ('&TAPE' EQ 'Y').CUOK                                            
         DC    A(ILEGOP)        24  U                                           
.CUOK    ANOP                                                                   
         AIF   ('&TAPE' EQ 'N').NOTCU                                           
       DC      A(CU)             24  U                                  00277500
.NOTCU   ANOP                                                                   
       DC      A(BWZ)            25  V                                  00277600
       DC      A(BBE)            26  W                                  00277700
       DC      A(NXTOP)          27  X                                  00277800
       DC      A(MZ)             30  Y                                  00277900
       DC      A(MCS)            31  Z                                  00278000
       DC      A(ILEGOP)         32  \                                  00278100
       DC      A(SW)             33  ,                                  00278200
       DC      A(D)              34  %                                  00278300
       DC      A(ILEGOP)         35  WD SEP                             00278400
       DC      A(ILEGOP)         36                                     00278500
       DC      A(ILEGOP)         37                                     00278600
       DC      A(ILEGOP)         40 -                                   00278700
       DC      A(ILEGOP)         41  J                                  00278800
       DC      A(SS)             42 K                                   00278900
       DC      A(LCA)            43  L                                  00279000
       DC      A(MCW)            44  M                                  00279100
       DC      A(NXTOP)          45  N                                  00279200
       DC      A(ILEGOP)         46  O                                  00279300
       DC      A(MCM)            47  P                                  00279400
       DC      A(SAR)            50  Q                                  00279500
       DC      A(ILEGOP)         51  R                                  00279600
       DC      A(ZS)             52 -0                                  00279700
       DC      A(ILEGOP)         53  $                                  00279800
       DC      A(ILEGOP)         54  *                                  00279900
       DC      A(ILEGOP)         55                                     00280000
       DC      A(ILEGOP)         56                                     00280100
       DC      A(ILEGOP)         57                                     00280200
       DC      A(ILEGOP)         60 +                                   00280300
       DC      A(A)              61  A                                  00280400
       DC      A(B)              62  B                                  00280500
       DC      A(C)              63  C                                  00280600
       DC      A(MN)             64  D                                  00280700
       DC      A(MCE)            65  E                                  00280800
       DC      A(CC)             66 F                                   00280900
       DC      A(ILEGOP)         67  G                                  00281000
       DC      A(SBR)            70  H                                  00281100
       DC      A(ILEGOP)         71  I                                  00281200
       DC      A(ZA)             72 +0                                  00281300
       DC      A(H)              73  .                                  00281400
       DC      A(CW)             74                                     00281500
       DC      A(ILEGOP)         75                                     00281600
       DC      A(ILEGOP)         76                                     00281700
       DC      A(ILEGOP)         77                                     00281800
         SPACE                                                                  
TRTB   DC      64X'00',64X'F1',64X'00',64X'F1'                          00291000
       TITLE   'ADDRESS CONVERSION SUBROUTINES'                         00256500
*      SUBROUTINE TO CONVERT A 1401 ADDRESS TO A 360 ADDRESS            00256700
*                                                                       00256800
CVAD43 MVI     IXTMP,0                                                  00256900
       LR      5,7               LOAD SIMULATED CORE BASE INTO 5        00257000
CVAD4A IC      3,0(6)            1000'S + 100'S                         00257100
       N       3,=F'63'          *                                      00257200
       SLL     3,1               *                                      00257300
         AH    5,TBHNTH(3)       *                                      00257400
       IC      3,2(6)            4000'S + 1'S                           00257500
       N       3,=F'63'          *                                      00257600
       SLL     3,1               *                                      00257700
         AH    5,TBT4UN(3)       *                                      00257800
       IC      3,1(6)            10'S                                   00257900
       N       3,=F'15'          *                                      00258000
       SLL     3,1               *                                      00258100
         AH    5,TBTENS(3)       *                                      00258200
       TM      1(6),X'30'        Q/ INDEXING                            00258300
       BE      CVAD4D            NO, DONE                               00258400
         CLI   IXTMP,1           Q/ SECOND TIME THROUGH                 00258500
         BE    CVAD4D            YES, DONE                              00258600
       MVI     IXTMP,1           SET SECOND TIME INDICATOR              00258700
         TM    1(6),X'30'        Q/ IX3                                 00258800
       BO      CVAD4C            IX3                                    00258900
       TM      1(6),X'20'                                               00259000
       BO      CVAD4B            IX2                                    00259100
       LA      6,SIMCOR+87       IX1                                    00259200
       B       CVAD4A                                                   00259300
CVAD4B LA      6,SIMCOR+92                                              00259400
       B       CVAD4A                                                   00259500
CVAD4C LA      6,SIMCOR+97                                              00259600
       B       CVAD4A                                                   00259700
CVAD4D   C     5,SIMLIMIT        Q/ IS ADDRESS GREATER THAN 15999       00259800
       BCR     12,8              NO, DONE                               00259900
       SH      5,=H'16000'       YES, SUBTRACT 16000                    00260000
       BR      8                                                        00260100
IXTMP  DS      C                                                        00260400
TBHNTH  DC     H'0,100,200,300,400,500,600,700,800,900'                 00289200
       DC      6H'0'                                                    00289300
       DC      H'0,1100,1200,1300,1400,1500,1600,1700,1800,1900,1000'   00289400
       DC      5H'0'                                                    00289500
       DC      H'0,2100,2200,2300,2400,2500,2600,2700,2800,2900,2000'   00289600
       DC      5H'0'                                                    00289700
       DC      H'0,3100,3200,3300,3400,3500,3600,3700,3800,3900,3000'   00289800
       DC      5H'0'                                                    00289900
TBT4UN DC      H'0,1,2,3,4,5,6,7,8,9'                                   00290000
       DC      6H'0'                                                    00290100
       DC      H'0,4001,4002,4003,4004,4005,4006,4007,4008,4009,4000'   00290200
       DC      5H'0'                                                    00290300
       DC      H'0,8001,8002,8003,8004,8005,8006,8007,8008,8009,8000'   00290400
       DC      5H'0'                                                    00290500
       DC      H'0,12001,12002,12003,12004,12005,12006,12007,12008'     00290600
       DC      H'12009,12000,0,0,0,0,0'                                 00290700
TBTENS DC      H'0,10,20,30,40,50,60,70,80,90'                          00290800
       DC      6H'0'                                                    00290900
*                                                                       00260700
*      SUBROUTINE TO CONVERT A 360 ADDRESS TO A 1401 ADDRESS            00260800
*                                                                       00260900
CVAD34 L       5,ADR360                                                 00261000
       SR      5,7               SUBTRACT SIMULATED CORE BASE           00261100
       LA      4,0               4000'S ZONE                            00261200
       D       4,=F'4000'        *                                      00261300
       SLL     5,4               *                                      00261400
       LR      1,5               *                                      00261500
       LR      5,4               1000'S ZONE                            00261600
       LA      4,0               *                                      00261700
       D       4,=F'1000'        *                                      00261800
       SLL     5,4               *                                      00261900
       LR      2,5               *                                      00262000
       LR      5,4               100'S NUMERIC                          00262100
       LA      4,0               *                                      00262200
       D       4,=F'100'         *                                      00262300
       OR      5,2               *                                      00262400
       STC     5,ADR140          *                                      00262500
       LR      5,4               10'S NUMERIC                           00262600
       LA      4,0               *                                      00262700
       D       4,=F'10'          *                                      00262800
       STC     5,ADR140+1        *                                      00262900
       OR      4,1               *                                      00263000
       STC     4,ADR140+2        *                                      00263100
       TM      ADR140,X'0F'      Q/ IS HUNDREDS ZERO                    00263200
       BC      5,CVAD3A          NO                                     00263300
       OI      ADR140,X'0A'      YES, ADD 8-2 BITS                      00263400
CVAD3A TM      ADR140+1,X'0F'    Q/ IS TENS ZERO                        00263500
       BC      5,CVAD3B          NO                                     00263600
       OI      ADR140+1,X'0A'    YES, ADD 8-2 BITS                      00263700
CVAD3B TM      ADR140+2,X'0F'    Q/ IS UNITS ZERO                       00263800
       BCR     5,8               NO, RETURN                             00263900
       OI      ADR140+2,X'0A'    YES, ADD 8-2 BITS                      00264000
       BR      8                 RETURN                                 00264100
       TITLE  'ROUTINES TO HELP UNIT RECORD OPERATIONS'                 00264200
READ     CLI   CRDEOF,X'01'    HAVE WE READ LAST CARD                   00264900
         BNE   READ2           BRANCH IF NO                             00265000
         MSG   'I005 READ TRIED AFTER LAST CARD ',I005                     25480
         B     WTORTN                                                      25530
READ2  TR      TMPARA(80),TREI     CHANGE EBCDIC TO INTERNAL 1401 CODE  00265700
       NC      SIMCOR+1(80),WM256   REMOVE CARD AREA INFO, KEEP WD MKS  00265800
       OC      SIMCOR+1(80),TMPARA                                      00265900
       LA      12,SIMCOR+81                                             00266000
READF    STM   13,15,MACREGSV      SAVE REGS                               25640
         LA    6,MACREGSV      SAVE ADDRESS TO XR                       00266200
         LA    13,SAVEAREA     GIVE OS OUR SAVE AREA                    00266300
         GET   CARD,TMPARA     READ CARD                                00266400
         LM    13,15,0(6)      RESTORE MACRO REGISTERS                  00266500
         NI    SIMCOR,X'40'      SET BA BITS IN LOC 0 AFTER READ        00266600
         OI    SIMCOR,X'30'      *                                      00266700
       BR      8                                                        00266800
         SPACE                                                             25715
EOC      LM    13,15,0(6)        RESTORE SIMULATOR REGISTERS            00266900
         MVI   CRDEOF,X'01'      SET CARD EOF INDICATOR                 00267000
         BR    8                                                        00267100
         SPACE                                                             25745
WRITE    MVC   PRNTBUFF+1(132),SIMCOR+201                               00267200
         TR    PRNTBUFF+1(132),TRIE                                     00267300
WRITEC   STM   13,15,MACREGSV  SAVE MACRO REG                              25770
         LA    6,MACREGSV      SAVE ADDRESS TO XR                       00267500
         LA    13,SAVEAREA     GIVE OS OUR SAVE AREA                    00267600
         PUT   PRNTDCB,PRNTBUFF                                         00267700
         LM    13,15,0(6)      RESTORE MACRO REGISTERS                  00267800
         TR    PRNTBUFF(1),LINSKP  CONVERT CONTROL CHAR TO LINE COUNT           
         CLI   PRNTBUFF,X'FF'      Q. SKIP TO CHANNEL                           
         BE    WRITEP               YES, SET NEW PAGE                           
         AP    LINCUR,PRNTBUFF(1)                                               
         CP    LINCUR,LINMAX                                                    
         BL    WRITED                                                           
         MVI   PRTP12,1            SET CH 12 INDICATOR                          
         B     WRITED                                                           
WRITEP   SP    LINCUR,LINCUR       INIT NEW PAGE                                
         MVI   PRTP12,0                                                         
WRITED   MVI   PRNTBUFF,X'09'      SET SINGLE SPACE                        25880
         LA    12,SIMCOR+333       SET B ADDRESS REGISTER               00268000
       BR      8                                                        00268100
LINSKP   DC    X'FF',P'0',7X'FF',P'1',X'FF',P'1',4X'FF'                    25920
         DC    X'FF',P'2',X'FF',P'2',5X'FF',P'3',X'FF',P'3',4X'FF'              
         DC    224X'FF'                                                         
         SPACE                                                             25845
PUNCH    MVC   PCHARA,SIMCOR+101   CONVERT 1401 PUNCH AREA FOR OUTPUT   00268200
         TR    PCHARA,TRIE          *                                   00268300
         STM   13,15,MACREGSV  SAVE MACRO REGS                          00268400
         LA    6,MACREGSV      SAVE ADDRESS TO XR                       00268500
         LA    13,SAVEAREA     GIVE OS OUR SAVE AREA                    00268600
         PUT   PUNCHR,PCHARA                                            00268700
         LM    13,15,0(6)      RESTORE MACRO REGISTERS                  00268800
         LA    12,SIMCOR+181                                            00268900
         NI    SIMCOR+100,X'40'    SET 82 BITS IN LOC 100 AFTER PUNCH   00269000
         OI    SIMCOR+100,X'0A'    *                                    00269100
       BR      8                                                        00269200
         TITLE ' E R R O R S '                                             25960
ILEGOP   MSG   'I008 ILLEGAL OP CODE',I008                                 26080
       B       PANEL                                                    00253000
         SPACE                                                          14036305
ILEGLN   MSG   'I009 ILLEGAL LENGTH',I009                                  26150
         SPACE                                                             26085
PANEL  LR      1,10                                                     00253600
         SR    1,7                                                      00253700
       CVD     1,PAKT                                                   00253800
         UNPK  PNLWTOR+04(6),PAKT+5(3)                                          
         MVZ   PNLWTOR+09(1),=C'0'                                              
         MVC   PNLWTOR+19(1),0(10)                                              
         NI    PNLWTOR+19,X'BF'                                                 
         TR    PNLWTOR+19(1),TRIE                                               
       CVD     9,PAKT                                                           
         UNPK  PNLWTOR+33(6),PAKT+5(3)                                          
         MVZ   PNLWTOR+38(1),=C'0'                                              
         MVI   PNLWTOR+40,X'80'                                                 
         MVC   PNLWTOR+41(1),PNLWTOR+40                                         
       CH      9,=H'8'                                                          
         BH    WTORPNL                                                          
       LTR     3,9                                                              
         BZ    WTORPNL                                                          
       SH      3,=H'1'                                                          
       STC     3,PANEL1+1                                                       
PANEL1   MVC   PNLWTOR+40(0),0(10)                                              
         TR    PNLWTOR+40(8),TRIE                                               
WTORPNL  MSG   ' I             OP        LENGTH             INST       X        
                 ',PNLWTOR                                                      
         B     WTORTN                                                           
       TITLE  'DATA CONVERSION TRANSLATE TABLES'                        00289100
TREI   DC      64X'00'                                                  00291100
       DC      X'00000000000000000000003B3C3D3E3F'                      00291200
       DC      X'30000000000000000000002B2C2D2E2F'                      00291300
       DC      X'20110000000000000000001B1C1D1E1F'                      00291400
       DC      X'201100000000000000000A0B0C0D0E0F'                      00291500
       DC      64X'00'                                                  00291600
       DC      X'3A313233343536373839000000000000'                      00291700
       DC      X'2A212223242526272829000000000000'                      00291800
       DC      X'1A001213141516171819000000000000'                      00291900
       DC      X'0A010203040506070809000000000000'                      00292000
TRIE   DC      X'40F1F2F3F4F5F6F7F8F9F07B7C7D7E7F'                      00292100
       DC      X'F061E2E3E4E5E6E7E8E9E06B6C6D6E6F'                      00292200
       DC      X'60D1D2D3D4D5D6D7D8D9D05B5C5D5E5F'                      00292300
       DC      X'50C1C2C3C4C5C6C7C8C9C04B4C4D4E4F'                      00292400
       DC      X'40F1F2F3F4F5F6F7F8F9F07B7C7D7E7F'                      00292500
       DC      X'F061E2E3E4E5E6E7E8E9E06B6C6D6E6F'                      00292600
       DC      X'60D1D2D3D4D5D6D7D8D9D05B5C5D5E5F'                      00292700
       DC      X'50C1C2C3C4C5C6C7C8C9C04B4C4D4E4F'                      00292800
TR4IBC DC      16AL1(*-TR4IBC)                                          00292900
       DC      X'00'                                                    00293000
       DC      47AL1(*-TR4IBC)                                          00293100
TRI4BC DC      X'10'                                                    00293200
       DC      63AL1(*-TRI4BC)                                          00293300
       DC      X'10'                                                    00293400
       DC      63AL1(*-64-TRI4BC)                                       00293500
TRWDMK DC      64X'40'                                                  00293700
       DC      64C'1'                                                   00293800
TYPTBL DC      129AL1(*-TYPTBL)                                         00293900
       DC      C'ABCDEFGHI'                                             00294000
       DC      XL7'00'                                                  00294100
       DC      C'JKLMNOPQR'                                             00294200
       DC      XL8'00'                                                  00294300
       DC      C'STUVWXYZ'                                              00294400
       DC      86AL1(*-TYPTBL)                                          00294500
         TITLE 'C O N S T A N T S    &&    L I T E R A L S'                     
ADR360 DS      F                                                        00260200
ADR140 DS      CL3                                                      00260300
AEND   DC      X'0'                                                     00283600
BCDTAP DS      C                 INDICATOR FOR BCD TAPE MODE            00284200
CPR    DC      X'00'                                                    00283100
CRDEOF DC      X'00'             CARD END-OF-FILE INDICATOR             00283400
DCHAR  DS      C                                                        00283200
LINCUR   DC    PL2'1'                                                           
LINMAX   DC    PL2'0'                                                           
LSTBCH DS      F                 TO HOLD ADDRESS OF LAST BRANCH         00283300
MACREGSV DS    18F                                                      00285500
ONOFF    DC    213X'00',X'01',42X'00'                                           
OKSTT    DC    X'00'                                                            
OVRFLO DC      X'0'              RESET WHEN TESTED                      00283000
PAKT   DS      D                                                        00285000
         DS    0F                                                       00285100
PARM     DS    CL11           ABCDEFGLLLX                                       
PCHARA   DS    CL80              PUNCH OUTPUT AREA                      00284700
PCHERR DC      X'00'             PUNCH ERROR INDICATOR                  00284300
PRNTBUFF DC    X'09'                                                    00285200
         DC    CL132' '                                                 00285300
PRTP12 DC      X'0'                                                     00282700
PRTERR DC      X'00'             PRINTER ERROR INDICATOR                00284500
RDRERR DC      X'00'             CARD READ ERROR INDICATOR              00284400
RETURN   DS    F                                                        00286600
SAVEAREA DS 18F                                                         00285400
SAVCSW DS      D                                                        00285600
SENSEA DC      X'0'                                                     00282000
SENSEB DC      X'0'                                                     00282100
SENSEC DC      X'0'                                                     00282200
SENSED DC      X'0'                                                     00282300
SENSEE DC      X'0'                                                     00282400
SENSEF DC      X'0'                                                     00282500
SENSEG DC      X'0'                                                     00282600
SIMLIMIT DC    F'0'              UPPER LIMIT OF SIMULATED CORE          00283800
SUPRES DC      X'00'             ZERO SUPPRESSION INDICATOR             00284000
SYSPBUFF DC    X'09'                                                            
         DC    CL85'                  SIM1401'                             27250
TEMP1  DS      C                                                        00260500
TEMP2    DS    C                                                        00260600
TIOTADDR DS    A                                                                
TMPARA   DS    CL80                                                     00284600
TPEOF  DC      X'0'              RESET WHEN TESTED                      00282900
TPERR  DC      X'0'                                                     00282800
TRGPWM DC      127X'00',X'7F',128X'00'                                          
WM256  DC      256X'40'                                                 00284900
         SPACE                                                                  
PRNTDCB  DCB   MACRF=PM,DSORG=PS,DDNAME=WRITE,LRECL=133                 00288600
SYSPDCB  DCB   MACRF=PM,DSORG=PS,DDNAME=SYSPRINT,LRECL=133                      
PUNCHR   DCB   MACRF=PM,DSORG=PS,RECFM=F,BLKSIZE=80,LRECL=80,          X00288700
               DDNAME=CARDOUT                                           00288800
CARD     DCB   MACRF=GM,DSORG=PS,RECFM=F,BLKSIZE=80,LRECL=80,          X00288900
               DDNAME=CARDIN,EODAD=EOC                                  00289000
         SPACE                                                                  
       LTORG                                                            00294700
         SPACE                                                                  
SIMCOR   DSECT                                                          00294800
         DS    CL16020                                                  00294900
         CSECT                                                                  
         TITLE 'T A P E    I / O    S U P P O R T'                              
         AIF   ('&TAPE' EQ 'N').NOTAPE                                          
         AIF   ('&CONSOLE' EQ 'N').RWD                                          
*      THIS SECTION SIMULATES THE LOAD TAPE PUSHBUTTON.                 00218200
*                                                                       00218300
TPLOAD LA      10,=X'00000001'                                          00218400
       BAL     8,FNDRIV                                                 00218500
         ST    3,TMDCB                                                  00218600
         MVC   TPCCW,=A(LDTCCW)                                         00218700
         MVI   TMIOB,X'44'                                              00218800
         STM   13,15,MACREGSV  SAVE MACRO REGS                          00218900
         LA    6,MACREGSV      SAVE ADDRESS TO XR                       00219000
         LA    13,SAVEAREA     GIVE OS OUR SAVE AREA                    00219100
         EXCP  TMIOB                                                    00219200
         LM    14,15,4(6)      RESTORE REG 14 AND 15                    00219300
         WAIT  1,ECB=TMECB     WAIT FOR I/O                             00219400
         LM    13,15,0(6)      RESTORE MACRO REGISTERS                  00219500
         LH    1,TMIOB+14          LOAD BYTE COUNT FROM CSW             00219600
       LH      2,=H'20000'                                              00219700
       SR      2,1                                                      00219800
       LA      3,SIMCOR+1                                               00219900
         L     1,TAPEAREA                                               00220000
TPLD1  CLI     0(1),X'1D'                                               00220100
       BNE     TPLD2                                                    00220200
       LA      1,1(1)                                                   00220300
       MVC     0(1,3),0(1)                                              00220400
       TR      0(1,3),TR4IBC                                            00220500
       OI      0(3),X'40'                                               00220600
       SH      2,=H'1'                                                  00220700
       B       TPLD3                                                    00220800
TPLD2  MVC     0(1,3),0(1)                                              00220900
       TR      0(1,3),TR4IBC                                            00221000
TPLD3  LA      1,1(1)                                                   00221100
       LA      3,1(3)                                                   00221200
       BCT     2,TPLD1                                                  00221300
       NI      0(3),X'40'                                               00221400
       OI      0(3),X'3F'                                               00221500
       LA      12,1(3)                                                  00221600
       LA      10,SIMCOR+1                                              00221700
       LA      9,0                                                      00221800
       MVI     OKSTT,1                                                  00221900
       B       NXTOP                                                    00222000
*                                                                       00222100
*      THIS SECTION WILL WRITE A TAPE MARK ON THE TAPE DRIVE            00244800
*      SELECTED BY THE WTM COMMAND.                                     00244900
*                                                                       00245000
WTMCMD NI      RQSTIN+3,X'0F'    GET DEVICE ADDRESS                     00245100
       LA      10,RQSTIN         *                                      00245200
       BAL     8,FNDRIV          *                                      00245300
         ST    3,TMDCB                                                  00245400
         MVC   TPCCW,=A(WTMCCW)                                         00245500
         STM   13,15,MACREGSV  SAVE MACRO REGS                          00245600
         LA    6,MACREGSV      SAVE ADDRESS TO XR                       00245700
         LA    13,SAVEAREA     GIVE OS OUR SAVE AREA                    00245800
         EXCP  TMIOB                                                    00245900
         LM    14,15,4(6)      RESTORE REG 14 AND 15                    00246000
         WAIT  1,ECB=TMECB     WAIT FOR I/O                             00246100
         LM    13,15,0(6)      RESTORE MACRO REGISTERS                  00246200
         B     WTORTN                                                   00246300
*                                                                       00246400
*      THIS SECTION WILL REWIND THE TAPE SELECTED BY THE RWD COMMAND    00249200
*                                                                       00249300
RWDCMD NI      RQSTIN+3,X'0F'    GET DEVICE ADDRESS                     00249400
       LA      10,RQSTIN         *                                      00249500
       BAL     8,FNDRIV          *                                      00249600
         ST    3,TMDCB                                                  00249700
         MVC   TPCCW,=A(RWDCCW)                                         00249800
         MVI   TMIOB,X'04'                                              00249900
         STM   13,15,MACREGSV  SAVE MACRO REGS                          00250000
         LA    6,MACREGSV      SAVE ADDRESS TO XR                       00250100
         LA    13,SAVEAREA     GIVE OS OUR SAVE AREA                    00250200
         EXCP  TMIOB                                                    00250300
         LM    14,15,4(6)      RESTORE REG 14 AND 15                    00250400
         WAIT  1,ECB=TMECB     WAIT FOR I/O                             00250500
         LM    13,15,0(6)      RESTORE MACRO REGISTERS                  00250600
         B     WTORTN                                                   00250700
.RWD     ANOP                                                                   
         SPACE                                                                  
FNDRIV   IC    3,3(10)                                                  14038090
         BCTR  3,0             SUBTRACT ONE                             00271000
         N     3,=F'7'                                                  14038110
         SLL   3,3             MULTIPLY LOGICAL DRIVE NUMBER BY 8       00271200
       A       3,=A(TAPADR)      ADD BASE OF TAPE ADDRESS TABLE         00271300
         L     3,4(3)          GET ACTUAL TAPE ADDRESS FROM TABLE       00271400
         USING IHADCB,3                                                         
         TM    DCBOFLGS,X'10'                                                   
         BNZ   FNDRIV2                                                          
         SPACE                                                          14036245
         MSG   'I007 UNDEFINED TAPE',I007                                       
         B     PANEL                                                    00252400
         SPACE                                                                  
FNDRIV2  MVI   TMECB,0         CLEAR ECB BEFORE EXCP                    00271500
         NI    0(3),X'3F'        CLEAR DCB EXCEPTION BITS               00271600
         MVI   TMIOB,X'42'       SET IOB CMD CHAIN + UNRELATED BITS     00271700
       BR      8                                                        00271800
         SPACE                                                          14038185
FNDLNG LR      6,12                                                     00269400
FNDLGA TRT     0(256,6),TRGPWM   SCAN FOR GP MK - WD MK                 00269500
       BC      6,FNDLGB          FOUND                                  00269600
       LA      6,256(6)                                                 00269700
       B       FNDLGA                                                   00269800
FNDLGB LR      6,1               CALCULATE LENGTH                       00269900
       SR      6,12              *                                      00270000
       BR      8                                                        00270100
         SPACE                                                          14038015
TPTEST   MVC   SAVCSW+1(7),TPCSW      SAVE CSW AFTER TAPE OPERATION     00271900
       TM      SAVCSW+4,1        Q/ EOF                                 00272000
       BZ      TPTIO1                                                   00272100
       LH      4,=H'24999'                                              00272200
       STH     4,SAVCSW+6                                               00272300
         L     4,TAPEAREA        PUT TAPE MARK CHARACTER IN TAPE AREA   00272400
         MVI   0(4),X'0F'        *                                      00272500
       MVI     TPEOF,1                                                  00272600
TPTIO1 MVI     TPERR,0                                                  00272700
       TM      SAVCSW+4,2        Q/ TAPE ERROR                          00272800
       BCR     8,8                                                      00272900
       MVI     TPERR,1                                                  00273000
       BR      8                                                        00273100
         SPACE                                                          14038315
CU     CH      9,=H'5'                                                  00150100
       BNE     ILEGLN                                                   00150200
       CLI     4(10),X'29'                                              00150300
       BE      RWD                                                      00150400
       CLI     4(10),X'24'                                              00150500
       BE      WTM                                                      00150600
       CLI     4(10),X'14'                                              00150700
       BE      RWU                                                      00150800
       CLI     4(10),X'32'                                              00150900
       BE      BSP                                                      00151000
       CLI     4(10),X'35'                                              00151100
       BE      SKP                                                      00151200
       B       ILEGOP                                                   00151300
RWD    MVI     CUCCW,X'07'                                              00151400
       B       CU1                                                      00151500
WTM    MVI     CUCCW,X'1F'                                              00151600
       B       CU1                                                      00151700
BSP    MVI     CUCCW,X'27'                                              00151800
       B       CU1                                                      00151900
SKP    MVI     CUCCW,X'17'                                              00152000
CU1    BAL     8,FNDRIV                                                 00152100
         ST    3,CUDCB                                                  00152200
         MVI   CUECB,0                                                  00152300
         MVI   CUIOB,X'42'       SET COMMAND CHAIN + UNRELATED BITS     00152400
         STM   13,15,MACREGSV  SAVE MACRO REGS                          00152500
         LA    6,MACREGSV      SAVE ADDRESS TO XR                       00152600
         LA    13,SAVEAREA     GIVE OS OUR SAVE AREA                    00152700
         EXCP  CUIOB                                                    00152800
         LM    14,15,4(6)      RESTORE REG 14 AND 15                    00152900
         WAIT  1,ECB=CUECB                                              00153000
         LM    13,15,0(6)      RESTORE MACRO REGISTERS                  00153100
       B       NXTOP                                                    00153200
RWU      IC    2,3(10)           GET 1401 DRIVE NUMBER                  00153300
         N     2,=F'7'           *                                      00153400
         BCTR  2,0               SUBTRACT 1                             00153500
         SLL   2,3            REFERENCE TAPADR TABLE ENTRY              14025670
         L     4,TAPADR+4(2)     GET DCB ADDRESS                        00154000
         STM   14,15,MACREGSV    SAVE BASE REGISTERS                            
         LA    6,MACREGSV        *                                      00273300
         LA    13,SAVEAREA       *                                      00273400
         CLOSE ((4))             CLOSE THE DCB                          00273500
         LM    14,15,0(6)                                               00273600
         B     NXTOP                                                    00273700
CUCCWMS  CCW   X'63',0,X'60',1          MODE SET                        00154300
CUCCW  CCW     0,0,X'20',1                                              00154400
TMIOB    DS    0D                                                       00247800
         DC    X'42'                                                    00247900
         DC    4X'00'                                                   00248000
         DC    AL3(TMECB)                                               00248100
         DC    X'00'                                                    00248200
TPCSW    DC    7X'00'                                                   00248300
TPCCW    DC    XL4'00'             ADDRESS OF CCW FOR TAPE OPERATION    00248400
TMDCB    DC    XL4'00'             DCB ADDRESS FOR TAPE DRIVE SELECTED  00248500
         DC    4X'00'                                                   00248600
         DC    2X'00'                                                   00248700
         DC    2X'00'                                                   00248800
TMECB    DS    0F                                                       00248900
         DC    4X'00'                                                   00249000
TAPEAREA DC    A(SIMTAPE)        ADDRESS OF TAPE I/O BUFFER                     
         SPACE                                                                  
WTCCW1 CCW     X'63',1,X'60',1                                          00285800
WTCCW2   CCW   1,SIMTAPE,X'20',0                                                
LDTCCW   CCW   X'63',0,X'60',1                                          00286000
RTCCW    CCW   0,0,X'60',1       READ TAPE                              00286200
RTCCW1   CCW   2,SIMTAPE,X'20',25000                                            
WTMCCW   CCW   X'1F',0,X'20',1   WRITE TAPE MARK                        00286400
RWDCCW   CCW   X'07',0,X'20',1   REWIND                                 00286500
CUIOB    DS    0D                                                       00286700
         DC    X'02'                                                    00286800
         DC    4X'00'                                                   00286900
         DC    AL3(CUECB)                                               00287000
         DC    8X'00'                                                   00287100
         DC    AL4(CUCCWMS)                                             00287200
CUDCB    DC    F'0'                                                     00287300
         DC    8X'00'                                                   00287400
CUECB    DC    F'0'                                                     00287500
*                                                                       00287600
*      THIS TABLE EQUATES A 360 TAPE DRIVE TO A 1401 TAPE DRIVE AS A    00287700
*      RESULT OF A TAS ENTRY.                                           00287800
*                                                                       00287900
TAPADR   DC    A(0,TAPEDCB0)                                            00288000
         DC    A(0,TAPEDCB1)                                            00288100
         DC    A(0,TAPEDCB2)                                            00288200
         DC    A(0,TAPEDCB3)                                            00288300
         DC    A(0,TAPEDCB4)                                            00288400
         DC    A(0,TAPEDCB5)                                            00288500
         LTORG                                                                  
TAPEDCB0 DCB   MACRF=(E),DSORG=PS,DEVD=TA,DDNAME=TAPE1                  14035720
TAPEDCB1 DCB   MACRF=(E),DSORG=PS,DEVD=TA,DDNAME=TAPE2                  14035730
TAPEDCB2 DCB   MACRF=(E),DSORG=PS,DEVD=TA,DDNAME=TAPE3                  14035740
TAPEDCB3 DCB   MACRF=(E),DSORG=PS,DEVD=TA,DDNAME=TAPE4                  14035750
TAPEDCB4 DCB   MACRF=(E),DSORG=PS,DEVD=TA,DDNAME=TAPE5                  14035760
TAPEDCB5 DCB   MACRF=(E),DSORG=PS,DEVD=TA,DDNAME=TAPE6                  14035770
SIMTAPE  DS    CL25600                                                          
.NOTAPE        ANOP                                                             
         TITLE 'S Y S T E M    C O N T R O L    B L O C K S'                    
TIOT     DSECT                                                                  
TIOCNJOB DS    CL8                 JOB                                          
TIOCSTP  DS    CL8                 PROC                                         
         DS    CL8                 PROC STEP                                    
*                                  F O R   E A C H   D D E N T R Y              
TIOELNGH DS    FL.8                                                             
         DS    CL3                                                              
TIOEDDNM DS    CL8                 DD NAME                                      
         DS    CL4                                                              
*                                  F O R   E A C H   D E V I C E                
TIOESTTB DS    CL1                                                              
TIOEFSRT DS    AL.24               UCB ADDRESS                                  
         SPACE                                                                  
         DCBD  DSORG=PS,DEVD=TA                                                 
         SPACE                                                                  
UCB      DSECT                                                                  
         DS    CL12                                                             
UCBWGT   DS    CL1                                                              
UCBNAME  DS    CL3                                                              
         END   BEGIN                                                            
//       EXEC  ASF                                                           *//
//C.SYSIN   DD DSN=CACTR683.SIM1401,DISP=OLD                                 *//
/*